1!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Shuffle=e()}(this,function(){"use strict";function t(){}t.prototype={on:function(t,e,i){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){var n=this;function s(){n.off(t,s),e.apply(i,arguments)}return s._=e,this.on(t,s,i)},emit:function(t){for(var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),n=0,s=i.length;n<s;n++)i[n].fn.apply(i[n].ctx,e);return this},off:function(t,e){var i=this.e||(this.e={}),n=i[t],s=[];if(n&&e)for(var o=0,r=n.length;o<r;o++)n[o].fn!==e&&n[o].fn._!==e&&s.push(n[o]);return s.length?i[t]=s:delete i[t],this}};var e=t,i="undefined"!=typeof Element?Element.prototype:{},s=i.matches||i.matchesSelector||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector,n=function(t,e){if(!t||1!==t.nodeType)return!1;if(s)return s.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1};function o(t,e){var i,n,s,o,r=0;return function(){i=this,n=arguments;var t=new Date-r;return o||(e<=t?l():o=setTimeout(l,e-t)),s};function l(){o=0,r=+new Date,s=t.apply(i,n),n=i=null}}function a(){}function r(t){return parseFloat(t)||0}var l=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},u=function(t,e,i){return e&&h(t.prototype,e),i&&h(t,i),t};function h(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var f=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},p=(u(c,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),c);function c(t,e){l(this,c),this.x=r(t),this.y=r(e)}var v=(u(d,null,[{key:"intersects",value:function(t,e){return t.left<e.left+e.width&&e.left<t.left+t.width&&t.top<e.top+e.height&&e.top<t.top+t.height}}]),d);function d(t,e,i,n,s){l(this,d),this.id=s,this.left=t,this.top=e,this.width=i,this.height=n}var m={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},y=0,g=(u(_,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(m.HIDDEN),this.element.classList.add(m.VISIBLE),this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(m.VISIBLE),this.element.classList.add(m.HIDDEN),this.element.setAttribute("aria-hidden",!0)}},{key:"init",value:function(){this.addClasses([m.SHUFFLE_ITEM,m.VISIBLE]),this.applyCss(_.Css.INITIAL),this.scale=_.Scale.VISIBLE,this.point=new p}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(e){var i=this;Object.keys(e).forEach(function(t){i.element.style[t]=e[t]})}},{key:"dispose",value:function(){this.removeClasses([m.HIDDEN,m.VISIBLE,m.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),_);function _(t){l(this,_),y+=1,this.id=y,this.element=t,this.isVisible=!0,this.isHidden=!1}g.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible","will-change":"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}},g.Scale={VISIBLE:1,HIDDEN:.001};var E=document.body||document.documentElement,I=document.createElement("div");I.style.cssText="width:10px;padding:2px;box-sizing:border-box;",E.appendChild(I);var b="10px"===window.getComputedStyle(I,null).width;function S(t,e,i){var n=2<arguments.length&&void 0!==i?i:window.getComputedStyle(t,null),s=r(n[e]);return b||"width"!==e?b||"height"!==e||(s+=r(n.paddingTop)+r(n.paddingBottom)+r(n.borderTopWidth)+r(n.borderBottomWidth)):s+=r(n.paddingLeft)+r(n.paddingRight)+r(n.borderLeftWidth)+r(n.borderRightWidth),s}E.removeChild(I);var k={reverse:!1,by:null,compare:null,randomize:!1,key:"element"};function T(t,e){var s=Object.assign({},k,e),i=Array.from(t),o=!1;return t.length?s.randomize?function(t){for(var e=t.length;e;){--e;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}(t):("function"==typeof s.by?t.sort(function(t,e){if(o)return 0;var i=s.by(t[s.key]),n=s.by(e[s.key]);return void 0===i&&void 0===n?(o=!0,0):i<n||"sortFirst"===i||"sortLast"===n?-1:n<i||"sortLast"===i||"sortFirst"===n?1:0}):"function"==typeof s.compare&&t.sort(s.compare),o?i:(s.reverse&&t.reverse(),t)):[]}var w={},C="transitionend",L=0;function D(t){return!!w[t]&&(w[t].element.removeEventListener(C,w[t].listener),!(w[t]=null))}function z(t,e){function i(t){t.currentTarget===t.target&&(D(n),e(t))}var n=C+(L+=1);return t.addEventListener(C,i),w[n]={element:t,listener:i},n}function M(t){return Math.max.apply(Math,t)}function A(t,e,i,n){var s=t/e;return Math.abs(Math.round(s)-s)<n&&(s=Math.round(s)),Math.min(Math.ceil(s),i)}function F(t,e,i){if(1===e)return t;for(var n=[],s=0;s<=i-e;s++)n.push(M(t.slice(s,s+e)));return n}function x(t,e){for(var i,n=(i=t,Math.min.apply(Math,i)),s=0,o=t.length;s<o;s++)if(t[s]>=n-e&&t[s]<=n+e)return s;return 0}function N(t,h){var f={};t.forEach(function(t){f[t.top]?f[t.top].push(t):f[t.top]=[t]});var c=[],d=[],m=[];return Object.keys(f).forEach(function(t){var e=f[t];d.push(e);
1var n,s,i,o=e[e.length-1],r=o.left+o.width,l=Math.round((h-r)/2),a=e,u=!1;0<l&&(n=[],(u=e.every(function(t){var e=new v(t.left+l,t.top,t.width,t.height,t.id),i=!c.some(function(t){return v.intersects(e,t)});return n.push(e),i}))&&(a=n)),u||(s=void 0,e.some(function(i){return c.some(function(t){var e=v.intersects(i,t);return e&&(s=t),e})})&&(i=m.findIndex(function(t){return t.includes(s)}),m.splice(i,1,d[i]))),c=c.concat(a),m.push(a)}),[].concat.apply([],m).sort(function(t,e){return t.id-e.id}).map(function(t){return new p(t.left,t.top)})}function O(t){return Array.from(new Set(t))}var H=0,B=(function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(W,e),u(W,[{key:"_init",value:function(){var e;this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.element.classList.add(W.Classes.BASE),this._initItems(this.items),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize),"complete"!==document.readyState&&(e=this.layout.bind(this),window.addEventListener("load",function t(){window.removeEventListener("load",t),e()}));var t=window.getComputedStyle(this.element,null),i=W.getSize(this.element).width;this._validateStyles(t),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this.setItemTransitions(this.items),this.element.style.transition="height "+this.options.speed+"ms "+this.options.easing}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(t,e){var i=0<arguments.length&&void 0!==t?t:this.lastFilter,n=1<arguments.length&&void 0!==e?e:this.items,s=this._getFilteredSets(i,n);return this._toggleFilterClasses(s),"string"==typeof(this.lastFilter=i)&&(this.group=i),s}},{key:"_getFilteredSets",value:function(e,t){var i=this,n=[],s=[];return e===W.ALL_ITEMS?n=t:t.forEach(function(t){i._doesPassFilter(e,t.element)?n.push(t):s.push(t)}),{visible:n,hidden:s}}},{key:"_doesPassFilter",value:function(t,e){if("function"==typeof t)return t.call(e,e,this);var i=e.getAttribute("data-"+W.FILTER_ATTRIBUTE_KEY),n=this.options.delimiter?i.split(this.options.delimiter):JSON.parse(i);function s(t){return n.includes(t)}return Array.isArray(t)?this.options.filterMode===W.FilterMode.ANY?t.some(s):t.every(s):n.includes(t)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}
1),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(t){t.forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(t){t.forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function(t){var e=this.options,i=e.speed,n=e.easing,s=this.options.useTransforms?["transform"]:["top","left"],o=Object.keys(g.Css.HIDDEN.before).map(function(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}),r=s.concat(o).join();t.forEach(function(t){t.element.style.transitionDuration=i+"ms",t.element.style.transitionTimingFunction=n,t.element.style.transitionProperty=r})}},{key:"_getItems",value:function(){var e=this;return Array.from(this.element.children).filter(function(t){return n(t,e.options.itemSelector)}).map(function(t){return new g(t)})}},{key:"_mergeNewItems",value:function(t){var e=Array.from(this.element.children);return T(this.items.concat(t),{by:function(t){return e.indexOf(t)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(t,e){var i=void 0;return 0===(i="function"==typeof this.options.columnWidth?this.options.columnWidth(t):this.options.sizer?W.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:0<this.items.length?W.getSize(this.items[0].element,!0).width:t)&&(i=t),i+e}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.options.sizer?S(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(t){var e=0<arguments.length&&void 0!==t?t:W.getSize(this.element).width,i=this._getGutterSize(e),n=this._getColumnSize(e,i),s=(e+i)/n;Math.abs(Math.round(s)-s)<this.options.columnThreshold&&(s=Math.round(s)),this.cols=Math.max(Math.floor(s),1),this.containerWidth=e,this.colWidth=n}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return M(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t,e){var i=1<arguments.length&&void 0!==e?e:{};this.isDestroyed||(i.shuffle=this).emit(t,i)}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)--t,this.positions.push(0)}},{key:"_layout",value:function(t){var s=this,o=this._getNextPositions(t),r=0;t.forEach(function(t,e){function i(){t.applyCss(g.Css.VISIBLE.after)}if(p.equals(t.point,o[e])&&!t.isHidden)return t.applyCss(g.Css.VISIBLE.before),void i();t.point=o[e],t.scale=g.Scale.VISIBLE,t.isHidden=!1;var n=s.getStylesForTransition(t,g.Css.VISIBLE.before);n.transitionDelay=s._getStaggerAmount(r)+"ms",s._queue.push({item:t,styles:n,callback:i}),r+=1})}},{key:"_getNextPositions",value:function(t){var s=this;if(this.options.isCentered){var e=t.map(function(t,e){var i=W.getSize(t.element,!0),n=s._getItemPosition(i);return new v(n.x,n.y,i.width,i.height,e)});return this.getTransformedPositions(e,this.containerWidth)}return t.map(function(t){return s._getItemPosition(W.getSize(t.element,!0))})}},{key:"_getItemPosition",value:function(t){return function(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,s=t.total,o=t.threshold,r=t.buffer,l=A(e.width,n,s,o),a=F(i,l,s),u=x(a,r),h=new p(n*u,a[u]),f=a[u]+e.height,c=0;c<l;c++)i[u+c]=f;return h}({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:N},{key:"_shrink",value:function(t){var n=this,e=0<arguments.length&&void 0!==t?t:this._getConcealedItems(),s=0;e.forEach(function(t){function e(){t.applyCss(g.Css.HIDDEN.after)}if(t.isHidden)return t.applyCss(g.Css.HIDDEN.before),void e();t.scale=g.Scale.HIDDEN,t.isHidden=!0;var i=n.getStylesForTransition(t,g.Css.HIDDEN.before);i.transitionDelay=n._getStaggerAmount(s)+"ms",n._queue.push({item:t,styles:i,callback:e}),s+=1})}},{key:"_handleResize",value:function(){this.isEnabled&&!this.isDestroyed&&this.update()}},{key:"getStylesForTransition",value:function(t,e){var i,n,s=Object.assign({},e);return this.options.useTransforms?(i=this.options.roundTransforms?Math.round(t.point.x):t.point.x,n=this.options.roundTransforms?Math.round(t.point.y):t.point.y,s.transform="translate("+i+"px, "+n+"px) scale("+t.scale+")"):(s.left=t.point.x+"px",s.top=t.point.y+"px"),s}}
1,{key:"_whenTransitionDone",value:function(t,e,i){var n=z(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(e){var i=this;return function(t){e.item.applyCss(e.styles),i._whenTransitionDone(e.item.element,e.callback,t)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=0<this.options.speed,e=0<this._queue.length;e&&t&&this.isInitialized?this._startTransitions(this._queue):(e&&this._styleImmediately(this._queue),this._dispatch(W.EventType.LAYOUT)),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0,function(t,i,n){n||("function"==typeof i?(n=i,i=null):n=a);var s=t&&t.length;if(!s)return n(null,[]);var o=!1,r=new Array(s);function l(i){return function(t,e){if(!o){if(t)return n(t,r),void(o=!0);r[i]=e,--s||n(null,r)}}}t.forEach(i?function(t,e){t.call(i,l(e))}:function(t,e){t(l(e))})}(t.map(function(t){return e._getTransitionFunction(t)}),this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(D),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(t){var e;t.length&&(e=t.map(function(t){return t.item.element}),W._skipTransitions(e,function(){t.forEach(function(t){t.item.applyCss(t.styles),t.callback()})}))}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatch(W.EventType.LAYOUT)}},{key:"filter",value:function(t,e){this.isEnabled&&((!t||t&&0===t.length)&&(t=W.ALL_ITEMS),this._filter(t),this._shrink(),this._updateItemCount(),this.sort(e))}},{key:"sort",value:function(t){var e,i=0<arguments.length&&void 0!==t?t:this.lastSort;this.isEnabled&&(this._resetCols(),e=T(this._getFilteredItems(),i),this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=i)}},{key:"update",value:function(t){var e=0<arguments.length&&void 0!==t&&t;this.isEnabled&&(e||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var i=this,e=O(t).map(function(t){return new g(t)});this._initItems(e),this._resetCols();function n(t){return e.includes(t)}function s(t){t.scale=g.Scale.HIDDEN,t.isHidden=!0,t.applyCss(g.Css.HIDDEN.before),t.applyCss(g.Css.HIDDEN.after)}var o=T(this._mergeNewItems(e),this.lastSort),r=this._filter(this.lastFilter,o),l=this._getNextPositions(r.visible);r.visible.forEach(function(t,e){n(t)&&(t.point=l[e],s(t),t.applyCss(i.getStylesForTransition(t,{})))}),r.hidden.forEach(function(t){n(t)&&s(t)}),this.element.offsetWidth,this.setItemTransitions(e),this.items=this._mergeNewItems(e),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(t){var e=!(0<arguments.length&&void 0!==t)||t;this.isEnabled=!0,e&&this.update()}},{key:"remove",value:function(t){var e,i,n=this;t.length&&(e=O(t),i=e.map(function(t){return n.getItemByElement(t)}).filter(function(t){return!!t}),this._toggleFilterClasses({visible:[],hidden:i}),this._shrink(i),this.sort(),this.items=this.items.filter(function(t){return!i.includes(t)}),this._updateItemCount(),this.once(W.EventType.LAYOUT,function(){n._disposeItems(i),e.forEach(function(t){t.parentNode.removeChild(t)}),n._dispatch(W.EventType.REMOVED,{collection:e})}))}},{key:"getItemByElement",value:function(e){return this.items.find(function(t){return t.element===e})}},{key:"resetItems",value:function(){var t=this;this._disposeItems(this.items),this.isInitialized=!1,this.items=this._getItems(),this._initItems(this.items),this.once(W.EventType.LAYOUT,function(){t.setItemTransitions(t.items),t.isInitialized=!0}),this.filter(this.lastFilter)}},{key:"destroy",value:function(){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=!0,this.isEnabled=!1}}],[{key:"getSize",value:function(t,e){var i=1<arguments.length&&void 0!==e&&e,n=window.getComputedStyle(t,null),s=S(t,"width",n),o=S(t,"height",n);return i&&(s+=S(t,"marginLeft",n)+S(t,"marginRight",n),o+=S(t,"marginTop",n)+S(t,"marginBottom",n)),{width:s,height:o}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),W);function W(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};l(this,W);var i=f(this,(W.__proto__||Object.getPrototypeOf(W)).call(this));i.options=Object.assign({},W.options,e),i.options.delimeter&&(i.options.delimiter=i.options.delimeter),i.lastSort={},i.group=W.ALL_ITEMS,i.lastFilter=W.ALL_ITEMS,i.isEnabled=!0,i.isDestroyed=!1,i.isInitialized=!1,i._transitions=[],i.isTransitioning=!1,i._queue=[];var n=i._getElementOption(t);
1if(!n)throw new TypeError("Shuffle needs to be initialized with an element.");return i.element=n,i.id="shuffle_"+H,H+=1,i._init(),i.isInitialized=!0,i}return B.ShuffleItem=g,B.ALL_ITEMS="all",B.FILTER_ATTRIBUTE_KEY="groups",B.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},B.Classes=m,B.FilterMode={ANY:"any",ALL:"all"},B.options={group:B.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:.01,initialSort:null,throttle:o,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:!0,filterMode:B.FilterMode.ANY,isCentered:!1,roundTransforms:!0},B.Point=p,B.Rect=v,B.__sorter=T,B.__getColumnSpan=A,B.__getAvailablePositions=F,B.__getShortColumn=x,B.__getCenteredPositions=N,B});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.