Sha256: 249aa85884860270f9e8eaddf38ff9a9b8c6c45ed6e999a4bcb2a7c955eaae9b

Contents?: true

Size: 1.27 KB

Versions: 15

Compression:

Stored size: 1.27 KB

Contents

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

  window.addEventListener('DOMContentLoaded', () => {
    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

15 entries across 15 versions & 1 rubygems

Version Path
active_element-0.0.16 app/assets/javascripts/active_element/secret.js
active_element-0.0.15 app/assets/javascripts/active_element/secret.js
active_element-0.0.14 app/assets/javascripts/active_element/secret.js
active_element-0.0.13 app/assets/javascripts/active_element/secret.js
active_element-0.0.12 app/assets/javascripts/active_element/secret.js
active_element-0.0.11 app/assets/javascripts/active_element/secret.js
active_element-0.0.10 app/assets/javascripts/active_element/secret.js
active_element-0.0.9 app/assets/javascripts/active_element/secret.js
active_element-0.0.8 app/assets/javascripts/active_element/secret.js
active_element-0.0.7 app/assets/javascripts/active_element/secret.js
active_element-0.0.6 app/assets/javascripts/active_element/secret.js
active_element-0.0.5 app/assets/javascripts/active_element/secret.js
active_element-0.0.4 app/assets/javascripts/active_element/secret.js
active_element-0.0.3 app/assets/javascripts/active_element/secret.js
active_element-0.0.2 app/assets/javascripts/active_element/secret.js