Sha256: 959c9d1bea9cd48946cbc00f8504c74e7772d94c5165f2a70e47c84028d2e17c

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

(() => {
  const generateId = () => {
    ActiveElement._id += 1;

    return `active-element-element-${ActiveElement._id}`;
  };

  const getAntiCsrfToken = () => {
    const param = document.querySelector('meta[name="csrf-param"]').content;
    const value = document.querySelector('meta[name="csrf-token"]').content;

    return { param, value };
  };

  const cloneElement = (category, id) => {
    const element = document.querySelector(`#${category}-templates`)
                            .querySelector(`#${category}-${id}-template`)
                            .cloneNode(true);
    element.id = ActiveElement.generateId();
    return element;
  };

  const navbar = document.querySelector('.navbar.application-menu');

  window.addEventListener('scroll', () => {
    if (window.scrollY > 50) {
      navbar.classList.add('shrink');
    } else {
      navbar.classList.remove('shrink');
    }
  });


  const ActiveElement = {
    log: (message) => { console.log(`[ActiveElement] ${message}`); },
    _id: 0,
    generateId,
    getAntiCsrfToken,
    cloneElement,
    components: {},
    jsonData: {},
    controller_path: document.querySelector('meta[name="active_element_controller_path"]').content
  };

  window.ActiveElement = ActiveElement;
})();

ActiveElement.log('Initialized');

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
active_element-0.0.8 app/assets/javascripts/active_element/setup.js
active_element-0.0.7 app/assets/javascripts/active_element/setup.js
active_element-0.0.6 app/assets/javascripts/active_element/setup.js
active_element-0.0.5 app/assets/javascripts/active_element/setup.js
active_element-0.0.4 app/assets/javascripts/active_element/setup.js