mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 12:41:20 -06:00 
			
		
		
		
	 b4ffa91cb4
			
		
	
	
		b4ffa91cb4
		
	
	
	
	
		
			
			Change-Id: I066c0e7f8ce87ec00b1141a1b44430444a819b42 (cherry picked from commit 05907a1a42da82737090d55046974d401f8af057)
		
			
				
	
	
		
			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
 |