/*
Copyright (c) 2015 NAVER Corp.
name: @egjs/infinitegrid
license: MIT
author: NAVER Corp.
repository: https://github.com/naver/egjs-infinitegrid
version: 3.6.0-beta3
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t.eg=t.eg||{},t.eg.InfiniteGrid=e())}(this,function(){"use strict";var n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)};var f=function(){return(f=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function a(t){return void 0===t}var p=function(){var t=function(){function t(){this._eventHandler={},this.options={}}var e=t.prototype;return e.trigger=function(t,e){void 0===e&&(e={});var i=this._eventHandler[t]||[];if(!(0<i.length))return!0;i=i.concat(),e.eventType=t;var n=!1,r=[e],s=0;e.stop=function(){n=!0},e.currentTarget=this;for(var o=arguments.length,a=new Array(2<o?o-2:0),u=2;u<o;u++)a[u-2]=arguments[u];for(1<=a.length&&(r=r.concat(a)),s=0;i[s];s++)i[s].apply(this,r);return!n},e.once=function(r,s){if("object"==typeof r&&a(s)){var t,e=r;for(t in e)this.once(t,e[t]);return this}if("string"==typeof r&&"function"==typeof s){var o=this;this.on(r,function t(){for(var e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];s.apply(o,i),o.off(r,t)})}return this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,e){if("object"==typeof t&&a(e)){var i,n=t;for(i in n)this.on(i,n[i]);return this}if("string"==typeof t&&"function"==typeof e){var r=this._eventHandler[t];a(r)&&(this._eventHandler[t]=[],r=this._eventHandler[t]),r.push(e)}return this},e.off=function(t,e){if(a(t))return this._eventHandler={},this;if(a(e)){if("string"==typeof t)return this._eventHandler[t]=void 0,this;var i,n=t;for(i in n)this.off(i,n[i]);return this}var r,s,o=this._eventHandler[t];if(o)for(r=0;void 0!==(s=o[r]);r++)if(s===e){o=o.splice(r,1);break}return this},t}();return t.VERSION="2.1.2",t}(),m=function(){function t(){this.keys=[],this.values=[]}var e=t.prototype;return e.get=function(t){return this.values[this.keys.indexOf(t)]},e.set=function(t,e){var i=this.keys,n=this.values,r=i.indexOf(t),s=-1===r?i.length:r;i[s]=t,n[s]=e},t}(),y=function(){function t(){this.object={}}var e=t.prototype;return e.get=function(t){return this.object[t]},e.set=function(t,e){this.object[t]=e},t}(),z="function"==typeof Map,r=function(){function t(){}var e=t.prototype;return e.connect=function(t,e){this.prev=t,this.next=e,t&&(t.next=this),e&&(e.prev=this)},e.disconnect=function(){var t=this.prev,e=this.next;t&&(t.next=e),e&&(e.prev=t)},e.getIndex=function(){for(var t=this,e=-1;t;)t=t.prev,++e;return e},t}();var u,S=function(){function t(t,e,i,n,r,s,o,a){this.prevList=t,this.list=e,this.added=i,this.removed=n,this.changed=r,this.maintained=s,this.changedBeforeAdded=o,this.fixed=a}var e=t.prototype;return Object.defineProperty(e,"ordered",{get:function(){return this.cacheOrdered||this.caculateOrdered(),this.cacheOrdered},enumerable:!0,configurable:!0}),Object.defineProperty(e,"pureChanged",{get:function(){return this.cachePureChanged||this.caculateOrdered(),this.cachePureChanged},enumerable:!0,configurable:!0}),e.caculateOrdered=function(){var t=function(t,i){var a=[],u=[];return t.forEach(function(t){var e=t[0],i=t[1],n=new r;a[e]=n,u[i]=n}),a.forEach(function(t,e){t.connect(a[e-1])}),t.filter(function(t,e){return!i[e]}).map(function(t,e){var i=t[0],n=t[1];if(i===n)return[0,0];var r=a[i],s=u[n-1],o=r.getIndex();return r.disconnect(),s?r.connect(s,s.next):r.connect(void 0,a[0]),[o,r.getIndex()]})}(this.changedBeforeAdded,this.fixed),a=this.changed,u=[];this.cacheOrdered=t.filter(function(t,e){var i=t[0],n=t[1],r=a[e],s=r[0],o=r[1];if(i!==n)return u.push([s,o]),!0}),this.cachePureChanged=u},t}();function g(t,e,i){var n=z?Map:i?y:m,r=i||function(t){return t},s=[],o=[],a=[],u=t.map(r),h=e.map(r),c=new n,l=new n,f=[],d=[],p={},g=[],v=0,_=0;return u.forEach(function(t,e){c.set(t,e)}),h.forEach(function(t,e){l.set(t,e)}),u.forEach(function(t,e){var i=l.get(t);void 0===i?(++_,o.push(e)):p[i]=_}),h.forEach(function(t,e){var i=c.get(t);void 0===i?(s.push(e),++v):(a.push([i,e]),_=p[e]||0,f.push([i-_,e-v]),d.push(e===i),i!==e&&g.push([i,e]))}),o.reverse(),new S(t,e,s,o,g,a,f,d)}var t,h=(u="undefined"==typeof window?{document:{},navigator:{userAgent:""}}:window).document,e=u.navigator.userAgent,i=!!("getComputedStyle"in u),s=!!("addEventListener"in h),o=function(){var t=!1;try{s&&Object.defineProperty&&h.addEventListener("test",function(){},Object.defineProperty({},"passive",{get:function(){t=!0}}))}catch(t){}return t}(),v=(/MSIE|Trident|Windows Phone|Edge/.test(e),/iPhone|iPad/.test(e)),d=/Android 2\./.test(e),c="_eg-infinitegrid-container_",C="_eg-infinitegrid-ignore_",l="_INFINITEGRID_TRANSITION",_="vertical",E="horizontal",w=-1e5,M="data-groupkey",x={itemSelector:"*",isOverflowScroll:!1,threshold:100,isEqualSize:!1,isConstantSize:!1,useRecycle:!0,horizontal:!1,transitionDuration:0,useFit:!0,attributePrefix:"data-",renderExternal:!1},I={horizontal:!1,margin:0},L=e.toLowerCase(),P=(/mobi|ios|android/.test(L),"start"),O="center",b="end",T="justify",A=/applewebkit\/([\d|.]*)/g.exec(L),G=A&&parseInt(A[1],10)||0,K=G&&G<537,R=["content","groupKey","itemKey","orgSize","mounted","prevRect","rect","size"],k=(t=function(){var t={transitionend:"",webkitTransitionEnd:"-webkit-",MSTransitionEnd:"-ms-",oTransitionEnd:"-o-",mozTransitionEnd:"-moz-"};for(var e in t){var i=t[e];if("on"+e.toLowerCase()in u)return[i+"transform",i+"transition",e]}return[]}())[0],B=t[1],V=t[2];function q(t){var e=[];if(t)for(var i=t.length,n=0;n<i;n++)e.push(t[n]);return e}function j(t){return t.match(/^<([A-z]+)\s*([^>]*)>/)}function H(t,e){var i;if(void 0===e&&(e=!1),"string"!=typeof t)return tt(t)?i=t:!function(t){return"function"==typeof u.jQuery&&t instanceof u.jQuery||t.constructor.prototype.jquery&&t.toArray}(t)?Array.isArray(t)?(i=t.map(function(t){return H(t)}),e||(i=1<=i.length?i[0]:void 0)):i=!t.nodeName||1!==t.nodeType&&9!==t.nodeType?[].slice.call(i):t:i=e?H(t.toArray(),!0):H(t.get(0),!1),i;if(j(t)){var n=h.createElement("div");n.innerHTML=t,i=n.childNodes}else i=h.querySelectorAll(t);return e?q(i):i&&i[0]}function F(t,e,i,n){if(s){var r=n||!1;"object"==typeof n&&(r=!!o&&n),t.addEventListener(e,i,r)}else t.attachEvent?t.attachEvent("on"+e,i):t["on"+e]=i}function N(t,e,i){t.removeEventListener?t.removeEventListener(e,i,!1):t.detachEvent?t.detachEvent("on"+e,i):t["on"+e]=null}function D(t){return(i?u.getComputedStyle(t):t.currentStyle)||{}}function W(t,e,i){if(tt(t))return u["inner"+e]||h.body["client"+e];if(function(t){return 9===t.nodeType}(t)){var n=t.documentElement,r=t.body;return Math.max(r["scroll"+e],n["scroll"+e],r["offset"+e],n["offset"+e],n["client"+e])}var s=0;if(i){var o=t.getBoundingClientRect();s="Width"===e?o.right-o.left:o.bottom-o.top}else s=t["client"+e]||t["offset"+e];if(s)return s;var a=D(t)[e.toLowerCase()];return~a.indexOf("px")&&parseFloat(a)||0}function X(t){return W(t,"Width",!1)}function Y(t){return W(t,"Height",!1)}function Q(t){return W(t,"Width",!0)}function $(t){return W(t,"Height",!0)}function J(t){return{width:Q(t),height:$(t)}}var U={vertical:{startPos1:"top",endPos1:"bottom",size1:"height",startPos2:"left",endPos2:"right",size2:"width"},horizontal:{startPos1:"left",endPos1:"right",size1:"width",startPos2:"top",endPos2:"bottom",size2:"height"}};function Z(i){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return t.forEach(function(t){for(var e in t)i[e]=t[e]}),i}function tt(t){return t===u}function et(t,e){for(var i=t.length-1;0<=i;--i)t[i]=e;return t}function it(t){return void 0===t}var nt=function(){function r(){this._groups=[],this._groupKeys={}}var t=r.prototype;return r.toItems=function(t,e){return t.map(function(t){return function(t,e){return{el:e,groupKey:t,mounted:!1,content:e?e.outerHTML:"",rect:{top:w,left:w}}}(e,t)})},r.pluck=function(t,i){return t.reduce(function(t,e){return t.concat(e[i])},[])},t.clear=function(){this._groups=[],this._groupKeys={}},t.getStatus=function(t,e){var i=this._groups,n=Math.max(this.indexOf(t),0),r=this.indexOf(e)+1||i.length;return{_data:i.slice(n,r).map(function(t){var e=t.items.map(function(e){var i={};return R.forEach(function(t){t in e&&(i[t]=e[t])}),i}),i=Z({},t);return i.items=e,i})}},t.setStatus=function(t){var i=this,e=t._data;this.clear(),e.forEach(function(t,e){i.insertGroup(t,e)})},t.size=function(){return this._groups.length},t.fit=function(n,t){var e=this._groups;if(e.length){var r=t?"left":"top";0!==n&&e.forEach(function(t){var e=t.items,i=t.outlines;e.forEach(function(t){t.rect[r]-=n}),i.start=i.start.map(function(t){return t-n}),i.end=i.end.map(function(t){return t-n})})}},t.pluck=function(t,e,i){var n=it(e)?this._groups:this.sliceGroups(e,(it(i)?e:i)+1);return r.pluck(n,t)},t.getOutline=function(t,e){var i=this._groups[t];return i?i.outlines[e]:[]},t.getEdgeIndex=function(t,e,i){for(var n="start"===t?"min":"max",r=-1,s="start"===t?1/0:-1/0,o=e;o<=i;o++){var a=Math[n].apply(Math,this.getOutline(o,t));("start"===t&&a<s||"end"===t&&s<a)&&(s=a,r=o)}return r},t.getEdgeValue=function(t,e,i){var n=this.getGroup(this.getEdgeIndex(t,e,i));if(n){var r=n.outlines[t];if(r.length)return Math["start"===t?"min":"max"].apply(Math,r)}return 0},t.clearOutlines=function(i,n){void 0===i&&(i=-1),void 0===n&&(n=-1),this.getGroups().forEach(function(t,e){i<=e&&e<=n||(t.items.forEach(function(t){t.rect.top=w,t.rect.left=w}),t.outlines.start=[],t.outlines.end=[])})},t.getMaxEdgeValue=function(){for(var t=this._groups,e=t.length-1;0<=e;--e){var i=t[e].outlines.end;if(i.length)return Math.max.apply(Math,i)}return 0},t.prependGroup=function(t){return this.insertGroup(t,0)},t.appendGroup=function(t){return this.insertGroup(t,this._groups.length)},t.insertGroup=function(t,i){var n=this;if(i<0)return null;var e=t.items||[],r=f({outlines:{start:[],end:[]}},t,{items:[]});return this._groups.splice(i,0,r),this._groupKeys[r.groupKey]=r,e.forEach(function(t,e){n.insert(t,i,e)}),r},t.sync=function(t){var i=this,s=this._groups,n=function(t){var n=[],r={};return t.forEach(function(t){var e=t.groupKey,i=r[e];i||(i={groupKey:e,items:[]},r[e]=i,n.push(i)),i.items.push(t)}),n}(t),e=g(s,n,function(t){return t.groupKey}),r=e.removed,o=e.added,a=e.ordered,u=e.maintained;return r.forEach(function(t){i.removeGroup(t)}),a.forEach(function(t,e){var i=t[0],n=t[1],r=s.splice(i,1)[0];s.splice(n,0,r)}),o.forEach(function(t){i.insertGroup(n[t],t)}),u.forEach(function(t){var e=t[1];i.syncItems(s[e].items,n[e].items,e)}),e},t.insert=function(t,e,i){void 0===e&&(e=-1),void 0===i&&(i=-1);var n=t.groupKey,r=this._groups,s=this._groupKeys,o=(-1<e?r[e]:s[n])||this.insertGroup({groupKey:n},e);if(!o)return null;var a=f({content:"",mounted:!1,rect:{top:w,left:w}},t),u=o.items;return-1===i?u.push(a):u.splice(i,0,a),a},t.removeGroup=function(t){var e=this._groups.splice(t,1)[0];return e?(delete this._groupKeys[e.groupKey],e):null},t.remove=function(t,e){var i=this.getGroup(t),n=null,r=[];return i&&(r=i.items.splice(e,1),i.items.length||(n=this.removeGroup(t))),{items:r,group:n}},t.indexOf=function(t){if(void 0===t)return-1;for(var e=""+("object"==typeof t?t.groupKey:t),i=this._groups,n=i.length,r=0;r<n;++r)if(e==""+i[r].groupKey)return r;return-1},t.indexesOfElement=function(t){var e=t.getAttribute(M),i=this.indexOf({groupKey:e}),n=-1;if(-1<i)for(var r=this.getGroup(i),s=r.items.length,o=0;o<s;o++)if(r.items[o].el===t){n=o;break}return{groupIndex:i,itemIndex:n}},t.sliceGroups=function(t,e){return this._groups.slice(t,e)},t.getGroups=function(){return this._groups},t.getGroupByKey=function(t){return this._groupKeys[t]},t.getGroup=function(t){return this._groups[t]},t.syncItems=function(r,i,e){var n=this,t=g(r,i,function(t){return t.itemKey}),s=t.removed,o=t.added,a=t.ordered,u=t.maintained;s.forEach(function(t){n.remove(e,t)}),a.forEach(function(t){var e=t[0],i=t[1],n=r.splice(e,1)[0];r.splice(i,0,n)}),o.forEach(function(t){n.insert(i[t],e,t)}),u.forEach(function(t){var e=t[1];Z(r[e],i[e])})},r}();function rt(t){t[B+"-property"]="",t[B+"-duration"]="",t[B+"-delay"]="",t[k]=""}function st(t,e,i){t.forEach(function(t){t in e&&(i[t]=e[t]+"px")})}var ot=function(){function s(t,e){this.options={isEqualSize:!1,isConstantSize:!1,horizontal:!1,container:!1},this._size={container:-1,view:-1,viewport:-1,item:null},this._orgStyle={},Z(this.options,e),this._init(t),this.resize()}var t=s.prototype;return s.renderItem=function(e,t,i){if(e.el){var n=e.el,r=e.prevRect,s=n.style;if(n.setAttribute(M,""+e.groupKey),s.position="absolute",st(["width","height"],t,s),i&&B&&r){if(function(t,e,i,n){e?i.left===n.left&&i.top===n.top||(t[B+"-property"]=k+",width,height",t[B+"-duration"]=e+"s",t[B+"-delay"]="0s",t[k]="translate("+(i.left-n.left)+"px,"+(i.top-n.top)+"px)"):rt(t)}(s,i,t,r),n[l])return;n[l]=!0,function(e,i,n,t){var r=function(t){N(e,i,r),n(t)};F(e,i,r,t)}(n,V,function(){var t=e.rect;rt(s),st(["left","top"],t,s),e.prevRect=t,n[l]=!1})}else st(["left","top"],t,s),e.prevRect=t}},s.renderItems=function(t,e){t.forEach(function(t){s.renderItem(t,t.rect,e)})},s.removeItems=function(t){t.forEach(function(t){t.el&&(s.removeElement(t.el),t.el=null)})},s.removeElement=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},s.createElements=function(t){if(t.length){var e=t.filter(function(t){return!t.el});if(e.length){var i=H(e.map(function(t){return t.content.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,"")}).join(""),!0);e.forEach(function(t,e){t.el=i[e]})}}},t.getStatus=function(){return{cssText:this.container.style.cssText,_size:Z({},this._size)}},t.setStatus=function(t){this.container.style.cssText=t.cssText,Z(this._size,t._size)},t.updateSize=function(t){var e=this.options,i=e.isEqualSize,n=e.isConstantSize,r=this._size;return t.map(function(t){return t.el&&(i&&!r.item&&(r.item=J(t.el)),t.size=i&&Z({},r.item)||n&&t.orgSize&&t.orgSize.width&&Z({},t.orgSize)||J(t.el),t.orgSize&&t.orgSize.width&&t.orgSize.height||(t.orgSize=Z({},t.size))),t})},t.createAndInsert=function(t,e){s.createElements(t),s.renderItems(t),this._insert(t,e)},t.getViewSize=function(){return this._size.view},t.getViewportSize=function(){return this._size.viewport},t.getContainerSize=function(){return this._size.container},t.setContainerSize=function(t){this._size.container=t,this.container.style[this.options.horizontal?"width":"height"]=t+"px"},t.resize=function(){var t=this.options.horizontal,e=this.view,i=this._calcSize();if(0!==i){var n=i!==this._size.viewport;return n&&(this._size={view:-1,container:-1,viewport:i,item:null}),this._size.view=t?X(e):Y(e),n}},t.isNeededResize=function(){return this._calcSize()!==this._size.viewport},t.clear=function(){this.container.innerHTML="",this.container.style[this.options.horizontal?"width":"height"]="",this._size={item:null,viewport:-1,container:-1,view:-1}},t.destroy=function(){this.clear();var t,e=this.options.container;for(t in this._orgStyle)this[e?"view":"container"].style[t]=this._orgStyle[t];e&&this.container.parentNode.removeChild(this.container)},t._init=function(t){var e=H(t),i=D(e),n=this.options,r=n.container,s=n.horizontal;if("static"===i.position&&(this._orgStyle.position=e.style.position,e.style.position="relative"),r){var o=s?["X","Y"]:["Y","X"];this._orgStyle.overflowX=e.style.overflowX,this._orgStyle.overflowY=e.style.overflowY,e.style["overflow"+o[0]]="scroll",e.style["overflow"+o[1]]="hidden",this.view=e,this.container=!0===r?function(t){var e=t.querySelector("."+c);if(e)return e.style.position="relative",e.style.height="100%",e;var i=h.createElement("div");i.className=c,i.style.position="relative",i.style.height="100%";for(var n=t.children,r=n.length,s=0;s<r;s++)i.appendChild(n[0]);return t.appendChild(i),i}(this.view):r}else this.view=u,this.container=e},t._insert=function(t,e,i){var n=this.container,r=h.createDocumentFragment();t.forEach(function(t){i&&s.renderItem(t,i),e?r.appendChild(t.el):r.insertBefore(t.el,r.firstChild)}),e?n.appendChild(r):n.insertBefore(r,n.firstChild)},t._calcSize=function(){return this.options.horizontal?Y(this.container):X(this.container)},s}();var at=function(){function t(t,e){this.options=Z({useRecycle:!0,threshold:100,append:function(){},prepend:function(){},recycle:function(){}},e),this._itemManager=t,this.clear()}var e=t.prototype;return e.setSize=function(t){this._status.size=t},e.sync=function(t){var e=this._status,i=e.startCursor,n=e.endCursor,r=this._itemManager,s=r.sliceGroups(i,n+1),o=nt.pluck(s,"items"),a=r.sync(t),u=function(t,e){for(var i=t.length,n=0;n<i;++n)if(e(t[n]))return t[n];return null}(s,function(t){var e=t.groupKey;return r.getGroupByKey(e)}),h=function(t,e){for(var i=t.length-1;0<=i;--i)if(e(t[i]))return t[i];return null}(s,function(t){var e=t.groupKey;return r.getGroupByKey(e)}),c=u?r.indexOf(u):-1,l=h?r.indexOf(h):-1;if(-1<c&&-1<l){var f=Math.min(c,l),d=Math.max(c,l);c=f,l=d}else-1<l?c=l:-1<c&&(l=c);return e.startCursor=c,e.endCursor=l,0<a.removed.length?"relayout":0<g(o,r.pluck("items",i,n),function(t){return t.itemKey}).removed.length?"layout":""},e.recycle=function(e,t){if(this.options.useRecycle&&"number"==typeof e){var i=this._status,n=i.startCursor,r=i.endCursor,s=i.size;if(-1!==n&&-1!==r){var o=e+s,a=this.options,u=a.threshold,h=a.recycle,c=this._itemManager.sliceGroups(n,r+1).map(function(t){return function(t,e,i,n){var r=t.items,s=t.outlines,o=s.start,a=s.end;if(0===o.length||0===a.length||!r.length||!r[0].el)return 2;var u=Math.min.apply(Math,o),h=Math.max.apply(Math,a);return n+e<u?1:h<i-e?-1:0}(t,u,e,o)}),l=c.length,f=t?0:c.lastIndexOf(0),d=t?c.indexOf(0)-1:c.length-1;t||-1===f||(f+=1),f<0||d<0||d<f||l<=d-f+1||(h({start:f=n+f,end:d=n+d}),t?this.setCursor("start",d+1):this.setCursor("end",f-1))}}},e.scroll=function(a){var t=this.getCursors(),e=t[0],i=t[1],n=this._itemManager;if("number"==typeof a&&-1!==e&&-1!==i&&n.size()){var r=this._status.size,s=this.options,u=s.threshold,o=s.append,h=s.prepend,c=n.getGroups(),l=a+r,f=Math.max.apply(Math,c[e].outlines.start),d=Math.min.apply(Math,c[i].outlines.end),p=c.map(function(t,e){var i=t.outlines,n=i.start,r=i.end;if(!n.length||!r.length)return!1;var s=Math.min.apply(Math,n),o=Math.max.apply(Math,r);return s-u<=l&&a<=o+u}),g=p.indexOf(!0),v=p.lastIndexOf(!0);if(~g&&g<e)h({cache:c.slice(g,Math.min(e,v+1))});else if(i<v)o({cache:c.slice(Math.max(g,i+1),v+1)});else{var _=c.slice(i+1,i+2),m=c.slice(e-1,e),y=a<=f+u;d-u<=l&&(!y||_.length||!m.length)?o({cache:_}):y&&h({cache:m})}}},e.setCursor=function(t,e){var i=this._status,n=this._itemManager,r=n.size();if(!this.options.useRecycle){if(i.startCursor=0,n.getOutline(r-1,"end").length)return void(i.endCursor=r-1);if("end"!==t)return}"start"===t?i.startCursor=e:i.endCursor=Math.min(r-1,e),i.startCursor=Math.max(0,i.startCursor)},e.setStatus=function(t){this._status=Z(this._status,t)},e.getStatus=function(t,e){var i=this._status,n=i.startCursor,r=i.endCursor,s=i.size,o=Math.max(this._itemManager.indexOf(t),0),a=(this._itemManager.indexOf(e)+1||this._itemManager.size())-1,u=Math.max(n-o,~n?0:-1);return{startCursor:u,endCursor:Math.max(Math.min(r-o,a-o),u),size:s}},e.getEdgeOutline=function(t){var e=this._status,i=e.startCursor,n=e.endCursor;return-1===i||-1===n?[]:this._itemManager.getOutline("start"===t?i:n,t)},e.getEdgeValue=function(t){var e=this.getEdgeOutline(t);return e.length?Math["start"===t?"min":"max"].apply(Math,e):0},e.getVisibleItems=function(){var t=this._status,e=t.startCursor,i=t.endCursor;return this._itemManager.pluck("items",e,i)},e.getCursors=function(){var t=this._status;return[t.startCursor,t.endCursor]},e.getCursor=function(t){return this._status["start"===t?"startCursor":"endCursor"]},e.getVisibleData=function(){var t=this._status,e=t.startCursor,i=t.endCursor;return this._itemManager.sliceGroups(e,i+1)},e.remove=function(t,e){var i=this._status,n=this._itemManager,r=i.startCursor,s=i.endCursor,o=n.remove(t,e);return o.group&&(t<r&&this.setCursor("start",r-1),t<=s&&this.setCursor("end",s-1)),n.size()||(i.startCursor=-1,i.endCursor=-1),o},e.clear=function(){this._status={startCursor:-1,endCursor:-1,size:-1}},t}(),ut="undefined"!=typeof window,ht=ut?window.navigator.userAgent:"",ct=ut&&!!("getComputedStyle"in window),lt=/MSIE|Trident|Windows Phone|Edge/.test(ht),ft=ut&&!!("addEventListener"in document),dt="width",pt="height";function gt(t,e){return t.getAttribute(e)||""}function vt(t){return[].slice.call(t)}function _t(t,e){return void 0===e&&(e="data-"),!!t.getAttribute(e+"width")}function mt(t,e,i){ft?t.addEventListener(e,i,!1):t.attachEvent?t.attachEvent("on"+e,i):t["on"+e]=i}function yt(t,e,i){t.removeEventListener?t.removeEventListener(e,i,!1):t.detachEvent?t.detachEvent("on"+e,i):t["on"+e]=null}function zt(t,e){var i=t["client"+e]||t["offset"+e];return parseFloat(i||function(t){return(ct?window.getComputedStyle(t):t.currentStyle)||{}}(t)[e.toLowerCase()])||0}var St=[];function Ct(t,e){St.length||mt(window,"resize",Mt),t.__PREFIX__=e,St.push(t),wt(t)}function Et(t,e){var i=St.indexOf(t);if(!(i<0)){var n=gt(t,e+"fixed");delete t.__PREFIX__,t.style[n===pt?dt:pt]="",St.splice(i,1),St.length||yt(window,"resize",Mt)}}function wt(t,e){void 0===e&&(e="data-");var i=t.__PREFIX__;"string"!=typeof i&&(i=e);var n=parseInt(gt(t,""+i+dt),10)||0,r=parseInt(gt(t,""+i+pt),10)||0;if(gt(t,i+"fixed")===pt){var s=function(t){return zt(t,"Height")}(t)||r;t.style[dt]=n/r*s+"px"}else{s=function(t){return zt(t,"Width")}(t)||n;t.style[pt]=r/n*s+"px"}}function Mt(){St.forEach(function(t){wt(t)})}function xt(t,a){void 0===a&&(a="data-");var u=new p,h=0,c=0;function l(){0==--h&&u.trigger("finish")}return t.forEach(function(s,o){var t=s.tagName;if(_t(s,a)&&"IMG"!==t)return Ct(s,a),++h,void setTimeout(function(){xt(vt(s.querySelectorAll("img")),a).on("finish",function(){Et(s,a),l()})});var e="IMG"===t?[s]:vt(s.querySelectorAll("img"));e.length&&e.forEach(function(i,n){function r(t){var e=t.target||t.srcElement;yt(e,"error",r),yt(e,"load",r),_t(e,a)?Et(e,a):0==--c&&u.trigger("ready"),"error"===t.type&&u.trigger("error",{itemTarget:s,itemIndex:o,target:i,index:n}),l()}i.complete&&(!lt||lt&&i.naturalWidth)?i.naturalWidth||setTimeout(function(){u.trigger("error",{itemTarget:s,itemIndex:o,target:i,index:n})}):(_t(i,a)?Ct(i,a):++c,++h,mt(i,"load",r),mt(i,"error",r),lt&&i.setAttribute("src",i.getAttribute("src")))})}),c||setTimeout(function(){u.trigger("ready")}),h||setTimeout(function(){u.trigger("finish")}),u}function It(t,e){return~t.indexOf(e)}var Lt=function(){function t(t,e,i,n){this._infinite=t,this._itemManager=e,this._renderer=i,this.options=n}var e=t.prototype;return e.setLayout=function(t){this._layout=t},e.render=function(n,t,r,e){var s=this;void 0===r&&(r=nt.pluck(t,"items"));var i=e?t:t.reverse(),o=[],a=[];return xt(r.map(function(t){return t.el}),this.options.attributePrefix).on("ready",function(){s._itemManager&&s._complete(n,i,r,e)}).on("error",function(t){var e=t.target,i=t.itemIndex;s._itemManager&&s._error(n,a,o,e,r,i)}).on("finish",function(){s._itemManager&&s._end(n,a,o,r)}),n},e._complete=function(t,e,i,r){var n=this._infinite,s=this._layout,o=this._itemManager,a=r?"end":"start",u=o.indexOf(e[0]),h=o.getGroup(u+(r?-1:1)),c=h?h.outlines[a]:[0];this._renderer.updateSize(i),e.forEach(function(t){var i=t.outlines[r?"start":"end"];if(!(!c.length||c.length!==i.length||!c.every(function(t,e){return t===i[e]})))return c=t.outlines[r?"end":"start"],void ot.renderItems(t.items);var e=t.items,n=s[r?"append":"prepend"](e,c,!0);Z(t,n),ot.renderItems(n.items),c=n.outlines[r?"end":"start"]});var l=Math.max(n.getCursor("start"),0),f=Math.max(n.getCursor("end"),0),d=o.indexOf(e[0].groupKey),p=o.indexOf(e[e.length-1].groupKey),g=!0;if((f+1<d||p<l-1)&&(g=!1),g&&(p=r?(d=l,Math.max(f,p)):(d=Math.max(Math.min(l,d),0),f)),p<d){var v=d;d=p,p=v}t.trigger("renderComplete",{start:d,end:p}),t.trigger("layoutComplete",{items:i,isAppend:r})},e._error=function(t,i,n,r,e,s){function o(){if(!It(i,h)){i.push(h);var t=n.indexOf(s);-1!==t&&n.splice(t,1)}}var a=this._itemManager,u=e[s],h=u.el,c=this.options.attributePrefix,l=a.pluck("items").indexOf(u);t.trigger("imageError",{target:r,element:h,items:e,item:u,itemIndex:s,replace:function(t){if(!It(i,h)){if(t)if(j(t)||"object"==typeof t){var e=r.parentNode;e.insertBefore(H(t),r),e.removeChild(r),u.content=h.outerHTML}else r.src=t,r.getAttribute(c+"width")&&(Et(r,c),r.removeAttribute(c+"width"),r.removeAttribute(c+"height"));u.content=h.outerHTML,It(n,s)||n.push(s)}},replaceItem:function(t){It(i,h)||(h.innerHTML=t,u.content=h.outerHTML,It(n,s)||n.push(s))},remove:function(){r!==h?It(i,h)||(r.parentNode.removeChild(r),u.content=h.outerHTML,It(n,s)||n.push(s)):o()},removeItem:o,totalIndex:l})},e._end=function(t,e,i,n){var r=this,s=this.options.attributePrefix,o=e.length,a=i.length;if(o||a){var u=i.map(function(t){return n[t]});a?xt(u.map(function(t){return t.el}),s).on("ready",function(){r._renderer.updateSize(u),t.trigger("finish",{remove:e,layout:!0})}):t.trigger("finish",{remove:e,layout:!0})}else t.trigger("finish",{remove:[]})},t}(),Pt=function(){function t(t,e){void 0===e&&(e={});var n=this;this._containerOffset=0,this._isScrollIssue=v,this._prevPos=null,this._onCheck=function(){var t=n.getScrollPos(),e=n.getOrgScrollPos();n.setScrollPos(e);var i=n.getScrollPos();null===t||n._isScrollIssue&&0===e||t===i?e&&(n._isScrollIssue=!1):(n._isScrollIssue=!1,n.options.check({isForward:t<i,scrollPos:i,orgScrollPos:e,horizontal:n.options.horizontal}))},this._onResize=function(){n._timer.resize&&clearTimeout(n._timer.resize),n._timer.resize=setTimeout(function(){n.resize(),n.options.resize(),n._timer.resize=null},100)},Z(this.options={container:t,resize:function(){},check:function(){},isOverflowScroll:!1,horizontal:!1},e),this._timer={resize:null},this._view=t,this.attachEvent(),this.resize(),this.setScrollPos()}var e=t.prototype;return e.getStatus=function(){return{_prevPos:this._prevPos,scrollPos:this.getOrgScrollPos()}},e.setStatus=function(t,e){void 0===e&&(e=!0),this._prevPos=t._prevPos,e&&this.scrollTo(t.scrollPos)},e.scrollBy=function(t){var e=this.options.horizontal?[t,0]:[0,t];!function(t,e,i){tt(t)?t.scrollBy(e,i):(t.scrollLeft+=e,t.scrollTop+=i)}(this._view,e[0],e[1]),this.setScrollPos()},e.scrollTo=function(t){var e=this.options.horizontal?[t,0]:[0,t];!function(t,e,i){tt(t)?t.scroll(e,i):(t.scrollLeft=e,t.scrollTop=i)}(this._view,e[0],e[1])},e.getScrollPos=function(){return this._prevPos},e.setScrollPos=function(t){void 0===t&&(t=this.getOrgScrollPos()),this._prevPos=t-this.getContainerOffset()},e.attachEvent=function(){F(this._view,"scroll",this._onCheck),F(u,"resize",this._onResize)},e.getOrgScrollPos=function(){return function(t,e){void 0===e&&(e=!1);var i="scroll"+(e?"Left":"Top");return tt(t)?u[e?"pageXOffset":"pageYOffset"]||h.body[i]||h.documentElement[i]:t[i]}(this._view,this.options.horizontal)},e.reset=function(){this._prevPos=null},e.getContainerOffset=function(){return this._containerOffset},e.resize=function(){this._containerOffset=this.options.isOverflowScroll?0:this._getOffset()},e.detachEvent=function(){N(this._view,"scroll",this._onCheck),N(u,"resize",this._onResize)},e.destroy=function(){this.detachEvent(),this.reset()},e._getOffset=function(){var t=this.options,e=t.container,i=t.horizontal;return e.getBoundingClientRect()[i?"left":"top"]+this.getOrgScrollPos()},t}(),Ot=function(l){function t(t,e){var i=l.call(this)||this;i._requestGroups=[],Z(i.options=f({},x),e),K&&(i.options.useFit=!1),d&&(i.options.isOverflowScroll=!1),i._reset(),i._loadingBar={};var n=i.options,r=n.isOverflowScroll,s=n.isEqualSize,o=n.isConstantSize,a=n.horizontal,u=n.threshold,h=n.useRecycle,c=n.attributePrefix;return i._itemManager=new nt,i._renderer=new ot(t,{isEqualSize:s,isConstantSize:o,horizontal:a,container:r}),i._watcher=new Pt(i._renderer.view,{isOverflowScroll:r,horizontal:a,container:i._renderer.container,resize:function(){return i._onResize()},check:function(t){return i._onCheck(t)}}),i._infinite=new at(i._itemManager,{useRecycle:h,threshold:u,append:function(t){return i._requestAppend(t)},prepend:function(t){return i._requestPrepend(t)},recycle:function(t){return i._recycle([t])}}),i._renderManager=new Lt(i._infinite,i._itemManager,i._renderer,{attributePrefix:c,isEqualSize:s,isConstantSize:o,horizontal:a}),i}!function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}(t,l);var e=t.prototype;return e.append=function(t,e){return this._layout&&this._insert({elements:t,isAppend:!0,groupKey:e}),this},e.prepend=function(t,e){return this._layout&&this._insert({elements:t,isAppend:!1,groupKey:e}),this},e.setLayout=function(t,e){void 0===e&&(e={});var i=this.options.horizontal;return"function"==typeof t?this._layout=new t(Z(e,{horizontal:i})):(t.options.horizontal=i,this._layout=t),this._renderManager.setLayout(this._layout),this._renderer.resize(),this._setSize(this._renderer.getViewportSize()),this},e.getItems=function(t){return void 0===t&&(t=!1),t?this._itemManager.pluck("items"):this._infinite.getVisibleItems()},e.getRenderingItems=function(){var t=this.getItems(),e={};t.forEach(function(t){e[t.itemKey]=!0});var i=nt.pluck(this._requestGroups,"items").filter(function(t){return!e[t.itemKey]&&(e[t.itemKey]=!0)});return t.concat(i)},e.beforeSync=function(t){return this._infinite.sync(t)},e.sync=function(n){var t=this.getRenderingItems();if(t.forEach(function(t,e){var i=t.el!==n[e];t.el=n[e],i&&ot.renderItem(t,t.rect)}),!this._isProcessing()){var e=t.filter(function(t){return!t.orgSize||!t.orgSize.width});e.length?this._postLayout({fromCache:!1,groups:this._infinite.getVisibleData(),newItems:e,isAppend:!0,isTrusted:!1}):this._infinite.scroll(this._watcher.getScrollPos())}},e.layout=function(t){if(void 0===t&&(t=!0),!this._layout)return this;var e=this._renderer,i=this._itemManager,n=this._infinite,r=e.resize(),s=this.getItems(),o=this.options,a=o.isEqualSize,u=o.isConstantSize,h=o.transitionDuration,c=t&&(a||u),l=i.size();if(this._watcher.resize(),t&&r&&this._setSize(e.getViewportSize()),!s.length){var f=q(e.container.children).filter(function(t){return-1===t.className.indexOf(C)}),d=0<f.length;if(l){var p=i.getGroup(0);d&&p.items.forEach(function(t,e){t.el=f[e]}),this._postLayout({groups:[p],hasChildren:d,fromCache:!1,isAppend:!0})}else d?this._insert({elements:f,isAppend:!0,hasChildren:!0}):(e.getContainerSize()&&e.setContainerSize(0),this._requestAppend({}));return this}var g=n.getCursors(),v=g[0],_=g[1],m=!c&&t&&r?i.sliceGroups(v,_+1):i.getGroups();return this._relayout(t,m,r?s:[]),c?this._fit():t&&r&&i.clearOutlines(v,_),ot.renderItems(s,h),t&&this._watcher.setScrollPos(),this._onLayoutComplete({items:s,isAppend:!0,fromCache:!0,isTrusted:!1,useRecycle:!1,isLayout:!0}),this},e.removeByIndex=function(t,e,i){void 0===i&&(i=!0);var n=this._infinite.remove(t,e),r=n.items,s=n.group;return r.forEach(function(t){ot.removeElement(t.el)}),r.length?(i&&this.layout(!!s),r):[]},e.remove=function(t,e){void 0===e&&(e=!0);var i=this._itemManager.indexesOfElement(t),n=i.groupIndex,r=i.itemIndex;return this.removeByIndex(n,r,e)},e.getGroupKeys=function(t){return(t?this._itemManager.getGroups():this._infinite.getVisibleData()).map(function(t){return t.groupKey})},e.getStatus=function(t,e){return{_status:Z({},this._status),_itemManager:this._itemManager.getStatus(t,e),_renderer:this._renderer.getStatus(),_watcher:this._watcher.getStatus(),_infinite:this._infinite.getStatus(t,e)}},e.setStatus=function(t,e,i){if(void 0===e&&(e=!0),!t)return this;var n=t._status,r=t._renderer,s=t._itemManager,o=t._watcher,a=t._infinite;if(!(n&&r&&s&&o&&a))return this;var u=this.options.renderExternal,h=this._itemManager,c=this._renderer,l=this._watcher,f=this._infinite;l.detachEvent(),Z(this._status,n),this._status.processingStatus=0,h.setStatus(s),c.setStatus(r),f.setStatus(a);var d=this.getItems(),p=d.length;u?(d.forEach(function(t,e){t.el=i[e]}),ot.renderItems(d)):c.createAndInsert(d,!0);var g=c.isNeededResize();l.setStatus(o,e),l.attachEvent();var v=this.options,_=v.isConstantSize,m=v.isEqualSize;return p?g?(c.resize(),this._setSize(c.getViewportSize()),_?this.layout(!0):(this._itemManager.clearOutlines(),this._postLayout({fromCache:!0,groups:m?h.getGroups():f.getVisibleData(),items:d,newItems:d,isAppend:!0,isTrusted:!1}))):this.layout(!1):this._requestAppend({cache:[]}),this},e.clear=function(){return this._itemManager.clear(),this._renderer.clear(),this._infinite.clear(),this._reset(),this._appendLoadingBar(),this},e.setLoadingBar=function(t){void 0===t&&(t={});var e="object"==typeof t?t:{append:t,prepend:t};this._status.loadingSize=0,this._status.loadingStyle={};var i=this._loadingBar;for(var n in e)i[n]=H(e[n]),i[n].className+=" "+C;return this._appendLoadingBar(),this},e.isProcessing=function(){return this._isProcessing()||this.isLoading()},e.isLoading=function(){return 0<this._getLoadingStatus()},e.getLoadingBar=function(t){return void 0===t&&(t=2!==this._getLoadingStatus()),this._loadingBar[t?"append":"prepend"]},e.startLoading=function(t,e){var i=this;if(void 0===e&&(e={display:"block"}),this.isLoading())return this;var n=t?"append":"prepend";if(this._process(t?1:2),!this._loadingBar[n])return this;function r(){i._renderLoading(e),i._status.loadingStyle=e,t?i._setContainerSize(i._getEdgeValue("end")+i._status.loadingSize):i._fit()}return this.options.renderExternal?this.trigger("render",{next:r}):r(),this},e.endLoading=function(t){var e;if(void 0===t&&(t={display:"none"}),!this.isLoading())return this;var i=1===this._getLoadingStatus(),n=i?"append":"prepend",r=this._loadingBar[n],s=this._status,o=s.loadingSize;if(this._process(3,!1),s.loadingSize=0,s.loadingStyle={},r){var a=Z(((e={})[this.options.horizontal?"left":"top"]=-o+"px",e),t);for(var u in a)r.style[u]=a[u];i?this._setContainerSize(this._getEdgeValue("end")):this._fitItems(o),this.options.renderExternal&&this.trigger("render",{next:function(){}})}return this.options.useRecycle&&!this.isProcessing()&&this._infinite.recycle(this._watcher.getScrollPos(),i),this},e.getItem=function(t,e){if(void 0===t&&(t=0),"object"!=typeof t){var i=this._itemManager.getGroup(t);return i&&i.items[e||0]}if(t)for(var n=this.getItems(),r=n.length,s=0;s<r;++s)if(n[s].el===t)return n[s]},e.updateItem=function(t,e){var i=this.getItem(t,e);return this._updateItem(i)&&this.layout(!1),this},e.updateItems=function(){var e=this;return this.getItems().forEach(function(t){e._updateItem(t)}),this.layout(!1),this},e.moveTo=function(t,s){var o=this;if(void 0===s&&(s=0),this.isProcessing())return this;var e=this._itemManager.getGroup(t);if(!e)return this;var i=this._infinite,n=e.outlines,a=e.items,r=a[s],u=n.start&&0===n.start.length,h=i.getCursors(),c=h[0],l=h[1],f=c<=t&&t<=l,d=this.options,p=d.useRecycle,g=d.horizontal;if(f||!p||!u){var v=r?r.rect[g?"left":"top"]:Math.max.apply(Math,n.start),_=Math.min.apply(Math,n.start);_<0&&(this._fitItems(_,0),v-=_);var m=c<t;return f||m?this._scrollTo(v):this._postLayout({fromCache:!0,groups:[e],items:a,newItems:[],isAppend:m,isTrusted:!1}).on("renderComplete",function(t){var e=t.start,i=t.end,n=o._itemManager;if(n){var r=a[s].rect[g?"left":"top"];f||n.clearOutlines(e,i),o._scrollTo(r),o._setScrollPos(r)}}),this}m=l<t||t<c-1;return this._postCache({isAppend:m,cache:[e],isTrusted:!1}).on("renderComplete",function(t){var e=t.start,i=t.end,n=o._itemManager;if(n){var r=a[s].rect[g?"left":"top"];n.clearOutlines(e,i),o._scrollTo(r),o._setScrollPos(r)}}),this},e.destroy=function(){this._infinite.clear(),this._watcher.destroy(),this._reset(),this._itemManager.clear(),this._renderer.destroy()},e._relayout=function(t,e,i){var n=this._renderer,r=n.options,s=r.isEqualSize,o=r.isConstantSize,a=e.filter(function(t){var e=t.items[0];return e.orgSize&&-1e4<e.rect.top});if(!a.length)return[];var u=a[0].outlines.start;t&&(u=[u.length?Math.min.apply(Math,u):0],!o&&i.length&&(n.updateSize(i),s&&i[0].size&&nt.pluck(a,"items").forEach(function(t){t.size=Z({},i[0].size)}))),this._layout.layout(a,u)},e._setContainerSize=function(t){this._renderer.setContainerSize(Math.max(this._itemManager.getMaxEdgeValue(),t))},e._appendLoadingBar=function(){if(!this.options.renderExternal){var t=this._loadingBar,e=this._renderer.container;for(var i in t)e.appendChild(t[i])}},e._setSize=function(t){this._infinite.setSize(this._renderer.getViewSize()),this._layout.setSize(t)},e._fitItems=function(t,e){void 0===e&&(e=0),0<t&&this._watcher.scrollBy(-t),this._itemManager.fit(t,this.options.horizontal),ot.renderItems(this.getItems()),this._setContainerSize(this._getEdgeValue("end")||e),t<0&&this._watcher.scrollBy(-t)},e._fit=function(t){void 0===t&&(t=this.options.useFit);var e=this._getEdgeValue("start"),i=2===this._getLoadingStatus()&&this._status.loadingSize||0,n=this.options,r=n.isConstantSize,s=n.isEqualSize;if(!n.useRecycle||!t||r||s)e<i&&this._fitItems(e-i,i),e=0;else{if(0===e&&!i)return 0;this._fitItems(e-i,i)}return this.isLoading()&&this._renderLoading(),e},e._getEdgeValue=function(t){return this._infinite.getEdgeValue(t)},e._isProcessing=function(){return 0<(4&this._status.processingStatus)},e._getLoadingStatus=function(){return 3&this._status.processingStatus},e._process=function(t,e){void 0===e&&(e=!0),e?this._status.processingStatus|=t:this._status.processingStatus-=this._status.processingStatus&t},e._insert=function(t){var e=t.elements,i=t.isAppend,n=t.hasChildren,r=t.groupKey,s=void 0===r?(new Date).getTime()+Math.floor(1e3*Math.random()):r;if(!this._isProcessing()&&0!==e.length){var o=nt.toItems(H(e,!0),s);this._insertItems({items:o,isAppend:i,hasChildren:n,groupKey:s})}},e._insertItems=function(t){var e=t.items,i=t.isAppend,n=t.hasChildren,r=t.groupKey,s=void 0===r?(new Date).getTime()+Math.floor(1e3*Math.random()):r;if(e.length){var o=this._itemManager[i?"appendGroup":"prependGroup"]({groupKey:s,items:e});if(!i){var a=this._infinite,u=a.getCursors(),h=u[0],c=u[1];a.setCursor("start",h+1),a.setCursor("end",c+1)}this._postLayout({fromCache:!1,groups:[o],items:o.items,newItems:o.items,isAppend:i,hasChildren:n,isTrusted:!1})}},e._recycle=function(t){var r=this,e=this.options,i=e.useRecycle,s=e.renderExternal;if(!i)return!1;var o=!1;return t.forEach(function(t){var e=t.start,i=t.end;if(!(-1===e||-1===i||i<e)){var n=r._itemManager.pluck("items",e,i);o=o||n.some(function(t){return t.mounted}),n.forEach(function(t){t.mounted=!1}),s||ot.removeItems(n)}}),o&&(this._requestGroups=[],this.trigger("render",{next:function(){}})),o},e._renderLoading=function(t){if(void 0===t&&(t=this._status.loadingStyle),this.isLoading()){var e=1===this._getLoadingStatus(),i=this._loadingBar[e?"append":"prepend"];if(i){var n=Z({position:"absolute"},t);for(var r in n)i.style[r]=n[r];this._status.loadingSize=this.options.horizontal?Q(i):$(i);var s=this.options.horizontal?"left":"top";if(!(s in n)){var o=e?this._getEdgeValue("end"):this._getEdgeValue("start")-this._status.loadingSize;i.style[s]=o+"px"}}}},e._updateItem=function(t){return!(!t||!t.el)&&(t.content=t.el.outerHTML,this.options.isEqualSize||function(t){t.orgSize=null,t.size=null}(t),this._renderer.updateSize([t]),!0)},e._setScrollPos=function(t){this._watcher.setScrollPos(this._watcher.getContainerOffset()+t)},e._scrollTo=function(t){this._watcher.scrollTo(this._watcher.getContainerOffset()+t)},e._postCache=function(t){var e=t.cache,i=t.isAppend,n=t.isTrusted,r=void 0===n||n,s=this.options.isConstantSize,o=nt.pluck(e,"items"),a=!0,u=o.filter(function(t){return t.orgSize&&t.orgSize.width?!s&&t.rect.top<-1e4:!(a=!1)});return this._postLayout({fromCache:a,groups:e,items:o,newItems:u,isAppend:i,isTrusted:r})},e._postLayout=function(t){var r=this,i=t.fromCache,e=t.groups,n=t.items,s=void 0===n?nt.pluck(e,"items"):n,o=t.newItems,a=t.isAppend,u=t.hasChildren,h=t.isTrusted;if(this._process(4),e.length){var c=this.options.renderExternal,l=this._renderer,f=new p,d=function(){s.forEach(function(t){t.mounted=!0}),r._renderManager.render(f,e,o,a).on("renderComplete",function(t){var e=t.start,i=t.end;r._setCursor(e,i)}).on("imageError",function(t){r.trigger("imageError",Z(t,{element:t.item.el}))}).on("layoutComplete",function(t){var e=t.items;r._process(4,!1),r._onLayoutComplete({items:e,isAppend:a,fromCache:i,isTrusted:h,useRecycle:!1})}).on("finish",function(t){var e=t.remove,i=t.layout;if(e.forEach(function(t){return r.remove(t,!1)}),i)r.layout(!1);else if(!r.isProcessing()&&r.options.useRecycle){var n=r._watcher.getScrollPos();r._infinite.recycle(n,a)}})};if(!u){if(c)return s.every(function(t){return t.mounted})?d():(this._requestGroups=e,this.trigger("render",{next:function(){u||ot.renderItems(s),d()}})),f;l.createAndInsert(s,a)}return d(),f}},e._requestAppend=function(t){var e=this,i=t.cache;this._isProcessing()||(i&&i.length?this._postCache({cache:i,isAppend:!0}):this.trigger("append",{isTrusted:!0,groupKey:this.getGroupKeys().pop()||"",startLoading:function(t){e.startLoading(!0,t)},endLoading:function(t){e.endLoading(t)}}))},e._requestPrepend=function(t){var e=this,i=t.cache;this._fit(this.options.useFit||!i||!i.length),this._isProcessing()||(i&&i.length?this._postCache({cache:i,isAppend:!1}):this.trigger("prepend",{isTrusted:!0,groupKey:this.getGroupKeys().shift(),startLoading:function(t){e.startLoading(!1,t)},endLoading:function(t){e.endLoading(t)}}))},e._onResize=function(){this.layout(!0)},e._setCursor=function(t,e){var i=this._infinite,n=i.getCursors(),r=n[0],s=n[1];i.setCursor("start",t),i.setCursor("end",e),this._recycle([{start:r,end:t-1},{start:e+1,end:s}])||(this._requestGroups=[],this.trigger("render",{next:function(){}}))},e._onCheck=function(t){var e=t.isForward,i=t.scrollPos,n=t.horizontal,r=t.orgScrollPos;this.trigger("change",{isForward:e,horizontal:n,scrollPos:i,orgScrollPos:r}),this._infinite.scroll(i)},e._onLayoutComplete=function(t){var e=this,i=t.items,n=t.isAppend,r=t.isTrusted,s=void 0!==r&&r,o=t.useRecycle,a=void 0===o?this.options.useRecycle:o,u=t.fromCache,h=void 0!==u&&u,c=t.isLayout,l=void 0!==c&&c,f=this._renderer.getViewSize();n?this.isLoading()&&this._renderLoading():this._fit();var d=this._watcher,p=d.getScrollPos();l||!a||this.isLoading()||this._infinite.recycle(p,n);var g=this._getEdgeValue("end");n&&(this._setContainerSize(g+this._status.loadingSize||0),"number"==typeof p&&0<p&&(v||this._scrollTo(p))),this.trigger("layoutComplete",{target:i.concat(),isAppend:!!n,isTrusted:s,fromCache:h,isLayout:l,isScroll:f<d.getContainerOffset()+g,scrollPos:p,orgScrollPos:d.getOrgScrollPos(),size:g,endLoading:function(t){e.endLoading(t)}}),this._infinite.scroll(p)},e._reset=function(){this._status={processingStatus:0,loadingSize:0,loadingStyle:{}}},t.VERSION="3.6.0-beta3",t}(p),bt=P,Tt=O,At=b,Gt=T,Kt=function(){function t(t){void 0===t&&(t={}),this.options=function(t,e){return Z({},I,t,e)}({margin:0,horizontal:!1,align:bt,itemSize:0},t),this._size=0,this._columnSize=0,this._columnLength=0,this._style=function(t){return U[t?E:_]}(this.options.horizontal)}var e=t.prototype;return e.append=function(t,e,i){return this._insert(t,e,!0,i)},e.prepend=function(t,e,i){return this._insert(t,e,!1,i)},e.layout=function(t,e){var n=this;void 0===t&&(t=[]),void 0===e&&(e=[]);var r,i=t.length&&t[0].items.length&&t[0].items[0];if(this.checkColumn(i),e.length!==this._columnLength){var s=0===e.length?0:Math.min.apply(Math,e);r=et(new Array(this._columnLength),s)}else r=e.slice();return t.forEach(function(t){var e=t.items,i=n._layout(e,r,!0);t.outlines=i,r=i.end}),this},e.setSize=function(t){return this._size=t,this},e.checkColumn=function(t){var e=this.options,i=e.itemSize,n=e.margin,r=e.horizontal?"height":"width",s=Math.floor(i||t&&t.size[r]||0)||0;(this._columnSize=s)?this._columnLength=Math.max(Math.floor((this._size+n)/(s+n)),1):this._columnLength=1},e._layout=function(t,e,i){for(var n,r=t.length,s=this.options.margin,o=this.options.align,a=this._style,u=a.size1,h=a.size2,c=a.startPos1,l=a.startPos2,f=this._columnSize,d=this._columnLength,p=this._size,g=p-(f+s)*d+s,v=i?"min":"max",_=e.slice(),m=e.slice(),y=0;y<r;++y){var z=Math[v].apply(Math,m)||0,S=m.indexOf(z),C=t[i?y:r-1-y],E=C.size;if(E){var w=E[u],M=E[h],x=i?z:z-s-w,I=x+w+s;-1===S&&(S=0);var L=(f+s)*S;o===Tt?L+=g/2:o===At?L+=g+f-M:o===Gt&&(d<=1?L+=g/2:L=(p-f)/(d-1)*S),C.rect=((n={})[c]=x,n[l]=L,n),m[C.column=S]=i?I:x}}return i||t.sort(function(t,e){var i=t.rect[c],n=t.rect[l],r=e.rect[c],s=e.rect[l];return i-r?i-r:n-s}),{start:i?_:m,end:i?m:_}},e._insert=function(t,e,i,n){void 0===t&&(t=[]),void 0===e&&(e=[]);var r=n?t:function(t){return t.map(function(t){return Z({},t)})}(t),s=e;return this._columnLength||this.checkColumn(t[0]),e.length!==this._columnLength&&(s=et(new Array(this._columnLength),e.length&&Math[i?"min":"max"].apply(Math,e)||0)),{items:r,outlines:this._layout(r,s,i)}},t}();return Ot.GridLayout=Kt,Ot});
//# sourceMappingURL=infinitegrid.gridlayout.min.js.map
