UNPKG

@egjs/infinitegrid

Version:

A module used to arrange elements including content infinitely according to grid type. With this module, you can implement various grids composed of different card elements whose sizes vary. It guarantees performance by maintaining the number of DOMs the

9 lines 103 kB
/* Copyright (c) NAVER Corp. name: @egjs/infinitegrid license: MIT author: NAVER Corp. repository: https://github.com/naver/egjs-infinitegrid version: 4.13.0 */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).InfiniteGrid=t()}(this,function(){var D=function(e,t){return(D=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}))(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}D(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var I=function(){return(I=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function L(e,t){var n={};for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function n(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;0<=a;a--)(r=e[a])&&(s=(o<3?r(s):3<o?r(t,n,s):r(t,n))||s);return 3<o&&s&&Object.defineProperty(t,n,s),s}function f(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||((i=i||Array.prototype.slice.call(t,0,r))[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}function N(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(i=o.next()).done;)s.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return s}(arguments[t]));return e}function a(e){return void 0===e}var G=function(){function e(e,t){var n,i;if(this._canceled=!1,t)try{for(var r=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&i>=e.length?void 0:e)&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(Object.keys(t)),o=r.next();!o.done;o=r.next()){var s=o.value;this[s]=t[s]}}catch(e){n={error:e}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(n)throw n.error}}this.eventType=e}var t=e.prototype;return t.stop=function(){this._canceled=!0},t.isCanceled=function(){return this._canceled},e}(),i=function(){function e(){this._eventHandler={}}var t=e.prototype;return t.trigger=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var i=t instanceof G?t.eventType:t,i=N(this._eventHandler[i]||[]);return i.length<=0||(t instanceof G?(t.currentTarget=this,i.forEach(function(e){e(t)})):i.forEach(function(e){e.apply(void 0,N(n))})),this},t.once=function(n,i){var r,o=this;if("object"==typeof n&&a(i)){var e,t=n;for(e in t)this.once(e,t[e])}else"string"==typeof n&&"function"==typeof i&&(r=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.apply(void 0,N(e)),o.off(n,r)},this.on(n,r));return this},t.hasOn=function(e){return!!this._eventHandler[e]},t.on=function(e,t){if("object"==typeof e&&a(t)){var n,i=e;for(n in i)this.on(n,i[n])}else{var r;"string"==typeof e&&"function"==typeof t&&(r=this._eventHandler[e],a(r)&&(this._eventHandler[e]=[],r=this._eventHandler[e]),r.push(t))}return this},t.off=function(e,t){if(a(e))this._eventHandler={};else if(a(t))if("string"==typeof e)delete this._eventHandler[e];else{var n,i=e;for(n in i)this.off(n,i[n])}else{var r=this._eventHandler[e];if(r)for(var o=r.length,s=0;s<o;++s)if(r[s]===t){r.splice(s,1),o<=1&&delete this._eventHandler[e];break}}return this},e.VERSION="3.0.5",e}(),C=G,k=function(){function e(){this.keys=[],this.values=[]}var t=e.prototype;return t.get=function(e){return this.values[this.keys.indexOf(e)]},t.set=function(e,t){var n=this.keys,i=this.values,r=n.indexOf(e),r=-1===r?n.length:r;n[r]=e,i[r]=t},e}(),A=function(){function e(){this.object={}}var t=e.prototype;return t.get=function(e){return this.object[e]},t.set=function(e,t){this.object[e]=t},e}(),V="function"==typeof Map,K=function(){function e(){}var t=e.prototype;return t.connect=function(e,t){this.prev=e,this.next=t,e&&(e.next=this),t&&(t.prev=this)},t.disconnect=function(){var e=this.prev,t=this.next;e&&(e.next=t),t&&(t.prev=e)},t.getIndex=function(){for(var e=this,t=-1;e;)e=e.prev,++t;return t},e}();var Y=function(){function e(e,t,n,i,r,o,s,a){this.prevList=e,this.list=t,this.added=n,this.removed=i,this.changed=r,this.maintained=o,this.changedBeforeAdded=s,this.fixed=a}var t=e.prototype;return Object.defineProperty(t,"ordered",{get:function(){return this.cacheOrdered||this.caculateOrdered(),this.cacheOrdered},enumerable:!0,configurable:!0}),Object.defineProperty(t,"pureChanged",{get:function(){return this.cachePureChanged||this.caculateOrdered(),this.cachePureChanged},enumerable:!0,configurable:!0}),t.caculateOrdered=function(){e=this.changedBeforeAdded,n=this.fixed,r=[],o=[],e.forEach(function(e){var t=e[0],e=e[1],n=new K;o[e]=r[t]=n}),r.forEach(function(e,t){e.connect(r[t-1])});var n,r,o,e=e.filter(function(e,t){return!n[t]}).map(function(e,t){var n,i=e[0],e=e[1];return i===e?[0,0]:(e=o[e-1],n=(i=r[i]).getIndex(),i.disconnect(),e?i.connect(e,e.next):i.connect(void 0,r[0]),[n,i.getIndex()])}),s=this.changed,a=[];this.cacheOrdered=e.filter(function(e,t){var n=e[0],e=e[1],t=s[t],i=t[0],t=t[1];if(n!==e)return a.push([i,t]),!0}),this.cachePureChanged=a},e}();function q(e,t,n){var i=V?Map:n?A:k,n=n||function(e){return e},r=[],o=[],s=[],a=e.map(n),n=t.map(n),u=new i,c=new i,h=[],l=[],f={},d=[],p=0,g=0;return a.forEach(function(e,t){u.set(e,t)}),n.forEach(function(e,t){c.set(e,t)}),a.forEach(function(e,t){e=c.get(e);void 0===e?(++g,o.push(t)):f[e]=g}),n.forEach(function(e,t){e=u.get(e);void 0===e?(r.push(t),++p):(s.push([e,t]),g=f[t]||0,h.push([e-g,t-p]),l.push(t===e),e!==t&&d.push([e,t]))}),o.reverse(),new Y(e,t,r,o,d,s,h,l)}var B,W="function"==typeof Map?void 0:(B=0,function(e){return e.__DIFF_KEY__||(e.__DIFF_KEY__=++B)});function H(e,t){return q(e,t,W)}var Z=function(e,t){return(Z=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}))(e,t)};function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Z(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var u=function(){return(u=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};var e="undefined"!=typeof window,t=e?window.navigator.userAgent:"",X=e&&!!("getComputedStyle"in window),Q=/MSIE|Trident|Windows Phone|Edge/.test(t),J=e&&!!("addEventListener"in document),$="width",ee="height";function te(e,t){return e.getAttribute(t)||""}function ne(e){return[].slice.call(e)}function ie(e,t){return void 0===t&&(t="data-"),"loading"in e&&"lazy"===e.getAttribute("loading")||!!e.getAttribute(t+"lazy")}function re(e,t,n){J?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n}function oe(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null}function se(e,t){var n=e["client"+t]||e["offset"+t];return parseFloat(n||(n=e,((X?window.getComputedStyle(n):n.currentStyle)||{})[t.toLowerCase()]))||0}function ae(e,t,n){var i=ne(e.querySelectorAll(function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var i=Array(e),r=0,t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,r++)i[r]=o[s];return i}(["["+n+"skip] ["+n+"width]"],t.map(function(e){return["["+n+"skip] "+e,e+"["+n+"skip]","["+n+"width] "+e].join(", ")})).join(", ")));return ne(e.querySelectorAll("["+n+"width], "+t.join(", "))).filter(function(e){return-1===i.indexOf(e)})}var c=[];function ue(e,t){c.length||re(window,"resize",he),e.__PREFIX__=t,c.push(e),ce(e)}function ce(e,t){void 0===t&&(t="data-");var n,t=e.__PREFIX__||t,i=parseInt(te(e,""+t+$),10)||0,r=parseInt(te(e,""+t+ee),10)||0;te(e,t+"fixed")===ee?(n=se(e,"Height")||r,e.style[$]=i/r*n+"px"):(n=se(e,"Width")||i,e.style[ee]=r/i*n+"px")}function he(){c.forEach(function(e){ce(e)})}var t=function(r){function e(e,t){void 0===t&&(t={});var n,i=r.call(this)||this,t=(i.isReady=!1,i.isPreReady=!1,i.hasDataSize=!1,i.hasLoading=!1,i.isSkip=!1,i.onCheck=function(e){i.clear(),e&&"error"===e.type&&i.onError(i.element),i.hasLoading&&i.checkElement()||i.onReady()},i.options=u({prefix:"data-"},t),i.element=e,i.options.prefix);return i.hasDataSize=(n=t,!!e.getAttribute((n=void 0===t?"data-":n)+"width")),i.isSkip=(n=t,!!e.getAttribute((n=void 0===t?"data-":n)+"skip")),i.hasLoading=ie(e,t),i}s(e,r);var t=e.prototype;return t.check=function(){return this.isSkip||!this.checkElement()?(this.onAlreadyReady(),!1):(this.hasDataSize&&ue(this.element,this.options.prefix),(this.hasDataSize||this.hasLoading)&&this.onAlreadyPreReady(),!0)},t.addEvents=function(){var t=this,n=this.element;this.constructor.EVENTS.forEach(function(e){re(n,e,t.onCheck)})},t.clear=function(){var t=this,n=this.element;this.constructor.EVENTS.forEach(function(e){oe(n,e,t.onCheck)}),this.removeAutoSizer()},t.destroy=function(){this.clear(),this.off()},t.removeAutoSizer=function(){var e,t,n;this.hasDataSize&&(t=this.options.prefix,e=this.element,t=t,(n=c.indexOf(e))<0||(t=te(e,t+"fixed"),delete e.__PREFIX__,e.style[t===ee?$:ee]="",c.splice(n,1),c.length)||oe(window,"resize",he))},t.onError=function(e){this.trigger("error",{element:this.element,target:e})},t.onPreReady=function(){this.isPreReady||(this.isPreReady=!0,this.trigger("preReady",{element:this.element,hasLoading:this.hasLoading,isSkip:this.isSkip}))},t.onReady=function(){var e=this.isPreReady;this.isPreReady=!0,this.isReady||(this.removeAutoSizer(),this.isReady=!0,this.trigger("ready",{element:this.element,withPreReady:!e,hasLoading:this.hasLoading,isSkip:this.isSkip}))},t.onAlreadyError=function(e){var t=this;setTimeout(function(){t.onError(e)})},t.onAlreadyPreReady=function(){var e=this;setTimeout(function(){e.onPreReady()})},t.onAlreadyReady=function(){var e=this;setTimeout(function(){e.onReady()})},e.EVENTS=[],e}(i),le=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}s(t,e);var n=t.prototype;return n.setHasLoading=function(e){this.hasLoading=e},n.check=function(){return this.isSkip?(this.onAlreadyReady(),!1):(this.hasDataSize?(ue(this.element,this.options.prefix),this.onAlreadyPreReady()):this.trigger("requestChildren"),!0)},n.checkElement=function(){return!0},n.destroy=function(){this.clear(),this.trigger("requestDestroy"),this.off()},n.onAlreadyPreReady=function(){e.prototype.onAlreadyPreReady.call(this),this.trigger("reqeustReadyChildren")},t.EVENTS=[],t}(t),e=function(n){function e(e){void 0===e&&(e={});var t=n.call(this)||this;return t.readyCount=0,t.preReadyCount=0,t.totalCount=0,t.totalErrorCount=0,t.isPreReadyOver=!0,t.elementInfos=[],t.options=u({loaders:{},prefix:"data-"},e),t}s(e,n);var t=e.prototype;return t.check=function(e){var o=this,n=this.options.prefix,e=(this.clear(),this.elementInfos=ne(e).map(function(e,r){var t=o.getLoader(e,{prefix:n});return t.check(),t.on("error",function(e){o.onError(r,e.target)}).on("preReady",function(e){var t=o.elementInfos[r],t=(t.hasLoading=e.hasLoading,t.isSkip=e.isSkip,o.checkPreReady(r));o.onPreReadyElement(r),t&&o.onPreReady()}).on("ready",function(e){var t=e.withPreReady,n=e.hasLoading,e=e.isSkip,i=o.elementInfos[r],n=(i.hasLoading=n,i.isSkip=e,t&&o.checkPreReady(r)),i=o.checkReady(r);t&&o.onPreReadyElement(r),o.onReadyElement(r),n&&o.onPreReady(),i&&o.onReady()}),{loader:t,element:e,hasLoading:!1,hasError:!1,isPreReady:!1,isReady:!1,isSkip:!1}}),this.elementInfos.length);return(this.totalCount=e)||setTimeout(function(){o.onPreReady(),o.onReady()}),this},t.getTotalCount=function(){return this.totalCount},t.isPreReady=function(){return this.elementInfos.every(function(e){return e.isPreReady})},t.isReady=function(){return this.elementInfos.every(function(e){return e.isReady})},t.hasError=function(){return 0<this.totalErrorCount},t.clear=function(){this.isPreReadyOver=!1,this.totalCount=0,this.preReadyCount=0,this.readyCount=0,this.totalErrorCount=0,this.elementInfos.forEach(function(e){e.loader&&e.loader.destroy()}),this.elementInfos=[]},t.destroy=function(){this.clear(),this.off()},t.getLoader=function(t,e){var n,i,r,o=this,s=t.tagName.toLowerCase(),a=this.options.loaders,u=e.prefix,c=Object.keys(a);return a[s]?new a[s](t,e):(n=new le(t,e),i=ne(t.querySelectorAll(c.join(", "))),n.setHasLoading(i.some(function(e){return ie(e,u)})),r=this.clone().on("error",function(e){n.onError(e.target)}).on("ready",function(){n.onReady()}),n.on("requestChildren",function(){var e=ae(t,c,o.options.prefix);r.check(e).on("preReady",function(e){e.isReady||n.onPreReady()})}).on("reqeustReadyChildren",function(){r.check(i)}).on("requestDestroy",function(){r.destroy()}),n)},t.clone=function(){return new e(u({},this.options))},t.checkPreReady=function(e){return this.elementInfos[e].isPreReady=!0,++this.preReadyCount,!(this.preReadyCount<this.totalCount)},t.checkReady=function(e){return this.elementInfos[e].isReady=!0,++this.readyCount,!(this.readyCount<this.totalCount)},t.onError=function(e,t){var n=this.elementInfos[e];n.hasError=!0,this.trigger(new C("error",{element:n.element,index:e,target:t,errorCount:this.getErrorCount(),totalErrorCount:++this.totalErrorCount}))},t.onPreReadyElement=function(e){var t=this.elementInfos[e];this.trigger(new C("preReadyElement",{element:t.element,index:e,preReadyCount:this.preReadyCount,readyCount:this.readyCount,totalCount:this.totalCount,isPreReady:this.isPreReady(),isReady:this.isReady(),hasLoading:t.hasLoading,isSkip:t.isSkip}))},t.onPreReady=function(){this.isPreReadyOver=!0,this.trigger(new C("preReady",{readyCount:this.readyCount,totalCount:this.totalCount,isReady:this.isReady(),hasLoading:this.hasLoading()}))},t.onReadyElement=function(e){var t=this.elementInfos[e];this.trigger(new C("readyElement",{index:e,element:t.element,hasError:t.hasError,errorCount:this.getErrorCount(),totalErrorCount:this.totalErrorCount,preReadyCount:this.preReadyCount,readyCount:this.readyCount,totalCount:this.totalCount,isPreReady:this.isPreReady(),isReady:this.isReady(),hasLoading:t.hasLoading,isPreReadyOver:this.isPreReadyOver,isSkip:t.isSkip}))},t.onReady=function(){this.trigger(new C("ready",{errorCount:this.getErrorCount(),totalErrorCount:this.totalErrorCount,totalCount:this.totalCount}))},t.getErrorCount=function(){return this.elementInfos.filter(function(e){return e.hasError}).length},t.hasLoading=function(){return this.elementInfos.some(function(e){return e.hasLoading})},e}(i),fe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return s(t,e),t.prototype.checkElement=function(){var e=this.element,t=e.getAttribute("src");if(e.complete){if(t)return e.naturalWidth||this.onAlreadyError(e),!1;this.onAlreadyPreReady()}return this.addEvents(),Q&&e.setAttribute("src",t),!0},t.EVENTS=["load","error"],t}(t),de=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return s(t,e),t.prototype.checkElement=function(){var e=this.element;return!(1<=e.readyState||(e.error?(this.onAlreadyError(e),1):(this.addEvents(),0)))},t.EVENTS=["loadedmetadata","error"],t}(t),pe=function(t){function e(e){return t.call(this,u({loaders:{img:fe,video:de}},e=void 0===e?{}:e))||this}return s(e,t),e}(e),ge=function(e,t){return(ge=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}))(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}ge(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var p=function(){return(p=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function me(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;0<=a;a--)(r=e[a])&&(s=(o<3?r(s):3<o?r(t,n,s):r(t,n))||s);return 3<o&&s&&Object.defineProperty(t,n,s),s}function m(e,t){for(var n=0,i=t.length,r=e.length;n<i;n++,r++)e[r]=t[n];return e}var h,O,g,l={horizontal:!1,useTransform:!1,percentage:!1,isEqualSize:!1,isConstantSize:!1,gap:0,attributePrefix:"data-grid-",resizeDebounce:100,maxResizeDebounce:0,autoResize:!0,preserveUIOnDestroy:!1,defaultDirection:"end",externalContainerManager:null,externalItemRenderer:null,renderOnPropertyChange:!0,useFit:!0,outlineLength:0,outlineSize:0,useRoundedSize:!0,useResizeObserver:!1,observeChildren:!1},ye=((t=h=h||{})[t.PROPERTY=1]="PROPERTY",t[t.RENDER_PROPERTY=2]="RENDER_PROPERTY",(e=O=O||{})[e.UNCHECKED=1]="UNCHECKED",e[e.UNMOUNTED=2]="UNMOUNTED",e[e.MOUNTED=3]="MOUNTED",(t=g=g||{})[t.NEED_UPDATE=1]="NEED_UPDATE",t[t.WAIT_LOADING=2]="WAIT_LOADING",t[t.UPDATED=3]="UPDATED",{gap:h.RENDER_PROPERTY,defaultDirection:h.PROPERTY,renderOnPropertyChange:h.PROPERTY,preserveUIOnDestroy:h.PROPERTY,useFit:h.PROPERTY,outlineSize:h.RENDER_PROPERTY,outlineLength:h.RENDER_PROPERTY}),d={horizontal:{inlinePos:"top",contentPos:"left",inlineSize:"height",contentSize:"width"},vertical:{inlinePos:"left",contentPos:"top",inlineSize:"width",contentSize:"height"}};function Re(n,i){var e=ve(n);return H(i.map(function(e){return e.target}),e.map(function(e){return e.element})).maintained.filter(function(e){var t=e[0],e=e[1],t=i[t].size,e=n[e];return!e.inlineSize||!e.contentSize||t.inlineSize!==e.computedInlineSize||t.blockSize!==e.computedContentSize}).map(function(e){e=e[1];return n[e]})}function ve(e){return e.filter(function(e){return e.element})}function Se(e){return ve(e).map(function(e){return e.element})}function U(e){return"string"==typeof e}function ze(e){return"object"==typeof e}function Ee(e){return"number"==typeof e}function y(e){return e.reduce(function(e,t){return e+t},0)}function R(e){var t,r=e.prototype,o=e.propertyTypes;for(t in o)!function(n){var i=o[n]===h.RENDER_PROPERTY,e=Object.getOwnPropertyDescriptor(r,n)||{},t=e.get||function(){return this.options[n]},e=e.set||function(e){var t=this.options;t[n]!==e&&(t[n]=e,i)&&t.renderOnPropertyChange&&this.scheduleRender()};Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:t,set:e})}(t)}function F(e){for(var t=[],n=0;n<e;++n)t.push(n);return t}function _e(e,t){return Math.max(e-t[1],t[0]-e,0)+1}function j(e,t,n){return Math.min(n,Math.max(e,t))}function v(e,t){var n;return t?(n=1/t,Math.round(e/t)/n):e}var Ie=function(){function e(e,t){var u=this;void 0===t&&(t={}),this._resizeTimer=0,this._maxResizeDebounceTimer=0,this.rect={width:0,height:0},this._updatedEntries=[],this._onWindowResize=function(){u._scheduleResize([{target:u.container}])},this._onObserve=function(e){var t=u._options,i=u.container,r=t.rectBox,o=t.childrenRectBox;u._scheduleResize(e.map(function(e){var t,n="border-box"===(e.target===i?r:o)?e.borderBoxSize:e.contentBoxSize;return{size:(n=n?n:[{inlineSize:(t=e.contentRect).width,blockSize:t.height}])[0]||n,target:e.target}}))},this._scheduleResize=function(e){var t=u._options,n=t.resizeDebounce,t=t.maxResizeDebounce,i=u._updatedEntries;i.push.apply(i,e),u._updatedEntries=i.filter(function(e,t){return i.lastIndexOf(e)===t}),!u._maxResizeDebounceTimer&&n<=t&&(u._maxResizeDebounceTimer=window.setTimeout(u._onResize,t)),u._resizeTimer&&(clearTimeout(u._resizeTimer),u._resizeTimer=0),u._resizeTimer=window.setTimeout(u._onResize,n)},this._onResize=function(){clearTimeout(u._resizeTimer),clearTimeout(u._maxResizeDebounceTimer),u._maxResizeDebounceTimer=0,u._resizeTimer=0;var t,e,n,i,r=u._updatedEntries,o=u.container,r=r.filter(function(e){return e.target!==o||(t=e,!1)}),s=0<r.length,a=!!t;a&&(e=u._options.watchDirection,n=u.rect,(i=t.size)?u.setRect({width:i.inlineSize,height:i.blockSize}):u.resize(),i=u.rect,a=!e||("box"===e||"width"===e)&&n.width!==i.width||("box"===e||"height"===e)&&n.height!==i.height),u._updatedEntries=[],(a||s)&&u._emitter.trigger("resize",{isResizeContainer:a,childEntries:r})},this._options=p({resizeDebounce:100,maxResizeDebounce:0,useResizeObserver:!1,useWindowResize:!0,watchDirection:!1,rectBox:"content-box",childrenRectBox:"border-box"},t),this.container=U(e)?document.querySelector(e):e,this._init()}var t=e.prototype;return t.getRect=function(){return this.rect},t.setRect=function(e){this.rect=p({},e)},t.isObserverEnabled=function(){return!!this._observer},t.resize=function(){var e=this.container;this.setRect("border-box"===this._options.rectBox?{width:e.offsetWidth,height:e.offsetHeight}:{width:e.clientWidth,height:e.clientHeight})},t.observeChildren=function(e){var t,n=this._observer;n&&(t=this._options.childrenRectBox,e.forEach(function(e){e&&n.observe(e,{box:t})}))},t.unobserveChildren=function(e){var t=this._observer;t&&e.forEach(function(e){e&&t.unobserve(e)})},t.listen=function(e){return this._emitter.on("resize",e),this},t.destroy=function(){var e;null!=(e=this._observer)&&e.disconnect(),this._options.useWindowResize&&window.removeEventListener("resize",this._onWindowResize)},t._init=function(){var e=this.container,t=this._options;this._emitter=new i,t.useResizeObserver&&window.ResizeObserver&&(this._observer=new window.ResizeObserver(this._onObserve),this._observer.observe(e,{box:t.rectBox})),t.useWindowResize&&window.addEventListener("resize",this._onWindowResize),this.resize()},e}(),Ce=function(i){function e(e,t){var n=i.call(this)||this;return n.container=e,n._onResize=function(e){n.trigger("resize",e)},n.options=p({horizontal:l.horizontal,autoResize:l.autoResize,resizeDebounce:l.resizeDebounce,maxResizeDebounce:l.maxResizeDebounce,useResizeObserver:l.useResizeObserver},t),n._init(),n}r(e,i);var t=e.prototype;return t.resize=function(){var e=this.container;this.setRect({width:e.clientWidth,height:e.clientHeight})},t.isObserverEnabled=function(){return this._watcher.isObserverEnabled()},t.getRect=function(){return this._watcher.getRect()},t.observeChildren=function(e){this._watcher.observeChildren(e)},t.unobserveChildren=function(e){this._watcher.unobserveChildren(e)},t.setRect=function(e){this._watcher.setRect(e)},t.getInlineSize=function(){return this.getRect()[this._names.inlineSize]},t.getContentSize=function(){return this.getRect()[this._names.contentSize]},t.getStatus=function(){return{rect:this._watcher.getRect()}},t.setStatus=function(e){this.setRect(e.rect),this.setContentSize(this.getContentSize())},t.setContentSize=function(e){var t,n=this.options.horizontal?"width":"height";this.setRect(p(p({},this.getRect()),((t={})[n]=e,t))),this.container.style[n]=e+"px"},t.destroy=function(e){void 0===e&&(e={}),this._watcher.destroy(),e.preserveUI||(this.container.style.cssText=this.orgCSSText)},t._init=function(){var e=this.container,t=window.getComputedStyle(e),t=(this.orgCSSText=e.style.cssText,"static"===t.position&&(e.style.position="relative"),this.options);this._watcher=new Ie(e,{useWindowResize:t.autoResize,useResizeObserver:t.useResizeObserver,resizeDebounce:t.resizeDebounce,maxResizeDebounce:t.maxResizeDebounce,watchDirection:!!t.useResizeObserver&&this._names.inlineSize}).listen(this._onResize)},Object.defineProperty(t,"_names",{get:function(){return d[this.options.horizontal?"horizontal":"vertical"]},enumerable:!1,configurable:!0}),e}(i),Oe=function(){function e(e){this.initialRects={},this.sizePercetage=!1,this.posPercetage=!1,this.options=p({attributePrefix:l.attributePrefix,useTransform:l.useTransform,horizontal:l.horizontal,percentage:l.percentage,isEqualSize:l.isEqualSize,isConstantSize:l.isConstantSize,useRoundedSize:l.useRoundedSize},e),this._init()}var t=e.prototype;return t.resize=function(){this.initialRects={}},t.renderItems=function(e){var t=this;e.forEach(function(e){t._renderItem(e)})},t.getInlineSize=function(){return this.containerRect[this.options.horizontal?"height":"width"]},t.setContainerRect=function(e){this.containerRect=e},t.updateEqualSizeItems=function(t,e){var n=this,i=(this.updateItems(t),t.some(function(e){return e.attributes.sizeGroup}));(this.options.isEqualSize||i)&&t.some(function(e){return e.updateState===g.UPDATED})&&e.forEach(function(e){-1===t.indexOf(e)&&n.updateItem(e,!0)})},t.updateItems=function(e){var t=this;e.forEach(function(e){t.updateItem(e)})},t.getStatus=function(){return{initialRects:this.initialRects}},t.setStatus=function(e){this.initialRects=e.initialRects},t._init=function(){var e=this.options.percentage,t=!1,n=!1;!0===e?n=t=!0:e&&(-1<e.indexOf("position")&&(n=!0),-1<e.indexOf("size"))&&(t=!0),this.posPercetage=n,this.sizePercetage=t},t.updateItem=function(e,t){var n=this.options,i=n.isEqualSize,r=n.isConstantSize,n=n.useRoundedSize,o=this.initialRects,s=e.orgRect,a=e.element,u=e.updateState===g.WAIT_LOADING,c=s&&s.width&&s.height,h=a?function(e,t){for(var n={},i=e.attributes,r=i.length,o=0;o<r;++o){var s=i[o],a=s.name,s=s.value;-1!==a.indexOf(t)&&(n[a.replace(t,"").replace(/[\s-_]([a-z])/g,function(e,t){return t.toUpperCase()})]=s)}return n}(a,this.options.attributePrefix):e.attributes,l=null!=(l=h.sizeGroup)?l:"",f=h.notEqualSize;if(""!==l&&o[l])d=o[l];else if(i&&!f&&!l&&o[""])d=o[""];else if(r&&c&&!u&&e.isFirstUpdate)d=s;else{if(t||!a)return;var d={left:a.offsetLeft,top:a.offsetTop,width:0,height:0};n?(d.width=a.offsetWidth,d.height=a.offsetHeight):(i=a.getBoundingClientRect(),d.width=i.width,d.height=i.height)}return e.attributes=h,e.shouldReupdate=!1,e.isFirstUpdate&&c||(e.orgRect=p({},d)),e.rect=p({},d),t||(e.element&&(e.mountState=O.MOUNTED),e.updateState===g.NEED_UPDATE&&(e.updateState=g.UPDATED,e.isFirstUpdate=!0),u)||f||o[l]||(o[l]=p({},d)),d},t._renderItem=function(e){var n,i,t,r,o,s,a,u,c=e.element,h=e.cssRect;c&&h&&(a=(e=this.options).horizontal,e=e.useTransform,n=this.posPercetage,i=this.sizePercetage,t=["position: absolute;"],r=(a=d[a?"horizontal":"vertical"]).inlineSize,o=a.inlinePos,s=this.getInlineSize(),u=0<(a=Object.keys(h)).length,e&&(a=a.filter(function(e){return"top"!==e&&"left"!==e}),t.push("transform: translate("+(h.left||0)+"px, "+(h.top||0)+"px);")),t.push.apply(t,a.map(function(e){var t=h[e];return e===r&&i||e===o&&n?e+": "+t/s*100+"%;":e+": "+t+"px;"})),u)&&(c.style.cssText+=t.join(""))},e}(),Pe=function(){function e(e,t){void 0===t&&(t={}),this.horizontal=e,this.isUpdating=!1,this.shouldReupdate=!1,this.hasTransition=!1,this.transitionDuration="",this.isRestoreOrgCSSText=!0;var n,e=t.element,i=p({key:"",index:0,orgRect:{left:0,top:0,width:0,height:0},rect:{left:0,top:0,width:0,height:0},cssRect:{},attributes:{},data:{},isFirstUpdate:!1,mountState:O.UNCHECKED,updateState:g.NEED_UPDATE,element:e||null,orgCSSText:null!=(e=null==e?void 0:e.style.cssText)?e:"",gridData:{}},t);for(n in i)this[n]=i[n]}var t=e.prototype;return Object.defineProperty(t,"orgInlineSize",{get:function(){var e=this._names.inlineSize;return this.orgRect[e]||this.rect[e]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"orgContentSize",{get:function(){var e=this._names.contentSize;return this.orgRect[e]||this.rect[e]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"inlineSize",{get:function(){return this.rect[this._names.inlineSize]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"contentSize",{get:function(){return this.rect[this._names.contentSize]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"cssInlineSize",{get:function(){return this.cssRect[this._names.inlineSize]},set:function(e){this.cssRect[this._names.inlineSize]=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,"cssContentSize",{get:function(){return this.cssRect[this._names.contentSize]},set:function(e){this.cssRect[this._names.contentSize]=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,"cssInlinePos",{get:function(){return this.cssRect[this._names.inlinePos]},set:function(e){this.cssRect[this._names.inlinePos]=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,"cssContentPos",{get:function(){return this.cssRect[this._names.contentPos]},set:function(e){this.cssRect[this._names.contentPos]=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,"computedInlineSize",{get:function(){var e=this._names.inlineSize;return this.cssRect[e]||this.rect[e]||this.orgRect[e]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"computedContentSize",{get:function(){var e=this._names.contentSize;return this.cssRect[e]||this.rect[e]||this.orgRect[e]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"computedInlinePos",{get:function(){var e,t=this._names.inlinePos;return null!=(e=this.cssRect[t])?e:this.rect[t]},enumerable:!1,configurable:!0}),Object.defineProperty(t,"computedContentPos",{get:function(){var e,t=this._names.contentPos;return null!=(e=this.cssRect[t])?e:this.rect[t]},enumerable:!1,configurable:!0}),t.setCSSGridRect=function(e){var t,n=d[this.horizontal?"horizontal":"vertical"],i={};for(t in e)i[n[t]]=e[t];this.cssRect=i},t.addCSSGridRect=function(e){var t,n=d[this.horizontal?"horizontal":"vertical"],i=this.cssRect;for(t in e)i[n[t]]=e[t]},t.getStatus=function(){return{index:this.index,mountState:this.mountState,updateState:this.updateState,attributes:this.attributes,orgCSSText:this.orgCSSText,isFirstUpdate:this.isFirstUpdate,element:null,key:this.key,orgRect:this.orgRect,rect:this.rect,cssRect:this.cssRect,gridData:this.gridData,data:this.data}},t.getMinimizedStatus=function(){var e={orgRect:this.orgRect,rect:this.rect,cssRect:this.cssRect,attributes:this.attributes,gridData:this.gridData},t=this,n=t.key,i=t.mountState,r=t.updateState,o=t.isFirstUpdate,t=t.orgCSSText;return void 0!==n&&(e.key=n),i!==O.UNCHECKED&&(e.mountState=i),r!==g.NEED_UPDATE&&(e.updateState=r),o&&(e.isFirstUpdate=!0),t&&(e.orgCSSText=t),e},Object.defineProperty(t,"_names",{get:function(){return this.horizontal?d.horizontal:d.vertical},enumerable:!1,configurable:!0}),e}(),S=function(d){function e(e,t){void 0===t&&(t={});var n=d.call(this)||this,t=(n.items=[],n.outlines={start:[],end:[]},n._renderTimer=0,n._onResize=function(e){e.isResizeContainer?n._renderItems({useResize:!0},!0):0<(e=Re(n.items,e.childEntries)).length&&n.updateItems(e)},n.options=p(p({},n.constructor.defaultOptions),t),n.containerElement=U(e)?document.querySelector(e):e,n.options),e=t.isEqualSize,i=t.isConstantSize,r=t.useTransform,o=t.horizontal,s=t.percentage,a=t.externalContainerManager,u=t.externalItemRenderer,c=t.resizeDebounce,h=t.maxResizeDebounce,l=t.autoResize,f=t.useRoundedSize,t=t.useResizeObserver;return n.containerManager=a||new Ce(n.containerElement,{horizontal:o,resizeDebounce:c,maxResizeDebounce:h,autoResize:l,useResizeObserver:t}).on("resize",n._onResize),n.itemRenderer=u||new Oe({useTransform:r,isEqualSize:e,isConstantSize:i,percentage:s,useRoundedSize:f}),n._init(),n}r(e,d);var t=e.prototype;return t.getContainerElement=function(){return this.containerElement},t.getItems=function(){return this.items},t.getChildren=function(){return[].slice.call(this.containerElement.children)},t.setItems=function(e){e.forEach(function(e,t){e.index=t});var t=this.options;return t.useResizeObserver&&t.observeChildren&&((t=this.containerManager).unobserveChildren(Se(this.items)),t.observeChildren(Se(e))),this.items=e,this},t.getContainerInlineSize=function(){return this.containerManager.getInlineSize()},t.getOutlines=function(){return this.outlines},t.setOutlines=function(e){return this.outlines=e,this},t.syncElements=function(e){void 0===e&&(e={});var n=this.items,t=this.options.horizontal,i=this.getChildren(),r=H(this.items.map(function(e){return e.element}),i),o=r.added,s=r.maintained,a=r.changed,r=r.removed,u=[];return s.forEach(function(e){var t=e[0],e=e[1];u[e]=n[t]}),o.forEach(function(e){u[e]=new Pe(t,{element:i[e]})}),this.setItems(u),(o.length||r.length||a.length)&&this.renderItems(e),this},t.updateItems=function(e,t){void 0===e&&(e=this.items);var n=(t=void 0===t?{}:t).useOrgResize;return e.forEach(function(e){var t;n&&((t=e.orgRect).width=0,t.height=0),e.updateState=g.NEED_UPDATE}),this.checkReady(t),this},t.renderItems=function(e){return this._renderItems(e=void 0===e?{}:e),this},t.getStatus=function(t){return{outlines:this.outlines,items:this.items.map(function(e){return t?e.getMinimizedStatus():e.getStatus()}),containerManager:this.containerManager.getStatus(),itemRenderer:this.itemRenderer.getStatus()}},t.setStatus=function(e){var t=this,n=this.options.horizontal,i=this.containerManager,r=i.getInlineSize(),o=this.getChildren();return this.itemRenderer.setStatus(e.itemRenderer),i.setStatus(e.containerManager),this.outlines=e.outlines,this.items=e.items.map(function(e,t){return new Pe(n,p(p({},e),{element:o[t]}))}),this.itemRenderer.renderItems(this.items),r!==i.getInlineSize()?this.renderItems({useResize:!0}):window.setTimeout(function(){t._renderComplete({direction:t.defaultDirection,mounted:t.items,updated:[],isResize:!1})}),this},t.getComputedOutlineSize=function(e){return void 0===e&&(e=this.items),this.options.outlineSize||this.getContainerInlineSize()},t.getComputedOutlineLength=function(e){return void 0===e&&(e=this.items),this.options.outlineLength||1},t.destroy=function(e){var e=(e=void 0===e?{}:e).preserveUI,e=void 0===e?this.options.preserveUIOnDestroy:e;this.containerManager.destroy({preserveUI:e}),e||this.items.forEach(function(e){var t=e.element,e=e.orgCSSText;t&&(t.style.cssText=e)}),null!=(e=this._im)&&e.destroy()},t.getInlineGap=function(){return this._getDirectionalGap("inline")},t.getContentGap=function(){return this._getDirectionalGap("content")},t.checkReady=function(i){var r=this,o=(i=void 0===i?{}:i).useOrgResize,e=this.items,s=e.filter(function(e){var t;return(null==(t=e.element)?void 0:t.parentNode)&&e.updateState!==g.UPDATED}),t=e.filter(function(e){var t;return(null==(t=e.element)?void 0:t.parentNode)&&e.mountState!==O.MOUNTED}),n=[];t.filter(function(e){var t;return!!e.hasTransition||(t=e.element,0<parseFloat(getComputedStyle(t).transitionDuration)&&(e.hasTransition=!0,e.transitionDuration=t.style.transitionDuration,!0))}).forEach(function(e){e.element.style.transitionDuration="0s"}),null!=(e=this._im)&&e.destroy(),this._im=new pe({prefix:this.options.attributePrefix}).on("preReadyElement",function(e){s[e.index].updateState=g.WAIT_LOADING}).on("preReady",function(){s.forEach(function(e){var t=!e.isFirstUpdate||!e.orgRect.width||!e.orgRect.height,n=e.cssRect.width||e.cssRect.height;(t||o)&&n&&(e.element.style.cssText=e.orgCSSText)}),r._updateItems(s),r.readyItems(t,s,i)}).on("readyElement",function(e){var t,n=s[e.index];n.updateState=g.NEED_UPDATE,e.isPreReadyOver&&(e=!n.isFirstUpdate||!n.orgRect.width||!n.orgRect.height,t=n.cssRect.width||n.cssRect.height,(n.isRestoreOrgCSSText||(e||o)&&t)&&(n.element.style.cssText=n.orgCSSText),r._updateItems([n]),r.readyItems([],[n],i))}).on("error",function(e){var t=s[e.index];r.trigger("contentError",{element:e.element,target:e.target,item:t,update:function(){n.push(t)}})}).on("ready",function(){n.length&&r.updateItems(n)}).check(s.map(function(e){return e.element}))},t.scheduleRender=function(){var e=this;this._clearRenderTimer(),this._renderTimer=window.setTimeout(function(){e.renderItems()})},t.fitOutlines=function(e){void 0===e&&(e=this.useFit);var t=this.outlines,n=t.start,i=t.end,r=n.length?Math.min.apply(Math,n):0;!e&&0<r||(t.start=n.map(function(e){return e-r}),t.end=i.map(function(e){return e-r}),this.items.forEach(function(e){var t=e.cssContentPos;Ee(t)&&(e.cssContentPos=t-r)}))},t.readyItems=function(e,t,n){var i=this.outlines,r=n.direction||this.options.defaultDirection,i=n.outline||i["end"===r?"start":"end"],o=this.items,s={start:m([],i),end:m([],i)},o=(e.forEach(function(e){e.mountState=O.MOUNTED}),t.forEach(function(e){e.isUpdating=!0}),o.length&&(s=this.applyGrid(this.items,r,i)),t.forEach(function(e){e.isUpdating=!1}),this.setOutlines(s),this.fitOutlines(),this.itemRenderer.renderItems(this.items),this._refreshContainerContentSize(),e.filter(function(e){return e.hasTransition})),i=(o.length&&(this.containerManager.resize(),o.forEach(function(e){e.element.style.transitionDuration=e.transitionDuration})),this._renderComplete({direction:r,mounted:e,updated:t,isResize:!!n.useResize}),t.filter(function(e){return e.shouldReupdate}));i.length&&this.updateItems(i)},t._isObserverEnabled=function(){return this.containerManager.isObserverEnabled()},t._updateItems=function(e){this.itemRenderer.updateEqualSizeItems(e,this.getItems())},t._getDirectionalGap=function(e){var t=this.options.horizontal,n=this.options.gap;return"number"==typeof n?n:null!=(t=t&&"inline"===e||!t&&"content"===e?n.vertical:n.horizontal)?t:l.gap},t._renderComplete=function(e){this.trigger("renderComplete",e)},t._clearRenderTimer=function(){clearTimeout(this._renderTimer),this._renderTimer=0},t._refreshContainerContentSize=function(){var e=this.outlines,t=e.start,e=e.end,n=this.getContentGap(),e=e.length?Math.max.apply(Math,e):0,t=t.length?Math.max.apply(Math,t):0,t=Math.max(t,e-n);this.containerManager.setContentSize(t)},t._resizeContainer=function(){this.containerManager.resize(),this.itemRenderer.setContainerRect(this.containerManager.getRect())},t._init=function(){this._resizeContainer()},t._renderItems=function(e,t){void 0===e&&(e={}),this._clearRenderTimer();var n=e.useResize||e.useOrgResize;n&&!t&&(this._resizeContainer(),this.itemRenderer.resize()),!this.getItems().length&&this.getChildren().length?this.syncElements(e):n?this.updateItems(this.items,e):this.checkReady(e)},e.defaultOptions=l,e.propertyTypes=ye,me([R],e)}(i);function be(e,t,n,i){return Math[i].apply(Math,e.slice(t,t+n))}var Te=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.applyGrid=function(S,e,t){S.forEach(function(e){e.isRestoreOrgCSSText=!1});for(var n,f,i,z=this.getComputedOutlineSize(S),E=this.getComputedOutlineLength(S),_=!1,r=this.options,o=r.align,I=r.observeChildren,C=r.columnSizeRatio,s=r.contentAlign,a=r.stretchOutline,u=r.stretchContainerSize,O=r.stretchItemSize,P=this.getInlineGap(),b=this.getContentGap(),r=t.length,T=S.length,M=this._getAlignPoses(E,z),x="end"===e,w=x?"min":"max",D=x?"max":"min",d=[0],L=(d=r===E?t.slice():(n=r?Math[D].apply(Math,t):0,F(E).map(function(){return n}))).slice(),N=1<E?M[1]-M[0]:0,G="stretch"===o,k=x&&"start"===s,A=F(d.length).map(function(){return[]}),V=x?-1/0:1/0,c=(k&&(V=Math.min.apply(Math,L)),function(e){var t,n,i,r,e=x?e:T-1-e,o=S[e],s=parseInt(o.attributes.column||"1",10),a=parseInt(o.attributes.maxColumn||"1",10),u=o.contentSize,c=Math.min(E,s||Math.max(1,Math.ceil((o.inlineSize+P)/N))),h=Math.min(E,Math.max(c,a)),l=(n=c,a=w,i=V,y=(t=L).length-n+1,r="max"===a?"min":"max",R="max"===a?"lastIndexOf":"indexOf",(y=F(y).map(function(e){e=be(t,e,n,r);return Math[r](i,e)}))[R](Math[a].apply(Math,y))),f=be(L,l,c,D);for(k&&V!==f&&(V=Math.max.apply(Math,L),L=L.map(function(){return V}),f=V,l=0);c<h;){var d=l+c,p=l-1;if(x&&(E<=d||L[d]>f))break;if(!x&&(p<0||L[p]<f))break;x||--l,++c}l=Math.max(0,l),c=Math.min(E-l,c),A[l].push(e),(0<s&&1<c||G)&&(R=(c-1)*N+z,K._isObserverEnabled()&&I||o.cssInlineSize===R||(o.shouldReupdate=!0),o.cssInlineSize=R),!0===C?(a=o.orgContentSize/o.orgInlineSize,u=o.computedInlineSize*a,o.cssContentSize=u,_=!0):C&&0<C&&(u=o.computedInlineSize/C,o.cssContentSize=u,_=!0);var g,m,y=0,e=1/0,s=!1,R=(U(O[0])?(g=(R=O[0].split(":").map(function(e){return parseFloat(e)}))[0],m=R[1],y=o.computedInlineSize*m/g,s=!0):O[0]&&(y=O[0],s=!0),U(O[1])?(g=(a=O[1].split(":").map(function(e){return parseFloat(e)}))[0],m=a[1],e=o.computedInlineSize*m/g,s=!0):O[1]&&isFinite(O[1])&&(e=O[1],s=!0),j(u,y,e)),a=(s&&(o.cssContentSize=u=R,_=!0),M[l]),f=x?f:f-b-u,v=(o.cssInlinePos=a,o.cssContentPos=f,x?f+u+b:f);F(c).forEach(function(e){L[l+e]=v})}),K=this,h=0;h<T;++h)c(h);return a&&S.length&&(f=0,f="scale-up"===a?Math.max.apply(Math,L):"scale-center"===a?(Math.max.apply(Math,L)+Math.min.apply(Math,L))/2:Math.min.apply(Math,L),f=x?(f-=b,i=Math.min.apply(Math,d),j(f-i,u[0],u[1])+i):j((i=Math.max.apply(Math,d))-f,u[0],u[1])-i,L.forEach(function(e,t){var i,r,o,s,n,a=(A[t].length-1)*b,u=d[t],c=Math.abs(e-u)-(x?b:0)-a,h=Math.abs(f-u)-a,l=h/c;c&&1!=l&&isFinite(l)&&(L[t]=x?f+b:f,i=A[t].length,r=x?d[t]:d[t]-b,e=A[t].map(function(e,t){var n,i,r=S[e],o=_?r.computedContentSize:r.contentSize;return{item:r,index:t,itemIndex:e,minSize:U(O[0])?(n=(t=O[0].split(":").map(function(e){return parseFloat(e)}))[0],i=t[1],r.computedInlineSize*i/n):O[0],originalSize:o,nextSize:o,maxSize:U(O[1])?(n=(e=O[1].split(":").map(function(e){return parseFloat(e)}))[0],i=e[1],r.computedInlineSize*i/n):O[1]}}),1<l?e.sort(function(e,t){return e.originalSize-t.originalSize}):e.sort(function(e,t){return t.originalSize-e.originalSize}),s=o=0,e.forEach(function(e){var t=h<s?l:(h-s)/(c-o),n=e.originalSize,t=v(j(n*t,e.minSize,e.maxSize),.01);o+=n,s+=t,e.nextSize=t}),v(s-h,.01)&&(n=v(h/s,.01),e.forEach(function(e){e.nextSize*=n})),e.sort(function(e,t){return e.index-t.index}),e.forEach(function(e,t){var n=e.item,e=e.nextSize;n.addCSSGridRect({contentPos:x?r:r-e,contentSize:e}),r=x?n.cssContentPos+n.cssContentSize+b:n.cssContentPos-b,t===i-1&&(t=e=0,x?t=(.5<=n.cssContentPos%1?1:0)+(.5<=n.cssContentSize%1?1:0)+(.5<=f%1?-1:0):e=(n.cssContentPos%1<.5?-1:0)+(f%1<.5?1:0),n.addCSSGridRect({contentPos:n.cssContentPos-e,contentSize:n.cssContentSize-t}))}))})),k&&V!==Math.min.apply(Math,L)&&(V=Math.max.apply(Math,L),L=L.map(function(){return V})),{start:x?d:L,end:x?L:d}},n.getComputedOutlineSize=function(e){void 0===e&&(e=this.items);var t=this.options.align,n=this.getInlineGap(),i=this.getContainerInlineSize(),r=this.columnSize||this.outlineSize,o=this.column||this.outlineLength,s=o||1,a=0;if("stretch"===t)o||(t=this.maxStretchColumnSize||1/0,s=Math.max(1,Math.ceil((i+n)/(t+n)))),a=(i+n)/(s||1)-n;else if(r)a=r;else if(e.length){for(var u=e[0],c=0,h=e;c<h.length;c++){var l=h[c],f=l.attributes,d=parseInt(f.column||"1",10),f=parseInt(f.maxColumn||"1",10);if(l.updateState===g.UPDATED&&l.inlineSize&&1===d&&1===f){u=l;break}}a=u.inlineSize||0}else a=i;return a||0},n.getComputedOutlineLength=function(e){void 0===e&&(e=this.items);var t=this.getInlineGap(),n=this.column||this.outlineLength,i=this.columnCalculationThreshold,r=1;return n?r=n:(n=this.getComputedOutlineSize(e),r=Math.max(1,Math.floor((this.getContainerInlineSize()+t)/(n-i+t))),this.maxStretchColumnSize||(r=Math.min(e.length,r))),r},n._getAlignPoses=function(e,t){var n,i=this.options.align,r=this.getInlineGap(),o=this.getContainerInlineSize(),s=F(e),a=0,u=0;return"justify"===i||"stretch"===i?(u=(n=e-1)?Math.max((o-t)/n,t+r):0,a=Math.min(0,o/2-(n*u+t)/2)):(n=(e-1)*(u=t+r)+t,"center"===i?a=(o-n)/2:"end"===i&&(a=o-n)),s.map(function(e){return a+e*u})},t.propertyTypes=p(p({},S.propertyTypes),{column:h.RENDER_PROPERTY,columnSize:h.RENDER_PROPERTY,columnSizeRatio:h.RENDER_PROPERTY,align:h.RENDER_PROPERTY,columnCalculationThreshold:h.RENDER_PROPERTY,maxStretchColumnSize:h.RENDER_PROPERTY,contentAlign:h.RENDER_PROPERTY,stretchOutline:h.RENDER_PROPERTY,stretchContainerSize:h.RENDER_PROPERTY,stretchItemSize:h.RENDER_PROPERTY}),t.defaultOptions=p(p({},S.defaultOptions),{align:"justify",column:0,columnSize:0,columnSizeRatio:0,columnCalculationThreshold:.5,maxStretchColumnSize:1/0,contentAlign:"masonry",stretchOutline:"",stretchContainerSize:[0,1/0],stretchItemSize:[0,1/0]}),me([R],t)}(S);function Me(e,t,n){for(var i=function(e,t,n){var i,r,o,s,a,u,c={},h={},l=(h[t]=0,new xe(function(e){return e.cost}));for(l.push({value:t,cost:0});l.size();)for(var f in r=(i=l.pop()).value,o=i.cost,s=e(r)||{})a=o+s[f],(void 0===(u=h[f])||a<u)&&(l.push({value:f,cost:h[f]=a}),c[f]=r);if(void 0===h[n])throw t=["Could not find a path from ",t," to ",n,"."].join(""),new Error(t);return c}(e,t,n),r=[],o=n;o;)r.push(o),o=i[o];return r.reverse(),r}var xe=function(){function e(e){this.content=[],this.scoreFunction=e}var t=e.prototype;return t.push=function(e){this.content.push(e),this.bubbleUp(this.content.length-1)},t.pop=function(){var e=this.content[0],t=this.content.pop();return 0<this.content.length&&(this.content[0]=t,this.sinkDown(0)),e},t.size=function(){return this.content.length},t.bubbleUp=function(e){for(var t=e,n=this.content[t];0<t;){var i=Math.floor((t+1)/2)-1,r=this.content[i];if(!(this.scoreFunction(n)<this.scoreFunction(r)))break;this.content[i]=n,this.content[t]=r,t=i}},t.sinkDown=function(e){for(var t=this.content.length,n=this.content[e],i=this.scoreFunction(n);;){var r,o=2*(e+1),s=o-1,a=null;if(s<t&&(r=this.content[s],(r=this.scoreFunction(r))<i)&&(a=s),null===(a=o<t&&(s=this.content[o],this.scoreFunction(s)<(null==a?i:r))?o:a))break;this.content[e]=this.content[a],this.content[a]=n,e=a}},e}();function we(e,t){var n,i;return Ee(t)?t:(n="+"===(n=t.charAt(0))?1:"-"===n?-1:0,i=parseFloat(t),t.match(/%$/g)&&(i*=e/100),n?e+i:i)}function De(e,t){var n=e.orgInlineSize,i=e.orgContentSize,r=e.gridData.inlineOffset||0,e=e.gridData.contentOffset||0;return n&&i?(i<=e?1:(n-r)/(i-e))*(t-e)+r:t}var Le=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.applyGrid=function(e,t,n){var s=this,i=this.options,a=i.attributePrefix,u=i.horizontal,i=(e.forEach(function(e){var t,n,i,r,o;e.isUpdating&&(r=e.element,i=e.attributes,t=e.gridData,n=parseFloat(i.inlineOffset),o=parseFloat(i.contentOffset),isNaN(n)&&(n=s.inlineOffset||t.inlineOffset||0),isNaN(o)&&(o=s.contentOffset||0|t.contentOffset),!r||"inlineOffset"in i||"contentOffset"in i||e.mountState!==O.MOUNTED||(i=r.querySelector("["+a+"maintained-target]"))&&(e=r.offsetWidth-r.clientWidth+r.scrollWidth-i.clientWidth,r=r.offsetHeight-r.clientHeight+r.scrollHeight-i.clientHeight,o=u?(n=r,e):(n=e,r)),t.inlineOffset=n,t.contentOffset=o)}),this.options.rowRange),r=[],o="end"===t;return e.length&&(r=i?this._getRowPath(e,o):this._getPath(e,o)),this._setStyle(e,r,n,"end"===t)},n._getRowPath=function(e,t){var n=this._getColumnRange(),i=this._getRowRange(),e=this._getRowLink(e,{path:[0],cost:0,length:0,currentNode:0},n,i,t);return null!=(n=null==e?void 0:e.path.map(function(e){return""+e}))?n:[]},n._getRowLink=function(e,t,n,i,r){var o=n[0],s=i[0],a=i[1],u=e.length,c=t.path,h=t.length,l=t.cost,f=t.currentNode;return f<u&&(a<=h||u<f+o)?(o=_e(u-f,n)*Math.abs(this._getCost(e,f,u,r)),p(p({},t),{length:h+1,path:m(m([],c),[u]),currentNode:u,cost:l+o,isOver:!0})):u<=f?p(p({},t),{currentNode:u,isOver:h<s||a<h}):this._searchRowLink(e,t,u,n,i,r)},n._searchRowLink=function(e,t,n,i,r,o){for(var s,a=i[0],u=i[1],c=t.currentNode,h=t.path,l=t.length,f=t.cost,d=Math.min(n,c+u),p=[],g=c+a;g<=d;++g)g!==c&&(s=Math.abs(this._getCost(e,c,g,o)),s=this._getRowLink(e,{path:m(m([],h),[g]),length:l+1,cost:f+s,currentNode:g},i,r,o))&&p.push(s);return p.sort(function(e,t){var n=e.isOver;return n!==t.isOver?n?1:-1:_e(e.length,r)-_e(t.length,r)||e.cost-t.cost}),p[0]},n._getExpectedRowSize=function(i,e){var t=this.getContainerInlineSize()-this.getInlineGap()*(i.length-1),r=t,o=0,s=0;if(i.forEach(function(e){var t,n=e.orgInlineSize,i=e.orgContentSize;n&&i?(t=e.gridData.inlineOffset||0,e=e.gridData.contentOffset||0,o+=n=i<=e?1:(n-t)/(i-e),s+=e*n,r-=t):o+=1}),o){var n=(r+s)/o;if(this.stretch){var a=this._getSizeRange(),u=j(n,a[0],a[1]);if(e)return u;var c=this.stretchRange,a=i.map(function(e){return De(e,u)}),e=a.reduce(function(e,t,n){return e+we(t,i[n].attributes.minStretch||c[0])},0),a=a.reduce(function(e,t,n){return e+we(t,i[n].attributes.maxStretch||c[1])},0);if(e<=t&&t<=a)return u}return n}return 0},n._getExpectedInlineSizes=function(e,o){var t=this.options,s=t.stretch,a=t.stretchRange;return e.map(function(e){var t=s?we(e.orgInlineSize,e.attributes.minStretch||a[0]):-1/0,n=s?we(e.orgInlineSize,e.attributes.maxStretch||a[1]):1/0,e=De(e,o),i=!1,r=!1;return n<=e?i=!0:e<=t&&(r=!0),{minSize:t,maxSize:n,size:j(e,t,n),originalSize:e,isMax:i,isMin:r}})},n._getStretchItemInfos=function(e,t){var n=e.length,i=this.getContainerInlineSize()-this.getInlineGap()*(Math.max(1,n)-1),n=this._getExpectedInlineSizes(e,t),e=y(n.map(function(e){return e.size})),t=i-e,r=i/y(n.map(function(e){return e.originalSize})),o=n.map(function(e){return p(p({},e),{passed:!1,size:e.originalSize*r})});if(0==t)return{infos:o,cost:0};for(var s=0<t,a=o.length,u=0;u<a&&"break"!==function(){var e=y(o.map(function(e){return e.passed?e.size:0})),t=y(o.map(function(e){return e.passed?0:e.originalSize})),n=(i-e)/t;if(o.forEach(function(e){e.passed||(s?e.size>e.maxSize&&(n=Math.min(n,e.maxSize/e.originalSize)):e.size<e.minSize&&(n=Math.max(n,e.minSize/e.originalSize)))}),o.forEach(function(e){!e.passed&&(e.size=j(e.originalSize*n,e.minSize,e.maxSize),s&&!v(e.size-e.maxSize,.001)||!s&&!v(e.size-e.minSize,.001))&&(e.passed=!0)}),o.every(function(e){return e.passed}))return"break"}();++u);var c=i/y(o.map(function(e){return e.size}));return v(c-1,.001)&&o.forEach(function(e){e.size*=c}),{infos:o,cost:y(o.map(function(e){var t=Math.abs(e.originalSize-e.size)/2,n=1;return e.size>e.maxSize?(n=2,e.isMin?t+=Math.abs(e.size-e.minSize):t+=Math.abs(e.size-e.maxSize)):e.size<e.minSize?(n=2,e.isMax?t+=Math.abs(e.size-e.maxSize):t+=Math.abs(e.size-e.minSize