commerce_funds-8.x-1.7/js/delayed_submit.js

js/delayed_submit.js
/**
 * @file
 * Delayed form submit.
 */
((Drupal) => {
  /**
   * Behaviors to automatically submit a form after a delay.
   *
   * @type {Drupal~behavior}
   *
   * @prop {Drupal~behaviorAttach} attach
   *   Attaches delayed submit behavior to conversion transactions.
   */
  Drupal.behaviors.delayed_submit = {
    attach(context) {
      once('calculateFees', 'body', context).forEach(() => {
        const delayedInputSubmitElements = document.querySelectorAll(
          '.delayed-input-submit',
        );

        const createTimeout = (element, delay, triggerEvent) => {
          setTimeout(() => {
            if (element.value) {
              const event = new Event(triggerEvent);
              element.dispatchEvent(event);
            }
          }, delay);
        };

        delayedInputSubmitElements.forEach((element) => {
          let timeout = null;
          const delay = parseInt(element.getAttribute('data-delay'), 4) || 1000;
          const triggerEvent =
            element.getAttribute('data-event') || 'end_typing';

          const keyupHandler = () => {
            clearTimeout(timeout);
            timeout = createTimeout(element, delay, triggerEvent);
          };

          element.removeEventListener('keyup', keyupHandler);
          element.addEventListener('keyup', keyupHandler);
        });
      });
    },
  };
})(Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc