vscroll 1.5.2 → 1.5.3-passive

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.
Files changed (73) hide show
  1. package/dist/bundles/vscroll.esm5.js +120 -62
  2. package/dist/bundles/vscroll.esm5.js.map +1 -1
  3. package/dist/bundles/vscroll.esm5.min.js +2 -2
  4. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  5. package/dist/bundles/vscroll.esm6.js +115 -56
  6. package/dist/bundles/vscroll.esm6.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.min.js +2 -2
  8. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  9. package/dist/bundles/vscroll.umd.js +121 -63
  10. package/dist/bundles/vscroll.umd.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.min.js +2 -2
  12. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  13. package/dist/esm2015/classes/adapter/context.js +11 -5
  14. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/props.js +4 -2
  16. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  17. package/dist/esm2015/classes/adapter/wanted.js +29 -0
  18. package/dist/esm2015/classes/adapter/wanted.js.map +1 -0
  19. package/dist/esm2015/classes/adapter.js +65 -29
  20. package/dist/esm2015/classes/adapter.js.map +1 -1
  21. package/dist/esm2015/classes/datasource.js +2 -0
  22. package/dist/esm2015/classes/datasource.js.map +1 -1
  23. package/dist/esm2015/classes/domRoutines.js +1 -1
  24. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  25. package/dist/esm2015/classes/logger.js +1 -1
  26. package/dist/esm2015/classes/logger.js.map +1 -1
  27. package/dist/esm2015/inputs/validation.js.map +1 -1
  28. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  29. package/dist/esm2015/interfaces/index.js.map +1 -1
  30. package/dist/esm2015/interfaces/process.js.map +1 -1
  31. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  32. package/dist/esm2015/processes/end.js +5 -18
  33. package/dist/esm2015/processes/end.js.map +1 -1
  34. package/dist/esm2015/scroller.js +1 -1
  35. package/dist/esm2015/scroller.js.map +1 -1
  36. package/dist/esm2015/version.js +1 -1
  37. package/dist/esm2015/version.js.map +1 -1
  38. package/dist/esm2015/workflow.js.map +1 -1
  39. package/dist/esm5/classes/adapter/context.js +11 -6
  40. package/dist/esm5/classes/adapter/context.js.map +1 -1
  41. package/dist/esm5/classes/adapter/props.js +4 -2
  42. package/dist/esm5/classes/adapter/props.js.map +1 -1
  43. package/dist/esm5/classes/adapter/wanted.js +30 -0
  44. package/dist/esm5/classes/adapter/wanted.js.map +1 -0
  45. package/dist/esm5/classes/adapter.js +69 -34
  46. package/dist/esm5/classes/adapter.js.map +1 -1
  47. package/dist/esm5/classes/datasource.js +2 -0
  48. package/dist/esm5/classes/datasource.js.map +1 -1
  49. package/dist/esm5/classes/domRoutines.js +1 -1
  50. package/dist/esm5/classes/domRoutines.js.map +1 -1
  51. package/dist/esm5/classes/logger.js +1 -1
  52. package/dist/esm5/classes/logger.js.map +1 -1
  53. package/dist/esm5/inputs/validation.js.map +1 -1
  54. package/dist/esm5/interfaces/adapter.js.map +1 -1
  55. package/dist/esm5/interfaces/index.js.map +1 -1
  56. package/dist/esm5/interfaces/process.js.map +1 -1
  57. package/dist/esm5/interfaces/workflow.js.map +1 -1
  58. package/dist/esm5/processes/end.js +5 -18
  59. package/dist/esm5/processes/end.js.map +1 -1
  60. package/dist/esm5/scroller.js +1 -1
  61. package/dist/esm5/scroller.js.map +1 -1
  62. package/dist/esm5/version.js +1 -1
  63. package/dist/esm5/version.js.map +1 -1
  64. package/dist/esm5/workflow.js.map +1 -1
  65. package/dist/typings/classes/adapter/wanted.d.ts +14 -0
  66. package/dist/typings/classes/adapter.d.ts +7 -4
  67. package/dist/typings/classes/logger.d.ts +1 -1
  68. package/dist/typings/interfaces/adapter.d.ts +6 -0
  69. package/dist/typings/interfaces/index.d.ts +2 -2
  70. package/dist/typings/interfaces/workflow.d.ts +1 -1
  71. package/dist/typings/processes/end.d.ts +1 -2
  72. package/dist/typings/workflow.d.ts +1 -1
  73. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
- * vscroll (FESM5) by Denis Hilt | https://github.com/dhilt/vscroll | 2022-09-12T12:01:26.007Z | MIT license
2
+ * vscroll (FESM5) by Denis Hilt | https://github.com/dhilt/vscroll | 2022-11-04T12:11:43.634Z | MIT license
3
3
  */
4
4
 
