mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			1768 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			1768 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * Dom7 4.0.1
 | 
						|
 * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API
 | 
						|
 * https://framework7.io/docs/dom7.html
 | 
						|
 *
 | 
						|
 * Copyright 2021, Vladimir Kharlampidi
 | 
						|
 *
 | 
						|
 * Licensed under MIT
 | 
						|
 *
 | 
						|
 * Released on: October 27, 2021
 | 
						|
 */
 | 
						|
(function (global, factory) {
 | 
						|
    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
 | 
						|
    typeof define === 'function' && define.amd ? define(factory) :
 | 
						|
    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dom7 = factory());
 | 
						|
}(this, (function () { 'use strict';
 | 
						|
 | 
						|
    /**
 | 
						|
     * SSR Window 4.0.0
 | 
						|
     * Better handling for window object in SSR environment
 | 
						|
     * https://github.com/nolimits4web/ssr-window
 | 
						|
     *
 | 
						|
     * Copyright 2021, Vladimir Kharlampidi
 | 
						|
     *
 | 
						|
     * Licensed under MIT
 | 
						|
     *
 | 
						|
     * Released on: August 25, 2021
 | 
						|
     */
 | 
						|
 | 
						|
    /* eslint-disable no-param-reassign */
 | 
						|
    function isObject(obj) {
 | 
						|
      return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
 | 
						|
    }
 | 
						|
 | 
						|
    function extend(target = {}, src = {}) {
 | 
						|
      Object.keys(src).forEach(key => {
 | 
						|
        if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
 | 
						|
          extend(target[key], src[key]);
 | 
						|
        }
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
    const ssrDocument = {
 | 
						|
      body: {},
 | 
						|
 | 
						|
      addEventListener() {},
 | 
						|
 | 
						|
      removeEventListener() {},
 | 
						|
 | 
						|
      activeElement: {
 | 
						|
        blur() {},
 | 
						|
 | 
						|
        nodeName: ''
 | 
						|
      },
 | 
						|
 | 
						|
      querySelector() {
 | 
						|
        return null;
 | 
						|
      },
 | 
						|
 | 
						|
      querySelectorAll() {
 | 
						|
        return [];
 | 
						|
      },
 | 
						|
 | 
						|
      getElementById() {
 | 
						|
        return null;
 | 
						|
      },
 | 
						|
 | 
						|
      createEvent() {
 | 
						|
        return {
 | 
						|
          initEvent() {}
 | 
						|
 | 
						|
        };
 | 
						|
      },
 | 
						|
 | 
						|
      createElement() {
 | 
						|
        return {
 | 
						|
          children: [],
 | 
						|
          childNodes: [],
 | 
						|
          style: {},
 | 
						|
 | 
						|
          setAttribute() {},
 | 
						|
 | 
						|
          getElementsByTagName() {
 | 
						|
            return [];
 | 
						|
          }
 | 
						|
 | 
						|
        };
 | 
						|
      },
 | 
						|
 | 
						|
      createElementNS() {
 | 
						|
        return {};
 | 
						|
      },
 | 
						|
 | 
						|
      importNode() {
 | 
						|
        return null;
 | 
						|
      },
 | 
						|
 | 
						|
      location: {
 | 
						|
        hash: '',
 | 
						|
        host: '',
 | 
						|
        hostname: '',
 | 
						|
        href: '',
 | 
						|
        origin: '',
 | 
						|
        pathname: '',
 | 
						|
        protocol: '',
 | 
						|
        search: ''
 | 
						|
      }
 | 
						|
    };
 | 
						|
 | 
						|
    function getDocument() {
 | 
						|
      const doc = typeof document !== 'undefined' ? document : {};
 | 
						|
      extend(doc, ssrDocument);
 | 
						|
      return doc;
 | 
						|
    }
 | 
						|
 | 
						|
    const ssrWindow = {
 | 
						|
      document: ssrDocument,
 | 
						|
      navigator: {
 | 
						|
        userAgent: ''
 | 
						|
      },
 | 
						|
      location: {
 | 
						|
        hash: '',
 | 
						|
        host: '',
 | 
						|
        hostname: '',
 | 
						|
        href: '',
 | 
						|
        origin: '',
 | 
						|
        pathname: '',
 | 
						|
        protocol: '',
 | 
						|
        search: ''
 | 
						|
      },
 | 
						|
      history: {
 | 
						|
        replaceState() {},
 | 
						|
 | 
						|
        pushState() {},
 | 
						|
 | 
						|
        go() {},
 | 
						|
 | 
						|
        back() {}
 | 
						|
 | 
						|
      },
 | 
						|
      CustomEvent: function CustomEvent() {
 | 
						|
        return this;
 | 
						|
      },
 | 
						|
 | 
						|
      addEventListener() {},
 | 
						|
 | 
						|
      removeEventListener() {},
 | 
						|
 | 
						|
      getComputedStyle() {
 | 
						|
        return {
 | 
						|
          getPropertyValue() {
 | 
						|
            return '';
 | 
						|
          }
 | 
						|
 | 
						|
        };
 | 
						|
      },
 | 
						|
 | 
						|
      Image() {},
 | 
						|
 | 
						|
      Date() {},
 | 
						|
 | 
						|
      screen: {},
 | 
						|
 | 
						|
      setTimeout() {},
 | 
						|
 | 
						|
      clearTimeout() {},
 | 
						|
 | 
						|
      matchMedia() {
 | 
						|
        return {};
 | 
						|
      },
 | 
						|
 | 
						|
      requestAnimationFrame(callback) {
 | 
						|
        if (typeof setTimeout === 'undefined') {
 | 
						|
          callback();
 | 
						|
          return null;
 | 
						|
        }
 | 
						|
 | 
						|
        return setTimeout(callback, 0);
 | 
						|
      },
 | 
						|
 | 
						|
      cancelAnimationFrame(id) {
 | 
						|
        if (typeof setTimeout === 'undefined') {
 | 
						|
          return;
 | 
						|
        }
 | 
						|
 | 
						|
        clearTimeout(id);
 | 
						|
      }
 | 
						|
 | 
						|
    };
 | 
						|
 | 
						|
    function getWindow() {
 | 
						|
      const win = typeof window !== 'undefined' ? window : {};
 | 
						|
      extend(win, ssrWindow);
 | 
						|
      return win;
 | 
						|
    }
 | 
						|
 | 
						|
    /* eslint-disable no-proto */
 | 
						|
    function makeReactive(obj) {
 | 
						|
      const proto = obj.__proto__;
 | 
						|
      Object.defineProperty(obj, '__proto__', {
 | 
						|
        get() {
 | 
						|
          return proto;
 | 
						|
        },
 | 
						|
 | 
						|
        set(value) {
 | 
						|
          proto.__proto__ = value;
 | 
						|
        }
 | 
						|
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
    class Dom7 extends Array {
 | 
						|
      constructor(items) {
 | 
						|
        super(...(items || []));
 | 
						|
        makeReactive(this);
 | 
						|
      }
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    function arrayFlat(arr = []) {
 | 
						|
      const res = [];
 | 
						|
      arr.forEach(el => {
 | 
						|
        if (Array.isArray(el)) {
 | 
						|
          res.push(...arrayFlat(el));
 | 
						|
        } else {
 | 
						|
          res.push(el);
 | 
						|
        }
 | 
						|
      });
 | 
						|
      return res;
 | 
						|
    }
 | 
						|
    function arrayFilter(arr, callback) {
 | 
						|
      return Array.prototype.filter.call(arr, callback);
 | 
						|
    }
 | 
						|
    function arrayUnique(arr) {
 | 
						|
      const uniqueArray = [];
 | 
						|
 | 
						|
      for (let i = 0; i < arr.length; i += 1) {
 | 
						|
        if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);
 | 
						|
      }
 | 
						|
 | 
						|
      return uniqueArray;
 | 
						|
    }
 | 
						|
    function toCamelCase(string) {
 | 
						|
      return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());
 | 
						|
    }
 | 
						|
 | 
						|
    // eslint-disable-next-line
 | 
						|
 | 
						|
    function qsa(selector, context) {
 | 
						|
      if (typeof selector !== 'string') {
 | 
						|
        return [selector];
 | 
						|
      }
 | 
						|
 | 
						|
      const a = [];
 | 
						|
      const res = context.querySelectorAll(selector);
 | 
						|
 | 
						|
      for (let i = 0; i < res.length; i += 1) {
 | 
						|
        a.push(res[i]);
 | 
						|
      }
 | 
						|
 | 
						|
      return a;
 | 
						|
    }
 | 
						|
 | 
						|
    function $(selector, context) {
 | 
						|
      const window = getWindow();
 | 
						|
      const document = getDocument();
 | 
						|
      let arr = [];
 | 
						|
 | 
						|
      if (!context && selector instanceof Dom7) {
 | 
						|
        return selector;
 | 
						|
      }
 | 
						|
 | 
						|
      if (!selector) {
 | 
						|
        return new Dom7(arr);
 | 
						|
      }
 | 
						|
 | 
						|
      if (typeof selector === 'string') {
 | 
						|
        const html = selector.trim();
 | 
						|
 | 
						|
        if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {
 | 
						|
          let toCreate = 'div';
 | 
						|
          if (html.indexOf('<li') === 0) toCreate = 'ul';
 | 
						|
          if (html.indexOf('<tr') === 0) toCreate = 'tbody';
 | 
						|
          if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';
 | 
						|
          if (html.indexOf('<tbody') === 0) toCreate = 'table';
 | 
						|
          if (html.indexOf('<option') === 0) toCreate = 'select';
 | 
						|
          const tempParent = document.createElement(toCreate);
 | 
						|
          tempParent.innerHTML = html;
 | 
						|
 | 
						|
          for (let i = 0; i < tempParent.childNodes.length; i += 1) {
 | 
						|
            arr.push(tempParent.childNodes[i]);
 | 
						|
          }
 | 
						|
        } else {
 | 
						|
          arr = qsa(selector.trim(), context || document);
 | 
						|
        } // arr = qsa(selector, document);
 | 
						|
 | 
						|
      } else if (selector.nodeType || selector === window || selector === document) {
 | 
						|
        arr.push(selector);
 | 
						|
      } else if (Array.isArray(selector)) {
 | 
						|
        if (selector instanceof Dom7) return selector;
 | 
						|
        arr = selector;
 | 
						|
      }
 | 
						|
 | 
						|
      return new Dom7(arrayUnique(arr));
 | 
						|
    }
 | 
						|
 | 
						|
    $.fn = Dom7.prototype;
 | 
						|
 | 
						|
    // eslint-disable-next-line
 | 
						|
 | 
						|
    function addClass(...classes) {
 | 
						|
      const classNames = arrayFlat(classes.map(c => c.split(' ')));
 | 
						|
      this.forEach(el => {
 | 
						|
        el.classList.add(...classNames);
 | 
						|
      });
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function removeClass(...classes) {
 | 
						|
      const classNames = arrayFlat(classes.map(c => c.split(' ')));
 | 
						|
      this.forEach(el => {
 | 
						|
        el.classList.remove(...classNames);
 | 
						|
      });
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function toggleClass(...classes) {
 | 
						|
      const classNames = arrayFlat(classes.map(c => c.split(' ')));
 | 
						|
      this.forEach(el => {
 | 
						|
        classNames.forEach(className => {
 | 
						|
          el.classList.toggle(className);
 | 
						|
        });
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
    function hasClass(...classes) {
 | 
						|
      const classNames = arrayFlat(classes.map(c => c.split(' ')));
 | 
						|
      return arrayFilter(this, el => {
 | 
						|
        return classNames.filter(className => el.classList.contains(className)).length > 0;
 | 
						|
      }).length > 0;
 | 
						|
    }
 | 
						|
 | 
						|
    function attr(attrs, value) {
 | 
						|
      if (arguments.length === 1 && typeof attrs === 'string') {
 | 
						|
        // Get attr
 | 
						|
        if (this[0]) return this[0].getAttribute(attrs);
 | 
						|
        return undefined;
 | 
						|
      } // Set attrs
 | 
						|
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        if (arguments.length === 2) {
 | 
						|
          // String
 | 
						|
          this[i].setAttribute(attrs, value);
 | 
						|
        } else {
 | 
						|
          // Object
 | 
						|
          for (const attrName in attrs) {
 | 
						|
            this[i][attrName] = attrs[attrName];
 | 
						|
            this[i].setAttribute(attrName, attrs[attrName]);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function removeAttr(attr) {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        this[i].removeAttribute(attr);
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function prop(props, value) {
 | 
						|
      if (arguments.length === 1 && typeof props === 'string') {
 | 
						|
        // Get prop
 | 
						|
        if (this[0]) return this[0][props];
 | 
						|
      } else {
 | 
						|
        // Set props
 | 
						|
        for (let i = 0; i < this.length; i += 1) {
 | 
						|
          if (arguments.length === 2) {
 | 
						|
            // String
 | 
						|
            this[i][props] = value;
 | 
						|
          } else {
 | 
						|
            // Object
 | 
						|
            for (const propName in props) {
 | 
						|
              this[i][propName] = props[propName];
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        return this;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function data(key, value) {
 | 
						|
      let el;
 | 
						|
 | 
						|
      if (typeof value === 'undefined') {
 | 
						|
        el = this[0];
 | 
						|
        if (!el) return undefined; // Get value
 | 
						|
 | 
						|
        if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {
 | 
						|
          return el.dom7ElementDataStorage[key];
 | 
						|
        }
 | 
						|
 | 
						|
        const dataKey = el.getAttribute(`data-${key}`);
 | 
						|
 | 
						|
        if (dataKey) {
 | 
						|
          return dataKey;
 | 
						|
        }
 | 
						|
 | 
						|
        return undefined;
 | 
						|
      } // Set value
 | 
						|
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        el = this[i];
 | 
						|
        if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};
 | 
						|
        el.dom7ElementDataStorage[key] = value;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function removeData(key) {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const el = this[i];
 | 
						|
 | 
						|
        if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {
 | 
						|
          el.dom7ElementDataStorage[key] = null;
 | 
						|
          delete el.dom7ElementDataStorage[key];
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    function dataset() {
 | 
						|
      const el = this[0];
 | 
						|
      if (!el) return undefined;
 | 
						|
      const dataset = {}; // eslint-disable-line
 | 
						|
 | 
						|
      if (el.dataset) {
 | 
						|
        for (const dataKey in el.dataset) {
 | 
						|
          dataset[dataKey] = el.dataset[dataKey];
 | 
						|
        }
 | 
						|
      } else {
 | 
						|
        for (let i = 0; i < el.attributes.length; i += 1) {
 | 
						|
          const attr = el.attributes[i];
 | 
						|
 | 
						|
          if (attr.name.indexOf('data-') >= 0) {
 | 
						|
            dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      for (const key in dataset) {
 | 
						|
        if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;
 | 
						|
      }
 | 
						|
 | 
						|
      return dataset;
 | 
						|
    }
 | 
						|
 | 
						|
    function val(value) {
 | 
						|
      if (typeof value === 'undefined') {
 | 
						|
        // get value
 | 
						|
        const el = this[0];
 | 
						|
        if (!el) return undefined;
 | 
						|
 | 
						|
        if (el.multiple && el.nodeName.toLowerCase() === 'select') {
 | 
						|
          const values = [];
 | 
						|
 | 
						|
          for (let i = 0; i < el.selectedOptions.length; i += 1) {
 | 
						|
            values.push(el.selectedOptions[i].value);
 | 
						|
          }
 | 
						|
 | 
						|
          return values;
 | 
						|
        }
 | 
						|
 | 
						|
        return el.value;
 | 
						|
      } // set value
 | 
						|
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const el = this[i];
 | 
						|
 | 
						|
        if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {
 | 
						|
          for (let j = 0; j < el.options.length; j += 1) {
 | 
						|
            el.options[j].selected = value.indexOf(el.options[j].value) >= 0;
 | 
						|
          }
 | 
						|
        } else {
 | 
						|
          el.value = value;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function value(value) {
 | 
						|
      return this.val(value);
 | 
						|
    }
 | 
						|
 | 
						|
    function transform(transform) {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        this[i].style.transform = transform;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function transition(duration) {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function on(...args) {
 | 
						|
      let [eventType, targetSelector, listener, capture] = args;
 | 
						|
 | 
						|
      if (typeof args[1] === 'function') {
 | 
						|
        [eventType, listener, capture] = args;
 | 
						|
        targetSelector = undefined;
 | 
						|
      }
 | 
						|
 | 
						|
      if (!capture) capture = false;
 | 
						|
 | 
						|
      function handleLiveEvent(e) {
 | 
						|
        const target = e.target;
 | 
						|
        if (!target) return;
 | 
						|
        const eventData = e.target.dom7EventData || [];
 | 
						|
 | 
						|
        if (eventData.indexOf(e) < 0) {
 | 
						|
          eventData.unshift(e);
 | 
						|
        }
 | 
						|
 | 
						|
        if ($(target).is(targetSelector)) listener.apply(target, eventData);else {
 | 
						|
          const parents = $(target).parents(); // eslint-disable-line
 | 
						|
 | 
						|
          for (let k = 0; k < parents.length; k += 1) {
 | 
						|
            if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      function handleEvent(e) {
 | 
						|
        const eventData = e && e.target ? e.target.dom7EventData || [] : [];
 | 
						|
 | 
						|
        if (eventData.indexOf(e) < 0) {
 | 
						|
          eventData.unshift(e);
 | 
						|
        }
 | 
						|
 | 
						|
        listener.apply(this, eventData);
 | 
						|
      }
 | 
						|
 | 
						|
      const events = eventType.split(' ');
 | 
						|
      let j;
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const el = this[i];
 | 
						|
 | 
						|
        if (!targetSelector) {
 | 
						|
          for (j = 0; j < events.length; j += 1) {
 | 
						|
            const event = events[j];
 | 
						|
            if (!el.dom7Listeners) el.dom7Listeners = {};
 | 
						|
            if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];
 | 
						|
            el.dom7Listeners[event].push({
 | 
						|
              listener,
 | 
						|
              proxyListener: handleEvent
 | 
						|
            });
 | 
						|
            el.addEventListener(event, handleEvent, capture);
 | 
						|
          }
 | 
						|
        } else {
 | 
						|
          // Live events
 | 
						|
          for (j = 0; j < events.length; j += 1) {
 | 
						|
            const event = events[j];
 | 
						|
            if (!el.dom7LiveListeners) el.dom7LiveListeners = {};
 | 
						|
            if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];
 | 
						|
            el.dom7LiveListeners[event].push({
 | 
						|
              listener,
 | 
						|
              proxyListener: handleLiveEvent
 | 
						|
            });
 | 
						|
            el.addEventListener(event, handleLiveEvent, capture);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function off(...args) {
 | 
						|
      let [eventType, targetSelector, listener, capture] = args;
 | 
						|
 | 
						|
      if (typeof args[1] === 'function') {
 | 
						|
        [eventType, listener, capture] = args;
 | 
						|
        targetSelector = undefined;
 | 
						|
      }
 | 
						|
 | 
						|
      if (!capture) capture = false;
 | 
						|
      const events = eventType.split(' ');
 | 
						|
 | 
						|
      for (let i = 0; i < events.length; i += 1) {
 | 
						|
        const event = events[i];
 | 
						|
 | 
						|
        for (let j = 0; j < this.length; j += 1) {
 | 
						|
          const el = this[j];
 | 
						|
          let handlers;
 | 
						|
 | 
						|
          if (!targetSelector && el.dom7Listeners) {
 | 
						|
            handlers = el.dom7Listeners[event];
 | 
						|
          } else if (targetSelector && el.dom7LiveListeners) {
 | 
						|
            handlers = el.dom7LiveListeners[event];
 | 
						|
          }
 | 
						|
 | 
						|
          if (handlers && handlers.length) {
 | 
						|
            for (let k = handlers.length - 1; k >= 0; k -= 1) {
 | 
						|
              const handler = handlers[k];
 | 
						|
 | 
						|
              if (listener && handler.listener === listener) {
 | 
						|
                el.removeEventListener(event, handler.proxyListener, capture);
 | 
						|
                handlers.splice(k, 1);
 | 
						|
              } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {
 | 
						|
                el.removeEventListener(event, handler.proxyListener, capture);
 | 
						|
                handlers.splice(k, 1);
 | 
						|
              } else if (!listener) {
 | 
						|
                el.removeEventListener(event, handler.proxyListener, capture);
 | 
						|
                handlers.splice(k, 1);
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function once(...args) {
 | 
						|
      const dom = this;
 | 
						|
      let [eventName, targetSelector, listener, capture] = args;
 | 
						|
 | 
						|
      if (typeof args[1] === 'function') {
 | 
						|
        [eventName, listener, capture] = args;
 | 
						|
        targetSelector = undefined;
 | 
						|
      }
 | 
						|
 | 
						|
      function onceHandler(...eventArgs) {
 | 
						|
        listener.apply(this, eventArgs);
 | 
						|
        dom.off(eventName, targetSelector, onceHandler, capture);
 | 
						|
 | 
						|
        if (onceHandler.dom7proxy) {
 | 
						|
          delete onceHandler.dom7proxy;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      onceHandler.dom7proxy = listener;
 | 
						|
      return dom.on(eventName, targetSelector, onceHandler, capture);
 | 
						|
    }
 | 
						|
 | 
						|
    function trigger(...args) {
 | 
						|
      const window = getWindow();
 | 
						|
      const events = args[0].split(' ');
 | 
						|
      const eventData = args[1];
 | 
						|
 | 
						|
      for (let i = 0; i < events.length; i += 1) {
 | 
						|
        const event = events[i];
 | 
						|
 | 
						|
        for (let j = 0; j < this.length; j += 1) {
 | 
						|
          const el = this[j];
 | 
						|
 | 
						|
          if (window.CustomEvent) {
 | 
						|
            const evt = new window.CustomEvent(event, {
 | 
						|
              detail: eventData,
 | 
						|
              bubbles: true,
 | 
						|
              cancelable: true
 | 
						|
            });
 | 
						|
            el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);
 | 
						|
            el.dispatchEvent(evt);
 | 
						|
            el.dom7EventData = [];
 | 
						|
            delete el.dom7EventData;
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function transitionEnd(callback) {
 | 
						|
      const dom = this;
 | 
						|
 | 
						|
      function fireCallBack(e) {
 | 
						|
        if (e.target !== this) return;
 | 
						|
        callback.call(this, e);
 | 
						|
        dom.off('transitionend', fireCallBack);
 | 
						|
      }
 | 
						|
 | 
						|
      if (callback) {
 | 
						|
        dom.on('transitionend', fireCallBack);
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function animationEnd(callback) {
 | 
						|
      const dom = this;
 | 
						|
 | 
						|
      function fireCallBack(e) {
 | 
						|
        if (e.target !== this) return;
 | 
						|
        callback.call(this, e);
 | 
						|
        dom.off('animationend', fireCallBack);
 | 
						|
      }
 | 
						|
 | 
						|
      if (callback) {
 | 
						|
        dom.on('animationend', fireCallBack);
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function width() {
 | 
						|
      const window = getWindow();
 | 
						|
 | 
						|
      if (this[0] === window) {
 | 
						|
        return window.innerWidth;
 | 
						|
      }
 | 
						|
 | 
						|
      if (this.length > 0) {
 | 
						|
        return parseFloat(this.css('width'));
 | 
						|
      }
 | 
						|
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
 | 
						|
    function outerWidth(includeMargins) {
 | 
						|
      if (this.length > 0) {
 | 
						|
        if (includeMargins) {
 | 
						|
          const styles = this.styles();
 | 
						|
          return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));
 | 
						|
        }
 | 
						|
 | 
						|
        return this[0].offsetWidth;
 | 
						|
      }
 | 
						|
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
 | 
						|
    function height() {
 | 
						|
      const window = getWindow();
 | 
						|
 | 
						|
      if (this[0] === window) {
 | 
						|
        return window.innerHeight;
 | 
						|
      }
 | 
						|
 | 
						|
      if (this.length > 0) {
 | 
						|
        return parseFloat(this.css('height'));
 | 
						|
      }
 | 
						|
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
 | 
						|
    function outerHeight(includeMargins) {
 | 
						|
      if (this.length > 0) {
 | 
						|
        if (includeMargins) {
 | 
						|
          const styles = this.styles();
 | 
						|
          return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));
 | 
						|
        }
 | 
						|
 | 
						|
        return this[0].offsetHeight;
 | 
						|
      }
 | 
						|
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
 | 
						|
    function offset() {
 | 
						|
      if (this.length > 0) {
 | 
						|
        const window = getWindow();
 | 
						|
        const document = getDocument();
 | 
						|
        const el = this[0];
 | 
						|
        const box = el.getBoundingClientRect();
 | 
						|
        const body = document.body;
 | 
						|
        const clientTop = el.clientTop || body.clientTop || 0;
 | 
						|
        const clientLeft = el.clientLeft || body.clientLeft || 0;
 | 
						|
        const scrollTop = el === window ? window.scrollY : el.scrollTop;
 | 
						|
        const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
 | 
						|
        return {
 | 
						|
          top: box.top + scrollTop - clientTop,
 | 
						|
          left: box.left + scrollLeft - clientLeft
 | 
						|
        };
 | 
						|
      }
 | 
						|
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
 | 
						|
    function hide() {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        this[i].style.display = 'none';
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function show() {
 | 
						|
      const window = getWindow();
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const el = this[i];
 | 
						|
 | 
						|
        if (el.style.display === 'none') {
 | 
						|
          el.style.display = '';
 | 
						|
        }
 | 
						|
 | 
						|
        if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {
 | 
						|
          // Still not visible
 | 
						|
          el.style.display = 'block';
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function styles() {
 | 
						|
      const window = getWindow();
 | 
						|
      if (this[0]) return window.getComputedStyle(this[0], null);
 | 
						|
      return {};
 | 
						|
    }
 | 
						|
 | 
						|
    function css(props, value) {
 | 
						|
      const window = getWindow();
 | 
						|
      let i;
 | 
						|
 | 
						|
      if (arguments.length === 1) {
 | 
						|
        if (typeof props === 'string') {
 | 
						|
          // .css('width')
 | 
						|
          if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);
 | 
						|
        } else {
 | 
						|
          // .css({ width: '100px' })
 | 
						|
          for (i = 0; i < this.length; i += 1) {
 | 
						|
            for (const prop in props) {
 | 
						|
              this[i].style[prop] = props[prop];
 | 
						|
            }
 | 
						|
          }
 | 
						|
 | 
						|
          return this;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      if (arguments.length === 2 && typeof props === 'string') {
 | 
						|
        // .css('width', '100px')
 | 
						|
        for (i = 0; i < this.length; i += 1) {
 | 
						|
          this[i].style[props] = value;
 | 
						|
        }
 | 
						|
 | 
						|
        return this;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function each(callback) {
 | 
						|
      if (!callback) return this;
 | 
						|
      this.forEach((el, index) => {
 | 
						|
        callback.apply(el, [el, index]);
 | 
						|
      });
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function filter(callback) {
 | 
						|
      const result = arrayFilter(this, callback);
 | 
						|
      return $(result);
 | 
						|
    }
 | 
						|
 | 
						|
    function html(html) {
 | 
						|
      if (typeof html === 'undefined') {
 | 
						|
        return this[0] ? this[0].innerHTML : null;
 | 
						|
      }
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        this[i].innerHTML = html;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function text(text) {
 | 
						|
      if (typeof text === 'undefined') {
 | 
						|
        return this[0] ? this[0].textContent.trim() : null;
 | 
						|
      }
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        this[i].textContent = text;
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function is(selector) {
 | 
						|
      const window = getWindow();
 | 
						|
      const document = getDocument();
 | 
						|
      const el = this[0];
 | 
						|
      let compareWith;
 | 
						|
      let i;
 | 
						|
      if (!el || typeof selector === 'undefined') return false;
 | 
						|
 | 
						|
      if (typeof selector === 'string') {
 | 
						|
        if (el.matches) return el.matches(selector);
 | 
						|
        if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);
 | 
						|
        if (el.msMatchesSelector) return el.msMatchesSelector(selector);
 | 
						|
        compareWith = $(selector);
 | 
						|
 | 
						|
        for (i = 0; i < compareWith.length; i += 1) {
 | 
						|
          if (compareWith[i] === el) return true;
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
 | 
						|
      if (selector === document) {
 | 
						|
        return el === document;
 | 
						|
      }
 | 
						|
 | 
						|
      if (selector === window) {
 | 
						|
        return el === window;
 | 
						|
      }
 | 
						|
 | 
						|
      if (selector.nodeType || selector instanceof Dom7) {
 | 
						|
        compareWith = selector.nodeType ? [selector] : selector;
 | 
						|
 | 
						|
        for (i = 0; i < compareWith.length; i += 1) {
 | 
						|
          if (compareWith[i] === el) return true;
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
 | 
						|
    function index() {
 | 
						|
      let child = this[0];
 | 
						|
      let i;
 | 
						|
 | 
						|
      if (child) {
 | 
						|
        i = 0; // eslint-disable-next-line
 | 
						|
 | 
						|
        while ((child = child.previousSibling) !== null) {
 | 
						|
          if (child.nodeType === 1) i += 1;
 | 
						|
        }
 | 
						|
 | 
						|
        return i;
 | 
						|
      }
 | 
						|
 | 
						|
      return undefined;
 | 
						|
    }
 | 
						|
 | 
						|
    function eq(index) {
 | 
						|
      if (typeof index === 'undefined') return this;
 | 
						|
      const length = this.length;
 | 
						|
 | 
						|
      if (index > length - 1) {
 | 
						|
        return $([]);
 | 
						|
      }
 | 
						|
 | 
						|
      if (index < 0) {
 | 
						|
        const returnIndex = length + index;
 | 
						|
        if (returnIndex < 0) return $([]);
 | 
						|
        return $([this[returnIndex]]);
 | 
						|
      }
 | 
						|
 | 
						|
      return $([this[index]]);
 | 
						|
    }
 | 
						|
 | 
						|
    function append(...els) {
 | 
						|
      let newChild;
 | 
						|
      const document = getDocument();
 | 
						|
 | 
						|
      for (let k = 0; k < els.length; k += 1) {
 | 
						|
        newChild = els[k];
 | 
						|
 | 
						|
        for (let i = 0; i < this.length; i += 1) {
 | 
						|
          if (typeof newChild === 'string') {
 | 
						|
            const tempDiv = document.createElement('div');
 | 
						|
            tempDiv.innerHTML = newChild;
 | 
						|
 | 
						|
            while (tempDiv.firstChild) {
 | 
						|
              this[i].appendChild(tempDiv.firstChild);
 | 
						|
            }
 | 
						|
          } else if (newChild instanceof Dom7) {
 | 
						|
            for (let j = 0; j < newChild.length; j += 1) {
 | 
						|
              this[i].appendChild(newChild[j]);
 | 
						|
            }
 | 
						|
          } else {
 | 
						|
            this[i].appendChild(newChild);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function appendTo(parent) {
 | 
						|
      $(parent).append(this);
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function prepend(newChild) {
 | 
						|
      const document = getDocument();
 | 
						|
      let i;
 | 
						|
      let j;
 | 
						|
 | 
						|
      for (i = 0; i < this.length; i += 1) {
 | 
						|
        if (typeof newChild === 'string') {
 | 
						|
          const tempDiv = document.createElement('div');
 | 
						|
          tempDiv.innerHTML = newChild;
 | 
						|
 | 
						|
          for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {
 | 
						|
            this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
 | 
						|
          }
 | 
						|
        } else if (newChild instanceof Dom7) {
 | 
						|
          for (j = 0; j < newChild.length; j += 1) {
 | 
						|
            this[i].insertBefore(newChild[j], this[i].childNodes[0]);
 | 
						|
          }
 | 
						|
        } else {
 | 
						|
          this[i].insertBefore(newChild, this[i].childNodes[0]);
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function prependTo(parent) {
 | 
						|
      $(parent).prepend(this);
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function insertBefore(selector) {
 | 
						|
      const before = $(selector);
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        if (before.length === 1) {
 | 
						|
          before[0].parentNode.insertBefore(this[i], before[0]);
 | 
						|
        } else if (before.length > 1) {
 | 
						|
          for (let j = 0; j < before.length; j += 1) {
 | 
						|
            before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    function insertAfter(selector) {
 | 
						|
      const after = $(selector);
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        if (after.length === 1) {
 | 
						|
          after[0].parentNode.insertBefore(this[i], after[0].nextSibling);
 | 
						|
        } else if (after.length > 1) {
 | 
						|
          for (let j = 0; j < after.length; j += 1) {
 | 
						|
            after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    function next(selector) {
 | 
						|
      if (this.length > 0) {
 | 
						|
        if (selector) {
 | 
						|
          if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {
 | 
						|
            return $([this[0].nextElementSibling]);
 | 
						|
          }
 | 
						|
 | 
						|
          return $([]);
 | 
						|
        }
 | 
						|
 | 
						|
        if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);
 | 
						|
        return $([]);
 | 
						|
      }
 | 
						|
 | 
						|
      return $([]);
 | 
						|
    }
 | 
						|
 | 
						|
    function nextAll(selector) {
 | 
						|
      const nextEls = [];
 | 
						|
      let el = this[0];
 | 
						|
      if (!el) return $([]);
 | 
						|
 | 
						|
      while (el.nextElementSibling) {
 | 
						|
        const next = el.nextElementSibling; // eslint-disable-line
 | 
						|
 | 
						|
        if (selector) {
 | 
						|
          if ($(next).is(selector)) nextEls.push(next);
 | 
						|
        } else nextEls.push(next);
 | 
						|
 | 
						|
        el = next;
 | 
						|
      }
 | 
						|
 | 
						|
      return $(nextEls);
 | 
						|
    }
 | 
						|
 | 
						|
    function prev(selector) {
 | 
						|
      if (this.length > 0) {
 | 
						|
        const el = this[0];
 | 
						|
 | 
						|
        if (selector) {
 | 
						|
          if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {
 | 
						|
            return $([el.previousElementSibling]);
 | 
						|
          }
 | 
						|
 | 
						|
          return $([]);
 | 
						|
        }
 | 
						|
 | 
						|
        if (el.previousElementSibling) return $([el.previousElementSibling]);
 | 
						|
        return $([]);
 | 
						|
      }
 | 
						|
 | 
						|
      return $([]);
 | 
						|
    }
 | 
						|
 | 
						|
    function prevAll(selector) {
 | 
						|
      const prevEls = [];
 | 
						|
      let el = this[0];
 | 
						|
      if (!el) return $([]);
 | 
						|
 | 
						|
      while (el.previousElementSibling) {
 | 
						|
        const prev = el.previousElementSibling; // eslint-disable-line
 | 
						|
 | 
						|
        if (selector) {
 | 
						|
          if ($(prev).is(selector)) prevEls.push(prev);
 | 
						|
        } else prevEls.push(prev);
 | 
						|
 | 
						|
        el = prev;
 | 
						|
      }
 | 
						|
 | 
						|
      return $(prevEls);
 | 
						|
    }
 | 
						|
 | 
						|
    function siblings(selector) {
 | 
						|
      return this.nextAll(selector).add(this.prevAll(selector));
 | 
						|
    }
 | 
						|
 | 
						|
    function parent(selector) {
 | 
						|
      const parents = []; // eslint-disable-line
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        if (this[i].parentNode !== null) {
 | 
						|
          if (selector) {
 | 
						|
            if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);
 | 
						|
          } else {
 | 
						|
            parents.push(this[i].parentNode);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return $(parents);
 | 
						|
    }
 | 
						|
 | 
						|
    function parents(selector) {
 | 
						|
      const parents = []; // eslint-disable-line
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        let parent = this[i].parentNode; // eslint-disable-line
 | 
						|
 | 
						|
        while (parent) {
 | 
						|
          if (selector) {
 | 
						|
            if ($(parent).is(selector)) parents.push(parent);
 | 
						|
          } else {
 | 
						|
            parents.push(parent);
 | 
						|
          }
 | 
						|
 | 
						|
          parent = parent.parentNode;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return $(parents);
 | 
						|
    }
 | 
						|
 | 
						|
    function closest(selector) {
 | 
						|
      let closest = this; // eslint-disable-line
 | 
						|
 | 
						|
      if (typeof selector === 'undefined') {
 | 
						|
        return $([]);
 | 
						|
      }
 | 
						|
 | 
						|
      if (!closest.is(selector)) {
 | 
						|
        closest = closest.parents(selector).eq(0);
 | 
						|
      }
 | 
						|
 | 
						|
      return closest;
 | 
						|
    }
 | 
						|
 | 
						|
    function find(selector) {
 | 
						|
      const foundElements = [];
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const found = this[i].querySelectorAll(selector);
 | 
						|
 | 
						|
        for (let j = 0; j < found.length; j += 1) {
 | 
						|
          foundElements.push(found[j]);
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return $(foundElements);
 | 
						|
    }
 | 
						|
 | 
						|
    function children(selector) {
 | 
						|
      const children = []; // eslint-disable-line
 | 
						|
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const childNodes = this[i].children;
 | 
						|
 | 
						|
        for (let j = 0; j < childNodes.length; j += 1) {
 | 
						|
          if (!selector || $(childNodes[j]).is(selector)) {
 | 
						|
            children.push(childNodes[j]);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return $(children);
 | 
						|
    }
 | 
						|
 | 
						|
    function remove() {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    function detach() {
 | 
						|
      return this.remove();
 | 
						|
    }
 | 
						|
 | 
						|
    function add(...els) {
 | 
						|
      const dom = this;
 | 
						|
      let i;
 | 
						|
      let j;
 | 
						|
 | 
						|
      for (i = 0; i < els.length; i += 1) {
 | 
						|
        const toAdd = $(els[i]);
 | 
						|
 | 
						|
        for (j = 0; j < toAdd.length; j += 1) {
 | 
						|
          dom.push(toAdd[j]);
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return dom;
 | 
						|
    }
 | 
						|
 | 
						|
    function empty() {
 | 
						|
      for (let i = 0; i < this.length; i += 1) {
 | 
						|
        const el = this[i];
 | 
						|
 | 
						|
        if (el.nodeType === 1) {
 | 
						|
          for (let j = 0; j < el.childNodes.length; j += 1) {
 | 
						|
            if (el.childNodes[j].parentNode) {
 | 
						|
              el.childNodes[j].parentNode.removeChild(el.childNodes[j]);
 | 
						|
            }
 | 
						|
          }
 | 
						|
 | 
						|
          el.textContent = '';
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
 | 
						|
    var methods = /*#__PURE__*/Object.freeze({
 | 
						|
        __proto__: null,
 | 
						|
        addClass: addClass,
 | 
						|
        removeClass: removeClass,
 | 
						|
        toggleClass: toggleClass,
 | 
						|
        hasClass: hasClass,
 | 
						|
        attr: attr,
 | 
						|
        removeAttr: removeAttr,
 | 
						|
        prop: prop,
 | 
						|
        data: data,
 | 
						|
        removeData: removeData,
 | 
						|
        dataset: dataset,
 | 
						|
        val: val,
 | 
						|
        value: value,
 | 
						|
        transform: transform,
 | 
						|
        transition: transition,
 | 
						|
        on: on,
 | 
						|
        off: off,
 | 
						|
        once: once,
 | 
						|
        trigger: trigger,
 | 
						|
        transitionEnd: transitionEnd,
 | 
						|
        animationEnd: animationEnd,
 | 
						|
        width: width,
 | 
						|
        outerWidth: outerWidth,
 | 
						|
        height: height,
 | 
						|
        outerHeight: outerHeight,
 | 
						|
        offset: offset,
 | 
						|
        hide: hide,
 | 
						|
        show: show,
 | 
						|
        styles: styles,
 | 
						|
        css: css,
 | 
						|
        each: each,
 | 
						|
        filter: filter,
 | 
						|
        html: html,
 | 
						|
        text: text,
 | 
						|
        is: is,
 | 
						|
        index: index,
 | 
						|
        eq: eq,
 | 
						|
        append: append,
 | 
						|
        appendTo: appendTo,
 | 
						|
        prepend: prepend,
 | 
						|
        prependTo: prependTo,
 | 
						|
        insertBefore: insertBefore,
 | 
						|
        insertAfter: insertAfter,
 | 
						|
        next: next,
 | 
						|
        nextAll: nextAll,
 | 
						|
        prev: prev,
 | 
						|
        prevAll: prevAll,
 | 
						|
        siblings: siblings,
 | 
						|
        parent: parent,
 | 
						|
        parents: parents,
 | 
						|
        closest: closest,
 | 
						|
        find: find,
 | 
						|
        children: children,
 | 
						|
        remove: remove,
 | 
						|
        detach: detach,
 | 
						|
        add: add,
 | 
						|
        empty: empty
 | 
						|
    });
 | 
						|
 | 
						|
    // eslint-disable-next-line
 | 
						|
 | 
						|
    function scrollTo(...args) {
 | 
						|
      const window = getWindow();
 | 
						|
      let [left, top, duration, easing, callback] = args;
 | 
						|
 | 
						|
      if (args.length === 4 && typeof easing === 'function') {
 | 
						|
        callback = easing;
 | 
						|
        [left, top, duration, callback, easing] = args;
 | 
						|
      }
 | 
						|
 | 
						|
      if (typeof easing === 'undefined') easing = 'swing';
 | 
						|
      return this.each(function animate() {
 | 
						|
        const el = this;
 | 
						|
        let currentTop;
 | 
						|
        let currentLeft;
 | 
						|
        let maxTop;
 | 
						|
        let maxLeft;
 | 
						|
        let newTop;
 | 
						|
        let newLeft;
 | 
						|
        let scrollTop; // eslint-disable-line
 | 
						|
 | 
						|
        let scrollLeft; // eslint-disable-line
 | 
						|
 | 
						|
        let animateTop = top > 0 || top === 0;
 | 
						|
        let animateLeft = left > 0 || left === 0;
 | 
						|
 | 
						|
        if (typeof easing === 'undefined') {
 | 
						|
          easing = 'swing';
 | 
						|
        }
 | 
						|
 | 
						|
        if (animateTop) {
 | 
						|
          currentTop = el.scrollTop;
 | 
						|
 | 
						|
          if (!duration) {
 | 
						|
            el.scrollTop = top;
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        if (animateLeft) {
 | 
						|
          currentLeft = el.scrollLeft;
 | 
						|
 | 
						|
          if (!duration) {
 | 
						|
            el.scrollLeft = left;
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        if (!duration) return;
 | 
						|
 | 
						|
        if (animateTop) {
 | 
						|
          maxTop = el.scrollHeight - el.offsetHeight;
 | 
						|
          newTop = Math.max(Math.min(top, maxTop), 0);
 | 
						|
        }
 | 
						|
 | 
						|
        if (animateLeft) {
 | 
						|
          maxLeft = el.scrollWidth - el.offsetWidth;
 | 
						|
          newLeft = Math.max(Math.min(left, maxLeft), 0);
 | 
						|
        }
 | 
						|
 | 
						|
        let startTime = null;
 | 
						|
        if (animateTop && newTop === currentTop) animateTop = false;
 | 
						|
        if (animateLeft && newLeft === currentLeft) animateLeft = false;
 | 
						|
 | 
						|
        function render(time = new Date().getTime()) {
 | 
						|
          if (startTime === null) {
 | 
						|
            startTime = time;
 | 
						|
          }
 | 
						|
 | 
						|
          const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
 | 
						|
          const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;
 | 
						|
          let done;
 | 
						|
          if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);
 | 
						|
          if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);
 | 
						|
 | 
						|
          if (animateTop && newTop > currentTop && scrollTop >= newTop) {
 | 
						|
            el.scrollTop = newTop;
 | 
						|
            done = true;
 | 
						|
          }
 | 
						|
 | 
						|
          if (animateTop && newTop < currentTop && scrollTop <= newTop) {
 | 
						|
            el.scrollTop = newTop;
 | 
						|
            done = true;
 | 
						|
          }
 | 
						|
 | 
						|
          if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {
 | 
						|
            el.scrollLeft = newLeft;
 | 
						|
            done = true;
 | 
						|
          }
 | 
						|
 | 
						|
          if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {
 | 
						|
            el.scrollLeft = newLeft;
 | 
						|
            done = true;
 | 
						|
          }
 | 
						|
 | 
						|
          if (done) {
 | 
						|
            if (callback) callback();
 | 
						|
            return;
 | 
						|
          }
 | 
						|
 | 
						|
          if (animateTop) el.scrollTop = scrollTop;
 | 
						|
          if (animateLeft) el.scrollLeft = scrollLeft;
 | 
						|
          window.requestAnimationFrame(render);
 | 
						|
        }
 | 
						|
 | 
						|
        window.requestAnimationFrame(render);
 | 
						|
      });
 | 
						|
    } // scrollTop(top, duration, easing, callback) {
 | 
						|
 | 
						|
 | 
						|
    function scrollTop(...args) {
 | 
						|
      let [top, duration, easing, callback] = args;
 | 
						|
 | 
						|
      if (args.length === 3 && typeof easing === 'function') {
 | 
						|
        [top, duration, callback, easing] = args;
 | 
						|
      }
 | 
						|
 | 
						|
      const dom = this;
 | 
						|
 | 
						|
      if (typeof top === 'undefined') {
 | 
						|
        if (dom.length > 0) return dom[0].scrollTop;
 | 
						|
        return null;
 | 
						|
      }
 | 
						|
 | 
						|
      return dom.scrollTo(undefined, top, duration, easing, callback);
 | 
						|
    }
 | 
						|
 | 
						|
    function scrollLeft(...args) {
 | 
						|
      let [left, duration, easing, callback] = args;
 | 
						|
 | 
						|
      if (args.length === 3 && typeof easing === 'function') {
 | 
						|
        [left, duration, callback, easing] = args;
 | 
						|
      }
 | 
						|
 | 
						|
      const dom = this;
 | 
						|
 | 
						|
      if (typeof left === 'undefined') {
 | 
						|
        if (dom.length > 0) return dom[0].scrollLeft;
 | 
						|
        return null;
 | 
						|
      }
 | 
						|
 | 
						|
      return dom.scrollTo(left, undefined, duration, easing, callback);
 | 
						|
    }
 | 
						|
 | 
						|
    var scroll$1 = /*#__PURE__*/Object.freeze({
 | 
						|
        __proto__: null,
 | 
						|
        scrollTo: scrollTo,
 | 
						|
        scrollTop: scrollTop,
 | 
						|
        scrollLeft: scrollLeft
 | 
						|
    });
 | 
						|
 | 
						|
    // eslint-disable-next-line
 | 
						|
 | 
						|
    function animate(initialProps, initialParams) {
 | 
						|
      const window = getWindow();
 | 
						|
      const els = this;
 | 
						|
      const a = {
 | 
						|
        props: Object.assign({}, initialProps),
 | 
						|
        params: Object.assign({
 | 
						|
          duration: 300,
 | 
						|
          easing: 'swing' // or 'linear'
 | 
						|
 | 
						|
          /* Callbacks
 | 
						|
          begin(elements)
 | 
						|
          complete(elements)
 | 
						|
          progress(elements, complete, remaining, start, tweenValue)
 | 
						|
          */
 | 
						|
 | 
						|
        }, initialParams),
 | 
						|
        elements: els,
 | 
						|
        animating: false,
 | 
						|
        que: [],
 | 
						|
 | 
						|
        easingProgress(easing, progress) {
 | 
						|
          if (easing === 'swing') {
 | 
						|
            return 0.5 - Math.cos(progress * Math.PI) / 2;
 | 
						|
          }
 | 
						|
 | 
						|
          if (typeof easing === 'function') {
 | 
						|
            return easing(progress);
 | 
						|
          }
 | 
						|
 | 
						|
          return progress;
 | 
						|
        },
 | 
						|
 | 
						|
        stop() {
 | 
						|
          if (a.frameId) {
 | 
						|
            window.cancelAnimationFrame(a.frameId);
 | 
						|
          }
 | 
						|
 | 
						|
          a.animating = false;
 | 
						|
          a.elements.each(el => {
 | 
						|
            const element = el;
 | 
						|
            delete element.dom7AnimateInstance;
 | 
						|
          });
 | 
						|
          a.que = [];
 | 
						|
        },
 | 
						|
 | 
						|
        done(complete) {
 | 
						|
          a.animating = false;
 | 
						|
          a.elements.each(el => {
 | 
						|
            const element = el;
 | 
						|
            delete element.dom7AnimateInstance;
 | 
						|
          });
 | 
						|
          if (complete) complete(els);
 | 
						|
 | 
						|
          if (a.que.length > 0) {
 | 
						|
            const que = a.que.shift();
 | 
						|
            a.animate(que[0], que[1]);
 | 
						|
          }
 | 
						|
        },
 | 
						|
 | 
						|
        animate(props, params) {
 | 
						|
          if (a.animating) {
 | 
						|
            a.que.push([props, params]);
 | 
						|
            return a;
 | 
						|
          }
 | 
						|
 | 
						|
          const elements = []; // Define & Cache Initials & Units
 | 
						|
 | 
						|
          a.elements.each((el, index) => {
 | 
						|
            let initialFullValue;
 | 
						|
            let initialValue;
 | 
						|
            let unit;
 | 
						|
            let finalValue;
 | 
						|
            let finalFullValue;
 | 
						|
            if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;
 | 
						|
            elements[index] = {
 | 
						|
              container: el
 | 
						|
            };
 | 
						|
            Object.keys(props).forEach(prop => {
 | 
						|
              initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');
 | 
						|
              initialValue = parseFloat(initialFullValue);
 | 
						|
              unit = initialFullValue.replace(initialValue, '');
 | 
						|
              finalValue = parseFloat(props[prop]);
 | 
						|
              finalFullValue = props[prop] + unit;
 | 
						|
              elements[index][prop] = {
 | 
						|
                initialFullValue,
 | 
						|
                initialValue,
 | 
						|
                unit,
 | 
						|
                finalValue,
 | 
						|
                finalFullValue,
 | 
						|
                currentValue: initialValue
 | 
						|
              };
 | 
						|
            });
 | 
						|
          });
 | 
						|
          let startTime = null;
 | 
						|
          let time;
 | 
						|
          let elementsDone = 0;
 | 
						|
          let propsDone = 0;
 | 
						|
          let done;
 | 
						|
          let began = false;
 | 
						|
          a.animating = true;
 | 
						|
 | 
						|
          function render() {
 | 
						|
            time = new Date().getTime();
 | 
						|
            let progress;
 | 
						|
            let easeProgress; // let el;
 | 
						|
 | 
						|
            if (!began) {
 | 
						|
              began = true;
 | 
						|
              if (params.begin) params.begin(els);
 | 
						|
            }
 | 
						|
 | 
						|
            if (startTime === null) {
 | 
						|
              startTime = time;
 | 
						|
            }
 | 
						|
 | 
						|
            if (params.progress) {
 | 
						|
              // eslint-disable-next-line
 | 
						|
              params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);
 | 
						|
            }
 | 
						|
 | 
						|
            elements.forEach(element => {
 | 
						|
              const el = element;
 | 
						|
              if (done || el.done) return;
 | 
						|
              Object.keys(props).forEach(prop => {
 | 
						|
                if (done || el.done) return;
 | 
						|
                progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);
 | 
						|
                easeProgress = a.easingProgress(params.easing, progress);
 | 
						|
                const {
 | 
						|
                  initialValue,
 | 
						|
                  finalValue,
 | 
						|
                  unit
 | 
						|
                } = el[prop];
 | 
						|
                el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);
 | 
						|
                const currentValue = el[prop].currentValue;
 | 
						|
 | 
						|
                if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {
 | 
						|
                  el.container.style[prop] = finalValue + unit;
 | 
						|
                  propsDone += 1;
 | 
						|
 | 
						|
                  if (propsDone === Object.keys(props).length) {
 | 
						|
                    el.done = true;
 | 
						|
                    elementsDone += 1;
 | 
						|
                  }
 | 
						|
 | 
						|
                  if (elementsDone === elements.length) {
 | 
						|
                    done = true;
 | 
						|
                  }
 | 
						|
                }
 | 
						|
 | 
						|
                if (done) {
 | 
						|
                  a.done(params.complete);
 | 
						|
                  return;
 | 
						|
                }
 | 
						|
 | 
						|
                el.container.style[prop] = currentValue + unit;
 | 
						|
              });
 | 
						|
            });
 | 
						|
            if (done) return; // Then call
 | 
						|
 | 
						|
            a.frameId = window.requestAnimationFrame(render);
 | 
						|
          }
 | 
						|
 | 
						|
          a.frameId = window.requestAnimationFrame(render);
 | 
						|
          return a;
 | 
						|
        }
 | 
						|
 | 
						|
      };
 | 
						|
 | 
						|
      if (a.elements.length === 0) {
 | 
						|
        return els;
 | 
						|
      }
 | 
						|
 | 
						|
      let animateInstance;
 | 
						|
 | 
						|
      for (let i = 0; i < a.elements.length; i += 1) {
 | 
						|
        if (a.elements[i].dom7AnimateInstance) {
 | 
						|
          animateInstance = a.elements[i].dom7AnimateInstance;
 | 
						|
        } else a.elements[i].dom7AnimateInstance = a;
 | 
						|
      }
 | 
						|
 | 
						|
      if (!animateInstance) {
 | 
						|
        animateInstance = a;
 | 
						|
      }
 | 
						|
 | 
						|
      if (initialProps === 'stop') {
 | 
						|
        animateInstance.stop();
 | 
						|
      } else {
 | 
						|
        animateInstance.animate(a.props, a.params);
 | 
						|
      }
 | 
						|
 | 
						|
      return els;
 | 
						|
    }
 | 
						|
 | 
						|
    function stop() {
 | 
						|
      const els = this;
 | 
						|
 | 
						|
      for (let i = 0; i < els.length; i += 1) {
 | 
						|
        if (els[i].dom7AnimateInstance) {
 | 
						|
          els[i].dom7AnimateInstance.stop();
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    var animate$1 = /*#__PURE__*/Object.freeze({
 | 
						|
        __proto__: null,
 | 
						|
        animate: animate,
 | 
						|
        stop: stop
 | 
						|
    });
 | 
						|
 | 
						|
    const noTrigger = 'resize scroll'.split(' ');
 | 
						|
 | 
						|
    function shortcut(name) {
 | 
						|
      function eventHandler(...args) {
 | 
						|
        if (typeof args[0] === 'undefined') {
 | 
						|
          for (let i = 0; i < this.length; i += 1) {
 | 
						|
            if (noTrigger.indexOf(name) < 0) {
 | 
						|
              if (name in this[i]) this[i][name]();else {
 | 
						|
                $(this[i]).trigger(name);
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
 | 
						|
          return this;
 | 
						|
        }
 | 
						|
 | 
						|
        return this.on(name, ...args);
 | 
						|
      }
 | 
						|
 | 
						|
      return eventHandler;
 | 
						|
    }
 | 
						|
 | 
						|
    const click = shortcut('click');
 | 
						|
    const blur = shortcut('blur');
 | 
						|
    const focus = shortcut('focus');
 | 
						|
    const focusin = shortcut('focusin');
 | 
						|
    const focusout = shortcut('focusout');
 | 
						|
    const keyup = shortcut('keyup');
 | 
						|
    const keydown = shortcut('keydown');
 | 
						|
    const keypress = shortcut('keypress');
 | 
						|
    const submit = shortcut('submit');
 | 
						|
    const change = shortcut('change');
 | 
						|
    const mousedown = shortcut('mousedown');
 | 
						|
    const mousemove = shortcut('mousemove');
 | 
						|
    const mouseup = shortcut('mouseup');
 | 
						|
    const mouseenter = shortcut('mouseenter');
 | 
						|
    const mouseleave = shortcut('mouseleave');
 | 
						|
    const mouseout = shortcut('mouseout');
 | 
						|
    const mouseover = shortcut('mouseover');
 | 
						|
    const touchstart = shortcut('touchstart');
 | 
						|
    const touchend = shortcut('touchend');
 | 
						|
    const touchmove = shortcut('touchmove');
 | 
						|
    const resize = shortcut('resize');
 | 
						|
    const scroll = shortcut('scroll');
 | 
						|
 | 
						|
    var shortcuts = /*#__PURE__*/Object.freeze({
 | 
						|
        __proto__: null,
 | 
						|
        click: click,
 | 
						|
        blur: blur,
 | 
						|
        focus: focus,
 | 
						|
        focusin: focusin,
 | 
						|
        focusout: focusout,
 | 
						|
        keyup: keyup,
 | 
						|
        keydown: keydown,
 | 
						|
        keypress: keypress,
 | 
						|
        submit: submit,
 | 
						|
        change: change,
 | 
						|
        mousedown: mousedown,
 | 
						|
        mousemove: mousemove,
 | 
						|
        mouseup: mouseup,
 | 
						|
        mouseenter: mouseenter,
 | 
						|
        mouseleave: mouseleave,
 | 
						|
        mouseout: mouseout,
 | 
						|
        mouseover: mouseover,
 | 
						|
        touchstart: touchstart,
 | 
						|
        touchend: touchend,
 | 
						|
        touchmove: touchmove,
 | 
						|
        resize: resize,
 | 
						|
        scroll: scroll
 | 
						|
    });
 | 
						|
 | 
						|
    [methods, scroll$1, animate$1, shortcuts].forEach(group => {
 | 
						|
      Object.keys(group).forEach(methodName => {
 | 
						|
        $.fn[methodName] = group[methodName];
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
    return $;
 | 
						|
 | 
						|
})));
 | 
						|
//# sourceMappingURL=dom7.js.map
 |