UNPKG

vscroll

Version:
5 lines (4 loc) 99.2 kB
/** * vscroll (FESM5) by Denis Hilt | https://github.com/dhilt/vscroll | 2026-02-15T20:53:38.401Z | MIT license */ import{__values as e,__read as t,__assign as i,__extends as n,__spreadArray as r}from"tslib";var o,s,a=function(){function i(e,t){this.id=0,void 0!==e&&(this.value=e,this.initialValue=e),this.options=t||{},this.subscriptions=new Map}return i.prototype.set=function(i){var n,r;if(this.value!==i||this.options.emitEqual){this.value=i;try{for(var o=e(this.subscriptions),s=o.next();!s.done;s=o.next()){if(t(s.value,2)[1].emit(i),this.value!==i)break}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}},i.prototype.get=function(){return this.value},i.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()}},i.prototype.once=function(e){var t=this.on(function(i){t(),e(i)});return t},i.prototype.reset=function(){this.set(this.initialValue)},i.prototype.dispose=function(){this.subscriptions.forEach(function(e){return e.off()})},i}();!function(e){e.id="id",e.mock="mock",e.augmented="augmented",e.version="version",e.init="init",e.init$="init$",e.packageInfo="packageInfo",e.itemsCount="itemsCount",e.bufferInfo="bufferInfo",e.isLoading="isLoading",e.isLoading$="isLoading$",e.loopPending="loopPending",e.loopPending$="loopPending$",e.firstVisible="firstVisible",e.firstVisible$="firstVisible$",e.lastVisible="lastVisible",e.lastVisible$="lastVisible$",e.bof="bof",e.bof$="bof$",e.eof="eof",e.eof$="eof$",e.paused="paused",e.paused$="paused$",e.reset="reset",e.reload="reload",e.append="append",e.prepend="prepend",e.check="check",e.remove="remove",e.clip="clip",e.insert="insert",e.replace="replace",e.update="update",e.pause="pause",e.resume="resume",e.fix="fix",e.relax="relax",e.showLog="showLog"}(o||(o={})),function(e){e[e.Scalar=0]="Scalar",e[e.Reactive=1]="Reactive",e[e.WorkflowRunner=2]="WorkflowRunner",e[e.Function=3]="Function"}(s||(s={}));var l,c,u,f=o,d=s,h=function(){return null},p={immediate:!0,success:!0,details:"Adapter is not initialized"},g={immediate:!0,success:!0,details:"Scroller is paused"},m=function(){return Promise.resolve(p)},v={core:{name:"",version:""},consumer:{name:"",version:""}},x={firstIndex:NaN,lastIndex:NaN,minIndex:NaN,maxIndex:NaN,absMinIndex:-1/0,absMaxIndex:1/0,defaultSize:NaN},y={data:{},element:{}},b=function(){return[{type:d.Scalar,name:f.id,value:0,permanent:!0},{type:d.Scalar,name:f.mock,value:!0,permanent:!0},{type:d.Scalar,name:f.augmented,value:!1,permanent:!0},{type:d.Scalar,name:f.version,value:"",permanent:!0},{type:d.Scalar,name:f.init,value:!1,reactive:f.init$},{type:d.Scalar,name:f.packageInfo,value:v,onDemand:!0},{type:d.Scalar,name:f.itemsCount,value:0,onDemand:!0},{type:d.Scalar,name:f.bufferInfo,value:x,onDemand:!0},{type:d.Scalar,name:f.isLoading,value:!1,reactive:f.isLoading$},{type:d.Scalar,name:f.loopPending,value:!1,reactive:f.loopPending$},{type:d.Scalar,name:f.firstVisible,value:y,reactive:f.firstVisible$,wanted:!0},{type:d.Scalar,name:f.lastVisible,value:y,reactive:f.lastVisible$,wanted:!0},{type:d.Scalar,name:f.bof,value:!1,reactive:f.bof$},{type:d.Scalar,name:f.eof,value:!1,reactive:f.eof$},{type:d.Scalar,name:f.paused,value:!1,reactive:f.paused$},{type:d.WorkflowRunner,name:f.reset,value:m,allowedWhenPaused:!0},{type:d.WorkflowRunner,name:f.reload,value:m},{type:d.WorkflowRunner,name:f.append,value:m},{type:d.WorkflowRunner,name:f.prepend,value:m},{type:d.WorkflowRunner,name:f.check,value:m},{type:d.WorkflowRunner,name:f.remove,value:m},{type:d.WorkflowRunner,name:f.clip,value:m},{type:d.WorkflowRunner,name:f.insert,value:m},{type:d.WorkflowRunner,name:f.replace,value:m},{type:d.WorkflowRunner,name:f.update,value:m},{type:d.WorkflowRunner,name:f.pause,value:m},{type:d.WorkflowRunner,name:f.resume,value:m,allowedWhenPaused:!0},{type:d.WorkflowRunner,name:f.fix,value:m},{type:d.Function,name:f.relax,value:m},{type:d.Function,name:f.showLog,value:h},{type:d.Reactive,name:f.init$,value:new a},{type:d.Reactive,name:f.isLoading$,value:new a},{type:d.Reactive,name:f.loopPending$,value:new a},{type:d.Reactive,name:f.firstVisible$,value:new a(y,{emitOnSubscribe:!0}),wanted:!0},{type:d.Reactive,name:f.lastVisible$,value:new a(y,{emitOnSubscribe:!0}),wanted:!0},{type:d.Reactive,name:f.bof$,value:new a},{type:d.Reactive,name:f.eof$,value:new a},{type:d.Reactive,name:f.paused$,value:new a}]},w=new Map,I={name:"vscroll",version:"1.8.3"},S=function(e){var t;return null===(t=E.get(e||-1))||void 0===t?void 0:t.box},k=function(e,t){var i=e.name,n=e.wanted,r=E.get(t||-1);if(n&&r&&!r.box[i]&&!r.block){var s=o.firstVisible,a=o.firstVisible$,l=o.lastVisible,c=o.lastVisible$;return r.box[s]=r.box[a]=[s,a].some(function(e){return e===i})||r.box[s],r.box[l]=r.box[c]=[l,c].some(function(e){return e===i})||r.box[l],!0}return!1},z=function(e,t){var i=E.get(t||-1);i&&(i.block=e)},E=new Map,V=0,M=function(e){var t=this,n=e.mock,r=e.reactive,a=++V,l={configurable:!0},c={};E.set(a,{box:{},block:!1}),Object.defineProperty(this,o.id,i({get:function(){return a}},l)),Object.defineProperty(this,o.mock,i({get:function(){return n}},l)),Object.defineProperty(this,o.augmented,i({get:function(){return!1}},l)),Object.defineProperty(this,o.version,i({get:function(){return I.version}},l)),b().filter(function(e){return!e.permanent}).forEach(function(e){var n=e.value;if(r&&e.type===s.Reactive){var o=r[e.name];o&&(c[e.name]=i(i({},o),{default:n}),n=o.source)}Object.defineProperty(t,e.name,i({get:function(){return k(e,a),n}},l))}),r&&w.set(a,c)},N=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(){w.delete(this.adapter.id),E.delete(this.adapter.id)},e}(),O=function(e){return function(t){function i(i){var n,r="function"==typeof e?e():(n=b().filter(function(e){return e.type===s.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 n(i,t),i}(N)},$=O();!function(e){e.forward="forward",e.backward="backward"}(l||(l={})),function(e){e.Average="average",e.Constant="constant",e.Frequent="frequent"}(c||(c={})),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"}(u||(u={}));var P,R,A=function(e,t){return(t||[""]).reduce(function(e,t,i){return e.replace("{arg".concat(i+1,"}"),t)},e)},C=function(e){return"number"==typeof e||"string"==typeof e&&""!==e?Number(e):NaN},F=function(e){var t=C(e),i=[];return Number.isNaN(t)&&i.push(u.number),{value:t,isSet:!0,isValid:!i.length,errors:i}},T=function(e,t){return function(i){var n=F(i);if(!n.isValid)return n;var r=n.value,o=[];return r<e&&(t?r=e:o.push(A(u.moreOrEqual,[String(e)]))),{value:r,isSet:!0,isValid:!o.length,errors:o}}},j=function(e){var t=[];return"function"!=typeof e&&t.push(u.function),{value:e,isSet:!0,isValid:!t.length,errors:t}},L=function(e,t){return function(i){var n=j(i);if(!n.isValid)return n;var r=[];return((i=n.value).length<e||i.length>t)&&r.push(A(u.funcOfXToYArguments,[String(e),String(t)])),{value:i,isSet:!0,isValid:!r.length,errors:r}}},B=function(e,t){return function(i,n){var r=[],o=void 0!==i,s=!o,a=t?u.oneOfMust:u.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(A(a,[e.join('", "')])+" (non-string token)");break}var f=n&&Object.prototype.hasOwnProperty.call(n,c);if(o&&f){r.push(A(a,[e.join('", "')])+" (".concat(c," is present)"));break}s&&f&&(s=!1)}t&&s&&r.push(A(a,[e.join('", "')]))}else r.push(A(a,["undefined"]));return{value:i,isSet:o,isValid:!r.length,errors:r}}},D=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(A(u.enum,["["+n.join(",")+"]"])),{value:t,isSet:!0,isValid:!i.length,errors:i}}},_={NUMBER:{type:u.number,method:F},INTEGER:{type:u.integer,method:function(e){var t=[];e=C(e);var i=parseInt(String(e),10);return e!==i&&t.push(u.integer),{value:i,isSet:!0,isValid:!t.length,errors:t}}},INTEGER_UNLIMITED:{type:u.integerUnlimited,method:function(e){var t=e,i=[];return(e=C(e))!==(t=Number.isFinite(e)?parseInt(String(e),10):e)&&i.push(u.integerUnlimited),{value:t,isSet:!0,isValid:!i.length,errors:i}}},MORE_OR_EQUAL:function(e,t){return{type:u.moreOrEqual,method:T(e,t)}},BOOLEAN:{type:u.boolean,method:function(e){var t=[],i=e;return"true"===e?i=!0:"false"===e&&(i=!1),"boolean"!=typeof i&&t.push(u.boolean),{value:i,isSet:!0,isValid:!t.length,errors:t}}},OBJECT:{type:u.object,method:function(e){var t=[];return e&&"[object Object]"===Object.prototype.toString.call(e)||t.push(u.object),{value:e,isSet:!0,isValid:!t.length,errors:t}}},ITEM_LIST:{type:u.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(A(u.itemList,["of items of the same type"]));break}}else i.push(A(u.itemList,["with at least 1 item"]));else i.push(u.itemList),t=[];return{value:t,isSet:!0,isValid:!i.length,errors:i}}},ELEMENT:{type:u.element,method:function(e){var t=[];return e instanceof Element||e instanceof Document||t.push(u.element),{value:e,isSet:!0,isValid:!t.length,errors:t}}},FUNC:{type:u.function,method:j},FUNC_WITH_X_ARGUMENTS:function(e){return{type:u.funcOfxArguments,method:(t=e,function(e){var i=j(e);if(!i.isValid)return i;var n=[];return(e=i.value).length!==t&&n.push(A(u.funcOfxArguments,[String(t)])),{value:e,isSet:!0,isValid:!n.length,errors:n}})};var t},FUNC_WITH_X_AND_MORE_ARGUMENTS:function(e){return{type:u.funcOfxAndMoreArguments,method:(t=e,function(e){var i=j(e);if(!i.isValid)return i;var n=[];return(e=i.value).length<t&&n.push(A(u.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:u.funcOfXToYArguments,method:L(e,t)}},ONE_OF_CAN:function(e){return{type:u.oneOfCan,method:B(e,!1)}},ONE_OF_MUST:function(e){return{type:u.oneOfMust,method:B(e,!0)}},OR:function(e){return{type:u.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:u.enum,method:D(e)}}},W=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(i,n){return r(r([],t(i),!1),t(e.params[n].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}(),U=function(e,i,n){var o=e.value,s=e.errors,a=i.method(o,n),l=r(r([],t(s),!1),t(a.errors),!1);return{value:a.value,isSet:a.isSet,isValid:!l.length,errors:l}},q=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:[]}},G=function(t,i,n){var r,o,s=q(t[i],n);if(s.isSet)try{for(var a=e(Object.values(n.validators)),l=a.next();!l.done;l=a.next()){var c=l.value,f=U(s,c,t);if(!f.isValid&&void 0!==n.defaultValue)return{value:n.defaultValue,isSet:!0,isValid:!0,errors:[]};Object.assign(s,f)}}catch(e){r={error:e}}finally{try{l&&!l.done&&(o=a.return)&&o.call(a)}finally{if(r)throw r.error}}else{var d=n.validators.find(function(e){return e.type===u.oneOfMust});if(d)return U(s,d,t)}return s},H=function(e,i){var n=new W(e);return Object.entries(i).forEach(function(e){var i=t(e,2),r=i[0],o=i[1];return n.setParam(r,n.isValidContext?G(n.context,r,o):q(void 0,o))}),n},X=_.OBJECT,Y=_.FUNC_WITH_X_AND_MORE_ARGUMENTS;!function(e){e.get="get",e.settings="settings",e.devSettings="devSettings"}(R||(R={}));var J,Q,Z,K,ee,te=((P={})[R.get]={validators:[Y(2)],mandatory:!0},P[R.settings]={validators:[X]},P[R.devSettings]={validators:[X]},P),ie=_.NUMBER,ne=_.INTEGER,re=_.INTEGER_UNLIMITED,oe=_.MORE_OR_EQUAL,se=_.BOOLEAN,ae=_.ELEMENT,le=_.FUNC,ce=_.OR,ue=_.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"}(K||(K={})),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"}(ee||(ee={}));var fe,de,he,pe,ge,me,ve,xe,ye,be,we,Ie,Se,ke,ze,Ee=((J={})[K.itemSize]=1,J[K.bufferSize]=1,J[K.padding]=.01,J[ee.throttle]=0,J[ee.initDelay]=0,J[ee.initWindowDelay]=0,J),Ve=((Q={})[K.adapter]={validators:[se],defaultValue:!1},Q[K.startIndex]={validators:[ne],defaultValue:1},Q[K.minIndex]={validators:[re],defaultValue:-1/0},Q[K.maxIndex]={validators:[re],defaultValue:1/0},Q[K.itemSize]={validators:[ne,oe(Ee[K.itemSize],!0)],defaultValue:NaN},Q[K.bufferSize]={validators:[ne,oe(Ee[K.bufferSize],!0)],defaultValue:5},Q[K.padding]={validators:[ie,oe(Ee[K.padding],!0)],defaultValue:.5},Q[K.infinite]={validators:[se],defaultValue:!1},Q[K.horizontal]={validators:[se],defaultValue:!1},Q[K.windowViewport]={validators:[se],defaultValue:!1},Q[K.viewportElement]={validators:[ce([ae,le])],defaultValue:null},Q[K.inverse]={validators:[se],defaultValue:!1},Q[K.onBeforeClip]={validators:[le],defaultValue:null},Q[K.sizeStrategy]={validators:[ue(c)],defaultValue:c.Average},Q),Me=((Z={})[ee.debug]={validators:[se],defaultValue:!1},Z[ee.immediateLog]={validators:[se],defaultValue:!0},Z[ee.logProcessRun]={validators:[se],defaultValue:!1},Z[ee.logTime]={validators:[se],defaultValue:!1},Z[ee.logColor]={validators:[se],defaultValue:!0},Z[ee.throttle]={validators:[ne,oe(Ee[ee.throttle],!0)],defaultValue:40},Z[ee.initDelay]={validators:[ne,oe(Ee[ee.initDelay],!0)],defaultValue:1},Z[ee.initWindowDelay]={validators:[ne,oe(Ee[ee.initWindowDelay],!0)],defaultValue:40},Z[ee.cacheData]={validators:[se],defaultValue:!1},Z[ee.cacheOnReload]={validators:[se],defaultValue:!1},Z[ee.dismissOverflowAnchor]={validators:[se],defaultValue:!0},Z[ee.directionPriority]={validators:[ue(l)],defaultValue:l.backward},Z);!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"}(fe||(fe={})),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"}(de||(de={})),function(e){e.start="start",e.next="next",e.done="done",e.error="error"}(he||(he={}));var Ne,Oe=_.INTEGER,$e=_.INTEGER_UNLIMITED,Pe=_.BOOLEAN,Re=_.OBJECT,Ae=_.ITEM_LIST,Ce=_.FUNC_WITH_X_ARGUMENTS,Fe=_.FUNC_WITH_X_AND_MORE_ARGUMENTS,Te=_.FUNC_WITH_X_TO_Y_ARGUMENTS,je=_.ONE_OF_MUST,Le=_.ONE_OF_CAN,Be=_.OR;Ne||(Ne={});var De,_e={},We=((pe={})[R.get]={validators:[Fe(2)]},pe[R.settings]={validators:[Re]},pe[R.devSettings]={validators:[Re]},pe);!function(e){e.reloadIndex="reloadIndex"}(De||(De={}));var Ue,qe=((ge={})[De.reloadIndex]={validators:[Oe]},ge);!function(e){e.items="items",e.bof="bof",e.increase="increase",e.virtualize="virtualize"}(Ue||(Ue={}));var Ge,He=((me={})[Ue.items]={validators:[Ae],mandatory:!0},me[Ue.bof]={validators:[Pe,Le([Ue.virtualize])],defaultValue:!1},me[Ue.increase]={validators:[Pe],defaultValue:!1},me[Ue.virtualize]={validators:[Pe,Le([Ue.bof])],defaultValue:!1},me);!function(e){e.items="items",e.eof="eof",e.decrease="decrease",e.virtualize="virtualize"}(Ge||(Ge={}));var Xe,Ye=((ve={})[Ge.items]={validators:[Ae],mandatory:!0},ve[Ge.eof]={validators:[Pe,Le([Ge.virtualize])],defaultValue:!1},ve[Ge.decrease]={validators:[Pe],defaultValue:!1},ve[Ue.virtualize]={validators:[Pe,Le([Ge.eof])],defaultValue:!1},ve);!function(e){e.predicate="predicate",e.indexes="indexes",e.increase="increase"}(Xe||(Xe={}));var Je,Qe=((xe={})[Xe.predicate]={validators:[Ce(1),je([Xe.indexes])]},xe[Xe.indexes]={validators:[Ae,je([Xe.predicate])]},xe[Xe.increase]={validators:[Pe],defaultValue:!1},xe);!function(e){e.backwardOnly="backwardOnly",e.forwardOnly="forwardOnly"}(Je||(Je={}));var Ze,Ke=((ye={})[Je.backwardOnly]={validators:[Pe,Le([Je.forwardOnly])],defaultValue:!1},ye[Je.forwardOnly]={validators:[Pe,Le([Je.backwardOnly])],defaultValue:!1},ye);!function(e){e.items="items",e.before="before",e.after="after",e.beforeIndex="beforeIndex",e.afterIndex="afterIndex",e.decrease="decrease"}(Ze||(Ze={}));var et,tt=((be={})[Ze.items]={validators:[Ae],mandatory:!0},be[Ze.before]={validators:[Ce(1),je([Ze.after,Ze.beforeIndex,Ze.afterIndex])]},be[Ze.after]={validators:[Ce(1),je([Ze.before,Ze.beforeIndex,Ze.afterIndex])]},be[Ze.beforeIndex]={validators:[Oe,je([Ze.before,Ze.after,Ze.afterIndex])]},be[Ze.afterIndex]={validators:[Oe,je([Ze.before,Ze.after,Ze.beforeIndex])]},be[Ze.decrease]={validators:[Pe],defaultValue:!1},be);!function(e){e.items="items",e.predicate="predicate",e.fixRight="fixRight"}(et||(et={}));var it,nt=((we={})[Ze.items]={validators:[Ae],mandatory:!0},we[et.predicate]={validators:[Ce(1)],mandatory:!0},we[et.fixRight]={validators:[Pe],defaultValue:!1},we);!function(e){e.predicate="predicate",e.fixRight="fixRight"}(it||(it={}));var rt,ot=((Ie={})[it.predicate]={validators:[Ce(1)],mandatory:!0},Ie[it.fixRight]={validators:[Pe],defaultValue:!1},Ie);!function(e){e.scrollPosition="scrollPosition",e.minIndex="minIndex",e.maxIndex="maxIndex",e.updater="updater",e.scrollToItem="scrollToItem",e.scrollToItemOpt="scrollToItemOpt"}(rt||(rt={}));var st,at,lt=((Se={})[rt.scrollPosition]={validators:[$e]},Se[rt.minIndex]={validators:[$e]},Se[rt.maxIndex]={validators:[$e]},Se[rt.updater]={validators:[Te(1,2)]},Se[rt.scrollToItem]={validators:[Ce(1)]},Se[rt.scrollToItemOpt]={validators:[Be([Pe,Re])]},Se),ct=((ke={})[de.reset]=R,ke[de.reload]=De,ke[de.prepend]=Ue,ke[de.append]=Ge,ke[de.check]=Ne,ke[de.remove]=Xe,ke[de.clip]=Je,ke[de.insert]=Ze,ke[de.replace]=et,ke[de.update]=it,ke[de.pause]=Ne,ke[de.fix]=rt,ke),ut=((ze={})[de.reset]=We,ze[de.reload]=qe,ze[de.prepend]=He,ze[de.append]=Ye,ze[de.check]=_e,ze[de.remove]=Qe,ze[de.clip]=Ke,ze[de.insert]=tt,ze[de.replace]=nt,ze[de.update]=ot,ze[de.pause]=_e,ze[de.fix]=lt,ze),ft=_.ELEMENT,dt=_.OBJECT,ht=_.FUNC,pt=_.FUNC_WITH_X_ARGUMENTS;!function(e){e.consumer="consumer",e.element="element",e.datasource="datasource",e.run="run",e.Routines="Routines"}(at||(at={}));var gt=((st={})[at.consumer]={validators:[dt]},st[at.element]={validators:[ft],mandatory:!0},st[at.datasource]={validators:[dt],mandatory:!0},st[at.run]={validators:[pt(1)],mandatory:!0},st[at.Routines]={validators:[ht]},st),mt=function(){function e(e,t,i){this.parseInput(e,Ve),this.parseInput(t,Me),this.instanceIndex=i,this.initializeDelay=this.getInitializeDelay(),this.viewport=this.getViewport()}return e.prototype.parseInput=function(e,i){var n=this,r=H(e,i);if(!r.isValid)throw new Error("Invalid settings");Object.entries(r.params).forEach(function(e){var i,r=t(e,2),o=r[0],s=r[1];return Object.assign(n,((i={})[o]=s.value,i))})},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=G({value:e},"value",{validators:[_.ELEMENT]});return t.isValid?t.value:null},e}(),vt=function(e){var t;return(t=function(){}).process=e,t},xt=function(e){var r;return r=function(r){function o(){return null!==r&&r.apply(this,arguments)||this}return n(o,r),o.parseInput=function(n,r,o,s){void 0===o&&(o=!1);var a={data:H(r,ut[s||e])};return a.data.isValid?a.params=Object.entries(a.data.params).reduce(function(e,n){var r,o=t(n,2),s=o[0],a=o[1].value;return i(i({},e),((r={})[s]=a,r))},{}):(n.logger.log(function(){return a.data.showErrors()}),o||n.workflow.call({process:e,status:he.error,payload:{error:'Wrong argument of the "'.concat(e,'" method call')}})),a},o}(vt(e)),r.process=e,r},yt=[fe.init,de.reset,de.reload],bt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e,i){var n=e.state,r=e.workflow,o=yt.includes(i);e.logger.logCycle(!0),n.startWorkflowCycle(o,i),r.call({process:t.process,status:he.next})},t}(vt(fe.init)),wt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e,i){var n=e.workflow,r=e.viewport.scrollPosition;t.onSynthetic(e,r)||t.onThrottle(e,r,function(){return t.onScroll(e,n)})},t.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},t.onThrottle=function(e,i,n){var r=e.state,o=e.settings,s=e.logger,a=r.scroll;a.current=t.getScrollEvent(i,a.previous);var c=a.current,u=c.direction,f=c.time,d=a.previous?f-a.previous.time:1/0,h=o.throttle-d,p=isFinite(h)&&h>0,g=!!a.scrollTimer;if(s.log(function(){return[u===l.backward?"⤴":"⤵",i,p?d+"ms":"0ms",p?g?"delayed":"/ ".concat(h,"ms delay"):""]}),!p)return a.scrollTimer&&(clearTimeout(a.scrollTimer),a.scrollTimer=null),void n();g||(a.scrollTimer=setTimeout(function(){s.log(function(){var n=t.getScrollEvent(e.viewport.scrollPosition,a.current);return[n.direction===l.backward?"⤴":"⤵",n.position,n.time-f+"ms","triggered by timer set on",i]}),a.scrollTimer=null,n()},h))},t.getScrollEvent=function(e,t){var i=Number(new Date),n=l.forward;return t&&(e===t.position?n=t.direction:e<t.position&&(n=l.backward)),{position:e,direction:n,time:i}},t.onScroll=function(e,n){var r=e.state,o=r.scroll,s=r.cycle;o.previous=i({},o.current),o.current=null,s.busy.get()?e.logger.log(function(){return["skipping scroll",o.previous.position,"[pending]"]}):n.call({process:t.process,status:he.next})},t}(vt(fe.scroll)),It=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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 $;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:he.next,payload:c})},t}(xt(de.reset)),St=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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:he.next,payload:a})},t}(xt(de.reload)),kt=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}(),zt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e,i){var n=t.parseInput(e,i).params;if(n){var r=t.doUpdate(e,n);e.workflow.call({process:t.process,status:r?he.next:he.done})}},t.doUpdate=function(e,t){var i=e.buffer,n=e.viewport,r=e.state,o=e.routines,s=e.logger;if(!i.items)return s.log(function(){return"no items in Buffer"}),!1;var a=n.getEdgeVisibleItem(i.items,l.backward),c=a.item,u=a.index,f=a.diff,d=i.updateItems(t.predicate,function(e,t){return new kt(e,t,o)},u,!!t.fixRight),h=d.trackedIndex,p=d.toRemove,g=0,m=i.get(h);c&&c===m&&(g=-i.getSizeByIndex(h)+f),p.forEach(function(e){return e.hide()}),s.log(function(){return p.length?"items to remove: ["+p.map(function(e){return e.$index}).join(",")+"]":"no items to remove"}),p.length&&i.checkDefaultSize();var v=i.items.filter(function(e){return e.toInsert});return s.log(function(){return v.length?"items to render: ["+v.map(function(e){return e.$index}).join(",")+"]":"no items to render"}),r.fetch.update(h,g,v,p),!!p.length||!!v.length},t}(xt(de.update)),Et=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.run=function(e,t){var n=i.parseInput(e,t).params;if(n){var r=i.doInsert(e,n);e.workflow.call({process:i.process,status:r?he.next:he.done})}},i.doInsert=function(e,t){return!!(i.insertEmpty(e,t)||i.insertInBuffer(e,t)||i.insertVirtually(e,t))},i.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 kt(e,t,n)})&&(r.fetch.fill(i.items,i.startIndex),!0)},i.insertInBuffer=function(e,i){var n=i.before,o=i.after,s=i.beforeIndex,a=i.afterIndex,l=i.items,c=i.decrease,u=e.buffer.getIndexToInsert(n||o,s,a);if(i.virtualize||isNaN(u))return!1;var f=Number.isInteger(s)||n,d={predicate:function(e){var i=e.$index,n=e.data;return u!==i||(f?r(r([],t(l),!1),[n],!1):r([n],t(l),!1))},fixRight:c};return zt.doUpdate(e,d)},i.insertVirtually=function(e,t){var i=t.beforeIndex,n=t.afterIndex,r=t.items,o=t.decrease,s=e.buffer,a=e.state,c=e.viewport,u=Number.isInteger(i)?l.backward:l.forward,f=u===l.backward?i:n;if(!s.insertVirtually(r,f,u,!!o))return!1;var d=a.fetch,h=c.getEdgeVisibleItem(s.items,l.backward),p=h.index,g=h.diff;return d.firstVisible.index=p,isNaN(p)||(d.simulate=!0,d.firstVisible.delta=-s.getSizeByIndex(p)+g),!0},i}(xt(de.insert)),Vt=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.run=function(e,t){var n=t.process,r=t.options,o=i.parseInput(e,r,!1,n).params;if(o){var s=i.doAppend(e,n,o);e.workflow.call({process:i.process,status:s?he.next:he.done})}},i.doAppend=function(e,i,n){var o,s,a=n.bof,l=n.eof,c=n.increase,u=n.decrease,f=e.buffer,d=i===de.prepend,h=d?!c:u,p=n.items;return d?(o=(a?f.absMinIndex:f.minIndex)+(f.size?0:1),p=r([],t(p),!1).reverse()):s=(l?f.absMaxIndex:f.maxIndex)-(f.size||h?0:1),Et.doInsert(e,{items:p,beforeIndex:o,afterIndex:s,decrease:h,virtualize:n.virtualize})},i}(xt(de.append)),Mt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e){var i=e.workflow,n=e.buffer,r=e.state,o=e.viewport,s=1/0,a=-1/0;if(n.items.forEach(function(e){var t=e.size;e.setSize(),e.size!==t&&(n.cacheItem(e),s=Math.min(s,e.$index),a=Math.max(a,e.$index))}),Number.isFinite(s)){var c=r.fetch;c.first.indexBuffer=n.firstIndex,c.last.indexBuffer=n.lastIndex;var u=o.getEdgeVisibleItem(n.items,l.backward),f=u.index,d=u.diff;c.firstVisible.index=f,isNaN(f)||(c.firstVisible.delta=-n.getSizeByIndex(f)+d),c.check(n.items.filter(function(e){return e.$index>=s&&e.$index<=a}))}e.logger.stat("check"),i.call({process:t.process,status:Number.isFinite(s)?he.next:he.done})},t}(xt(de.check)),Nt=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.run=function(e,t){var n=i.parseInput(e,t).params;if(n){var r=i.doRemove(e,n);e.workflow.call({process:i.process,status:r?he.next:he.done})}},i.doRemove=function(e,t){e.state.fetch.firstVisible.index=NaN;var n=i.removeBufferedItems(e,t),r=n.length>0;if(r&&(t.indexes&&t.indexes.length&&(t.indexes=t.indexes.filter(function(e){return!n.includes(e)})),t.indexes&&t.indexes.length)){var o=(t.increase?1:0)*n.length,s=(t.increase?0:-1)*n.length;t.indexes=t.indexes.map(function(e){return e+(e<n[0]?o:s)})}var a=i.removeVirtualItems(e,t);return!(!r&&!a)&&(e.logger.stat("after remove"),!0)},i.removeBufferedItems=function(e,i){var n=i.predicate,o=i.indexes,s=i.increase;if(!n&&!o)return[];var a=function(e){return n&&n(e)||!!o&&o.includes(e.$index)},l=e.buffer.items.reduce(function(e,i){return a(i)?r(r([],t(e),!1),[i.$index],!1):e},[]),c={predicate:function(e){return!a(e)},fixRight:s};return zt.doUpdate(e,c),l},i.removeVirtualItems=function(e,t){var n=t.indexes,r=t.increase;if(!n||!n.length)return!1;for(var o=e.buffer,s=e.viewport,a=e.state,c=o.finiteAbsMinIndex,u=o.firstIndex,f=o.finiteAbsMaxIndex,d=o.lastIndex,h=[],p=0,g=n.length;p<g;p++){if((x=n[p])>=c&&!isNaN(u)&&x<u)h.push(x);else{if(!(x<=f&&!isNaN(d)&&x>d))continue;h.push(x)}}if(!h.length)return!1;var m=a.fetch;if(isNaN(m.firstVisible.index)){var v=s.getEdgeVisibleItem(o.items,l.backward),x=v.index,y=v.diff;m.firstVisible.index=x,isNaN(x)||(m.firstVisible.delta=-o.getSizeByIndex(x)+y)}return e.logger.log(function(){return"going to remove ".concat(h.length," item(s) virtually")}),o.removeVirtually(h,!!r),o.checkDefaultSize(),i.shiftFirstVisibleIndex(e,h,!!r),!0},i.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)}},i}(xt(de.remove)),Ot=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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:he.next})},t}(xt(de.clip)),$t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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?he.next:he.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 zt.doUpdate(e,r)},t}(xt(de.replace)),Pt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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:de.pause,status:he.done});e.logger.log("resume scroller"),e.state.paused.set(!1),e.workflow.call({process:de.pause,status:he.next})},t}(xt(de.pause)),Rt=ct[de.fix],At=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.run=function(e,n){var r=e.workflow,o=i.parseInput(e,n),s=o.data;o.params&&(Object.entries(s.params).forEach(function(n){var r=t(n,2),o=r[0],a=r[1];a.isSet&&a.isValid&&i.runByType(e,o,a.value,s)}),r.call({process:i.process,status:he.done}))},i.runByType=function(e,t,n,r){switch(t){case Rt.scrollPosition:return i.setScrollPosition(e,n);case Rt.minIndex:return i.setMinIndex(e,n);case Rt.maxIndex:return i.setMaxIndex(e,n);case Rt.updater:return i.updateItems(e,n);case Rt.scrollToItem:if(r.params){var o=r.params[Rt.scrollToItemOpt],s=o?o.value:void 0;return i.scrollToItem(e,n,s)}return;case Rt.scrollToItemOpt:return}},i.setScrollPosition=function(e,t){var i=e.viewport,n=t;t===-1/0?n=0:t===1/0&&(n=i.getScrollableSize()),i.setPosition(n)},i.setMinIndex=function(e,t){var i=e.buffer;e.settings.minIndex=t,i.absMinIndex=t},i.setMaxIndex=function(e,t){var i=e.buffer;e.settings.maxIndex=t,i.absMaxIndex=t},i.updateItems=function(e,i){var n=e.buffer,o=e.logger,s=!1,a=function(){return s=!0};n.items.forEach(function(e){return i(e.get(),a)}),s&&(o.log(function(){return"update Buffer.items reference"}),n.items=r([],t(n.items),!1))},i.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"})},i}(xt(de.fix)),Ct=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e){var i=e.state.startInnerLoop();e.workflow.call({process:t.process,status:he.next,payload:i})},t}(vt(fe.start)),Ft=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.run=function(e){var t=e.workflow,n=e.buffer,r=e.state,o=r.fetch,s=r.cycle;o.minIndex=n.minIndex,i.setPositionsAndIndexes(e),i.skipBufferedItems(e),e.settings.infinite&&i.checkBufferGaps(e),i.checkFetchPackSize(e),i.setFetchDirection(e),t.call({process:i.process,status:i.getStatus(e),payload:{process:s.initiator}})},i.setPositionsAndIndexes=function(e){i.setPositions(e),i.setFirstIndex(e),i.setLastIndex(e),e.logger.fetch()},i.setPositions=function(e){var t=e.state,n=e.viewport,r=t.fetch.positions,o=n.getBufferPadding();r.before=n.scrollPosition,r.startDelta=i.getStartDelta(e),r.relative=r.before-r.startDelta,r.start=r.relative-o,r.end=r.relative+n.getSize()+o},i.getStartDelta=function(e){var i=e.buffer,n=e.viewport.offset,o=0;if(n&&(o+=n),!i.defaultSize)return o;for(var s=i.finiteAbsMinIndex;s<i.startIndex;s++)o+=i.getSizeByIndex(s);return e.logger.log(function(){return r(["start delta is ".concat(o)],t(n?[" (+".concat(n," offset)")]:[]),!1)}),o},i.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},i.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 h=c.indexBuffer,p=c.position;for(t=h;;){t=h;var g=n.getSizeByIndex(h);if(p+=g,isNaN(a.index)&&p>f&&(a.index=h,s.innerLoop.isInitial||(a.delta=p-g-f)),p>=d)break;if(h++>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)},i.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")}},i.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)")}},i.checkFetchPackSize=function(e){var t=e.buffer,n=e.state.fetch;if(n.shouldFetch){var r=n.first.index,o=n.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&&(n.last.index=n.last.indexBuffer=a)}else{var l=Math.max(r-s,t.absMinIndex);l<r&&(n.first.index=n.first.indexBuffer=l)}n.first.index===r&&n.last.index===o||(e.logger.fetch("after bufferSize adjustment"),i.skipBufferedItems(e))}}},i.setFetchDirection=function(e){var t=e.buffer,i=e.state.fetch;if(i.last.index){var n=l.forward;t.size&&(n=i.last.index<t.items[0].$index?l.backward:l.forward),i.direction=n,e.logger.log(function(){return'fetch direction is "'.concat(n,'"')})}},i.getStatus=function(e){var t=e.state,i=t.cycle,n=t.fetch;return i.initiator===de.clip?(e.logger.log(function(){return'going to skip fetch due to "'.concat(de.clip,'" process')}),he.next):n.shouldFetch?(e.logger.log(function(){return"going to fetch ".concat(n.count," items started from index ").concat(n.index)}),he.next):he.done},i}(vt(fe.preFetch)),Tt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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:he.next})},fail:function(e){return i.call({process:t.process,status:he.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}(vt(fe.fetch)),jt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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?he.next:he.done})):i.call({process:t.process,status:he.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 kt(s+i,t,e.routines)}),t.setItems(n.items)},t}(vt(fe.postFetch)),Lt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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?he.done:he.next,payload:{process:s.initiator}}):i.call({process:t.process,status:he.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}(vt(fe.render)),Bt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e,n){var r=(void 0===n?{}:n).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:he.done});else{var a=t.shouldContinueRun(e,r);e.state.endInnerLoop(),o.call({process:t.process,status:a?he.next:he.done,payload:i({},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}(vt(fe.end)),Dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(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:he.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,h=f.backward,p=0,g=0;for(u=r.finiteAbsMinIndex;u<t;u++)p+=r.getSizeByIndex(u);for(u=i+1;u<=r.finiteAbsMaxIndex;u++)g+=r.getSizeByIndex(u);var m=p+(n.getScrollableSize()-d.size-h.size)+g,v=n.getSize()-m;v>0&&(o.inverse?p+=v:g+=v,e.logger.log(function(){return o.inverse?"backward":"forward"+" padding will be increased by ".concat(v," to fill the viewport")})),h.size=p,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&&Bt.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}(vt(fe.adjust)),_t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e){t.prepareClip(e),e.workflow.call({process:t.process,status:he.next,payload:{doClip:e.state.clip.doClip}})},t.prepareClip=function(e){var i=e.state,n=i.fetch,r=i.clip;if(!t.shouldNotClip(e)){var o=n.first.indexBuffer,s=n.last.indexBuffer;e.logger.log(function(){return"looking for ".concat(n.direction?"anti-"+n.direction+" ":"","items ")+"that are out of [".concat(o,"..").concat(s,"] range")}),t.isBackward(e,o)&&t.prepareClipByDirection(e,l.backward,o),t.isForward(e,s)&&t.prepareClipByDirection(e,l.forward,s),r.doClip||e.logger.log("skipping clip [no items to clip]")}},t.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)},t.isBackward=function(e,t){var i=e.buffer,n=e.state,r=n.clip,o=n.fetch;return r.force?r.forceBackward:o.direction!==l.backward&&t-1>=i.absMinIndex},t.isForward=function(e,t){var i=e.buffer,n=e.state,r=n.clip,o=n.fetch;return r.force?r.forceForward:o.direction!==l.forward&&t+1<=i.absMaxIndex},t.prepareClipByDirection=function(e,t,i){var n=t===l.forward;e.buffer.items.forEach(function(r){(!n&&r.$index<i||n&&r.$index>i)&&(r.toRemove=!0,r.removeDirection=t,e.state.clip.doClip=!0)})},t}(vt(fe.preClip)),Wt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.run=function(e){var i=e.workflow;t.doClip(e),i.call({process:t.process,status:he.next})},t.doClip=function(e){var t,i=e.buffer,n=e.viewport,r=e.state,o=e.logger,s=((t={})[l.backward]=0,t[l.forward]=0,t);o.stat("before clip (".concat(++r.clip.callCount,")"));var a=i.items.filter(function(e){return!!e.toRemove&&(e.hide(),s[e.removeDirection]+=e.size,!0)});a.length&&(s[l.backward]&&(n.paddings.byDirection(l.backward).size+=s[l.backward]),s[l.forward]&&(n.paddings.byDirection(l.forward).size+=s[l.forward]),e.settings.onBeforeClip&&e.settings.onBeforeClip(a.map(function(e){return e.get()}))),i.clip(),o.log(function(){var e=a.map(function(e){return e.$index});return e.length?["clipped ".concat(e.length," item(s) from Buffer")+(s.backward?", +".concat(s.backward," fwd px"):"")+(s.forward?", +".concat(s.forward," bwd px"):"")+", range: [".concat(e[0],"..").concat(e[e.length-1],"]")]:"clipped 0 items from Buffer"}),o.stat("after clip")},t}(vt(fe.clip)),Ut=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":"[