5
- 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.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.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 c,l,u,f=o,d=s,h=function(){return null},p={immediate:!0,success:!0,details:"Adapter is not initialized"},g=function(){return Promise.resolve(p)},m={core:{name:"",version:""},consumer:{name:"",version:""}},v={firstIndex:NaN,lastIndex:NaN,minIndex:NaN,maxIndex:NaN,absMinIndex:-1/0,absMaxIndex:1/0,defaultSize:NaN},x={data:{},element:{}},y=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:m,onDemand:!0},{type:d.Scalar,name:f.itemsCount,value:0,onDemand:!0},{type:d.Scalar,name:f.bufferInfo,value:v,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:x,reactive:f.firstVisible$,wanted:!0},{type:d.Scalar,name:f.lastVisible,value:x,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.WorkflowRunner,name:f.reset,value:g},{type:d.WorkflowRunner,name:f.reload,value:g},{type:d.WorkflowRunner,name:f.append,value:g},{type:d.WorkflowRunner,name:f.prepend,value:g},{type:d.WorkflowRunner,name:f.check,value:g},{type:d.WorkflowRunner,name:f.remove,value:g},{type:d.WorkflowRunner,name:f.clip,value:g},{type:d.WorkflowRunner,name:f.insert,value:g},{type:d.WorkflowRunner,name:f.replace,value:g},{type:d.WorkflowRunner,name:f.update,value:g},{type:d.WorkflowRunner,name:f.fix,value:g},{type:d.Function,name:f.relax,value:h},{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(x,{emitOnSubscribe:!0})},{type:d.Reactive,name:f.lastVisible$,value:new a(x,{emitOnSubscribe:!0})},{type:d.Reactive,name:f.bof$,value:new a},{type:d.Reactive,name:f.eof$,value:new a}]},b=new Map,I={name:"vscroll",version:"1.5.2"},w=0,S=function(e){var t=this,n=e.mock,r=e.reactive,a=++w,c={configurable:!0},l={};Object.defineProperty(this,o.id,i({get:function(){return a}},c)),Object.defineProperty(this,o.mock,i({get:function(){return n}},c)),Object.defineProperty(this,o.augmented,i({get:function(){return!1}},c)),Object.defineProperty(this,o.version,i({get:function(){return I.version}},c)),y().filter((function(e){return!e.permanent})).forEach((function(e){var n=e.name,o=e.value,a=e.type;if(r&&a===s.Reactive){var u=r[n];u&&(l[n]=i(i({},u),{default:o}),o=u.source)}Object.defineProperty(t,n,i({get:function(){return o}},c))})),r&&b.set(a,l)},z=function(){function e(e,t){this.get=e.get,e.settings&&(this.settings=e.settings),e.devSettings&&(this.devSettings=e.devSettings);var i=new S(t||{mock:!1});this.adapter=i}return e.prototype.dispose=function(){b.delete(this.adapter.id)},e}(),k=function(e){return function(t){function i(i){var n="function"==typeof e?e():void 0;return t.call(this,i,n)||this}return n(i,t),i}(z)},E=k();!function(e){e.forward="forward",e.backward="backward"}(c||(c={})),function(e){e.Average="average",e.Constant="constant",e.Frequent="frequent"}(l||(l={})),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 V,M,N=function(e,t){return(t||[""]).reduce((function(e,t,i){return e.replace("{arg".concat(i+1,"}"),t)}),e)},O=function(e){return"number"==typeof e||"string"==typeof e&&""!==e?Number(e):NaN},P=function(e){var t=O(e),i=[];return Number.isNaN(t)&&i.push(u.number),{value:t,isSet:!0,isValid:!i.length,errors:i}},$=function(e,t){return function(i){var n=P(i);if(!n.isValid)return n;var r=n.value,o=[];return r<e&&(t?r=e:o.push(N(u.moreOrEqual,[String(e)]))),{value:r,isSet:!0,isValid:!o.length,errors:o}}},A=function(e){var t=[];return"function"!=typeof e&&t.push(u.function),{value:e,isSet:!0,isValid:!t.length,errors:t}},R=function(e,t){return function(i){var n=A(i);if(!n.isValid)return n;var r=[];return((i=n.value).length<e||i.length>t)&&r.push(N(u.funcOfXToYArguments,[String(e),String(t)])),{value:i,isSet:!0,isValid:!r.length,errors:r}}},C=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 c=e.length-1;c>=0;c--){var l=e[c];if("string"!=typeof l){r.push(N(a,[e.join('", "')])+" (non-string token)");break}var f=n&&Object.prototype.hasOwnProperty.call(n,l);if(o&&f){r.push(N(a,[e.join('", "')])+" (".concat(l," is present)"));break}s&&f&&(s=!1)}t&&s&&r.push(N(a,[e.join('", "')]))}else r.push(N(a,["undefined"]));return{value:i,isSet:o,isValid:!r.length,errors:r}}},j=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(N(u.enum,["["+n.join(",")+"]"])),{value:t,isSet:!0,isValid:!i.length,errors:i}}},T={NUMBER:{type:u.number,method:P},INTEGER:{type:u.integer,method:function(e){var t=[];e=O(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=O(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:$(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"[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(N(u.itemList,["of items of the same type"]));break}}else i.push(N(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 HTMLDocument||t.push(u.element),{value:e,isSet:!0,isValid:!t.length,errors:t}}},FUNC:{type:u.function,method:A},FUNC_WITH_X_ARGUMENTS:function(e){return{type:u.funcOfxArguments,method:(t=e,function(e){var i=A(e);if(!i.isValid)return i;var n=[];return(e=i.value).length!==t&&n.push(N(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=A(e);if(!i.isValid)return i;var n=[];return(e=i.value).length<t&&n.push(N(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:R(e,t)}},ONE_OF_CAN:function(e){return{type:u.oneOfCan,method:C(e,!1)}},ONE_OF_MUST:function(e){return{type:u.oneOfMust,method:C(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:j(e)}}},F=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}(),B=function(e,i,n){var o=e.value,s=e.errors,a=i.method(o,n),c=r(r([],t(s),!1),t(a.errors),!1);return{value:a.value,isSet:a.isSet,isValid:!c.length,errors:c}},L=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:[]}},D=function(t,i,n){var r,o,s=L(t[i],n);if(s.isSet)try{for(var a=e(Object.values(n.validators)),c=a.next();!c.done;c=a.next()){var l=c.value,f=B(s,l,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{c&&!c.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 B(s,d,t)}return s},_=function(e,i){var n=new F(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?D(n.context,r,o):L(void 0,o))})),n},U=T.OBJECT,W=T.FUNC_WITH_X_AND_MORE_ARGUMENTS;!function(e){e.get="get",e.settings="settings",e.devSettings="devSettings"}(M||(M={}));var q,G,H,X,Y,J=((V={})[M.get]={validators:[W(2)],mandatory:!0},V[M.settings]={validators:[U]},V[M.devSettings]={validators:[U]},V),Q=T.NUMBER,Z=T.INTEGER,K=T.INTEGER_UNLIMITED,ee=T.MORE_OR_EQUAL,te=T.BOOLEAN,ie=T.ELEMENT,ne=T.FUNC,re=T.OR,oe=T.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"}(X||(X={})),function(e){e.debug="debug",e.immediateLog="immediateLog",e.logProcessRun="logProcessRun",e.logTime="logTime",e.throttle="throttle",e.initDelay="initDelay",e.initWindowDelay="initWindowDelay",e.cacheData="cacheData",e.cacheOnReload="cacheOnReload",e.dismissOverflowAnchor="dismissOverflowAnchor",e.directionPriority="directionPriority"}(Y||(Y={}));var se,ae,ce,le,ue,fe,de,he,pe,ge,me,ve,xe,ye,be,Ie=((q={})[X.itemSize]=1,q[X.bufferSize]=1,q[X.padding]=.01,q[Y.throttle]=0,q[Y.initDelay]=0,q[Y.initWindowDelay]=0,q),we=((G={})[X.adapter]={validators:[te],defaultValue:!1},G[X.startIndex]={validators:[Z],defaultValue:1},G[X.minIndex]={validators:[K],defaultValue:-1/0},G[X.maxIndex]={validators:[K],defaultValue:1/0},G[X.itemSize]={validators:[Z,ee(Ie[X.itemSize],!0)],defaultValue:NaN},G[X.bufferSize]={validators:[Z,ee(Ie[X.bufferSize],!0)],defaultValue:5},G[X.padding]={validators:[Q,ee(Ie[X.padding],!0)],defaultValue:.5},G[X.infinite]={validators:[te],defaultValue:!1},G[X.horizontal]={validators:[te],defaultValue:!1},G[X.windowViewport]={validators:[te],defaultValue:!1},G[X.viewportElement]={validators:[re([ie,ne])],defaultValue:null},G[X.inverse]={validators:[te],defaultValue:!1},G[X.onBeforeClip]={validators:[ne],defaultValue:null},G[X.sizeStrategy]={validators:[oe(l)],defaultValue:l.Average},G),Se=((H={})[Y.debug]={validators:[te],defaultValue:!1},H[Y.immediateLog]={validators:[te],defaultValue:!0},H[Y.logProcessRun]={validators:[te],defaultValue:!1},H[Y.logTime]={validators:[te],defaultValue:!1},H[Y.throttle]={validators:[Z,ee(Ie[Y.throttle],!0)],defaultValue:40},H[Y.initDelay]={validators:[Z,ee(Ie[Y.initDelay],!0)],defaultValue:1},H[Y.initWindowDelay]={validators:[Z,ee(Ie[Y.initWindowDelay],!0)],defaultValue:40},H[Y.cacheData]={validators:[te],defaultValue:!1},H[Y.cacheOnReload]={validators:[te],defaultValue:!1},H[Y.dismissOverflowAnchor]={validators:[te],defaultValue:!0},H[Y.directionPriority]={validators:[oe(c)],defaultValue:c.backward},H);!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"}(se||(se={})),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.fix="adapter.fix"}(ae||(ae={})),function(e){e.start="start",e.next="next",e.done="done",e.error="error"}(ce||(ce={}));var ze,ke=T.INTEGER,Ee=T.INTEGER_UNLIMITED,Ve=T.BOOLEAN,Me=T.OBJECT,Ne=T.ITEM_LIST,Oe=T.FUNC_WITH_X_ARGUMENTS,Pe=T.FUNC_WITH_X_AND_MORE_ARGUMENTS,$e=T.FUNC_WITH_X_TO_Y_ARGUMENTS,Ae=T.ONE_OF_MUST,Re=T.ONE_OF_CAN,Ce=T.OR;ze||(ze={});var je,Te=((le={})[M.get]={validators:[Pe(2)]},le[M.settings]={validators:[Me]},le[M.devSettings]={validators:[Me]},le);!function(e){e.reloadIndex="reloadIndex"}(je||(je={}));var Fe,Be=((ue={})[je.reloadIndex]={validators:[ke]},ue);!function(e){e.items="items",e.bof="bof",e.increase="increase"}(Fe||(Fe={}));var Le,De=((fe={})[Fe.items]={validators:[Ne],mandatory:!0},fe[Fe.bof]={validators:[Ve],defaultValue:!1},fe[Fe.increase]={validators:[Ve],defaultValue:!1},fe);!function(e){e.items="items",e.eof="eof",e.decrease="decrease"}(Le||(Le={}));var _e,Ue=((de={})[Le.items]={validators:[Ne],mandatory:!0},de[Le.eof]={validators:[Ve],defaultValue:!1},de[Le.decrease]={validators:[Ve],defaultValue:!1},de);!function(e){e.predicate="predicate",e.indexes="indexes",e.increase="increase"}(_e||(_e={}));var We,qe=((he={})[_e.predicate]={validators:[Oe(1),Ae([_e.indexes])]},he[_e.indexes]={validators:[Ne,Ae([_e.predicate])]},he[_e.increase]={validators:[Ve],defaultValue:!1},he);!function(e){e.backwardOnly="backwardOnly",e.forwardOnly="forwardOnly"}(We||(We={}));var Ge,He=((pe={})[We.backwardOnly]={validators:[Ve,Re([We.forwardOnly])],defaultValue:!1},pe[We.forwardOnly]={validators:[Ve,Re([We.backwardOnly])],defaultValue:!1},pe);!function(e){e.items="items",e.before="before",e.after="after",e.beforeIndex="beforeIndex",e.afterIndex="afterIndex",e.decrease="decrease"}(Ge||(Ge={}));var Xe,Ye=((ge={})[Ge.items]={validators:[Ne],mandatory:!0},ge[Ge.before]={validators:[Oe(1),Ae([Ge.after,Ge.beforeIndex,Ge.afterIndex])]},ge[Ge.after]={validators:[Oe(1),Ae([Ge.before,Ge.beforeIndex,Ge.afterIndex])]},ge[Ge.beforeIndex]={validators:[ke,Ae([Ge.before,Ge.after,Ge.afterIndex])]},ge[Ge.afterIndex]={validators:[ke,Ae([Ge.before,Ge.after,Ge.beforeIndex])]},ge[Ge.decrease]={validators:[Ve],defaultValue:!1},ge);!function(e){e.items="items",e.predicate="predicate",e.fixRight="fixRight"}(Xe||(Xe={}));var Je,Qe=((me={})[Ge.items]={validators:[Ne],mandatory:!0},me[Xe.predicate]={validators:[Oe(1)],mandatory:!0},me[Xe.fixRight]={validators:[Ve],defaultValue:!1},me);!function(e){e.predicate="predicate",e.fixRight="fixRight"}(Je||(Je={}));var Ze,Ke=((ve={})[Je.predicate]={validators:[Oe(1)],mandatory:!0},ve[Je.fixRight]={validators:[Ve],defaultValue:!1},ve);!function(e){e.scrollPosition="scrollPosition",e.minIndex="minIndex",e.maxIndex="maxIndex",e.updater="updater",e.scrollToItem="scrollToItem",e.scrollToItemOpt="scrollToItemOpt"}(Ze||(Ze={}));var et=((xe={})[Ze.scrollPosition]={validators:[Ee]},xe[Ze.minIndex]={validators:[Ee]},xe[Ze.maxIndex]={validators:[Ee]},xe[Ze.updater]={validators:[$e(1,2)]},xe[Ze.scrollToItem]={validators:[Oe(1)]},xe[Ze.scrollToItemOpt]={validators:[Ce([Ve,Me])]},xe),tt=((ye={})[ae.reset]=M,ye[ae.reload]=je,ye[ae.prepend]=Fe,ye[ae.append]=Le,ye[ae.check]=ze,ye[ae.remove]=_e,ye[ae.clip]=We,ye[ae.insert]=Ge,ye[ae.replace]=Xe,ye[ae.update]=Je,ye[ae.fix]=Ze,ye),it=((be={})[ae.reset]=Te,be[ae.reload]=Be,be[ae.prepend]=De,be[ae.append]=Ue,be[ae.check]={},be[ae.remove]=qe,be[ae.clip]=He,be[ae.insert]=Ye,be[ae.replace]=Qe,be[ae.update]=Ke,be[ae.fix]=et,be),nt=function(){function e(e,t,i){this.parseInput(e,we),this.parseInput(t,Se),this.instanceIndex=i,this.initializeDelay=this.getInitializeDelay(),this.viewport=this.getViewport()}return e.prototype.parseInput=function(e,i){var n=this,r=_(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=D({value:e},"value",{validators:[T.ELEMENT]});return t.isValid?t.value:null},e}(),rt=function(e){var t;return(t=function(){}).process=e,t},ot=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:_(r,it[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:ce.error,payload:{error:'Wrong argument of the "'.concat(e,'" method call')}})),a},o}(rt(e)),r.process=e,r},st=[se.init,ae.reset,ae.reload],at=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=st.includes(i);e.logger.logCycle(!0),n.startWorkflowCycle(o,i),r.call({process:t.process,status:ce.next})},t}(rt(se.init)),ct=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.scroll,o=e.settings.throttle,s=e.logger;r.current=t.getScrollEvent(i,r.previous);var a=r.current,l=a.direction,u=a.time,f=r.previous?u-r.previous.time:1/0,d=o-f,h=isFinite(d)&&d>0,p=!!r.scrollTimer;if(s.log((function(){return[l===c.backward?"⤴":"⤵",i,h?f+"ms":"0ms",h?p?"delayed":"/ ".concat(d,"ms delay"):""]})),!h)return r.scrollTimer&&(clearTimeout(r.scrollTimer),r.scrollTimer=null),void n();p||(r.scrollTimer=setTimeout((function(){s.log((function(){var n=t.getScrollEvent(e.viewport.scrollPosition,r.current);return[n.direction===c.backward?"⤴":"⤵",n.position,n.time-u+"ms","triggered by timer set on",i]})),r.scrollTimer=null,n()}),d))},t.getScrollEvent=function(e,t){var i=Number(new Date),n=c.forward;return t&&(e===t.position?n=t.direction:e<t.position&&(n=c.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:ce.next})},t}(rt(se.scroll)),lt=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.paddings,s=e.state.cycle;if(i){var a=t.parseInput(e,i).data;if(!a.isValid)return;var c=i instanceof E;Object.keys(M).forEach((function(e){var t=a.params[e],i=n;(t.isSet||c&&i[e])&&(i[e]=t.value)}))}r.reset(!0),o.backward.reset(),o.forward.reset();var l={datasource:n};s.busy.get()&&(l.finalize=!0,s.interrupter=t.process),e.workflow.call({process:t.process,status:ce.next,payload:l})},t}(ot(ae.reset)),ut=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()&&(r.scroll.stop(),a.finalize=!0,r.cycle.interrupter=t.process),e.workflow.call({process:t.process,status:ce.next,payload:a})},t}(ot(ae.reload)),ft=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}(),dt=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?ce.next:ce.done})}},t.doUpdate=function(e,t){var i=e.buffer,n=e.viewport,r=e.state.fetch,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,c.backward),l=a.item,u=a.index,f=a.diff,d=i.updateItems(t.predicate,(function(e,t){return new ft(e,t,o)}),u,!!t.fixRight),h=d.trackedIndex,p=d.toRemove,g=0,m=i.get(h);l&&l===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.update(h,g,v,p),!!p.length||!!v.length},t}(ot(ae.update)),ht=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?ce.next:ce.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.fetch;if(i.size)return!1;var o=t.beforeIndex,s=t.afterIndex,a=t.items,c=t.decrease;return!!i.fillEmpty(a,o,s,!!c,(function(e,t){return new ft(e,t,n)}))&&(r.fill(i.items,i.startIndex),!0)},i.insertInBuffer=function(e,i){var n=i.before,o=i.after,s=i.beforeIndex,a=i.afterIndex,c=i.items,l=i.decrease,u=e.buffer.getIndexToInsert(n||o,s,a);if(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(c),!1),[n],!1):r([n],t(c),!1))},fixRight:l};return dt.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.fetch,l=e.viewport,u=Number.isInteger(i)?c.backward:c.forward,f=u===c.backward?i:n;if(!s.insertVirtually(r,f,u,!!o))return!1;var d=l.getEdgeVisibleItem(s.items,c.backward),h=d.index,p=d.diff;return a.firstVisible.index=h,isNaN(h)||(a.simulate=!0,a.firstVisible.delta=-s.getSizeByIndex(h)+p),!0},i}(ot(ae.insert)),pt=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?ce.next:ce.done})}},i.doAppend=function(e,i,n){var o,s,a=n.bof,c=n.eof,l=n.increase,u=n.decrease,f=e.buffer,d=i===ae.prepend,h=d?!l:u,p=n.items;return d?(o=(a?f.absMinIndex:f.minIndex)+(f.size?0:1),p=r([],t(p),!1).reverse()):s=(c?f.absMaxIndex:f.maxIndex)-(f.size||h?0:1),ht.doInsert(e,{items:p,beforeIndex:o,afterIndex:s,decrease:h})},i}(ot(ae.append)),gt=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.fetch,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)){r.first.indexBuffer=n.firstIndex,r.last.indexBuffer=n.lastIndex;var l=o.getEdgeVisibleItem(n.items,c.backward),u=l.index,f=l.diff;r.firstVisible.index=u,isNaN(u)||(r.firstVisible.delta=-n.getSizeByIndex(u)+f),r.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)?ce.next:ce.done})},t}(ot(ae.check)),mt=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?ce.next:ce.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)},c=e.buffer.items.reduce((function(e,i){return a(i)?r(r([],t(e),!1),[i.$index],!1):e}),[]),l={predicate:function(e){return!a(e)},fixRight:s};return dt.doUpdate(e,l),c},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.fetch,l=o.finiteAbsMinIndex,u=o.firstIndex,f=o.finiteAbsMaxIndex,d=o.lastIndex,h=[],p=0,g=n.length;p<g;p++){if((v=n[p])>=l&&!isNaN(u)&&v<u)h.push(v);else{if(!(v<=f&&!isNaN(d)&&v>d))continue;h.push(v)}}if(!h.length)return!1;if(isNaN(a.firstVisible.index)){var m=s.getEdgeVisibleItem(o.items,c.backward),v=m.index,x=m.diff;a.firstVisible.index=v,isNaN(v)||(a.firstVisible.delta=-o.getSizeByIndex(v)+x)}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}(ot(ae.remove)),vt=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:ce.next})},t}(ot(ae.clip)),xt=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?ce.next:ce.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 dt.doUpdate(e,r)},t}(ot(ae.replace)),yt=tt[ae.fix],bt=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:ce.done}))},i.runByType=function(e,t,n,r){switch(t){case yt.scrollPosition:return i.setScrollPosition(e,n);case yt.minIndex:return i.setMinIndex(e,n);case yt.maxIndex:return i.setMaxIndex(e,n);case yt.updater:return i.updateItems(e,n);case yt.scrollToItem:if(r.params){var o=r.params[yt.scrollToItemOpt],s=o?o.value:void 0;return i.scrollToItem(e,n,s)}return;case yt.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}(ot(ae.fix)),It=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:ce.next,payload:i})},t}(rt(se.start)),wt=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.fetch.positions,n=e.viewport,r=n.getBufferPadding();t.before=n.scrollPosition,t.startDelta=i.getStartDelta(e),t.relative=t.before-t.startDelta,t.start=t.relative-r,t.end=t.relative+n.getSize()+r},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.start,o=n.first,s=i.startIndex,a=0;if(t.cycle.innerLoop.isInitial)e.logger.log("skipping fetch backward direction [initial loop]");else if(i.defaultSize)for(var c=a,l=s;;){if(r>=0){var u=i.getSizeByIndex(l);if(c+u-r>0){s=l,a=c;break}if(c+=u,++l<i.absMinIndex)break}if(r<0){if(--l<i.absMinIndex)break;if(s=l,a=c-=i.getSizeByIndex(l),c-r<=0)break}}else e.logger.log("skipping fetch backward direction [no item size]");o.index=o.indexBuffer=Math.max(s,i.absMinIndex),o.position=a},i.setLastIndex=function(e){var t,i=e.state,n=i.fetch,r=i.cycle,o=e.buffer,s=e.settings,a=n.firstVisible,c=n.positions,l=c.relative,u=c.end,f=n.first,d=n.last;if(o.defaultSize){var h=f.indexBuffer,p=f.position;for(t=h;;){t=h;var g=o.getSizeByIndex(h);if(p+=g,isNaN(a.index)&&p>l&&(a.index=h,r.innerLoop.isInitial||(a.delta=p-g-l)),p>=u)break;if(h++>o.absMaxIndex)break}}else t=o.startIndex+s.bufferSize-1,e.logger.log("forcing fetch forward direction [no item size]");d.index=d.indexBuffer=Math.min(t,o.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 c=o[0];o[0].length&&o[1]&&o[1].length&&(i.hasAnotherPack=!0,o[1].length>=o[0].length&&(c=o[1])),i.first.index=Math.max(c[0],t.absMinIndex),i.last.index=Math.min(c[c.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 c=Math.max(r-s,t.absMinIndex);c<r&&(n.first.index=n.first.indexBuffer=c)}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=c.forward;t.size&&(n=i.last.index<t.items[0].$index?c.backward:c.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===ae.clip?(e.logger.log((function(){return'going to skip fetch due to "'.concat(ae.clip,'" process')})),ce.next):n.shouldFetch?(e.logger.log((function(){return"going to fetch ".concat(n.count," items started from index ").concat(n.index)})),ce.next):ce.done},i}(rt(se.preFetch)),St=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:ce.next})},fail:function(e){return i.call({process:t.process,status:ce.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=s.scroll,c=s.fetch,l=e.viewport;null===a.positionBeforeAsync&&(a.positionBeforeAsync=l.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},c=function(e){r?r(e):i=e||null},l=o(s.index,s.count,a,c);if(l&&"object"==typeof l&&null!==l){if("function"==typeof l.then)return l;if("function"==typeof l.subscribe)var u=l.subscribe(a,c,(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}(rt(se.fetch)),zt=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?ce.next:ce.done})):i.call({process:t.process,status:ce.error,payload:{error:"Can't set buffer items"}})},t.setBufferLimits=function(e){var t=e.buffer,i=e.state,n=i.fetch,r=i.cycle.innerLoop,o=n.items,s=n.first.index,a=n.last.index;if(o.length){var c=o.length-1;s<o[0].$index&&(t.absMinIndex=o[0].$index),a>o[c].$index&&(t.absMaxIndex=o[c].$index)}else(a<t.minIndex||r.isInitial)&&(t.absMinIndex=t.minIndex),(s>t.maxIndex||r.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.minIndex-o.length)),n.items=o.map((function(t,i){return new ft(s+i,t,e.routines)})),t.setItems(n.items)},t}(rt(se.postFetch)),kt=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=n.cycle,o=n.render,s=n.scroll,a=e.viewport,c=e.routines;e.logger.stat("before new items render"),null===s.positionBeforeAsync&&(s.positionBeforeAsync=a.scrollPosition),o.cancel=c.render((function(){o.cancel=null,t.doRender(e)?i.call({process:t.process,status:o.noSize?ce.done:ce.next,payload:{process:r.initiator}}):i.call({process:t.process,status:ce.error,payload:{error:"Can't associate item with element"}})}))},t.doRender=function(e){var i=e.state,n=i.fetch,r=i.render,o=e.viewport,s=e.buffer,a=e.logger;return r.positionBefore=o.scrollPosition,!(!n.isCheck&&(r.sizeBefore=o.getScrollableSize(),!n.items.every((function(i){return t.processElement(e,i)}))))&&(s.checkDefaultSize(),r.sizeAfter=o.getScrollableSize(),a.stat("after new items render"),a.log((function(){return r.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}(rt(se.render)),Et=function(e){return!!e.call.interrupted},Vt=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,o),Et(o))o.call({process:t.process,status:ce.done});else{var a=t.shouldContinueRun(e,r);e.state.endInnerLoop(),o.call({process:t.process,status:a?ce.next:ce.done,payload:i({},s?{process:s}:{})})}},t.calculateParams=function(e,t){var i,n=e.adapter,r=e.viewport,o=e.buffer.items;n.wanted.firstVisible&&((i=r.getEdgeVisibleItem(o,c.backward).item)&&i.element===n.firstVisible.element||(n.firstVisible=i?i.get():x));n.wanted.lastVisible&&!Et(t)&&((i=r.getEdgeVisibleItem(o,c.forward).item)&&i.element===n.lastVisible.element||(n.lastVisible=i?i.get():x))},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}(rt(se.end)),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.viewport,r=e.state.scroll;r.positionBeforeAdjust=n.scrollPosition,t.setPaddings(e),r.positionAfterAdjust=n.scrollPosition;var o=t.calculatePosition(e);t.setAdditionalForwardPadding(e,o),t.setPosition(e,o,(function(){return i.call({process:t.process,status:ce.done})}))},t.setPaddings=function(e){var t,i,n=e.viewport,r=e.buffer,o=e.settings.inverse,s=e.state.fetch,a=r.getFirstVisibleItem(),c=r.getLastVisibleItem();a&&c?(t=a.$index,i=c.$index):i=(t=isNaN(s.firstVisible.index)?r.startIndex:s.firstVisible.index)-1;var l,u=n.paddings,f=u.forward,d=u.backward,h=0,p=0;for(l=r.finiteAbsMinIndex;l<t;l++)h+=r.getSizeByIndex(l);for(l=i+1;l<=r.finiteAbsMaxIndex;l++)p+=r.getSizeByIndex(l);var g=h+(n.getScrollableSize()-f.size-d.size)+p,m=n.getSize()-g;m>0&&(o?h+=m:p+=m,e.logger.log((function(){return o?"backward":"forward"+" padding will be increased by ".concat(m," to fill the viewport")}))),d.size=h,f.size=p,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 c=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),c&&e.preSize&&r.items.includes(e)&&(a+=e.size-e.preSize))}))}if(null!==s.positionBeforeAsync){var l=o.positionBefore-s.positionBeforeAsync;0!==l&&(e.logger.log("shift position due to fetch-render difference (".concat(l,")")),a+=l)}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&&Vt.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 c=Math.min(s,r);c&&(i.paddings.forward.size+=c,e.logger.log("increase fwd padding due to lack of items (".concat(r," -> ").concat(c,")")))}}}},t.setPosition=function(e,t,i){var n=e.state.scroll,r=e.viewport,o=e.routines;if(!n.hasPositionChanged(t))return i();n.syntheticPosition=t,n.syntheticFulfill=!1,n.cancelAnimation=o.animate((function(){n.cancelAnimation=null;var o=n.positionAfterAdjust-r.scrollPosition,s="";o>0&&(t-=o,n.syntheticPosition=t,s=" (-".concat(o,")")),n.syntheticFulfill=!0,r.scrollPosition=t,e.logger.stat("after scroll adjustment"+s),i()}))},t}(rt(se.adjust)),Nt=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:ce.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,c.backward,o),t.isForward(e,s)&&t.prepareClipByDirection(e,c.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!==c.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!==c.forward&&t+1<=i.absMaxIndex},t.prepareClipByDirection=function(e,t,i){var n=t===c.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}(rt(se.preClip)),Ot=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:ce.next})},t.doClip=function(e){var t,i=e.buffer,n=e.viewport.paddings,r=e.state.clip,o=e.logger,s=((t={})[c.backward]=0,t[c.forward]=0,t);o.stat("before clip (".concat(++r.callCount,")"));var a=i.items.filter((function(e){return!!e.toRemove&&(e.hide(),s[e.removeDirection]+=e.size,!0)}));a.length&&(s[c.backward]&&(n.byDirection(c.backward).size+=s[c.backward]),s[c.forward]&&(n.byDirection(c.forward).size+=s[c.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}(rt(se.clip)),Pt=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.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 i=this;if(this.debug){var n=["color: #888; border: dashed #888 0; border-bottom-width: 0px","color: #000; border-width: 0"];this.log((function(){return r(["%cstat"+(e?" ".concat(e):"")+",%c "+i.getStat()],t(n),!1)}))}},e.prototype.fetch=function(e){var i=this;if(this.debug){var n="fetch interval"+(e?" ".concat(e):""),o=["color: #888","color: #000"];this.log((function(){return r(["%c".concat(n,": %c").concat(i.getFetchRange())],t(o),!1)}))}},e.prototype.prepareForLog=function(e){return e instanceof Event&&e.target?this.getScrollPosition():e},e.prototype.logProcess=function(e){if(this.debug){var i=e.process,n=e.status,o=e.payload,s=[];if(i===se.init&&n===ce.next)s.push("%c---=== loop ".concat(this.getLoopIdNext()," start"));else if(i===se.end){s.push("%c---=== loop ".concat(this.getLoopId()," done"));var a=o&&o.process;n===ce.next&&a!==ae.reset&&a!==ae.reload&&(s[0]+=", loop ".concat(this.getLoopIdNext()," start"))}s.length&&this.log((function(){return r(r([],t(s),!1),["color: #006600;"],!1)}))}},e.prototype.logCycle=function(e){void 0===e&&(e=!0);var t=this.getWorkflowCycleData(),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]}))},e.prototype.logError=function(e){var i=this;if(this.debug){var n=["color: #a00;","color: #000"];this.log((function(){return r(["error:%c"+(e?" ".concat(e):"")+"%c (loop ".concat(i.getLoopIdNext(),")")],t(n),!1)}))}},e.prototype.log=function(){for(var e=this,i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];if(this.debug){if("function"==typeof i[0]&&(i=i[0](),Array.isArray(i)||(i=[i])),i.every((function(e){return void 0===e})))return;this.logTime&&(i=r(r([],t(i),!1),[this.getTime()],!1)),i=i.map((function(t){return e.prepareForLog(t)})),this.immediateLog?console.log.apply(this,i):this.logs.push(i)}},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}(),$t=function(){function e(e,t,i){var n=this;if(this.element=e,this.settings={viewport:t.viewport,horizontal:t.horizontal,window:t.windowViewport},i){var r=this,o=new i(e,this.settings);Object.getOwnPropertyNames(Object.getPrototypeOf(o)).filter((function(e){return"constructor"!==e&&"function"==typeof o[e]&&"function"==typeof r[e]})).forEach((function(e){return r[e]=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return o[e].apply(n,t)}}))}this.viewport=this.getViewportElement(),this.onInit(t)}return e.prototype.checkElement=function(e){if(!e)throw new Error("HTML element is not defined")},e.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},e.prototype.onInit=function(e){e.windowViewport&&"scrollRestoration"in history&&(history.scrollRestoration="manual"),e.dismissOverflowAnchor&&(this.viewport.style.overflowAnchor="none")},e.prototype.findElementBySelector=function(e,t){return this.checkElement(e),e.querySelector(t)},e.prototype.findPaddingElement=function(e){return this.findElementBySelector(this.element,"[data-padding-".concat(e,"]"))},e.prototype.findItemElement=function(e){return this.findElementBySelector(this.element,'[data-sid="'.concat(e,'"]'))},e.prototype.getScrollPosition=function(){return this.settings.window?this.settings.horizontal?window.pageXOffset:window.pageYOffset:this.viewport[this.settings.horizontal?"scrollLeft":"scrollTop"]},e.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},e.prototype.getElementParams=function(e){return this.checkElement(e),e.getBoundingClientRect()},e.prototype.getWindowParams=function(){var e=this.viewport,t=e.clientWidth,i=e.clientHeight,n=e.clientLeft,r=e.clientTop;return{height:i,width:t,top:r,bottom:r+i,left:n,right:n+t,x:n,y:r,toJSON:function(){return null}}},e.prototype.getSize=function(e){return this.getElementParams(e)[this.settings.horizontal?"width":"height"]},e.prototype.getScrollerSize=function(){return this.getElementParams(this.element)[this.settings.horizontal?"width":"height"]},e.prototype.getViewportSize=function(){return this.settings.window?this.getWindowParams()[this.settings.horizontal?"width":"height"]:this.getSize(this.viewport)},e.prototype.getSizeStyle=function(e){this.checkElement(e);var t=e.style[this.settings.horizontal?"width":"height"];return parseFloat(t)||0},e.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")},e.prototype.getEdge=function(e,t){var i=this.settings.horizontal;return this.getElementParams(e)[t===c.forward?i?"right":"bottom":i?"left":"top"]},e.prototype.getViewportEdge=function(e){var t=this.settings,i=t.window,n=t.horizontal;return i?this.getWindowParams()[e===c.forward?n?"right":"bottom":n?"left":"top"]:this.getEdge(this.viewport,e)},e.prototype.makeElementVisible=function(e){this.checkElement(e),e.style.left="",e.style.top="",e.style.position=""},e.prototype.hideElement=function(e){this.checkElement(e),e.style.display="none"},e.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))},e.prototype.scrollTo=function(e,t){this.checkElement(e),e.scrollIntoView(t)},e.prototype.render=function(e){var t=setTimeout((function(){return e()}));return function(){return clearTimeout(t)}},e.prototype.animate=function(e){var t=requestAnimationFrame((function(){return e()}));return function(){return cancelAnimationFrame(t)}},e.prototype.onScroll=function(e){var t=this.settings.window?window:this.viewport;return t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},e}(),At=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}(),Rt=function(){function e(e,t){this.settings=t,this.forward=new At(c.forward,e),this.backward=new At(c.backward,e)}return e.prototype.byDirection=function(e,t){return e===c.backward?t?this.forward:this.backward:t?this.backward:this.forward},e.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))},e.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},e.prototype.getNegativeSize=function(e){var t=this.settings,i=0;return isFinite(t.minIndex)&&(i=(e-t.minIndex)*t.itemSize),i},e}(),Ct=function(){function e(e,t,i,n){this.settings=e,this.routines=t,this.state=i,this.logger=n,this.paddings=new Rt(this.routines,e)}return e.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()},e.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 i=this.scrollPosition;return this.logger.log((function(){return r(["setting scroll position at",i],t(i!==e?["(".concat(e,")")]:[]),!1)})),i},Object.defineProperty(e.prototype,"scrollPosition",{get:function(){return this.routines.getScrollPosition()},set:function(e){this.setPosition(e)},enumerable:!1,configurable:!0}),e.prototype.getSize=function(){return this.routines.getViewportSize()},e.prototype.getScrollableSize=function(){return this.routines.getScrollerSize()},e.prototype.getMaxScrollPosition=function(){return this.getScrollableSize()-this.getSize()},e.prototype.getBufferPadding=function(){return this.getSize()*this.settings.padding},e.prototype.getEdge=function(e){return this.routines.getViewportEdge(e)},e.prototype.setOffset=function(){this.offset=this.routines.getOffset()},e.prototype.findItemElementById=function(e){return this.routines.findItemElement(e)},e.prototype.getEdgeVisibleItem=function(e,t){for(var i,n=t===c.backward,r=n?c.forward:c.backward,o=this.getEdge(t),s=0,a=n?0:e.length-1;n?a<=e.length-1:a>=0;a+=n?1:-1){if(s=this.routines.getEdge(e[a].element,r)-o,n&&s>0||!n&&s<0){i=e[a];break}}return{item:i,index:i?i.$index:NaN,diff:s}},e}(),jt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.newItems=[],this.oldItems=[],this.removed=[]},e}(),Tt=function(){function e(e,t){this.itemSize=e,this.sizeStrategy=t,this.sizeMap=new Map,this.recalculation=new jt}return e.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()},e.prototype.get=function(){switch(this.sizeStrategy){case l.Average:return this.averageSize;case l.Frequent:return this.frequentSize;default:return this.constantSize}},e.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 c=r.reduce((function(e,t){return e+t.size}),0);a=this.averageSizeFloat||0;this.averageSizeFloat=((e+r.length)*a-c)/e}this.averageSize=Math.round(this.averageSizeFloat)},e.prototype.recalculateFrequentSize=function(){var e=this,i=this.recalculation,n=i.oldItems,o=i.newItems,s=i.removed,a=this.sizeMap.get(this.frequentSize);o.length&&o.forEach((function(t){var i=t.size;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)})),n.length&&(n.forEach((function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))})),n.forEach((function(t){var i=t.newSize;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)}))),s.length&&s.forEach((function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))}));var c=r([],t(this.sizeMap.entries()),!1).sort((function(e,t){return t[1]-e[1]})),l=c[0][1],u=c.filter((function(e){return e[1]===l}));u.length>1&&u.find((function(e){return e[0]===a}))||(this.frequentSize=c[0][0])},e.prototype.recalculate=function(e){if(this.sizeStrategy===l.Constant)return!1;var t=this.recalculation,i=t.oldItems,n=t.newItems,r=t.removed;if(!i.length&&!n.length&&!r.length)return!1;var o=this.get();return e?(this.sizeStrategy===l.Average?this.recalculateAverageSize(e):this.recalculateFrequentSize(),this.recalculation.reset()):this.reset(!0),this.get()!==o},e.prototype.setExisted=function(e,t){this.sizeStrategy!==l.Constant&&this.recalculation.oldItems.push({size:e,newSize:t})},e.prototype.setNew=function(e){this.sizeStrategy!==l.Constant?this.recalculation.newItems.push({size:e}):this.constantSize||(this.constantSize=e)},e.prototype.setRemoved=function(e){this.sizeStrategy!==l.Constant&&this.recalculation.removed.push({size:e})},e}(),Ft=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}(),Bt=function(){function e(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 Tt(i,o),this.reset(!0)}return e.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(e.prototype,"size",{get:function(){return this.items.size},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.items.get(e)},e.prototype.getSizeByIndex=function(e){var t=this.get(e);return t&&t.size||this.defaultSize.get()},e.prototype.getDefaultSize=function(){return this.defaultSize.get()},e.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)},e.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 Ft(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},e.prototype.insertItems=function(e,t,i,n){var r=this,o=new Map,s=e.length,a=1/0,l=-1/0,u=function(e){o.set(e.$index,e),a=e.$index<a?e.$index:a,l=e.$index>l?e.$index:l};this.items.forEach((function(e){var r=0;i===c.backward?e.$index<t&&n?r=-s:e.$index>=t&&!n&&(r=s):i===c.forward&&(e.$index<=t&&n?r=-s:e.$index>t&&!n&&(r=s)),r&&e.changeIndex(e.$index+r),u(e)})),this.saveData&&e.forEach((function(e,o){var a=t+o-(n?s:0)+(i===c.forward?1:0),l=new Ft({$index:a,data:e},r.saveData);u(l)})),this.items=o,this.minIndex=a,this.maxIndex=l},e.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},e.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 c=t[0].$index,l=t[t.length-1].$index;r=c-s,o=l-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 Ft(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}},e.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},e}(),Lt=function(){function e(e,t){this.context=e,this.logger=t}return e.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)},e.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's result"),NaN)},e.prototype.insertVirtual=function(e,t,i){if(!e.length)return this.logger.log("no items to insert virtually; empty list"),!1;var n=this.context,r=n.firstIndex,o=n.lastIndex,s=n.finiteAbsMinIndex,a=n.finiteAbsMaxIndex;if(t<s||t>a)return this.logger.log((function(){return"no items to insert virtually; "+"selected index (".concat(t,") does not match virtual area [").concat(s,"..").concat(a,"]")})),!1;var l=i===c.backward;return t<r+(l?1:0)||t>o-(l?0:1)?(this.logger.log((function(){return"going to insert ".concat(e.length," item(s) virtually")})),!0):(this.logger.log((function(){return"no items to insert virtually; selected index (".concat(t,") belongs Buffer [").concat(r,"..").concat(o,"]")})),!1)},e}(),Dt=function(){function e(e,t,i){this._items=[],this.logger=i,this.changeItems=t,this.bof=new a(!1),this.eof=new a(!1),this.cache=new Bt(e,i),this.checkCall=new Lt(this,i),this.startIndexUser=e.startIndex,this.minIndexUser=e.minIndex,this.maxIndexUser=e.maxIndex,this.reset(!0)}return e.prototype.dispose=function(){this.bof.dispose(),this.eof.dispose(),this._items.forEach((function(e){return e.dispose()})),this._items=[]},e.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},e.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(e.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(e.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(e.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}),e.prototype.checkBOF=function(){var e=this.items.length?this.items[0].$index===this.absMinIndex:isFinite(this.absMinIndex);this.bof.set(e)},e.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(e.prototype,"size",{get:function(){return this._items.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"cacheSize",{get:function(){return this.cache.size},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"defaultSize",{get:function(){return this.cache.getDefaultSize()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minIndex",{get:function(){return isFinite(this.cache.minIndex)?this.cache.minIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxIndex",{get:function(){return isFinite(this.cache.maxIndex)?this.cache.maxIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"firstIndex",{get:function(){return this.items.length?this.items[0].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastIndex",{get:function(){return this.items.length?this.items[this.items.length-1].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"finiteAbsMinIndex",{get:function(){return isFinite(this.absMinIndex)?this.absMinIndex:this.minIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"finiteAbsMaxIndex",{get:function(){return isFinite(this.absMaxIndex)?this.absMaxIndex:this.maxIndex},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.items.find((function(t){return t.$index===e}))},e.prototype.setItems=function(e){if(this.items.length)if(this.items[0].$index>e[e.length-1].$index)this.items=r(r([],t(e),!1),t(this.items),!1);else{if(!(e[0].$index>this.items[this.items.length-1].$index))return!1;this.items=r(r([],t(this.items),!1),t(e),!1)}else this.items=r([],t(e),!1);return!0},e.prototype.clip=function(){this.items=this.items.filter((function(e){return!e.toRemove}))},e.prototype.getIndexToInsert=function(e,t,i){return this.checkCall.insertInBuffer(e,t,i)},e.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)},e.prototype.insertVirtually=function(e,i,n,o){if(!this.checkCall.insertVirtual(e,i,n))return!1;var s=0;return i<=this.firstIndex&&!o?s=e.length:i>=this.lastIndex&&o&&(s=-e.length),s&&(this.items.forEach((function(e){return e.updateIndex(e.$index+s)})),this.cache.insertItems(e,i,n,o),this.items=r([],t(this.items),!1)),this.shiftExtremum(e.length,o),!0},e.prototype.removeVirtually=function(e,i){for(var n=this.items.length,o=!1,s=function(t){var n=a.items[t],r=e.reduce((function(e,t){return e+(i?n.$index<t?1:0:n.$index>t?-1:0)}),0);o=o||!!r,n.updateIndex(n.$index+r)},a=this,c=i?n-1:0;i?c>=0:c<n;i?c--:c++)s(c);this.shiftExtremum(-e.length,i),o&&(this.items=r([],t(this.items),!1)),this.cache.removeItems(e,i)},e.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},e.prototype.updateItems=function(e,i,n,o){if(!this.size||Number.isNaN(this.firstIndex))return{trackedIndex:NaN,toRemove:[]};for(var s=n,a=o?this.lastIndex:this.firstIndex,c=[],l=o?-1:1,u=this.size-1,f=new Map,d=Array.prototype[o?"unshift":"push"],h=function(u){var h=p.items[u];f.set(h.$index,h);var g=e(h);if(!g||Array.isArray(g)&&!g.length)return h.toRemove=!0,s+=h.$index>=n?o?1:0:o?0:-1,p.shiftExtremum(-1,o),"continue";if(!Array.isArray(g))return h.updateIndex(a),d.call(c,h),a+=l,"continue";h.$index<n?s+=o?0:g.length-1:h.$index>n&&(s+=o?1-g.length:0);var m=!0,v=[];(o?r([],t(g),!1).reverse():g).forEach((function(e,t){var r;h.data===e?(n===h.$index&&(s=a+t*l),h.updateIndex(a+t*l),r=h,m=!1):(r=i(a+t*l,e)).toInsert=!0,d.call(v,r)})),h.toRemove=m,d.call.apply(d,r([c],t(v),!1)),a+=l*g.length,g.length>1&&p.shiftExtremum(g.length-1,o)},p=this,g=o?u:0;o?g>=0:g<=u;g+=l)h(g);var m=this.items.filter((function(e){return e.toRemove})),v=Array.from(f).map((function(e){var i=t(e,2),n=i[0],r=i[1];return{$index:n,size:r.size,toRemove:r.toRemove}})).sort((function(e,t){return e.$index-t.$index}));return this.items=c,this.cache.updateSubset(v,c,o),this.finiteAbsMinIndex===this.finiteAbsMaxIndex?s=NaN:s>this.finiteAbsMaxIndex?s=this.finiteAbsMaxIndex:s<this.finiteAbsMinIndex&&(s=this.finiteAbsMinIndex),{trackedIndex:s,toRemove:m}},e.prototype.cacheItem=function(e){this.cache.add(e)},e.prototype.getFirstVisibleItemIndex=function(){for(var e=this.items.length,t=0;t<e;t++)if(!this.items[t].invisible)return t;return-1},e.prototype.getLastVisibleItemIndex=function(){for(var e=this.items.length-1;e>=0;e--)if(!this.items[e].invisible)return e;return-1},e.prototype.getFirstVisibleItem=function(){var e=this.getFirstVisibleItemIndex();return e>=0?this.items[e]:void 0},e.prototype.getLastVisibleItem=function(){var e=this.getLastVisibleItemIndex();return e>=0?this.items[e]:void 0},e.prototype.getEdgeVisibleItem=function(e,t){return e===(t?c.backward:c.forward)?this.getLastVisibleItem():this.getFirstVisibleItem()},e.prototype.getVisibleItemsCount=function(){return this.items.reduce((function(e,t){return e+(t.invisible?0:1)}),0)},e.prototype.getSizeByIndex=function(e){return this.cache.getSizeByIndex(e)},e.prototype.checkDefaultSize=function(){return this.cache.recalculateDefaultSize()},e}(),_t=function(){function e(e){this.total=e,this.isInitial=!1,this.busy=new a(!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}(),Ut=function(){function e(e,t){var i=t?t.count:1,n=t?t.innerLoop.count:0;this.instanceIndex=e,this.innerLoop=new _t(n),this.interrupter=null,this.busy=new a(!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}(),Wt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.startDelta=0,this.before=0},e}(),qt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN,this.position=NaN},e}(),Gt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN},e}(),Ht=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.delta=0},e}(),Xt=function(){function e(e){this.directionPriority=e,this.callCount=0,this.positions=new Wt,this.first=new qt,this.last=new Gt,this.firstVisible=new Ht,this.reset()}return e.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(e.prototype,"newItemsData",{get:function(){return this._newItemsData},set:function(e){this._newItemsData=e,e&&e.length&&this.callCount++},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shouldFetch",{get:function(){return!!this.count},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasNewItems",{get:function(){return!(!this._newItemsData||!this._newItemsData.length)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"index",{get:function(){return this.first.index},enumerable:!1,configurable:!0}),Object.defineProperty(e.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}),e.prototype.shouldCheckPreSizeExpectation=function(e){if(this.directionPriority===c.backward)return!1;var t=this.items[this.items.length-1];return t&&t.$index<e},e.prototype.startSimulate=function(e){this.simulate=!0,this._newItemsData=e.map((function(e){return e.data})),this.items=e,this.hasAnotherPack=!1},e.prototype.stopSimulate=function(){this.simulate=!1,this.isCheck=!1,this.doRemove=!1},e.prototype.fill=function(e,t){this.startSimulate(e),this.first.index=e[0].$index,this.last.index=e[e.length-1].$index,this.direction=c.forward,this.firstVisible.index=t,this.firstVisible.delta=0},e.prototype.check=function(e){this.startSimulate(e),this.last.index=e[0].$index,this.first.index=e[e.length-1].$index,this.isCheck=!0},e.prototype.update=function(e,t,i,n){this.startSimulate(i),this.firstVisible.index=e,this.firstVisible.delta=t,this.doRemove=n.length>0},e}(),Yt=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}(),Jt=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}(),Qt=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}(),Zt=function(){function e(e,t,i){this.packageInfo=e,this.settings=t,this.initTime=Number(new Date),this.cycle=new Ut(this.settings.instanceIndex,i?i.cycle:void 0),this.fetch=new Xt(t.directionPriority),this.clip=new Yt,this.render=new Jt,this.scroll=new Qt}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,n=e.scroll,r=e.fetch,o=e.render,s=e.clip;return t.innerLoop.start(),n.positionBeforeAsync=null,r.simulate||r.reset(),s.reset(s.force),o.reset(),i({},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(!0),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.endInnerLoop()},e}(),Kt=y(),ei=function(e,t){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,t)},ti=function(e,t,i){var n=t;if(!ei(t,"items")){var r=Array.isArray(t)?t:[t];n=e?{items:r,bof:i}:{items:r,eof:i}}return n},ii=function(){function e(e,n,r){var a=this;this.source={},this.box={},this.demand={},this.wanted={},this.getWorkflow=n,this.logger=r,this.relax$=null,this.relaxRun=null,this.reloadCounter=0;var c=e&&b.get(e.id)||{},l=e?Kt.map((function(t){var n=e[t.name];if(e.augmented){var r=c[t.name];r&&(n=r.default)}return i(i({},t),{value:n})})):y();Object.entries(c).forEach((function(e){var i=t(e,2),n=i[0],r=i[1],o=l.find((function(e){return e.name===n}));o&&r&&(o.value=r.default)})),l.filter((function(e){var t=e.type,i=e.permanent;return t===s.Scalar&&i})).forEach((function(e){var t=e.name,i=e.value;return Object.defineProperty(a,t,{configurable:!0,get:function(){return i}})})),l.filter((function(e){return e.type===s.Reactive})).forEach((function(e){var t=e.name,i=e.value;a.source[t]=i,Object.defineProperty(a,t,{configurable:!0,get:function(){var e=Kt.find((function(e){var i=e.wanted,n=e.reactive;return i&&n===t}));return e&&a.externalContext&&(a.wanted[e.name]=!0),a.source[t]}})})),l.filter((function(e){return e.type===s.Scalar&&!!e.reactive})).forEach((function(e){var t=e.name,i=e.value,n=e.reactive,r=e.wanted;r&&(a.wanted[t]=!1),a.box[t]=i,Object.defineProperty(a,t,{configurable:!0,set:function(e){if(e!==a.box[t]){a.box[t]=e,a.source[n].set(e);var i=c[n];i&&i.emit(i.source,e)}},get:function(){return r&&a.externalContext&&(a.wanted[t]=!0),a.box[t]}})})),l.filter((function(e){return e.type===s.Scalar&&e.onDemand})).forEach((function(e){var t=e.name,i=e.value;a.demand[t]=i,Object.defineProperty(a,t,{configurable:!0,get:function(){return a.demand[t]}})})),e&&(l.forEach((function(t){var i=t.name,n=t.type,r=t.value,l=t.permanent,u=a[i];n===s.Function?u=u.bind(a):n===s.WorkflowRunner?u=a.getPromisifiedMethod(u,r):n===s.Reactive&&c[i]?u=e[i]:i===o.augmented&&(u=!0),Object.defineProperty(e,i,{configurable:!0,get:function(){return l||n!==s.Scalar?u:a[i]}})})),this.externalContext=e)}return Object.defineProperty(e.prototype,"workflow",{get:function(){return this.getWorkflow()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"reloadCount",{get:function(){return this.reloadCounter},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"reloadId",{get:function(){return this.id+"."+this.reloadCounter},enumerable:!1,configurable:!0}),e.prototype.getPromisifiedMethod=function(e,t){var i=this;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return i.relax$?new Promise((function(t){i.relax$&&i.relax$.once((function(e){return t(e)})),e.apply(i,n)})):t.apply(i,n)}},e.prototype.initialize=function(e,t,i,n){var r=this;if(Object.defineProperty(this.demand,o.itemsCount,{get:function(){return e.getVisibleItemsCount()}}),Object.defineProperty(this.demand,o.bufferInfo,{get:function(){return{firstIndex:e.firstIndex,lastIndex:e.lastIndex,minIndex:e.minIndex,maxIndex:e.maxIndex,absMinIndex:e.absMinIndex,absMaxIndex:e.absMaxIndex,defaultSize:e.defaultSize}}}),this.bof=e.bof.get(),e.bof.on((function(e){return r.bof=e})),this.eof=e.eof.get(),e.eof.on((function(e){return r.eof=e})),Object.defineProperty(this.demand,o.packageInfo,{get:function(){return t.packageInfo}}),this.loopPending=t.cycle.innerLoop.busy.get(),t.cycle.innerLoop.busy.on((function(e){return r.loopPending=e})),this.isLoading=t.cycle.busy.get(),t.cycle.busy.on((function(e){return r.isLoading=e})),this.logger=i,n){this.relax$||(this.relax$=new a);var s=this.relax$;n.on((function(e){var t=e.status,i=e.payload,n=function(){};t===ce.start?n=r.isLoading$.on((function(e){e||(n(),s.set({success:!0,immediate:!1,details:null}))})):t!==ce.done&&t!==ce.error||(n(),s.set({success:t!==ce.error,immediate:!0,details:t===ce.error&&i?String(i.error):null}))}))}this.init=!0},e.prototype.dispose=function(){var e=this;this.relax$&&this.relax$.dispose(),this.externalContext&&this.resetContext(),Object.getOwnPropertyNames(this).forEach((function(t){delete e[t]}))},e.prototype.resetContext=function(){var e=this,t=b.get(this.externalContext.id);Kt.forEach((function(i){var n=i.type,r=i.permanent,o=i.name,a=i.value;if(n===s.Reactive||r||Object.defineProperty(e.externalContext,o,{configurable:!0,get:function(){return a}}),n===s.Reactive&&t){var c=t[o];c&&(c.default.reset(),c.emit(c.source,c.default.get()))}}))},e.prototype.reset=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reset",e," of ".concat(this.reloadId)),this.workflow.call({process:ae.reset,status:ce.start,payload:{options:e}})},e.prototype.reload=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reload",e," of ".concat(this.reloadId)),this.workflow.call({process:ae.reload,status:ce.start,payload:{options:e}})},e.prototype.append=function(e,t){var i=ti(!1,e,t);this.logger.logAdapterMethod("append",[i.items,i.eof]),this.workflow.call({process:ae.append,status:ce.start,payload:{options:i}})},e.prototype.prepend=function(e,t){var i=ti(!0,e,t);this.logger.logAdapterMethod("prepend",[i.items,i.bof]),this.workflow.call({process:ae.prepend,status:ce.start,payload:{options:i}})},e.prototype.check=function(){this.logger.logAdapterMethod("check"),this.workflow.call({process:ae.check,status:ce.start})},e.prototype.remove=function(e){e=function(e){return ei(e,"predicate")||ei(e,"indexes")||(e={predicate:e}),e}(e),this.logger.logAdapterMethod("remove",e),this.workflow.call({process:ae.remove,status:ce.start,payload:{options:e}})},e.prototype.clip=function(e){this.logger.logAdapterMethod("clip",e),this.workflow.call({process:ae.clip,status:ce.start,payload:{options:e}})},e.prototype.insert=function(e){this.logger.logAdapterMethod("insert",e),this.workflow.call({process:ae.insert,status:ce.start,payload:{options:e}})},e.prototype.replace=function(e){this.logger.logAdapterMethod("replace",e),this.workflow.call({process:ae.replace,status:ce.start,payload:{options:e}})},e.prototype.update=function(e){this.logger.logAdapterMethod("update",e),this.workflow.call({process:ae.update,status:ce.start,payload:{options:e}})},e.prototype.fix=function(e){this.logger.logAdapterMethod("fix",e),this.workflow.call({process:ae.fix,status:ce.start,payload:{options:e}})},e.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=t===i.reloadId;return i.logger.log((function(){return n?void 0:"relax promise cancelled due to ".concat(t," != ").concat(i.reloadId)})),{immediate:e,success:n,details:n?null:"Interrupted by reload or reset"}}))},e.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(p)},e.prototype.showLog=function(){this.logger.logAdapterMethod("showLog"),this.logger.logForce()},e}(),ni="Invalid datasource:",ri=0,oi=function(){function e(e){var t=e.datasource,i=e.consumer,n=e.element,r=e.workflow,o=e.Routines,s=e.scroller,a=_(t,J).params.get;if(!a.isValid)throw new Error("".concat("Invalid datasource:"," ").concat(a.errors[0]));var c=s?s.state.packageInfo:{consumer:i,core:I};n=s?s.routines.element:n,r=s?s.workflow:r,this.workflow=r,this.settings=new nt(t.settings,t.devSettings,++ri),this.logger=new Pt(this,c,t.adapter),this.routines=new $t(n,this.settings,o),this.state=new Zt(c,this.settings,s?s.state:void 0),this.buffer=new Dt(this.settings,r.onDataChanged,this.logger),this.viewport=new Ct(this.settings,this.routines,this.state,this.logger),this.logger.object("vscroll settings object",this.settings,!0),this.initDatasource(t,s)}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 z,r=!n&&!this.settings.adapter;if(n)this.datasource=e;else{var o=k((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 ii(s,(function(){return i.workflow}),this.logger)},e.prototype.init=function(e){this.viewport.reset(this.buffer.startIndex),this.logger.stat("initialization"),this.adapter.initialize(this.buffer,this.state,this.logger,e)},e.prototype.dispose=function(e){e&&this.adapter.dispose(),this.buffer.dispose(),this.state.dispose()},e.prototype.finalize=function(){},e}(),si=function(){function e(e){var t=this,i=e.element,n=e.datasource,r=e.consumer,o=e.run,s=e.Routines;this.isInitialized=!1,this.initTimer=null,this.adapterRun$=new a,this.cyclesDone=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 oi({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$),this.isInitialized=!0,this.callWorkflow({process:se.init,status:ce.start});var t=this.scroller.routines;this.offScroll=t.onScroll((function(t){return e.callWorkflow({process:se.scroll,status:ce.start,payload:{event:t}})}))},e.prototype.changeItems=function(e){this.propagateChanges(e)},e.prototype.callWorkflow=function(e){if(this.isInitialized){var t=e.process,i=e.status;t&&t.startsWith("adapter")&&i!==ce.next&&this.adapterRun$.set(e),this.process(e)}},e.prototype.getUpdater=function(){return{call:this.callWorkflow.bind(this),onDataChanged:this.changeItems.bind(this)}},e.prototype.process=function(e){var n=e.status,o=e.process,s=e.payload;this.scroller.settings.logProcessRun&&this.scroller.logger.log((function(){return r(r(r(["%cfire%c"],["color: #cc7777;","color: #000000;"],!1),[o,'"'.concat(n,'"')],!1),t(void 0!==s?[s]:[]),!1)})),this.scroller.logger.logProcess(e),o===se.end&&this.scroller.finalize(),function(e){var t=e.input,n=t.process,r=t.status,o=t.payload,s=void 0===o?{}:o,a=e.methods,c=a.run,l=a.interrupt,u=a.done,f=a.onError;if(r===ce.error)return f(n,s),void(n.startsWith("adapter")||c(Vt)(s));var d=s.options;switch(n){case se.init:r===ce.start&&c(at)(n),r===ce.next&&c(It)();break;case se.scroll:r===ce.start&&c(ct)(s),r===ce.next&&c(at)(n);break;case ae.reset:case ae.reload:r===ce.start&&(n===ae.reset?c(lt)(d):c(ut)(d)),r===ce.next&&(l(i({process:n},s)),s.finalize?c(Vt)():c(at)(n));break;case ae.append:case ae.prepend:r===ce.start&&c(pt)({process:n,options:d}),r===ce.next&&c(at)(n);break;case ae.check:r===ce.start&&c(gt)(),r===ce.next&&c(at)(n);break;case ae.remove:r===ce.start&&c(mt)(d),r===ce.next&&c(at)(n);break;case ae.clip:r===ce.start&&c(vt)(d),r===ce.next&&c(at)(n);break;case ae.insert:r===ce.start&&c(ht)(d),r===ce.next&&c(at)(n);break;case ae.replace:r===ce.start&&c(xt)(d),r===ce.next&&c(at)(n);break;case ae.update:r===ce.start&&c(dt)(d),r===ce.next&&c(at)(n);break;case ae.fix:r===ce.start&&c(bt)(d),r===ce.next&&c(at)(n);break;case se.start:switch(s.process){case ae.append:case ae.insert:case ae.replace:case ae.update:s.doRender?c(kt)():c(Mt)();break;case ae.check:c(kt)();break;case ae.remove:c(Mt)();break;default:c(wt)()}break;case se.preFetch:r===ce.next&&(s.process===ae.clip?c(Nt)():c(St)()),r===ce.done&&c(Vt)();break;case se.fetch:c(zt)();break;case se.postFetch:r===ce.next&&c(kt)(),r===ce.done&&c(Vt)();break;case se.render:if(r===ce.next)switch(s.process){case ae.append:case ae.check:case ae.insert:case ae.replace:case ae.update:c(Mt)();break;default:c(Nt)()}r===ce.done&&c(Vt)();break;case se.preClip:s.doClip?c(Ot)():c(Mt)();break;case se.clip:c(Mt)();break;case se.adjust:c(Vt)();break;case se.end:if(r===ce.next)switch(s.process){case ae.reset:case ae.reload:u(),c(at)(s.process);break;default:c(It)()}r===ce.done&&u()}}({input:e,methods:this.stateMachineMethods})},e.prototype.runProcess=function(){var e=this;return function(i){var n=i.run,o=i.process,s=i.name;return function(){for(var i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];e.scroller.settings.logProcessRun&&e.scroller.logger.log((function(){return r(r(r(["%crun%c"],["color: #333399;","color: #000000;"],!1),[o||s],!1),t(i),!1)})),n.apply(void 0,r([e.scroller],t(i),!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,")")}))}r&&this.scroller.adapter.relax((function(){t.scroller.logger.log("new Scroller instantiation");var e=new oi({datasource:r,scroller:t.scroller});t.scroller.dispose(),t.scroller=e,t.scroller.init()}))},e.prototype.done=function(){var e=this.scroller,t=e.state,i=e.logger;this.cyclesDone++,i.logCycle(!1),t.endWorkflowCycle(this.cyclesDone+1),this.finalize()},e.prototype.dispose=function(){var e=this;this.initTimer&&clearTimeout(this.initTimer),this.offScroll(),this.adapterRun$.dispose(),this.scroller.dispose(!0),Object.getOwnPropertyNames(this).forEach((function(t){delete e[t]}))},e.prototype.finalize=function(){},e}();export{o as AdapterPropName,c as Direction,x as EMPTY_ITEM,ni as INVALID_DATASOURCE_PREFIX,l as SizeStrategy,si as Workflow,y as getDefaultAdapterProps,k as makeDatasource,I as packageInfo};
5
+ 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.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.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 c,l,u,f=o,d=s,h=function(){return null},p={immediate:!0,success:!0,details:"Adapter is not initialized"},g=function(){return Promise.resolve(p)},m={core:{name:"",version:""},consumer:{name:"",version:""}},v={firstIndex:NaN,lastIndex:NaN,minIndex:NaN,maxIndex:NaN,absMinIndex:-1/0,absMaxIndex:1/0,defaultSize:NaN},x={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:m,onDemand:!0},{type:d.Scalar,name:f.itemsCount,value:0,onDemand:!0},{type:d.Scalar,name:f.bufferInfo,value:v,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:x,reactive:f.firstVisible$,wanted:!0},{type:d.Scalar,name:f.lastVisible,value:x,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.WorkflowRunner,name:f.reset,value:g},{type:d.WorkflowRunner,name:f.reload,value:g},{type:d.WorkflowRunner,name:f.append,value:g},{type:d.WorkflowRunner,name:f.prepend,value:g},{type:d.WorkflowRunner,name:f.check,value:g},{type:d.WorkflowRunner,name:f.remove,value:g},{type:d.WorkflowRunner,name:f.clip,value:g},{type:d.WorkflowRunner,name:f.insert,value:g},{type:d.WorkflowRunner,name:f.replace,value:g},{type:d.WorkflowRunner,name:f.update,value:g},{type:d.WorkflowRunner,name:f.fix,value:g},{type:d.Function,name:f.relax,value:h},{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(x,{emitOnSubscribe:!0}),wanted:!0},{type:d.Reactive,name:f.lastVisible$,value:new a(x,{emitOnSubscribe:!0}),wanted:!0},{type:d.Reactive,name:f.bof$,value:new a},{type:d.Reactive,name:f.eof$,value:new a}]},y=new Map,I={name:"vscroll",version:"1.5.3-passive"},w=function(e){var t;return null===(t=k.get(e||-1))||void 0===t?void 0:t.box},S=function(e,t){var i=e.name,n=e.wanted,r=k.get(t||-1);if(n&&r&&!r.box[i]&&!r.block){var s=o.firstVisible,a=o.firstVisible$,c=o.lastVisible,l=o.lastVisible$;return r.box[s]=r.box[a]=[s,a].some((function(e){return e===i}))||r.box[s],r.box[c]=r.box[l]=[c,l].some((function(e){return e===i}))||r.box[c],!0}return!1},z=function(e,t){var i=k.get(t||-1);i&&(i.block=e)},k=new Map,E=0,V=function(e){var t=this,n=e.mock,r=e.reactive,a=++E,c={configurable:!0},l={};k.set(a,{box:{},block:!1}),Object.defineProperty(this,o.id,i({get:function(){return a}},c)),Object.defineProperty(this,o.mock,i({get:function(){return n}},c)),Object.defineProperty(this,o.augmented,i({get:function(){return!1}},c)),Object.defineProperty(this,o.version,i({get:function(){return I.version}},c)),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&&(l[e.name]=i(i({},o),{default:n}),n=o.source)}Object.defineProperty(t,e.name,i({get:function(){return S(e,a),n}},c))})),r&&y.set(a,l)},M=function(){function e(e,t){this.get=e.get,e.settings&&(this.settings=e.settings),e.devSettings&&(this.devSettings=e.devSettings);var i=new V(t||{mock:!1});this.adapter=i}return e.prototype.dispose=function(){y.delete(this.adapter.id),k.delete(this.adapter.id)},e}(),N=function(e){return function(t){function i(i){var n="function"==typeof e?e():void 0;return t.call(this,i,n)||this}return n(i,t),i}(M)},O=N();!function(e){e.forward="forward",e.backward="backward"}(c||(c={})),function(e){e.Average="average",e.Constant="constant",e.Frequent="frequent"}(l||(l={})),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,$,A=function(e,t){return(t||[""]).reduce((function(e,t,i){return e.replace("{arg".concat(i+1,"}"),t)}),e)},R=function(e){return"number"==typeof e||"string"==typeof e&&""!==e?Number(e):NaN},C=function(e){var t=R(e),i=[];return Number.isNaN(t)&&i.push(u.number),{value:t,isSet:!0,isValid:!i.length,errors:i}},j=function(e,t){return function(i){var n=C(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}}},F=function(e){var t=[];return"function"!=typeof e&&t.push(u.function),{value:e,isSet:!0,isValid:!t.length,errors:t}},T=function(e,t){return function(i){var n=F(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}}},L=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 c=e.length-1;c>=0;c--){var l=e[c];if("string"!=typeof l){r.push(A(a,[e.join('", "')])+" (non-string token)");break}var f=n&&Object.prototype.hasOwnProperty.call(n,l);if(o&&f){r.push(A(a,[e.join('", "')])+" (".concat(l," 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}}},B=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}}},D={NUMBER:{type:u.number,method:C},INTEGER:{type:u.integer,method:function(e){var t=[];e=R(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=R(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:j(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"[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 HTMLDocument||t.push(u.element),{value:e,isSet:!0,isValid:!t.length,errors:t}}},FUNC:{type:u.function,method:F},FUNC_WITH_X_ARGUMENTS:function(e){return{type:u.funcOfxArguments,method:(t=e,function(e){var i=F(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=F(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:T(e,t)}},ONE_OF_CAN:function(e){return{type:u.oneOfCan,method:L(e,!1)}},ONE_OF_MUST:function(e){return{type:u.oneOfMust,method:L(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:B(e)}}},_=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),c=r(r([],t(s),!1),t(a.errors),!1);return{value:a.value,isSet:a.isSet,isValid:!c.length,errors:c}},W=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:[]}},q=function(t,i,n){var r,o,s=W(t[i],n);if(s.isSet)try{for(var a=e(Object.values(n.validators)),c=a.next();!c.done;c=a.next()){var l=c.value,f=U(s,l,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{c&&!c.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},G=function(e,i){var n=new _(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?q(n.context,r,o):W(void 0,o))})),n},H=D.OBJECT,X=D.FUNC_WITH_X_AND_MORE_ARGUMENTS;!function(e){e.get="get",e.settings="settings",e.devSettings="devSettings"}($||($={}));var Y,J,Q,Z,K,ee=((P={})[$.get]={validators:[X(2)],mandatory:!0},P[$.settings]={validators:[H]},P[$.devSettings]={validators:[H]},P),te=D.NUMBER,ie=D.INTEGER,ne=D.INTEGER_UNLIMITED,re=D.MORE_OR_EQUAL,oe=D.BOOLEAN,se=D.ELEMENT,ae=D.FUNC,ce=D.OR,le=D.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"}(Z||(Z={})),function(e){e.debug="debug",e.immediateLog="immediateLog",e.logProcessRun="logProcessRun",e.logTime="logTime",e.throttle="throttle",e.initDelay="initDelay",e.initWindowDelay="initWindowDelay",e.cacheData="cacheData",e.cacheOnReload="cacheOnReload",e.dismissOverflowAnchor="dismissOverflowAnchor",e.directionPriority="directionPriority"}(K||(K={}));var ue,fe,de,he,pe,ge,me,ve,xe,be,ye,Ie,we,Se,ze,ke=((Y={})[Z.itemSize]=1,Y[Z.bufferSize]=1,Y[Z.padding]=.01,Y[K.throttle]=0,Y[K.initDelay]=0,Y[K.initWindowDelay]=0,Y),Ee=((J={})[Z.adapter]={validators:[oe],defaultValue:!1},J[Z.startIndex]={validators:[ie],defaultValue:1},J[Z.minIndex]={validators:[ne],defaultValue:-1/0},J[Z.maxIndex]={validators:[ne],defaultValue:1/0},J[Z.itemSize]={validators:[ie,re(ke[Z.itemSize],!0)],defaultValue:NaN},J[Z.bufferSize]={validators:[ie,re(ke[Z.bufferSize],!0)],defaultValue:5},J[Z.padding]={validators:[te,re(ke[Z.padding],!0)],defaultValue:.5},J[Z.infinite]={validators:[oe],defaultValue:!1},J[Z.horizontal]={validators:[oe],defaultValue:!1},J[Z.windowViewport]={validators:[oe],defaultValue:!1},J[Z.viewportElement]={validators:[ce([se,ae])],defaultValue:null},J[Z.inverse]={validators:[oe],defaultValue:!1},J[Z.onBeforeClip]={validators:[ae],defaultValue:null},J[Z.sizeStrategy]={validators:[le(l)],defaultValue:l.Average},J),Ve=((Q={})[K.debug]={validators:[oe],defaultValue:!1},Q[K.immediateLog]={validators:[oe],defaultValue:!0},Q[K.logProcessRun]={validators:[oe],defaultValue:!1},Q[K.logTime]={validators:[oe],defaultValue:!1},Q[K.throttle]={validators:[ie,re(ke[K.throttle],!0)],defaultValue:40},Q[K.initDelay]={validators:[ie,re(ke[K.initDelay],!0)],defaultValue:1},Q[K.initWindowDelay]={validators:[ie,re(ke[K.initWindowDelay],!0)],defaultValue:40},Q[K.cacheData]={validators:[oe],defaultValue:!1},Q[K.cacheOnReload]={validators:[oe],defaultValue:!1},Q[K.dismissOverflowAnchor]={validators:[oe],defaultValue:!0},Q[K.directionPriority]={validators:[le(c)],defaultValue:c.backward},Q);!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"}(ue||(ue={})),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.fix="adapter.fix"}(fe||(fe={})),function(e){e.start="start",e.next="next",e.done="done",e.error="error"}(de||(de={}));var Me,Ne=D.INTEGER,Oe=D.INTEGER_UNLIMITED,Pe=D.BOOLEAN,$e=D.OBJECT,Ae=D.ITEM_LIST,Re=D.FUNC_WITH_X_ARGUMENTS,Ce=D.FUNC_WITH_X_AND_MORE_ARGUMENTS,je=D.FUNC_WITH_X_TO_Y_ARGUMENTS,Fe=D.ONE_OF_MUST,Te=D.ONE_OF_CAN,Le=D.OR;Me||(Me={});var Be,De=((he={})[$.get]={validators:[Ce(2)]},he[$.settings]={validators:[$e]},he[$.devSettings]={validators:[$e]},he);!function(e){e.reloadIndex="reloadIndex"}(Be||(Be={}));var _e,Ue=((pe={})[Be.reloadIndex]={validators:[Ne]},pe);!function(e){e.items="items",e.bof="bof",e.increase="increase"}(_e||(_e={}));var We,qe=((ge={})[_e.items]={validators:[Ae],mandatory:!0},ge[_e.bof]={validators:[Pe],defaultValue:!1},ge[_e.increase]={validators:[Pe],defaultValue:!1},ge);!function(e){e.items="items",e.eof="eof",e.decrease="decrease"}(We||(We={}));var Ge,He=((me={})[We.items]={validators:[Ae],mandatory:!0},me[We.eof]={validators:[Pe],defaultValue:!1},me[We.decrease]={validators:[Pe],defaultValue:!1},me);!function(e){e.predicate="predicate",e.indexes="indexes",e.increase="increase"}(Ge||(Ge={}));var Xe,Ye=((ve={})[Ge.predicate]={validators:[Re(1),Fe([Ge.indexes])]},ve[Ge.indexes]={validators:[Ae,Fe([Ge.predicate])]},ve[Ge.increase]={validators:[Pe],defaultValue:!1},ve);!function(e){e.backwardOnly="backwardOnly",e.forwardOnly="forwardOnly"}(Xe||(Xe={}));var Je,Qe=((xe={})[Xe.backwardOnly]={validators:[Pe,Te([Xe.forwardOnly])],defaultValue:!1},xe[Xe.forwardOnly]={validators:[Pe,Te([Xe.backwardOnly])],defaultValue:!1},xe);!function(e){e.items="items",e.before="before",e.after="after",e.beforeIndex="beforeIndex",e.afterIndex="afterIndex",e.decrease="decrease"}(Je||(Je={}));var Ze,Ke=((be={})[Je.items]={validators:[Ae],mandatory:!0},be[Je.before]={validators:[Re(1),Fe([Je.after,Je.beforeIndex,Je.afterIndex])]},be[Je.after]={validators:[Re(1),Fe([Je.before,Je.beforeIndex,Je.afterIndex])]},be[Je.beforeIndex]={validators:[Ne,Fe([Je.before,Je.after,Je.afterIndex])]},be[Je.afterIndex]={validators:[Ne,Fe([Je.before,Je.after,Je.beforeIndex])]},be[Je.decrease]={validators:[Pe],defaultValue:!1},be);!function(e){e.items="items",e.predicate="predicate",e.fixRight="fixRight"}(Ze||(Ze={}));var et,tt=((ye={})[Je.items]={validators:[Ae],mandatory:!0},ye[Ze.predicate]={validators:[Re(1)],mandatory:!0},ye[Ze.fixRight]={validators:[Pe],defaultValue:!1},ye);!function(e){e.predicate="predicate",e.fixRight="fixRight"}(et||(et={}));var it,nt=((Ie={})[et.predicate]={validators:[Re(1)],mandatory:!0},Ie[et.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"}(it||(it={}));var rt=((we={})[it.scrollPosition]={validators:[Oe]},we[it.minIndex]={validators:[Oe]},we[it.maxIndex]={validators:[Oe]},we[it.updater]={validators:[je(1,2)]},we[it.scrollToItem]={validators:[Re(1)]},we[it.scrollToItemOpt]={validators:[Le([Pe,$e])]},we),ot=((Se={})[fe.reset]=$,Se[fe.reload]=Be,Se[fe.prepend]=_e,Se[fe.append]=We,Se[fe.check]=Me,Se[fe.remove]=Ge,Se[fe.clip]=Xe,Se[fe.insert]=Je,Se[fe.replace]=Ze,Se[fe.update]=et,Se[fe.fix]=it,Se),st=((ze={})[fe.reset]=De,ze[fe.reload]=Ue,ze[fe.prepend]=qe,ze[fe.append]=He,ze[fe.check]={},ze[fe.remove]=Ye,ze[fe.clip]=Qe,ze[fe.insert]=Ke,ze[fe.replace]=tt,ze[fe.update]=nt,ze[fe.fix]=rt,ze),at=function(){function e(e,t,i){this.parseInput(e,Ee),this.parseInput(t,Ve),this.instanceIndex=i,this.initializeDelay=this.getInitializeDelay(),this.viewport=this.getViewport()}return e.prototype.parseInput=function(e,i){var n=this,r=G(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=q({value:e},"value",{validators:[D.ELEMENT]});return t.isValid?t.value:null},e}(),ct=function(e){var t;return(t=function(){}).process=e,t},lt=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:G(r,st[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:de.error,payload:{error:'Wrong argument of the "'.concat(e,'" method call')}})),a},o}(ct(e)),r.process=e,r},ut=[ue.init,fe.reset,fe.reload],ft=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=ut.includes(i);e.logger.logCycle(!0),n.startWorkflowCycle(o,i),r.call({process:t.process,status:de.next})},t}(ct(ue.init)),dt=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.scroll,o=e.settings.throttle,s=e.logger;r.current=t.getScrollEvent(i,r.previous);var a=r.current,l=a.direction,u=a.time,f=r.previous?u-r.previous.time:1/0,d=o-f,h=isFinite(d)&&d>0,p=!!r.scrollTimer;if(s.log((function(){return[l===c.backward?"⤴":"⤵",i,h?f+"ms":"0ms",h?p?"delayed":"/ ".concat(d,"ms delay"):""]})),!h)return r.scrollTimer&&(clearTimeout(r.scrollTimer),r.scrollTimer=null),void n();p||(r.scrollTimer=setTimeout((function(){s.log((function(){var n=t.getScrollEvent(e.viewport.scrollPosition,r.current);return[n.direction===c.backward?"⤴":"⤵",n.position,n.time-u+"ms","triggered by timer set on",i]})),r.scrollTimer=null,n()}),d))},t.getScrollEvent=function(e,t){var i=Number(new Date),n=c.forward;return t&&(e===t.position?n=t.direction:e<t.position&&(n=c.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:de.next})},t}(ct(ue.scroll)),ht=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.paddings,s=e.state.cycle;if(i){var a=t.parseInput(e,i).data;if(!a.isValid)return;var c=i instanceof O;Object.keys($).forEach((function(e){var t=a.params[e],i=n;(t.isSet||c&&i[e])&&(i[e]=t.value)}))}r.reset(!0),o.backward.reset(),o.forward.reset();var l={datasource:n};s.busy.get()&&(l.finalize=!0,s.interrupter=t.process),e.workflow.call({process:t.process,status:de.next,payload:l})},t}(lt(fe.reset)),pt=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()&&(r.scroll.stop(),a.finalize=!0,r.cycle.interrupter=t.process),e.workflow.call({process:t.process,status:de.next,payload:a})},t}(lt(fe.reload)),gt=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}(),mt=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?de.next:de.done})}},t.doUpdate=function(e,t){var i=e.buffer,n=e.viewport,r=e.state.fetch,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,c.backward),l=a.item,u=a.index,f=a.diff,d=i.updateItems(t.predicate,(function(e,t){return new gt(e,t,o)}),u,!!t.fixRight),h=d.trackedIndex,p=d.toRemove,g=0,m=i.get(h);l&&l===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.update(h,g,v,p),!!p.length||!!v.length},t}(lt(fe.update)),vt=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?de.next:de.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.fetch;if(i.size)return!1;var o=t.beforeIndex,s=t.afterIndex,a=t.items,c=t.decrease;return!!i.fillEmpty(a,o,s,!!c,(function(e,t){return new gt(e,t,n)}))&&(r.fill(i.items,i.startIndex),!0)},i.insertInBuffer=function(e,i){var n=i.before,o=i.after,s=i.beforeIndex,a=i.afterIndex,c=i.items,l=i.decrease,u=e.buffer.getIndexToInsert(n||o,s,a);if(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(c),!1),[n],!1):r([n],t(c),!1))},fixRight:l};return mt.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.fetch,l=e.viewport,u=Number.isInteger(i)?c.backward:c.forward,f=u===c.backward?i:n;if(!s.insertVirtually(r,f,u,!!o))return!1;var d=l.getEdgeVisibleItem(s.items,c.backward),h=d.index,p=d.diff;return a.firstVisible.index=h,isNaN(h)||(a.simulate=!0,a.firstVisible.delta=-s.getSizeByIndex(h)+p),!0},i}(lt(fe.insert)),xt=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?de.next:de.done})}},i.doAppend=function(e,i,n){var o,s,a=n.bof,c=n.eof,l=n.increase,u=n.decrease,f=e.buffer,d=i===fe.prepend,h=d?!l:u,p=n.items;return d?(o=(a?f.absMinIndex:f.minIndex)+(f.size?0:1),p=r([],t(p),!1).reverse()):s=(c?f.absMaxIndex:f.maxIndex)-(f.size||h?0:1),vt.doInsert(e,{items:p,beforeIndex:o,afterIndex:s,decrease:h})},i}(lt(fe.append)),bt=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.fetch,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)){r.first.indexBuffer=n.firstIndex,r.last.indexBuffer=n.lastIndex;var l=o.getEdgeVisibleItem(n.items,c.backward),u=l.index,f=l.diff;r.firstVisible.index=u,isNaN(u)||(r.firstVisible.delta=-n.getSizeByIndex(u)+f),r.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)?de.next:de.done})},t}(lt(fe.check)),yt=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?de.next:de.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)},c=e.buffer.items.reduce((function(e,i){return a(i)?r(r([],t(e),!1),[i.$index],!1):e}),[]),l={predicate:function(e){return!a(e)},fixRight:s};return mt.doUpdate(e,l),c},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.fetch,l=o.finiteAbsMinIndex,u=o.firstIndex,f=o.finiteAbsMaxIndex,d=o.lastIndex,h=[],p=0,g=n.length;p<g;p++){if((v=n[p])>=l&&!isNaN(u)&&v<u)h.push(v);else{if(!(v<=f&&!isNaN(d)&&v>d))continue;h.push(v)}}if(!h.length)return!1;if(isNaN(a.firstVisible.index)){var m=s.getEdgeVisibleItem(o.items,c.backward),v=m.index,x=m.diff;a.firstVisible.index=v,isNaN(v)||(a.firstVisible.delta=-o.getSizeByIndex(v)+x)}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}(lt(fe.remove)),It=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:de.next})},t}(lt(fe.clip)),wt=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?de.next:de.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 mt.doUpdate(e,r)},t}(lt(fe.replace)),St=ot[fe.fix],zt=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:de.done}))},i.runByType=function(e,t,n,r){switch(t){case St.scrollPosition:return i.setScrollPosition(e,n);case St.minIndex:return i.setMinIndex(e,n);case St.maxIndex:return i.setMaxIndex(e,n);case St.updater:return i.updateItems(e,n);case St.scrollToItem:if(r.params){var o=r.params[St.scrollToItemOpt],s=o?o.value:void 0;return i.scrollToItem(e,n,s)}return;case St.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}(lt(fe.fix)),kt=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:de.next,payload:i})},t}(ct(ue.start)),Et=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.fetch.positions,n=e.viewport,r=n.getBufferPadding();t.before=n.scrollPosition,t.startDelta=i.getStartDelta(e),t.relative=t.before-t.startDelta,t.start=t.relative-r,t.end=t.relative+n.getSize()+r},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.start,o=n.first,s=i.startIndex,a=0;if(t.cycle.innerLoop.isInitial)e.logger.log("skipping fetch backward direction [initial loop]");else if(i.defaultSize)for(var c=a,l=s;;){if(r>=0){var u=i.getSizeByIndex(l);if(c+u-r>0){s=l,a=c;break}if(c+=u,++l<i.absMinIndex)break}if(r<0){if(--l<i.absMinIndex)break;if(s=l,a=c-=i.getSizeByIndex(l),c-r<=0)break}}else e.logger.log("skipping fetch backward direction [no item size]");o.index=o.indexBuffer=Math.max(s,i.absMinIndex),o.position=a},i.setLastIndex=function(e){var t,i=e.state,n=i.fetch,r=i.cycle,o=e.buffer,s=e.settings,a=n.firstVisible,c=n.positions,l=c.relative,u=c.end,f=n.first,d=n.last;if(o.defaultSize){var h=f.indexBuffer,p=f.position;for(t=h;;){t=h;var g=o.getSizeByIndex(h);if(p+=g,isNaN(a.index)&&p>l&&(a.index=h,r.innerLoop.isInitial||(a.delta=p-g-l)),p>=u)break;if(h++>o.absMaxIndex)break}}else t=o.startIndex+s.bufferSize-1,e.logger.log("forcing fetch forward direction [no item size]");d.index=d.indexBuffer=Math.min(t,o.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 c=o[0];o[0].length&&o[1]&&o[1].length&&(i.hasAnotherPack=!0,o[1].length>=o[0].length&&(c=o[1])),i.first.index=Math.max(c[0],t.absMinIndex),i.last.index=Math.min(c[c.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 c=Math.max(r-s,t.absMinIndex);c<r&&(n.first.index=n.first.indexBuffer=c)}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=c.forward;t.size&&(n=i.last.index<t.items[0].$index?c.backward:c.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===fe.clip?(e.logger.log((function(){return'going to skip fetch due to "'.concat(fe.clip,'" process')})),de.next):n.shouldFetch?(e.logger.log((function(){return"going to fetch ".concat(n.count," items started from index ").concat(n.index)})),de.next):de.done},i}(ct(ue.preFetch)),Vt=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:de.next})},fail:function(e){return i.call({process:t.process,status:de.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=s.scroll,c=s.fetch,l=e.viewport;null===a.positionBeforeAsync&&(a.positionBeforeAsync=l.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},c=function(e){r?r(e):i=e||null},l=o(s.index,s.count,a,c);if(l&&"object"==typeof l&&null!==l){if("function"==typeof l.then)return l;if("function"==typeof l.subscribe)var u=l.subscribe(a,c,(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}(ct(ue.fetch)),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;t.setItems(e)?(t.setBufferLimits(e),i.call({process:t.process,status:e.state.fetch.hasNewItems?de.next:de.done})):i.call({process:t.process,status:de.error,payload:{error:"Can't set buffer items"}})},t.setBufferLimits=function(e){var t=e.buffer,i=e.state,n=i.fetch,r=i.cycle.innerLoop,o=n.items,s=n.first.index,a=n.last.index;if(o.length){var c=o.length-1;s<o[0].$index&&(t.absMinIndex=o[0].$index),a>o[c].$index&&(t.absMaxIndex=o[c].$index)}else(a<t.minIndex||r.isInitial)&&(t.absMinIndex=t.minIndex),(s>t.maxIndex||r.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.minIndex-o.length)),n.items=o.map((function(t,i){return new gt(s+i,t,e.routines)})),t.setItems(n.items)},t}(ct(ue.postFetch)),Nt=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=n.cycle,o=n.render,s=n.scroll,a=e.viewport,c=e.routines;e.logger.stat("before new items render"),null===s.positionBeforeAsync&&(s.positionBeforeAsync=a.scrollPosition),o.cancel=c.render((function(){o.cancel=null,t.doRender(e)?i.call({process:t.process,status:o.noSize?de.done:de.next,payload:{process:r.initiator}}):i.call({process:t.process,status:de.error,payload:{error:"Can't associate item with element"}})}))},t.doRender=function(e){var i=e.state,n=i.fetch,r=i.render,o=e.viewport,s=e.buffer,a=e.logger;return r.positionBefore=o.scrollPosition,!(!n.isCheck&&(r.sizeBefore=o.getScrollableSize(),!n.items.every((function(i){return t.processElement(e,i)}))))&&(s.checkDefaultSize(),r.sizeAfter=o.getScrollableSize(),a.stat("after new items render"),a.log((function(){return r.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}(ct(ue.render)),Ot=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:de.done});else{var a=t.shouldContinueRun(e,r);e.state.endInnerLoop(),o.call({process:t.process,status:a?de.next:de.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}(ct(ue.end)),Pt=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.scroll;r.positionBeforeAdjust=n.scrollPosition,t.setPaddings(e),r.positionAfterAdjust=n.scrollPosition;var o=t.calculatePosition(e);t.setAdditionalForwardPadding(e,o),t.setPosition(e,o,(function(){return i.call({process:t.process,status:de.done})}))},t.setPaddings=function(e){var t,i,n=e.viewport,r=e.buffer,o=e.settings.inverse,s=e.state.fetch,a=r.getFirstVisibleItem(),c=r.getLastVisibleItem();a&&c?(t=a.$index,i=c.$index):i=(t=isNaN(s.firstVisible.index)?r.startIndex:s.firstVisible.index)-1;var l,u=n.paddings,f=u.forward,d=u.backward,h=0,p=0;for(l=r.finiteAbsMinIndex;l<t;l++)h+=r.getSizeByIndex(l);for(l=i+1;l<=r.finiteAbsMaxIndex;l++)p+=r.getSizeByIndex(l);var g=h+(n.getScrollableSize()-f.size-d.size)+p,m=n.getSize()-g;m>0&&(o?h+=m:p+=m,e.logger.log((function(){return o?"backward":"forward"+" padding will be increased by ".concat(m," to fill the viewport")}))),d.size=h,f.size=p,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 c=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),c&&e.preSize&&r.items.includes(e)&&(a+=e.size-e.preSize))}))}if(null!==s.positionBeforeAsync){var l=o.positionBefore-s.positionBeforeAsync;0!==l&&(e.logger.log("shift position due to fetch-render difference (".concat(l,")")),a+=l)}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&&Ot.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 c=Math.min(s,r);c&&(i.paddings.forward.size+=c,e.logger.log("increase fwd padding due to lack of items (".concat(r," -> ").concat(c,")")))}}}},t.setPosition=function(e,t,i){var n=e.state.scroll,r=e.viewport,o=e.routines;if(!n.hasPositionChanged(t))return i();n.syntheticPosition=t,n.syntheticFulfill=!1,n.cancelAnimation=o.animate((function(){n.cancelAnimation=null;var o=n.positionAfterAdjust-r.scrollPosition,s="";o>0&&(t-=o,n.syntheticPosition=t,s=" (-".concat(o,")")),n.syntheticFulfill=!0,r.scrollPosition=t,e.logger.stat("after scroll adjustment"+s),i()}))},t}(ct(ue.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:de.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,c.backward,o),t.isForward(e,s)&&t.prepareClipByDirection(e,c.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!==c.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!==c.forward&&t+1<=i.absMaxIndex},t.prepareClipByDirection=function(e,t,i){var n=t===c.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}(ct(ue.preClip)),At=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:de.next})},t.doClip=function(e){var t,i=e.buffer,n=e.viewport.paddings,r=e.state.clip,o=e.logger,s=((t={})[c.backward]=0,t[c.forward]=0,t);o.stat("before clip (".concat(++r.callCount,")"));var a=i.items.filter((function(e){return!!e.toRemove&&(e.hide(),s[e.removeDirection]+=e.size,!0)}));a.length&&(s[c.backward]&&(n.byDirection(c.backward).size+=s[c.backward]),s[c.forward]&&(n.byDirection(c.forward).size+=s[c.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}(ct(ue.clip)),Rt=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.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 i=this;if(this.debug){var n=["color: #888; border: dashed #888 0; border-bottom-width: 0px","color: #000; border-width: 0"];this.log((function(){return r(["%cstat"+(e?" ".concat(e):"")+",%c "+i.getStat()],t(n),!1)}))}},e.prototype.fetch=function(e){var i=this;if(this.debug){var n="fetch interval"+(e?" ".concat(e):""),o=["color: #888","color: #000"];this.log((function(){return r(["%c".concat(n,": %c").concat(i.getFetchRange())],t(o),!1)}))}},e.prototype.prepareForLog=function(e){return e instanceof Event&&e.target?this.getScrollPosition():e},e.prototype.logProcess=function(e){if(this.debug){var i=e.process,n=e.status,o=e.payload,s=[];if(i===ue.init&&n===de.next)s.push("%c---=== loop ".concat(this.getLoopIdNext()," start"));else if(i===ue.end){s.push("%c---=== loop ".concat(this.getLoopId()," done"));var a=o&&o.process;n===de.next&&a!==fe.reset&&a!==fe.reload&&(s[0]+=", loop ".concat(this.getLoopIdNext()," start"))}s.length&&this.log((function(){return r(r([],t(s),!1),["color: #006600;"],!1)}))}},e.prototype.logCycle=function(e){void 0===e&&(e=!0);var t=this.getWorkflowCycleData(),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]}))},e.prototype.logError=function(e){var i=this;if(this.debug){var n=["color: #a00;","color: #000"];this.log((function(){return r(["error:%c"+(e?" ".concat(e):"")+"%c (loop ".concat(i.getLoopIdNext(),")")],t(n),!1)}))}},e.prototype.log=function(){for(var e=this,i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];if(this.debug){if("function"==typeof i[0]&&(i=i[0](),Array.isArray(i)||(i=[i])),i.every((function(e){return void 0===e})))return;this.logTime&&(i=r(r([],t(i),!1),[this.getTime()],!1)),i=i.map((function(t){return e.prepareForLog(t)})),this.immediateLog?console.log.apply(this,i):this.logs.push(i)}},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}(),Ct=function(){function e(e,t,i){var n=this;if(this.element=e,this.settings={viewport:t.viewport,horizontal:t.horizontal,window:t.windowViewport},i){var r=this,o=new i(e,this.settings);Object.getOwnPropertyNames(Object.getPrototypeOf(o)).filter((function(e){return"constructor"!==e&&"function"==typeof o[e]&&"function"==typeof r[e]})).forEach((function(e){return r[e]=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return o[e].apply(n,t)}}))}this.viewport=this.getViewportElement(),this.onInit(t)}return e.prototype.checkElement=function(e){if(!e)throw new Error("HTML element is not defined")},e.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},e.prototype.onInit=function(e){e.windowViewport&&"scrollRestoration"in history&&(history.scrollRestoration="manual"),e.dismissOverflowAnchor&&(this.viewport.style.overflowAnchor="none")},e.prototype.findElementBySelector=function(e,t){return this.checkElement(e),e.querySelector(t)},e.prototype.findPaddingElement=function(e){return this.findElementBySelector(this.element,"[data-padding-".concat(e,"]"))},e.prototype.findItemElement=function(e){return this.findElementBySelector(this.element,'[data-sid="'.concat(e,'"]'))},e.prototype.getScrollPosition=function(){return this.settings.window?this.settings.horizontal?window.pageXOffset:window.pageYOffset:this.viewport[this.settings.horizontal?"scrollLeft":"scrollTop"]},e.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},e.prototype.getElementParams=function(e){return this.checkElement(e),e.getBoundingClientRect()},e.prototype.getWindowParams=function(){var e=this.viewport,t=e.clientWidth,i=e.clientHeight,n=e.clientLeft,r=e.clientTop;return{height:i,width:t,top:r,bottom:r+i,left:n,right:n+t,x:n,y:r,toJSON:function(){return null}}},e.prototype.getSize=function(e){return this.getElementParams(e)[this.settings.horizontal?"width":"height"]},e.prototype.getScrollerSize=function(){return this.getElementParams(this.element)[this.settings.horizontal?"width":"height"]},e.prototype.getViewportSize=function(){return this.settings.window?this.getWindowParams()[this.settings.horizontal?"width":"height"]:this.getSize(this.viewport)},e.prototype.getSizeStyle=function(e){this.checkElement(e);var t=e.style[this.settings.horizontal?"width":"height"];return parseFloat(t)||0},e.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")},e.prototype.getEdge=function(e,t){var i=this.settings.horizontal;return this.getElementParams(e)[t===c.forward?i?"right":"bottom":i?"left":"top"]},e.prototype.getViewportEdge=function(e){var t=this.settings,i=t.window,n=t.horizontal;return i?this.getWindowParams()[e===c.forward?n?"right":"bottom":n?"left":"top"]:this.getEdge(this.viewport,e)},e.prototype.makeElementVisible=function(e){this.checkElement(e),e.style.left="",e.style.top="",e.style.position=""},e.prototype.hideElement=function(e){this.checkElement(e),e.style.display="none"},e.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))},e.prototype.scrollTo=function(e,t){this.checkElement(e),e.scrollIntoView(t)},e.prototype.render=function(e){var t=setTimeout((function(){return e()}));return function(){return clearTimeout(t)}},e.prototype.animate=function(e){var t=requestAnimationFrame((function(){return e()}));return function(){return cancelAnimationFrame(t)}},e.prototype.onScroll=function(e){var t=this.settings.window?window:this.viewport;return t.addEventListener("scroll",e,{passive:!0}),function(){return t.removeEventListener("scroll",e)}},e}(),jt=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}(),Ft=function(){function e(e,t){this.settings=t,this.forward=new jt(c.forward,e),this.backward=new jt(c.backward,e)}return e.prototype.byDirection=function(e,t){return e===c.backward?t?this.forward:this.backward:t?this.backward:this.forward},e.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))},e.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},e.prototype.getNegativeSize=function(e){var t=this.settings,i=0;return isFinite(t.minIndex)&&(i=(e-t.minIndex)*t.itemSize),i},e}(),Tt=function(){function e(e,t,i,n){this.settings=e,this.routines=t,this.state=i,this.logger=n,this.paddings=new Ft(this.routines,e)}return e.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()},e.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 i=this.scrollPosition;return this.logger.log((function(){return r(["setting scroll position at",i],t(i!==e?["(".concat(e,")")]:[]),!1)})),i},Object.defineProperty(e.prototype,"scrollPosition",{get:function(){return this.routines.getScrollPosition()},set:function(e){this.setPosition(e)},enumerable:!1,configurable:!0}),e.prototype.getSize=function(){return this.routines.getViewportSize()},e.prototype.getScrollableSize=function(){return this.routines.getScrollerSize()},e.prototype.getMaxScrollPosition=function(){return this.getScrollableSize()-this.getSize()},e.prototype.getBufferPadding=function(){return this.getSize()*this.settings.padding},e.prototype.getEdge=function(e){return this.routines.getViewportEdge(e)},e.prototype.setOffset=function(){this.offset=this.routines.getOffset()},e.prototype.findItemElementById=function(e){return this.routines.findItemElement(e)},e.prototype.getEdgeVisibleItem=function(e,t){for(var i,n=t===c.backward,r=n?c.forward:c.backward,o=this.getEdge(t),s=0,a=n?0:e.length-1;n?a<=e.length-1:a>=0;a+=n?1:-1){if(s=this.routines.getEdge(e[a].element,r)-o,n&&s>0||!n&&s<0){i=e[a];break}}return{item:i,index:i?i.$index:NaN,diff:s}},e}(),Lt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.newItems=[],this.oldItems=[],this.removed=[]},e}(),Bt=function(){function e(e,t){this.itemSize=e,this.sizeStrategy=t,this.sizeMap=new Map,this.recalculation=new Lt}return e.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()},e.prototype.get=function(){switch(this.sizeStrategy){case l.Average:return this.averageSize;case l.Frequent:return this.frequentSize;default:return this.constantSize}},e.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 c=r.reduce((function(e,t){return e+t.size}),0);a=this.averageSizeFloat||0;this.averageSizeFloat=((e+r.length)*a-c)/e}this.averageSize=Math.round(this.averageSizeFloat)},e.prototype.recalculateFrequentSize=function(){var e=this,i=this.recalculation,n=i.oldItems,o=i.newItems,s=i.removed,a=this.sizeMap.get(this.frequentSize);o.length&&o.forEach((function(t){var i=t.size;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)})),n.length&&(n.forEach((function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))})),n.forEach((function(t){var i=t.newSize;return e.sizeMap.set(i,(e.sizeMap.get(i)||0)+1)}))),s.length&&s.forEach((function(t){var i=t.size;return e.sizeMap.set(i,Math.max((e.sizeMap.get(i)||0)-1,0))}));var c=r([],t(this.sizeMap.entries()),!1).sort((function(e,t){return t[1]-e[1]})),l=c[0][1],u=c.filter((function(e){return e[1]===l}));u.length>1&&u.find((function(e){return e[0]===a}))||(this.frequentSize=c[0][0])},e.prototype.recalculate=function(e){if(this.sizeStrategy===l.Constant)return!1;var t=this.recalculation,i=t.oldItems,n=t.newItems,r=t.removed;if(!i.length&&!n.length&&!r.length)return!1;var o=this.get();return e?(this.sizeStrategy===l.Average?this.recalculateAverageSize(e):this.recalculateFrequentSize(),this.recalculation.reset()):this.reset(!0),this.get()!==o},e.prototype.setExisted=function(e,t){this.sizeStrategy!==l.Constant&&this.recalculation.oldItems.push({size:e,newSize:t})},e.prototype.setNew=function(e){this.sizeStrategy!==l.Constant?this.recalculation.newItems.push({size:e}):this.constantSize||(this.constantSize=e)},e.prototype.setRemoved=function(e){this.sizeStrategy!==l.Constant&&this.recalculation.removed.push({size:e})},e}(),Dt=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}(),_t=function(){function e(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 Bt(i,o),this.reset(!0)}return e.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(e.prototype,"size",{get:function(){return this.items.size},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.items.get(e)},e.prototype.getSizeByIndex=function(e){var t=this.get(e);return t&&t.size||this.defaultSize.get()},e.prototype.getDefaultSize=function(){return this.defaultSize.get()},e.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)},e.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 Dt(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},e.prototype.insertItems=function(e,t,i,n){var r=this,o=new Map,s=e.length,a=1/0,l=-1/0,u=function(e){o.set(e.$index,e),a=e.$index<a?e.$index:a,l=e.$index>l?e.$index:l};this.items.forEach((function(e){var r=0;i===c.backward?e.$index<t&&n?r=-s:e.$index>=t&&!n&&(r=s):i===c.forward&&(e.$index<=t&&n?r=-s:e.$index>t&&!n&&(r=s)),r&&e.changeIndex(e.$index+r),u(e)})),this.saveData&&e.forEach((function(e,o){var a=t+o-(n?s:0)+(i===c.forward?1:0),l=new Dt({$index:a,data:e},r.saveData);u(l)})),this.items=o,this.minIndex=a,this.maxIndex=l},e.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},e.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 c=t[0].$index,l=t[t.length-1].$index;r=c-s,o=l-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 Dt(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}},e.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},e}(),Ut=function(){function e(e,t){this.context=e,this.logger=t}return e.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)},e.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's result"),NaN)},e.prototype.insertVirtual=function(e,t,i){if(!e.length)return this.logger.log("no items to insert virtually; empty list"),!1;var n=this.context,r=n.firstIndex,o=n.lastIndex,s=n.finiteAbsMinIndex,a=n.finiteAbsMaxIndex;if(t<s||t>a)return this.logger.log((function(){return"no items to insert virtually; "+"selected index (".concat(t,") does not match virtual area [").concat(s,"..").concat(a,"]")})),!1;var l=i===c.backward;return t<r+(l?1:0)||t>o-(l?0:1)?(this.logger.log((function(){return"going to insert ".concat(e.length," item(s) virtually")})),!0):(this.logger.log((function(){return"no items to insert virtually; selected index (".concat(t,") belongs Buffer [").concat(r,"..").concat(o,"]")})),!1)},e}(),Wt=function(){function e(e,t,i){this._items=[],this.logger=i,this.changeItems=t,this.bof=new a(!1),this.eof=new a(!1),this.cache=new _t(e,i),this.checkCall=new Ut(this,i),this.startIndexUser=e.startIndex,this.minIndexUser=e.minIndex,this.maxIndexUser=e.maxIndex,this.reset(!0)}return e.prototype.dispose=function(){this.bof.dispose(),this.eof.dispose(),this._items.forEach((function(e){return e.dispose()})),this._items=[]},e.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},e.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(e.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(e.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(e.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}),e.prototype.checkBOF=function(){var e=this.items.length?this.items[0].$index===this.absMinIndex:isFinite(this.absMinIndex);this.bof.set(e)},e.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(e.prototype,"size",{get:function(){return this._items.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"cacheSize",{get:function(){return this.cache.size},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"defaultSize",{get:function(){return this.cache.getDefaultSize()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minIndex",{get:function(){return isFinite(this.cache.minIndex)?this.cache.minIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxIndex",{get:function(){return isFinite(this.cache.maxIndex)?this.cache.maxIndex:this.startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"firstIndex",{get:function(){return this.items.length?this.items[0].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastIndex",{get:function(){return this.items.length?this.items[this.items.length-1].$index:NaN},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"finiteAbsMinIndex",{get:function(){return isFinite(this.absMinIndex)?this.absMinIndex:this.minIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"finiteAbsMaxIndex",{get:function(){return isFinite(this.absMaxIndex)?this.absMaxIndex:this.maxIndex},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.items.find((function(t){return t.$index===e}))},e.prototype.setItems=function(e){if(this.items.length)if(this.items[0].$index>e[e.length-1].$index)this.items=r(r([],t(e),!1),t(this.items),!1);else{if(!(e[0].$index>this.items[this.items.length-1].$index))return!1;this.items=r(r([],t(this.items),!1),t(e),!1)}else this.items=r([],t(e),!1);return!0},e.prototype.clip=function(){this.items=this.items.filter((function(e){return!e.toRemove}))},e.prototype.getIndexToInsert=function(e,t,i){return this.checkCall.insertInBuffer(e,t,i)},e.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)},e.prototype.insertVirtually=function(e,i,n,o){if(!this.checkCall.insertVirtual(e,i,n))return!1;var s=0;return i<=this.firstIndex&&!o?s=e.length:i>=this.lastIndex&&o&&(s=-e.length),s&&(this.items.forEach((function(e){return e.updateIndex(e.$index+s)})),this.cache.insertItems(e,i,n,o),this.items=r([],t(this.items),!1)),this.shiftExtremum(e.length,o),!0},e.prototype.removeVirtually=function(e,i){for(var n=this.items.length,o=!1,s=function(t){var n=a.items[t],r=e.reduce((function(e,t){return e+(i?n.$index<t?1:0:n.$index>t?-1:0)}),0);o=o||!!r,n.updateIndex(n.$index+r)},a=this,c=i?n-1:0;i?c>=0:c<n;i?c--:c++)s(c);this.shiftExtremum(-e.length,i),o&&(this.items=r([],t(this.items),!1)),this.cache.removeItems(e,i)},e.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},e.prototype.updateItems=function(e,i,n,o){if(!this.size||Number.isNaN(this.firstIndex))return{trackedIndex:NaN,toRemove:[]};for(var s=n,a=o?this.lastIndex:this.firstIndex,c=[],l=o?-1:1,u=this.size-1,f=new Map,d=Array.prototype[o?"unshift":"push"],h=function(u){var h=p.items[u];f.set(h.$index,h);var g=e(h);if(!g||Array.isArray(g)&&!g.length)return h.toRemove=!0,s+=h.$index>=n?o?1:0:o?0:-1,p.shiftExtremum(-1,o),"continue";if(!Array.isArray(g))return h.updateIndex(a),d.call(c,h),a+=l,"continue";h.$index<n?s+=o?0:g.length-1:h.$index>n&&(s+=o?1-g.length:0);var m=!0,v=[];(o?r([],t(g),!1).reverse():g).forEach((function(e,t){var r;h.data===e?(n===h.$index&&(s=a+t*l),h.updateIndex(a+t*l),r=h,m=!1):(r=i(a+t*l,e)).toInsert=!0,d.call(v,r)})),h.toRemove=m,d.call.apply(d,r([c],t(v),!1)),a+=l*g.length,g.length>1&&p.shiftExtremum(g.length-1,o)},p=this,g=o?u:0;o?g>=0:g<=u;g+=l)h(g);var m=this.items.filter((function(e){return e.toRemove})),v=Array.from(f).map((function(e){var i=t(e,2),n=i[0],r=i[1];return{$index:n,size:r.size,toRemove:r.toRemove}})).sort((function(e,t){return e.$index-t.$index}));return this.items=c,this.cache.updateSubset(v,c,o),this.finiteAbsMinIndex===this.finiteAbsMaxIndex?s=NaN:s>this.finiteAbsMaxIndex?s=this.finiteAbsMaxIndex:s<this.finiteAbsMinIndex&&(s=this.finiteAbsMinIndex),{trackedIndex:s,toRemove:m}},e.prototype.cacheItem=function(e){this.cache.add(e)},e.prototype.getFirstVisibleItemIndex=function(){for(var e=this.items.length,t=0;t<e;t++)if(!this.items[t].invisible)return t;return-1},e.prototype.getLastVisibleItemIndex=function(){for(var e=this.items.length-1;e>=0;e--)if(!this.items[e].invisible)return e;return-1},e.prototype.getFirstVisibleItem=function(){var e=this.getFirstVisibleItemIndex();return e>=0?this.items[e]:void 0},e.prototype.getLastVisibleItem=function(){var e=this.getLastVisibleItemIndex();return e>=0?this.items[e]:void 0},e.prototype.getEdgeVisibleItem=function(e,t){return e===(t?c.backward:c.forward)?this.getLastVisibleItem():this.getFirstVisibleItem()},e.prototype.getVisibleItemsCount=function(){return this.items.reduce((function(e,t){return e+(t.invisible?0:1)}),0)},e.prototype.getSizeByIndex=function(e){return this.cache.getSizeByIndex(e)},e.prototype.checkDefaultSize=function(){return this.cache.recalculateDefaultSize()},e}(),qt=function(){function e(e){this.total=e,this.isInitial=!1,this.busy=new a(!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}(),Gt=function(){function e(e,t){var i=t?t.count:1,n=t?t.innerLoop.count:0;this.instanceIndex=e,this.innerLoop=new qt(n),this.interrupter=null,this.busy=new a(!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}(),Ht=function(){function e(){this.reset()}return e.prototype.reset=function(){this.startDelta=0,this.before=0},e}(),Xt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN,this.position=NaN},e}(),Yt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.indexBuffer=NaN},e}(),Jt=function(){function e(){this.reset()}return e.prototype.reset=function(){this.index=NaN,this.delta=0},e}(),Qt=function(){function e(e){this.directionPriority=e,this.callCount=0,this.positions=new Ht,this.first=new Xt,this.last=new Yt,this.firstVisible=new Jt,this.reset()}return e.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(e.prototype,"newItemsData",{get:function(){return this._newItemsData},set:function(e){this._newItemsData=e,e&&e.length&&this.callCount++},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shouldFetch",{get:function(){return!!this.count},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasNewItems",{get:function(){return!(!this._newItemsData||!this._newItemsData.length)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"index",{get:function(){return this.first.index},enumerable:!1,configurable:!0}),Object.defineProperty(e.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}),e.prototype.shouldCheckPreSizeExpectation=function(e){if(this.directionPriority===c.backward)return!1;var t=this.items[this.items.length-1];return t&&t.$index<e},e.prototype.startSimulate=function(e){this.simulate=!0,this._newItemsData=e.map((function(e){return e.data})),this.items=e,this.hasAnotherPack=!1},e.prototype.stopSimulate=function(){this.simulate=!1,this.isCheck=!1,this.doRemove=!1},e.prototype.fill=function(e,t){this.startSimulate(e),this.first.index=e[0].$index,this.last.index=e[e.length-1].$index,this.direction=c.forward,this.firstVisible.index=t,this.firstVisible.delta=0},e.prototype.check=function(e){this.startSimulate(e),this.last.index=e[0].$index,this.first.index=e[e.length-1].$index,this.isCheck=!0},e.prototype.update=function(e,t,i,n){this.startSimulate(i),this.firstVisible.index=e,this.firstVisible.delta=t,this.doRemove=n.length>0},e}(),Zt=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}(),Kt=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}(),ei=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}(),ti=function(){function e(e,t,i){this.packageInfo=e,this.settings=t,this.initTime=Number(new Date),this.cycle=new Gt(this.settings.instanceIndex,i?i.cycle:void 0),this.fetch=new Qt(t.directionPriority),this.clip=new Zt,this.render=new Kt,this.scroll=new ei}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,n=e.scroll,r=e.fetch,o=e.render,s=e.clip;return t.innerLoop.start(),n.positionBeforeAsync=null,r.simulate||r.reset(),s.reset(s.force),o.reset(),i({},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(!0),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.endInnerLoop()},e}(),ii=b(),ni=function(e,t){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,t)},ri=function(e,t,i){var n=t;if(!ni(t,"items")){var r=Array.isArray(t)?t:[t];n=e?{items:r,bof:i}:{items:r,eof:i}}return n},oi=function(){function e(e,n,r){var a=this;this.source={},this.box={},this.demand={},this.setFirstOrLastVisible=function(e){},this.getWorkflow=n,this.logger=r,this.relax$=null,this.relaxRun=null,this.reloadCounter=0;var c=(null==e?void 0:e.id)||-1,l=e&&y.get(e.id)||{};z(!0,c);var u=e?ii.map((function(t){var n=e[t.name];if(e.augmented){var r=l[t.name];r&&(n=r.default)}return i(i({},t),{value:n})})):b();Object.entries(l).forEach((function(e){var i=t(e,2),n=i[0],r=i[1],o=u.find((function(e){return e.name===n}));o&&r&&(o.value=r.default)})),u.filter((function(e){var t=e.type,i=e.permanent;return t===s.Scalar&&i})).forEach((function(e){var t=e.name,i=e.value;return Object.defineProperty(a,t,{configurable:!0,get:function(){return i}})})),u.filter((function(e){return e.type===s.Reactive})).forEach((function(e){var t=e.name,i=e.value;a.source[t]=i,Object.defineProperty(a,t,{configurable:!0,get:function(){return a.source[t]}})}));var f=function(e){S(e,c)&&([o.firstVisible,o.firstVisible$].some((function(t){return t===e.name}))?a.setFirstOrLastVisible({first:!0}):[o.lastVisible,o.lastVisible$].some((function(t){return t===e.name}))&&a.setFirstOrLastVisible({last:!0}))};u.filter((function(e){return e.type===s.Scalar&&!!e.reactive})).forEach((function(e){var t=e.name,i=e.value,n=e.reactive;a.box[t]=i,Object.defineProperty(a,t,{configurable:!0,set:function(e){if(e!==a.box[t]){a.box[t]=e,a.source[n].set(e);var i=l[n];i&&i.emit(i.source,e)}},get:function(){return f(e),a.box[t]}})})),u.filter((function(e){return e.type===s.Scalar&&e.onDemand})).forEach((function(e){var t=e.name,i=e.value;a.demand[t]=i,Object.defineProperty(a,t,{configurable:!0,get:function(){return a.demand[t]}})})),e&&(u.forEach((function(t){var i=t.name,n=t.type,r=t.value,c=t.permanent,u=a[i];n===s.Function?u=u.bind(a):n===s.WorkflowRunner?u=a.getPromisifiedMethod(u,r):n===s.Reactive&&l[i]?u=e[i]:i===o.augmented&&(u=!0);var d=!c&&n===s.Scalar;Object.defineProperty(e,i,{configurable:!0,get:function(){return f(t),d?a[i]:u}})})),this.externalContext=e,z(!1,c))}return Object.defineProperty(e.prototype,"workflow",{get:function(){return this.getWorkflow()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"reloadCount",{get:function(){return this.reloadCounter},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"reloadId",{get:function(){return this.id+"."+this.reloadCounter},enumerable:!1,configurable:!0}),e.prototype.getPromisifiedMethod=function(e,t){var i=this;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return i.relax$?new Promise((function(t){i.relax$&&i.relax$.once((function(e){return t(e)})),e.apply(i,n)})):t.apply(i,n)}},e.prototype.initialize=function(e,t,i,n,r){var s=this;if(Object.defineProperty(this.demand,o.itemsCount,{get:function(){return e.getVisibleItemsCount()}}),Object.defineProperty(this.demand,o.bufferInfo,{get:function(){return{firstIndex:e.firstIndex,lastIndex:e.lastIndex,minIndex:e.minIndex,maxIndex:e.maxIndex,absMinIndex:e.absMinIndex,absMaxIndex:e.absMaxIndex,defaultSize:e.defaultSize}}}),this.bof=e.bof.get(),e.bof.on((function(e){return s.bof=e})),this.eof=e.eof.get(),e.eof.on((function(e){return s.eof=e})),Object.defineProperty(this.demand,o.packageInfo,{get:function(){return t.packageInfo}}),this.loopPending=t.cycle.innerLoop.busy.get(),t.cycle.innerLoop.busy.on((function(e){return s.loopPending=e})),this.isLoading=t.cycle.busy.get(),t.cycle.busy.on((function(e){return s.isLoading=e})),this.setFirstOrLastVisible=function(t){var r,a,l,u=t.first,f=t.last,d=t.workflow;if((u||f)&&!(null===(r=null==d?void 0:d.call)||void 0===r?void 0:r.interrupted)){var h=u?o.firstVisible:o.lastVisible;if(null===(l=w(null===(a=s.externalContext)||void 0===a?void 0:a.id))||void 0===l?void 0:l[h])if(e.items.some((function(e){return!e.element})))n.log("skipping first/lastVisible set because not all buffered items are rendered at this moment");else{var p=u?c.backward:c.forward,g=i.getEdgeVisibleItem(e.items,p).item;g&&g.element===s[h].element||(s[h]=g?g.get():x)}}},this.logger=n,r){this.relax$||(this.relax$=new a);var l=this.relax$;r.on((function(e){var t=e.status,i=e.payload,n=function(){};t===de.start?n=s.isLoading$.on((function(e){e||(n(),l.set({success:!0,immediate:!1,details:null}))})):t!==de.done&&t!==de.error||(n(),l.set({success:t!==de.error,immediate:!0,details:t===de.error&&i?String(i.error):null}))}))}this.init=!0},e.prototype.dispose=function(){var e=this;this.relax$&&this.relax$.dispose(),this.externalContext&&this.resetContext(),Object.getOwnPropertyNames(this).forEach((function(t){delete e[t]}))},e.prototype.resetContext=function(){var e,t=this,i=y.get(null===(e=this.externalContext)||void 0===e?void 0:e.id);ii.forEach((function(e){var n=e.type,r=e.permanent,o=e.name,a=e.value;if(n===s.Reactive||r||Object.defineProperty(t.externalContext,o,{configurable:!0,get:function(){return a}}),n===s.Reactive&&i){var c=i[o];c&&(c.default.reset(),c.emit(c.source,c.default.get()))}}))},e.prototype.reset=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reset",e," of ".concat(this.reloadId)),this.workflow.call({process:fe.reset,status:de.start,payload:{options:e}})},e.prototype.reload=function(e){this.reloadCounter++,this.logger.logAdapterMethod("reload",e," of ".concat(this.reloadId)),this.workflow.call({process:fe.reload,status:de.start,payload:{options:e}})},e.prototype.append=function(e,t){var i=ri(!1,e,t);this.logger.logAdapterMethod("append",[i.items,i.eof]),this.workflow.call({process:fe.append,status:de.start,payload:{options:i}})},e.prototype.prepend=function(e,t){var i=ri(!0,e,t);this.logger.logAdapterMethod("prepend",[i.items,i.bof]),this.workflow.call({process:fe.prepend,status:de.start,payload:{options:i}})},e.prototype.check=function(){this.logger.logAdapterMethod("check"),this.workflow.call({process:fe.check,status:de.start})},e.prototype.remove=function(e){e=function(e){return ni(e,"predicate")||ni(e,"indexes")||(e={predicate:e}),e}(e),this.logger.logAdapterMethod("remove",e),this.workflow.call({process:fe.remove,status:de.start,payload:{options:e}})},e.prototype.clip=function(e){this.logger.logAdapterMethod("clip",e),this.workflow.call({process:fe.clip,status:de.start,payload:{options:e}})},e.prototype.insert=function(e){this.logger.logAdapterMethod("insert",e),this.workflow.call({process:fe.insert,status:de.start,payload:{options:e}})},e.prototype.replace=function(e){this.logger.logAdapterMethod("replace",e),this.workflow.call({process:fe.replace,status:de.start,payload:{options:e}})},e.prototype.update=function(e){this.logger.logAdapterMethod("update",e),this.workflow.call({process:fe.update,status:de.start,payload:{options:e}})},e.prototype.fix=function(e){this.logger.logAdapterMethod("fix",e),this.workflow.call({process:fe.fix,status:de.start,payload:{options:e}})},e.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=t===i.reloadId;return i.logger.log((function(){return n?void 0:"relax promise cancelled due to ".concat(t," != ").concat(i.reloadId)})),{immediate:e,success:n,details:n?null:"Interrupted by reload or reset"}}))},e.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(p)},e.prototype.showLog=function(){this.logger.logAdapterMethod("showLog"),this.logger.logForce()},e}(),si="Invalid datasource:",ai=0,ci=function(){function e(e){var t=e.datasource,i=e.consumer,n=e.element,r=e.workflow,o=e.Routines,s=e.scroller,a=G(t,ee).params.get;if(!a.isValid)throw new Error("".concat("Invalid datasource:"," ").concat(a.errors[0]));var c=s?s.state.packageInfo:{consumer:i,core:I};n=s?s.routines.element:n,r=s?s.workflow:r,this.workflow=r,this.settings=new at(t.settings,t.devSettings,++ai),this.logger=new Rt(this,c,t.adapter),this.routines=new Ct(n,this.settings,o),this.state=new ti(c,this.settings,s?s.state:void 0),this.buffer=new Wt(this.settings,r.onDataChanged,this.logger),this.viewport=new Tt(this.settings,this.routines,this.state,this.logger),this.logger.object("vscroll settings object",this.settings,!0),this.initDatasource(t,s)}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 M,r=!n&&!this.settings.adapter;if(n)this.datasource=e;else{var o=N((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 oi(s,(function(){return i.workflow}),this.logger)},e.prototype.init=function(e){this.viewport.reset(this.buffer.startIndex),this.logger.stat("initialization"),this.adapter.initialize(this.buffer,this.state,this.viewport,this.logger,e)},e.prototype.dispose=function(e){e&&this.adapter.dispose(),this.buffer.dispose(),this.state.dispose()},e.prototype.finalize=function(){},e}(),li=function(){function e(e){var t=this,i=e.element,n=e.datasource,r=e.consumer,o=e.run,s=e.Routines;this.isInitialized=!1,this.initTimer=null,this.adapterRun$=new a,this.cyclesDone=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 ci({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$),this.isInitialized=!0,this.callWorkflow({process:ue.init,status:de.start});var t=this.scroller.routines;this.offScroll=t.onScroll((function(t){return e.callWorkflow({process:ue.scroll,status:de.start,payload:{event:t}})}))},e.prototype.changeItems=function(e){this.propagateChanges(e)},e.prototype.callWorkflow=function(e){if(this.isInitialized){var t=e.process,i=e.status;t&&t.startsWith("adapter")&&i!==de.next&&this.adapterRun$.set(e),this.process(e)}},e.prototype.getUpdater=function(){return{call:this.callWorkflow.bind(this),onDataChanged:this.changeItems.bind(this)}},e.prototype.process=function(e){var n=e.status,o=e.process,s=e.payload;this.scroller.settings.logProcessRun&&this.scroller.logger.log((function(){return r(r(r(["%cfire%c"],["color: #cc7777;","color: #000000;"],!1),[o,'"'.concat(n,'"')],!1),t(void 0!==s?[s]:[]),!1)})),this.scroller.logger.logProcess(e),o===ue.end&&this.scroller.finalize(),function(e){var t=e.input,n=t.process,r=t.status,o=t.payload,s=void 0===o?{}:o,a=e.methods,c=a.run,l=a.interrupt,u=a.done,f=a.onError;if(r===de.error)return f(n,s),void(n.startsWith("adapter")||c(Ot)(s));var d=s.options;switch(n){case ue.init:r===de.start&&c(ft)(n),r===de.next&&c(kt)();break;case ue.scroll:r===de.start&&c(dt)(s),r===de.next&&c(ft)(n);break;case fe.reset:case fe.reload:r===de.start&&(n===fe.reset?c(ht)(d):c(pt)(d)),r===de.next&&(l(i({process:n},s)),s.finalize?c(Ot)():c(ft)(n));break;case fe.append:case fe.prepend:r===de.start&&c(xt)({process:n,options:d}),r===de.next&&c(ft)(n);break;case fe.check:r===de.start&&c(bt)(),r===de.next&&c(ft)(n);break;case fe.remove:r===de.start&&c(yt)(d),r===de.next&&c(ft)(n);break;case fe.clip:r===de.start&&c(It)(d),r===de.next&&c(ft)(n);break;case fe.insert:r===de.start&&c(vt)(d),r===de.next&&c(ft)(n);break;case fe.replace:r===de.start&&c(wt)(d),r===de.next&&c(ft)(n);break;case fe.update:r===de.start&&c(mt)(d),r===de.next&&c(ft)(n);break;case fe.fix:r===de.start&&c(zt)(d),r===de.next&&c(ft)(n);break;case ue.start:switch(s.process){case fe.append:case fe.insert:case fe.replace:case fe.update:s.doRender?c(Nt)():c(Pt)();break;case fe.check:c(Nt)();break;case fe.remove:c(Pt)();break;default:c(Et)()}break;case ue.preFetch:r===de.next&&(s.process===fe.clip?c($t)():c(Vt)()),r===de.done&&c(Ot)();break;case ue.fetch:c(Mt)();break;case ue.postFetch:r===de.next&&c(Nt)(),r===de.done&&c(Ot)();break;case ue.render:if(r===de.next)switch(s.process){case fe.append:case fe.check:case fe.insert:case fe.replace:case fe.update:c(Pt)();break;default:c($t)()}r===de.done&&c(Ot)();break;case ue.preClip:s.doClip?c(At)():c(Pt)();break;case ue.clip:c(Pt)();break;case ue.adjust:c(Ot)();break;case ue.end:if(r===de.next)switch(s.process){case fe.reset:case fe.reload:u(),c(ft)(s.process);break;default:c(kt)()}r===de.done&&u()}}({input:e,methods:this.stateMachineMethods})},e.prototype.runProcess=function(){var e=this;return function(i){var n=i.run,o=i.process,s=i.name;return function(){for(var i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];e.scroller.settings.logProcessRun&&e.scroller.logger.log((function(){return r(r(r(["%crun%c"],["color: #333399;","color: #000000;"],!1),[o||s],!1),t(i),!1)})),n.apply(void 0,r([e.scroller],t(i),!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,")")}))}r&&this.scroller.adapter.relax((function(){t.scroller.logger.log("new Scroller instantiation");var e=new ci({datasource:r,scroller:t.scroller});t.scroller.dispose(),t.scroller=e,t.scroller.init()}))},e.prototype.done=function(){var e=this.scroller,t=e.state,i=e.logger;this.cyclesDone++,i.logCycle(!1),t.endWorkflowCycle(this.cyclesDone+1),this.finalize()},e.prototype.dispose=function(){var e=this;this.initTimer&&clearTimeout(this.initTimer),this.offScroll(),this.adapterRun$.dispose(),this.scroller.dispose(!0),Object.getOwnPropertyNames(this).forEach((function(t){delete e[t]}))},e.prototype.finalize=function(){},e}();export{o as AdapterPropName,c as Direction,x as EMPTY_ITEM,si as INVALID_DATASOURCE_PREFIX,l as SizeStrategy,li as Workflow,b as getDefaultAdapterProps,N as makeDatasource,I as packageInfo};
6
6
  //# sourceMappingURL=vscroll.esm5.min.js.map