You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
22 KiB

(function(b,a){typeof exports==="object"&&typeof module!=="undefined"?module.exports=a():typeof define==="function"&&define.amd?define(a):(b=b||self,b.Shuffle=a())}(this,function(){function b(Y,E){if(!(Y instanceof E)){throw new TypeError("Cannot call a class as a function")}}function d(aa,Z){for(var Y=0;Y<Z.length;Y++){var E=Z[Y];E.enumerable=E.enumerable||false;E.configurable=true;if("value" in E){E.writable=true}Object.defineProperty(aa,E.key,E)}}function c(E,Y,Z){if(Y){d(E.prototype,Y)}if(Z){d(E,Z)}return E}function f(E,Y){if(typeof Y!=="function"&&Y!==null){throw new TypeError("Super expression must either be null or a function")}E.prototype=Object.create(Y&&Y.prototype,{constructor:{value:E,writable:true,configurable:true}});if(Y){h(E,Y)}}function e(Y){E=Object.setPrototypeOf?Object.getPrototypeOf:function E(Z){return Z.__proto__||Object.getPrototypeOf(Z)};return E(Y)}function h(Y,Z){E=Object.setPrototypeOf||function E(aa,ab){aa.__proto__=ab;return aa};return E(Y,Z)}function a(E){if(E===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return E}function g(Y,E){if(E&&(typeof E==="object"||typeof E==="function")){return E}return a(Y)}function q(){}q.prototype={on:function(aa,E,Y){var Z=this.e||(this.e={});(Z[aa]||(Z[aa]=[])).push({fn:E,ctx:Y});return this},once:function(aa,E,Y){var ab=this;function Z(){ab.off(aa,Z);E.apply(Y,arguments)}Z._=E;return this.on(aa,Z,Y)},emit:function(ab){var E=[].slice.call(arguments,1);var Y=((this.e||(this.e={}))[ab]||[]).slice();var Z=0;var aa=Y.length;for(Z;Z<aa;Z++){Y[Z].fn.apply(Y[Z].ctx,E)}return this},off:function(ad,E){var Y=this.e||(this.e={});var Z=Y[ad];var ac=[];if(Z&&E){for(var aa=0,ab=Z.length;aa<ab;aa++){if(Z[aa].fn!==E&&Z[aa].fn._!==E){ac.push(Z[aa])}}}(ac.length)?Y[ad]=ac:delete Y[ad];return this}};var S=q;var T=q;S.TinyEmitter=T;var J=typeof Element!=="undefined"?Element.prototype:{};var X=J.matches||J.matchesSelector||J.webkitMatchesSelector||J.mozMatchesSelector||J.msMatchesSelector||J.oMatchesSelector;var D=C;function C(E,aa){if(!E||E.nodeType!==1){return false}if(X){return X.call(E,aa)}var Z=E.parentNode.querySelectorAll(aa);for(var Y=0;Y<Z.length;Y++){if(Z[Y]==E){return true}}return false}var R=Q;function Q(aa,af){var Z,E,ac,ae;var ab=0;return function ad(){Z=this;E=arguments;var ag=new Date()-ab;if(!ae){if(ag>=af){Y()}else{ae=setTimeout(Y,af-ag)}}return ac};function Y(){ae=0;ab=+new Date();ac=aa.apply(Z,E);Z=null;E=null}}var k=function H(aa,Y,E){if(!E){if(typeof Y==="function"){E=Y;Y=null}else{E=F}}var ac=aa&&aa.length;if(!ac){return E(null,[])}var Z=false;var ad=new Array(ac);aa.forEach(Y?function(ae,af){ae.call(Y,ab(af))}:function(ae,af){ae(ab(af))});function ab(ae){return function(af,ag){if(Z){return}if(af){E(af,ad);Z=true;return}ad[ae]=ag;if(!--ac){E(null,ad)}}}};function F(){}function w(E){return parseFloat(E)||0}var I=function(){function Y(Z,aa){b(this,Y);this.x=w(Z);this.y=w(aa)}c(Y,null,[{key:"equals",value:function E(Z,aa){return Z.x===aa.x&&Z.y===aa.y}}]);return Y}();var L=function(){function Y(ac,ad,ab,Z,aa){b(this,Y);this.id=aa;this.left=ac;this.top=ad;this.width=ab;this.height=Z}c(Y,null,[{key:"intersects",value:function E(Z,aa){return Z.left<aa.left+aa.width&&aa.left<Z.left+Z.width&&Z.top<aa.top+aa.height&&aa.top<Z.top+Z.height}}]);return Y}();var n={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"};var A=0;var N=function(){function ae(af){b(this,ae);A+=1;this.id=A;this.element=af;this.isVisible=true;this.isHidden=false}c(ae,[{key:"show",value:function ad(){this.isVisible=true;this.element.classList.remove(n.HIDDEN);this.element.classList.add(n.VISIBLE);this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function aa(){this.isVisible=false;this.element.classList.remove(n.VISIBLE);this.element.classList.add(n.HIDDEN);this.element.setAttribute("aria-hidden",true)}},{key:"init",value:function ab(){this.addClasses([n.SHUFFLE_ITEM,n.VISIBLE]);this.applyCss(ae.Css.INITIAL);this.scale=ae.Scale.VISIBLE;this.point=new I()}},{key:"addClasses",value:function E(ag){var af=this;ag.forEach(function(ah){af.element.classList.add(ah)})}},{key:"removeClasses",value:function ac(ag){var af=this;ag.forEach(function(ah){af.element.classList.remove(ah)})}},{key:"applyCss",value:function Y(ag){var af=this;Object.keys(ag).forEach(function(ah){af.element.style[ah]=ag[ah]})}},{key:"dispose",value:function Z(){this.removeClasses([n.HIDDEN,n.VISIBLE,n.SHUFFLE_ITEM]);this.element.removeAttribute("style");this.element=null}}]);return ae}();N.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible",willChange:"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}};N.Scale={VISIBLE:1,HIDDEN:0.001};var W=null;var P=(function(){if(W!==null){return W}var Y=document.body||document.documentElement;var E=document.createElement("div");E.style.cssText="width:10px;padding:2px;box-sizing:border-box;";Y.appendChild(E);W=window.getComputedStyle(E,null).width==="10px";Y.removeChild(E);return W});function x(E,Y){var Z=arguments.length>2&&arguments[2]!==undefined?arguments[2]:window.getComputedStyle(E,null);var aa=w(Z[Y]);if(!P()&&Y==="width"){aa+=w(Z.paddingLeft)+w(Z.paddingRight)+w(Z.borderLeftWidth)+w(Z.borderRightWidth)}else{if(!P()&&Y==="height"){aa+=w(Z.paddingTop)+w(Z.paddingBottom)+w(Z.borderTopWidth)+w(Z.borderBottomWidth)}}return aa}function K(E){var Z=E.length;while(Z){Z-=1;var Y=Math.floor(Math.random()*(Z+1));var aa=E[Y];E[Y]=E[Z];E[Z]=aa}return E}var p={reverse:false,by:null,compare:null,randomize:false,key:"element"};function O(E,Y){var Z=Object.assign({},p,Y);var aa=Array.from(E);var ab=false;if(!E.length){return[]}if(Z.randomize){return K(E)}if(typeof Z.by==="function"){E.sort(function(ac,ad){if(ab){return 0}var ae=Z.by(ac[Z.key]);var af=Z.by(ad[Z.key]);if(ae===undefined&&af===undefined){ab=true;return 0}if(ae<af||ae==="sortFirst"||af==="sortLast"){return -1}if(ae>af||ae==="sortLast"||af==="sortFirst"){return 1}return 0})}else{if(typeof Z.compare==="function"){E.sort(Z.compare)}}if(ab){return aa}if(Z.reverse){E.reverse()}return E}var U={};var r="transitionend";var o=0;function V(){o+=1;return r+o}function m(E){if(U[E]){U[E].element.removeEventListener(r,U[E].listener);U[E]=null;return true}return false}function G(Y,E){var Z=V();var aa=function aa(ab){if(ab.currentTarget===ab.target){m(Z);E(ab)}};Y.addEventListener(r,aa);U[Z]={element:Y,listener:aa};return Z}function i(E){return Math.max.apply(Math,E)}function j(E){return Math.min.apply(Math,E)}function u(aa,Z,E,ab){var Y=aa/Z;if(Math.abs(Math.round(Y)-Y)<ab){Y=Math.round(Y)}return Math.min(Math.ceil(Y),E)}function s(ab,Z,Y){if(Z===1){return ab}var E=[];for(var aa=0;aa<=Y-Z;aa++){E.push(i(ab.slice(aa,aa+Z)))}return E}function y(ab,E){var aa=j(ab);for(var Y=0,Z=ab.length;Y<Z;Y++){if(ab[Y]>=aa-E&&ab[Y]<=aa+E){return Y}}return 0}function v(E){var ab=E.itemSize,ad=E.positions,Z=E.gridSize,aj=E.total,ai=E.threshold,Y=E.buffer;var ah=u(ab.width,Z,aj,ai);var af=s(ad,ah,aj);var ag=y(af,Y);var ac=new I(Z*ag,af[ag]);var ae=af[ag]+ab.height;for(var aa=0;aa<ah;aa++){ad[ag+aa]=ae}return ac}function t(Z,Y){var ab={};Z.forEach(function(ad){if(ab[ad.top]){ab[ad.top].push(ad)}else{ab[ad.top]=[ad]}});var aa=[];var ac=[];var E=[];Object.keys(ab).forEach(function(aj){var ai=ab[aj];ac.push(ai);var ak=ai[ai.length-1];var ae=ak.left+ak.width;var am=Math.round((Y-ae)/2);var af=ai;var ad=false;if(am>0){var al=[];ad=ai.every(function(aq){var ao=new L(aq.left+am,aq.top,aq.width,aq.height,aq.id);var ap=!aa.some(function(ar){return L.intersects(ao,ar)});al.push(ao);return ap});if(ad){af=al}}if(!ad){var ah;var ag=ai.some(function(ao){return aa.some(function(aq){var ap=L.intersects(ao,aq);if(ap){ah=aq}return ap})});if(ag){var an=E.findIndex(function(ao){return ao.includes(ah)});E.splice(an,1,ac[an])}}aa=aa.concat(af);E.push(af)});return[].concat.apply([],E).sort(function(ad,ae){return ad.id-ae.id}).map(function(ad){return new I(ad.left,ad.top)})}function z(E){return E.replace(/([A-Z])/g,function(Z,Y){return"-".concat(Y.toLowerCase())})}function l(E){return Array.from(new Set(E))}var B=0;var M=function(aE){f(aW,aE);function aW(a1){var aZ;var a2=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};b(this,aW);aZ=g(this,e(aW).call(this));aZ.options=Object.assign({},aW.options,a2);if(aZ.options.delimeter){aZ.options.delimiter=aZ.options.delimeter}aZ.lastSort={};aZ.group=aW.ALL_ITEMS;aZ.lastFilter=aW.ALL_ITEMS;aZ.isEnabled=true;aZ.isDestroyed=false;aZ.isInitialized=false;aZ._transitions=[];aZ.isTransitioning=false;aZ._queue=[];var a0=aZ._getElementOption(a1);if(!a0){throw new TypeError("Shuffle needs to be initialized with an element.")}aZ.element=a0;aZ.id="shuffle_"+B;B+=1;aZ._init();aZ.isInitialized=true;return aZ}c(aW,[{key:"_init",value:function aq(){this.items=this._getItems();this.options.sizer=this._getElementOption(this.options.sizer);this.element.classList.add(aW.Classes.BASE);this._initItems(this.items);this._onResize=this._getResizeFunction();window.addEventListener("resize",this._onResize);if(document.readyState!=="complete"){var a1=this.layout.bind(this);window.addEventListener("load",function a2(){window.removeEventListener("load",a2);a1()})}var aZ=window.getComputedStyle(this.element,null);var a0=aW.getSize(this.element).width;this._validateStyles(aZ);this._setColumns(a0);this.filter(this.options.group,this.options.initialSort);this.element.offsetWidth;this.setItemTransitions(this.items);this.element.style.transition="height ".concat(this.options.speed,"ms ").concat(this.options.easing)}},{key:"_getResizeFunction",value:function am(){var aZ=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(aZ,this.options.throttleTime):aZ}},{key:"_getElementOption",value:function af(aZ){if(typeof aZ==="string"){return this.element.querySelector(aZ)}if(aZ&&aZ.nodeType&&aZ.nodeType===1){return aZ}if(aZ&&aZ.jquery){return aZ[0]}return null}},{key:"_validateStyles",value:function aH(aZ){if(aZ.position==="static"){this.element.style.position="relative"}if(aZ.overflow!=="hidden"){this.element.style.overflow="hidden"}}},{key:"_filter",value:function ab(){var aZ=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.lastFilter;var a0=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.items;var a1=this._getFilteredSets(aZ,a0);this._toggleFilterClasses(a1);this.lastFilter=aZ;if(typeof aZ==="string"){this.group=aZ}return a1}},{key:"_getFilteredSets",value:function ah(a0,a2){var aZ=this;var a3=[];var a1=[];if(a0===aW.ALL_ITEMS){a3=a2}else{a2.forEach(function(a4){if(aZ._doesPassFilter(a0,a4.element)){a3.push(a4)}else{a1.push(a4)}})}return{visible:a3,hidden:a1}}},{key:"_doesPassFilter",value:function aa(a0,a1){if(typeof a0==="function"){return a0.call(a1,a1,this)}var aZ=a1.getAttribute("data-"+aW.FILTER_ATTRIBUTE_KEY);var a2=this.options.delimiter?aZ.split(this.options.delimiter):JSON.parse(aZ);function a3(a4){return a2.includes(a4)}if(Array.isArray(a0)){if(this.options.filterMode===aW.FilterMode.ANY){return a0.some(a3)}return a0.every(a3)}return a2.includes(a0)}},{key:"_toggleFilterClasses",value:function aF(aZ){var a1=aZ.visible,a0=aZ.hidden;a1.forEach(function(a2){a2.show()});a0.forEach(function(a2){a2.hide()})}},{key:"_initItems",value:function ar(aZ){aZ.forEach(function(a0){a0.init()})}},{key:"_disposeItems",value:function Z(aZ){aZ.forEach(function(a0){a0.dispose()})}},{key:"_updateItemCount",value:function aG(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function aV(a2){var aZ=this.options,a5=aZ.speed,a1=aZ.easing;var a3=this.options.useTransforms?["transform"]:["top","left"];var a0=Object.keys(N.Css.HIDDEN.before).map(function(a6){return z(a6)});var a4=a3.concat(a0).join();a2.forEach(function(a6){a6.element.style.transitionDuration=a5+"ms";a6.element.style.transitionTimingFunction=a1;a6.element.style.transitionProperty=a4})}},{key:"_getItems",value:function ak(){var aZ=this;return Array.from(this.element.children).filter(function(a0){return D(a0,aZ.options.itemSelector)}).map(function(a0){return new N(a0)})}},{key:"_mergeNewItems",value:function au(a1){var a0=Array.from(this.element.children);return O(this.items.concat(a1),{by:function aZ(a2){return a0.indexOf(a2)}})}},{key:"_getFilteredItems",value:function ag(){return this.items.filter(function(aZ){return aZ.isVisible})}},{key:"_getConcealedItems",value:function ad(){return this.items.filter(function(aZ){return !aZ.isVisible})}},{key:"_getColumnSize",value:function ac(aZ,a0){var a1;if(typeof this.options.columnWidth==="function"){a1=this.options.columnWidth(aZ)}else{if(this.options.sizer){a1=aW.getSize(this.options.sizer).width}else{if(this.options.columnWidth){a1=this.options.columnWidth}else{if(this.items.length>0){a1=aW.getSize(this.items[0].element,true).width}else{a1=aZ}}}}if(a1===0){a1=aZ}return a1+a0}},{key:"_getGutterSize",value:function ai(aZ){var a0;if(typeof this.options.gutterWidth==="function"){a0=this.options.gutterWidth(aZ)}else{if(this.options.sizer){a0=x(this.options.sizer,"marginLeft")}else{a0=this.options.gutterWidth}}return a0}},{key:"_setColumns",value:function ay(){var a1=arguments.length>0&&arguments[0]!==undefined?arguments[0]:aW.getSize(this.element).width;var a2=this._getGutterSize(a1);var a0=this._getColumnSize(a1,a2);var aZ=(a1+a2)/a0;if(Math.abs(Math.round(aZ)-aZ)<this.options.columnThreshold){aZ=Math.round(aZ)}this.cols=Math.max(Math.floor(aZ||0),1);this.containerWidth=a1;this.colWidth=a0}},{key:"_setContainerSize",value:function az(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function ae(){return i(this.positions)}},{key:"_getStaggerAmount",value:function an(aZ){return Math.min(aZ*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function Y(a0){var aZ=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.isDestroyed){return}aZ.shuffle=this;this.emit(a0,aZ)}},{key:"_resetCols",value:function ax(){var aZ=this.cols;this.positions=[];while(aZ){aZ-=1;this.positions.push(0)}}},{key:"_layout",value:function at(a2){var aZ=this;var a1=this._getNextPositions(a2);var a0=0;a2.forEach(function(a5,a4){function a3(){a5.applyCss(N.Css.VISIBLE.after)}if(I.equals(a5.point,a1[a4])&&!a5.isHidden){a5.applyCss(N.Css.VISIBLE.before);a3();return}a5.point=a1[a4];a5.scale=N.Scale.VISIBLE;a5.isHidden=false;var a6=aZ.getStylesForTransition(a5,N.Css.VISIBLE.before);a6.transitionDelay=aZ._getStaggerAmount(a0)+"ms";aZ._queue.push({item:a5,styles:a6,callback:a3});a0+=1})}},{key:"_getNextPositions",value:function al(a0){var aZ=this;if(this.options.isCentered){var a1=a0.map(function(a3,a2){var a4=aW.getSize(a3.element,true);var a5=aZ._getItemPosition(a4);return new L(a5.x,a5.y,a4.width,a4.height,a2)});return this.getTransformedPositions(a1,this.containerWidth)}return a0.map(function(a2){return aZ._getItemPosition(aW.getSize(a2.element,true))})}},{key:"_getItemPosition",value:function aj(aZ){return v({itemSize:aZ,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:function aR(a0,aZ){return t(a0,aZ)}},{key:"_shrink",value:function aA(){var aZ=this;var a0=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this._getConcealedItems();var a1=0;a0.forEach(function(a3){function a2(){a3.applyCss(N.Css.HIDDEN.after)}if(a3.isHidden){a3.applyCss(N.Css.HIDDEN.before);a2();return}a3.scale=N.Scale.HIDDEN;a3.isHidden=true;var a4=aZ.getStylesForTransition(a3,N.Css.HIDDEN.before);a4.transitionDelay=aZ._getStaggerAmount(a1)+"ms";aZ._queue.push({item:a3,styles:a4,callback:a2});a1+=1})}},{key:"_handleResize",value:function ap(){if(!this.isEnabled||this.isDestroyed){return}this.update()}},{key:"getStylesForTransition",value:function aQ(aZ,a0){var a1=Object.assign({},a0);if(this.options.useTransforms){var a2=this.options.roundTransforms?Math.round(aZ.point.x):aZ.point.x;var a3=this.options.roundTransforms?Math.round(aZ.point.y):aZ.point.y;a1.transform="translate(".concat(a2,"px, ").concat(a3,"px) scale(").concat(aZ.scale,")")}else{a1.left=aZ.point.x+"px";a1.top=aZ.point.y+"px"}return a1}},{key:"_whenTransitionDone",value:function aI(a0,a2,aZ){var a1=G(a0,function(a3){a2();aZ(null,a3)});this._transitions.push(a1)}},{key:"_getTransitionFunction",value:function ao(a0){var aZ=this;return function(a1){a0.item.applyCss(a0.styles);aZ._whenTransitionDone(a0.item.element,a0.callback,a1)}}},{key:"_processQueue",value:function aw(){if(this.isTransitioning){this._cancelMovement()}var a0=this.options.speed>0;var aZ=this._queue.length>0;if(aZ&&a0&&this.isInitialized){this._startTransitions(this._queue)}else{if(aZ){this._styleImmediately(this._queue);this._dispatch(aW.EventType.LAYOUT)}else{this._dispatch(aW.EventType.LAYOUT)}}this._queue.length=0}},{key:"_startTransitions",value:function aC(a1){var aZ=this;this.isTransitioning=true;var a0=a1.map(function(a2){return aZ._getTransitionFunction(a2)});k(a0,this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function E(){this._transitions.forEach(m);this._transitions.length=0;this.isTransitioning=false}},{key:"_styleImmediately",value:function aD(a0){if(a0.length){var aZ=a0.map(function(a1){return a1.item.element});aW._skipTransitions(aZ,function(){a0.forEach(function(a1){a1.item.applyCss(a1.styles);a1.callback()})})}}},{key:"_movementFinished",value:function av(){this._transitions.length=0;this.isTransitioning=false;this._dispatch(aW.EventType.LAYOUT)}},{key:"filter",value:function aN(aZ,a0){if(!this.isEnabled){return}if(!aZ||aZ&&aZ.length===0){aZ=aW.ALL_ITEMS}this._filter(aZ);this._shrink();this._updateItemCount();this.sort(a0)}},{key:"sort",value:function aX(){var a0=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.lastSort;if(!this.isEnabled){return}this._resetCols();var aZ=O(this._getFilteredItems(),a0);this._layout(aZ);this._processQueue();this._setContainerSize();this.lastSort=a0}},{key:"update",value:function aY(){var aZ=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.isEnabled){if(!aZ){this._setColumns()}this.sort()}}},{key:"layout",value:function aS(){this.update(true)}},{key:"add",value:function aJ(a6){var aZ=this;var a5=l(a6).map(function(a8){return new N(a8)});this._initItems(a5);this._resetCols();var a0=this._mergeNewItems(a5);var a7=O(a0,this.lastSort);var a1=this._filter(this.lastFilter,a7);var a3=function a3(a8){return a5.includes(a8)};var a2=function a2(a8){a8.scale=N.Scale.HIDDEN;a8.isHidden=true;a8.applyCss(N.Css.HIDDEN.before);a8.applyCss(N.Css.HIDDEN.after)};var a4=this._getNextPositions(a1.visible);a1.visible.forEach(function(a9,a8){if(a3(a9)){a9.point=a4[a8];a2(a9);a9.applyCss(aZ.getStylesForTransition(a9,{}))}});a1.hidden.forEach(function(a8){if(a3(a8)){a2(a8)}});this.element.offsetWidth;this.setItemTransitions(a5);this.items=this._mergeNewItems(a5);this.filter(this.lastFilter)}},{key:"disable",value:function aL(){this.isEnabled=false}},{key:"enable",value:function aM(){var aZ=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.isEnabled=true;if(aZ){this.update()}}},{key:"remove",value:function aT(a1){var aZ=this;if(!a1.length){return}var a0=l(a1);var a3=a0.map(function(a4){return aZ.getItemByElement(a4)}).filter(function(a4){return !!a4});var a2=function a2(){aZ._disposeItems(a3);a0.forEach(function(a4){a4.parentNode.removeChild(a4)});aZ._dispatch(aW.EventType.REMOVED,{collection:a0})};this._toggleFilterClasses({visible:[],hidden:a3});this._shrink(a3);this.sort();this.items=this.items.filter(function(a4){return !a3.includes(a4)});this._updateItemCount();this.once(aW.EventType.LAYOUT,a2)}},{key:"getItemByElement",value:function aO(aZ){return this.items.find(function(a0){return a0.element===aZ})}},{key:"resetItems",value:function aU(){var aZ=this;this._disposeItems(this.items);this.isInitialized=false;this.items=this._getItems();this._initItems(this.items);this.once(aW.EventType.LAYOUT,function(){aZ.setItemTransitions(aZ.items);aZ.isInitialized=true});this.filter(this.lastFilter)}},{key:"destroy",value:function aK(){this._cancelMovement();window.removeEventListener("resize",this._onResize);this.element.classList.remove("shuffle");this.element.removeAttribute("style");this._disposeItems(this.items);this.items.length=0;this._transitions.length=0;this.options.sizer=null;this.element=null;this.isDestroyed=true;this.isEnabled=false}}],[{key:"getSize",value:function aP(aZ){var a1=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var a6=window.getComputedStyle(aZ,null);var a7=x(aZ,"width",a6);var a0=x(aZ,"height",a6);if(a1){var a3=x(aZ,"marginLeft",a6);var a4=x(aZ,"marginRight",a6);var a5=x(aZ,"marginTop",a6);var a2=x(aZ,"marginBottom",a6);a7+=a3+a4;a0+=a5+a2}return{width:a7,height:a0}}},{key:"_skipTransitions",value:function aB(a1,aZ){var a2="0ms";var a0=a1.map(function(a5){var a6=a5.style;var a4=a6.transitionDuration;var a3=a6.transitionDelay;a6.transitionDuration=a2;a6.transitionDelay=a2;return{duration:a4,delay:a3}});aZ();a1[0].offsetWidth;a1.forEach(function(a3,a4){a3.style.transitionDuration=a0[a4].duration;a3.style.transitionDelay=a0[a4].delay})}}]);return aW}(S);M.ShuffleItem=N;M.ALL_ITEMS="all";M.FILTER_ATTRIBUTE_KEY="groups";M.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"};M.Classes=n;M.FilterMode={ANY:"any",ALL:"all"};M.options={group:M.ALL_ITEMS,speed:250,easing:"cubic-bezier(0.4, 0.0, 0.2, 1)",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimiter:null,buffer:0,columnThreshold:0.01,initialSort:null,throttle:R,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:true,filterMode:M.FilterMode.ANY,isCentered:false,roundTransforms:true};M.Point=I;M.Rect=L;M.__sorter=O;M.__getColumnSpan=u;M.__getAvailablePositions=s;M.__getShortColumn=y;M.__getCenteredPositions=t;return M}));