vscroll 1.8.2 → 1.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
- * vscroll (UMD) by Denis Hilt | https://github.com/dhilt/vscroll | 2026-02-08T22:44:37.918Z | MIT license
2
+ * vscroll (UMD) by Denis Hilt | https://github.com/dhilt/vscroll | 2026-02-15T20:53:44.676Z | MIT license
3
3
  */
4
4
 
5
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("vscroll",["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VScroll={})}(this,function(e){"use strict";var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},t(e,i)};function i(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var n=function(){return n=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},n.apply(this,arguments)};function r(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],n=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function o(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,r,o=i.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}return s}function s(e,t,i){if(i||2===arguments.length)for(var n,r=0,o=t.length;r<o;r++)!n&&r in t||(n||(n=Array.prototype.slice.call(t,0,r)),n[r]=t[r]);return e.concat(n||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var a,l,c=function(){function e(e,t){this.id=0,void 0!==e&&(this.value=e,this.initialValue=e),this.options=t||{},this.subscriptions=new Map}return e.prototype.set=function(e){var t,i;if(this.value!==e||this.options.emitEqual){this.value=e;try{for(var n=r(this.subscriptions),s=n.next();!s.done;s=n.next()){if(o(s.value,2)[1].emit(e),this.value!==e)break}}catch(e){t={error:e}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(t)throw t.error}}}},e.prototype.get=function(){return this.value},e.prototype.on=function(e){var t=this,i=this.id++,n={emit:e,off:function(){n.emit=function(){return null},t.subscriptions.delete(i)}};return this.subscriptions.set(i,n),this.options.emitOnSubscribe&&n.emit(this.value),function(){return n.off()}},e.prototype.once=function(e){var t=this.on(function(i){t(),e(i)});return t},e.prototype.reset=function(){this.set(this.initialValue)},e.prototype.dispose=function(){this.subscriptions.forEach(function(e){return e.off()})},e}();e.AdapterPropName=void 0,(a=e.AdapterPropName||(e.AdapterPropName={})).id="id",a.mock="mock",a.augmented="augmented",a.version="version",a.init="init",a.init$="init$",a.packageInfo="packageInfo",a.itemsCount="itemsCount",a.bufferInfo="bufferInfo",a.isLoading="isLoading",a.isLoading$="isLoading$",a.loopPending="loopPending",a.loopPending$="loopPending$",a.firstVisible="firstVisible",a.firstVisible$="firstVisible$",a.lastVisible="lastVisible",a.lastVisible$="lastVisible$",a.bof="bof",a.bof$="bof$",a.eof="eof",a.eof$="eof$",a.paused="paused",a.paused$="paused$",a.reset="reset",a.reload="reload",a.append="append",a.prepend="prepend",a.check="check",a.remove="remove",a.clip="clip",a.insert="insert",a.replace="replace",a.update="update",a.pause="pause",a.resume="resume",a.fix="fix",a.relax="relax",a.showLog="showLog",function(e){e[e.Scalar=0]="Scalar",e[e.Reactive=1]="Reactive",e[e.WorkflowRunner=2]="WorkflowRunner",e[e.Function=3]="Function"}(l||(l={}));var u,f,d,p=e.AdapterPropName,h=l,g=function(){return null},m={immediate:!0,success:!0,details:"Adapter is not initialized"},v={immediate:!0,success:!0,details:"Scroller is paused"},x=function(){return Promise.resolve(m)},y={core:{name:"",version:""},consumer:{name:"",version:""}},b={firstIndex:NaN,lastIndex:NaN,minIndex:NaN,maxIndex:NaN,absMinIndex:-1/0,absMaxIndex:1/0,defaultSize:NaN},w={data:{},element:{}},I=function(){return[{type:h.Scalar,name:p.id,value:0,permanent:!0},{type:h.Scalar,name:p.mock,value:!0,permanent:!0},{type:h.Scalar,name:p.augmented,value:!1,permanent:!0},{type:h.Scalar,name:p.version,value:"",permanent:!0},{type:h.Scalar,name:p.init,value:!1,reactive:p.init$},{type:h.Scalar,name:p.packageInfo,value:y,onDemand:!0},{type:h.Scalar,name:p.itemsCount,value:0,onDemand:!0},{type:h.Scalar,name:p.bufferInfo,value:b,onDemand:!0},{type:h.Scalar,name:p.isLoading,value:!1,reactive:p.isLoading$},{type:h.Scalar,name:p.loopPending,value:!1,reactive:p.loopPending$},{type:h.Scalar,name:p.firstVisible,value:w,reactive:p.firstVisible$,wanted:!0},{type:h.Scalar,name:p.lastVisible,value:w,reactive:p.lastVisible$,wanted:!0},{type:h.Scalar,name:p.bof,value:!1,reactive:p.bof$},{type:h.Scalar,name:p.eof,value:!1,reactive:p.eof$},{type:h.Scalar,name:p.paused,value:!1,reactive:p.paused$},{type:h.WorkflowRunner,name:p.reset,value:x,allowedWhenPaused:!0},{type:h.WorkflowRunner,name:p.reload,value:x},{type:h.WorkflowRunner,name:p.append,value:x},{type:h.WorkflowRunner,name:p.prepend,value:x},{type:h.WorkflowRunner,name:p.check,value:x},{type:h.WorkflowRunner,name:p.remove,value:x},{type:h.WorkflowRunner,name:p.clip,value:x},{type:h.WorkflowRunner,name:p.insert,value:x},{type:h.WorkflowRunner,name:p.replace,value:x},{type:h.WorkflowRunner,name:p.update,value:x},{type:h.WorkflowRunner,name:p.pause,value:x},{type:h.WorkflowRunner,name:p.resume,value:x,allowedWhenPaused:!0},{type:h.WorkflowRunner,name:p.fix,value:x},{type:h.Function,name:p.relax,value:x},{type:h.Function,name:p.showLog,value:g},{type:h.Reactive,name:p.init$,value:new c},{type:h.Reactive,name:p.isLoading$,value:new c},{type:h.Reactive,name:p.loopPending$,value:new c},{type:h.Reactive,name:p.firstVisible$,value:new c(w,{emitOnSubscribe:!0}),wanted:!0},{type:h.Reactive,name:p.lastVisible$,value:new c(w,{emitOnSubscribe:!0}),wanted:!0},{type:h.Reactive,name:p.bof$,value:new c},{type:h.Reactive,name:p.eof$,value:new c},{type:h.Reactive,name:p.paused$,value:new c}]},S=new Map,z={name:"vscroll",version:"1.8.2"},k=function(e){var t;return null===(t=V.get(e||-1))||void 0===t?void 0:t.box},E=function(t,i){var n=t.name,r=t.wanted,o=V.get(i||-1);if(r&&o&&!o.box[n]&&!o.block){var s=e.AdapterPropName.firstVisible,a=e.AdapterPropName.firstVisible$,l=e.AdapterPropName.lastVisible,c=e.AdapterPropName.lastVisible$;return o.box[s]=o.box[a]=[s,a].some(function(e){return e===n})||o.box[s],o.box[l]=o.box[c]=[l,c].some(function(e){return e===n})||o.box[l],!0}return!1},N=function(e,t){var i=V.get(t||-1);i&&(i.block=e)},V=new Map,P=0,M=function(t){var i=this,r=t.mock,o=t.reactive,s=++P,a={configurable:!0},c={};V.set(s,{box:{},block:!1}),Object.defineProperty(this,e.AdapterPropName.id,n({get:function(){return s}},a)),Object.defineProperty(this,e.AdapterPropName.mock,n({get:function(){return r}},a)),Object.defineProperty(this,e.AdapterPropName.augmented,n({get:function(){return!1}},a)),Object.defineProperty(this,e.AdapterPropName.version,n({get:function(){return z.version}},a)),I().filter(function(e){return!e.permanent}).forEach(function(e){var t=e.value;if(o&&e.type===l.Reactive){var r=o[e.name];r&&(c[e.name]=n(n({},r),{default:t}),t=r.source)}Object.defineProperty(i,e.name,n({get:function(){return E(e,s),t}},a))}),o&&S.set(s,c)},O=function(){function e(e,t){this.get=e.get,this.settings=e.settings,this.devSettings=e.devSettings;var i=new M(t||{mock:!1});this.adapter=i}return e.prototype.dispose=function(){S.delete(this.adapter.id),V.delete(this.adapter.id)},e}(),$=function(e){return function(t){function n(i){var n,r="function"==typeof e?e():(n=I().filter(function(e){return e.type===l.Reactive}).reduce(function(e,t){var i=t.name,n=t.value;return e[i]={source:n,emit:function(e,t){return e.set(t)}},e},{}),{mock:!1,reactive:n});return t.call(this,i,r)||this}return i(n,t),n}(O)},A=$();e.Direction=void 0,(u=e.Direction||(e.Direction={})).forward="forward",u.backward="backward",e.SizeStrategy=void 0,(f=e.SizeStrategy||(e.SizeStrategy={})).Average="average",f.Constant="constant",f.Frequent="frequent",function(e){e.number="must be a number",e.integer="must be an integer",e.integerUnlimited="must be an integer or infinity",e.moreOrEqual="must be a number greater than (or equal to) {arg1}",e.itemList="must be an array of items {arg1}",e.boolean="must be a boolean",e.object="must be an object",e.element="must be an html element",e.function="must be a function",e.funcOfxArguments="must have {arg1} argument(s)",e.funcOfxAndMoreArguments="must have at least {arg1} argument(s)",e.funcOfXToYArguments="must have {arg1} to {arg2} arguments",e.oneOfCan="can be present as only one item of {arg1} list",e.oneOfMust="must be present as only one item of {arg1} list",e.or="must satisfy at least 1 validator from {arg1} list",e.enum="must belong to {arg1} list"}(d||(d={}));var D,R,C=function(e,t){return(t||[""]).reduce(function(e,t,i){return e.replace("{arg".concat(i+1,"}"),t)},e)},T=function(e){return"number"==typeof e||"string"==typeof e&&""!==e?Number(e):NaN},j=function(e){var t=T(e),i=[];return Number.isNaN(t)&&i.push(d.number),{value:t,isSet:!0,isValid:!i.length,errors:i}},F=function(e,t){return function(i){var n=j(i);if(!n.isValid)return n;var r=n.value,o=[];return r<e&&(t?r=e:o.push(C(d.moreOrEqual,[String(e)]))),{value:r,isSet:!0,isValid:!o.length,errors:o}}},L=function(e){var t=[];return"function"!=typeof e&&t.push(d.function),{value:e,isSet:!0,isValid:!t.length,errors:t}},B=function(e,t){return function(i){var n=L(i);if(!n.isValid)return n;var r=[];return((i=n.value).length<e||i.length>t)&&r.push(C(d.funcOfXToYArguments,[String(e),String(t)])),{value:i,isSet:!0,isValid:!r.length,errors:r}}},_=function(e,t){return function(i,n){var r=[],o=void 0!==i,s=!o,a=t?d.oneOfMust:d.oneOfCan;if(Array.isArray(e)&&e.length){for(var l=e.length-1;l>=0;l--){var c=e[l];if("string"!=typeof c){r.push(C(a,[e.join('", "')])+" (non-string token)");break}var u=n&&Object.prototype.hasOwnProperty.call(n,c);if(o&&u){r.push(C(a,[e.join('", "')])+" (".concat(c," is present)"));break}s&&u&&(s=!1)}t&&s&&r.push(C(a,[e.join('", "')]))}else r.push(C(a,["undefined"]));return{value:i,isSet:o,isValid:!r.length,errors:r}}},W=function(e){return function(t){var i=[],n=Object.keys(e).filter(function(e){return isNaN(Number(e))}).map(function(t){return e[t]});return n.some(function(e){return e===t})||i.push(C(d.enum,["["+n.join(",")+"]"])),{value:t,isSet:!0,isValid:!i.length,errors:i}}},U={NUMBER:{type:d.number,method:j},INTEGER:{type:d.integer,method:function(e){var t=[];e=T(e);var i=parseInt(String(e),10);return e!==i&&t.push(d.integer),{value:i,isSet:!0,isValid:!t.length,errors:t}}},INTEGER_UNLIMITED:{type:d.integerUnlimited,method:function(e){var t=e,i=[];return(e=T(e))!==(t=Number.isFinite(e)?parseInt(String(e),10):e)&&i.push(d.integerUnlimited),{value:t,isSet:!0,isValid:!i.length,errors:i}}},MORE_OR_EQUAL:function(e,t){return{type:d.moreOrEqual,method:F(e,t)}},BOOLEAN:{type:d.boolean,method:function(e){var t=[],i=e;return"true"===e?i=!0:"false"===e&&(i=!1),"boolean"!=typeof i&&t.push(d.boolean),{value:i,isSet:!0,isValid:!t.length,errors:t}}},OBJECT:{type:d.object,method:function(e){var t=[];return e&&"[object Object]"===Object.prototype.toString.call(e)||t.push(d.object),{value:e,isSet:!0,isValid:!t.length,errors:t}}},ITEM_LIST:{type:d.itemList,method:function(e){var t=e,i=[];if(Array.isArray(e))if(e.length){if(e.length>1)for(var n=typeof e[0],r=e.length-1;r>=0;r--)if(typeof e[r]!==n){i.push(C(d.itemList,["of items of the same type"]));break}}else i.push(C(d.itemList,["with at least 1 item"]));else i.push(d.itemList),t=[];return{value:t,isSet:!0,isValid:!i.length,errors:i}}},ELEMENT:{type:d.element,method:function(e){var t=[];return e instanceof Element||e instanceof Document||t.push(d.element),{value:e,isSet:!0,isValid:!t.length,errors:t}}},FUNC:{type:d.function,method:L},FUNC_WITH_X_ARGUMENTS:function(e){return{type:d.funcOfxArguments,method:(t=e,function(e){var i=L(e);if(!i.isValid)return i;var n=[];return(e=i.value).length!==t&&n.push(C(d.funcOfxArguments,[String(t)])),{value:e,isSet:!0,isValid:!n.length,errors:n}})};var t},FUNC_WITH_X_AND_MORE_ARGUMENTS:function(e){return{type:d.funcOfxAndMoreArguments,method:(t=e,function(e){var i=L(e);if(!i.isValid)return i;var n=[];return(e=i.value).length<t&&n.push(C(d.funcOfxArguments,[String(t)])),{value:e,isSet:!0,isValid:!n.length,errors:n}})};var t},FUNC_WITH_X_TO_Y_ARGUMENTS:function(e,t){return{type:d.funcOfXToYArguments,method:B(e,t)}},ONE_OF_CAN:function(e){return{type:d.oneOfCan,method:_(e,!1)}},ONE_OF_MUST:function(e){return{type:d.oneOfMust,method:_(e,!0)}},OR:function(e){return{type:d.or,method:(t=e,function(e){var i=[];return t.every(function(t){return!t.method(e).isValid})&&i.push(t.map(function(e){return e.type}).join(" OR ")),{value:e,isSet:!0,isValid:!i.length,errors:i}})};var t},ENUM:function(e){return{type:d.enum,method:W(e)}}},q=function(){function e(e){this.params={},this.contextErrors=[],this.errors=[],this.isValid=!0,this.setContext(e)}return e.prototype.setContext=function(e){e&&"[object Object]"===Object.prototype.toString.call(e)?this.isValidContext=!0:(this.setCommonError("context is not an object"),this.isValidContext=!1),this.context=e},e.prototype.setValidity=function(){var e=this;this.errors=Object.keys(this.params).reduce(function(t,i){return s(s([],o(t),!1),o(e.params[i].errors),!1)},[]),this.isValid=!this.errors.length},e.prototype.setCommonError=function(e){this.contextErrors.push(e),this.errors.push(e),this.isValid=!1},e.prototype.setParam=function(e,t){t.isValid||(t.errors=t.isSet?t.errors.map(function(t){return'"'.concat(e,'" ').concat(t)}):['"'.concat(e,'" must be set')]),this.params[e]=t,this.setValidity()},e.prototype.showErrors=function(){return this.errors.length?"validation failed: "+this.errors.join(", "):""},e}(),G=function(e,t,i){var n=e.value,r=e.errors,a=t.method(n,i),l=s(s([],o(r),!1),o(a.errors),!1);return{value:a.value,isSet:a.isSet,isValid:!l.length,errors:l}},X=function(e,t){var i=void 0===e,n=!t.mandatory&&void 0!==t.defaultValue;return{value:i?n?t.defaultValue:void 0:e,isSet:!i||n,isValid:!i||!t.mandatory,errors:[]}},H=function(e,t,i){var n,o,s=X(e[t],i);if(s.isSet)try{for(var a=r(Object.values(i.validators)),l=a.next();!l.done;l=a.next()){var c=l.value,u=G(s,c,e);if(!u.isValid&&void 0!==i.defaultValue)return{value:i.defaultValue,isSet:!0,isValid:!0,errors:[]};Object.assign(s,u)}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=a.return)&&o.call(a)}finally{if(n)throw n.error}}else{var f=i.validators.find(function(e){return e.type===d.oneOfMust});if(f)return G(s,f,e)}return s},Y=function(e,t){var i=new q(e);return Object.entries(t).forEach(function(e){var t=o(e,2),n=t[0],r=t[1];return i.setParam(n,i.isValidContext?H(i.context,n,r):X(void 0,r))}),i},J=U.OBJECT,Q=U.FUNC_WITH_X_AND_MORE_ARGUMENTS;!function(e){e.get="get",e.settings="settings",e.devSettings="devSettings"}(R||(R={}));var Z,K,ee,te,ie,ne=((D={})[R.get]={validators:[Q(2)],mandatory:!0},D[R.settings]={validators:[J]},D[R.devSettings]={validators:[J]},D),re=U.NUMBER,oe=U.INTEGER,se=U.INTEGER_UNLIMITED,ae=U.MORE_OR_EQUAL,le=U.BOOLEAN,ce=U.ELEMENT,ue=U.FUNC,fe=U.OR,de=U.ENUM;!function(e){e.adapter="adapter",e.startIndex="startIndex",e.minIndex="minIndex",e.maxIndex="maxIndex",e.itemSize="itemSize",e.bufferSize="bufferSize",e.padding="padding",e.infinite="infinite",e.horizontal="horizontal",e.windowViewport="windowViewport",e.viewportElement="viewportElement",e.inverse="inverse",e.onBeforeClip="onBeforeClip",e.sizeStrategy="sizeStrategy"}(te||(te={})),function(e){e.debug="debug",e.immediateLog="immediateLog",e.logProcessRun="logProcessRun",e.logTime="logTime",e.logColor="logColor",e.throttle="throttle",e.initDelay="initDelay",e.initWindowDelay="initWindowDelay",e.cacheData="cacheData",e.cacheOnReload="cacheOnReload",e.dismissOverflowAnchor="dismissOverflowAnchor",e.directionPriority="directionPriority"}(ie||(ie={}));var pe,he,ge,me,ve,xe,ye,be,we,Ie,Se,ze,ke,Ee,Ne,Ve=((Z={})[te.itemSize]=1,Z[te.bufferSize]=1,Z[te.padding]=.01,Z[ie.throttle]=0,Z[ie.initDelay]=0,Z[ie.initWindowDelay]=0,Z),Pe=((K={})[te.adapter]={validators:[le],defaultValue:!1},K[te.startIndex]={validators:[oe],defaultValue:1},K[te.minIndex]={validators:[se],defaultValue:-1/0},K[te.maxIndex]={validators:[se],defaultValue:1/0},K[te.itemSize]={validators:[oe,ae(Ve[te.itemSize],!0)],defaultValue:NaN},K[te.bufferSize]={validators:[oe,ae(Ve[te.bufferSize],!0)],defaultValue:5},K[te.padding]={validators:[re,ae(Ve[te.padding],!0)],defaultValue:.5},K[te.infinite]={validators:[le],defaultValue:!1},K[te.horizontal]={validators:[le],defaultValue:!1},K[te.windowViewport]={validators:[le],defaultValue:!1},K[te.viewportElement]={validators:[fe([ce,ue])],defaultValue:null},K[te.inverse]={validators:[le],defaultValue:!1},K[te.onBeforeClip]={validators:[ue],defaultValue:null},K[te.sizeStrategy]={validators:[de(e.SizeStrategy)],defaultValue:e.SizeStrategy.Average},K),Me=((ee={})[ie.debug]={validators:[le],defaultValue:!1},ee[ie.immediateLog]={validators:[le],defaultValue:!0},ee[ie.logProcessRun]={validators:[le],defaultValue:!1},ee[ie.logTime]={validators:[le],defaultValue:!1},ee[ie.logColor]={validators:[le],defaultValue:!0},ee[ie.throttle]={validators:[oe,ae(Ve[ie.throttle],!0)],defaultValue:40},ee[ie.initDelay]={validators:[oe,ae(Ve[ie.initDelay],!0)],defaultValue:1},ee[ie.initWindowDelay]={validators:[oe,ae(Ve[ie.initWindowDelay],!0)],defaultValue:40},ee[ie.cacheData]={validators:[le],defaultValue:!1},ee[ie.cacheOnReload]={validators:[le],defaultValue:!1},ee[ie.dismissOverflowAnchor]={validators:[le],defaultValue:!0},ee[ie.directionPriority]={validators:[de(e.Direction)],defaultValue:e.Direction.backward},ee);!function(e){e.init="init",e.scroll="scroll",e.start="start",e.preFetch="preFetch",e.fetch="fetch",e.postFetch="postFetch",e.render="render",e.preClip="preClip",e.clip="clip",e.adjust="adjust",e.end="end"}(pe||(pe={})),function(e){e.reset="adapter.reset",e.reload="adapter.reload",e.append="adapter.append",e.prepend="adapter.prepend",e.check="adapter.check",e.remove="adapter.remove",e.replace="adapter.replace",e.update="adapter.update",e.clip="adapter.clip",e.insert="adapter.insert",e.pause="adapter.pause",e.fix="adapter.fix"}(he||(he={})),function(e){e.start="start",e.next="next",e.done="done",e.error="error"}(ge||(ge={}));var Oe,$e=U.INTEGER,Ae=U.INTEGER_UNLIMITED,De=U.BOOLEAN,Re=U.OBJECT,Ce=U.ITEM_LIST,Te=U.FUNC_WITH_X_ARGUMENTS,je=U.FUNC_WITH_X_AND_MORE_ARGUMENTS,Fe=U.FUNC_WITH_X_TO_Y_ARGUMENTS,Le=U.ONE_OF_MUST,Be=U.ONE_OF_CAN,_e=U.OR;Oe||(Oe={});var We,Ue={},qe=((me={})[R.get]={validators:[je(2)]},me[R.settings]={validators:[Re]},me[R.devSettings]={validators:[Re]},me);!function(e){e.reloadIndex="reloadIndex"}(We||(We={}));var Ge,Xe=((ve={})[We.reloadIndex]={validators:[$e]},ve);!function(e){e.items="items",e.bof="bof",e.increase="increase",e.virtualize="virtualize"}(Ge||(Ge={}));var He,Ye=((xe={})[Ge.items]={validators:[Ce],mandatory:!0},xe[Ge.bof]={validators:[De,Be([Ge.virtualize])],defaultValue:!1},xe[Ge.increase]={validators:[De],defaultValue:!1},xe[Ge.virtualize]={validators:[De,Be([Ge.bof])],defaultValue:!1},xe);!function(e){e.items="items",e.eof="eof",e.decrease="decrease",e.virtualize="virtualize"}(He||(He={}));var Je,Qe=((ye={})[He.items]={validators:[Ce],mandatory:!0},ye[He.eof]={validators:[De,Be([He.virtualize])],defaultValue:!1},ye[He.decrease]={validators:[De],defaultValue:!1},ye[Ge.virtualize]={validators:[De,Be([He.eof])],defaultValue:!1},ye);!function(e){e.predicate="predicate",e.indexes="indexes",e.increase="increase"}(Je||(Je={}));var Ze,Ke=((be={})[Je.predicate]={validators:[Te(1),Le([Je.indexes])]},be[Je.indexes]={validators:[Ce,Le([Je.predicate])]},be[Je.increase]={validators:[De],defaultValue:!1},be);!function(e){e.backwardOnly="backwardOnly",e.forwardOnly="forwardOnly"}(Ze||(Ze={}));var et,tt=((we={})[Ze.backwardOnly]={validators:[De,Be([Ze.forwardOnly])],defaultValue:!1},we[Ze.forwardOnly]={validators:[De,Be([Ze.backwardOnly])],defaultValue:!1},we);!function(e){e.items="items",e.before="before",e.after="after",e.beforeIndex="beforeIndex",e.afterIndex="afterIndex",e.decrease="decrease"}(et||(et={}));var it,nt=((Ie={})[et.items]={validators:[Ce],mandatory:!0},Ie[et.before]={validators:[Te(1),Le([et.after,et.beforeIndex,et.afterIndex])]},Ie[et.after]={validators:[Te(1),Le([et.before,et.beforeIndex,et.afterIndex])]},Ie[et.beforeIndex]={validators:[$e,Le([et.before,et.after,et.afterIndex])]},Ie[et.afterIndex]={validators:[$e,Le([et.before,et.after,et.beforeIndex])]},Ie[et.decrease]={validators:[De],defaultValue:!1},Ie);!function(e){e.items="items",e.predicate="predicate",e.fixRight="fixRight"}(it||(it={}));var rt,ot=((Se={})[et.items]={validators:[Ce],mandatory:!0},Se[it.predicate]={validators:[Te(1)],mandatory:!0},Se[it.fixRight]={validators:[De],defaultValue:!1},Se);!function(e){e.predicate="predicate",e.fixRight="fixRight"}(rt||(rt={}));var st,at=((ze={})[rt.predicate]={validators:[Te(1)],mandatory:!0},ze[rt.fixRight]={validators:[De],defaultValue:!1},ze);!function(e){e.scrollPosition="scrollPosition",e.minIndex="minIndex",e.maxIndex="maxIndex",e.updater="updater",e.scrollToItem="scrollToItem",e.scrollToItemOpt="scrollToItemOpt"}(st||(st={}));var lt,ct,ut=((ke={})[st.scrollPosition]={validators:[Ae]},ke[st.minIndex]={validators:[Ae]},ke[st.maxIndex]={validators:[Ae]},ke[st.updater]={validators:[Fe(1,2)]},ke[st.scrollToItem]={validators:[Te(1)]},ke[st.scrollToItemOpt]={validators:[_e([De,Re])]},ke),ft=((Ee={})[he.reset]=R,Ee[he.reload]=We,Ee[he.prepend]=Ge,Ee[he.append]=He,Ee[he.check]=Oe,Ee[he.remove]=Je,Ee[he.clip]=Ze,Ee[he.insert]=et,Ee[he.replace]=it,Ee[he.update]=rt,Ee[he.pause]=Oe,Ee[he.fix]=st,Ee),dt=((Ne={})[he.reset]=qe,Ne[he.reload]=Xe,Ne[he.prepend]=Ye,Ne[he.append]=Qe,Ne[he.check]=Ue,Ne[he.remove]=Ke,Ne[he.clip]=tt,Ne[he.insert]=nt,Ne[he.replace]=ot,Ne[he.update]=at,Ne[he.pause]=Ue,Ne[he.fix]=ut,Ne),pt=U.ELEMENT,ht=U.OBJECT,gt=U.FUNC,mt=U.FUNC_WITH_X_ARGUMENTS;!function(e){e.consumer="consumer",e.element="element",e.datasource="datasource",e.run="run",e.Routines="Routines"}(ct||(ct={}));var vt=((lt={})[ct.consumer]={validators:[ht]},lt[ct.element]={validators:[pt],mandatory:!0},lt[ct.datasource]={validators:[ht],mandatory:!0},lt[ct.run]={validators:[mt(1)],mandatory:!0},lt[ct.Routines]={validators:[gt]},lt),xt=function(){function e(e,t,i){this.parseInput(e,Pe),this.parseInput(t,Me),this.instanceIndex=i,this.initializeDelay=this.getInitializeDelay(),this.viewport=this.getViewport()}return e.prototype.parseInput=function(e,t){var i=this,n=Y(e,t);if(!n.isValid)throw new Error("Invalid settings");Object.entries(n.params).forEach(function(e){var t,n=o(e,2),r=n[0],s=n[1];return Object.assign(i,((t={})[r]=s.value,t))})},e.prototype.getInitializeDelay=function(){var e=0;return this.windowViewport&&this.initWindowDelay&&!("scrollRestoration"in history)&&(e=this.initWindowDelay),this.initDelay>0&&(e=Math.max(e,this.initDelay)),e},e.prototype.getViewport=function(){if("function"!=typeof this.viewportElement)return this.viewportElement;var e=this.viewportElement(),t=H({value:e},"value",{validators:[U.ELEMENT]});return t.isValid?t.value:null},e}(),yt=function(e){var t;return(t=function(){}).process=e,t},bt=function(e){var t;return t=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return i(r,t),r.parseInput=function(t,i,r,s){void 0===r&&(r=!1);var a={data:Y(i,dt[s||e])};return a.data.isValid?a.params=Object.entries(a.data.params).reduce(function(e,t){var i,r=o(t,2),s=r[0],a=r[1].value;return n(n({},e),((i={})[s]=a,i))},{}):(t.logger.log(function(){return a.data.showErrors()}),r||t.workflow.call({process:e,status:ge.error,payload:{error:'Wrong argument of the "'.concat(e,'" method call')}})),a},r}(yt(e)),t.process=e,t},wt=[pe.init,he.reset,he.reload],It=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.state,r=e.workflow,o=wt.includes(i);e.logger.logCycle(!0),n.startWorkflowCycle(o,i),r.call({process:t.process,status:ge.next})},t}(yt(pe.init)),St=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return i(r,t),r.run=function(e,t){var i=e.workflow,n=e.viewport.scrollPosition;r.onSynthetic(e,n)||r.onThrottle(e,n,function(){return r.onScroll(e,i)})},r.onSynthetic=function(e,t){var i=e.state.scroll,n=i.syntheticPosition;if(null!==n){if(i.syntheticFulfill&&(i.syntheticPosition=null),!i.syntheticFulfill||n===t)return e.logger.log(function(){return["skipping scroll",t,"[".concat(i.syntheticFulfill?"":"pre-","synthetic]")]}),!0;e.logger.log(function(){return["synthetic scroll has been fulfilled:",t,t<n?"<":">",n]})}return!1},r.onThrottle=function(t,i,n){var o=t.state,s=t.settings,a=t.logger,l=o.scroll;l.current=r.getScrollEvent(i,l.previous);var c=l.current,u=c.direction,f=c.time,d=l.previous?f-l.previous.time:1/0,p=s.throttle-d,h=isFinite(p)&&p>0,g=!!l.scrollTimer;if(a.log(function(){return[u===e.Direction.backward?"⤴":"⤵",i,h?d+"ms":"0ms",h?g?"delayed":"/ ".concat(p,"ms delay"):""]}),!h)return l.scrollTimer&&(clearTimeout(l.scrollTimer),l.scrollTimer=null),void n();g||(l.scrollTimer=setTimeout(function(){a.log(function(){var n=r.getScrollEvent(t.viewport.scrollPosition,l.current);return[n.direction===e.Direction.backward?"⤴":"⤵",n.position,n.time-f+"ms","triggered by timer set on",i]}),l.scrollTimer=null,n()},p))},r.getScrollEvent=function(t,i){var n=Number(new Date),r=e.Direction.forward;return i&&(t===i.position?r=i.direction:t<i.position&&(r=e.Direction.backward)),{position:t,direction:r,time:n}},r.onScroll=function(e,t){var i=e.state,o=i.scroll,s=i.cycle;o.previous=n({},o.current),o.current=null,s.busy.get()?e.logger.log(function(){return["skipping scroll",o.previous.position,"[pending]"]}):t.call({process:r.process,status:ge.next})},r}(yt(pe.scroll)),zt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.datasource,r=e.buffer,o=e.viewport,s=e.state;if(i){var a=t.parseInput(e,i).data;if(!a.isValid)return;var l=i instanceof A;Object.keys(R).forEach(function(e){var t=a.params[e],i=n;(t.isSet||l&&i[e])&&(i[e]=t.value)})}r.reset(!0),o.paddings.backward.reset(),o.paddings.forward.reset();var c={datasource:n};s.cycle.busy.get()&&(c.finalize=!0,s.cycle.interrupter=t.process),e.workflow.call({process:t.process,status:ge.next,payload:c})},t}(bt(he.reset)),kt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.viewport,r=e.state,o=e.buffer,s=t.parseInput(e,{reloadIndex:i},!0).params;o.reset(!1,s?s.reloadIndex:void 0),n.reset(o.startIndex);var a={};r.cycle.busy.get()&&(a.finalize=!0,r.cycle.interrupter=t.process),e.workflow.call({process:t.process,status:ge.next,payload:a})},t}(bt(he.reload)),Et=function(){function e(e,t,i){this.container={$index:e,data:t},this.nodeId=String(e),this.routines=i,this.invisible=!0,this.toRemove=!1,this.toInsert=!1}return Object.defineProperty(e.prototype,"$index",{get:function(){return this.container.$index},set:function(e){this.container.$index=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"data",{get:function(){return this.container.data},set:function(e){this.container.data=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this.container.element},set:function(e){this.container.element=e},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){delete this.container.element},e.prototype.setSize=function(e){void 0===e&&(e=0),this.preSize=e,this.element&&(this.size=this.routines.getSize(this.element))},e.prototype.makeVisible=function(){this.routines.makeElementVisible(this.element),this.invisible=!1},e.prototype.hide=function(){this.element&&this.routines.hideElement(this.element)},e.prototype.scrollTo=function(e){this.element&&this.routines.scrollTo(this.element,e)},e.prototype.updateIndex=function(e){this.$index=e,this.nodeId=String(e)},e.prototype.get=function(){return this.container},e}(),Nt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e,t){var i=n.parseInput(e,t).params;if(i){var r=n.doUpdate(e,i);e.workflow.call({process:n.process,status:r?ge.next:ge.done})}},n.doUpdate=function(t,i){var n=t.buffer,r=t.viewport,o=t.state,s=t.routines,a=t.logger;if(!n.items)return a.log(function(){return"no items in Buffer"}),!1;var l=r.getEdgeVisibleItem(n.items,e.Direction.backward),c=l.item,u=l.index,f=l.diff,d=n.updateItems(i.predicate,function(e,t){return new Et(e,t,s)},u,!!i.fixRight),p=d.trackedIndex,h=d.toRemove,g=0,m=n.get(p);c&&c===m&&(g=-n.getSizeByIndex(p)+f),h.forEach(function(e){return e.hide()}),a.log(function(){return h.length?"items to remove: ["+h.map(function(e){return e.$index}).join(",")+"]":"no items to remove"}),h.length&&n.checkDefaultSize();var v=n.items.filter(function(e){return e.toInsert});return a.log(function(){return v.length?"items to render: ["+v.map(function(e){return e.$index}).join(",")+"]":"no items to render"}),o.fetch.update(p,g,v,h),!!h.length||!!v.length},n}(bt(he.update)),Vt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e,t){var i=n.parseInput(e,t).params;if(i){var r=n.doInsert(e,i);e.workflow.call({process:n.process,status:r?ge.next:ge.done})}},n.doInsert=function(e,t){return!!(n.insertEmpty(e,t)||n.insertInBuffer(e,t)||n.insertVirtually(e,t))},n.insertEmpty=function(e,t){var i=e.buffer,n=e.routines,r=e.state;if(i.size)return!1;var o=t.beforeIndex,s=t.afterIndex,a=t.items,l=t.decrease;return!!i.fillEmpty(a,o,s,!!l,function(e,t){return new Et(e,t,n)})&&(r.fetch.fill(i.items,i.startIndex),!0)},n.insertInBuffer=function(e,t){var i=t.before,n=t.after,r=t.beforeIndex,a=t.afterIndex,l=t.items,c=t.decrease,u=e.buffer.getIndexToInsert(i||n,r,a);if(t.virtualize||isNaN(u))return!1;var f=Number.isInteger(r)||i,d={predicate:function(e){var t=e.$index,i=e.data;return u!==t||(f?s(s([],o(l),!1),[i],!1):s([i],o(l),!1))},fixRight:c};return Nt.doUpdate(e,d)},n.insertVirtually=function(t,i){var n=i.beforeIndex,r=i.afterIndex,o=i.items,s=i.decrease,a=t.buffer,l=t.state,c=t.viewport,u=Number.isInteger(n)?e.Direction.backward:e.Direction.forward,f=u===e.Direction.backward?n:r;if(!a.insertVirtually(o,f,u,!!s))return!1;var d=l.fetch,p=c.getEdgeVisibleItem(a.items,e.Direction.backward),h=p.index,g=p.diff;return d.firstVisible.index=h,isNaN(h)||(d.simulate=!0,d.firstVisible.delta=-a.getSizeByIndex(h)+g),!0},n}(bt(he.insert)),Pt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=i.process,r=i.options,o=t.parseInput(e,r,!1,n).params;if(o){var s=t.doAppend(e,n,o);e.workflow.call({process:t.process,status:s?ge.next:ge.done})}},t.doAppend=function(e,t,i){var n,r,a=i.bof,l=i.eof,c=i.increase,u=i.decrease,f=e.buffer,d=t===he.prepend,p=d?!c:u,h=i.items;return d?(n=(a?f.absMinIndex:f.minIndex)+(f.size?0:1),h=s([],o(h),!1).reverse()):r=(l?f.absMaxIndex:f.maxIndex)-(f.size||p?0:1),Vt.doInsert(e,{items:h,beforeIndex:n,afterIndex:r,decrease:p,virtualize:i.virtualize})},t}(bt(he.append)),Mt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(t){var i=t.workflow,r=t.buffer,o=t.state,s=t.viewport,a=1/0,l=-1/0;if(r.items.forEach(function(e){var t=e.size;e.setSize(),e.size!==t&&(r.cacheItem(e),a=Math.min(a,e.$index),l=Math.max(l,e.$index))}),Number.isFinite(a)){var c=o.fetch;c.first.indexBuffer=r.firstIndex,c.last.indexBuffer=r.lastIndex;var u=s.getEdgeVisibleItem(r.items,e.Direction.backward),f=u.index,d=u.diff;c.firstVisible.index=f,isNaN(f)||(c.firstVisible.delta=-r.getSizeByIndex(f)+d),c.check(r.items.filter(function(e){return e.$index>=a&&e.$index<=l}))}t.logger.stat("check"),i.call({process:n.process,status:Number.isFinite(a)?ge.next:ge.done})},n}(bt(he.check)),Ot=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e,t){var i=n.parseInput(e,t).params;if(i){var r=n.doRemove(e,i);e.workflow.call({process:n.process,status:r?ge.next:ge.done})}},n.doRemove=function(e,t){e.state.fetch.firstVisible.index=NaN;var i=n.removeBufferedItems(e,t),r=i.length>0;if(r&&(t.indexes&&t.indexes.length&&(t.indexes=t.indexes.filter(function(e){return!i.includes(e)})),t.indexes&&t.indexes.length)){var o=(t.increase?1:0)*i.length,s=(t.increase?0:-1)*i.length;t.indexes=t.indexes.map(function(e){return e+(e<i[0]?o:s)})}var a=n.removeVirtualItems(e,t);return!(!r&&!a)&&(e.logger.stat("after remove"),!0)},n.removeBufferedItems=function(e,t){var i=t.predicate,n=t.indexes,r=t.increase;if(!i&&!n)return[];var a=function(e){return i&&i(e)||!!n&&n.includes(e.$index)},l=e.buffer.items.reduce(function(e,t){return a(t)?s(s([],o(e),!1),[t.$index],!1):e},[]),c={predicate:function(e){return!a(e)},fixRight:r};return Nt.doUpdate(e,c),l},n.removeVirtualItems=function(t,i){var r=i.indexes,o=i.increase;if(!r||!r.length)return!1;for(var s=t.buffer,a=t.viewport,l=t.state,c=s.finiteAbsMinIndex,u=s.firstIndex,f=s.finiteAbsMaxIndex,d=s.lastIndex,p=[],h=0,g=r.length;h<g;h++){if((x=r[h])>=c&&!isNaN(u)&&x<u)p.push(x);else{if(!(x<=f&&!isNaN(d)&&x>d))continue;p.push(x)}}if(!p.length)return!1;var m=l.fetch;if(isNaN(m.firstVisible.index)){var v=a.getEdgeVisibleItem(s.items,e.Direction.backward),x=v.index,y=v.diff;m.firstVisible.index=x,isNaN(x)||(m.firstVisible.delta=-s.getSizeByIndex(x)+y)}return t.logger.log(function(){return"going to remove ".concat(p.length," item(s) virtually")}),s.removeVirtually(p,!!o),s.checkDefaultSize(),n.shiftFirstVisibleIndex(t,p,!!o),!0},n.shiftFirstVisibleIndex=function(e,t,i){var n=e.state.fetch.firstVisible;if(!isNaN(n.index)){var r=t.reduce(function(e,t){return e+(i&&t>n.index||!i&&t<n.index?1:0)},0);n.index=n.index+(i?r:-r)}},n}(bt(he.remove)),$t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=t.parseInput(e,i).params;e.state.clip.forceForward=!(n&&n.backwardOnly),e.state.clip.forceBackward=!(n&&n.forwardOnly),e.workflow.call({process:t.process,status:ge.next})},t}(bt(he.clip)),At=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=t.parseInput(e,i).params;if(n){var r=t.doReplace(e,n);e.workflow.call({process:t.process,status:r?ge.next:ge.done})}},t.doReplace=function(e,t){var i=e.buffer.items.filter(function(e){return t.predicate(e)}).map(function(e){return e.$index});if(!i.length)return e.logger.log("no items to be replaced"),!1;var n=!1,r={predicate:function(e){var r=e.$index;return!i.includes(r)||!n&&(n=!0,t.items)},fixRight:t.fixRight};return Nt.doUpdate(e,r)},t}(bt(he.replace)),Dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,t){if(!!!(null==t?void 0:t.resume)&&!e.state.paused.get())return e.logger.log("pause scroller"),e.state.paused.set(!0),void e.workflow.call({process:he.pause,status:ge.done});e.logger.log("resume scroller"),e.state.paused.set(!1),e.workflow.call({process:he.pause,status:ge.next})},t}(bt(he.pause)),Rt=ft[he.fix],Ct=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.workflow,r=t.parseInput(e,i),s=r.data;r.params&&(Object.entries(s.params).forEach(function(i){var n=o(i,2),r=n[0],a=n[1];a.isSet&&a.isValid&&t.runByType(e,r,a.value,s)}),n.call({process:t.process,status:ge.done}))},t.runByType=function(e,i,n,r){switch(i){case Rt.scrollPosition:return t.setScrollPosition(e,n);case Rt.minIndex:return t.setMinIndex(e,n);case Rt.maxIndex:return t.setMaxIndex(e,n);case Rt.updater:return t.updateItems(e,n);case Rt.scrollToItem:if(r.params){var o=r.params[Rt.scrollToItemOpt],s=o?o.value:void 0;return t.scrollToItem(e,n,s)}return;case Rt.scrollToItemOpt:return}},t.setScrollPosition=function(e,t){var i=e.viewport,n=t;t===-1/0?n=0:t===1/0&&(n=i.getScrollableSize()),i.setPosition(n)},t.setMinIndex=function(e,t){var i=e.buffer;e.settings.minIndex=t,i.absMinIndex=t},t.setMaxIndex=function(e,t){var i=e.buffer;e.settings.maxIndex=t,i.absMaxIndex=t},t.updateItems=function(e,t){var i=e.buffer,n=e.logger,r=!1,a=function(){return r=!0};i.items.forEach(function(e){return t(e.get(),a)}),r&&(n.log(function(){return"update Buffer.items reference"}),i.items=s([],o(i.items),!1))},t.scrollToItem=function(e,t,i){var n=e.buffer.items.find(function(e){return t(e.get())});n?n.scrollTo(i):e.logger.log(function(){return"scrollToItem cancelled, item not found"})},t}(bt(he.fix)),Tt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.state.startInnerLoop();e.workflow.call({process:t.process,status:ge.next,payload:i})},t}(yt(pe.start)),jt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e){var t=e.workflow,i=e.buffer,r=e.state,o=r.fetch,s=r.cycle;o.minIndex=i.minIndex,n.setPositionsAndIndexes(e),n.skipBufferedItems(e),e.settings.infinite&&n.checkBufferGaps(e),n.checkFetchPackSize(e),n.setFetchDirection(e),t.call({process:n.process,status:n.getStatus(e),payload:{process:s.initiator}})},n.setPositionsAndIndexes=function(e){n.setPositions(e),n.setFirstIndex(e),n.setLastIndex(e),e.logger.fetch()},n.setPositions=function(e){var t=e.state,i=e.viewport,r=t.fetch.positions,o=i.getBufferPadding();r.before=i.scrollPosition,r.startDelta=n.getStartDelta(e),r.relative=r.before-r.startDelta,r.start=r.relative-o,r.end=r.relative+i.getSize()+o},n.getStartDelta=function(e){var t=e.buffer,i=e.viewport.offset,n=0;if(i&&(n+=i),!t.defaultSize)return n;for(var r=t.finiteAbsMinIndex;r<t.startIndex;r++)n+=t.getSizeByIndex(r);return e.logger.log(function(){return s(["start delta is ".concat(n)],o(i?[" (+".concat(i," offset)")]:[]),!1)}),n},n.setFirstIndex=function(e){var t=e.state,i=e.buffer,n=t.fetch,r=n.positions,o=n.first,s=r.start,a=i.startIndex,l=0;if(t.cycle.innerLoop.isInitial)e.logger.log("skipping fetch backward direction [initial loop]");else if(i.defaultSize)for(var c=l,u=a;;){if(s>=0){var f=i.getSizeByIndex(u);if(c+f-s>0){a=u,l=c;break}if(c+=f,++u<i.absMinIndex)break}if(s<0){if(--u<i.absMinIndex)break;if(a=u,l=c-=i.getSizeByIndex(u),c-s<=0)break}}else e.logger.log("skipping fetch backward direction [no item size]");o.index=o.indexBuffer=Math.max(a,i.absMinIndex),o.position=l},n.setLastIndex=function(e){var t,i=e.state,n=e.buffer,r=e.settings,o=i.fetch,s=i.cycle,a=o.firstVisible,l=o.positions,c=o.first,u=o.last,f=l.relative,d=l.end;if(n.defaultSize){var p=c.indexBuffer,h=c.position;for(t=p;;){t=p;var g=n.getSizeByIndex(p);if(h+=g,isNaN(a.index)&&h>f&&(a.index=p,s.innerLoop.isInitial||(a.delta=h-g-f)),h>=d)break;if(p++>n.absMaxIndex)break}}else t=n.startIndex+r.bufferSize-1,e.logger.log("forcing fetch forward direction [no item size]");u.index=u.indexBuffer=Math.min(t,n.absMaxIndex)},n.skipBufferedItems=function(e){var t=e.buffer;if(t.size){for(var i=e.state.fetch,n=i.first.index,r=i.last.index,o=[[]],s=0,a=n;a<=r;a++)t.get(a)?o[s].length&&(o[++s]=[]):o[s].push(a);var l=o[0];o[0].length&&o[1]&&o[1].length&&(i.hasAnotherPack=!0,o[1].length>=o[0].length&&(l=o[1])),i.first.index=Math.max(l[0],t.absMinIndex),i.last.index=Math.min(l[l.length-1],t.absMaxIndex),i.first.index===n&&i.last.index===r||e.logger.fetch("after Buffer flushing")}},n.checkBufferGaps=function(e){var t=e.buffer,i=e.state.fetch;if(t.size){var n=i.first.index,r=t.lastIndex;n>r&&(i.first.index=i.first.indexBuffer=r+1);var o=t.firstIndex,s=i.last.index;s<o&&(i.last.index=i.last.indexBuffer=o-1),i.first.index===n&&i.last.index===s||e.logger.fetch("after Buffer filling (no clip case)")}},n.checkFetchPackSize=function(e){var t=e.buffer,i=e.state.fetch;if(i.shouldFetch){var r=i.first.index,o=i.last.index,s=e.settings.bufferSize-(o-r+1);if(!(s<=0)){if(!t.size||o>t.items[0].$index){var a=Math.min(o+s,t.absMaxIndex);a>o&&(i.last.index=i.last.indexBuffer=a)}else{var l=Math.max(r-s,t.absMinIndex);l<r&&(i.first.index=i.first.indexBuffer=l)}i.first.index===r&&i.last.index===o||(e.logger.fetch("after bufferSize adjustment"),n.skipBufferedItems(e))}}},n.setFetchDirection=function(t){var i=t.buffer,n=t.state.fetch;if(n.last.index){var r=e.Direction.forward;i.size&&(r=n.last.index<i.items[0].$index?e.Direction.backward:e.Direction.forward),n.direction=r,t.logger.log(function(){return'fetch direction is "'.concat(r,'"')})}},n.getStatus=function(e){var t=e.state,i=t.cycle,n=t.fetch;return i.initiator===he.clip?(e.logger.log(function(){return'going to skip fetch due to "'.concat(he.clip,'" process')}),ge.next):n.shouldFetch?(e.logger.log(function(){return"going to fetch ".concat(n.count," items started from index ").concat(n.index)}),ge.next):ge.done},n}(yt(pe.preFetch)),Ft=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow,n={success:function(n){e.logger.log(function(){return"resolved ".concat(n.length," items ")+"(index = ".concat(e.state.fetch.index,", count = ").concat(e.state.fetch.count,")")}),e.state.fetch.newItemsData=n,i.call({process:t.process,status:ge.next})},fail:function(e){return i.call({process:t.process,status:ge.error,payload:{error:e}})}},r=t.get(e);t.complete(e,n,r)},t.complete=function(e,t,i){if(Object.prototype.hasOwnProperty.call(i,"data")){var n=i,r=n.data,o=n.error;n.isError?t.fail(o):t.success(r||[])}else{var s=e.state,a=e.viewport,l=s.scroll,c=s.fetch;null===l.positionBeforeAsync&&(l.positionBeforeAsync=a.scrollPosition),c.cancel=function(){t.success=function(){return null},t.fail=function(){return null}},i.then(function(e){return t.success(e)},function(e){return t.fail(e)})}},t.get=function(e){var t,i,n,r,o=e.datasource.get,s=e.state.fetch,a=function(e){n?n(e):t=e||null},l=function(e){r?r(e):i=e||null},c=o(s.index,s.count,a,l);if(c&&"object"==typeof c&&null!==c){if("function"==typeof c.then)return c;if("function"==typeof c.subscribe){var u=void 0;u=c.subscribe(a,l,function(){u&&"object"==typeof u&&"function"==typeof u.unsubscribe&&u.unsubscribe()})}}return t||i?{data:i?null:t||[],error:i,isError:!!i}:new Promise(function(e,t){n=e,r=t})},t}(yt(pe.fetch)),Lt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow;t.setItems(e)?(t.setBufferLimits(e),i.call({process:t.process,status:e.state.fetch.hasNewItems?ge.next:ge.done})):i.call({process:t.process,status:ge.error,payload:{error:"Can not set buffer items"}})},t.setBufferLimits=function(e){var t=e.buffer,i=e.state,n=i.fetch,r=i.cycle,o=n.items,s=n.first,a=n.last;if(o.length){var l=o.length-1;s.index<o[0].$index&&(t.absMinIndex=o[0].$index),a.index>o[l].$index&&(t.absMaxIndex=o[l].$index)}else(a.index<t.minIndex||r.innerLoop.isInitial)&&(t.absMinIndex=t.minIndex),(s.index>t.maxIndex||r.innerLoop.isInitial)&&(t.absMaxIndex=t.maxIndex)},t.setItems=function(e){var t=e.buffer,i=e.state,n=i.fetch,r=i.cycle,o=n.newItemsData;if(!o||!o.length)return!0;var s=n.index;return o.length<n.count&&(r.innerLoop.isInitial?s=t.startIndex:n.first.index<t.minIndex&&(s=t.firstIndex-o.length)),n.items=o.map(function(t,i){return new Et(s+i,t,e.routines)}),t.setItems(n.items)},t}(yt(pe.postFetch)),Bt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow,n=e.state,r=e.viewport,o=e.routines,s=n.cycle,a=n.render,l=n.scroll,c=n.fetch;e.logger.stat("before new items render"),null===l.positionBeforeAsync&&(l.positionBeforeAsync=r.scrollPosition),a.cancel=o.render(function(){a.cancel=null,t.doRender(e)?i.call({process:t.process,status:a.noSize?ge.done:ge.next,payload:{process:s.initiator}}):i.call({process:t.process,status:ge.error,payload:{error:"Can not associate item with element"}})},{items:c.items.map(function(e){return e.get()})})},t.doRender=function(e){var i=e.state,n=e.viewport,r=e.buffer,o=e.logger,s=i.fetch,a=i.render;return a.positionBefore=n.scrollPosition,!(!s.isCheck&&(a.sizeBefore=n.getScrollableSize(),!s.items.every(function(i){return t.processElement(e,i)})))&&(r.checkDefaultSize(),a.sizeAfter=n.getScrollableSize(),o.stat("after new items render"),o.log(function(){return a.noSize?"viewport size has not been changed":void 0}),!0)},t.processElement=function(e,t){var i=e.viewport,n=e.buffer,r=i.findItemElementById(t.nodeId);return!!r&&(t.element=r,t.makeVisible(),t.setSize(n.getSizeByIndex(t.$index)),n.cacheItem(t),!0)},t}(yt(pe.render)),_t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var r=(void 0===i?{}:i).error,o=e.workflow,s=e.state.cycle.interrupter;if(r||s||t.calculateParams(e),function(e){return!!e.call.interrupted}(o))o.call({process:t.process,status:ge.done});else{var a=t.shouldContinueRun(e,r);e.state.endInnerLoop(),o.call({process:t.process,status:a?ge.next:ge.done,payload:n({},s?{process:s}:{})})}},t.calculateParams=function(e){var t=e.adapter,i=e.workflow;t.setFirstOrLastVisible({first:!0,workflow:i}),t.setFirstOrLastVisible({last:!0,workflow:i})},t.shouldContinueRun=function(e,t){var i=e.state,n=i.cycle,r=i.fetch,o=i.render;return!!n.interrupter||!t&&(!(!r.simulate||!r.isCheck||o.noSize)||(!(!r.simulate||!r.doRemove)||!(r.simulate||!(r.hasNewItems&&!o.noSize||r.hasAnotherPack))))},t}(yt(pe.end)),Wt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow,n=e.viewport,r=e.state;r.scroll.positionBeforeAdjust=n.scrollPosition,t.setPaddings(e),r.scroll.positionAfterAdjust=n.scrollPosition;var o=t.calculatePosition(e);t.setAdditionalForwardPadding(e,o),t.setPosition(e,o,function(){return i.call({process:t.process,status:ge.done})})},t.setPaddings=function(e){var t,i,n=e.viewport,r=e.buffer,o=e.settings,s=e.state,a=r.getFirstVisibleItem(),l=r.getLastVisibleItem();if(a&&l)t=a.$index,i=l.$index;else{var c=s.fetch;i=(t=isNaN(c.firstVisible.index)?r.startIndex:c.firstVisible.index)-1}var u,f=n.paddings,d=f.forward,p=f.backward,h=0,g=0;for(u=r.finiteAbsMinIndex;u<t;u++)h+=r.getSizeByIndex(u);for(u=i+1;u<=r.finiteAbsMaxIndex;u++)g+=r.getSizeByIndex(u);var m=h+(n.getScrollableSize()-d.size-p.size)+g,v=n.getSize()-m;v>0&&(o.inverse?h+=v:g+=v,e.logger.log(function(){return o.inverse?"backward":"forward"+" padding will be increased by ".concat(v," to fill the viewport")})),p.size=h,d.size=g,e.logger.stat("after paddings adjustments")},t.calculatePosition=function(e){var t=e.viewport,i=e.buffer,n=e.state,r=n.fetch,o=n.render,s=n.scroll,a=t.paddings.backward.size;if(!isNaN(r.firstVisible.index)&&!isNaN(i.firstIndex)){e.logger.log("first index = ".concat(r.firstVisible.index,", delta = ").concat(r.firstVisible.delta));var l=r.shouldCheckPreSizeExpectation(i.lastIndex);i.items.forEach(function(e){e.$index<r.firstVisible.index?a+=e.size:(e.$index===r.firstVisible.index&&r.firstVisible.delta&&(a-=r.firstVisible.delta),l&&e.preSize&&r.items.includes(e)&&(a+=e.size-e.preSize))})}if(null!==s.positionBeforeAsync){var c=o.positionBefore-s.positionBeforeAsync;0!==c&&(e.logger.log("shift position due to fetch-render difference (".concat(c,")")),a+=c)}return t.offset>0&&(a||r.positions.before)&&(a+=t.offset),Math.round(a)},t.setAdditionalForwardPadding=function(e,t){var i=e.viewport,n=e.buffer;if(e.state.cycle.isInitial&&_t.shouldContinueRun(e,null)){var r=t-i.getMaxScrollPosition();if(!(r<=0)){var o=n.getLastVisibleItem();if(o){for(var s=0,a=o.$index+1;s<=r&&a<=n.absMaxIndex;)s+=n.getSizeByIndex(a++);var l=Math.min(s,r);l&&(i.paddings.forward.size+=l,e.logger.log("increase fwd padding due to lack of items (".concat(r," -> ").concat(l,")")))}}}},t.setPosition=function(e,t,i){var n=e.state,r=e.viewport,o=e.routines,s=n.scroll;if(!s.hasPositionChanged(t))return i();s.syntheticPosition=t,s.syntheticFulfill=!1,s.cancelAnimation=o.animate(function(){s.cancelAnimation=null;var n=s.positionAfterAdjust-r.scrollPosition,o="";n>0&&(t-=n,s.syntheticPosition=t,o=" (-".concat(n,")")),s.syntheticFulfill=!0,r.scrollPosition=t,e.logger.stat("after scroll adjustment"+o),i()})},t}(yt(pe.adjust)),Ut=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e){n.prepareClip(e),e.workflow.call({process:n.process,status:ge.next,payload:{doClip:e.state.clip.doClip}})},n.prepareClip=function(t){var i=t.state,r=i.fetch,o=i.clip;if(!n.shouldNotClip(t)){var s=r.first.indexBuffer,a=r.last.indexBuffer;t.logger.log(function(){return"looking for ".concat(r.direction?"anti-"+r.direction+" ":"","items ")+"that are out of [".concat(s,"..").concat(a,"] range")}),n.isBackward(t,s)&&n.prepareClipByDirection(t,e.Direction.backward,s),n.isForward(t,a)&&n.prepareClipByDirection(t,e.Direction.forward,a),o.doClip||t.logger.log("skipping clip [no items to clip]")}},n.shouldNotClip=function(e){var t=e.settings,i=e.buffer,n=e.state;return t.infinite&&!n.clip.force?(e.logger.log("skipping clip [infinite mode]"),!0):i.size?!!n.cycle.isInitial&&(e.logger.log("skipping clip [initial cycle]"),!0):(e.logger.log("skipping clip [empty buffer]"),!0)},n.isBackward=function(t,i){var n=t.buffer,r=t.state,o=r.clip,s=r.fetch;return o.force?o.forceBackward:s.direction!==e.Direction.backward&&i-1>=n.absMinIndex},n.isForward=function(t,i){var n=t.buffer,r=t.state,o=r.clip,s=r.fetch;return o.force?o.forceForward:s.direction!==e.Direction.forward&&i+1<=n.absMaxIndex},n.prepareClipByDirection=function(t,i,n){var r=i===e.Direction.forward;t.buffer.items.forEach(function(e){(!r&&e.$index<n||r&&e.$index>n)&&(e.toRemove=!0,e.removeDirection=i,t.state.clip.doClip=!0)})},n}(yt(pe.preClip)),qt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e){var t=e.workflow;n.doClip(e),t.call({process:n.process,status:ge.next})},n.doClip=function(t){var i,n=t.buffer,r=t.viewport,o=t.state,s=t.logger,a=((i={})[e.Direction.backward]=0,i[e.Direction.forward]=0,i);s.stat("before clip (".concat(++o.clip.callCount,")"));var l=n.items.filter(function(e){return!!e.toRemove&&(e.hide(),a[e.removeDirection]+=e.size,!0)});l.length&&(a[e.Direction.backward]&&(r.paddings.byDirection(e.Direction.backward).size+=a[e.Direction.backward]),a[e.Direction.forward]&&(r.paddings.byDirection(e.Direction.forward).size+=a[e.Direction.forward]),t.settings.onBeforeClip&&t.settings.onBeforeClip(l.map(function(e){return e.get()}))),n.clip(),s.log(function(){var e=l.map(function(e){return e.$index});return e.length?["clipped ".concat(e.length," item(s) from Buffer")+(a.backward?", +".concat(a.backward," fwd px"):"")+(a.forward?", +".concat(a.forward," bwd px"):"")+", range: [".concat(e[0],"..").concat(e[e.length-1],"]")]:"clipped 0 items from Buffer"}),s.stat("after clip")},n}(yt(pe.clip)),Gt=function(){function e(e,t,i){var n=this;this.logs=[],this.logAdapterMethod=function(e,t,i){if(n.debug){var r=(void 0===t?[]:Array.isArray(t)?t:[t]).map(function(e){return"function"==typeof e?"func":"object"==typeof e&&e?Array.isArray(e)?"[of ".concat(e.length,"]"):"{ "+Object.keys(e).join(", ")+" }":e}).join(", ");n.log("adapter: ".concat(e,"(").concat(r||"",")").concat(i||""))}};var r=e.settings;this.debug=r.debug,this.immediateLog=r.immediateLog,this.logTime=r.logTime,this.logColor=r.logColor,this.getTime=function(){return e.state&&" // time: ".concat(e.state.time)},this.getStat=function(){var t=e.buffer,i=e.viewport,n=t.getFirstVisibleItem(),r=t.getLastVisibleItem();return"pos: "+i.scrollPosition+", size: "+i.getScrollableSize()+", bwd_p: "+i.paddings.backward.size+", fwd_p: "+i.paddings.forward.size+", default: "+(t.defaultSize||"no")+", items: "+t.getVisibleItemsCount()+", range: "+(n&&r?"[".concat(n.$index,"..").concat(r.$index,"]"):"no")},this.getFetchRange=function(){var t=e.state.fetch,i=t.first.index,n=t.last.index;return Number.isNaN(i)||Number.isNaN(n)?"no":"[".concat(i,"..").concat(n,"]")},this.getLoopId=function(){return e.state.cycle.loopId},this.getLoopIdNext=function(){return e.state.cycle.loopIdNext},this.getWorkflowCycleData=function(){return"".concat(r.instanceIndex,"-").concat(e.state.cycle.count)},this.getScrollPosition=function(){return e.routines.getScrollPosition()},this.log(function(){return"vscroll Workflow has been started, "+"core: ".concat(t.core.name," v").concat(t.core.version,", ")+"consumer: ".concat(t.consumer.name," v").concat(t.consumer.version,", ")+"scroller instance: ".concat(r.instanceIndex,", adapter ")+(i?"instance: ".concat(i.id):"is not instantiated")})}return e.prototype.object=function(e,t,i){this.log(function(){return[e,i?JSON.stringify(t,function(e,t){return Number.isNaN(t)?"NaN":t===1/0?"Infinity":t===-1/0?"-Infinity":t instanceof Element?"HTMLElement":t instanceof HTMLDocument?"HTMLDocument":"function"==typeof t?"Function":t}).replace(/"/g,"").replace(/(\{|:|,)/g,"$1 ").replace(/(\})/g," $1"):t]})},e.prototype.stat=function(e){var t=this;if(this.debug)if(this.logColor){var i=["color: #888; border: dashed #888 0; border-bottom-width: 0px","color: #000; border-width: 0"];this.log(function(){return s(["%cstat"+(e?" ".concat(e):"")+",%c "+t.getStat()],o(i),!1)})}else this.log(function(){return["stat"+(e?" ".concat(e):"")+", "+t.getStat()]})},e.prototype.fetch=function(e){var t=this;if(this.debug){var i="fetch interval"+(e?" ".concat(e):"");if(this.logColor){var n=["color: #888","color: #000"];this.log(function(){return s(["%c".concat(i,": %c").concat(t.getFetchRange())],o(n),!1)})}else this.log(function(){return["".concat(i,": ").concat(t.getFetchRange())]})}},e.prototype.prepareForLog=function(e){return e instanceof Event&&e.target?this.getScrollPosition():e},e.prototype.logProcess=function(e){var t=this;if(this.debug){var i=e.process,n=e.status,r=e.payload,a=[];if(i===pe.init&&n===ge.next){var l="---=== loop ".concat(this.getLoopIdNext()," start");a.push(this.logColor?"%c".concat(l):l)}else if(i===pe.end){var c="---=== loop ".concat(this.getLoopId()," done");a.push(this.logColor?"%c".concat(c):c);var u=r&&r.process;n===ge.next&&u!==he.reset&&u!==he.reload&&(a[0]+=", loop ".concat(this.getLoopIdNext()," start"))}a.length&&this.log(function(){return t.logColor?s(s([],o(a),!1),["color: #006600;"],!1):a})}},e.prototype.logCycle=function(e){void 0===e&&(e=!0);var t=this.getWorkflowCycleData();if(this.logColor){var i="color: #0000aa; border: solid #555 1px; border-width: ".concat(e?"1px 0 0 1px":"0 0 1px 1px","; margin-left: -2px");this.log(function(){return["%c ~~~ WF Cycle ".concat(t," ").concat(e?"STARTED":"FINALIZED"," ~~~ "),i]})}else this.log(function(){return[" ~~~ WF Cycle ".concat(t," ").concat(e?"STARTED":"FINALIZED"," ~~~ ")]})},e.prototype.logError=function(e){var t=this;if(this.debug)if(this.logColor){var i=["color: #a00;","color: #000"];this.log(function(){return s(["error:%c"+(e?" ".concat(e):"")+"%c (loop ".concat(t.getLoopIdNext(),")")],o(i),!1)})}else this.log(function(){return["error:"+(e?" ".concat(e):"")+" (loop ".concat(t.getLoopIdNext(),")")]})},e.prototype.log=function(){for(var e=this,t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];if(this.debug){if("function"==typeof t[0]&&(t=t[0](),Array.isArray(t)||(t=[t])),t.every(function(e){return void 0===e}))return;this.logTime&&(t=s(s([],o(t),!1),[this.getTime()],!1)),t=t.map(function(t){return e.prepareForLog(t)}),this.immediateLog?console.log.apply(this,t):this.logs.push(t)}},e.prototype.logForce=function(){for(var e=this,t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];this.debug&&(!this.immediateLog&&this.logs.length&&(this.logs.forEach(function(t){return console.log.apply(e,t)}),this.logs=[]),t.length&&console.log.apply(this,t))},e.prototype.getLogs=function(){return this.logs},e}(),Xt=function(){function t(e,t){this.element=e,this.settings={viewport:t.viewport,horizontal:t.horizontal,window:t.windowViewport},this.viewport=this.getViewportElement(),this.onInit(t)}return t.prototype.checkElement=function(e){if(!e)throw new Error("HTML element is not defined")},t.prototype.getViewportElement=function(){if(this.settings.window)return document.documentElement;if(this.settings.viewport)return this.settings.viewport;this.checkElement(this.element);var e=this.element.parentElement;return this.checkElement(e),e},t.prototype.onInit=function(e){e.windowViewport&&"scrollRestoration"in history&&(history.scrollRestoration="manual"),e.dismissOverflowAnchor&&(this.viewport.style.overflowAnchor="none")},t.prototype.findElementBySelector=function(e,t){return this.checkElement(e),e.querySelector(t)},t.prototype.findPaddingElement=function(e){return this.findElementBySelector(this.element,"[data-padding-".concat(e,"]"))},t.prototype.findItemElement=function(e){return this.findElementBySelector(this.element,'[data-sid="'.concat(e,'"]'))},t.prototype.findItemChildBySelector=function(e,t){return this.findElementBySelector(this.element,'[data-sid="'.concat(e,'"] ').concat(t))},t.prototype.getScrollPosition=function(){return this.settings.window?this.settings.horizontal?window.pageXOffset:window.pageYOffset:this.viewport[this.settings.horizontal?"scrollLeft":"scrollTop"]},t.prototype.setScrollPosition=function(e){e=Math.max(0,e),this.settings.window?this.settings.horizontal?window.scrollTo(e,window.scrollY):window.scrollTo(window.scrollX,e):this.viewport[this.settings.horizontal?"scrollLeft":"scrollTop"]=e},t.prototype.getElementParams=function(e){return this.checkElement(e),e.getBoundingClientRect()},t.prototype.getWindowParams=function(){var e=window.innerHeight,t=window.innerWidth;return{height:e,width:t,top:0,bottom:e,left:0,right:t,x:0,y:0,toJSON:function(){return null}}},t.prototype.getSize=function(e){return this.getElementParams(e)[this.settings.horizontal?"width":"height"]},t.prototype.getScrollerSize=function(){return this.getElementParams(this.element)[this.settings.horizontal?"width":"height"]},t.prototype.getViewportSize=function(){return this.settings.window?this.getWindowParams()[this.settings.horizontal?"width":"height"]:this.getSize(this.viewport)},t.prototype.getSizeStyle=function(e){this.checkElement(e);var t=e.style[this.settings.horizontal?"width":"height"];return parseFloat(t)||0},t.prototype.setSizeStyle=function(e,t){this.checkElement(e),t=Math.max(0,Math.round(t)),e.style[this.settings.horizontal?"width":"height"]="".concat(t,"px")},t.prototype.getEdge=function(t,i){var n=this.settings.horizontal;return this.getElementParams(t)[i===e.Direction.forward?n?"right":"bottom":n?"left":"top"]},t.prototype.getViewportEdge=function(t){var i=this.settings,n=i.window,r=i.horizontal;return n?this.getWindowParams()[t===e.Direction.forward?r?"right":"bottom":r?"left":"top"]:this.getEdge(this.viewport,t)},t.prototype.makeElementVisible=function(e){this.checkElement(e),e.style.left="",e.style.top="",e.style.position=""},t.prototype.hideElement=function(e){this.checkElement(e),e.style.display="none"},t.prototype.getOffset=function(){var e=this,t=function(t){return(e.settings.horizontal?t.offsetLeft:t.offsetTop)||0};return t(this.element)-(this.settings.window?0:t(this.viewport))},t.prototype.scrollTo=function(e,t){this.checkElement(e),e.scrollIntoView(t)},t.prototype.render=function(e,t){var i=setTimeout(function(){return e()});return function(){return clearTimeout(i)}},t.prototype.animate=function(e){var t=requestAnimationFrame(function(){return e()});return function(){return cancelAnimationFrame(t)}},t.prototype.onScroll=function(e){var t=this.settings.window?window:this.viewport;return t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},t}(),Ht=function(){function e(e,t){var i=t.findPaddingElement(e);t.checkElement(i),this.element=i,this.direction=e,this.routines=t}return e.prototype.reset=function(e){this.size=e||0},Object.defineProperty(e.prototype,"size",{get:function(){return this.routines.getSizeStyle(this.element)},set:function(e){this.routines.setSizeStyle(this.element,e)},enumerable:!1,configurable:!0}),e}(),Yt=function(){function t(t,i){this.settings=i,this.forward=new Ht(e.Direction.forward,t),this.backward=new Ht(e.Direction.backward,t)}return t.prototype.byDirection=function(t,i){return t===e.Direction.backward?i?this.forward:this.backward:i?this.backward:this.forward},t.prototype.reset=function(e,t,i){var n,r=this.getPositiveSize(t,e,i),o=this.getNegativeSize(t);this.settings.inverse?(this.forward.reset(o),this.backward.reset(r),(n=e-this.backward.size-i)>0&&(this.backward.size+=n,this.forward.size-=n)):(this.forward.reset(r),this.backward.reset(o),(n=e-this.forward.size-i)>0&&(this.backward.size-=n,this.forward.size+=n))},t.prototype.getPositiveSize=function(e,t,i){var n=this.settings,r=t;return isFinite(n.maxIndex)&&(r=(n.maxIndex-e+1)*n.itemSize),i&&(r=Math.max(r-i,0)),r},t.prototype.getNegativeSize=function(e){var t=this.settings,i=0;return isFinite(t.minIndex)&&(i=(e-t.minIndex)*t.itemSize),i},t}(),Jt=function(){function t(e,t,i,n){this.settings=e,this.routines=t,this.state=i,this.logger=n,this.paddings=new Yt(this.routines,e)}return t.prototype.reset=function(e){this.setOffset(),this.paddings.reset(this.getSize(),e,this.offset),this.scrollPosition=this.paddings.backward.size||0,this.state.scroll.reset()},t.prototype.setPosition=function(e){if(this.scrollPosition===e)return this.logger.log(function(){return["setting scroll position at",e,"[cancelled]"]}),e;this.routines.setScrollPosition(e);var t=this.scrollPosition;return this.logger.log(function(){return s(["setting scroll position at",t],o(t!==e?["(".concat(e,")")]:[]),!1)}),t},Object.defineProperty(t.prototype,"scrollPosition",{get:function(){return this.routines.getScrollPosition()},set:function(e){this.setPosition(e)},enumerable:!1,configurable:!0}),t.prototype.getSize=function(){return this.routines.getViewportSize()},t.prototype.getScrollableSize=function(){return this.routines.getScrollerSize()},t.prototype.getMaxScrollPosition=function(){return this.getScrollableSize()-this.getSize()},t.prototype.getBufferPadding=function(){return this.getSize()*this.settings.padding},t.prototype.getEdge=function(e){return this.routines.getViewportEdge(e)},t.prototype.setOffset=function(){this.offset=this.routines.getOffset()},t.prototype.findItemElementById=function(e){return this.routines.findItemElement(e)},t.prototype.getEdgeVisibleItem=function(t,i){for(var n,r=i===e.Direction.backward,o=r?e.Direction.forward:e.Direction.backward,s=this.getEdge(i),a=0,l=r?0:t.length-1;r?l<=t.length-1:l>=0;l+=r?1:-1){if(a=this.routines.getEdge(t[l].element,o)-s,r&&a>0||!r&&a<0){n=t[l];break}}return{item:n,index:n?n.$index:NaN,diff:a}},t}(),Qt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.newItems=[],this.oldItems=[],this.removed=[]},e}(),Zt=function(){function t(e,t){this.itemSize=e,this.sizeStrategy=t,this.sizeMap=new Map,this.recalculation=new Qt}return t.prototype.reset=function(e){e&&(this.constantSize=this.itemSize,this.frequentSize=this.itemSize,this.averageSize=this.itemSize,this.averageSizeFloat=this.itemSize,this.sizeMap.clear()),this.recalculation.reset()},t.prototype.get=function(){switch(this.sizeStrategy){case e.SizeStrategy.Average:return this.averageSize;case e.SizeStrategy.Frequent:return this.frequentSize;default:return this.constantSize}},t.prototype.recalculateAverageSize=function(e){var t=this.recalculation,i=t.oldItems,n=t.newItems,r=t.removed;if(i.length){var o=i.reduce(function(e,t){return e+t.size},0),s=i.reduce(function(e,t){return e+t.newSize},0),a=this.averageSizeFloat||0;this.averageSizeFloat=a-(o-s)/(e-n.length)}if(n.length){s=n.reduce(function(e,t){return e+t.size},0),a=this.averageSizeFloat||0;this.averageSizeFloat=((e-n.length)*a+s)/e}if(r.length){var l=r.reduce(function(e,t){return e+t.size},0);a=this.averageSizeFloat||0;this.averageSizeFloat=((e+r.length)*a-l)/e}this.averageSize=Math.round(this.averageSizeFloat)},t.prototype.recalculateFrequentSize=function(){var e=this,t=this.recalculation,i=t.oldItems,n=t.newItems,r=t.removed,a=this.sizeMap.get(this.frequentSize);n.length&&n.forEach(function(t){var i=t.size;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)}),i.length&&(i.forEach(function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))}),i.forEach(function(t){var i=t.newSize;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)})),r.length&&r.forEach(function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))});var l=s([],o(this.sizeMap.entries()),!1).sort(function(e,t){return t[1]-e[1]}),c=l[0][1],u=l.filter(function(e){return e[1]===c});u.length>1&&u.find(function(e){return e[0]===a})||(this.frequentSize=l[0][0])},t.prototype.recalculate=function(t){if(this.sizeStrategy===e.SizeStrategy.Constant)return!1;var i=this.recalculation,n=i.oldItems,r=i.newItems,o=i.removed;if(!n.length&&!r.length&&!o.length)return!1;var s=this.get();return t?(this.sizeStrategy===e.SizeStrategy.Average?this.recalculateAverageSize(t):this.recalculateFrequentSize(),this.recalculation.reset()):this.reset(!0),this.get()!==s},t.prototype.setExisted=function(t,i){this.sizeStrategy!==e.SizeStrategy.Constant&&this.recalculation.oldItems.push({size:t,newSize:i})},t.prototype.setNew=function(t){this.sizeStrategy!==e.SizeStrategy.Constant?this.recalculation.newItems.push({size:t}):this.constantSize||(this.constantSize=t)},t.prototype.setRemoved=function(t){this.sizeStrategy!==e.SizeStrategy.Constant&&this.recalculation.removed.push({size:t})},t}(),Kt=function(){function e(e,t){this.$index=e.$index,this.data=t?e.data:null,this.size=e.size}return e.prototype.changeIndex=function(e){this.$index=e},e}(),ei=function(){function t(e,t){var i=e.itemSize,n=e.cacheData,r=e.cacheOnReload,o=e.sizeStrategy;this.itemSize=i,this.saveData=n,this.cacheOnReload=r,this.sizeStrategy=o,this.logger=t,this.items=new Map,this.defaultSize=new Zt(i,o),this.reset(!0)}return t.prototype.reset=function(e){(e=e||!this.cacheOnReload)&&(this.minIndex=1/0,this.maxIndex=-1/0,this.items.clear()),this.defaultSize.reset(e)},Object.defineProperty(t.prototype,"size",{get:function(){return this.items.size},enumerable:!1,configurable:!0}),t.prototype.get=function(e){return this.items.get(e)},t.prototype.getSizeByIndex=function(e){var t=this.get(e);return t&&t.size||this.defaultSize.get()},t.prototype.getDefaultSize=function(){return this.defaultSize.get()},t.prototype.recalculateDefaultSize=function(){var e=this;return!!this.defaultSize.recalculate(this.size)&&(this.logger.log(function(){return"default size has been updated: ".concat(e.defaultSize.get())}),!0)},t.prototype.add=function(e){var t=this.get(e.$index);return t?(this.saveData&&(t.data=e.data),t.size!==e.size&&(t.size?this.defaultSize.setExisted(t.size,e.size):this.defaultSize.setNew(e.size),t.size=e.size)):(t=new Kt(e,this.saveData),this.items.set(e.$index,t),this.defaultSize.setNew(e.size)),e.$index<this.minIndex&&(this.minIndex=e.$index),e.$index>this.maxIndex&&(this.maxIndex=e.$index),t},t.prototype.insertItems=function(t,i,n,r){var o=this,s=new Map,a=t.length,l=1/0,c=-1/0,u=function(e){s.set(e.$index,e),l=e.$index<l?e.$index:l,c=e.$index>c?e.$index:c};this.items.forEach(function(t){var o=0;n===e.Direction.backward?t.$index<i&&r?o=-a:t.$index>=i&&!r&&(o=a):n===e.Direction.forward&&(t.$index<=i&&r?o=-a:t.$index>i&&!r&&(o=a)),o&&t.changeIndex(t.$index+o),u(t)}),this.saveData&&t.forEach(function(t,s){var l=i+s-(r?a:0)+(n===e.Direction.forward?1:0),c=new Kt({$index:l,data:t},o.saveData);u(c)}),this.items=s,this.minIndex=l,this.maxIndex=c},t.prototype.removeItems=function(e,t){var i=this,n=new Map,r=1/0,o=-1/0;this.items.forEach(function(s){if(e.some(function(e){return e===s.$index}))s.size&&i.defaultSize.setRemoved(s.size);else{var a=t?e.reduce(function(e,t){return e+(s.$index<t?1:0)},0):e.reduce(function(e,t){return e-(s.$index>t?1:0)},0);s.changeIndex(s.$index+a),n.set(s.$index,s),r=s.$index<r?s.$index:r,o=s.$index>o?s.$index:o}}),this.items=n,this.minIndex=r,this.maxIndex=o},t.prototype.updateSubset=function(e,t,i){var n=this;if(this.size&&e.length){var r,o,s=e[0].$index,a=e[e.length-1].$index;if(t.length){var l=t[0].$index,c=t[t.length-1].$index;r=l-s,o=c-a}else r=i?a-s+1:0,o=i?0:s-a-1;var u=new Map;this.items.forEach(function(e){return e.$index<s?(e.changeIndex(e.$index+r),void u.set(e.$index,e)):e.$index>a?(e.changeIndex(e.$index+o),void u.set(e.$index,e)):void 0}),t.forEach(function(e){return u.set(e.$index,new Kt(e,n.saveData))}),e.filter(function(e){return e.toRemove}).forEach(function(e){return n.defaultSize.setRemoved(e.size)}),this.minIndex+=r,this.maxIndex+=o,this.items=u}},t.prototype.shiftIndexes=function(e){var t=new Map,i=1/0,n=-1/0;this.items.forEach(function(r){r.changeIndex(r.$index+e),t.set(r.$index,r),i=r.$index<i?r.$index:i,n=r.$index>n?r.$index:n}),this.items=t,this.minIndex=i,this.maxIndex=n},t}(),ti=function(){function t(e,t){this.context=e,this.logger=t}return t.prototype.fillEmpty=function(e,t,i){return e.length?Number.isInteger(t)||Number.isInteger(i)?(this.logger.log(function(){return"going to fill the buffer with ".concat(e.length," item(s)")}),!0):(this.logger.log("no items to fill the buffer; wrong indexes"),!1):(this.logger.log("no items to fill the buffer; empty list"),!1)},t.prototype.insertInBuffer=function(e,t,i){var n=Number.isInteger(t)?t:Number.isInteger(i)?i:NaN,r=this.context.items.find(function(t){return e&&e(t.get())||Number.isInteger(n)&&n===t.$index});return r?r.$index:(this.logger.log("no items to insert in buffer; empty predicate result"),NaN)},t.prototype.insertVirtual=function(t,i,n){if(!t.length)return this.logger.log("no items to insert virtually; empty list"),!1;var r=this.context,o=r.firstIndex,s=r.lastIndex,a=r.finiteAbsMinIndex,l=r.finiteAbsMaxIndex;if(i<a||i>l)return this.logger.log(function(){return"no items to insert virtually; "+"selected index (".concat(i,") does not match virtual area [").concat(a,"..").concat(l,"]")}),!1;var c=n===e.Direction.backward;return i<o+(c?1:0)||i>s-(c?0:1)?(this.logger.log(function(){return"going to insert ".concat(t.length," item(s) virtually")}),!0):(this.logger.log("no items to insert virtually; selected index (".concat(i,") belongs Buffer [").concat(o,"..").concat(s,"]")),!1)},t}(),ii=function(){function t(e,t,i){this._items=[],this.logger=i,this.changeItems=t,this.bof=new c(!1),this.eof=new c(!1),this.cache=new ei(e,i),this.checkCall=new ti(this,i),this.startIndexUser=e.startIndex,this.minIndexUser=e.minIndex,this.maxIndexUser=e.maxIndex,this.reset(!0)}return t.prototype.dispose=function(){this.bof.dispose(),this.eof.dispose(),this._items.forEach(function(e){return e.dispose()}),this._items=[]},t.prototype.reset=function(e,t){this.items.forEach(function(e){return e.hide()}),this.pristine=!0,this.items=[],this.cache.reset(e),this.absMinIndex=this.minIndexUser,this.absMaxIndex=this.maxIndexUser,this.setCurrentStartIndex(t),this.bof.set(!1),this.eof.set(!1),this.pristine=!1},t.prototype.setCurrentStartIndex=function(e){var t=this.minIndexUser,i=this.maxIndexUser,n=this.startIndexUser,r=Number(e);Number.isNaN(r)&&(this.logger.log(function(){return"fallback startIndex to settings.startIndex (".concat(n,")")}),r=n),r<t&&(this.logger.log(function(){return"setting startIndex to settings.minIndex (".concat(t,") because ").concat(r," < ").concat(t)}),r=t),r>i&&(this.logger.log(function(){return"setting startIndex to settings.maxIndex (".concat(i,") because ").concat(r," > ").concat(i)}),r=i),this.startIndex=r},Object.defineProperty(t.prototype,"items",{get:function(){return this._items},set:function(e){this._items=e,this.changeItems(e),this.pristine||(this.checkBOF(),this.checkEOF())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"absMinIndex",{get:function(){return this._absMinIndex},set:function(e){this._absMinIndex!==e&&(this._absMinIndex=Number.isFinite(this._absMaxIndex)&&e>this._absMaxIndex?this._absMaxIndex:e),this.pristine||this.checkBOF()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"absMaxIndex",{get:function(){return this._absMaxIndex},set:function(e){this._absMaxIndex!==e&&(this._absMaxIndex=Number.isFinite(this._absMinIndex)&&e<this._absMinIndex?this._absMinIndex:e),this.pristine||this.checkEOF()},enumerable:!1,configurable:!0}),t.prototype.checkBOF=function(){var e=this.items.length?this.items[0].$index===this.absMinIndex:isFinite(this.absMinIndex);this.bof.set(e)},t.prototype.checkEOF=function(){var e=this.items.length?this.items[this.items.length-1].$index===this.absMaxIndex:isFinite(this.absMaxIndex);this.eof.set(e)},Object.defineProperty(t.prototype,"size",{get:function(){return this._items.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cacheSize",{get:function(){return this.cache.size},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"defaultSize",{get:function(){return this.cache.getDefaultSize()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minIndex",{get:function(){return isFinite(this.cache.minIndex)?this.cache.minIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxIndex",{get:function(){return isFinite(this.cache.maxIndex)?this.cache.maxIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"firstIndex",{get:function(){return this.items.length?this.items[0].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastIndex",{get:function(){return this.items.length?this.items[this.items.length-1].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"finiteAbsMinIndex",{get:function(){return isFinite(this.absMinIndex)?this.absMinIndex:this.minIndex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"finiteAbsMaxIndex",{get:function(){return isFinite(this.absMaxIndex)?this.absMaxIndex:this.maxIndex},enumerable:!1,configurable:!0}),t.prototype.get=function(e){return this.items.find(function(t){return t.$index===e})},t.prototype.setItems=function(e){if(this.items.length)if(this.items[0].$index>e[e.length-1].$index)this.items=s(s([],o(e),!1),o(this.items),!1);else{if(!(e[0].$index>this.items[this.items.length-1].$index))return!1;this.items=s(s([],o(this.items),!1),o(e),!1)}else this.items=s([],o(e),!1);return!0},t.prototype.clip=function(){this.items=this.items.filter(function(e){return!e.toRemove})},t.prototype.getIndexToInsert=function(e,t,i){return this.checkCall.insertInBuffer(e,t,i)},t.prototype.shiftExtremum=function(e,t){t?(this.absMinIndex-=e,this.startIndex-=e):this.absMaxIndex+=e,this.startIndex>this.absMaxIndex?this.startIndex=this.absMaxIndex:this.startIndex<this.absMinIndex&&(this.startIndex=this.absMinIndex)},t.prototype.insertVirtually=function(e,t,i,n){if(!this.checkCall.insertVirtual(e,t,i))return!1;var r=0;return t<=this.firstIndex&&!n?r=e.length:t>=this.lastIndex&&n&&(r=-e.length),r&&(this.items.forEach(function(e){return e.updateIndex(e.$index+r)}),this.cache.insertItems(e,t,i,n),this.items=s([],o(this.items),!1)),this.shiftExtremum(e.length,n),!0},t.prototype.removeVirtually=function(e,t){for(var i=this.items.length,n=!1,r=function(i){var r=a.items[i],o=e.reduce(function(e,i){return e+(t?r.$index<i?1:0:r.$index>i?-1:0)},0);n=n||!!o,r.updateIndex(r.$index+o)},a=this,l=t?i-1:0;t?l>=0:l<i;t?l--:l++)r(l);this.shiftExtremum(-e.length,t),n&&(this.items=s([],o(this.items),!1)),this.cache.removeItems(e,t)},t.prototype.fillEmpty=function(e,t,i,n,r){if(!this.checkCall.fillEmpty(e,t,i))return!1;var o=Number.isInteger(t),s=o?t:i,a=n?e.length:o?1:0;return this.items=e.map(function(e,t){return r(s+t+(o?0:1)-a,e)}),this._absMinIndex=this.items[0].$index,this._absMaxIndex=this.items[this.size-1].$index,this.startIndex<=this.absMinIndex?this.startIndex=this.absMinIndex:this.startIndex>this.absMaxIndex&&(this.startIndex=this.absMaxIndex),!0},t.prototype.updateItems=function(e,t,i,n){if(!this.size||Number.isNaN(this.firstIndex))return{trackedIndex:NaN,toRemove:[]};for(var r=i,a=n?this.lastIndex:this.firstIndex,l=[],c=n?-1:1,u=this.size-1,f=new Map,d=Array.prototype[n?"unshift":"push"],p=function(u){var p=h.items[u];f.set(p.$index,p);var g=e(p);if(!g||Array.isArray(g)&&!g.length)return p.toRemove=!0,r+=p.$index>=i?n?1:0:n?0:-1,h.shiftExtremum(-1,n),"continue";if(!Array.isArray(g))return p.updateIndex(a),d.call(l,p),a+=c,"continue";p.$index<i?r+=n?0:g.length-1:p.$index>i&&(r+=n?1-g.length:0);var m=!0,v=[];(n?s([],o(g),!1).reverse():g).forEach(function(e,n){var o;p.data===e?(i===p.$index&&(r=a+n*c),p.updateIndex(a+n*c),o=p,m=!1):(o=t(a+n*c,e)).toInsert=!0,d.call(v,o)}),p.toRemove=m,d.call.apply(d,s([l],o(v),!1)),a+=c*g.length,g.length>1&&h.shiftExtremum(g.length-1,n)},h=this,g=n?u:0;n?g>=0:g<=u;g+=c)p(g);var m=this.items.filter(function(e){return e.toRemove}),v=Array.from(f).map(function(e){var t=o(e,2),i=t[0],n=t[1];return{$index:i,size:n.size,toRemove:n.toRemove}}).sort(function(e,t){return e.$index-t.$index});return this.items=l,this.cache.updateSubset(v,l,n),this.finiteAbsMinIndex===this.finiteAbsMaxIndex?r=NaN:r>this.finiteAbsMaxIndex?r=this.finiteAbsMaxIndex:r<this.finiteAbsMinIndex&&(r=this.finiteAbsMinIndex),{trackedIndex:r,toRemove:m}},t.prototype.cacheItem=function(e){this.cache.add(e)},t.prototype.getFirstVisibleItemIndex=function(){for(var e=this.items.length,t=0;t<e;t++)if(!this.items[t].invisible)return t;return-1},t.prototype.getLastVisibleItemIndex=function(){for(var e=this.items.length-1;e>=0;e--)if(!this.items[e].invisible)return e;return-1},t.prototype.getFirstVisibleItem=function(){var e=this.getFirstVisibleItemIndex();return e>=0?this.items[e]:void 0},t.prototype.getLastVisibleItem=function(){var e=this.getLastVisibleItemIndex();return e>=0?this.items[e]:void 0},t.prototype.getEdgeVisibleItem=function(t,i){return t===(i?e.Direction.backward:e.Direction.forward)?this.getLastVisibleItem():this.getFirstVisibleItem()},t.prototype.getVisibleItemsCount=function(){return this.items.reduce(function(e,t){return e+(t.invisible?0:1)},0)},t.prototype.getSizeByIndex=function(e){return this.cache.getSizeByIndex(e)},t.prototype.checkDefaultSize=function(){return this.cache.recalculateDefaultSize()},t}(),ni=function(){function e(e){this.total=e,this.isInitial=!1,this.busy=new c(!1)}return Object.defineProperty(e.prototype,"first",{get:function(){return 0===this.count},enumerable:!1,configurable:!0}),e.prototype.done=function(){this.isInitial=!1,this.count++,this.total++,this.busy.set(!1)},e.prototype.start=function(){this.busy.set(!0)},e.prototype.dispose=function(){this.busy.dispose()},e}(),ri=function(){function e(e,t){var i=t?t.count:1,n=t?t.innerLoop.count:0;this.instanceIndex=e,this.innerLoop=new ni(n),this.interrupter=null,this.busy=new c(!1),this.end(i)}return Object.defineProperty(e.prototype,"loopId",{get:function(){return"".concat(this.instanceIndex,"-").concat(this.count,"-").concat(this.innerLoop.total)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"loopIdNext",{get:function(){return"".concat(this.instanceIndex,"-").concat(this.count,"-").concat(this.innerLoop.total+1)},enumerable:!1,configurable:!0}),e.prototype.start=function(e,t){this.isInitial=e,this.initiator=t,this.innerLoop.isInitial=e,this.innerLoop.count=0,this.interrupter=null,this.busy.set(!0)},e.prototype.end=function(e){this.count=e,this.isInitial=!1,this.busy.set(!1)},e.prototype.dispose=function(e){e&&this.busy.dispose(),this.innerLoop.dispose()},e}(),oi=function(){function e(){this.reset()}return e.prototype.reset=function(){this.startDelta=0,this.before=0},e}(),si=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN,this.position=NaN},e}(),ai=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN},e}(),li=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.delta=0},e}(),ci=function(){function t(e){this.directionPriority=e,this.callCount=0,this.positions=new oi,this.first=new si,this.last=new ai,this.firstVisible=new li,this.reset()}return t.prototype.reset=function(){this._newItemsData=null,this.items=[],this.positions.reset(),this.first.reset(),this.last.reset(),this.firstVisible.reset(),this.hasAnotherPack=!1,this.direction=null,this.cancel=null,this.simulate=!1,this.isCheck=!1,this.doRemove=!1},Object.defineProperty(t.prototype,"newItemsData",{get:function(){return this._newItemsData},set:function(e){this._newItemsData=e,e&&e.length&&this.callCount++},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldFetch",{get:function(){return!!this.count},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasNewItems",{get:function(){return!(!this._newItemsData||!this._newItemsData.length)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"index",{get:function(){return this.first.index},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return isNaN(this.first.index)||isNaN(this.last.index)?0:this.last.index-this.first.index+1},enumerable:!1,configurable:!0}),t.prototype.shouldCheckPreSizeExpectation=function(t){if(this.directionPriority===e.Direction.backward)return!1;var i=this.items[this.items.length-1];return i&&i.$index<t},t.prototype.startSimulate=function(e){this.simulate=!0,this._newItemsData=e.map(function(e){return e.data}),this.items=e,this.hasAnotherPack=!1},t.prototype.stopSimulate=function(){this.simulate=!1,this.isCheck=!1,this.doRemove=!1},t.prototype.fill=function(t,i){this.startSimulate(t),this.first.index=t[0].$index,this.last.index=t[t.length-1].$index,this.direction=e.Direction.forward,this.firstVisible.index=i,this.firstVisible.delta=0},t.prototype.check=function(e){this.startSimulate(e),this.last.index=e[0].$index,this.first.index=e[e.length-1].$index,this.isCheck=!0},t.prototype.update=function(e,t,i,n){this.startSimulate(i),this.firstVisible.index=e,this.firstVisible.delta=t,this.doRemove=n.length>0},t}(),ui=function(){function e(){this.callCount=0,this.reset()}return Object.defineProperty(e.prototype,"force",{get:function(){return this.forceForward||this.forceBackward},enumerable:!1,configurable:!0}),e.prototype.reset=function(e){this.doClip=!1,e||(this.forceForward=!1,this.forceBackward=!1)},e}(),fi=function(){function e(){this.reset()}return Object.defineProperty(e.prototype,"noSize",{get:function(){return this.sizeBefore===this.sizeAfter},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this.sizeBefore=0,this.sizeAfter=0,this.positionBefore=0,this.cancel=null},e}(),di=function(){function e(){this.reset()}return e.prototype.reset=function(){this.previous=null,this.current=null,this.syntheticPosition=null,this.syntheticFulfill=!1,this.positionBeforeAsync=null,this.positionBeforeAdjust=null,this.positionAfterAdjust=null,this.stop()},e.prototype.stop=function(){this.scrollTimer&&(clearTimeout(this.scrollTimer),this.scrollTimer=null),this.cancelAnimation&&(this.cancelAnimation(),this.cancelAnimation=null)},e.prototype.hasPositionChanged=function(e){var t=this.positionBeforeAdjust,i=this.positionAfterAdjust;return null===t||t!==e||null===i||i!==e},e}(),pi=function(){function e(e,t,i){this.packageInfo=e,this.settings=t,this.initTime=Number(new Date),this.paused=new c(!1),this.cycle=new ri(this.settings.instanceIndex,i?i.cycle:void 0),this.fetch=new ci(t.directionPriority),this.clip=new ui,this.render=new fi,this.scroll=new di}return Object.defineProperty(e.prototype,"time",{get:function(){return Number(new Date)-this.initTime},enumerable:!1,configurable:!0}),e.prototype.startWorkflowCycle=function(e,t){this.cycle.start(e,t)},e.prototype.endWorkflowCycle=function(e){this.cycle.end(e)},e.prototype.startInnerLoop=function(){var e=this,t=e.cycle,i=e.scroll,r=e.fetch,o=e.render,s=e.clip;return t.innerLoop.start(),i.positionBeforeAsync=null,r.simulate||r.reset(),s.reset(s.force),o.reset(),n({},t.innerLoop.first?{process:t.initiator,doRender:r.simulate&&r.items.length>0}:{})},e.prototype.endInnerLoop=function(){var e=this,t=e.fetch,i=e.clip,n=e.render,r=e.cycle;t.stopSimulate(),i.reset(),t.cancel&&(t.cancel(),t.cancel=null),n.cancel&&(n.cancel(),n.cancel=null),r.innerLoop.done()},e.prototype.dispose=function(){this.scroll.stop(),this.cycle.dispose(),this.paused.dispose(),this.endInnerLoop()},e}(),hi=I(),gi=hi.filter(function(e){return!!e.allowedWhenPaused}).map(function(e){return e.name}),mi=function(e,t){return!!e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t)},vi=function(e,t,i){var n=t;if(!mi(t,"items")){var r=Array.isArray(t)?t:[t];n=e?{items:r,bof:i}:{items:r,eof:i}}return n},xi=function(){function t(t,i,r){var s=this;this.source={},this.box={},this.demand={},this.setFirstOrLastVisible=function(e){},this.getWorkflow=i,this.logger=r,this.relax$=null,this.relaxRun=null,this.reloadCounter=0;var a=(null==t?void 0:t.id)||-1,c=t&&S.get(t.id)||{};N(!0,a);var u=t?hi.map(function(e){var i=t[e.name];if(t.augmented){var r=c[e.name];r&&(i=r.default)}return n(n({},e),{value:i})}):I();Object.entries(c).forEach(function(e){var t=o(e,2),i=t[0],n=t[1],r=u.find(function(e){return e.name===i});r&&n&&(r.value=n.default)}),u.filter(function(e){var t=e.type,i=e.permanent;return t===l.Scalar&&i}).forEach(function(e){var t=e.name,i=e.value;return Object.defineProperty(s,t,{configurable:!0,get:function(){return i}})}),u.filter(function(e){return e.type===l.Reactive}).forEach(function(e){var t=e.name,i=e.value;s.source[t]=i,Object.defineProperty(s,t,{configurable:!0,get:function(){return s.source[t]}})});var f=function(t){if(E(t,a)){var i=[e.AdapterPropName.firstVisible,e.AdapterPropName.firstVisible$],n=[e.AdapterPropName.lastVisible,e.AdapterPropName.lastVisible$];i.some(function(e){return e===t.name})?s.setFirstOrLastVisible({first:!0}):n.some(function(e){return e===t.name})&&s.setFirstOrLastVisible({last:!0})}};u.filter(function(e){return e.type===l.Scalar&&!!e.reactive}).forEach(function(e){var t=e.name,i=e.value,n=e.reactive;s.box[t]=i,Object.defineProperty(s,t,{configurable:!0,set:function(e){if(e!==s.box[t]){s.box[t]=e,s.source[n].set(e);var i=c[n];i&&i.emit(i.source,e)}},get:function(){return f(e),s.box[t]}})}),u.filter(function(e){return e.type===l.Scalar&&e.onDemand}).forEach(function(e){var t=e.name,i=e.value;s.demand[t]=i,Object.defineProperty(s,t,{configurable:!0,get:function(){return s.demand[t]}})}),t&&(u.forEach(function(i){var n=i.name,r=i.type,o=i.permanent,a=s[n];r===l.Function?a=a.bind(s):r===l.WorkflowRunner?a=s.getWorkflowRunnerMethod(a,n):r===l.Reactive&&c[n]?a=t[n]:n===e.AdapterPropName.augmented&&(a=!0);var u=!o&&r===l.Scalar;Object.defineProperty(t,n,{configurable:!0,get:function(){return f(i),u?s[n]:a}})}),this.externalContext=t,N(!1,a))}return Object.defineProperty(t.prototype,"workflow",{get:function(){return this.getWorkflow()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"reloadCount",{get:function(){return this.reloadCounter},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"reloadId",{get:function(){return this.id+"."+this.reloadCounter},enumerable:!1,configurable:!0}),t.prototype.getPromisifiedMethod=function(e,t){var i=this;return new Promise(function(n){i.relax$&&i.relax$.once(function(e){return n(e)}),e.apply(i,t)})},t.prototype.getWorkflowRunnerMethod=function(e,t){var i=this;return function(){for(var n,r,o,s,a=[],l=0;l<arguments.length;l++)a[l]=arguments[l];return i.relax$?i.paused&&!gi.includes(t)?(null===(s=null===(o=i.logger)||void 0===o?void 0:o.log)||void 0===s||s.call(o,function(){return"scroller is paused: "+t+" method is ignored"}),Promise.resolve(v)):i.getPromisifiedMethod(e,a):(null===(r=null===(n=i.logger)||void 0===n?void 0:n.log)||void 0===r||r.call(n,function(){return"scroller is not initialized: "+t+" method is ignored"}),Promise.resolve(m))}},t.prototype.initialize=function(t){var i=this,n=t.buffer,r=t.state,o=t.viewport,s=t.logger,a=t.adapterRun$,l=t.getWorkflow;if(Object.defineProperty(this.demand,e.AdapterPropName.itemsCount,{get:function(){return n.getVisibleItemsCount()}}),Object.defineProperty(this.demand,e.AdapterPropName.bufferInfo,{get:function(){return{firstIndex:n.firstIndex,lastIndex:n.lastIndex,minIndex:n.minIndex,maxIndex:n.maxIndex,absMinIndex:n.absMinIndex,absMaxIndex:n.absMaxIndex,defaultSize:n.defaultSize}}}),this.bof=n.bof.get(),n.bof.on(function(e){return i.bof=e}),this.eof=n.eof.get(),n.eof.on(function(e){return i.eof=e}),Object.defineProperty(this.demand,e.AdapterPropName.packageInfo,{get:function(){return r.packageInfo}}),this.loopPending=r.cycle.innerLoop.busy.get(),r.cycle.innerLoop.busy.on(function(e){return i.loopPending=e}),this.isLoading=r.cycle.busy.get(),r.cycle.busy.on(function(e){return i.isLoading=e}),this.paused=r.paused.get(),r.paused.on(function(e){return i.paused=e}),this.setFirstOrLastVisible=function(t){var r,a,l,c=t.first,u=t.last,f=t.workflow;if((c||u)&&!(null===(r=null==f?void 0:f.call)||void 0===r?void 0:r.interrupted)){var d=c?e.AdapterPropName.firstVisible:e.AdapterPropName.lastVisible;if(null===(l=k(null===(a=i.externalContext)||void 0===a?void 0:a.id))||void 0===l?void 0:l[d])if(n.items.some(function(e){return!e.element}))s.log("skipping first/lastVisible set because not all buffered items are rendered at this moment");else{var p=c?e.Direction.backward:e.Direction.forward,h=o.getEdgeVisibleItem(n.items,p).item;h&&h.element===i[d].element||(i[d]=h?h.get():w)}}},this.logger=s,a){this.relax$||(this.relax$=new c);var u=this.relax$;a.on(function(e){var t=e.status,n=e.payload,r=function(){};t===ge.start?r=i.isLoading$.on(function(e){e||(r(),u.set({success:!0,immediate:!1,details:null}))}):t!==ge.done&&t!==ge.error||(r(),u.set({success:t!==ge.error,immediate:!0,details:t===ge.error&&n?String(n.error):null}))})}l&&(this.getWorkflow=l),this.init=!0},t.prototype.dispose=function(){var e=this;this.relax$&&this.relax$.dispose(),this.externalContext&&this.resetContext(),Object.getOwnPropertyNames(this).forEach(function(t){delete e[t]}),this.disposed=!0},t.prototype.resetContext=function(){var e,t=this,i=S.get(null===(e=this.externalContext)||void 0===e?void 0:e.id);hi.forEach(function(e){var n=e.type,r=e.permanent,o=e.name,s=e.value;if(n===l.Reactive||r||Object.defineProperty(t.externalContext,o,{configurable:!0,get:function(){return s}}),n===l.Reactive&&i){var a=i[o];a&&(a.default.reset(),a.emit(a.source,a.default.get()))}})},t.prototype.reset=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reset",e," of ".concat(this.reloadId)),this.workflow.call({process:he.reset,status:ge.start,payload:{options:e}})},t.prototype.reload=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reload",e," of ".concat(this.reloadId)),this.workflow.call({process:he.reload,status:ge.start,payload:{options:e}})},t.prototype.append=function(e,t){var i=vi(!1,e,t);this.logger.logAdapterMethod("append",[i.items,i.eof]),this.workflow.call({process:he.append,status:ge.start,payload:{options:i}})},t.prototype.prepend=function(e,t){var i=vi(!0,e,t);this.logger.logAdapterMethod("prepend",[i.items,i.bof]),this.workflow.call({process:he.prepend,status:ge.start,payload:{options:i}})},t.prototype.check=function(){this.logger.logAdapterMethod("check"),this.workflow.call({process:he.check,status:ge.start})},t.prototype.remove=function(e){e=function(e){return mi(e,"predicate")||mi(e,"indexes")||(e={predicate:e}),e}(e),this.logger.logAdapterMethod("remove",e),this.workflow.call({process:he.remove,status:ge.start,payload:{options:e}})},t.prototype.clip=function(e){this.logger.logAdapterMethod("clip",e),this.workflow.call({process:he.clip,status:ge.start,payload:{options:e}})},t.prototype.insert=function(e){this.logger.logAdapterMethod("insert",e),this.workflow.call({process:he.insert,status:ge.start,payload:{options:e}})},t.prototype.replace=function(e){this.logger.logAdapterMethod("replace",e),this.workflow.call({process:he.replace,status:ge.start,payload:{options:e}})},t.prototype.update=function(e){this.logger.logAdapterMethod("update",e),this.workflow.call({process:he.update,status:ge.start,payload:{options:e}})},t.prototype.pause=function(){this.logger.logAdapterMethod("pause"),this.workflow.call({process:he.pause,status:ge.start})},t.prototype.resume=function(){this.logger.logAdapterMethod("resume"),this.workflow.call({process:he.pause,status:ge.start,payload:{options:{resume:!0}}})},t.prototype.fix=function(e){this.logger.logAdapterMethod("fix",e),this.workflow.call({process:he.fix,status:ge.start,payload:{options:e}})},t.prototype.relaxUnchained=function(e,t){var i=this,n=function(){return"function"==typeof e&&t===i.reloadId&&e()};return this.isLoading||n(),new Promise(function(e){i.isLoading?i.isLoading$.once(function(){n(),e(!1)}):e(!0)}).then(function(e){var n,r;if(i.disposed)return{immediate:e,success:!1,details:"Adapter was disposed"};var o=t===i.reloadId;return null===(r=null===(n=i.logger)||void 0===n?void 0:n.log)||void 0===r||r.call(n,function(){return o?void 0:"relax promise cancelled due to ".concat(t," != ").concat(i.reloadId)}),{immediate:e,success:o,details:o?null:"Interrupted by reload or reset"}})},t.prototype.relax=function(e){var t=this,i=this.reloadId;return this.logger.logAdapterMethod("relax",e," of ".concat(i)),this.init?this.relaxRun=this.relaxRun?this.relaxRun.then(function(){return t.relaxUnchained(e,i)}):this.relaxUnchained(e,i).then(function(e){return t.relaxRun=null,e}):Promise.resolve(m)},t.prototype.showLog=function(){this.logger.logAdapterMethod("showLog"),this.logger.logForce()},t}(),yi="Invalid datasource:",bi=0,wi=function(){function e(e){var t=e.datasource,n=e.consumer,r=e.element,o=e.workflow,s=e.Routines,a=e.scroller,l=Y(t,ne).params.get;if(!l.isValid)throw new Error("".concat(yi," ").concat(l.errors[0]));var c=a?a.state.packageInfo:{consumer:n,core:z};if(r=a?a.routines.element:r,o=a?a.workflow:o,s&&!(s.prototype instanceof Xt)){var u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(Xt);Object.getOwnPropertyNames(s.prototype).filter(function(e){return"constructor"!==e}).forEach(function(e){return u.prototype[e]=null==s?void 0:s.prototype[e]}),s=u}this.workflow=o,this.settings=new xt(t.settings,t.devSettings,++bi),this.logger=new Gt(this,c,t.adapter),this.routines=new(s||Xt)(r,this.settings),this.state=new pi(c,this.settings,a?a.state:void 0),this.buffer=new ii(this.settings,o.onDataChanged,this.logger),this.viewport=new Jt(this.settings,this.routines,this.state,this.logger),this.logger.object("vscroll settings object",this.settings,!0),this.initDatasource(t,a)}return e.prototype.initDatasource=function(e,t){var i=this;if(t)return this.datasource=e,void(this.adapter=t.adapter);var n=e instanceof O,r=!n&&!this.settings.adapter;if(n)this.datasource=e;else{var o=$(function(){return{mock:r}});this.datasource=new o(e),this.settings.adapter&&(e.adapter=this.datasource.adapter)}var s=r?null:this.datasource.adapter;this.adapter=new xi(s,function(){return i.workflow},this.logger)},e.prototype.init=function(e){var t=this;this.viewport.reset(this.buffer.startIndex),this.logger.stat("initialization"),this.adapter.initialize({buffer:this.buffer,state:this.state,viewport:this.viewport,logger:this.logger,adapterRun$:e,getWorkflow:function(){return t.workflow}})},e.prototype.dispose=function(e){this.logger.log(function(){return"disposing scroller"+(e?" (forever)":"")}),e&&this.adapter.dispose(),this.buffer.dispose(),this.state.dispose()},e.prototype.finalize=function(){},e}(),Ii=function(){function e(e){var t=this,i=e.element,n=e.datasource,r=e.consumer,o=e.run,s=e.Routines,a=Y(e,vt);if(!a.isValid)throw new Error("Invalid Workflow params: ".concat(a.errors.join(", "),"."));this.isInitialized=!1,this.disposed=!1,this.initTimer=null,this.adapterRun$=new c,this.cyclesDone=0,this.cyclesDone$=new c(0),this.interruptionCount=0,this.errors=[],this.offScroll=function(){return null},this.propagateChanges=o,this.stateMachineMethods={run:this.runProcess(),interrupt:this.interrupt.bind(this),done:this.done.bind(this),onError:this.onError.bind(this)},this.scroller=new wi({element:i,datasource:n,consumer:r,workflow:this.getUpdater(),Routines:s}),this.scroller.settings.initializeDelay?this.initTimer=setTimeout(function(){t.initTimer=null,t.init()},this.scroller.settings.initializeDelay):this.init()}return e.prototype.init=function(){var e=this;this.scroller.init(this.adapterRun$);var t=this.scroller.routines;this.offScroll=t.onScroll(function(t){return e.callWorkflow({process:pe.scroll,status:ge.start,payload:{event:t}})}),this.isInitialized=!0,this.callWorkflow({process:pe.init,status:ge.start})},e.prototype.changeItems=function(e){this.propagateChanges(e)},e.prototype.callWorkflow=function(e){if(this.isInitialized){var t=e.process,i=e.status;!this.scroller.state.paused.get()||[he.pause,he.reset].includes(t)?(t&&t.startsWith("adapter")&&i!==ge.next&&this.adapterRun$.set(e),this.process(e)):this.scroller.logger.log("scroller is paused: "+t+" process is ignored")}},e.prototype.getUpdater=function(){return{call:this.callWorkflow.bind(this),onDataChanged:this.changeItems.bind(this)}},e.prototype.process=function(e){var t=this,i=e.status,r=e.process,a=e.payload;this.scroller.settings.logProcessRun&&this.scroller.logger.log(function(){return s(s(s([],o(t.scroller.settings.logColor?["%cfire%c","color: #cc7777;","color: #000000;"]:["fire"]),!1),[r,'"'.concat(i,'"')],!1),o(void 0!==a?[a]:[]),!1)}),this.scroller.logger.logProcess(e),r===pe.end&&this.scroller.finalize(),function(e){var t=e.input,i=t.process,r=t.status,o=t.payload,s=void 0===o?{}:o,a=e.methods,l=a.run,c=a.interrupt,u=a.done,f=a.onError;if(r===ge.error)return f(i,s),void(i.startsWith("adapter")||l(_t)(s));var d=s.options;switch(i){case pe.init:r===ge.start&&l(It)(i),r===ge.next&&l(Tt)();break;case pe.scroll:r===ge.start&&l(St)(s),r===ge.next&&l(It)(i);break;case he.reset:case he.reload:r===ge.start&&(i===he.reset?l(zt)(d):l(kt)(d)),r===ge.next&&(c(n({process:i},s)),s.finalize?l(_t)():l(It)(i));break;case he.append:case he.prepend:r===ge.start&&l(Pt)({process:i,options:d}),r===ge.next&&l(It)(i);break;case he.check:r===ge.start&&l(Mt)(),r===ge.next&&l(It)(i);break;case he.remove:r===ge.start&&l(Ot)(d),r===ge.next&&l(It)(i);break;case he.clip:r===ge.start&&l($t)(d),r===ge.next&&l(It)(i);break;case he.insert:r===ge.start&&l(Vt)(d),r===ge.next&&l(It)(i);break;case he.replace:r===ge.start&&l(At)(d),r===ge.next&&l(It)(i);break;case he.update:r===ge.start&&l(Nt)(d),r===ge.next&&l(It)(i);break;case he.pause:r===ge.start&&l(Dt)(d),r===ge.next&&l(It)(i);break;case he.fix:r===ge.start&&l(Ct)(d),r===ge.next&&l(It)(i);break;case pe.start:switch(s.process){case he.append:case he.insert:case he.replace:case he.update:s.doRender?l(Bt)():l(Wt)();break;case he.check:l(Bt)();break;case he.remove:l(Wt)();break;default:l(jt)()}break;case pe.preFetch:r===ge.next&&(s.process===he.clip?l(Ut)():l(Ft)()),r===ge.done&&l(_t)();break;case pe.fetch:l(Lt)();break;case pe.postFetch:r===ge.next&&l(Bt)(),r===ge.done&&l(_t)();break;case pe.render:if(r===ge.next)switch(s.process){case he.append:case he.check:case he.insert:case he.replace:case he.update:l(Wt)();break;default:l(Ut)()}r===ge.done&&l(_t)();break;case pe.preClip:s.doClip?l(qt)():l(Wt)();break;case pe.clip:l(Wt)();break;case pe.adjust:l(_t)();break;case pe.end:if(r===ge.next)switch(s.process){case he.reset:case he.reload:u(),l(It)(s.process);break;default:l(Tt)()}r===ge.done&&u()}}({input:e,methods:this.stateMachineMethods})},e.prototype.runProcess=function(){var e=this;return function(t){var i=t.run,n=t.process,r=t.name;return function(){for(var t=[],a=0;a<arguments.length;a++)t[a]=arguments[a];e.scroller.settings.logProcessRun&&e.scroller.logger.log(function(){return s(s(s([],o(e.scroller.settings.logColor?["%crun%c","color: #333399;","color: #000000;"]:["run"]),!1),[n||r],!1),o(t),!1)}),i.apply(void 0,s([e.scroller],o(t),!1))}}},e.prototype.onError=function(e,t){var i=t&&String(t.error)||"",n=this.scroller.state,r=n.time,o=n.cycle;this.errors.push({process:e,message:i,time:r,loop:o.loopIdNext}),this.scroller.logger.logError(i)},e.prototype.interrupt=function(e){var t=this,i=e.process,n=e.finalize,r=e.datasource;if(n){var o=this.scroller,s=o.workflow,a=o.logger;s.call=function(e){return a.log("[skip wf call]")},s.call.interrupted=!0,this.scroller.workflow=this.getUpdater(),this.interruptionCount++,a.log(function(){return"workflow had been interrupted by the ".concat(i," process (").concat(t.interruptionCount,")")})}if(r){var l=function(){t.scroller.logger.log("new Scroller instantiation");var e=new wi({datasource:r,scroller:t.scroller});t.scroller.dispose(),t.scroller=e,t.scroller.init()};this.scroller.state.cycle.busy.get()?this.scroller.adapter.relax(l.bind(this)):l()}},e.prototype.done=function(){var e=this.scroller,t=e.state,i=e.logger;this.cyclesDone++,this.cyclesDone$.set(this.cyclesDone),i.logCycle(!1),t.endWorkflowCycle(this.cyclesDone+1),this.finalize()},e.prototype.dispose=function(){var e=this;this.scroller.logger.log(function(){return"disposing workflow"}),this.initTimer&&clearTimeout(this.initTimer),this.offScroll(),this.adapterRun$.dispose(),this.cyclesDone$.dispose(),this.scroller.dispose(!0),Object.getOwnPropertyNames(this).forEach(function(t){delete e[t]}),this.isInitialized=!1,this.disposed=!0},e.prototype.finalize=function(){},e}();e.EMPTY_ITEM=w,e.INVALID_DATASOURCE_PREFIX=yi,e.Routines=Xt,e.Workflow=Ii,e.getDefaultAdapterProps=I,e.makeDatasource=$,e.packageInfo=z});
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("vscroll",["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VScroll={})}(this,function(e){"use strict";var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},t(e,i)};function i(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var n=function(){return n=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},n.apply(this,arguments)};function r(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],n=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function o(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,r,o=i.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}return s}function s(e,t,i){if(i||2===arguments.length)for(var n,r=0,o=t.length;r<o;r++)!n&&r in t||(n||(n=Array.prototype.slice.call(t,0,r)),n[r]=t[r]);return e.concat(n||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var a,l,c=function(){function e(e,t){this.id=0,void 0!==e&&(this.value=e,this.initialValue=e),this.options=t||{},this.subscriptions=new Map}return e.prototype.set=function(e){var t,i;if(this.value!==e||this.options.emitEqual){this.value=e;try{for(var n=r(this.subscriptions),s=n.next();!s.done;s=n.next()){if(o(s.value,2)[1].emit(e),this.value!==e)break}}catch(e){t={error:e}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(t)throw t.error}}}},e.prototype.get=function(){return this.value},e.prototype.on=function(e){var t=this,i=this.id++,n={emit:e,off:function(){n.emit=function(){return null},t.subscriptions.delete(i)}};return this.subscriptions.set(i,n),this.options.emitOnSubscribe&&n.emit(this.value),function(){return n.off()}},e.prototype.once=function(e){var t=this.on(function(i){t(),e(i)});return t},e.prototype.reset=function(){this.set(this.initialValue)},e.prototype.dispose=function(){this.subscriptions.forEach(function(e){return e.off()})},e}();e.AdapterPropName=void 0,(a=e.AdapterPropName||(e.AdapterPropName={})).id="id",a.mock="mock",a.augmented="augmented",a.version="version",a.init="init",a.init$="init$",a.packageInfo="packageInfo",a.itemsCount="itemsCount",a.bufferInfo="bufferInfo",a.isLoading="isLoading",a.isLoading$="isLoading$",a.loopPending="loopPending",a.loopPending$="loopPending$",a.firstVisible="firstVisible",a.firstVisible$="firstVisible$",a.lastVisible="lastVisible",a.lastVisible$="lastVisible$",a.bof="bof",a.bof$="bof$",a.eof="eof",a.eof$="eof$",a.paused="paused",a.paused$="paused$",a.reset="reset",a.reload="reload",a.append="append",a.prepend="prepend",a.check="check",a.remove="remove",a.clip="clip",a.insert="insert",a.replace="replace",a.update="update",a.pause="pause",a.resume="resume",a.fix="fix",a.relax="relax",a.showLog="showLog",function(e){e[e.Scalar=0]="Scalar",e[e.Reactive=1]="Reactive",e[e.WorkflowRunner=2]="WorkflowRunner",e[e.Function=3]="Function"}(l||(l={}));var u,f,d,p=e.AdapterPropName,h=l,g=function(){return null},m={immediate:!0,success:!0,details:"Adapter is not initialized"},v={immediate:!0,success:!0,details:"Scroller is paused"},x=function(){return Promise.resolve(m)},y={core:{name:"",version:""},consumer:{name:"",version:""}},b={firstIndex:NaN,lastIndex:NaN,minIndex:NaN,maxIndex:NaN,absMinIndex:-1/0,absMaxIndex:1/0,defaultSize:NaN},w={data:{},element:{}},I=function(){return[{type:h.Scalar,name:p.id,value:0,permanent:!0},{type:h.Scalar,name:p.mock,value:!0,permanent:!0},{type:h.Scalar,name:p.augmented,value:!1,permanent:!0},{type:h.Scalar,name:p.version,value:"",permanent:!0},{type:h.Scalar,name:p.init,value:!1,reactive:p.init$},{type:h.Scalar,name:p.packageInfo,value:y,onDemand:!0},{type:h.Scalar,name:p.itemsCount,value:0,onDemand:!0},{type:h.Scalar,name:p.bufferInfo,value:b,onDemand:!0},{type:h.Scalar,name:p.isLoading,value:!1,reactive:p.isLoading$},{type:h.Scalar,name:p.loopPending,value:!1,reactive:p.loopPending$},{type:h.Scalar,name:p.firstVisible,value:w,reactive:p.firstVisible$,wanted:!0},{type:h.Scalar,name:p.lastVisible,value:w,reactive:p.lastVisible$,wanted:!0},{type:h.Scalar,name:p.bof,value:!1,reactive:p.bof$},{type:h.Scalar,name:p.eof,value:!1,reactive:p.eof$},{type:h.Scalar,name:p.paused,value:!1,reactive:p.paused$},{type:h.WorkflowRunner,name:p.reset,value:x,allowedWhenPaused:!0},{type:h.WorkflowRunner,name:p.reload,value:x},{type:h.WorkflowRunner,name:p.append,value:x},{type:h.WorkflowRunner,name:p.prepend,value:x},{type:h.WorkflowRunner,name:p.check,value:x},{type:h.WorkflowRunner,name:p.remove,value:x},{type:h.WorkflowRunner,name:p.clip,value:x},{type:h.WorkflowRunner,name:p.insert,value:x},{type:h.WorkflowRunner,name:p.replace,value:x},{type:h.WorkflowRunner,name:p.update,value:x},{type:h.WorkflowRunner,name:p.pause,value:x},{type:h.WorkflowRunner,name:p.resume,value:x,allowedWhenPaused:!0},{type:h.WorkflowRunner,name:p.fix,value:x},{type:h.Function,name:p.relax,value:x},{type:h.Function,name:p.showLog,value:g},{type:h.Reactive,name:p.init$,value:new c},{type:h.Reactive,name:p.isLoading$,value:new c},{type:h.Reactive,name:p.loopPending$,value:new c},{type:h.Reactive,name:p.firstVisible$,value:new c(w,{emitOnSubscribe:!0}),wanted:!0},{type:h.Reactive,name:p.lastVisible$,value:new c(w,{emitOnSubscribe:!0}),wanted:!0},{type:h.Reactive,name:p.bof$,value:new c},{type:h.Reactive,name:p.eof$,value:new c},{type:h.Reactive,name:p.paused$,value:new c}]},S=new Map,z={name:"vscroll",version:"1.8.3"},k=function(e){var t;return null===(t=V.get(e||-1))||void 0===t?void 0:t.box},E=function(t,i){var n=t.name,r=t.wanted,o=V.get(i||-1);if(r&&o&&!o.box[n]&&!o.block){var s=e.AdapterPropName.firstVisible,a=e.AdapterPropName.firstVisible$,l=e.AdapterPropName.lastVisible,c=e.AdapterPropName.lastVisible$;return o.box[s]=o.box[a]=[s,a].some(function(e){return e===n})||o.box[s],o.box[l]=o.box[c]=[l,c].some(function(e){return e===n})||o.box[l],!0}return!1},N=function(e,t){var i=V.get(t||-1);i&&(i.block=e)},V=new Map,P=0,M=function(t){var i=this,r=t.mock,o=t.reactive,s=++P,a={configurable:!0},c={};V.set(s,{box:{},block:!1}),Object.defineProperty(this,e.AdapterPropName.id,n({get:function(){return s}},a)),Object.defineProperty(this,e.AdapterPropName.mock,n({get:function(){return r}},a)),Object.defineProperty(this,e.AdapterPropName.augmented,n({get:function(){return!1}},a)),Object.defineProperty(this,e.AdapterPropName.version,n({get:function(){return z.version}},a)),I().filter(function(e){return!e.permanent}).forEach(function(e){var t=e.value;if(o&&e.type===l.Reactive){var r=o[e.name];r&&(c[e.name]=n(n({},r),{default:t}),t=r.source)}Object.defineProperty(i,e.name,n({get:function(){return E(e,s),t}},a))}),o&&S.set(s,c)},O=function(){function e(e,t){this.get=e.get,this.settings=e.settings,this.devSettings=e.devSettings;var i=new M(t||{mock:!1});this.adapter=i}return e.prototype.dispose=function(){S.delete(this.adapter.id),V.delete(this.adapter.id)},e}(),$=function(e){return function(t){function n(i){var n,r="function"==typeof e?e():(n=I().filter(function(e){return e.type===l.Reactive}).reduce(function(e,t){var i=t.name,n=t.value;return e[i]={source:n,emit:function(e,t){return e.set(t)}},e},{}),{mock:!1,reactive:n});return t.call(this,i,r)||this}return i(n,t),n}(O)},A=$();e.Direction=void 0,(u=e.Direction||(e.Direction={})).forward="forward",u.backward="backward",e.SizeStrategy=void 0,(f=e.SizeStrategy||(e.SizeStrategy={})).Average="average",f.Constant="constant",f.Frequent="frequent",function(e){e.number="must be a number",e.integer="must be an integer",e.integerUnlimited="must be an integer or infinity",e.moreOrEqual="must be a number greater than (or equal to) {arg1}",e.itemList="must be an array of items {arg1}",e.boolean="must be a boolean",e.object="must be an object",e.element="must be an html element",e.function="must be a function",e.funcOfxArguments="must have {arg1} argument(s)",e.funcOfxAndMoreArguments="must have at least {arg1} argument(s)",e.funcOfXToYArguments="must have {arg1} to {arg2} arguments",e.oneOfCan="can be present as only one item of {arg1} list",e.oneOfMust="must be present as only one item of {arg1} list",e.or="must satisfy at least 1 validator from {arg1} list",e.enum="must belong to {arg1} list"}(d||(d={}));var D,R,C=function(e,t){return(t||[""]).reduce(function(e,t,i){return e.replace("{arg".concat(i+1,"}"),t)},e)},T=function(e){return"number"==typeof e||"string"==typeof e&&""!==e?Number(e):NaN},j=function(e){var t=T(e),i=[];return Number.isNaN(t)&&i.push(d.number),{value:t,isSet:!0,isValid:!i.length,errors:i}},F=function(e,t){return function(i){var n=j(i);if(!n.isValid)return n;var r=n.value,o=[];return r<e&&(t?r=e:o.push(C(d.moreOrEqual,[String(e)]))),{value:r,isSet:!0,isValid:!o.length,errors:o}}},L=function(e){var t=[];return"function"!=typeof e&&t.push(d.function),{value:e,isSet:!0,isValid:!t.length,errors:t}},B=function(e,t){return function(i){var n=L(i);if(!n.isValid)return n;var r=[];return((i=n.value).length<e||i.length>t)&&r.push(C(d.funcOfXToYArguments,[String(e),String(t)])),{value:i,isSet:!0,isValid:!r.length,errors:r}}},_=function(e,t){return function(i,n){var r=[],o=void 0!==i,s=!o,a=t?d.oneOfMust:d.oneOfCan;if(Array.isArray(e)&&e.length){for(var l=e.length-1;l>=0;l--){var c=e[l];if("string"!=typeof c){r.push(C(a,[e.join('", "')])+" (non-string token)");break}var u=n&&Object.prototype.hasOwnProperty.call(n,c);if(o&&u){r.push(C(a,[e.join('", "')])+" (".concat(c," is present)"));break}s&&u&&(s=!1)}t&&s&&r.push(C(a,[e.join('", "')]))}else r.push(C(a,["undefined"]));return{value:i,isSet:o,isValid:!r.length,errors:r}}},W=function(e){return function(t){var i=[],n=Object.keys(e).filter(function(e){return isNaN(Number(e))}).map(function(t){return e[t]});return n.some(function(e){return e===t})||i.push(C(d.enum,["["+n.join(",")+"]"])),{value:t,isSet:!0,isValid:!i.length,errors:i}}},U={NUMBER:{type:d.number,method:j},INTEGER:{type:d.integer,method:function(e){var t=[];e=T(e);var i=parseInt(String(e),10);return e!==i&&t.push(d.integer),{value:i,isSet:!0,isValid:!t.length,errors:t}}},INTEGER_UNLIMITED:{type:d.integerUnlimited,method:function(e){var t=e,i=[];return(e=T(e))!==(t=Number.isFinite(e)?parseInt(String(e),10):e)&&i.push(d.integerUnlimited),{value:t,isSet:!0,isValid:!i.length,errors:i}}},MORE_OR_EQUAL:function(e,t){return{type:d.moreOrEqual,method:F(e,t)}},BOOLEAN:{type:d.boolean,method:function(e){var t=[],i=e;return"true"===e?i=!0:"false"===e&&(i=!1),"boolean"!=typeof i&&t.push(d.boolean),{value:i,isSet:!0,isValid:!t.length,errors:t}}},OBJECT:{type:d.object,method:function(e){var t=[];return e&&"[object Object]"===Object.prototype.toString.call(e)||t.push(d.object),{value:e,isSet:!0,isValid:!t.length,errors:t}}},ITEM_LIST:{type:d.itemList,method:function(e){var t=e,i=[];if(Array.isArray(e))if(e.length){if(e.length>1)for(var n=typeof e[0],r=e.length-1;r>=0;r--)if(typeof e[r]!==n){i.push(C(d.itemList,["of items of the same type"]));break}}else i.push(C(d.itemList,["with at least 1 item"]));else i.push(d.itemList),t=[];return{value:t,isSet:!0,isValid:!i.length,errors:i}}},ELEMENT:{type:d.element,method:function(e){var t=[];return e instanceof Element||e instanceof Document||t.push(d.element),{value:e,isSet:!0,isValid:!t.length,errors:t}}},FUNC:{type:d.function,method:L},FUNC_WITH_X_ARGUMENTS:function(e){return{type:d.funcOfxArguments,method:(t=e,function(e){var i=L(e);if(!i.isValid)return i;var n=[];return(e=i.value).length!==t&&n.push(C(d.funcOfxArguments,[String(t)])),{value:e,isSet:!0,isValid:!n.length,errors:n}})};var t},FUNC_WITH_X_AND_MORE_ARGUMENTS:function(e){return{type:d.funcOfxAndMoreArguments,method:(t=e,function(e){var i=L(e);if(!i.isValid)return i;var n=[];return(e=i.value).length<t&&n.push(C(d.funcOfxArguments,[String(t)])),{value:e,isSet:!0,isValid:!n.length,errors:n}})};var t},FUNC_WITH_X_TO_Y_ARGUMENTS:function(e,t){return{type:d.funcOfXToYArguments,method:B(e,t)}},ONE_OF_CAN:function(e){return{type:d.oneOfCan,method:_(e,!1)}},ONE_OF_MUST:function(e){return{type:d.oneOfMust,method:_(e,!0)}},OR:function(e){return{type:d.or,method:(t=e,function(e){var i=[];return t.every(function(t){return!t.method(e).isValid})&&i.push(t.map(function(e){return e.type}).join(" OR ")),{value:e,isSet:!0,isValid:!i.length,errors:i}})};var t},ENUM:function(e){return{type:d.enum,method:W(e)}}},q=function(){function e(e){this.params={},this.contextErrors=[],this.errors=[],this.isValid=!0,this.setContext(e)}return e.prototype.setContext=function(e){e&&"[object Object]"===Object.prototype.toString.call(e)?this.isValidContext=!0:(this.setCommonError("context is not an object"),this.isValidContext=!1),this.context=e},e.prototype.setValidity=function(){var e=this;this.errors=Object.keys(this.params).reduce(function(t,i){return s(s([],o(t),!1),o(e.params[i].errors),!1)},[]),this.isValid=!this.errors.length},e.prototype.setCommonError=function(e){this.contextErrors.push(e),this.errors.push(e),this.isValid=!1},e.prototype.setParam=function(e,t){t.isValid||(t.errors=t.isSet?t.errors.map(function(t){return'"'.concat(e,'" ').concat(t)}):['"'.concat(e,'" must be set')]),this.params[e]=t,this.setValidity()},e.prototype.showErrors=function(){return this.errors.length?"validation failed: "+this.errors.join(", "):""},e}(),G=function(e,t,i){var n=e.value,r=e.errors,a=t.method(n,i),l=s(s([],o(r),!1),o(a.errors),!1);return{value:a.value,isSet:a.isSet,isValid:!l.length,errors:l}},X=function(e,t){var i=void 0===e,n=!t.mandatory&&void 0!==t.defaultValue;return{value:i?n?t.defaultValue:void 0:e,isSet:!i||n,isValid:!i||!t.mandatory,errors:[]}},H=function(e,t,i){var n,o,s=X(e[t],i);if(s.isSet)try{for(var a=r(Object.values(i.validators)),l=a.next();!l.done;l=a.next()){var c=l.value,u=G(s,c,e);if(!u.isValid&&void 0!==i.defaultValue)return{value:i.defaultValue,isSet:!0,isValid:!0,errors:[]};Object.assign(s,u)}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=a.return)&&o.call(a)}finally{if(n)throw n.error}}else{var f=i.validators.find(function(e){return e.type===d.oneOfMust});if(f)return G(s,f,e)}return s},Y=function(e,t){var i=new q(e);return Object.entries(t).forEach(function(e){var t=o(e,2),n=t[0],r=t[1];return i.setParam(n,i.isValidContext?H(i.context,n,r):X(void 0,r))}),i},J=U.OBJECT,Q=U.FUNC_WITH_X_AND_MORE_ARGUMENTS;!function(e){e.get="get",e.settings="settings",e.devSettings="devSettings"}(R||(R={}));var Z,K,ee,te,ie,ne=((D={})[R.get]={validators:[Q(2)],mandatory:!0},D[R.settings]={validators:[J]},D[R.devSettings]={validators:[J]},D),re=U.NUMBER,oe=U.INTEGER,se=U.INTEGER_UNLIMITED,ae=U.MORE_OR_EQUAL,le=U.BOOLEAN,ce=U.ELEMENT,ue=U.FUNC,fe=U.OR,de=U.ENUM;!function(e){e.adapter="adapter",e.startIndex="startIndex",e.minIndex="minIndex",e.maxIndex="maxIndex",e.itemSize="itemSize",e.bufferSize="bufferSize",e.padding="padding",e.infinite="infinite",e.horizontal="horizontal",e.windowViewport="windowViewport",e.viewportElement="viewportElement",e.inverse="inverse",e.onBeforeClip="onBeforeClip",e.sizeStrategy="sizeStrategy"}(te||(te={})),function(e){e.debug="debug",e.immediateLog="immediateLog",e.logProcessRun="logProcessRun",e.logTime="logTime",e.logColor="logColor",e.throttle="throttle",e.initDelay="initDelay",e.initWindowDelay="initWindowDelay",e.cacheData="cacheData",e.cacheOnReload="cacheOnReload",e.dismissOverflowAnchor="dismissOverflowAnchor",e.directionPriority="directionPriority"}(ie||(ie={}));var pe,he,ge,me,ve,xe,ye,be,we,Ie,Se,ze,ke,Ee,Ne,Ve=((Z={})[te.itemSize]=1,Z[te.bufferSize]=1,Z[te.padding]=.01,Z[ie.throttle]=0,Z[ie.initDelay]=0,Z[ie.initWindowDelay]=0,Z),Pe=((K={})[te.adapter]={validators:[le],defaultValue:!1},K[te.startIndex]={validators:[oe],defaultValue:1},K[te.minIndex]={validators:[se],defaultValue:-1/0},K[te.maxIndex]={validators:[se],defaultValue:1/0},K[te.itemSize]={validators:[oe,ae(Ve[te.itemSize],!0)],defaultValue:NaN},K[te.bufferSize]={validators:[oe,ae(Ve[te.bufferSize],!0)],defaultValue:5},K[te.padding]={validators:[re,ae(Ve[te.padding],!0)],defaultValue:.5},K[te.infinite]={validators:[le],defaultValue:!1},K[te.horizontal]={validators:[le],defaultValue:!1},K[te.windowViewport]={validators:[le],defaultValue:!1},K[te.viewportElement]={validators:[fe([ce,ue])],defaultValue:null},K[te.inverse]={validators:[le],defaultValue:!1},K[te.onBeforeClip]={validators:[ue],defaultValue:null},K[te.sizeStrategy]={validators:[de(e.SizeStrategy)],defaultValue:e.SizeStrategy.Average},K),Me=((ee={})[ie.debug]={validators:[le],defaultValue:!1},ee[ie.immediateLog]={validators:[le],defaultValue:!0},ee[ie.logProcessRun]={validators:[le],defaultValue:!1},ee[ie.logTime]={validators:[le],defaultValue:!1},ee[ie.logColor]={validators:[le],defaultValue:!0},ee[ie.throttle]={validators:[oe,ae(Ve[ie.throttle],!0)],defaultValue:40},ee[ie.initDelay]={validators:[oe,ae(Ve[ie.initDelay],!0)],defaultValue:1},ee[ie.initWindowDelay]={validators:[oe,ae(Ve[ie.initWindowDelay],!0)],defaultValue:40},ee[ie.cacheData]={validators:[le],defaultValue:!1},ee[ie.cacheOnReload]={validators:[le],defaultValue:!1},ee[ie.dismissOverflowAnchor]={validators:[le],defaultValue:!0},ee[ie.directionPriority]={validators:[de(e.Direction)],defaultValue:e.Direction.backward},ee);!function(e){e.init="init",e.scroll="scroll",e.start="start",e.preFetch="preFetch",e.fetch="fetch",e.postFetch="postFetch",e.render="render",e.preClip="preClip",e.clip="clip",e.adjust="adjust",e.end="end"}(pe||(pe={})),function(e){e.reset="adapter.reset",e.reload="adapter.reload",e.append="adapter.append",e.prepend="adapter.prepend",e.check="adapter.check",e.remove="adapter.remove",e.replace="adapter.replace",e.update="adapter.update",e.clip="adapter.clip",e.insert="adapter.insert",e.pause="adapter.pause",e.fix="adapter.fix"}(he||(he={})),function(e){e.start="start",e.next="next",e.done="done",e.error="error"}(ge||(ge={}));var Oe,$e=U.INTEGER,Ae=U.INTEGER_UNLIMITED,De=U.BOOLEAN,Re=U.OBJECT,Ce=U.ITEM_LIST,Te=U.FUNC_WITH_X_ARGUMENTS,je=U.FUNC_WITH_X_AND_MORE_ARGUMENTS,Fe=U.FUNC_WITH_X_TO_Y_ARGUMENTS,Le=U.ONE_OF_MUST,Be=U.ONE_OF_CAN,_e=U.OR;Oe||(Oe={});var We,Ue={},qe=((me={})[R.get]={validators:[je(2)]},me[R.settings]={validators:[Re]},me[R.devSettings]={validators:[Re]},me);!function(e){e.reloadIndex="reloadIndex"}(We||(We={}));var Ge,Xe=((ve={})[We.reloadIndex]={validators:[$e]},ve);!function(e){e.items="items",e.bof="bof",e.increase="increase",e.virtualize="virtualize"}(Ge||(Ge={}));var He,Ye=((xe={})[Ge.items]={validators:[Ce],mandatory:!0},xe[Ge.bof]={validators:[De,Be([Ge.virtualize])],defaultValue:!1},xe[Ge.increase]={validators:[De],defaultValue:!1},xe[Ge.virtualize]={validators:[De,Be([Ge.bof])],defaultValue:!1},xe);!function(e){e.items="items",e.eof="eof",e.decrease="decrease",e.virtualize="virtualize"}(He||(He={}));var Je,Qe=((ye={})[He.items]={validators:[Ce],mandatory:!0},ye[He.eof]={validators:[De,Be([He.virtualize])],defaultValue:!1},ye[He.decrease]={validators:[De],defaultValue:!1},ye[Ge.virtualize]={validators:[De,Be([He.eof])],defaultValue:!1},ye);!function(e){e.predicate="predicate",e.indexes="indexes",e.increase="increase"}(Je||(Je={}));var Ze,Ke=((be={})[Je.predicate]={validators:[Te(1),Le([Je.indexes])]},be[Je.indexes]={validators:[Ce,Le([Je.predicate])]},be[Je.increase]={validators:[De],defaultValue:!1},be);!function(e){e.backwardOnly="backwardOnly",e.forwardOnly="forwardOnly"}(Ze||(Ze={}));var et,tt=((we={})[Ze.backwardOnly]={validators:[De,Be([Ze.forwardOnly])],defaultValue:!1},we[Ze.forwardOnly]={validators:[De,Be([Ze.backwardOnly])],defaultValue:!1},we);!function(e){e.items="items",e.before="before",e.after="after",e.beforeIndex="beforeIndex",e.afterIndex="afterIndex",e.decrease="decrease"}(et||(et={}));var it,nt=((Ie={})[et.items]={validators:[Ce],mandatory:!0},Ie[et.before]={validators:[Te(1),Le([et.after,et.beforeIndex,et.afterIndex])]},Ie[et.after]={validators:[Te(1),Le([et.before,et.beforeIndex,et.afterIndex])]},Ie[et.beforeIndex]={validators:[$e,Le([et.before,et.after,et.afterIndex])]},Ie[et.afterIndex]={validators:[$e,Le([et.before,et.after,et.beforeIndex])]},Ie[et.decrease]={validators:[De],defaultValue:!1},Ie);!function(e){e.items="items",e.predicate="predicate",e.fixRight="fixRight"}(it||(it={}));var rt,ot=((Se={})[et.items]={validators:[Ce],mandatory:!0},Se[it.predicate]={validators:[Te(1)],mandatory:!0},Se[it.fixRight]={validators:[De],defaultValue:!1},Se);!function(e){e.predicate="predicate",e.fixRight="fixRight"}(rt||(rt={}));var st,at=((ze={})[rt.predicate]={validators:[Te(1)],mandatory:!0},ze[rt.fixRight]={validators:[De],defaultValue:!1},ze);!function(e){e.scrollPosition="scrollPosition",e.minIndex="minIndex",e.maxIndex="maxIndex",e.updater="updater",e.scrollToItem="scrollToItem",e.scrollToItemOpt="scrollToItemOpt"}(st||(st={}));var lt,ct,ut=((ke={})[st.scrollPosition]={validators:[Ae]},ke[st.minIndex]={validators:[Ae]},ke[st.maxIndex]={validators:[Ae]},ke[st.updater]={validators:[Fe(1,2)]},ke[st.scrollToItem]={validators:[Te(1)]},ke[st.scrollToItemOpt]={validators:[_e([De,Re])]},ke),ft=((Ee={})[he.reset]=R,Ee[he.reload]=We,Ee[he.prepend]=Ge,Ee[he.append]=He,Ee[he.check]=Oe,Ee[he.remove]=Je,Ee[he.clip]=Ze,Ee[he.insert]=et,Ee[he.replace]=it,Ee[he.update]=rt,Ee[he.pause]=Oe,Ee[he.fix]=st,Ee),dt=((Ne={})[he.reset]=qe,Ne[he.reload]=Xe,Ne[he.prepend]=Ye,Ne[he.append]=Qe,Ne[he.check]=Ue,Ne[he.remove]=Ke,Ne[he.clip]=tt,Ne[he.insert]=nt,Ne[he.replace]=ot,Ne[he.update]=at,Ne[he.pause]=Ue,Ne[he.fix]=ut,Ne),pt=U.ELEMENT,ht=U.OBJECT,gt=U.FUNC,mt=U.FUNC_WITH_X_ARGUMENTS;!function(e){e.consumer="consumer",e.element="element",e.datasource="datasource",e.run="run",e.Routines="Routines"}(ct||(ct={}));var vt=((lt={})[ct.consumer]={validators:[ht]},lt[ct.element]={validators:[pt],mandatory:!0},lt[ct.datasource]={validators:[ht],mandatory:!0},lt[ct.run]={validators:[mt(1)],mandatory:!0},lt[ct.Routines]={validators:[gt]},lt),xt=function(){function e(e,t,i){this.parseInput(e,Pe),this.parseInput(t,Me),this.instanceIndex=i,this.initializeDelay=this.getInitializeDelay(),this.viewport=this.getViewport()}return e.prototype.parseInput=function(e,t){var i=this,n=Y(e,t);if(!n.isValid)throw new Error("Invalid settings");Object.entries(n.params).forEach(function(e){var t,n=o(e,2),r=n[0],s=n[1];return Object.assign(i,((t={})[r]=s.value,t))})},e.prototype.getInitializeDelay=function(){var e=0;return this.windowViewport&&this.initWindowDelay&&!("scrollRestoration"in history)&&(e=this.initWindowDelay),this.initDelay>0&&(e=Math.max(e,this.initDelay)),e},e.prototype.getViewport=function(){if("function"!=typeof this.viewportElement)return this.viewportElement;var e=this.viewportElement(),t=H({value:e},"value",{validators:[U.ELEMENT]});return t.isValid?t.value:null},e}(),yt=function(e){var t;return(t=function(){}).process=e,t},bt=function(e){var t;return t=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return i(r,t),r.parseInput=function(t,i,r,s){void 0===r&&(r=!1);var a={data:Y(i,dt[s||e])};return a.data.isValid?a.params=Object.entries(a.data.params).reduce(function(e,t){var i,r=o(t,2),s=r[0],a=r[1].value;return n(n({},e),((i={})[s]=a,i))},{}):(t.logger.log(function(){return a.data.showErrors()}),r||t.workflow.call({process:e,status:ge.error,payload:{error:'Wrong argument of the "'.concat(e,'" method call')}})),a},r}(yt(e)),t.process=e,t},wt=[pe.init,he.reset,he.reload],It=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.state,r=e.workflow,o=wt.includes(i);e.logger.logCycle(!0),n.startWorkflowCycle(o,i),r.call({process:t.process,status:ge.next})},t}(yt(pe.init)),St=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return i(r,t),r.run=function(e,t){var i=e.workflow,n=e.viewport.scrollPosition;r.onSynthetic(e,n)||r.onThrottle(e,n,function(){return r.onScroll(e,i)})},r.onSynthetic=function(e,t){var i=e.state.scroll,n=i.syntheticPosition;if(null!==n){if(i.syntheticFulfill&&(i.syntheticPosition=null),!i.syntheticFulfill||n===t)return e.logger.log(function(){return["skipping scroll",t,"[".concat(i.syntheticFulfill?"":"pre-","synthetic]")]}),!0;e.logger.log(function(){return["synthetic scroll has been fulfilled:",t,t<n?"<":">",n]})}return!1},r.onThrottle=function(t,i,n){var o=t.state,s=t.settings,a=t.logger,l=o.scroll;l.current=r.getScrollEvent(i,l.previous);var c=l.current,u=c.direction,f=c.time,d=l.previous?f-l.previous.time:1/0,p=s.throttle-d,h=isFinite(p)&&p>0,g=!!l.scrollTimer;if(a.log(function(){return[u===e.Direction.backward?"⤴":"⤵",i,h?d+"ms":"0ms",h?g?"delayed":"/ ".concat(p,"ms delay"):""]}),!h)return l.scrollTimer&&(clearTimeout(l.scrollTimer),l.scrollTimer=null),void n();g||(l.scrollTimer=setTimeout(function(){a.log(function(){var n=r.getScrollEvent(t.viewport.scrollPosition,l.current);return[n.direction===e.Direction.backward?"⤴":"⤵",n.position,n.time-f+"ms","triggered by timer set on",i]}),l.scrollTimer=null,n()},p))},r.getScrollEvent=function(t,i){var n=Number(new Date),r=e.Direction.forward;return i&&(t===i.position?r=i.direction:t<i.position&&(r=e.Direction.backward)),{position:t,direction:r,time:n}},r.onScroll=function(e,t){var i=e.state,o=i.scroll,s=i.cycle;o.previous=n({},o.current),o.current=null,s.busy.get()?e.logger.log(function(){return["skipping scroll",o.previous.position,"[pending]"]}):t.call({process:r.process,status:ge.next})},r}(yt(pe.scroll)),zt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.datasource,r=e.buffer,o=e.viewport,s=e.state;if(i){var a=t.parseInput(e,i).data;if(!a.isValid)return;var l=i instanceof A;Object.keys(R).forEach(function(e){var t=a.params[e],i=n;(t.isSet||l&&i[e])&&(i[e]=t.value)})}r.reset(!0),o.paddings.backward.reset(),o.paddings.forward.reset();var c={datasource:n};s.cycle.busy.get()&&(c.finalize=!0,s.cycle.interrupter=t.process),e.workflow.call({process:t.process,status:ge.next,payload:c})},t}(bt(he.reset)),kt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.viewport,r=e.state,o=e.buffer,s=t.parseInput(e,{reloadIndex:i},!0).params;o.reset(!1,s?s.reloadIndex:void 0),n.reset(o.startIndex);var a={};r.cycle.busy.get()&&(a.finalize=!0,r.cycle.interrupter=t.process),e.workflow.call({process:t.process,status:ge.next,payload:a})},t}(bt(he.reload)),Et=function(){function e(t,i,n){this.container={uid:e.nextUid++,$index:t,data:i},this.nodeId=String(t),this.routines=n,this.invisible=!0,this.toRemove=!1,this.toInsert=!1}return Object.defineProperty(e.prototype,"uid",{get:function(){return this.container.uid},set:function(e){this.container.uid=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"$index",{get:function(){return this.container.$index},set:function(e){this.container.$index=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"data",{get:function(){return this.container.data},set:function(e){this.container.data=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this.container.element},set:function(e){this.container.element=e},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){delete this.container.element},e.prototype.setSize=function(e){void 0===e&&(e=0),this.preSize=e,this.element&&(this.size=this.routines.getSize(this.element))},e.prototype.makeVisible=function(){this.routines.makeElementVisible(this.element),this.invisible=!1},e.prototype.hide=function(){this.element&&this.routines.hideElement(this.element)},e.prototype.scrollTo=function(e){this.element&&this.routines.scrollTo(this.element,e)},e.prototype.updateIndex=function(e){this.$index=e,this.nodeId=String(e)},e.prototype.get=function(){return this.container},e.nextUid=1,e}(),Nt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e,t){var i=n.parseInput(e,t).params;if(i){var r=n.doUpdate(e,i);e.workflow.call({process:n.process,status:r?ge.next:ge.done})}},n.doUpdate=function(t,i){var n=t.buffer,r=t.viewport,o=t.state,s=t.routines,a=t.logger;if(!n.items)return a.log(function(){return"no items in Buffer"}),!1;var l=r.getEdgeVisibleItem(n.items,e.Direction.backward),c=l.item,u=l.index,f=l.diff,d=n.updateItems(i.predicate,function(e,t){return new Et(e,t,s)},u,!!i.fixRight),p=d.trackedIndex,h=d.toRemove,g=0,m=n.get(p);c&&c===m&&(g=-n.getSizeByIndex(p)+f),h.forEach(function(e){return e.hide()}),a.log(function(){return h.length?"items to remove: ["+h.map(function(e){return e.$index}).join(",")+"]":"no items to remove"}),h.length&&n.checkDefaultSize();var v=n.items.filter(function(e){return e.toInsert});return a.log(function(){return v.length?"items to render: ["+v.map(function(e){return e.$index}).join(",")+"]":"no items to render"}),o.fetch.update(p,g,v,h),!!h.length||!!v.length},n}(bt(he.update)),Vt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e,t){var i=n.parseInput(e,t).params;if(i){var r=n.doInsert(e,i);e.workflow.call({process:n.process,status:r?ge.next:ge.done})}},n.doInsert=function(e,t){return!!(n.insertEmpty(e,t)||n.insertInBuffer(e,t)||n.insertVirtually(e,t))},n.insertEmpty=function(e,t){var i=e.buffer,n=e.routines,r=e.state;if(i.size)return!1;var o=t.beforeIndex,s=t.afterIndex,a=t.items,l=t.decrease;return!!i.fillEmpty(a,o,s,!!l,function(e,t){return new Et(e,t,n)})&&(r.fetch.fill(i.items,i.startIndex),!0)},n.insertInBuffer=function(e,t){var i=t.before,n=t.after,r=t.beforeIndex,a=t.afterIndex,l=t.items,c=t.decrease,u=e.buffer.getIndexToInsert(i||n,r,a);if(t.virtualize||isNaN(u))return!1;var f=Number.isInteger(r)||i,d={predicate:function(e){var t=e.$index,i=e.data;return u!==t||(f?s(s([],o(l),!1),[i],!1):s([i],o(l),!1))},fixRight:c};return Nt.doUpdate(e,d)},n.insertVirtually=function(t,i){var n=i.beforeIndex,r=i.afterIndex,o=i.items,s=i.decrease,a=t.buffer,l=t.state,c=t.viewport,u=Number.isInteger(n)?e.Direction.backward:e.Direction.forward,f=u===e.Direction.backward?n:r;if(!a.insertVirtually(o,f,u,!!s))return!1;var d=l.fetch,p=c.getEdgeVisibleItem(a.items,e.Direction.backward),h=p.index,g=p.diff;return d.firstVisible.index=h,isNaN(h)||(d.simulate=!0,d.firstVisible.delta=-a.getSizeByIndex(h)+g),!0},n}(bt(he.insert)),Pt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=i.process,r=i.options,o=t.parseInput(e,r,!1,n).params;if(o){var s=t.doAppend(e,n,o);e.workflow.call({process:t.process,status:s?ge.next:ge.done})}},t.doAppend=function(e,t,i){var n,r,a=i.bof,l=i.eof,c=i.increase,u=i.decrease,f=e.buffer,d=t===he.prepend,p=d?!c:u,h=i.items;return d?(n=(a?f.absMinIndex:f.minIndex)+(f.size?0:1),h=s([],o(h),!1).reverse()):r=(l?f.absMaxIndex:f.maxIndex)-(f.size||p?0:1),Vt.doInsert(e,{items:h,beforeIndex:n,afterIndex:r,decrease:p,virtualize:i.virtualize})},t}(bt(he.append)),Mt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(t){var i=t.workflow,r=t.buffer,o=t.state,s=t.viewport,a=1/0,l=-1/0;if(r.items.forEach(function(e){var t=e.size;e.setSize(),e.size!==t&&(r.cacheItem(e),a=Math.min(a,e.$index),l=Math.max(l,e.$index))}),Number.isFinite(a)){var c=o.fetch;c.first.indexBuffer=r.firstIndex,c.last.indexBuffer=r.lastIndex;var u=s.getEdgeVisibleItem(r.items,e.Direction.backward),f=u.index,d=u.diff;c.firstVisible.index=f,isNaN(f)||(c.firstVisible.delta=-r.getSizeByIndex(f)+d),c.check(r.items.filter(function(e){return e.$index>=a&&e.$index<=l}))}t.logger.stat("check"),i.call({process:n.process,status:Number.isFinite(a)?ge.next:ge.done})},n}(bt(he.check)),Ot=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e,t){var i=n.parseInput(e,t).params;if(i){var r=n.doRemove(e,i);e.workflow.call({process:n.process,status:r?ge.next:ge.done})}},n.doRemove=function(e,t){e.state.fetch.firstVisible.index=NaN;var i=n.removeBufferedItems(e,t),r=i.length>0;if(r&&(t.indexes&&t.indexes.length&&(t.indexes=t.indexes.filter(function(e){return!i.includes(e)})),t.indexes&&t.indexes.length)){var o=(t.increase?1:0)*i.length,s=(t.increase?0:-1)*i.length;t.indexes=t.indexes.map(function(e){return e+(e<i[0]?o:s)})}var a=n.removeVirtualItems(e,t);return!(!r&&!a)&&(e.logger.stat("after remove"),!0)},n.removeBufferedItems=function(e,t){var i=t.predicate,n=t.indexes,r=t.increase;if(!i&&!n)return[];var a=function(e){return i&&i(e)||!!n&&n.includes(e.$index)},l=e.buffer.items.reduce(function(e,t){return a(t)?s(s([],o(e),!1),[t.$index],!1):e},[]),c={predicate:function(e){return!a(e)},fixRight:r};return Nt.doUpdate(e,c),l},n.removeVirtualItems=function(t,i){var r=i.indexes,o=i.increase;if(!r||!r.length)return!1;for(var s=t.buffer,a=t.viewport,l=t.state,c=s.finiteAbsMinIndex,u=s.firstIndex,f=s.finiteAbsMaxIndex,d=s.lastIndex,p=[],h=0,g=r.length;h<g;h++){if((x=r[h])>=c&&!isNaN(u)&&x<u)p.push(x);else{if(!(x<=f&&!isNaN(d)&&x>d))continue;p.push(x)}}if(!p.length)return!1;var m=l.fetch;if(isNaN(m.firstVisible.index)){var v=a.getEdgeVisibleItem(s.items,e.Direction.backward),x=v.index,y=v.diff;m.firstVisible.index=x,isNaN(x)||(m.firstVisible.delta=-s.getSizeByIndex(x)+y)}return t.logger.log(function(){return"going to remove ".concat(p.length," item(s) virtually")}),s.removeVirtually(p,!!o),s.checkDefaultSize(),n.shiftFirstVisibleIndex(t,p,!!o),!0},n.shiftFirstVisibleIndex=function(e,t,i){var n=e.state.fetch.firstVisible;if(!isNaN(n.index)){var r=t.reduce(function(e,t){return e+(i&&t>n.index||!i&&t<n.index?1:0)},0);n.index=n.index+(i?r:-r)}},n}(bt(he.remove)),$t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=t.parseInput(e,i).params;e.state.clip.forceForward=!(n&&n.backwardOnly),e.state.clip.forceBackward=!(n&&n.forwardOnly),e.workflow.call({process:t.process,status:ge.next})},t}(bt(he.clip)),At=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=t.parseInput(e,i).params;if(n){var r=t.doReplace(e,n);e.workflow.call({process:t.process,status:r?ge.next:ge.done})}},t.doReplace=function(e,t){var i=e.buffer.items.filter(function(e){return t.predicate(e)}).map(function(e){return e.$index});if(!i.length)return e.logger.log("no items to be replaced"),!1;var n=!1,r={predicate:function(e){var r=e.$index;return!i.includes(r)||!n&&(n=!0,t.items)},fixRight:t.fixRight};return Nt.doUpdate(e,r)},t}(bt(he.replace)),Dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,t){if(!!!(null==t?void 0:t.resume)&&!e.state.paused.get())return e.logger.log("pause scroller"),e.state.paused.set(!0),void e.workflow.call({process:he.pause,status:ge.done});e.logger.log("resume scroller"),e.state.paused.set(!1),e.workflow.call({process:he.pause,status:ge.next})},t}(bt(he.pause)),Rt=ft[he.fix],Ct=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var n=e.workflow,r=t.parseInput(e,i),s=r.data;r.params&&(Object.entries(s.params).forEach(function(i){var n=o(i,2),r=n[0],a=n[1];a.isSet&&a.isValid&&t.runByType(e,r,a.value,s)}),n.call({process:t.process,status:ge.done}))},t.runByType=function(e,i,n,r){switch(i){case Rt.scrollPosition:return t.setScrollPosition(e,n);case Rt.minIndex:return t.setMinIndex(e,n);case Rt.maxIndex:return t.setMaxIndex(e,n);case Rt.updater:return t.updateItems(e,n);case Rt.scrollToItem:if(r.params){var o=r.params[Rt.scrollToItemOpt],s=o?o.value:void 0;return t.scrollToItem(e,n,s)}return;case Rt.scrollToItemOpt:return}},t.setScrollPosition=function(e,t){var i=e.viewport,n=t;t===-1/0?n=0:t===1/0&&(n=i.getScrollableSize()),i.setPosition(n)},t.setMinIndex=function(e,t){var i=e.buffer;e.settings.minIndex=t,i.absMinIndex=t},t.setMaxIndex=function(e,t){var i=e.buffer;e.settings.maxIndex=t,i.absMaxIndex=t},t.updateItems=function(e,t){var i=e.buffer,n=e.logger,r=!1,a=function(){return r=!0};i.items.forEach(function(e){return t(e.get(),a)}),r&&(n.log(function(){return"update Buffer.items reference"}),i.items=s([],o(i.items),!1))},t.scrollToItem=function(e,t,i){var n=e.buffer.items.find(function(e){return t(e.get())});n?n.scrollTo(i):e.logger.log(function(){return"scrollToItem cancelled, item not found"})},t}(bt(he.fix)),Tt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.state.startInnerLoop();e.workflow.call({process:t.process,status:ge.next,payload:i})},t}(yt(pe.start)),jt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e){var t=e.workflow,i=e.buffer,r=e.state,o=r.fetch,s=r.cycle;o.minIndex=i.minIndex,n.setPositionsAndIndexes(e),n.skipBufferedItems(e),e.settings.infinite&&n.checkBufferGaps(e),n.checkFetchPackSize(e),n.setFetchDirection(e),t.call({process:n.process,status:n.getStatus(e),payload:{process:s.initiator}})},n.setPositionsAndIndexes=function(e){n.setPositions(e),n.setFirstIndex(e),n.setLastIndex(e),e.logger.fetch()},n.setPositions=function(e){var t=e.state,i=e.viewport,r=t.fetch.positions,o=i.getBufferPadding();r.before=i.scrollPosition,r.startDelta=n.getStartDelta(e),r.relative=r.before-r.startDelta,r.start=r.relative-o,r.end=r.relative+i.getSize()+o},n.getStartDelta=function(e){var t=e.buffer,i=e.viewport.offset,n=0;if(i&&(n+=i),!t.defaultSize)return n;for(var r=t.finiteAbsMinIndex;r<t.startIndex;r++)n+=t.getSizeByIndex(r);return e.logger.log(function(){return s(["start delta is ".concat(n)],o(i?[" (+".concat(i," offset)")]:[]),!1)}),n},n.setFirstIndex=function(e){var t=e.state,i=e.buffer,n=t.fetch,r=n.positions,o=n.first,s=r.start,a=i.startIndex,l=0;if(t.cycle.innerLoop.isInitial)e.logger.log("skipping fetch backward direction [initial loop]");else if(i.defaultSize)for(var c=l,u=a;;){if(s>=0){var f=i.getSizeByIndex(u);if(c+f-s>0){a=u,l=c;break}if(c+=f,++u<i.absMinIndex)break}if(s<0){if(--u<i.absMinIndex)break;if(a=u,l=c-=i.getSizeByIndex(u),c-s<=0)break}}else e.logger.log("skipping fetch backward direction [no item size]");o.index=o.indexBuffer=Math.max(a,i.absMinIndex),o.position=l},n.setLastIndex=function(e){var t,i=e.state,n=e.buffer,r=e.settings,o=i.fetch,s=i.cycle,a=o.firstVisible,l=o.positions,c=o.first,u=o.last,f=l.relative,d=l.end;if(n.defaultSize){var p=c.indexBuffer,h=c.position;for(t=p;;){t=p;var g=n.getSizeByIndex(p);if(h+=g,isNaN(a.index)&&h>f&&(a.index=p,s.innerLoop.isInitial||(a.delta=h-g-f)),h>=d)break;if(p++>n.absMaxIndex)break}}else t=n.startIndex+r.bufferSize-1,e.logger.log("forcing fetch forward direction [no item size]");u.index=u.indexBuffer=Math.min(t,n.absMaxIndex)},n.skipBufferedItems=function(e){var t=e.buffer;if(t.size){for(var i=e.state.fetch,n=i.first.index,r=i.last.index,o=[[]],s=0,a=n;a<=r;a++)t.get(a)?o[s].length&&(o[++s]=[]):o[s].push(a);var l=o[0];o[0].length&&o[1]&&o[1].length&&(i.hasAnotherPack=!0,o[1].length>=o[0].length&&(l=o[1])),i.first.index=Math.max(l[0],t.absMinIndex),i.last.index=Math.min(l[l.length-1],t.absMaxIndex),i.first.index===n&&i.last.index===r||e.logger.fetch("after Buffer flushing")}},n.checkBufferGaps=function(e){var t=e.buffer,i=e.state.fetch;if(t.size){var n=i.first.index,r=t.lastIndex;n>r&&(i.first.index=i.first.indexBuffer=r+1);var o=t.firstIndex,s=i.last.index;s<o&&(i.last.index=i.last.indexBuffer=o-1),i.first.index===n&&i.last.index===s||e.logger.fetch("after Buffer filling (no clip case)")}},n.checkFetchPackSize=function(e){var t=e.buffer,i=e.state.fetch;if(i.shouldFetch){var r=i.first.index,o=i.last.index,s=e.settings.bufferSize-(o-r+1);if(!(s<=0)){if(!t.size||o>t.items[0].$index){var a=Math.min(o+s,t.absMaxIndex);a>o&&(i.last.index=i.last.indexBuffer=a)}else{var l=Math.max(r-s,t.absMinIndex);l<r&&(i.first.index=i.first.indexBuffer=l)}i.first.index===r&&i.last.index===o||(e.logger.fetch("after bufferSize adjustment"),n.skipBufferedItems(e))}}},n.setFetchDirection=function(t){var i=t.buffer,n=t.state.fetch;if(n.last.index){var r=e.Direction.forward;i.size&&(r=n.last.index<i.items[0].$index?e.Direction.backward:e.Direction.forward),n.direction=r,t.logger.log(function(){return'fetch direction is "'.concat(r,'"')})}},n.getStatus=function(e){var t=e.state,i=t.cycle,n=t.fetch;return i.initiator===he.clip?(e.logger.log(function(){return'going to skip fetch due to "'.concat(he.clip,'" process')}),ge.next):n.shouldFetch?(e.logger.log(function(){return"going to fetch ".concat(n.count," items started from index ").concat(n.index)}),ge.next):ge.done},n}(yt(pe.preFetch)),Ft=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow,n={success:function(n){e.logger.log(function(){return"resolved ".concat(n.length," items ")+"(index = ".concat(e.state.fetch.index,", count = ").concat(e.state.fetch.count,")")}),e.state.fetch.newItemsData=n,i.call({process:t.process,status:ge.next})},fail:function(e){return i.call({process:t.process,status:ge.error,payload:{error:e}})}},r=t.get(e);t.complete(e,n,r)},t.complete=function(e,t,i){if(Object.prototype.hasOwnProperty.call(i,"data")){var n=i,r=n.data,o=n.error;n.isError?t.fail(o):t.success(r||[])}else{var s=e.state,a=e.viewport,l=s.scroll,c=s.fetch;null===l.positionBeforeAsync&&(l.positionBeforeAsync=a.scrollPosition),c.cancel=function(){t.success=function(){return null},t.fail=function(){return null}},i.then(function(e){return t.success(e)},function(e){return t.fail(e)})}},t.get=function(e){var t,i,n,r,o=e.datasource.get,s=e.state.fetch,a=function(e){n?n(e):t=e||null},l=function(e){r?r(e):i=e||null},c=o(s.index,s.count,a,l);if(c&&"object"==typeof c&&null!==c){if("function"==typeof c.then)return c;if("function"==typeof c.subscribe){var u=void 0;u=c.subscribe(a,l,function(){u&&"object"==typeof u&&"function"==typeof u.unsubscribe&&u.unsubscribe()})}}return t||i?{data:i?null:t||[],error:i,isError:!!i}:new Promise(function(e,t){n=e,r=t})},t}(yt(pe.fetch)),Lt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow;t.setItems(e)?(t.setBufferLimits(e),i.call({process:t.process,status:e.state.fetch.hasNewItems?ge.next:ge.done})):i.call({process:t.process,status:ge.error,payload:{error:"Can not set buffer items"}})},t.setBufferLimits=function(e){var t=e.buffer,i=e.state,n=i.fetch,r=i.cycle,o=n.items,s=n.first,a=n.last;if(o.length){var l=o.length-1;s.index<o[0].$index&&(t.absMinIndex=o[0].$index),a.index>o[l].$index&&(t.absMaxIndex=o[l].$index)}else(a.index<t.minIndex||r.innerLoop.isInitial)&&(t.absMinIndex=t.minIndex),(s.index>t.maxIndex||r.innerLoop.isInitial)&&(t.absMaxIndex=t.maxIndex)},t.setItems=function(e){var t=e.buffer,i=e.state,n=i.fetch,r=i.cycle,o=n.newItemsData;if(!o||!o.length)return!0;var s=n.index;return o.length<n.count&&(r.innerLoop.isInitial?s=t.startIndex:n.first.index<t.minIndex&&(s=t.firstIndex-o.length)),n.items=o.map(function(t,i){return new Et(s+i,t,e.routines)}),t.setItems(n.items)},t}(yt(pe.postFetch)),Bt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow,n=e.state,r=e.viewport,o=e.routines,s=n.cycle,a=n.render,l=n.scroll,c=n.fetch;e.logger.stat("before new items render"),null===l.positionBeforeAsync&&(l.positionBeforeAsync=r.scrollPosition),a.cancel=o.render(function(){a.cancel=null,t.doRender(e)?i.call({process:t.process,status:a.noSize?ge.done:ge.next,payload:{process:s.initiator}}):i.call({process:t.process,status:ge.error,payload:{error:"Can not associate item with element"}})},{items:c.items.map(function(e){return e.get()})})},t.doRender=function(e){var i=e.state,n=e.viewport,r=e.buffer,o=e.logger,s=i.fetch,a=i.render;return a.positionBefore=n.scrollPosition,!(!s.isCheck&&(a.sizeBefore=n.getScrollableSize(),!s.items.every(function(i){return t.processElement(e,i)})))&&(r.checkDefaultSize(),a.sizeAfter=n.getScrollableSize(),o.stat("after new items render"),o.log(function(){return a.noSize?"viewport size has not been changed":void 0}),!0)},t.processElement=function(e,t){var i=e.viewport,n=e.buffer,r=i.findItemElementById(t.nodeId);return!!r&&(t.element=r,t.makeVisible(),t.setSize(n.getSizeByIndex(t.$index)),n.cacheItem(t),!0)},t}(yt(pe.render)),_t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e,i){var r=(void 0===i?{}:i).error,o=e.workflow,s=e.state.cycle.interrupter;if(r||s||t.calculateParams(e),function(e){return!!e.call.interrupted}(o))o.call({process:t.process,status:ge.done});else{var a=t.shouldContinueRun(e,r);e.state.endInnerLoop(),o.call({process:t.process,status:a?ge.next:ge.done,payload:n({},s?{process:s}:{})})}},t.calculateParams=function(e){var t=e.adapter,i=e.workflow;t.setFirstOrLastVisible({first:!0,workflow:i}),t.setFirstOrLastVisible({last:!0,workflow:i})},t.shouldContinueRun=function(e,t){var i=e.state,n=i.cycle,r=i.fetch,o=i.render;return!!n.interrupter||!t&&(!(!r.simulate||!r.isCheck||o.noSize)||(!(!r.simulate||!r.doRemove)||!(r.simulate||!(r.hasNewItems&&!o.noSize||r.hasAnotherPack))))},t}(yt(pe.end)),Wt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.run=function(e){var i=e.workflow,n=e.viewport,r=e.state;r.scroll.positionBeforeAdjust=n.scrollPosition,t.setPaddings(e),r.scroll.positionAfterAdjust=n.scrollPosition;var o=t.calculatePosition(e);t.setAdditionalForwardPadding(e,o),t.setPosition(e,o,function(){return i.call({process:t.process,status:ge.done})})},t.setPaddings=function(e){var t,i,n=e.viewport,r=e.buffer,o=e.settings,s=e.state,a=r.getFirstVisibleItem(),l=r.getLastVisibleItem();if(a&&l)t=a.$index,i=l.$index;else{var c=s.fetch;i=(t=isNaN(c.firstVisible.index)?r.startIndex:c.firstVisible.index)-1}var u,f=n.paddings,d=f.forward,p=f.backward,h=0,g=0;for(u=r.finiteAbsMinIndex;u<t;u++)h+=r.getSizeByIndex(u);for(u=i+1;u<=r.finiteAbsMaxIndex;u++)g+=r.getSizeByIndex(u);var m=h+(n.getScrollableSize()-d.size-p.size)+g,v=n.getSize()-m;v>0&&(o.inverse?h+=v:g+=v,e.logger.log(function(){return o.inverse?"backward":"forward"+" padding will be increased by ".concat(v," to fill the viewport")})),p.size=h,d.size=g,e.logger.stat("after paddings adjustments")},t.calculatePosition=function(e){var t=e.viewport,i=e.buffer,n=e.state,r=n.fetch,o=n.render,s=n.scroll,a=t.paddings.backward.size;if(!isNaN(r.firstVisible.index)&&!isNaN(i.firstIndex)){e.logger.log("first index = ".concat(r.firstVisible.index,", delta = ").concat(r.firstVisible.delta));var l=r.shouldCheckPreSizeExpectation(i.lastIndex);i.items.forEach(function(e){e.$index<r.firstVisible.index?a+=e.size:(e.$index===r.firstVisible.index&&r.firstVisible.delta&&(a-=r.firstVisible.delta),l&&e.preSize&&r.items.includes(e)&&(a+=e.size-e.preSize))})}if(null!==s.positionBeforeAsync){var c=o.positionBefore-s.positionBeforeAsync;0!==c&&(e.logger.log("shift position due to fetch-render difference (".concat(c,")")),a+=c)}return t.offset>0&&(a||r.positions.before)&&(a+=t.offset),Math.round(a)},t.setAdditionalForwardPadding=function(e,t){var i=e.viewport,n=e.buffer;if(e.state.cycle.isInitial&&_t.shouldContinueRun(e,null)){var r=t-i.getMaxScrollPosition();if(!(r<=0)){var o=n.getLastVisibleItem();if(o){for(var s=0,a=o.$index+1;s<=r&&a<=n.absMaxIndex;)s+=n.getSizeByIndex(a++);var l=Math.min(s,r);l&&(i.paddings.forward.size+=l,e.logger.log("increase fwd padding due to lack of items (".concat(r," -> ").concat(l,")")))}}}},t.setPosition=function(e,t,i){var n=e.state,r=e.viewport,o=e.routines,s=n.scroll;if(!s.hasPositionChanged(t))return i();s.syntheticPosition=t,s.syntheticFulfill=!1,s.cancelAnimation=o.animate(function(){s.cancelAnimation=null;var n=s.positionAfterAdjust-r.scrollPosition,o="";n>0&&(t-=n,s.syntheticPosition=t,o=" (-".concat(n,")")),s.syntheticFulfill=!0,r.scrollPosition=t,e.logger.stat("after scroll adjustment"+o),i()})},t}(yt(pe.adjust)),Ut=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e){n.prepareClip(e),e.workflow.call({process:n.process,status:ge.next,payload:{doClip:e.state.clip.doClip}})},n.prepareClip=function(t){var i=t.state,r=i.fetch,o=i.clip;if(!n.shouldNotClip(t)){var s=r.first.indexBuffer,a=r.last.indexBuffer;t.logger.log(function(){return"looking for ".concat(r.direction?"anti-"+r.direction+" ":"","items ")+"that are out of [".concat(s,"..").concat(a,"] range")}),n.isBackward(t,s)&&n.prepareClipByDirection(t,e.Direction.backward,s),n.isForward(t,a)&&n.prepareClipByDirection(t,e.Direction.forward,a),o.doClip||t.logger.log("skipping clip [no items to clip]")}},n.shouldNotClip=function(e){var t=e.settings,i=e.buffer,n=e.state;return t.infinite&&!n.clip.force?(e.logger.log("skipping clip [infinite mode]"),!0):i.size?!!n.cycle.isInitial&&(e.logger.log("skipping clip [initial cycle]"),!0):(e.logger.log("skipping clip [empty buffer]"),!0)},n.isBackward=function(t,i){var n=t.buffer,r=t.state,o=r.clip,s=r.fetch;return o.force?o.forceBackward:s.direction!==e.Direction.backward&&i-1>=n.absMinIndex},n.isForward=function(t,i){var n=t.buffer,r=t.state,o=r.clip,s=r.fetch;return o.force?o.forceForward:s.direction!==e.Direction.forward&&i+1<=n.absMaxIndex},n.prepareClipByDirection=function(t,i,n){var r=i===e.Direction.forward;t.buffer.items.forEach(function(e){(!r&&e.$index<n||r&&e.$index>n)&&(e.toRemove=!0,e.removeDirection=i,t.state.clip.doClip=!0)})},n}(yt(pe.preClip)),qt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.run=function(e){var t=e.workflow;n.doClip(e),t.call({process:n.process,status:ge.next})},n.doClip=function(t){var i,n=t.buffer,r=t.viewport,o=t.state,s=t.logger,a=((i={})[e.Direction.backward]=0,i[e.Direction.forward]=0,i);s.stat("before clip (".concat(++o.clip.callCount,")"));var l=n.items.filter(function(e){return!!e.toRemove&&(e.hide(),a[e.removeDirection]+=e.size,!0)});l.length&&(a[e.Direction.backward]&&(r.paddings.byDirection(e.Direction.backward).size+=a[e.Direction.backward]),a[e.Direction.forward]&&(r.paddings.byDirection(e.Direction.forward).size+=a[e.Direction.forward]),t.settings.onBeforeClip&&t.settings.onBeforeClip(l.map(function(e){return e.get()}))),n.clip(),s.log(function(){var e=l.map(function(e){return e.$index});return e.length?["clipped ".concat(e.length," item(s) from Buffer")+(a.backward?", +".concat(a.backward," fwd px"):"")+(a.forward?", +".concat(a.forward," bwd px"):"")+", range: [".concat(e[0],"..").concat(e[e.length-1],"]")]:"clipped 0 items from Buffer"}),s.stat("after clip")},n}(yt(pe.clip)),Gt=function(){function e(e,t,i){var n=this;this.logs=[],this.logAdapterMethod=function(e,t,i){if(n.debug){var r=(void 0===t?[]:Array.isArray(t)?t:[t]).map(function(e){return"function"==typeof e?"func":"object"==typeof e&&e?Array.isArray(e)?"[of ".concat(e.length,"]"):"{ "+Object.keys(e).join(", ")+" }":e}).join(", ");n.log("adapter: ".concat(e,"(").concat(r||"",")").concat(i||""))}};var r=e.settings;this.debug=r.debug,this.immediateLog=r.immediateLog,this.logTime=r.logTime,this.logColor=r.logColor,this.getTime=function(){return e.state&&" // time: ".concat(e.state.time)},this.getStat=function(){var t=e.buffer,i=e.viewport,n=t.getFirstVisibleItem(),r=t.getLastVisibleItem();return"pos: "+i.scrollPosition+", size: "+i.getScrollableSize()+", bwd_p: "+i.paddings.backward.size+", fwd_p: "+i.paddings.forward.size+", default: "+(t.defaultSize||"no")+", items: "+t.getVisibleItemsCount()+", range: "+(n&&r?"[".concat(n.$index,"..").concat(r.$index,"]"):"no")},this.getFetchRange=function(){var t=e.state.fetch,i=t.first.index,n=t.last.index;return Number.isNaN(i)||Number.isNaN(n)?"no":"[".concat(i,"..").concat(n,"]")},this.getLoopId=function(){return e.state.cycle.loopId},this.getLoopIdNext=function(){return e.state.cycle.loopIdNext},this.getWorkflowCycleData=function(){return"".concat(r.instanceIndex,"-").concat(e.state.cycle.count)},this.getScrollPosition=function(){return e.routines.getScrollPosition()},this.log(function(){return"vscroll Workflow has been started, "+"core: ".concat(t.core.name," v").concat(t.core.version,", ")+"consumer: ".concat(t.consumer.name," v").concat(t.consumer.version,", ")+"scroller instance: ".concat(r.instanceIndex,", adapter ")+(i?"instance: ".concat(i.id):"is not instantiated")})}return e.prototype.object=function(e,t,i){this.log(function(){return[e,i?JSON.stringify(t,function(e,t){return Number.isNaN(t)?"NaN":t===1/0?"Infinity":t===-1/0?"-Infinity":t instanceof Element?"HTMLElement":t instanceof HTMLDocument?"HTMLDocument":"function"==typeof t?"Function":t}).replace(/"/g,"").replace(/(\{|:|,)/g,"$1 ").replace(/(\})/g," $1"):t]})},e.prototype.stat=function(e){var t=this;if(this.debug)if(this.logColor){var i=["color: #888; border: dashed #888 0; border-bottom-width: 0px","color: #000; border-width: 0"];this.log(function(){return s(["%cstat"+(e?" ".concat(e):"")+",%c "+t.getStat()],o(i),!1)})}else this.log(function(){return["stat"+(e?" ".concat(e):"")+", "+t.getStat()]})},e.prototype.fetch=function(e){var t=this;if(this.debug){var i="fetch interval"+(e?" ".concat(e):"");if(this.logColor){var n=["color: #888","color: #000"];this.log(function(){return s(["%c".concat(i,": %c").concat(t.getFetchRange())],o(n),!1)})}else this.log(function(){return["".concat(i,": ").concat(t.getFetchRange())]})}},e.prototype.prepareForLog=function(e){return e instanceof Event&&e.target?this.getScrollPosition():e},e.prototype.logProcess=function(e){var t=this;if(this.debug){var i=e.process,n=e.status,r=e.payload,a=[];if(i===pe.init&&n===ge.next){var l="---=== loop ".concat(this.getLoopIdNext()," start");a.push(this.logColor?"%c".concat(l):l)}else if(i===pe.end){var c="---=== loop ".concat(this.getLoopId()," done");a.push(this.logColor?"%c".concat(c):c);var u=r&&r.process;n===ge.next&&u!==he.reset&&u!==he.reload&&(a[0]+=", loop ".concat(this.getLoopIdNext()," start"))}a.length&&this.log(function(){return t.logColor?s(s([],o(a),!1),["color: #006600;"],!1):a})}},e.prototype.logCycle=function(e){void 0===e&&(e=!0);var t=this.getWorkflowCycleData();if(this.logColor){var i="color: #0000aa; border: solid #555 1px; border-width: ".concat(e?"1px 0 0 1px":"0 0 1px 1px","; margin-left: -2px");this.log(function(){return["%c ~~~ WF Cycle ".concat(t," ").concat(e?"STARTED":"FINALIZED"," ~~~ "),i]})}else this.log(function(){return[" ~~~ WF Cycle ".concat(t," ").concat(e?"STARTED":"FINALIZED"," ~~~ ")]})},e.prototype.logError=function(e){var t=this;if(this.debug)if(this.logColor){var i=["color: #a00;","color: #000"];this.log(function(){return s(["error:%c"+(e?" ".concat(e):"")+"%c (loop ".concat(t.getLoopIdNext(),")")],o(i),!1)})}else this.log(function(){return["error:"+(e?" ".concat(e):"")+" (loop ".concat(t.getLoopIdNext(),")")]})},e.prototype.log=function(){for(var e=this,t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];if(this.debug){if("function"==typeof t[0]&&(t=t[0](),Array.isArray(t)||(t=[t])),t.every(function(e){return void 0===e}))return;this.logTime&&(t=s(s([],o(t),!1),[this.getTime()],!1)),t=t.map(function(t){return e.prepareForLog(t)}),this.immediateLog?console.log.apply(this,t):this.logs.push(t)}},e.prototype.logForce=function(){for(var e=this,t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];this.debug&&(!this.immediateLog&&this.logs.length&&(this.logs.forEach(function(t){return console.log.apply(e,t)}),this.logs=[]),t.length&&console.log.apply(this,t))},e.prototype.getLogs=function(){return this.logs},e}(),Xt=function(){function t(e,t){this.element=e,this.settings={viewport:t.viewport,horizontal:t.horizontal,window:t.windowViewport},this.viewport=this.getViewportElement(),this.onInit(t)}return t.prototype.checkElement=function(e){if(!e)throw new Error("HTML element is not defined")},t.prototype.getViewportElement=function(){if(this.settings.window)return document.documentElement;if(this.settings.viewport)return this.settings.viewport;this.checkElement(this.element);var e=this.element.parentElement;return this.checkElement(e),e},t.prototype.onInit=function(e){e.windowViewport&&"scrollRestoration"in history&&(history.scrollRestoration="manual"),e.dismissOverflowAnchor&&(this.viewport.style.overflowAnchor="none")},t.prototype.findElementBySelector=function(e,t){return this.checkElement(e),e.querySelector(t)},t.prototype.findPaddingElement=function(e){return this.findElementBySelector(this.element,"[data-padding-".concat(e,"]"))},t.prototype.findItemElement=function(e){return this.findElementBySelector(this.element,'[data-sid="'.concat(e,'"]'))},t.prototype.findItemChildBySelector=function(e,t){return this.findElementBySelector(this.element,'[data-sid="'.concat(e,'"] ').concat(t))},t.prototype.getScrollPosition=function(){return this.settings.window?this.settings.horizontal?window.pageXOffset:window.pageYOffset:this.viewport[this.settings.horizontal?"scrollLeft":"scrollTop"]},t.prototype.setScrollPosition=function(e){e=Math.max(0,e),this.settings.window?this.settings.horizontal?window.scrollTo(e,window.scrollY):window.scrollTo(window.scrollX,e):this.viewport[this.settings.horizontal?"scrollLeft":"scrollTop"]=e},t.prototype.getElementParams=function(e){return this.checkElement(e),e.getBoundingClientRect()},t.prototype.getWindowParams=function(){var e=window.innerHeight,t=window.innerWidth;return{height:e,width:t,top:0,bottom:e,left:0,right:t,x:0,y:0,toJSON:function(){return null}}},t.prototype.getSize=function(e){return this.getElementParams(e)[this.settings.horizontal?"width":"height"]},t.prototype.getScrollerSize=function(){return this.getElementParams(this.element)[this.settings.horizontal?"width":"height"]},t.prototype.getViewportSize=function(){return this.settings.window?this.getWindowParams()[this.settings.horizontal?"width":"height"]:this.getSize(this.viewport)},t.prototype.getSizeStyle=function(e){this.checkElement(e);var t=e.style[this.settings.horizontal?"width":"height"];return parseFloat(t)||0},t.prototype.setSizeStyle=function(e,t){this.checkElement(e),t=Math.max(0,Math.round(t)),e.style[this.settings.horizontal?"width":"height"]="".concat(t,"px")},t.prototype.getEdge=function(t,i){var n=this.settings.horizontal;return this.getElementParams(t)[i===e.Direction.forward?n?"right":"bottom":n?"left":"top"]},t.prototype.getViewportEdge=function(t){var i=this.settings,n=i.window,r=i.horizontal;return n?this.getWindowParams()[t===e.Direction.forward?r?"right":"bottom":r?"left":"top"]:this.getEdge(this.viewport,t)},t.prototype.makeElementVisible=function(e){this.checkElement(e),e.style.left="",e.style.top="",e.style.position=""},t.prototype.hideElement=function(e){this.checkElement(e),e.style.display="none"},t.prototype.getOffset=function(){var e=this,t=function(t){return(e.settings.horizontal?t.offsetLeft:t.offsetTop)||0};return t(this.element)-(this.settings.window?0:t(this.viewport))},t.prototype.scrollTo=function(e,t){this.checkElement(e),e.scrollIntoView(t)},t.prototype.render=function(e,t){var i=setTimeout(function(){return e()});return function(){return clearTimeout(i)}},t.prototype.animate=function(e){var t=requestAnimationFrame(function(){return e()});return function(){return cancelAnimationFrame(t)}},t.prototype.onScroll=function(e){var t=this.settings.window?window:this.viewport;return t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},t}(),Ht=function(){function e(e,t){var i=t.findPaddingElement(e);t.checkElement(i),this.element=i,this.direction=e,this.routines=t}return e.prototype.reset=function(e){this.size=e||0},Object.defineProperty(e.prototype,"size",{get:function(){return this.routines.getSizeStyle(this.element)},set:function(e){this.routines.setSizeStyle(this.element,e)},enumerable:!1,configurable:!0}),e}(),Yt=function(){function t(t,i){this.settings=i,this.forward=new Ht(e.Direction.forward,t),this.backward=new Ht(e.Direction.backward,t)}return t.prototype.byDirection=function(t,i){return t===e.Direction.backward?i?this.forward:this.backward:i?this.backward:this.forward},t.prototype.reset=function(e,t,i){var n,r=this.getPositiveSize(t,e,i),o=this.getNegativeSize(t);this.settings.inverse?(this.forward.reset(o),this.backward.reset(r),(n=e-this.backward.size-i)>0&&(this.backward.size+=n,this.forward.size-=n)):(this.forward.reset(r),this.backward.reset(o),(n=e-this.forward.size-i)>0&&(this.backward.size-=n,this.forward.size+=n))},t.prototype.getPositiveSize=function(e,t,i){var n=this.settings,r=t;return isFinite(n.maxIndex)&&(r=(n.maxIndex-e+1)*n.itemSize),i&&(r=Math.max(r-i,0)),r},t.prototype.getNegativeSize=function(e){var t=this.settings,i=0;return isFinite(t.minIndex)&&(i=(e-t.minIndex)*t.itemSize),i},t}(),Jt=function(){function t(e,t,i,n){this.settings=e,this.routines=t,this.state=i,this.logger=n,this.paddings=new Yt(this.routines,e)}return t.prototype.reset=function(e){this.setOffset(),this.paddings.reset(this.getSize(),e,this.offset),this.scrollPosition=this.paddings.backward.size||0,this.state.scroll.reset()},t.prototype.setPosition=function(e){if(this.scrollPosition===e)return this.logger.log(function(){return["setting scroll position at",e,"[cancelled]"]}),e;this.routines.setScrollPosition(e);var t=this.scrollPosition;return this.logger.log(function(){return s(["setting scroll position at",t],o(t!==e?["(".concat(e,")")]:[]),!1)}),t},Object.defineProperty(t.prototype,"scrollPosition",{get:function(){return this.routines.getScrollPosition()},set:function(e){this.setPosition(e)},enumerable:!1,configurable:!0}),t.prototype.getSize=function(){return this.routines.getViewportSize()},t.prototype.getScrollableSize=function(){return this.routines.getScrollerSize()},t.prototype.getMaxScrollPosition=function(){return this.getScrollableSize()-this.getSize()},t.prototype.getBufferPadding=function(){return this.getSize()*this.settings.padding},t.prototype.getEdge=function(e){return this.routines.getViewportEdge(e)},t.prototype.setOffset=function(){this.offset=this.routines.getOffset()},t.prototype.findItemElementById=function(e){return this.routines.findItemElement(e)},t.prototype.getEdgeVisibleItem=function(t,i){for(var n,r=i===e.Direction.backward,o=r?e.Direction.forward:e.Direction.backward,s=this.getEdge(i),a=0,l=r?0:t.length-1;r?l<=t.length-1:l>=0;l+=r?1:-1){if(a=this.routines.getEdge(t[l].element,o)-s,r&&a>0||!r&&a<0){n=t[l];break}}return{item:n,index:n?n.$index:NaN,diff:a}},t}(),Qt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.newItems=[],this.oldItems=[],this.removed=[]},e}(),Zt=function(){function t(e,t){this.itemSize=e,this.sizeStrategy=t,this.sizeMap=new Map,this.recalculation=new Qt}return t.prototype.reset=function(e){e&&(this.constantSize=this.itemSize,this.frequentSize=this.itemSize,this.averageSize=this.itemSize,this.averageSizeFloat=this.itemSize,this.sizeMap.clear()),this.recalculation.reset()},t.prototype.get=function(){switch(this.sizeStrategy){case e.SizeStrategy.Average:return this.averageSize;case e.SizeStrategy.Frequent:return this.frequentSize;default:return this.constantSize}},t.prototype.recalculateAverageSize=function(e){var t=this.recalculation,i=t.oldItems,n=t.newItems,r=t.removed;if(i.length){var o=i.reduce(function(e,t){return e+t.size},0),s=i.reduce(function(e,t){return e+t.newSize},0),a=this.averageSizeFloat||0;this.averageSizeFloat=a-(o-s)/(e-n.length)}if(n.length){s=n.reduce(function(e,t){return e+t.size},0),a=this.averageSizeFloat||0;this.averageSizeFloat=((e-n.length)*a+s)/e}if(r.length){var l=r.reduce(function(e,t){return e+t.size},0);a=this.averageSizeFloat||0;this.averageSizeFloat=((e+r.length)*a-l)/e}this.averageSize=Math.round(this.averageSizeFloat)},t.prototype.recalculateFrequentSize=function(){var e=this,t=this.recalculation,i=t.oldItems,n=t.newItems,r=t.removed,a=this.sizeMap.get(this.frequentSize);n.length&&n.forEach(function(t){var i=t.size;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)}),i.length&&(i.forEach(function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))}),i.forEach(function(t){var i=t.newSize;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)})),r.length&&r.forEach(function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))});var l=s([],o(this.sizeMap.entries()),!1).sort(function(e,t){return t[1]-e[1]}),c=l[0][1],u=l.filter(function(e){return e[1]===c});u.length>1&&u.find(function(e){return e[0]===a})||(this.frequentSize=l[0][0])},t.prototype.recalculate=function(t){if(this.sizeStrategy===e.SizeStrategy.Constant)return!1;var i=this.recalculation,n=i.oldItems,r=i.newItems,o=i.removed;if(!n.length&&!r.length&&!o.length)return!1;var s=this.get();return t?(this.sizeStrategy===e.SizeStrategy.Average?this.recalculateAverageSize(t):this.recalculateFrequentSize(),this.recalculation.reset()):this.reset(!0),this.get()!==s},t.prototype.setExisted=function(t,i){this.sizeStrategy!==e.SizeStrategy.Constant&&this.recalculation.oldItems.push({size:t,newSize:i})},t.prototype.setNew=function(t){this.sizeStrategy!==e.SizeStrategy.Constant?this.recalculation.newItems.push({size:t}):this.constantSize||(this.constantSize=t)},t.prototype.setRemoved=function(t){this.sizeStrategy!==e.SizeStrategy.Constant&&this.recalculation.removed.push({size:t})},t}(),Kt=function(){function e(e,t){this.$index=e.$index,this.data=t?e.data:null,this.size=e.size}return e.prototype.changeIndex=function(e){this.$index=e},e}(),ei=function(){function t(e,t){var i=e.itemSize,n=e.cacheData,r=e.cacheOnReload,o=e.sizeStrategy;this.itemSize=i,this.saveData=n,this.cacheOnReload=r,this.sizeStrategy=o,this.logger=t,this.items=new Map,this.defaultSize=new Zt(i,o),this.reset(!0)}return t.prototype.reset=function(e){(e=e||!this.cacheOnReload)&&(this.minIndex=1/0,this.maxIndex=-1/0,this.items.clear()),this.defaultSize.reset(e)},Object.defineProperty(t.prototype,"size",{get:function(){return this.items.size},enumerable:!1,configurable:!0}),t.prototype.get=function(e){return this.items.get(e)},t.prototype.getSizeByIndex=function(e){var t=this.get(e);return t&&t.size||this.defaultSize.get()},t.prototype.getDefaultSize=function(){return this.defaultSize.get()},t.prototype.recalculateDefaultSize=function(){var e=this;return!!this.defaultSize.recalculate(this.size)&&(this.logger.log(function(){return"default size has been updated: ".concat(e.defaultSize.get())}),!0)},t.prototype.add=function(e){var t=this.get(e.$index);return t?(this.saveData&&(t.data=e.data),t.size!==e.size&&(t.size?this.defaultSize.setExisted(t.size,e.size):this.defaultSize.setNew(e.size),t.size=e.size)):(t=new Kt(e,this.saveData),this.items.set(e.$index,t),this.defaultSize.setNew(e.size)),e.$index<this.minIndex&&(this.minIndex=e.$index),e.$index>this.maxIndex&&(this.maxIndex=e.$index),t},t.prototype.insertItems=function(t,i,n,r){var o=this,s=new Map,a=t.length,l=1/0,c=-1/0,u=function(e){s.set(e.$index,e),l=e.$index<l?e.$index:l,c=e.$index>c?e.$index:c};this.items.forEach(function(t){var o=0;n===e.Direction.backward?t.$index<i&&r?o=-a:t.$index>=i&&!r&&(o=a):n===e.Direction.forward&&(t.$index<=i&&r?o=-a:t.$index>i&&!r&&(o=a)),o&&t.changeIndex(t.$index+o),u(t)}),this.saveData&&t.forEach(function(t,s){var l=i+s-(r?a:0)+(n===e.Direction.forward?1:0),c=new Kt({$index:l,data:t},o.saveData);u(c)}),this.items=s,this.minIndex=l,this.maxIndex=c},t.prototype.removeItems=function(e,t){var i=this,n=new Map,r=1/0,o=-1/0;this.items.forEach(function(s){if(e.some(function(e){return e===s.$index}))s.size&&i.defaultSize.setRemoved(s.size);else{var a=t?e.reduce(function(e,t){return e+(s.$index<t?1:0)},0):e.reduce(function(e,t){return e-(s.$index>t?1:0)},0);s.changeIndex(s.$index+a),n.set(s.$index,s),r=s.$index<r?s.$index:r,o=s.$index>o?s.$index:o}}),this.items=n,this.minIndex=r,this.maxIndex=o},t.prototype.updateSubset=function(e,t,i){var n=this;if(this.size&&e.length){var r,o,s=e[0].$index,a=e[e.length-1].$index;if(t.length){var l=t[0].$index,c=t[t.length-1].$index;r=l-s,o=c-a}else r=i?a-s+1:0,o=i?0:s-a-1;var u=new Map;this.items.forEach(function(e){return e.$index<s?(e.changeIndex(e.$index+r),void u.set(e.$index,e)):e.$index>a?(e.changeIndex(e.$index+o),void u.set(e.$index,e)):void 0}),t.forEach(function(e){return u.set(e.$index,new Kt(e,n.saveData))}),e.filter(function(e){return e.toRemove}).forEach(function(e){return n.defaultSize.setRemoved(e.size)}),this.minIndex+=r,this.maxIndex+=o,this.items=u}},t.prototype.shiftIndexes=function(e){var t=new Map,i=1/0,n=-1/0;this.items.forEach(function(r){r.changeIndex(r.$index+e),t.set(r.$index,r),i=r.$index<i?r.$index:i,n=r.$index>n?r.$index:n}),this.items=t,this.minIndex=i,this.maxIndex=n},t}(),ti=function(){function t(e,t){this.context=e,this.logger=t}return t.prototype.fillEmpty=function(e,t,i){return e.length?Number.isInteger(t)||Number.isInteger(i)?(this.logger.log(function(){return"going to fill the buffer with ".concat(e.length," item(s)")}),!0):(this.logger.log("no items to fill the buffer; wrong indexes"),!1):(this.logger.log("no items to fill the buffer; empty list"),!1)},t.prototype.insertInBuffer=function(e,t,i){var n=Number.isInteger(t)?t:Number.isInteger(i)?i:NaN,r=this.context.items.find(function(t){return e&&e(t.get())||Number.isInteger(n)&&n===t.$index});return r?r.$index:(this.logger.log("no items to insert in buffer; empty predicate result"),NaN)},t.prototype.insertVirtual=function(t,i,n){if(!t.length)return this.logger.log("no items to insert virtually; empty list"),!1;var r=this.context,o=r.firstIndex,s=r.lastIndex,a=r.finiteAbsMinIndex,l=r.finiteAbsMaxIndex;if(i<a||i>l)return this.logger.log(function(){return"no items to insert virtually; "+"selected index (".concat(i,") does not match virtual area [").concat(a,"..").concat(l,"]")}),!1;var c=n===e.Direction.backward;return i<o+(c?1:0)||i>s-(c?0:1)?(this.logger.log(function(){return"going to insert ".concat(t.length," item(s) virtually")}),!0):(this.logger.log("no items to insert virtually; selected index (".concat(i,") belongs Buffer [").concat(o,"..").concat(s,"]")),!1)},t}(),ii=function(){function t(e,t,i){this._items=[],this.logger=i,this.changeItems=t,this.bof=new c(!1),this.eof=new c(!1),this.cache=new ei(e,i),this.checkCall=new ti(this,i),this.startIndexUser=e.startIndex,this.minIndexUser=e.minIndex,this.maxIndexUser=e.maxIndex,this.reset(!0)}return t.prototype.dispose=function(){this.bof.dispose(),this.eof.dispose(),this._items.forEach(function(e){return e.dispose()}),this._items=[]},t.prototype.reset=function(e,t){this.items.forEach(function(e){return e.hide()}),this.pristine=!0,this.items=[],this.cache.reset(e),this.absMinIndex=this.minIndexUser,this.absMaxIndex=this.maxIndexUser,this.setCurrentStartIndex(t),this.bof.set(!1),this.eof.set(!1),this.pristine=!1},t.prototype.setCurrentStartIndex=function(e){var t=this.minIndexUser,i=this.maxIndexUser,n=this.startIndexUser,r=Number(e);Number.isNaN(r)&&(this.logger.log(function(){return"fallback startIndex to settings.startIndex (".concat(n,")")}),r=n),r<t&&(this.logger.log(function(){return"setting startIndex to settings.minIndex (".concat(t,") because ").concat(r," < ").concat(t)}),r=t),r>i&&(this.logger.log(function(){return"setting startIndex to settings.maxIndex (".concat(i,") because ").concat(r," > ").concat(i)}),r=i),this.startIndex=r},Object.defineProperty(t.prototype,"items",{get:function(){return this._items},set:function(e){this._items=e,this.changeItems(e),this.pristine||(this.checkBOF(),this.checkEOF())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"absMinIndex",{get:function(){return this._absMinIndex},set:function(e){this._absMinIndex!==e&&(this._absMinIndex=Number.isFinite(this._absMaxIndex)&&e>this._absMaxIndex?this._absMaxIndex:e),this.pristine||this.checkBOF()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"absMaxIndex",{get:function(){return this._absMaxIndex},set:function(e){this._absMaxIndex!==e&&(this._absMaxIndex=Number.isFinite(this._absMinIndex)&&e<this._absMinIndex?this._absMinIndex:e),this.pristine||this.checkEOF()},enumerable:!1,configurable:!0}),t.prototype.checkBOF=function(){var e=this.items.length?this.items[0].$index===this.absMinIndex:isFinite(this.absMinIndex);this.bof.set(e)},t.prototype.checkEOF=function(){var e=this.items.length?this.items[this.items.length-1].$index===this.absMaxIndex:isFinite(this.absMaxIndex);this.eof.set(e)},Object.defineProperty(t.prototype,"size",{get:function(){return this._items.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cacheSize",{get:function(){return this.cache.size},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"defaultSize",{get:function(){return this.cache.getDefaultSize()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minIndex",{get:function(){return isFinite(this.cache.minIndex)?this.cache.minIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxIndex",{get:function(){return isFinite(this.cache.maxIndex)?this.cache.maxIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"firstIndex",{get:function(){return this.items.length?this.items[0].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastIndex",{get:function(){return this.items.length?this.items[this.items.length-1].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"finiteAbsMinIndex",{get:function(){return isFinite(this.absMinIndex)?this.absMinIndex:this.minIndex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"finiteAbsMaxIndex",{get:function(){return isFinite(this.absMaxIndex)?this.absMaxIndex:this.maxIndex},enumerable:!1,configurable:!0}),t.prototype.get=function(e){return this.items.find(function(t){return t.$index===e})},t.prototype.setItems=function(e){if(this.items.length)if(this.items[0].$index>e[e.length-1].$index)this.items=s(s([],o(e),!1),o(this.items),!1);else{if(!(e[0].$index>this.items[this.items.length-1].$index))return!1;this.items=s(s([],o(this.items),!1),o(e),!1)}else this.items=s([],o(e),!1);return!0},t.prototype.clip=function(){this.items=this.items.filter(function(e){return!e.toRemove})},t.prototype.getIndexToInsert=function(e,t,i){return this.checkCall.insertInBuffer(e,t,i)},t.prototype.shiftExtremum=function(e,t){t?(this.absMinIndex-=e,this.startIndex-=e):this.absMaxIndex+=e,this.startIndex>this.absMaxIndex?this.startIndex=this.absMaxIndex:this.startIndex<this.absMinIndex&&(this.startIndex=this.absMinIndex)},t.prototype.insertVirtually=function(e,t,i,n){if(!this.checkCall.insertVirtual(e,t,i))return!1;var r=0;return t<=this.firstIndex&&!n?r=e.length:t>=this.lastIndex&&n&&(r=-e.length),r&&(this.items.forEach(function(e){return e.updateIndex(e.$index+r)}),this.cache.insertItems(e,t,i,n),this.items=s([],o(this.items),!1)),this.shiftExtremum(e.length,n),!0},t.prototype.removeVirtually=function(e,t){for(var i=this.items.length,n=!1,r=function(i){var r=a.items[i],o=e.reduce(function(e,i){return e+(t?r.$index<i?1:0:r.$index>i?-1:0)},0);n=n||!!o,r.updateIndex(r.$index+o)},a=this,l=t?i-1:0;t?l>=0:l<i;t?l--:l++)r(l);this.shiftExtremum(-e.length,t),n&&(this.items=s([],o(this.items),!1)),this.cache.removeItems(e,t)},t.prototype.fillEmpty=function(e,t,i,n,r){if(!this.checkCall.fillEmpty(e,t,i))return!1;var o=Number.isInteger(t),s=o?t:i,a=n?e.length:o?1:0;return this.items=e.map(function(e,t){return r(s+t+(o?0:1)-a,e)}),this._absMinIndex=this.items[0].$index,this._absMaxIndex=this.items[this.size-1].$index,this.startIndex<=this.absMinIndex?this.startIndex=this.absMinIndex:this.startIndex>this.absMaxIndex&&(this.startIndex=this.absMaxIndex),!0},t.prototype.updateItems=function(e,t,i,n){if(!this.size||Number.isNaN(this.firstIndex))return{trackedIndex:NaN,toRemove:[]};for(var r=i,a=n?this.lastIndex:this.firstIndex,l=[],c=n?-1:1,u=this.size-1,f=new Map,d=Array.prototype[n?"unshift":"push"],p=function(u){var p=h.items[u];f.set(p.$index,p);var g=e(p);if(!g||Array.isArray(g)&&!g.length)return p.toRemove=!0,r+=p.$index>=i?n?1:0:n?0:-1,h.shiftExtremum(-1,n),"continue";if(!Array.isArray(g))return p.updateIndex(a),d.call(l,p),a+=c,"continue";p.$index<i?r+=n?0:g.length-1:p.$index>i&&(r+=n?1-g.length:0);var m=!0,v=[];(n?s([],o(g),!1).reverse():g).forEach(function(e,n){var o;p.data===e?(i===p.$index&&(r=a+n*c),p.updateIndex(a+n*c),o=p,m=!1):(o=t(a+n*c,e)).toInsert=!0,d.call(v,o)}),p.toRemove=m,d.call.apply(d,s([l],o(v),!1)),a+=c*g.length,g.length>1&&h.shiftExtremum(g.length-1,n)},h=this,g=n?u:0;n?g>=0:g<=u;g+=c)p(g);var m=this.items.filter(function(e){return e.toRemove}),v=Array.from(f).map(function(e){var t=o(e,2),i=t[0],n=t[1];return{$index:i,size:n.size,toRemove:n.toRemove}}).sort(function(e,t){return e.$index-t.$index});return this.items=l,this.cache.updateSubset(v,l,n),this.finiteAbsMinIndex===this.finiteAbsMaxIndex?r=NaN:r>this.finiteAbsMaxIndex?r=this.finiteAbsMaxIndex:r<this.finiteAbsMinIndex&&(r=this.finiteAbsMinIndex),{trackedIndex:r,toRemove:m}},t.prototype.cacheItem=function(e){this.cache.add(e)},t.prototype.getFirstVisibleItemIndex=function(){for(var e=this.items.length,t=0;t<e;t++)if(!this.items[t].invisible)return t;return-1},t.prototype.getLastVisibleItemIndex=function(){for(var e=this.items.length-1;e>=0;e--)if(!this.items[e].invisible)return e;return-1},t.prototype.getFirstVisibleItem=function(){var e=this.getFirstVisibleItemIndex();return e>=0?this.items[e]:void 0},t.prototype.getLastVisibleItem=function(){var e=this.getLastVisibleItemIndex();return e>=0?this.items[e]:void 0},t.prototype.getEdgeVisibleItem=function(t,i){return t===(i?e.Direction.backward:e.Direction.forward)?this.getLastVisibleItem():this.getFirstVisibleItem()},t.prototype.getVisibleItemsCount=function(){return this.items.reduce(function(e,t){return e+(t.invisible?0:1)},0)},t.prototype.getSizeByIndex=function(e){return this.cache.getSizeByIndex(e)},t.prototype.checkDefaultSize=function(){return this.cache.recalculateDefaultSize()},t}(),ni=function(){function e(e){this.total=e,this.isInitial=!1,this.busy=new c(!1)}return Object.defineProperty(e.prototype,"first",{get:function(){return 0===this.count},enumerable:!1,configurable:!0}),e.prototype.done=function(){this.isInitial=!1,this.count++,this.total++,this.busy.set(!1)},e.prototype.start=function(){this.busy.set(!0)},e.prototype.dispose=function(){this.busy.dispose()},e}(),ri=function(){function e(e,t){var i=t?t.count:1,n=t?t.innerLoop.count:0;this.instanceIndex=e,this.innerLoop=new ni(n),this.interrupter=null,this.busy=new c(!1),this.end(i)}return Object.defineProperty(e.prototype,"loopId",{get:function(){return"".concat(this.instanceIndex,"-").concat(this.count,"-").concat(this.innerLoop.total)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"loopIdNext",{get:function(){return"".concat(this.instanceIndex,"-").concat(this.count,"-").concat(this.innerLoop.total+1)},enumerable:!1,configurable:!0}),e.prototype.start=function(e,t){this.isInitial=e,this.initiator=t,this.innerLoop.isInitial=e,this.innerLoop.count=0,this.interrupter=null,this.busy.set(!0)},e.prototype.end=function(e){this.count=e,this.isInitial=!1,this.busy.set(!1)},e.prototype.dispose=function(e){e&&this.busy.dispose(),this.innerLoop.dispose()},e}(),oi=function(){function e(){this.reset()}return e.prototype.reset=function(){this.startDelta=0,this.before=0},e}(),si=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN,this.position=NaN},e}(),ai=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN},e}(),li=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.delta=0},e}(),ci=function(){function t(e){this.directionPriority=e,this.callCount=0,this.positions=new oi,this.first=new si,this.last=new ai,this.firstVisible=new li,this.reset()}return t.prototype.reset=function(){this._newItemsData=null,this.items=[],this.positions.reset(),this.first.reset(),this.last.reset(),this.firstVisible.reset(),this.hasAnotherPack=!1,this.direction=null,this.cancel=null,this.simulate=!1,this.isCheck=!1,this.doRemove=!1},Object.defineProperty(t.prototype,"newItemsData",{get:function(){return this._newItemsData},set:function(e){this._newItemsData=e,e&&e.length&&this.callCount++},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldFetch",{get:function(){return!!this.count},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasNewItems",{get:function(){return!(!this._newItemsData||!this._newItemsData.length)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"index",{get:function(){return this.first.index},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return isNaN(this.first.index)||isNaN(this.last.index)?0:this.last.index-this.first.index+1},enumerable:!1,configurable:!0}),t.prototype.shouldCheckPreSizeExpectation=function(t){if(this.directionPriority===e.Direction.backward)return!1;var i=this.items[this.items.length-1];return i&&i.$index<t},t.prototype.startSimulate=function(e){this.simulate=!0,this._newItemsData=e.map(function(e){return e.data}),this.items=e,this.hasAnotherPack=!1},t.prototype.stopSimulate=function(){this.simulate=!1,this.isCheck=!1,this.doRemove=!1},t.prototype.fill=function(t,i){this.startSimulate(t),this.first.index=t[0].$index,this.last.index=t[t.length-1].$index,this.direction=e.Direction.forward,this.firstVisible.index=i,this.firstVisible.delta=0},t.prototype.check=function(e){this.startSimulate(e),this.last.index=e[0].$index,this.first.index=e[e.length-1].$index,this.isCheck=!0},t.prototype.update=function(e,t,i,n){this.startSimulate(i),this.firstVisible.index=e,this.firstVisible.delta=t,this.doRemove=n.length>0},t}(),ui=function(){function e(){this.callCount=0,this.reset()}return Object.defineProperty(e.prototype,"force",{get:function(){return this.forceForward||this.forceBackward},enumerable:!1,configurable:!0}),e.prototype.reset=function(e){this.doClip=!1,e||(this.forceForward=!1,this.forceBackward=!1)},e}(),fi=function(){function e(){this.reset()}return Object.defineProperty(e.prototype,"noSize",{get:function(){return this.sizeBefore===this.sizeAfter},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this.sizeBefore=0,this.sizeAfter=0,this.positionBefore=0,this.cancel=null},e}(),di=function(){function e(){this.reset()}return e.prototype.reset=function(){this.previous=null,this.current=null,this.syntheticPosition=null,this.syntheticFulfill=!1,this.positionBeforeAsync=null,this.positionBeforeAdjust=null,this.positionAfterAdjust=null,this.stop()},e.prototype.stop=function(){this.scrollTimer&&(clearTimeout(this.scrollTimer),this.scrollTimer=null),this.cancelAnimation&&(this.cancelAnimation(),this.cancelAnimation=null)},e.prototype.hasPositionChanged=function(e){var t=this.positionBeforeAdjust,i=this.positionAfterAdjust;return null===t||t!==e||null===i||i!==e},e}(),pi=function(){function e(e,t,i){this.packageInfo=e,this.settings=t,this.initTime=Number(new Date),this.paused=new c(!1),this.cycle=new ri(this.settings.instanceIndex,i?i.cycle:void 0),this.fetch=new ci(t.directionPriority),this.clip=new ui,this.render=new fi,this.scroll=new di}return Object.defineProperty(e.prototype,"time",{get:function(){return Number(new Date)-this.initTime},enumerable:!1,configurable:!0}),e.prototype.startWorkflowCycle=function(e,t){this.cycle.start(e,t)},e.prototype.endWorkflowCycle=function(e){this.cycle.end(e)},e.prototype.startInnerLoop=function(){var e=this,t=e.cycle,i=e.scroll,r=e.fetch,o=e.render,s=e.clip;return t.innerLoop.start(),i.positionBeforeAsync=null,r.simulate||r.reset(),s.reset(s.force),o.reset(),n({},t.innerLoop.first?{process:t.initiator,doRender:r.simulate&&r.items.length>0}:{})},e.prototype.endInnerLoop=function(){var e=this,t=e.fetch,i=e.clip,n=e.render,r=e.cycle;t.stopSimulate(),i.reset(),t.cancel&&(t.cancel(),t.cancel=null),n.cancel&&(n.cancel(),n.cancel=null),r.innerLoop.done()},e.prototype.dispose=function(){this.scroll.stop(),this.cycle.dispose(),this.paused.dispose(),this.endInnerLoop()},e}(),hi=I(),gi=hi.filter(function(e){return!!e.allowedWhenPaused}).map(function(e){return e.name}),mi=function(e,t){return!!e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t)},vi=function(e,t,i){var n=t;if(!mi(t,"items")){var r=Array.isArray(t)?t:[t];n=e?{items:r,bof:i}:{items:r,eof:i}}return n},xi=function(){function t(t,i,r){var s=this;this.source={},this.box={},this.demand={},this.setFirstOrLastVisible=function(e){},this.getWorkflow=i,this.logger=r,this.relax$=null,this.relaxRun=null,this.reloadCounter=0;var a=(null==t?void 0:t.id)||-1,c=t&&S.get(t.id)||{};N(!0,a);var u=t?hi.map(function(e){var i=t[e.name];if(t.augmented){var r=c[e.name];r&&(i=r.default)}return n(n({},e),{value:i})}):I();Object.entries(c).forEach(function(e){var t=o(e,2),i=t[0],n=t[1],r=u.find(function(e){return e.name===i});r&&n&&(r.value=n.default)}),u.filter(function(e){var t=e.type,i=e.permanent;return t===l.Scalar&&i}).forEach(function(e){var t=e.name,i=e.value;return Object.defineProperty(s,t,{configurable:!0,get:function(){return i}})}),u.filter(function(e){return e.type===l.Reactive}).forEach(function(e){var t=e.name,i=e.value;s.source[t]=i,Object.defineProperty(s,t,{configurable:!0,get:function(){return s.source[t]}})});var f=function(t){if(E(t,a)){var i=[e.AdapterPropName.firstVisible,e.AdapterPropName.firstVisible$],n=[e.AdapterPropName.lastVisible,e.AdapterPropName.lastVisible$];i.some(function(e){return e===t.name})?s.setFirstOrLastVisible({first:!0}):n.some(function(e){return e===t.name})&&s.setFirstOrLastVisible({last:!0})}};u.filter(function(e){return e.type===l.Scalar&&!!e.reactive}).forEach(function(e){var t=e.name,i=e.value,n=e.reactive;s.box[t]=i,Object.defineProperty(s,t,{configurable:!0,set:function(e){if(e!==s.box[t]){s.box[t]=e,s.source[n].set(e);var i=c[n];i&&i.emit(i.source,e)}},get:function(){return f(e),s.box[t]}})}),u.filter(function(e){return e.type===l.Scalar&&e.onDemand}).forEach(function(e){var t=e.name,i=e.value;s.demand[t]=i,Object.defineProperty(s,t,{configurable:!0,get:function(){return s.demand[t]}})}),t&&(u.forEach(function(i){var n=i.name,r=i.type,o=i.permanent,a=s[n];r===l.Function?a=a.bind(s):r===l.WorkflowRunner?a=s.getWorkflowRunnerMethod(a,n):r===l.Reactive&&c[n]?a=t[n]:n===e.AdapterPropName.augmented&&(a=!0);var u=!o&&r===l.Scalar;Object.defineProperty(t,n,{configurable:!0,get:function(){return f(i),u?s[n]:a}})}),this.externalContext=t,N(!1,a))}return Object.defineProperty(t.prototype,"workflow",{get:function(){return this.getWorkflow()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"reloadCount",{get:function(){return this.reloadCounter},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"reloadId",{get:function(){return this.id+"."+this.reloadCounter},enumerable:!1,configurable:!0}),t.prototype.getPromisifiedMethod=function(e,t){var i=this;return new Promise(function(n){i.relax$&&i.relax$.once(function(e){return n(e)}),e.apply(i,t)})},t.prototype.getWorkflowRunnerMethod=function(e,t){var i=this;return function(){for(var n,r,o,s,a=[],l=0;l<arguments.length;l++)a[l]=arguments[l];return i.relax$?i.paused&&!gi.includes(t)?(null===(s=null===(o=i.logger)||void 0===o?void 0:o.log)||void 0===s||s.call(o,function(){return"scroller is paused: "+t+" method is ignored"}),Promise.resolve(v)):i.getPromisifiedMethod(e,a):(null===(r=null===(n=i.logger)||void 0===n?void 0:n.log)||void 0===r||r.call(n,function(){return"scroller is not initialized: "+t+" method is ignored"}),Promise.resolve(m))}},t.prototype.initialize=function(t){var i=this,n=t.buffer,r=t.state,o=t.viewport,s=t.logger,a=t.adapterRun$,l=t.getWorkflow;if(Object.defineProperty(this.demand,e.AdapterPropName.itemsCount,{get:function(){return n.getVisibleItemsCount()}}),Object.defineProperty(this.demand,e.AdapterPropName.bufferInfo,{get:function(){return{firstIndex:n.firstIndex,lastIndex:n.lastIndex,minIndex:n.minIndex,maxIndex:n.maxIndex,absMinIndex:n.absMinIndex,absMaxIndex:n.absMaxIndex,defaultSize:n.defaultSize}}}),this.bof=n.bof.get(),n.bof.on(function(e){return i.bof=e}),this.eof=n.eof.get(),n.eof.on(function(e){return i.eof=e}),Object.defineProperty(this.demand,e.AdapterPropName.packageInfo,{get:function(){return r.packageInfo}}),this.loopPending=r.cycle.innerLoop.busy.get(),r.cycle.innerLoop.busy.on(function(e){return i.loopPending=e}),this.isLoading=r.cycle.busy.get(),r.cycle.busy.on(function(e){return i.isLoading=e}),this.paused=r.paused.get(),r.paused.on(function(e){return i.paused=e}),this.setFirstOrLastVisible=function(t){var r,a,l,c=t.first,u=t.last,f=t.workflow;if((c||u)&&!(null===(r=null==f?void 0:f.call)||void 0===r?void 0:r.interrupted)){var d=c?e.AdapterPropName.firstVisible:e.AdapterPropName.lastVisible;if(null===(l=k(null===(a=i.externalContext)||void 0===a?void 0:a.id))||void 0===l?void 0:l[d])if(n.items.some(function(e){return!e.element}))s.log("skipping first/lastVisible set because not all buffered items are rendered at this moment");else{var p=c?e.Direction.backward:e.Direction.forward,h=o.getEdgeVisibleItem(n.items,p).item;h&&h.element===i[d].element||(i[d]=h?h.get():w)}}},this.logger=s,a){this.relax$||(this.relax$=new c);var u=this.relax$;a.on(function(e){var t=e.status,n=e.payload,r=function(){};t===ge.start?r=i.isLoading$.on(function(e){e||(r(),u.set({success:!0,immediate:!1,details:null}))}):t!==ge.done&&t!==ge.error||(r(),u.set({success:t!==ge.error,immediate:!0,details:t===ge.error&&n?String(n.error):null}))})}l&&(this.getWorkflow=l),this.init=!0},t.prototype.dispose=function(){var e=this;this.relax$&&this.relax$.dispose(),this.externalContext&&this.resetContext(),Object.getOwnPropertyNames(this).forEach(function(t){delete e[t]}),this.disposed=!0},t.prototype.resetContext=function(){var e,t=this,i=S.get(null===(e=this.externalContext)||void 0===e?void 0:e.id);hi.forEach(function(e){var n=e.type,r=e.permanent,o=e.name,s=e.value;if(n===l.Reactive||r||Object.defineProperty(t.externalContext,o,{configurable:!0,get:function(){return s}}),n===l.Reactive&&i){var a=i[o];a&&(a.default.reset(),a.emit(a.source,a.default.get()))}})},t.prototype.reset=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reset",e," of ".concat(this.reloadId)),this.workflow.call({process:he.reset,status:ge.start,payload:{options:e}})},t.prototype.reload=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reload",e," of ".concat(this.reloadId)),this.workflow.call({process:he.reload,status:ge.start,payload:{options:e}})},t.prototype.append=function(e,t){var i=vi(!1,e,t);this.logger.logAdapterMethod("append",[i.items,i.eof]),this.workflow.call({process:he.append,status:ge.start,payload:{options:i}})},t.prototype.prepend=function(e,t){var i=vi(!0,e,t);this.logger.logAdapterMethod("prepend",[i.items,i.bof]),this.workflow.call({process:he.prepend,status:ge.start,payload:{options:i}})},t.prototype.check=function(){this.logger.logAdapterMethod("check"),this.workflow.call({process:he.check,status:ge.start})},t.prototype.remove=function(e){e=function(e){return mi(e,"predicate")||mi(e,"indexes")||(e={predicate:e}),e}(e),this.logger.logAdapterMethod("remove",e),this.workflow.call({process:he.remove,status:ge.start,payload:{options:e}})},t.prototype.clip=function(e){this.logger.logAdapterMethod("clip",e),this.workflow.call({process:he.clip,status:ge.start,payload:{options:e}})},t.prototype.insert=function(e){this.logger.logAdapterMethod("insert",e),this.workflow.call({process:he.insert,status:ge.start,payload:{options:e}})},t.prototype.replace=function(e){this.logger.logAdapterMethod("replace",e),this.workflow.call({process:he.replace,status:ge.start,payload:{options:e}})},t.prototype.update=function(e){this.logger.logAdapterMethod("update",e),this.workflow.call({process:he.update,status:ge.start,payload:{options:e}})},t.prototype.pause=function(){this.logger.logAdapterMethod("pause"),this.workflow.call({process:he.pause,status:ge.start})},t.prototype.resume=function(){this.logger.logAdapterMethod("resume"),this.workflow.call({process:he.pause,status:ge.start,payload:{options:{resume:!0}}})},t.prototype.fix=function(e){this.logger.logAdapterMethod("fix",e),this.workflow.call({process:he.fix,status:ge.start,payload:{options:e}})},t.prototype.relaxUnchained=function(e,t){var i=this,n=function(){return"function"==typeof e&&t===i.reloadId&&e()};return this.isLoading||n(),new Promise(function(e){i.isLoading?i.isLoading$.once(function(){n(),e(!1)}):e(!0)}).then(function(e){var n,r;if(i.disposed)return{immediate:e,success:!1,details:"Adapter was disposed"};var o=t===i.reloadId;return null===(r=null===(n=i.logger)||void 0===n?void 0:n.log)||void 0===r||r.call(n,function(){return o?void 0:"relax promise cancelled due to ".concat(t," != ").concat(i.reloadId)}),{immediate:e,success:o,details:o?null:"Interrupted by reload or reset"}})},t.prototype.relax=function(e){var t=this,i=this.reloadId;return this.logger.logAdapterMethod("relax",e," of ".concat(i)),this.init?this.relaxRun=this.relaxRun?this.relaxRun.then(function(){return t.relaxUnchained(e,i)}):this.relaxUnchained(e,i).then(function(e){return t.relaxRun=null,e}):Promise.resolve(m)},t.prototype.showLog=function(){this.logger.logAdapterMethod("showLog"),this.logger.logForce()},t}(),yi="Invalid datasource:",bi=0,wi=function(){function e(e){var t=e.datasource,n=e.consumer,r=e.element,o=e.workflow,s=e.Routines,a=e.scroller,l=Y(t,ne).params.get;if(!l.isValid)throw new Error("".concat(yi," ").concat(l.errors[0]));var c=a?a.state.packageInfo:{consumer:n,core:z};if(r=a?a.routines.element:r,o=a?a.workflow:o,s&&!(s.prototype instanceof Xt)){var u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(Xt);Object.getOwnPropertyNames(s.prototype).filter(function(e){return"constructor"!==e}).forEach(function(e){return u.prototype[e]=null==s?void 0:s.prototype[e]}),s=u}this.workflow=o,this.settings=new xt(t.settings,t.devSettings,++bi),this.logger=new Gt(this,c,t.adapter),this.routines=new(s||Xt)(r,this.settings),this.state=new pi(c,this.settings,a?a.state:void 0),this.buffer=new ii(this.settings,o.onDataChanged,this.logger),this.viewport=new Jt(this.settings,this.routines,this.state,this.logger),this.logger.object("vscroll settings object",this.settings,!0),this.initDatasource(t,a)}return e.prototype.initDatasource=function(e,t){var i=this;if(t)return this.datasource=e,void(this.adapter=t.adapter);var n=e instanceof O,r=!n&&!this.settings.adapter;if(n)this.datasource=e;else{var o=$(function(){return{mock:r}});this.datasource=new o(e),this.settings.adapter&&(e.adapter=this.datasource.adapter)}var s=r?null:this.datasource.adapter;this.adapter=new xi(s,function(){return i.workflow},this.logger)},e.prototype.init=function(e){var t=this;this.viewport.reset(this.buffer.startIndex),this.logger.stat("initialization"),this.adapter.initialize({buffer:this.buffer,state:this.state,viewport:this.viewport,logger:this.logger,adapterRun$:e,getWorkflow:function(){return t.workflow}})},e.prototype.dispose=function(e){this.logger.log(function(){return"disposing scroller"+(e?" (forever)":"")}),e&&this.adapter.dispose(),this.buffer.dispose(),this.state.dispose()},e.prototype.finalize=function(){},e}(),Ii=function(){function e(e){var t=this,i=e.element,n=e.datasource,r=e.consumer,o=e.run,s=e.Routines,a=Y(e,vt);if(!a.isValid)throw new Error("Invalid Workflow params: ".concat(a.errors.join(", "),"."));this.isInitialized=!1,this.disposed=!1,this.initTimer=null,this.adapterRun$=new c,this.cyclesDone=0,this.cyclesDone$=new c(0),this.interruptionCount=0,this.errors=[],this.offScroll=function(){return null},this.propagateChanges=o,this.stateMachineMethods={run:this.runProcess(),interrupt:this.interrupt.bind(this),done:this.done.bind(this),onError:this.onError.bind(this)},this.scroller=new wi({element:i,datasource:n,consumer:r,workflow:this.getUpdater(),Routines:s}),this.scroller.settings.initializeDelay?this.initTimer=setTimeout(function(){t.initTimer=null,t.init()},this.scroller.settings.initializeDelay):this.init()}return e.prototype.init=function(){var e=this;this.scroller.init(this.adapterRun$);var t=this.scroller.routines;this.offScroll=t.onScroll(function(t){return e.callWorkflow({process:pe.scroll,status:ge.start,payload:{event:t}})}),this.isInitialized=!0,this.callWorkflow({process:pe.init,status:ge.start})},e.prototype.changeItems=function(e){this.propagateChanges(e)},e.prototype.callWorkflow=function(e){if(this.isInitialized){var t=e.process,i=e.status;!this.scroller.state.paused.get()||[he.pause,he.reset].includes(t)?(t&&t.startsWith("adapter")&&i!==ge.next&&this.adapterRun$.set(e),this.process(e)):this.scroller.logger.log("scroller is paused: "+t+" process is ignored")}},e.prototype.getUpdater=function(){return{call:this.callWorkflow.bind(this),onDataChanged:this.changeItems.bind(this)}},e.prototype.process=function(e){var t=this,i=e.status,r=e.process,a=e.payload;this.scroller.settings.logProcessRun&&this.scroller.logger.log(function(){return s(s(s([],o(t.scroller.settings.logColor?["%cfire%c","color: #cc7777;","color: #000000;"]:["fire"]),!1),[r,'"'.concat(i,'"')],!1),o(void 0!==a?[a]:[]),!1)}),this.scroller.logger.logProcess(e),r===pe.end&&this.scroller.finalize(),function(e){var t=e.input,i=t.process,r=t.status,o=t.payload,s=void 0===o?{}:o,a=e.methods,l=a.run,c=a.interrupt,u=a.done,f=a.onError;if(r===ge.error)return f(i,s),void(i.startsWith("adapter")||l(_t)(s));var d=s.options;switch(i){case pe.init:r===ge.start&&l(It)(i),r===ge.next&&l(Tt)();break;case pe.scroll:r===ge.start&&l(St)(s),r===ge.next&&l(It)(i);break;case he.reset:case he.reload:r===ge.start&&(i===he.reset?l(zt)(d):l(kt)(d)),r===ge.next&&(c(n({process:i},s)),s.finalize?l(_t)():l(It)(i));break;case he.append:case he.prepend:r===ge.start&&l(Pt)({process:i,options:d}),r===ge.next&&l(It)(i);break;case he.check:r===ge.start&&l(Mt)(),r===ge.next&&l(It)(i);break;case he.remove:r===ge.start&&l(Ot)(d),r===ge.next&&l(It)(i);break;case he.clip:r===ge.start&&l($t)(d),r===ge.next&&l(It)(i);break;case he.insert:r===ge.start&&l(Vt)(d),r===ge.next&&l(It)(i);break;case he.replace:r===ge.start&&l(At)(d),r===ge.next&&l(It)(i);break;case he.update:r===ge.start&&l(Nt)(d),r===ge.next&&l(It)(i);break;case he.pause:r===ge.start&&l(Dt)(d),r===ge.next&&l(It)(i);break;case he.fix:r===ge.start&&l(Ct)(d),r===ge.next&&l(It)(i);break;case pe.start:switch(s.process){case he.append:case he.insert:case he.replace:case he.update:s.doRender?l(Bt)():l(Wt)();break;case he.check:l(Bt)();break;case he.remove:l(Wt)();break;default:l(jt)()}break;case pe.preFetch:r===ge.next&&(s.process===he.clip?l(Ut)():l(Ft)()),r===ge.done&&l(_t)();break;case pe.fetch:l(Lt)();break;case pe.postFetch:r===ge.next&&l(Bt)(),r===ge.done&&l(_t)();break;case pe.render:if(r===ge.next)switch(s.process){case he.append:case he.check:case he.insert:case he.replace:case he.update:l(Wt)();break;default:l(Ut)()}r===ge.done&&l(_t)();break;case pe.preClip:s.doClip?l(qt)():l(Wt)();break;case pe.clip:l(Wt)();break;case pe.adjust:l(_t)();break;case pe.end:if(r===ge.next)switch(s.process){case he.reset:case he.reload:u(),l(It)(s.process);break;default:l(Tt)()}r===ge.done&&u()}}({input:e,methods:this.stateMachineMethods})},e.prototype.runProcess=function(){var e=this;return function(t){var i=t.run,n=t.process,r=t.name;return function(){for(var t=[],a=0;a<arguments.length;a++)t[a]=arguments[a];e.scroller.settings.logProcessRun&&e.scroller.logger.log(function(){return s(s(s([],o(e.scroller.settings.logColor?["%crun%c","color: #333399;","color: #000000;"]:["run"]),!1),[n||r],!1),o(t),!1)}),i.apply(void 0,s([e.scroller],o(t),!1))}}},e.prototype.onError=function(e,t){var i=t&&String(t.error)||"",n=this.scroller.state,r=n.time,o=n.cycle;this.errors.push({process:e,message:i,time:r,loop:o.loopIdNext}),this.scroller.logger.logError(i)},e.prototype.interrupt=function(e){var t=this,i=e.process,n=e.finalize,r=e.datasource;if(n){var o=this.scroller,s=o.workflow,a=o.logger;s.call=function(e){return a.log("[skip wf call]")},s.call.interrupted=!0,this.scroller.workflow=this.getUpdater(),this.interruptionCount++,a.log(function(){return"workflow had been interrupted by the ".concat(i," process (").concat(t.interruptionCount,")")})}if(r){var l=function(){t.scroller.logger.log("new Scroller instantiation");var e=new wi({datasource:r,scroller:t.scroller});t.scroller.dispose(),t.scroller=e,t.scroller.init()};this.scroller.state.cycle.busy.get()?this.scroller.adapter.relax(l.bind(this)):l()}},e.prototype.done=function(){var e=this.scroller,t=e.state,i=e.logger;this.cyclesDone++,this.cyclesDone$.set(this.cyclesDone),i.logCycle(!1),t.endWorkflowCycle(this.cyclesDone+1),this.finalize()},e.prototype.dispose=function(){var e=this;this.scroller.logger.log(function(){return"disposing workflow"}),this.initTimer&&clearTimeout(this.initTimer),this.offScroll(),this.adapterRun$.dispose(),this.cyclesDone$.dispose(),this.scroller.dispose(!0),Object.getOwnPropertyNames(this).forEach(function(t){delete e[t]}),this.isInitialized=!1,this.disposed=!0},e.prototype.finalize=function(){},e}();e.EMPTY_ITEM=w,e.INVALID_DATASOURCE_PREFIX=yi,e.Routines=Xt,e.Workflow=Ii,e.getDefaultAdapterProps=I,e.makeDatasource=$,e.packageInfo=z});
6
6
  //# sourceMappingURL=vscroll.umd.min.js.map