toolshed-8.x-1.x-dev/js/EventListener.min.js

js/EventListener.min.js
"use strict";(({Toolshed:e,debounce:t})=>{class r{static isCallable(e){let t=null,s=e;return e instanceof Array&&([t,s]=e),"function"==typeof s&&(!t||t instanceof Object)}static callItem(e,...t){var s,i;if(e instanceof Array)return[s,i]=e,i.apply(s,t);if("function"==typeof e)return e(...t);throw new Error("Unable to execute callable method.")}constructor(){this.list=[]}size(){return this.list.length}call(t,...s){this.list.forEach(e=>r.callItem(e,t,...s))}add(e,t){if(!r.isCallable(e))throw new Error("Trying to add new callback, but it is not a valid callable.");this.remove(e),null!==t&&0<=t?this.list.splice(t-1,0,e):this.list.push(e)}remove(e){let t=this.indexOf(e);for(;0<=t;)this.list.splice(t,1),t=this.indexOf(e,t)}indexOf(e,t=0){if("function"==typeof e)return this.list.indexOf(e,t);for(var[s,i]=e instanceof Array?e:[null,e];t<this.list.length;++t){var n=this.list[t],[n,r]=n instanceof Array?n:[null,n];if(s===n&&(!i||i===r))return t}return-1}}e.EventListener=class{constructor(e,t,s){s=s||{},this.elem=e,this.event=t,this.autoListen=s.autoListen||!1,this.listeners=new r,s.debounce&&(this.debounce="boolean"==typeof s.debounce?100:s.debounce),this.eventOpts={capture:s.capture||!1,passive:s.passive||!1}}_run(e,...t){this.listners.call(e,...t)}trigger(e,...t){return this._run(e||new Event(this.event),t),this}listen(){return this.callback||this.autoListen&&!this.listeners.size()||(this.callback=this.debounce&&0<this.debounce&&t?t(this._run.bind(this),this.debounce):this._run.bind(this),this.elem.addEventListener(this.event,this.callback,this.eventOpts)),this}ignore(){return this.callback&&(this.elem.removeEventListener(this.event,this.callback),delete this.callback),this}add(e,t){return this.listeners.add(e,t),this.autoListen&&this.listen(),this}addBefore(e,t){t=t?this.listeners.indexOf(t):0;return this.add(e,t<0?0:t)}addAfter(e,t){let s=null;return t&&(s=0<=(s=this.listeners.indexOf(t))?s+1:-1),this.add(e,s)}remove(e){return this.listeners.remove(e),this.autoListen&&!this.listeners.size()&&this.ignore(),this}destroy(){this.ignore()}},e.MediaQueryListener=class{constructor(e){this.mode=null,this.curBp=null,this.bps=new Map,this.aliases=new Map,e.forEach(e=>{var t=window.matchMedia(e.mediaQuery);e.event&&!this.aliases.has(e.event)&&this.aliases.set(e.event,{on:new r,off:new r}),this.bps.set(e.id,{query:t,mode:e.event||null,inverted:e.inverted||!1})})}_changeMode(e){let t=null;var s,i;e!==this.curBp&&(this.curBp&&(s=this.bps.get(this.curBp))&&s.off&&s.off.call(this.curBp,"off"),(this.curBp=e)&&(s=this.bps.get(e))&&(t=s.mode,s.on)&&s.on.call(this.curBp,"on"),t!==this.mode)&&(this.mode&&(e=this.aliases.get(this.mode))&&e.off.call(this.mode,"off"),this.mode=t)&&(i=this.aliases.get(t))&&i.on.call(this.mode,"on")}checkBreakpoints(){var t=Array.from(this.bps.entries());for(let e=0;e<t.length;++e){var[s,i]=t[e];if(!i.query.matches!=!i.inverted)return s}return null}add(s,i,n="on"){if("on"===n||"off"===n){let e,t;if(this.aliases.has(s))e=this.aliases.get(s),t=this.mode;else{if(!this.bps.has(s))throw new Error(`Error adding ${s} with action `+n);e=this.bps.get(s),t=this.curBp,e[n]||(e[n]=new r)}e[n].add(i),t===s&&"on"===n?r.callItem(i,s,"on"):t!==s&&"off"===n&&r.callItem(i,s,"off")}return this}listen(){let e;this.bps.forEach((t,s)=>{t.callback||(t.callback=e=>{e=!e.matches!=!t.inverted?s:this.checkBreakpoints();this._changeMode(e)},t.query.addListener(t.callback)),e||!t.query.matches==!t.inverted||(e=s)}),this._changeMode(e)}ignore(){this.bps.forEach((e,t)=>{t.callback&&(t.query.removeListener(t.callback),delete t.callback)})}}})(Drupal);

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

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