Sha256: 35e216d5c6dbb2f4b38524ffafbdb02b887abea3232a2e63edc57cda9933a9fb

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

(() => {
  const cloneElement = (id) => ActiveElement.cloneElement('secret', id);

  window.addEventListener(ActiveElement.reloadEvent, () => {
    document.querySelectorAll('span[data-field-type="secret"]').forEach((element) => {
      const secret = element.dataset.secret;
      const showButton = cloneElement('show-button');
      const hideButton = cloneElement('hide-button');
      const content = cloneElement('content');
      const placeholder = secret.replace(/./g, '*');

      hideButton.classList.add('d-none');
      content.classList.add('font-monospace');
      content.classList.add('text-secondary');
      content.innerText = placeholder;

      showButton.addEventListener('click', () => {
        showButton.classList.add('d-none');
        hideButton.classList.remove('d-none');
        content.classList.remove('text-secondary');
        content.innerText = secret;

        return false;
      });

      hideButton.addEventListener('click', () => {
        showButton.classList.remove('d-none');
        hideButton.classList.add('d-none');
        content.classList.add('text-secondary');
        content.innerText = placeholder;

        return false;
      });

      element.append(content);
      element.append(showButton);
      element.append(hideButton);
    });
  });
})();

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
active_element-0.0.19 app/assets/javascripts/active_element/secret.js
active_element-0.0.18 app/assets/javascripts/active_element/secret.js
active_element-0.0.17 app/assets/javascripts/active_element/secret.js