vscroll 1.7.0 → 1.8.0

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 (250) hide show
  1. package/dist/bundles/vscroll.esm5.js +517 -367
  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 +407 -259
  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 +518 -368
  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 +2 -1
  14. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/props.js +1 -1
  16. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  17. package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
  18. package/dist/esm2015/classes/adapter.js +17 -18
  19. package/dist/esm2015/classes/adapter.js.map +1 -1
  20. package/dist/esm2015/classes/buffer/cache.js +11 -8
  21. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  22. package/dist/esm2015/classes/buffer/checkCall.js +4 -5
  23. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  24. package/dist/esm2015/classes/buffer/defaultSize.js +2 -1
  25. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  26. package/dist/esm2015/classes/buffer.js +12 -11
  27. package/dist/esm2015/classes/buffer.js.map +1 -1
  28. package/dist/esm2015/classes/datasource.js +16 -3
  29. package/dist/esm2015/classes/datasource.js.map +1 -1
  30. package/dist/esm2015/classes/domRoutines.js +14 -14
  31. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  32. package/dist/esm2015/classes/item.js.map +1 -1
  33. package/dist/esm2015/classes/logger.js +74 -31
  34. package/dist/esm2015/classes/logger.js.map +1 -1
  35. package/dist/esm2015/classes/paddings.js +6 -2
  36. package/dist/esm2015/classes/paddings.js.map +1 -1
  37. package/dist/esm2015/classes/reactive.js.map +1 -1
  38. package/dist/esm2015/classes/settings.js.map +1 -1
  39. package/dist/esm2015/classes/state/clip.js.map +1 -1
  40. package/dist/esm2015/classes/state/cycle.js.map +1 -1
  41. package/dist/esm2015/classes/state/fetch.js +4 -2
  42. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  43. package/dist/esm2015/classes/state/render.js.map +1 -1
  44. package/dist/esm2015/classes/state/scroll.js.map +1 -1
  45. package/dist/esm2015/classes/state.js +6 -4
  46. package/dist/esm2015/classes/state.js.map +1 -1
  47. package/dist/esm2015/classes/viewport.js +4 -2
  48. package/dist/esm2015/classes/viewport.js.map +1 -1
  49. package/dist/esm2015/index.js +1 -1
  50. package/dist/esm2015/index.js.map +1 -1
  51. package/dist/esm2015/inputs/adapter.js +44 -24
  52. package/dist/esm2015/inputs/adapter.js.map +1 -1
  53. package/dist/esm2015/inputs/common.js.map +1 -1
  54. package/dist/esm2015/inputs/datasource.js.map +1 -1
  55. package/dist/esm2015/inputs/index.js +1 -1
  56. package/dist/esm2015/inputs/index.js.map +1 -1
  57. package/dist/esm2015/inputs/settings.js +8 -3
  58. package/dist/esm2015/inputs/settings.js.map +1 -1
  59. package/dist/esm2015/inputs/validation.js +8 -14
  60. package/dist/esm2015/inputs/validation.js.map +1 -1
  61. package/dist/esm2015/inputs/workflow.js.map +1 -1
  62. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  63. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  64. package/dist/esm2015/interfaces/index.js.map +1 -1
  65. package/dist/esm2015/interfaces/item.js.map +1 -1
  66. package/dist/esm2015/interfaces/process.js.map +1 -1
  67. package/dist/esm2015/interfaces/routines.js.map +1 -1
  68. package/dist/esm2015/interfaces/settings.js.map +1 -1
  69. package/dist/esm2015/interfaces/state.js.map +1 -1
  70. package/dist/esm2015/interfaces/validation.js.map +1 -1
  71. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  72. package/dist/esm2015/processes/adapter/append.js +2 -1
  73. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  74. package/dist/esm2015/processes/adapter/check.js +2 -1
  75. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  76. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  77. package/dist/esm2015/processes/adapter/fix.js +4 -2
  78. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  79. package/dist/esm2015/processes/adapter/insert.js +4 -3
  80. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  81. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  82. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  83. package/dist/esm2015/processes/adapter/remove.js +8 -5
  84. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  85. package/dist/esm2015/processes/adapter/replace.js +1 -1
  86. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  87. package/dist/esm2015/processes/adapter/reset.js +5 -5
  88. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  89. package/dist/esm2015/processes/adapter/update.js +4 -3
  90. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  91. package/dist/esm2015/processes/adjust.js +15 -10
  92. package/dist/esm2015/processes/adjust.js.map +1 -1
  93. package/dist/esm2015/processes/clip.js +4 -4
  94. package/dist/esm2015/processes/clip.js.map +1 -1
  95. package/dist/esm2015/processes/end.js +2 -1
  96. package/dist/esm2015/processes/end.js.map +1 -1
  97. package/dist/esm2015/processes/fetch.js +6 -4
  98. package/dist/esm2015/processes/fetch.js.map +1 -1
  99. package/dist/esm2015/processes/index.js +1 -1
  100. package/dist/esm2015/processes/index.js.map +1 -1
  101. package/dist/esm2015/processes/init.js.map +1 -1
  102. package/dist/esm2015/processes/misc/base.js +1 -2
  103. package/dist/esm2015/processes/misc/base.js.map +1 -1
  104. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  105. package/dist/esm2015/processes/misc/index.js.map +1 -1
  106. package/dist/esm2015/processes/postFetch.js +13 -12
  107. package/dist/esm2015/processes/postFetch.js.map +1 -1
  108. package/dist/esm2015/processes/preClip.js +6 -5
  109. package/dist/esm2015/processes/preClip.js.map +1 -1
  110. package/dist/esm2015/processes/preFetch.js +28 -15
  111. package/dist/esm2015/processes/preFetch.js.map +1 -1
  112. package/dist/esm2015/processes/render.js +6 -4
  113. package/dist/esm2015/processes/render.js.map +1 -1
  114. package/dist/esm2015/processes/scroll.js +19 -10
  115. package/dist/esm2015/processes/scroll.js.map +1 -1
  116. package/dist/esm2015/processes/start.js.map +1 -1
  117. package/dist/esm2015/scroller.js +14 -9
  118. package/dist/esm2015/scroller.js.map +1 -1
  119. package/dist/esm2015/version.js +1 -1
  120. package/dist/esm2015/version.js.map +1 -1
  121. package/dist/esm2015/workflow-transducer.js +3 -2
  122. package/dist/esm2015/workflow-transducer.js.map +1 -1
  123. package/dist/esm2015/workflow.js +28 -17
  124. package/dist/esm2015/workflow.js.map +1 -1
  125. package/dist/esm5/classes/adapter/context.js +2 -1
  126. package/dist/esm5/classes/adapter/context.js.map +1 -1
  127. package/dist/esm5/classes/adapter/props.js +1 -1
  128. package/dist/esm5/classes/adapter/props.js.map +1 -1
  129. package/dist/esm5/classes/adapter/wanted.js.map +1 -1
  130. package/dist/esm5/classes/adapter.js +22 -19
  131. package/dist/esm5/classes/adapter.js.map +1 -1
  132. package/dist/esm5/classes/buffer/cache.js +11 -9
  133. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  134. package/dist/esm5/classes/buffer/checkCall.js +4 -7
  135. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  136. package/dist/esm5/classes/buffer/defaultSize.js +2 -1
  137. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  138. package/dist/esm5/classes/buffer.js +15 -14
  139. package/dist/esm5/classes/buffer.js.map +1 -1
  140. package/dist/esm5/classes/datasource.js +20 -3
  141. package/dist/esm5/classes/datasource.js.map +1 -1
  142. package/dist/esm5/classes/domRoutines.js +14 -14
  143. package/dist/esm5/classes/domRoutines.js.map +1 -1
  144. package/dist/esm5/classes/item.js.map +1 -1
  145. package/dist/esm5/classes/logger.js +75 -34
  146. package/dist/esm5/classes/logger.js.map +1 -1
  147. package/dist/esm5/classes/paddings.js +6 -2
  148. package/dist/esm5/classes/paddings.js.map +1 -1
  149. package/dist/esm5/classes/reactive.js.map +1 -1
  150. package/dist/esm5/classes/settings.js.map +1 -1
  151. package/dist/esm5/classes/state/clip.js.map +1 -1
  152. package/dist/esm5/classes/state/cycle.js.map +1 -1
  153. package/dist/esm5/classes/state/fetch.js +4 -2
  154. package/dist/esm5/classes/state/fetch.js.map +1 -1
  155. package/dist/esm5/classes/state/render.js.map +1 -1
  156. package/dist/esm5/classes/state/scroll.js.map +1 -1
  157. package/dist/esm5/classes/state.js +6 -4
  158. package/dist/esm5/classes/state.js.map +1 -1
  159. package/dist/esm5/classes/viewport.js +3 -2
  160. package/dist/esm5/classes/viewport.js.map +1 -1
  161. package/dist/esm5/index.js +1 -1
  162. package/dist/esm5/index.js.map +1 -1
  163. package/dist/esm5/inputs/adapter.js +32 -12
  164. package/dist/esm5/inputs/adapter.js.map +1 -1
  165. package/dist/esm5/inputs/common.js.map +1 -1
  166. package/dist/esm5/inputs/datasource.js.map +1 -1
  167. package/dist/esm5/inputs/index.js +1 -1
  168. package/dist/esm5/inputs/index.js.map +1 -1
  169. package/dist/esm5/inputs/settings.js +5 -0
  170. package/dist/esm5/inputs/settings.js.map +1 -1
  171. package/dist/esm5/inputs/validation.js +99 -93
  172. package/dist/esm5/inputs/validation.js.map +1 -1
  173. package/dist/esm5/inputs/workflow.js.map +1 -1
  174. package/dist/esm5/interfaces/adapter.js.map +1 -1
  175. package/dist/esm5/interfaces/datasource.js.map +1 -1
  176. package/dist/esm5/interfaces/index.js.map +1 -1
  177. package/dist/esm5/interfaces/item.js.map +1 -1
  178. package/dist/esm5/interfaces/process.js.map +1 -1
  179. package/dist/esm5/interfaces/routines.js.map +1 -1
  180. package/dist/esm5/interfaces/settings.js.map +1 -1
  181. package/dist/esm5/interfaces/state.js.map +1 -1
  182. package/dist/esm5/interfaces/validation.js.map +1 -1
  183. package/dist/esm5/interfaces/workflow.js.map +1 -1
  184. package/dist/esm5/processes/adapter/append.js +2 -1
  185. package/dist/esm5/processes/adapter/append.js.map +1 -1
  186. package/dist/esm5/processes/adapter/check.js +7 -6
  187. package/dist/esm5/processes/adapter/check.js.map +1 -1
  188. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  189. package/dist/esm5/processes/adapter/fix.js +4 -2
  190. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  191. package/dist/esm5/processes/adapter/insert.js +4 -3
  192. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  193. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  194. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  195. package/dist/esm5/processes/adapter/remove.js +11 -10
  196. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  197. package/dist/esm5/processes/adapter/replace.js +1 -1
  198. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  199. package/dist/esm5/processes/adapter/reset.js +5 -5
  200. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  201. package/dist/esm5/processes/adapter/update.js +20 -15
  202. package/dist/esm5/processes/adapter/update.js.map +1 -1
  203. package/dist/esm5/processes/adjust.js +16 -11
  204. package/dist/esm5/processes/adjust.js.map +1 -1
  205. package/dist/esm5/processes/clip.js +4 -4
  206. package/dist/esm5/processes/clip.js.map +1 -1
  207. package/dist/esm5/processes/end.js +2 -1
  208. package/dist/esm5/processes/end.js.map +1 -1
  209. package/dist/esm5/processes/fetch.js +5 -3
  210. package/dist/esm5/processes/fetch.js.map +1 -1
  211. package/dist/esm5/processes/index.js +1 -1
  212. package/dist/esm5/processes/index.js.map +1 -1
  213. package/dist/esm5/processes/init.js.map +1 -1
  214. package/dist/esm5/processes/misc/base.js +1 -2
  215. package/dist/esm5/processes/misc/base.js.map +1 -1
  216. package/dist/esm5/processes/misc/enums.js.map +1 -1
  217. package/dist/esm5/processes/misc/index.js.map +1 -1
  218. package/dist/esm5/processes/postFetch.js +14 -15
  219. package/dist/esm5/processes/postFetch.js.map +1 -1
  220. package/dist/esm5/processes/preClip.js +5 -4
  221. package/dist/esm5/processes/preClip.js.map +1 -1
  222. package/dist/esm5/processes/preFetch.js +26 -14
  223. package/dist/esm5/processes/preFetch.js.map +1 -1
  224. package/dist/esm5/processes/render.js +7 -7
  225. package/dist/esm5/processes/render.js.map +1 -1
  226. package/dist/esm5/processes/scroll.js +18 -12
  227. package/dist/esm5/processes/scroll.js.map +1 -1
  228. package/dist/esm5/processes/start.js.map +1 -1
  229. package/dist/esm5/scroller.js +11 -7
  230. package/dist/esm5/scroller.js.map +1 -1
  231. package/dist/esm5/version.js +1 -1
  232. package/dist/esm5/version.js.map +1 -1
  233. package/dist/esm5/workflow-transducer.js +3 -2
  234. package/dist/esm5/workflow-transducer.js.map +1 -1
  235. package/dist/esm5/workflow.js +31 -25
  236. package/dist/esm5/workflow.js.map +1 -1
  237. package/dist/typings/classes/buffer/cache.d.ts +0 -1
  238. package/dist/typings/classes/datasource.d.ts +1 -1
  239. package/dist/typings/classes/domRoutines.d.ts +1 -1
  240. package/dist/typings/classes/logger.d.ts +4 -0
  241. package/dist/typings/classes/settings.d.ts +7 -0
  242. package/dist/typings/index.d.ts +2 -2
  243. package/dist/typings/inputs/index.d.ts +1 -1
  244. package/dist/typings/inputs/settings.d.ts +1 -0
  245. package/dist/typings/interfaces/index.d.ts +1 -1
  246. package/dist/typings/interfaces/settings.d.ts +1 -0
  247. package/dist/typings/processes/index.d.ts +1 -1
  248. package/dist/typings/processes/scroll.d.ts +1 -1
  249. package/dist/typings/workflow.d.ts +1 -0
  250. package/package.json +72 -70
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * vscroll (https://github.com/dhilt/vscroll) FESM5
3
- * Version: 1.7.0 (2025-07-26T12:39:14.729Z)
3
+ * Version: 1.8.0 (2025-11-28T14:24:41.992Z)
4
4
  * Author: Denis Hilt
5
5
  * License: MIT
6
6
  */
@@ -154,7 +154,7 @@ var bufferInfoDefault = {
154
154
  maxIndex: NaN,
155
155
  absMinIndex: -Infinity,
156
156
  absMaxIndex: +Infinity,
157
- defaultSize: NaN,
157
+ defaultSize: NaN
158
158
  };
159
159
  var EMPTY_ITEM = {
160
160
  data: {},
@@ -377,7 +377,7 @@ var reactiveConfigStorage = new Map();
377
377
 
378
378
  var core = {
379
379
  name: 'vscroll',
380
- version: '1.7.0'
380
+ version: '1.8.0'
381
381
  };
382
382
 
383
383
  var getBox = function (id) {
@@ -448,13 +448,30 @@ var AdapterContext = /** @class */ (function () {
448
448
  return value;
449
449
  } }, conf));
450
450
  });
451
- if (reactive) { // save both configured and default reactive props in the store
451
+ if (reactive) {
452
+ // save both configured and default reactive props in the store
452
453
  reactiveConfigStorage.set(id, reactivePropsStore);
453
454
  }
454
455
  }
455
456
  return AdapterContext;
456
457
  }());
457
458
 
459
+ var getDefaultAdapterConfig = function () {
460
+ var reactive = getDefaultAdapterProps()
461
+ .filter(function (_a) {
462
+ var type = _a.type;
463
+ return type === AdapterPropType.Reactive;
464
+ })
465
+ .reduce(function (acc, _a) {
466
+ var name = _a.name, value = _a.value;
467
+ acc[name] = {
468
+ source: value,
469
+ emit: function (source, val) { return source.set(val); }
470
+ };
471
+ return acc;
472
+ }, {});
473
+ return { mock: false, reactive: reactive };
474
+ };
458
475
  var DatasourceGeneric = /** @class */ (function () {
459
476
  function DatasourceGeneric(datasource, config) {
460
477
  this.get = datasource.get;
@@ -463,17 +480,18 @@ var DatasourceGeneric = /** @class */ (function () {
463
480
  var adapterContext = new AdapterContext(config || { mock: false });
464
481
  this.adapter = adapterContext;
465
482
  }
483
+ // todo: should it be published?
466
484
  DatasourceGeneric.prototype.dispose = function () {
467
485
  reactiveConfigStorage.delete(this.adapter.id);
468
486
  wantedStorage.delete(this.adapter.id);
469
487
  };
470
488
  return DatasourceGeneric;
471
489
  }());
472
- var makeDatasource = function (getConfig) {
490
+ var makeDatasource = function (getAdapterConfig) {
473
491
  return /** @class */ (function (_super) {
474
492
  __extends(class_1, _super);
475
493
  function class_1(datasource) {
476
- var config = typeof getConfig === 'function' ? getConfig() : void 0;
494
+ var config = typeof getAdapterConfig === 'function' ? getAdapterConfig() : getDefaultAdapterConfig();
477
495
  return _super.call(this, datasource, config) || this;
478
496
  }
479
497
  return class_1;
@@ -516,9 +534,7 @@ var getError = function (msg, args) {
516
534
  return (args || ['']).reduce(function (acc, arg, index) { return acc.replace("{arg".concat(index + 1, "}"), arg); }, msg);
517
535
  };
518
536
  var getNumber = function (value) {
519
- return typeof value === 'number' || (typeof value === 'string' && value !== '')
520
- ? Number(value)
521
- : NaN;
537
+ return typeof value === 'number' || (typeof value === 'string' && value !== '') ? Number(value) : NaN;
522
538
  };
523
539
  var onNumber = function (value) {
524
540
  var parsedValue = getNumber(value);
@@ -552,23 +568,25 @@ var onIntegerUnlimited = function (value) {
552
568
  }
553
569
  return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
554
570
  };
555
- var onMoreOrEqual = function (limit, fallback) { return function (value) {
556
- var result = onNumber(value);
557
- if (!result.isValid) {
558
- return result;
559
- }
560
- var parsedValue = result.value;
561
- var errors = [];
562
- if (parsedValue < limit) {
563
- if (!fallback) {
564
- errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));
571
+ var onMoreOrEqual = function (limit, fallback) {
572
+ return function (value) {
573
+ var result = onNumber(value);
574
+ if (!result.isValid) {
575
+ return result;
565
576
  }
566
- else {
567
- parsedValue = limit;
577
+ var parsedValue = result.value;
578
+ var errors = [];
579
+ if (parsedValue < limit) {
580
+ if (!fallback) {
581
+ errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));
582
+ }
583
+ else {
584
+ parsedValue = limit;
585
+ }
568
586
  }
569
- }
570
- return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
571
- }; };
587
+ return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
588
+ };
589
+ };
572
590
  var onBoolean = function (value) {
573
591
  var errors = [];
574
592
  var parsedValue = value;
@@ -637,75 +655,87 @@ var onFunctionWithXArguments = function (argsCount) { return function (value) {
637
655
  }
638
656
  return { value: value, isSet: true, isValid: !errors.length, errors: errors };
639
657
  }; };
640
- var onFunctionWithXAndMoreArguments = function (argsCount) { return function (value) {
641
- var result = onFunction(value);
642
- if (!result.isValid) {
643
- return result;
644
- }
645
- value = result.value;
646
- var errors = [];
647
- if (value.length < argsCount) {
648
- errors.push(getError(ValidatorType.funcOfxArguments, [String(argsCount)]));
649
- }
650
- return { value: value, isSet: true, isValid: !errors.length, errors: errors };
651
- }; };
652
- var onFunctionWithXToYArguments = function (from, to) { return function (value) {
653
- var result = onFunction(value);
654
- if (!result.isValid) {
655
- return result;
656
- }
657
- value = result.value;
658
- var errors = [];
659
- if (value.length < from || value.length > to) {
660
- errors.push(getError(ValidatorType.funcOfXToYArguments, [String(from), String(to)]));
661
- }
662
- return { value: value, isSet: true, isValid: !errors.length, errors: errors };
663
- }; };
664
- var onOneOf = function (tokens, must) { return function (value, context) {
665
- var errors = [];
666
- var isSet = value !== void 0;
667
- var noOneIsPresent = !isSet;
668
- var err = must ? ValidatorType.oneOfMust : ValidatorType.oneOfCan;
669
- if (!Array.isArray(tokens) || !tokens.length) {
670
- errors.push(getError(err, ['undefined']));
671
- }
672
- else {
673
- for (var i = tokens.length - 1; i >= 0; i--) {
674
- var token = tokens[i];
675
- if (typeof token !== 'string') {
676
- errors.push(getError(err, [tokens.join('", "')]) + ' (non-string token)');
677
- break;
678
- }
679
- var isAnotherPresent = context && Object.prototype.hasOwnProperty.call(context, token);
680
- if (isSet && isAnotherPresent) {
681
- errors.push(getError(err, [tokens.join('", "')]) + " (".concat(token, " is present)"));
682
- break;
658
+ var onFunctionWithXAndMoreArguments = function (argsCount) {
659
+ return function (value) {
660
+ var result = onFunction(value);
661
+ if (!result.isValid) {
662
+ return result;
663
+ }
664
+ value = result.value;
665
+ var errors = [];
666
+ if (value.length < argsCount) {
667
+ errors.push(getError(ValidatorType.funcOfxArguments, [String(argsCount)]));
668
+ }
669
+ return { value: value, isSet: true, isValid: !errors.length, errors: errors };
670
+ };
671
+ };
672
+ var onFunctionWithXToYArguments = function (from, to) {
673
+ return function (value) {
674
+ var result = onFunction(value);
675
+ if (!result.isValid) {
676
+ return result;
677
+ }
678
+ value = result.value;
679
+ var errors = [];
680
+ if (value.length < from || value.length > to) {
681
+ errors.push(getError(ValidatorType.funcOfXToYArguments, [String(from), String(to)]));
682
+ }
683
+ return { value: value, isSet: true, isValid: !errors.length, errors: errors };
684
+ };
685
+ };
686
+ var onOneOf = function (tokens, must) {
687
+ return function (value, context) {
688
+ var errors = [];
689
+ var isSet = value !== void 0;
690
+ var noOneIsPresent = !isSet;
691
+ var err = must ? ValidatorType.oneOfMust : ValidatorType.oneOfCan;
692
+ if (!Array.isArray(tokens) || !tokens.length) {
693
+ errors.push(getError(err, ['undefined']));
694
+ }
695
+ else {
696
+ for (var i = tokens.length - 1; i >= 0; i--) {
697
+ var token = tokens[i];
698
+ if (typeof token !== 'string') {
699
+ errors.push(getError(err, [tokens.join('", "')]) + ' (non-string token)');
700
+ break;
701
+ }
702
+ var isAnotherPresent = context && Object.prototype.hasOwnProperty.call(context, token);
703
+ if (isSet && isAnotherPresent) {
704
+ errors.push(getError(err, [tokens.join('", "')]) + " (".concat(token, " is present)"));
705
+ break;
706
+ }
707
+ if (noOneIsPresent && isAnotherPresent) {
708
+ noOneIsPresent = false;
709
+ }
683
710
  }
684
- if (noOneIsPresent && isAnotherPresent) {
685
- noOneIsPresent = false;
711
+ if (must && noOneIsPresent) {
712
+ errors.push(getError(err, [tokens.join('", "')]));
686
713
  }
687
714
  }
688
- if (must && noOneIsPresent) {
689
- errors.push(getError(err, [tokens.join('", "')]));
715
+ return { value: value, isSet: isSet, isValid: !errors.length, errors: errors };
716
+ };
717
+ };
718
+ var onOr = function (validators) {
719
+ return function (value) {
720
+ var errors = [];
721
+ if (validators.every(function (validator) { return !validator.method(value).isValid; })) {
722
+ errors.push(validators.map(function (v) { return v.type; }).join(' OR '));
690
723
  }
691
- }
692
- return { value: value, isSet: isSet, isValid: !errors.length, errors: errors };
693
- }; };
694
- var onOr = function (validators) { return function (value) {
695
- var errors = [];
696
- if (validators.every(function (validator) { return !validator.method(value).isValid; })) {
697
- errors.push(validators.map(function (v) { return v.type; }).join(' OR '));
698
- }
699
- return { value: value, isSet: true, isValid: !errors.length, errors: errors };
700
- }; };
701
- var onEnum = function (list) { return function (value) {
702
- var errors = [];
703
- var values = Object.keys(list).filter(function (k) { return isNaN(Number(k)); }).map(function (k) { return list[k]; });
704
- if (!values.some(function (item) { return item === value; })) {
705
- errors.push(getError(ValidatorType.enum, ['[' + values.join(',') + ']']));
706
- }
707
- return { value: value, isSet: true, isValid: !errors.length, errors: errors };
708
- }; };
724
+ return { value: value, isSet: true, isValid: !errors.length, errors: errors };
725
+ };
726
+ };
727
+ var onEnum = function (list) {
728
+ return function (value) {
729
+ var errors = [];
730
+ var values = Object.keys(list)
731
+ .filter(function (k) { return isNaN(Number(k)); })
732
+ .map(function (k) { return list[k]; });
733
+ if (!values.some(function (item) { return item === value; })) {
734
+ errors.push(getError(ValidatorType.enum, ['[' + values.join(',') + ']']));
735
+ }
736
+ return { value: value, isSet: true, isValid: !errors.length, errors: errors };
737
+ };
738
+ };
709
739
  var VALIDATORS = {
710
740
  NUMBER: {
711
741
  type: ValidatorType.number,
@@ -804,17 +834,13 @@ var ValidatedData = /** @class */ (function () {
804
834
  if (!value.isValid) {
805
835
  value.errors = !value.isSet
806
836
  ? ["\"".concat(token, "\" must be set")]
807
- : value.errors.map(function (err) {
808
- return "\"".concat(token, "\" ").concat(err);
809
- });
837
+ : value.errors.map(function (err) { return "\"".concat(token, "\" ").concat(err); });
810
838
  }
811
839
  this.params[token] = value;
812
840
  this.setValidity();
813
841
  };
814
842
  ValidatedData.prototype.showErrors = function () {
815
- return this.errors.length
816
- ? 'validation failed: ' + this.errors.join(', ')
817
- : '';
843
+ return this.errors.length ? 'validation failed: ' + this.errors.join(', ') : '';
818
844
  };
819
845
  return ValidatedData;
820
846
  }());
@@ -833,7 +859,7 @@ var getDefault = function (value, prop) {
833
859
  var empty = value === void 0;
834
860
  var auto = !prop.mandatory && prop.defaultValue !== void 0;
835
861
  return {
836
- value: !empty ? value : (auto ? prop.defaultValue : void 0),
862
+ value: !empty ? value : auto ? prop.defaultValue : void 0,
837
863
  isSet: !empty || auto,
838
864
  isValid: !empty || !prop.mandatory,
839
865
  errors: []
@@ -878,9 +904,7 @@ var validate = function (context, params) {
878
904
  var data = new ValidatedData(context);
879
905
  Object.entries(params).forEach(function (_a) {
880
906
  var _b = __read(_a, 2), key = _b[0], prop = _b[1];
881
- return data.setParam(key, data.isValidContext
882
- ? validateOne(data.context, key, prop)
883
- : getDefault(void 0, prop));
907
+ return data.setParam(key, data.isValidContext ? validateOne(data.context, key, prop) : getDefault(void 0, prop));
884
908
  });
885
909
  return data;
886
910
  };
@@ -931,6 +955,7 @@ var DevSettings;
931
955
  DevSettings["immediateLog"] = "immediateLog";
932
956
  DevSettings["logProcessRun"] = "logProcessRun";
933
957
  DevSettings["logTime"] = "logTime";
958
+ DevSettings["logColor"] = "logColor";
934
959
  DevSettings["throttle"] = "throttle";
935
960
  DevSettings["initDelay"] = "initDelay";
936
961
  DevSettings["initWindowDelay"] = "initWindowDelay";
@@ -1022,6 +1047,10 @@ var DEV_SETTINGS = (_c$1 = {},
1022
1047
  validators: [BOOLEAN$1],
1023
1048
  defaultValue: false
1024
1049
  },
1050
+ _c$1[DevSettings.logColor] = {
1051
+ validators: [BOOLEAN$1],
1052
+ defaultValue: true
1053
+ },
1025
1054
  _c$1[DevSettings.throttle] = {
1026
1055
  validators: [INTEGER$1, MORE_OR_EQUAL(MIN[DevSettings.throttle], true)],
1027
1056
  defaultValue: 40
@@ -1213,24 +1242,44 @@ var INSERT_METHOD_PARAMS = (_g = {},
1213
1242
  mandatory: true
1214
1243
  },
1215
1244
  _g[AdapterInsertParams.before] = {
1216
- validators: [FUNC_WITH_X_ARGUMENTS$1(1), ONE_OF_MUST([
1217
- AdapterInsertParams.after, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex
1218
- ])]
1245
+ validators: [
1246
+ FUNC_WITH_X_ARGUMENTS$1(1),
1247
+ ONE_OF_MUST([
1248
+ AdapterInsertParams.after,
1249
+ AdapterInsertParams.beforeIndex,
1250
+ AdapterInsertParams.afterIndex
1251
+ ])
1252
+ ]
1219
1253
  },
1220
1254
  _g[AdapterInsertParams.after] = {
1221
- validators: [FUNC_WITH_X_ARGUMENTS$1(1), ONE_OF_MUST([
1222
- AdapterInsertParams.before, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex
1223
- ])]
1255
+ validators: [
1256
+ FUNC_WITH_X_ARGUMENTS$1(1),
1257
+ ONE_OF_MUST([
1258
+ AdapterInsertParams.before,
1259
+ AdapterInsertParams.beforeIndex,
1260
+ AdapterInsertParams.afterIndex
1261
+ ])
1262
+ ]
1224
1263
  },
1225
1264
  _g[AdapterInsertParams.beforeIndex] = {
1226
- validators: [INTEGER, ONE_OF_MUST([
1227
- AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.afterIndex
1228
- ])]
1265
+ validators: [
1266
+ INTEGER,
1267
+ ONE_OF_MUST([
1268
+ AdapterInsertParams.before,
1269
+ AdapterInsertParams.after,
1270
+ AdapterInsertParams.afterIndex
1271
+ ])
1272
+ ]
1229
1273
  },
1230
1274
  _g[AdapterInsertParams.afterIndex] = {
1231
- validators: [INTEGER, ONE_OF_MUST([
1232
- AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.beforeIndex
1233
- ])]
1275
+ validators: [
1276
+ INTEGER,
1277
+ ONE_OF_MUST([
1278
+ AdapterInsertParams.before,
1279
+ AdapterInsertParams.after,
1280
+ AdapterInsertParams.beforeIndex
1281
+ ])
1282
+ ]
1234
1283
  },
1235
1284
  _g[AdapterInsertParams.decrease] = {
1236
1285
  validators: [BOOLEAN],
@@ -1424,8 +1473,7 @@ var BaseAdapterProcessFactory = function (process) { var _a; return _a = /** @cl
1424
1473
  data: validate(options, ADAPTER_METHODS[_process || process])
1425
1474
  };
1426
1475
  if (result.data.isValid) {
1427
- result.params = Object.entries(result.data.params)
1428
- .reduce(function (acc, _b) {
1476
+ result.params = Object.entries(result.data.params).reduce(function (acc, _b) {
1429
1477
  var _c;
1430
1478
  var _d = __read(_b, 2), key = _d[0], value = _d[1].value;
1431
1479
  return (__assign(__assign({}, acc), (_c = {}, _c[key] = value, _c)));
@@ -1472,16 +1520,13 @@ var Scroll = /** @class */ (function (_super) {
1472
1520
  function Scroll() {
1473
1521
  return _super !== null && _super.apply(this, arguments) || this;
1474
1522
  }
1475
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1476
- Scroll.run = function (scroller, payload) {
1523
+ Scroll.run = function (scroller, _payload) {
1477
1524
  var workflow = scroller.workflow, viewport = scroller.viewport;
1478
1525
  var position = viewport.scrollPosition;
1479
1526
  if (Scroll.onSynthetic(scroller, position)) {
1480
1527
  return;
1481
1528
  }
1482
- Scroll.onThrottle(scroller, position, function () {
1483
- return Scroll.onScroll(scroller, workflow);
1484
- });
1529
+ Scroll.onThrottle(scroller, position, function () { return Scroll.onScroll(scroller, workflow); });
1485
1530
  };
1486
1531
  Scroll.onSynthetic = function (scroller, position) {
1487
1532
  var scroll = scroller.state.scroll;
@@ -1492,29 +1537,34 @@ var Scroll = /** @class */ (function (_super) {
1492
1537
  }
1493
1538
  if (!scroll.syntheticFulfill || synthPos === position) {
1494
1539
  scroller.logger.log(function () { return [
1495
- 'skipping scroll', position,
1540
+ 'skipping scroll',
1541
+ position,
1496
1542
  "[".concat(scroll.syntheticFulfill ? '' : 'pre-', "synthetic]")
1497
1543
  ]; });
1498
1544
  return true;
1499
1545
  }
1500
1546
  scroller.logger.log(function () { return [
1501
- 'synthetic scroll has been fulfilled:', position, position < synthPos ? '<' : '>', synthPos
1547
+ 'synthetic scroll has been fulfilled:',
1548
+ position,
1549
+ position < synthPos ? '<' : '>',
1550
+ synthPos
1502
1551
  ]; });
1503
1552
  }
1504
1553
  return false;
1505
1554
  };
1506
1555
  Scroll.onThrottle = function (scroller, position, done) {
1507
- var scroll = scroller.state.scroll, throttle = scroller.settings.throttle, logger = scroller.logger;
1556
+ var state = scroller.state, settings = scroller.settings, logger = scroller.logger;
1557
+ var scroll = state.scroll;
1508
1558
  scroll.current = Scroll.getScrollEvent(position, scroll.previous);
1509
1559
  var _a = scroll.current, direction = _a.direction, time = _a.time;
1510
1560
  var timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;
1511
- var delta = throttle - timeDiff;
1561
+ var delta = settings.throttle - timeDiff;
1512
1562
  var shouldDelay = isFinite(delta) && delta > 0;
1513
1563
  var alreadyDelayed = !!scroll.scrollTimer;
1514
1564
  logger.log(function () { return [
1515
1565
  direction === Direction.backward ? '\u2934' : '\u2935',
1516
1566
  position,
1517
- shouldDelay ? (timeDiff + 'ms') : '0ms',
1567
+ shouldDelay ? timeDiff + 'ms' : '0ms',
1518
1568
  shouldDelay ? (alreadyDelayed ? 'delayed' : "/ ".concat(delta, "ms delay")) : ''
1519
1569
  ]; });
1520
1570
  if (!shouldDelay) {
@@ -1532,7 +1582,7 @@ var Scroll = /** @class */ (function (_super) {
1532
1582
  return [
1533
1583
  curr.direction === Direction.backward ? '\u2934' : '\u2935',
1534
1584
  curr.position,
1535
- (curr.time - time) + 'ms',
1585
+ curr.time - time + 'ms',
1536
1586
  'triggered by timer set on',
1537
1587
  position
1538
1588
  ];
@@ -1560,7 +1610,11 @@ var Scroll = /** @class */ (function (_super) {
1560
1610
  scroll.previous = __assign({}, scroll.current);
1561
1611
  scroll.current = null;
1562
1612
  if (cycle.busy.get()) {
1563
- scroller.logger.log(function () { return ['skipping scroll', scroll.previous.position, '[pending]']; });
1613
+ scroller.logger.log(function () { return [
1614
+ 'skipping scroll',
1615
+ scroll.previous.position,
1616
+ '[pending]'
1617
+ ]; });
1564
1618
  return;
1565
1619
  }
1566
1620
  workflow.call({
@@ -1577,7 +1631,7 @@ var Reset = /** @class */ (function (_super) {
1577
1631
  return _super !== null && _super.apply(this, arguments) || this;
1578
1632
  }
1579
1633
  Reset.run = function (scroller, options) {
1580
- var datasource = scroller.datasource, buffer = scroller.buffer, paddings = scroller.viewport.paddings, cycle = scroller.state.cycle;
1634
+ var datasource = scroller.datasource, buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
1581
1635
  if (options) {
1582
1636
  var data_1 = Reset.parseInput(scroller, options).data;
1583
1637
  if (!data_1.isValid) {
@@ -1593,12 +1647,12 @@ var Reset = /** @class */ (function (_super) {
1593
1647
  });
1594
1648
  }
1595
1649
  buffer.reset(true);
1596
- paddings.backward.reset();
1597
- paddings.forward.reset();
1650
+ viewport.paddings.backward.reset();
1651
+ viewport.paddings.forward.reset();
1598
1652
  var payload = { datasource: datasource };
1599
- if (cycle.busy.get()) {
1653
+ if (state.cycle.busy.get()) {
1600
1654
  payload.finalize = true;
1601
- cycle.interrupter = Reset.process;
1655
+ state.cycle.interrupter = Reset.process;
1602
1656
  }
1603
1657
  scroller.workflow.call({
1604
1658
  process: Reset.process,
@@ -1726,7 +1780,7 @@ var Update = /** @class */ (function (_super) {
1726
1780
  });
1727
1781
  };
1728
1782
  Update.doUpdate = function (scroller, params) {
1729
- var buffer = scroller.buffer, viewport = scroller.viewport, fetch = scroller.state.fetch, routines = scroller.routines, logger = scroller.logger;
1783
+ var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, routines = scroller.routines, logger = scroller.logger;
1730
1784
  if (!buffer.items) {
1731
1785
  logger.log(function () { return 'no items in Buffer'; });
1732
1786
  return false;
@@ -1739,26 +1793,31 @@ var Update = /** @class */ (function (_super) {
1739
1793
  delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;
1740
1794
  }
1741
1795
  toRemove.forEach(function (item) { return item.hide(); });
1742
- logger.log(function () { return toRemove.length
1743
- ? 'items to remove: [' + toRemove.map(function (_a) {
1744
- var $index = _a.$index;
1745
- return $index;
1746
- }).join(',') + ']'
1747
- : 'no items to remove'; });
1748
- if (toRemove.length) { // insertions will be processed on render
1796
+ logger.log(function () {
1797
+ return toRemove.length
1798
+ ? 'items to remove: [' + toRemove.map(function (_a) {
1799
+ var $index = _a.$index;
1800
+ return $index;
1801
+ }).join(',') + ']'
1802
+ : 'no items to remove';
1803
+ });
1804
+ if (toRemove.length) {
1805
+ // insertions will be processed on render
1749
1806
  buffer.checkDefaultSize();
1750
1807
  }
1751
1808
  var toRender = buffer.items.filter(function (_a) {
1752
1809
  var toInsert = _a.toInsert;
1753
1810
  return toInsert;
1754
1811
  });
1755
- logger.log(function () { return toRender.length
1756
- ? 'items to render: [' + toRender.map(function (_a) {
1757
- var $index = _a.$index;
1758
- return $index;
1759
- }).join(',') + ']'
1760
- : 'no items to render'; });
1761
- fetch.update(trackedIndex, delta, toRender, toRemove);
1812
+ logger.log(function () {
1813
+ return toRender.length
1814
+ ? 'items to render: [' + toRender.map(function (_a) {
1815
+ var $index = _a.$index;
1816
+ return $index;
1817
+ }).join(',') + ']'
1818
+ : 'no items to render';
1819
+ });
1820
+ state.fetch.update(trackedIndex, delta, toRender, toRemove);
1762
1821
  return !!toRemove.length || !!toRender.length;
1763
1822
  };
1764
1823
  return Update;
@@ -1791,7 +1850,7 @@ var Insert = /** @class */ (function (_super) {
1791
1850
  return true;
1792
1851
  };
1793
1852
  Insert.insertEmpty = function (scroller, params) {
1794
- var buffer = scroller.buffer, routines = scroller.routines, fetch = scroller.state.fetch;
1853
+ var buffer = scroller.buffer, routines = scroller.routines, state = scroller.state;
1795
1854
  if (buffer.size) {
1796
1855
  return false;
1797
1856
  }
@@ -1799,7 +1858,7 @@ var Insert = /** @class */ (function (_super) {
1799
1858
  if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
1800
1859
  return false;
1801
1860
  }
1802
- fetch.fill(buffer.items, buffer.startIndex);
1861
+ state.fetch.fill(buffer.items, buffer.startIndex);
1803
1862
  return true;
1804
1863
  };
1805
1864
  Insert.insertInBuffer = function (scroller, params) {
@@ -1823,12 +1882,13 @@ var Insert = /** @class */ (function (_super) {
1823
1882
  };
1824
1883
  Insert.insertVirtually = function (scroller, params) {
1825
1884
  var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
1826
- var buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;
1885
+ var buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
1827
1886
  var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
1828
1887
  var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);
1829
1888
  if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
1830
1889
  return false;
1831
1890
  }
1891
+ var fetch = state.fetch;
1832
1892
  var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
1833
1893
  fetch.firstVisible.index = index;
1834
1894
  if (!isNaN(index)) {
@@ -1868,7 +1928,8 @@ var Append = /** @class */ (function (_super) {
1868
1928
  items = __spreadArray([], __read(items), false).reverse();
1869
1929
  }
1870
1930
  else {
1871
- afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
1931
+ afterIndex =
1932
+ (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
1872
1933
  }
1873
1934
  return Insert.doInsert(scroller, {
1874
1935
  items: items,
@@ -1887,7 +1948,7 @@ var Check = /** @class */ (function (_super) {
1887
1948
  return _super !== null && _super.apply(this, arguments) || this;
1888
1949
  }
1889
1950
  Check.run = function (scroller) {
1890
- var workflow = scroller.workflow, buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;
1951
+ var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
1891
1952
  var min = Infinity, max = -Infinity;
1892
1953
  buffer.items.forEach(function (item) {
1893
1954
  var size = item.size;
@@ -1899,14 +1960,15 @@ var Check = /** @class */ (function (_super) {
1899
1960
  }
1900
1961
  });
1901
1962
  if (Number.isFinite(min)) {
1902
- fetch.first.indexBuffer = buffer.firstIndex;
1903
- fetch.last.indexBuffer = buffer.lastIndex;
1963
+ var fetch_1 = state.fetch;
1964
+ fetch_1.first.indexBuffer = buffer.firstIndex;
1965
+ fetch_1.last.indexBuffer = buffer.lastIndex;
1904
1966
  var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), firstIndex = _a.index, diff = _a.diff;
1905
- fetch.firstVisible.index = firstIndex;
1967
+ fetch_1.firstVisible.index = firstIndex;
1906
1968
  if (!isNaN(firstIndex)) {
1907
- fetch.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;
1969
+ fetch_1.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;
1908
1970
  }
1909
- fetch.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));
1971
+ fetch_1.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));
1910
1972
  }
1911
1973
  scroller.logger.stat('check');
1912
1974
  workflow.call({
@@ -1947,9 +2009,7 @@ var Remove = /** @class */ (function (_super) {
1947
2009
  if (params.indexes && params.indexes.length) {
1948
2010
  var diffLeft_1 = (params.increase ? 1 : 0) * removed.length;
1949
2011
  var diffRight_1 = (params.increase ? 0 : -1) * removed.length;
1950
- params.indexes = params.indexes.map(function (index) {
1951
- return index + (index < removed[0] ? diffLeft_1 : diffRight_1);
1952
- });
2012
+ params.indexes = params.indexes.map(function (index) { return index + (index < removed[0] ? diffLeft_1 : diffRight_1); });
1953
2013
  }
1954
2014
  }
1955
2015
  var shouldVirtual = Remove.removeVirtualItems(scroller, params);
@@ -1965,12 +2025,9 @@ var Remove = /** @class */ (function (_super) {
1965
2025
  return [];
1966
2026
  }
1967
2027
  var newPredicate = function (item) {
1968
- return (predicate && predicate(item)) ||
1969
- (!!indexes && indexes.includes(item.$index));
2028
+ return (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));
1970
2029
  };
1971
- var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) {
1972
- return newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc;
1973
- }, []);
2030
+ var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) { return (newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc); }, []);
1974
2031
  var updateOptions = {
1975
2032
  predicate: function (item) { return !newPredicate(item); },
1976
2033
  fixRight: increase
@@ -1983,7 +2040,7 @@ var Remove = /** @class */ (function (_super) {
1983
2040
  if (!indexes || !indexes.length) {
1984
2041
  return false;
1985
2042
  }
1986
- var buffer = scroller.buffer, viewport = scroller.viewport, fetch = scroller.state.fetch;
2043
+ var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
1987
2044
  // get items to remove
1988
2045
  var finiteAbsMinIndex = buffer.finiteAbsMinIndex, firstIndex = buffer.firstIndex, finiteAbsMaxIndex = buffer.finiteAbsMaxIndex, lastIndex = buffer.lastIndex;
1989
2046
  var toRemove = [];
@@ -2003,6 +2060,7 @@ var Remove = /** @class */ (function (_super) {
2003
2060
  return false;
2004
2061
  }
2005
2062
  // what should be shown after remove; Buffer removal has priority
2063
+ var fetch = state.fetch;
2006
2064
  if (isNaN(fetch.firstVisible.index)) {
2007
2065
  var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
2008
2066
  fetch.firstVisible.index = index;
@@ -2022,7 +2080,12 @@ var Remove = /** @class */ (function (_super) {
2022
2080
  if (isNaN(firstVisible.index)) {
2023
2081
  return;
2024
2082
  }
2025
- var shift = listToRemove.reduce(function (acc, index) { return acc + (((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)) ? 1 : 0); }, 0);
2083
+ var shift = listToRemove.reduce(function (acc, index) {
2084
+ return acc +
2085
+ ((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)
2086
+ ? 1
2087
+ : 0);
2088
+ }, 0);
2026
2089
  firstVisible.index = firstVisible.index + (increase ? shift : -shift);
2027
2090
  };
2028
2091
  return Remove;
@@ -2058,7 +2121,7 @@ var Replace = /** @class */ (function (_super) {
2058
2121
  var shouldReplace = Replace.doReplace(scroller, params);
2059
2122
  scroller.workflow.call({
2060
2123
  process: Replace.process,
2061
- status: shouldReplace ? ProcessStatus.next : ProcessStatus.done,
2124
+ status: shouldReplace ? ProcessStatus.next : ProcessStatus.done
2062
2125
  });
2063
2126
  };
2064
2127
  Replace.doReplace = function (scroller, params) {
@@ -2152,7 +2215,9 @@ var Fix = /** @class */ (function (_super) {
2152
2215
  case FixParams.scrollToItem:
2153
2216
  if (methodData.params) {
2154
2217
  var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];
2155
- var options = scrollToItemOpt ? scrollToItemOpt.value : void 0;
2218
+ var options = scrollToItemOpt
2219
+ ? scrollToItemOpt.value
2220
+ : void 0;
2156
2221
  return Fix.scrollToItem(scroller, value, options);
2157
2222
  }
2158
2223
  return;
@@ -2184,7 +2249,7 @@ var Fix = /** @class */ (function (_super) {
2184
2249
  Fix.updateItems = function (_a, value) {
2185
2250
  var buffer = _a.buffer, logger = _a.logger;
2186
2251
  var updateReference = false;
2187
- var updater = function () { return updateReference = true; };
2252
+ var updater = function () { return (updateReference = true); };
2188
2253
  buffer.items.forEach(function (item) { return value(item.get(), updater); });
2189
2254
  if (updateReference) {
2190
2255
  logger.log(function () { return 'update Buffer.items reference'; });
@@ -2224,7 +2289,8 @@ var PreFetch = /** @class */ (function (_super) {
2224
2289
  return _super !== null && _super.apply(this, arguments) || this;
2225
2290
  }
2226
2291
  PreFetch.run = function (scroller) {
2227
- var workflow = scroller.workflow, buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle;
2292
+ var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state;
2293
+ var fetch = state.fetch, cycle = state.cycle;
2228
2294
  fetch.minIndex = buffer.minIndex;
2229
2295
  // set first and last indexes of items to fetch
2230
2296
  PreFetch.setPositionsAndIndexes(scroller);
@@ -2251,7 +2317,8 @@ var PreFetch = /** @class */ (function (_super) {
2251
2317
  scroller.logger.fetch();
2252
2318
  };
2253
2319
  PreFetch.setPositions = function (scroller) {
2254
- var positions = scroller.state.fetch.positions, viewport = scroller.viewport;
2320
+ var state = scroller.state, viewport = scroller.viewport;
2321
+ var positions = state.fetch.positions;
2255
2322
  var paddingDelta = viewport.getBufferPadding();
2256
2323
  positions.before = viewport.scrollPosition;
2257
2324
  positions.startDelta = PreFetch.getStartDelta(scroller);
@@ -2260,7 +2327,9 @@ var PreFetch = /** @class */ (function (_super) {
2260
2327
  positions.end = positions.relative + viewport.getSize() + paddingDelta;
2261
2328
  };
2262
2329
  PreFetch.getStartDelta = function (scroller) {
2263
- var buffer = scroller.buffer, offset = scroller.viewport.offset;
2330
+ // calculate size before start index
2331
+ var buffer = scroller.buffer, viewport = scroller.viewport;
2332
+ var offset = viewport.offset;
2264
2333
  var startDelta = 0;
2265
2334
  if (offset) {
2266
2335
  startDelta += offset;
@@ -2278,7 +2347,8 @@ var PreFetch = /** @class */ (function (_super) {
2278
2347
  };
2279
2348
  PreFetch.setFirstIndex = function (scroller) {
2280
2349
  var state = scroller.state, buffer = scroller.buffer;
2281
- var _a = state.fetch, start = _a.positions.start, first = _a.first;
2350
+ var _a = state.fetch, positions = _a.positions, first = _a.first;
2351
+ var start = positions.start;
2282
2352
  var firstIndex = buffer.startIndex;
2283
2353
  var firstIndexPosition = 0;
2284
2354
  if (state.cycle.innerLoop.isInitial) {
@@ -2290,10 +2360,10 @@ var PreFetch = /** @class */ (function (_super) {
2290
2360
  else {
2291
2361
  var position = firstIndexPosition;
2292
2362
  var index = firstIndex;
2293
- while (1) { // eslint-disable-line no-constant-condition
2363
+ while (true) {
2294
2364
  if (start >= 0) {
2295
2365
  var size = buffer.getSizeByIndex(index);
2296
- var diff = (position + size) - start;
2366
+ var diff = position + size - start;
2297
2367
  if (diff > 0) {
2298
2368
  firstIndex = index;
2299
2369
  firstIndexPosition = position;
@@ -2324,8 +2394,10 @@ var PreFetch = /** @class */ (function (_super) {
2324
2394
  first.position = firstIndexPosition;
2325
2395
  };
2326
2396
  PreFetch.setLastIndex = function (scroller) {
2327
- var _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle, buffer = scroller.buffer, settings = scroller.settings;
2328
- var firstVisible = fetch.firstVisible, _b = fetch.positions, relative = _b.relative, end = _b.end, first = fetch.first, last = fetch.last;
2397
+ var state = scroller.state, buffer = scroller.buffer, settings = scroller.settings;
2398
+ var fetch = state.fetch, cycle = state.cycle;
2399
+ var firstVisible = fetch.firstVisible, positions = fetch.positions, first = fetch.first, last = fetch.last;
2400
+ var relative = positions.relative, end = positions.end;
2329
2401
  var lastIndex;
2330
2402
  if (!buffer.defaultSize) {
2331
2403
  // just to fetch forward bufferSize items if neither averageItemSize nor itemSize are present
@@ -2336,7 +2408,7 @@ var PreFetch = /** @class */ (function (_super) {
2336
2408
  var index = first.indexBuffer;
2337
2409
  var position = first.position;
2338
2410
  lastIndex = index;
2339
- while (1) { // eslint-disable-line no-constant-condition
2411
+ while (true) {
2340
2412
  lastIndex = index;
2341
2413
  var size = buffer.getSizeByIndex(index);
2342
2414
  position += size;
@@ -2390,7 +2462,8 @@ var PreFetch = /** @class */ (function (_super) {
2390
2462
  }
2391
2463
  };
2392
2464
  PreFetch.checkBufferGaps = function (scroller) {
2393
- var buffer = scroller.buffer, fetch = scroller.state.fetch;
2465
+ var buffer = scroller.buffer, state = scroller.state;
2466
+ var fetch = state.fetch;
2394
2467
  if (!buffer.size) {
2395
2468
  return;
2396
2469
  }
@@ -2409,7 +2482,8 @@ var PreFetch = /** @class */ (function (_super) {
2409
2482
  }
2410
2483
  };
2411
2484
  PreFetch.checkFetchPackSize = function (scroller) {
2412
- var buffer = scroller.buffer, fetch = scroller.state.fetch;
2485
+ var buffer = scroller.buffer, state = scroller.state;
2486
+ var fetch = state.fetch;
2413
2487
  if (!fetch.shouldFetch) {
2414
2488
  return;
2415
2489
  }
@@ -2419,7 +2493,8 @@ var PreFetch = /** @class */ (function (_super) {
2419
2493
  if (diff <= 0) {
2420
2494
  return;
2421
2495
  }
2422
- if (!buffer.size || lastIndex > buffer.items[0].$index) { // forward
2496
+ if (!buffer.size || lastIndex > buffer.items[0].$index) {
2497
+ // forward
2423
2498
  var newLastIndex = Math.min(lastIndex + diff, buffer.absMaxIndex);
2424
2499
  if (newLastIndex > lastIndex) {
2425
2500
  fetch.last.index = fetch.last.indexBuffer = newLastIndex;
@@ -2437,11 +2512,13 @@ var PreFetch = /** @class */ (function (_super) {
2437
2512
  }
2438
2513
  };
2439
2514
  PreFetch.setFetchDirection = function (scroller) {
2440
- var buffer = scroller.buffer, fetch = scroller.state.fetch;
2515
+ var buffer = scroller.buffer, state = scroller.state;
2516
+ var fetch = state.fetch;
2441
2517
  if (fetch.last.index) {
2442
2518
  var direction_1 = Direction.forward;
2443
2519
  if (buffer.size) {
2444
- direction_1 = fetch.last.index < buffer.items[0].$index ? Direction.backward : Direction.forward;
2520
+ direction_1 =
2521
+ fetch.last.index < buffer.items[0].$index ? Direction.backward : Direction.forward;
2445
2522
  }
2446
2523
  fetch.direction = direction_1;
2447
2524
  scroller.logger.log(function () { return "fetch direction is \"".concat(direction_1, "\""); });
@@ -2503,7 +2580,8 @@ var Fetch = /** @class */ (function (_super) {
2503
2580
  }
2504
2581
  }
2505
2582
  else {
2506
- var _b = scroller.state, scroll_1 = _b.scroll, fetch_1 = _b.fetch, viewport = scroller.viewport;
2583
+ var state = scroller.state, viewport = scroller.viewport;
2584
+ var scroll_1 = state.scroll, fetch_1 = state.fetch;
2507
2585
  if (scroll_1.positionBeforeAsync === null) {
2508
2586
  scroll_1.positionBeforeAsync = viewport.scrollPosition;
2509
2587
  }
@@ -2547,9 +2625,10 @@ var Fetch = /** @class */ (function (_super) {
2547
2625
  });
2548
2626
  }
2549
2627
  }
2550
- if (immediateData || immediateError) { // callback case or immediate observable
2628
+ if (immediateData || immediateError) {
2629
+ // callback case or immediate observable
2551
2630
  return {
2552
- data: immediateError ? null : (immediateData || []),
2631
+ data: immediateError ? null : immediateData || [],
2553
2632
  error: immediateError,
2554
2633
  isError: !!immediateError
2555
2634
  };
@@ -2573,44 +2652,45 @@ var PostFetch = /** @class */ (function (_super) {
2573
2652
  PostFetch.setBufferLimits(scroller);
2574
2653
  workflow.call({
2575
2654
  process: PostFetch.process,
2576
- status: scroller.state.fetch.hasNewItems
2577
- ? ProcessStatus.next
2578
- : ProcessStatus.done
2655
+ status: scroller.state.fetch.hasNewItems ? ProcessStatus.next : ProcessStatus.done
2579
2656
  });
2580
2657
  }
2581
2658
  else {
2582
2659
  workflow.call({
2583
2660
  process: PostFetch.process,
2584
2661
  status: ProcessStatus.error,
2585
- payload: { error: 'Can\'t set buffer items' }
2662
+ payload: { error: 'Can not set buffer items' }
2586
2663
  });
2587
2664
  }
2588
2665
  };
2589
2666
  PostFetch.setBufferLimits = function (scroller) {
2590
- var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, innerLoop = _a.cycle.innerLoop;
2591
- var items = fetch.items, first = fetch.first.index, last = fetch.last.index;
2667
+ var buffer = scroller.buffer, state = scroller.state;
2668
+ var fetch = state.fetch, cycle = state.cycle;
2669
+ var items = fetch.items, first = fetch.first, last = fetch.last;
2592
2670
  if (!items.length) {
2593
- if (last < buffer.minIndex || innerLoop.isInitial) {
2671
+ if (last.index < buffer.minIndex || cycle.innerLoop.isInitial) {
2594
2672
  buffer.absMinIndex = buffer.minIndex;
2595
2673
  }
2596
- if (first > buffer.maxIndex || innerLoop.isInitial) {
2674
+ if (first.index > buffer.maxIndex || cycle.innerLoop.isInitial) {
2597
2675
  buffer.absMaxIndex = buffer.maxIndex;
2598
2676
  }
2599
2677
  }
2600
2678
  else {
2601
2679
  var lastIndex = items.length - 1;
2602
- if (first < items[0].$index) {
2680
+ if (first.index < items[0].$index) {
2603
2681
  buffer.absMinIndex = items[0].$index;
2604
2682
  }
2605
- if (last > items[lastIndex].$index) {
2683
+ if (last.index > items[lastIndex].$index) {
2606
2684
  buffer.absMaxIndex = items[lastIndex].$index;
2607
2685
  }
2608
2686
  }
2609
2687
  };
2610
2688
  PostFetch.setItems = function (scroller) {
2611
- var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle;
2689
+ var buffer = scroller.buffer, state = scroller.state;
2690
+ var fetch = state.fetch, cycle = state.cycle;
2612
2691
  var items = fetch.newItemsData;
2613
- if (!items || !items.length) { // empty result
2692
+ if (!items || !items.length) {
2693
+ // empty result
2614
2694
  return true;
2615
2695
  }
2616
2696
  // eof/bof case, need to shift fetch index if bof
@@ -2625,9 +2705,7 @@ var PostFetch = /** @class */ (function (_super) {
2625
2705
  fetchIndex = buffer.firstIndex - items.length;
2626
2706
  }
2627
2707
  }
2628
- fetch.items = items.map(function (item, index) {
2629
- return new Item(fetchIndex + index, item, scroller.routines);
2630
- });
2708
+ fetch.items = items.map(function (item, index) { return new Item(fetchIndex + index, item, scroller.routines); });
2631
2709
  return buffer.setItems(fetch.items);
2632
2710
  };
2633
2711
  return PostFetch;
@@ -2639,7 +2717,8 @@ var Render = /** @class */ (function (_super) {
2639
2717
  return _super !== null && _super.apply(this, arguments) || this;
2640
2718
  }
2641
2719
  Render.run = function (scroller) {
2642
- var workflow = scroller.workflow, _a = scroller.state, cycle = _a.cycle, render = _a.render, scroll = _a.scroll, fetch = _a.fetch, viewport = scroller.viewport, routines = scroller.routines;
2720
+ var workflow = scroller.workflow, state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
2721
+ var cycle = state.cycle, render = state.render, scroll = state.scroll, fetch = state.fetch;
2643
2722
  scroller.logger.stat('before new items render');
2644
2723
  if (scroll.positionBeforeAsync === null) {
2645
2724
  scroll.positionBeforeAsync = viewport.scrollPosition;
@@ -2657,26 +2736,25 @@ var Render = /** @class */ (function (_super) {
2657
2736
  workflow.call({
2658
2737
  process: Render.process,
2659
2738
  status: ProcessStatus.error,
2660
- payload: { error: 'Can\'t associate item with element' }
2739
+ payload: { error: 'Can not associate item with element' }
2661
2740
  });
2662
2741
  }
2663
2742
  }, { items: fetch.items.map(function (i) { return i.get(); }) });
2664
2743
  };
2665
2744
  Render.doRender = function (scroller) {
2666
- var _a = scroller.state, fetch = _a.fetch, render = _a.render, viewport = scroller.viewport, buffer = scroller.buffer, logger = scroller.logger;
2745
+ var state = scroller.state, viewport = scroller.viewport, buffer = scroller.buffer, logger = scroller.logger;
2746
+ var fetch = state.fetch, render = state.render;
2667
2747
  render.positionBefore = viewport.scrollPosition;
2668
2748
  if (!fetch.isCheck) {
2669
2749
  render.sizeBefore = viewport.getScrollableSize();
2670
- if (!fetch.items.every(function (item) {
2671
- return Render.processElement(scroller, item);
2672
- })) {
2750
+ if (!fetch.items.every(function (item) { return Render.processElement(scroller, item); })) {
2673
2751
  return false;
2674
2752
  }
2675
2753
  }
2676
2754
  buffer.checkDefaultSize();
2677
2755
  render.sizeAfter = viewport.getScrollableSize();
2678
2756
  logger.stat('after new items render');
2679
- logger.log(function () { return render.noSize ? 'viewport size has not been changed' : void 0; });
2757
+ logger.log(function () { return (render.noSize ? 'viewport size has not been changed' : void 0); });
2680
2758
  return true;
2681
2759
  };
2682
2760
  Render.processElement = function (scroller, item) {
@@ -2705,7 +2783,8 @@ var End = /** @class */ (function (_super) {
2705
2783
  }
2706
2784
  End.run = function (scroller, _a) {
2707
2785
  var _b = _a === void 0 ? {} : _a, error = _b.error;
2708
- var workflow = scroller.workflow, interrupter = scroller.state.cycle.interrupter;
2786
+ var workflow = scroller.workflow, state = scroller.state;
2787
+ var interrupter = state.cycle.interrupter;
2709
2788
  if (!error && !interrupter) {
2710
2789
  // set out params accessible via Adapter
2711
2790
  End.calculateParams(scroller);
@@ -2761,10 +2840,10 @@ var Adjust = /** @class */ (function (_super) {
2761
2840
  return _super !== null && _super.apply(this, arguments) || this;
2762
2841
  }
2763
2842
  Adjust.run = function (scroller) {
2764
- var workflow = scroller.workflow, viewport = scroller.viewport, scroll = scroller.state.scroll;
2765
- scroll.positionBeforeAdjust = viewport.scrollPosition;
2843
+ var workflow = scroller.workflow, viewport = scroller.viewport, state = scroller.state;
2844
+ state.scroll.positionBeforeAdjust = viewport.scrollPosition;
2766
2845
  Adjust.setPaddings(scroller);
2767
- scroll.positionAfterAdjust = viewport.scrollPosition;
2846
+ state.scroll.positionAfterAdjust = viewport.scrollPosition;
2768
2847
  // scroll position adjustments
2769
2848
  var position = Adjust.calculatePosition(scroller);
2770
2849
  // additional adjustment if the position can't be reached during the initial cycle
@@ -2778,7 +2857,7 @@ var Adjust = /** @class */ (function (_super) {
2778
2857
  });
2779
2858
  };
2780
2859
  Adjust.setPaddings = function (scroller) {
2781
- var viewport = scroller.viewport, buffer = scroller.buffer, inverse = scroller.settings.inverse, fetch = scroller.state.fetch;
2860
+ var viewport = scroller.viewport, buffer = scroller.buffer, settings = scroller.settings, state = scroller.state;
2782
2861
  var firstItem = buffer.getFirstVisibleItem();
2783
2862
  var lastItem = buffer.getLastVisibleItem();
2784
2863
  var first, last;
@@ -2787,7 +2866,8 @@ var Adjust = /** @class */ (function (_super) {
2787
2866
  last = lastItem.$index;
2788
2867
  }
2789
2868
  else {
2790
- first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;
2869
+ var fetch_1 = state.fetch;
2870
+ first = !isNaN(fetch_1.firstVisible.index) ? fetch_1.firstVisible.index : buffer.startIndex;
2791
2871
  last = first - 1;
2792
2872
  }
2793
2873
  var _a = viewport.paddings, forward = _a.forward, backward = _a.backward;
@@ -2804,14 +2884,16 @@ var Adjust = /** @class */ (function (_super) {
2804
2884
  var scrollSize = bwdSize + bufferSize + fwdSize;
2805
2885
  var viewportSizeDiff = viewport.getSize() - scrollSize;
2806
2886
  if (viewportSizeDiff > 0) {
2807
- if (inverse) {
2887
+ if (settings.inverse) {
2808
2888
  bwdSize += viewportSizeDiff;
2809
2889
  }
2810
2890
  else {
2811
2891
  fwdSize += viewportSizeDiff;
2812
2892
  }
2813
2893
  scroller.logger.log(function () {
2814
- return inverse ? 'backward' : 'forward' + " padding will be increased by ".concat(viewportSizeDiff, " to fill the viewport");
2894
+ return settings.inverse
2895
+ ? 'backward'
2896
+ : 'forward' + " padding will be increased by ".concat(viewportSizeDiff, " to fill the viewport");
2815
2897
  });
2816
2898
  }
2817
2899
  backward.size = bwdSize;
@@ -2819,7 +2901,8 @@ var Adjust = /** @class */ (function (_super) {
2819
2901
  scroller.logger.stat('after paddings adjustments');
2820
2902
  };
2821
2903
  Adjust.calculatePosition = function (scroller) {
2822
- var viewport = scroller.viewport, buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, render = _a.render, scroll = _a.scroll;
2904
+ var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
2905
+ var fetch = state.fetch, render = state.render, scroll = state.scroll;
2823
2906
  var position = viewport.paddings.backward.size;
2824
2907
  // increase the position to meet the expectation of the first visible item
2825
2908
  if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {
@@ -2856,8 +2939,8 @@ var Adjust = /** @class */ (function (_super) {
2856
2939
  return Math.round(position);
2857
2940
  };
2858
2941
  Adjust.setAdditionalForwardPadding = function (scroller, position) {
2859
- var viewport = scroller.viewport, buffer = scroller.buffer, cycle = scroller.state.cycle;
2860
- if (!cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
2942
+ var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
2943
+ if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
2861
2944
  return;
2862
2945
  }
2863
2946
  var diff = position - viewport.getMaxScrollPosition();
@@ -2880,7 +2963,8 @@ var Adjust = /** @class */ (function (_super) {
2880
2963
  }
2881
2964
  };
2882
2965
  Adjust.setPosition = function (scroller, position, done) {
2883
- var scroll = scroller.state.scroll, viewport = scroller.viewport, routines = scroller.routines;
2966
+ var state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
2967
+ var scroll = state.scroll;
2884
2968
  if (!scroll.hasPositionChanged(position)) {
2885
2969
  return done();
2886
2970
  }
@@ -2958,7 +3042,8 @@ var PreClip = /** @class */ (function (_super) {
2958
3042
  return false;
2959
3043
  };
2960
3044
  PreClip.isBackward = function (scroller, firstIndex) {
2961
- var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;
3045
+ var buffer = scroller.buffer, state = scroller.state;
3046
+ var clip = state.clip, fetch = state.fetch;
2962
3047
  if (clip.force) {
2963
3048
  return clip.forceBackward;
2964
3049
  }
@@ -2970,7 +3055,8 @@ var PreClip = /** @class */ (function (_super) {
2970
3055
  return false;
2971
3056
  };
2972
3057
  PreClip.isForward = function (scroller, lastIndex) {
2973
- var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;
3058
+ var buffer = scroller.buffer, state = scroller.state;
3059
+ var clip = state.clip, fetch = state.fetch;
2974
3060
  if (clip.force) {
2975
3061
  return clip.forceForward;
2976
3062
  }
@@ -2984,8 +3070,7 @@ var PreClip = /** @class */ (function (_super) {
2984
3070
  PreClip.prepareClipByDirection = function (scroller, direction, edgeIndex) {
2985
3071
  var forward = direction === Direction.forward;
2986
3072
  scroller.buffer.items.forEach(function (item) {
2987
- if ((!forward && item.$index < edgeIndex) ||
2988
- (forward && item.$index > edgeIndex)) {
3073
+ if ((!forward && item.$index < edgeIndex) || (forward && item.$index > edgeIndex)) {
2989
3074
  item.toRemove = true;
2990
3075
  item.removeDirection = direction;
2991
3076
  scroller.state.clip.doClip = true;
@@ -3010,9 +3095,9 @@ var Clip = /** @class */ (function (_super) {
3010
3095
  };
3011
3096
  Clip.doClip = function (scroller) {
3012
3097
  var _a;
3013
- var buffer = scroller.buffer, paddings = scroller.viewport.paddings, clip = scroller.state.clip, logger = scroller.logger;
3098
+ var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, logger = scroller.logger;
3014
3099
  var size = (_a = {}, _a[Direction.backward] = 0, _a[Direction.forward] = 0, _a);
3015
- logger.stat("before clip (".concat(++clip.callCount, ")"));
3100
+ logger.stat("before clip (".concat(++state.clip.callCount, ")"));
3016
3101
  var itemsToRemove = buffer.items.filter(function (item) {
3017
3102
  if (!item.toRemove) {
3018
3103
  return false;
@@ -3023,10 +3108,10 @@ var Clip = /** @class */ (function (_super) {
3023
3108
  });
3024
3109
  if (itemsToRemove.length) {
3025
3110
  if (size[Direction.backward]) {
3026
- paddings.byDirection(Direction.backward).size += size[Direction.backward];
3111
+ viewport.paddings.byDirection(Direction.backward).size += size[Direction.backward];
3027
3112
  }
3028
3113
  if (size[Direction.forward]) {
3029
- paddings.byDirection(Direction.forward).size += size[Direction.forward];
3114
+ viewport.paddings.byDirection(Direction.forward).size += size[Direction.forward];
3030
3115
  }
3031
3116
  if (scroller.settings.onBeforeClip) {
3032
3117
  scroller.settings.onBeforeClip(itemsToRemove.map(function (item) { return item.get(); }));
@@ -3060,7 +3145,7 @@ var Logger = /** @class */ (function () {
3060
3145
  if (!_this.debug) {
3061
3146
  return;
3062
3147
  }
3063
- var params = (args === void 0 ? [] : (Array.isArray(args) ? args : [args]))
3148
+ var params = (args === void 0 ? [] : Array.isArray(args) ? args : [args])
3064
3149
  .map(function (arg) {
3065
3150
  if (typeof arg === 'function') {
3066
3151
  return 'func';
@@ -3080,26 +3165,36 @@ var Logger = /** @class */ (function () {
3080
3165
  this.debug = settings.debug;
3081
3166
  this.immediateLog = settings.immediateLog;
3082
3167
  this.logTime = settings.logTime;
3083
- this.getTime = function () {
3084
- return scroller.state && " // time: ".concat(scroller.state.time);
3085
- };
3168
+ this.logColor = settings.logColor;
3169
+ this.getTime = function () { return scroller.state && " // time: ".concat(scroller.state.time); };
3086
3170
  this.getStat = function () {
3087
3171
  var buffer = scroller.buffer, viewport = scroller.viewport;
3088
3172
  var first = buffer.getFirstVisibleItem();
3089
3173
  var last = buffer.getLastVisibleItem();
3090
- return 'pos: ' + viewport.scrollPosition + ', ' +
3091
- 'size: ' + viewport.getScrollableSize() + ', ' +
3092
- 'bwd_p: ' + viewport.paddings.backward.size + ', ' +
3093
- 'fwd_p: ' + viewport.paddings.forward.size + ', ' +
3094
- 'default: ' + (buffer.defaultSize || 'no') + ', ' +
3095
- 'items: ' + buffer.getVisibleItemsCount() + ', ' +
3096
- 'range: ' + (first && last ? "[".concat(first.$index, "..").concat(last.$index, "]") : 'no');
3174
+ return ('pos: ' +
3175
+ viewport.scrollPosition +
3176
+ ', ' +
3177
+ 'size: ' +
3178
+ viewport.getScrollableSize() +
3179
+ ', ' +
3180
+ 'bwd_p: ' +
3181
+ viewport.paddings.backward.size +
3182
+ ', ' +
3183
+ 'fwd_p: ' +
3184
+ viewport.paddings.forward.size +
3185
+ ', ' +
3186
+ 'default: ' +
3187
+ (buffer.defaultSize || 'no') +
3188
+ ', ' +
3189
+ 'items: ' +
3190
+ buffer.getVisibleItemsCount() +
3191
+ ', ' +
3192
+ 'range: ' +
3193
+ (first && last ? "[".concat(first.$index, "..").concat(last.$index, "]") : 'no'));
3097
3194
  };
3098
3195
  this.getFetchRange = function () {
3099
3196
  var _a = scroller.state.fetch, first = _a.first.index, last = _a.last.index;
3100
- return !Number.isNaN(first) && !Number.isNaN(last)
3101
- ? "[".concat(first, "..").concat(last, "]")
3102
- : 'no';
3197
+ return !Number.isNaN(first) && !Number.isNaN(last) ? "[".concat(first, "..").concat(last, "]") : 'no';
3103
3198
  };
3104
3199
  this.getLoopId = function () { return scroller.state.cycle.loopId; };
3105
3200
  this.getLoopIdNext = function () { return scroller.state.cycle.loopIdNext; };
@@ -3119,7 +3214,7 @@ var Logger = /** @class */ (function () {
3119
3214
  this.log(function () { return [
3120
3215
  str,
3121
3216
  stringify
3122
- ? JSON.stringify(obj, function (k, v) {
3217
+ ? JSON.stringify(obj, function (_, v) {
3123
3218
  if (Number.isNaN(v)) {
3124
3219
  return 'NaN';
3125
3220
  }
@@ -3149,27 +3244,36 @@ var Logger = /** @class */ (function () {
3149
3244
  Logger.prototype.stat = function (str) {
3150
3245
  var _this = this;
3151
3246
  if (this.debug) {
3152
- var logStyles_1 = [
3153
- 'color: #888; border: dashed #888 0; border-bottom-width: 0px',
3154
- 'color: #000; border-width: 0'
3155
- ];
3156
- this.log(function () { return __spreadArray(['%cstat' + (str ? " ".concat(str) : '') + ',%c ' + _this.getStat()], __read(logStyles_1), false); });
3247
+ if (this.logColor) {
3248
+ var logStyles_1 = [
3249
+ 'color: #888; border: dashed #888 0; border-bottom-width: 0px',
3250
+ 'color: #000; border-width: 0'
3251
+ ];
3252
+ this.log(function () { return __spreadArray(['%cstat' + (str ? " ".concat(str) : '') + ',%c ' + _this.getStat()], __read(logStyles_1), false); });
3253
+ }
3254
+ else {
3255
+ this.log(function () { return ['stat' + (str ? " ".concat(str) : '') + ', ' + _this.getStat()]; });
3256
+ }
3157
3257
  }
3158
3258
  };
3159
3259
  Logger.prototype.fetch = function (str) {
3160
3260
  var _this = this;
3161
3261
  if (this.debug) {
3162
3262
  var _text_1 = 'fetch interval' + (str ? " ".concat(str) : '');
3163
- var logStyles_2 = ['color: #888', 'color: #000'];
3164
- this.log(function () { return __spreadArray(["%c".concat(_text_1, ": %c").concat(_this.getFetchRange())], __read(logStyles_2), false); });
3263
+ if (this.logColor) {
3264
+ var logStyles_2 = ['color: #888', 'color: #000'];
3265
+ this.log(function () { return __spreadArray(["%c".concat(_text_1, ": %c").concat(_this.getFetchRange())], __read(logStyles_2), false); });
3266
+ }
3267
+ else {
3268
+ this.log(function () { return ["".concat(_text_1, ": ").concat(_this.getFetchRange())]; });
3269
+ }
3165
3270
  }
3166
3271
  };
3167
3272
  Logger.prototype.prepareForLog = function (data) {
3168
- return data instanceof Event && data.target
3169
- ? this.getScrollPosition()
3170
- : data;
3273
+ return data instanceof Event && data.target ? this.getScrollPosition() : data;
3171
3274
  };
3172
3275
  Logger.prototype.logProcess = function (data) {
3276
+ var _this = this;
3173
3277
  if (!this.debug) {
3174
3278
  return;
3175
3279
  }
@@ -3177,31 +3281,50 @@ var Logger = /** @class */ (function () {
3177
3281
  // inner loop start-end log
3178
3282
  var loopLog = [];
3179
3283
  if (process === CommonProcess.init && status === ProcessStatus.next) {
3180
- loopLog.push("%c---=== loop ".concat(this.getLoopIdNext(), " start"));
3284
+ var loopStart = "---=== loop ".concat(this.getLoopIdNext(), " start");
3285
+ loopLog.push(this.logColor ? "%c".concat(loopStart) : loopStart);
3181
3286
  }
3182
3287
  else if (process === CommonProcess.end) {
3183
- loopLog.push("%c---=== loop ".concat(this.getLoopId(), " done"));
3288
+ var loopDone = "---=== loop ".concat(this.getLoopId(), " done");
3289
+ loopLog.push(this.logColor ? "%c".concat(loopDone) : loopDone);
3184
3290
  var parent_1 = payload && payload.process;
3185
- if (status === ProcessStatus.next && (parent_1 !== AdapterProcess.reset && parent_1 !== AdapterProcess.reload)) {
3291
+ if (status === ProcessStatus.next &&
3292
+ parent_1 !== AdapterProcess.reset &&
3293
+ parent_1 !== AdapterProcess.reload) {
3186
3294
  loopLog[0] += ", loop ".concat(this.getLoopIdNext(), " start");
3187
3295
  }
3188
3296
  }
3189
3297
  if (loopLog.length) {
3190
- this.log(function () { return __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false); });
3298
+ this.log(function () { return (_this.logColor ? __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false) : loopLog); });
3191
3299
  }
3192
3300
  };
3193
3301
  Logger.prototype.logCycle = function (start) {
3194
3302
  if (start === void 0) { start = true; }
3195
3303
  var logData = this.getWorkflowCycleData();
3196
- var border = start ? '1px 0 0 1px' : '0 0 1px 1px';
3197
- var logStyles = "color: #0000aa; border: solid #555 1px; border-width: ".concat(border, "; margin-left: -2px");
3198
- this.log(function () { return ["%c ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ "), logStyles]; });
3304
+ if (this.logColor) {
3305
+ var border = start ? '1px 0 0 1px' : '0 0 1px 1px';
3306
+ var logStyles_3 = "color: #0000aa; border: solid #555 1px; border-width: ".concat(border, "; margin-left: -2px");
3307
+ this.log(function () { return [
3308
+ "%c ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ "),
3309
+ logStyles_3
3310
+ ]; });
3311
+ }
3312
+ else {
3313
+ this.log(function () { return [" ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ ")]; });
3314
+ }
3199
3315
  };
3200
3316
  Logger.prototype.logError = function (str) {
3201
3317
  var _this = this;
3202
3318
  if (this.debug) {
3203
- var logStyles_3 = ['color: #a00;', 'color: #000'];
3204
- this.log(function () { return __spreadArray(['error:%c' + (str ? " ".concat(str) : '') + "%c (loop ".concat(_this.getLoopIdNext(), ")")], __read(logStyles_3), false); });
3319
+ if (this.logColor) {
3320
+ var logStyles_4 = ['color: #a00;', 'color: #000'];
3321
+ this.log(function () { return __spreadArray([
3322
+ 'error:%c' + (str ? " ".concat(str) : '') + "%c (loop ".concat(_this.getLoopIdNext(), ")")
3323
+ ], __read(logStyles_4), false); });
3324
+ }
3325
+ else {
3326
+ this.log(function () { return ['error:' + (str ? " ".concat(str) : '') + " (loop ".concat(_this.getLoopIdNext(), ")")]; });
3327
+ }
3205
3328
  }
3206
3329
  };
3207
3330
  Logger.prototype.log = function () {
@@ -3257,6 +3380,9 @@ var Logger = /** @class */ (function () {
3257
3380
  }
3258
3381
  }
3259
3382
  };
3383
+ Logger.prototype.getLogs = function () {
3384
+ return this.logs;
3385
+ };
3260
3386
  return Logger;
3261
3387
  }());
3262
3388
 
@@ -3336,17 +3462,18 @@ var Routines = /** @class */ (function () {
3336
3462
  return element.getBoundingClientRect();
3337
3463
  };
3338
3464
  Routines.prototype.getWindowParams = function () {
3339
- var _a = this.viewport, clientWidth = _a.clientWidth, clientHeight = _a.clientHeight, clientLeft = _a.clientLeft, clientTop = _a.clientTop;
3465
+ var height = window.innerHeight;
3466
+ var width = window.innerWidth;
3340
3467
  return {
3341
- 'height': clientHeight,
3342
- 'width': clientWidth,
3343
- 'top': clientTop,
3344
- 'bottom': clientTop + clientHeight,
3345
- 'left': clientLeft,
3346
- 'right': clientLeft + clientWidth,
3347
- 'x': clientLeft,
3348
- 'y': clientTop,
3349
- 'toJSON': function () { return null; },
3468
+ height: height,
3469
+ width: width,
3470
+ top: 0,
3471
+ bottom: height,
3472
+ left: 0,
3473
+ right: width,
3474
+ x: 0,
3475
+ y: 0,
3476
+ toJSON: function () { return null; }
3350
3477
  };
3351
3478
  };
3352
3479
  Routines.prototype.getSize = function (element) {
@@ -3375,14 +3502,14 @@ var Routines = /** @class */ (function () {
3375
3502
  var horizontal = this.settings.horizontal;
3376
3503
  var params = this.getElementParams(element);
3377
3504
  var isFwd = direction === Direction.forward;
3378
- return params[isFwd ? (horizontal ? 'right' : 'bottom') : (horizontal ? 'left' : 'top')];
3505
+ return params[isFwd ? (horizontal ? 'right' : 'bottom') : horizontal ? 'left' : 'top'];
3379
3506
  };
3380
3507
  Routines.prototype.getViewportEdge = function (direction) {
3381
3508
  var _a = this.settings, window = _a.window, horizontal = _a.horizontal;
3382
3509
  if (window) {
3383
3510
  var params = this.getWindowParams();
3384
3511
  var isFwd = direction === Direction.forward;
3385
- return params[isFwd ? (horizontal ? 'right' : 'bottom') : (horizontal ? 'left' : 'top')];
3512
+ return params[isFwd ? (horizontal ? 'right' : 'bottom') : horizontal ? 'left' : 'top'];
3386
3513
  }
3387
3514
  return this.getEdge(this.viewport, direction);
3388
3515
  };
@@ -3407,8 +3534,7 @@ var Routines = /** @class */ (function () {
3407
3534
  this.checkElement(element);
3408
3535
  element.scrollIntoView(argument);
3409
3536
  };
3410
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
3411
- Routines.prototype.render = function (cb, params) {
3537
+ Routines.prototype.render = function (cb, _params) {
3412
3538
  var timeoutId = setTimeout(function () { return cb(); });
3413
3539
  return function () { return clearTimeout(timeoutId); };
3414
3540
  };
@@ -3455,8 +3581,12 @@ var Paddings = /** @class */ (function () {
3455
3581
  }
3456
3582
  Paddings.prototype.byDirection = function (direction, opposite) {
3457
3583
  return direction === Direction.backward
3458
- ? (opposite ? this.forward : this.backward)
3459
- : (opposite ? this.backward : this.forward);
3584
+ ? opposite
3585
+ ? this.forward
3586
+ : this.backward
3587
+ : opposite
3588
+ ? this.backward
3589
+ : this.forward;
3460
3590
  };
3461
3591
  Paddings.prototype.reset = function (viewportSize, startIndex, offset) {
3462
3592
  var positive = this.getPositiveSize(startIndex, viewportSize, offset);
@@ -3525,7 +3655,8 @@ var Viewport = /** @class */ (function () {
3525
3655
  this.routines.setScrollPosition(value);
3526
3656
  var position = this.scrollPosition;
3527
3657
  this.logger.log(function () { return __spreadArray([
3528
- 'setting scroll position at', position
3658
+ 'setting scroll position at',
3659
+ position
3529
3660
  ], __read((position !== value ? ["(".concat(value, ")")] : [])), false); });
3530
3661
  return position;
3531
3662
  };
@@ -3568,7 +3699,7 @@ var Viewport = /** @class */ (function () {
3568
3699
  for (var i = bwd ? 0 : items.length - 1; bwd ? i <= items.length - 1 : i >= 0; i += bwd ? 1 : -1) {
3569
3700
  var itemEdge = this.routines.getEdge(items[i].element, opposite);
3570
3701
  diff = itemEdge - viewportEdge;
3571
- if (bwd && diff > 0 || !bwd && diff < 0) {
3702
+ if ((bwd && diff > 0) || (!bwd && diff < 0)) {
3572
3703
  item = items[i];
3573
3704
  break;
3574
3705
  }
@@ -3632,7 +3763,8 @@ var DefaultSize = /** @class */ (function () {
3632
3763
  if (removed.length) {
3633
3764
  var removedSize = removed.reduce(function (acc, item) { return acc + item.size; }, 0);
3634
3765
  var averageSize = this.averageSizeFloat || 0;
3635
- this.averageSizeFloat = ((cacheSize + removed.length) * averageSize - removedSize) / cacheSize;
3766
+ this.averageSizeFloat =
3767
+ ((cacheSize + removed.length) * averageSize - removedSize) / cacheSize;
3636
3768
  }
3637
3769
  this.averageSize = Math.round(this.averageSizeFloat);
3638
3770
  };
@@ -3764,7 +3896,7 @@ var Cache = /** @class */ (function () {
3764
3896
  };
3765
3897
  Cache.prototype.getSizeByIndex = function (index) {
3766
3898
  var item = this.get(index);
3767
- return item && item.size || this.defaultSize.get();
3899
+ return (item && item.size) || this.defaultSize.get();
3768
3900
  };
3769
3901
  Cache.prototype.getDefaultSize = function () {
3770
3902
  return this.defaultSize.get();
@@ -3782,12 +3914,12 @@ var Cache = /** @class */ (function () {
3782
3914
  * Maintains min/max indexes and default item size.
3783
3915
  *
3784
3916
  * @param {Item<Data>} item A Buffer item to be cached, an objects with { $index, data, size } props.
3785
- *
3786
3917
  * @returns {ItemCache<Data>} Cached item.
3787
3918
  */
3788
3919
  Cache.prototype.add = function (item) {
3789
3920
  var itemCache = this.get(item.$index);
3790
- if (itemCache) { // adding item is already cached
3921
+ if (itemCache) {
3922
+ // adding item is already cached
3791
3923
  if (this.saveData) {
3792
3924
  itemCache.data = item.data;
3793
3925
  }
@@ -3859,7 +3991,8 @@ var Cache = /** @class */ (function () {
3859
3991
  }
3860
3992
  set(item);
3861
3993
  });
3862
- if (this.saveData) { // persist data with no sizes
3994
+ if (this.saveData) {
3995
+ // persist data with no sizes
3863
3996
  toInsert.forEach(function (data, i) {
3864
3997
  var $index = index + i - (fixRight ? length : 0) + (direction === Direction.forward ? 1 : 0);
3865
3998
  var item = new ItemCache({ $index: $index, data: data }, _this.saveData);
@@ -3933,20 +4066,21 @@ var Cache = /** @class */ (function () {
3933
4066
  }
3934
4067
  var items = new Map();
3935
4068
  this.items.forEach(function (item) {
3936
- if (item.$index < minB) { // items to the left of the subset
4069
+ if (item.$index < minB) {
4070
+ // items to the left of the subset
3937
4071
  item.changeIndex(item.$index + leftDiff);
3938
4072
  items.set(item.$index, item);
3939
4073
  return;
3940
4074
  }
3941
- else if (item.$index > maxB) { // items to the right of the subset
4075
+ else if (item.$index > maxB) {
4076
+ // items to the right of the subset
3942
4077
  item.changeIndex(item.$index + rightDiff);
3943
4078
  items.set(item.$index, item);
3944
4079
  return;
3945
4080
  }
3946
4081
  });
3947
- after.forEach(function (item) {
3948
- return items.set(item.$index, new ItemCache(item, _this.saveData));
3949
- });
4082
+ after.forEach(function (item // subset items
4083
+ ) { return items.set(item.$index, new ItemCache(item, _this.saveData)); });
3950
4084
  before // to maintain default size on remove
3951
4085
  .filter(function (item) { return item.toRemove; })
3952
4086
  .forEach(function (item) { return _this.defaultSize.setRemoved(item.size); });
@@ -3995,13 +4129,12 @@ var CheckBufferCall = /** @class */ (function () {
3995
4129
  return true;
3996
4130
  };
3997
4131
  CheckBufferCall.prototype.insertInBuffer = function (predicate, before, after) {
3998
- var index = Number.isInteger(before) ? before : (Number.isInteger(after) ? after : NaN);
4132
+ var index = Number.isInteger(before) ? before : Number.isInteger(after) ? after : NaN;
3999
4133
  var found = this.context.items.find(function (item) {
4000
- return (predicate && predicate(item.get())) ||
4001
- (Number.isInteger(index) && index === item.$index);
4134
+ return (predicate && predicate(item.get())) || (Number.isInteger(index) && index === item.$index);
4002
4135
  });
4003
4136
  if (!found) {
4004
- this.logger.log('no items to insert in buffer; empty predicate\'s result');
4137
+ this.logger.log('no items to insert in buffer; empty predicate result');
4005
4138
  return NaN;
4006
4139
  }
4007
4140
  return found.$index;
@@ -4021,9 +4154,7 @@ var CheckBufferCall = /** @class */ (function () {
4021
4154
  }
4022
4155
  var before = direction === Direction.backward;
4023
4156
  if (!(index < firstIndex + (before ? 1 : 0) || index > lastIndex - (before ? 0 : 1))) {
4024
- this.logger.log(function () {
4025
- return "no items to insert virtually; selected index (".concat(index, ") belongs Buffer [").concat(firstIndex, "..").concat(lastIndex, "]");
4026
- });
4157
+ this.logger.log("no items to insert virtually; selected index (".concat(index, ") belongs Buffer [").concat(firstIndex, "..").concat(lastIndex, "]"));
4027
4158
  return false;
4028
4159
  }
4029
4160
  this.logger.log(function () { return "going to insert ".concat(items.length, " item(s) virtually"); });
@@ -4104,7 +4235,8 @@ var Buffer = /** @class */ (function () {
4104
4235
  },
4105
4236
  set: function (value) {
4106
4237
  if (this._absMinIndex !== value) {
4107
- this._absMinIndex = Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;
4238
+ this._absMinIndex =
4239
+ Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;
4108
4240
  }
4109
4241
  if (!this.pristine) {
4110
4242
  this.checkBOF();
@@ -4119,7 +4251,8 @@ var Buffer = /** @class */ (function () {
4119
4251
  },
4120
4252
  set: function (value) {
4121
4253
  if (this._absMaxIndex !== value) {
4122
- this._absMaxIndex = Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;
4254
+ this._absMaxIndex =
4255
+ Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;
4123
4256
  }
4124
4257
  if (!this.pristine) {
4125
4258
  this.checkEOF();
@@ -4131,14 +4264,14 @@ var Buffer = /** @class */ (function () {
4131
4264
  Buffer.prototype.checkBOF = function () {
4132
4265
  // since bof has no setter, need to call checkBOF() on items and absMinIndex change
4133
4266
  var bof = this.items.length
4134
- ? (this.items[0].$index === this.absMinIndex)
4267
+ ? this.items[0].$index === this.absMinIndex
4135
4268
  : isFinite(this.absMinIndex);
4136
4269
  this.bof.set(bof);
4137
4270
  };
4138
4271
  Buffer.prototype.checkEOF = function () {
4139
4272
  // since eof has no setter, need to call checkEOF() on items and absMaxIndex change
4140
4273
  var eof = this.items.length
4141
- ? (this.items[this.items.length - 1].$index === this.absMaxIndex)
4274
+ ? this.items[this.items.length - 1].$index === this.absMaxIndex
4142
4275
  : isFinite(this.absMaxIndex);
4143
4276
  this.eof.set(eof);
4144
4277
  };
@@ -4271,9 +4404,9 @@ var Buffer = /** @class */ (function () {
4271
4404
  var shifted = false;
4272
4405
  var _loop_1 = function (i) {
4273
4406
  var item = this_1.items[i];
4274
- var diff = indexes.reduce(function (acc, index) { return acc + (fixRight
4275
- ? (item.$index < index ? 1 : 0)
4276
- : (item.$index > index ? -1 : 0)); }, 0);
4407
+ var diff = indexes.reduce(function (acc, index) {
4408
+ return acc + (fixRight ? (item.$index < index ? 1 : 0) : item.$index > index ? -1 : 0);
4409
+ }, 0);
4277
4410
  shifted = shifted || !!diff;
4278
4411
  item.updateIndex(item.$index + diff);
4279
4412
  };
@@ -4293,10 +4426,8 @@ var Buffer = /** @class */ (function () {
4293
4426
  }
4294
4427
  var before = Number.isInteger(beforeIndex);
4295
4428
  var index = (before ? beforeIndex : afterIndex);
4296
- var shift = (fixRight ? items.length : (before ? 1 : 0));
4297
- this.items = items.map(function (data, i) {
4298
- return generator(index + i + (!before ? 1 : 0) - shift, data);
4299
- });
4429
+ var shift = fixRight ? items.length : before ? 1 : 0;
4430
+ this.items = items.map(function (data, i) { return generator(index + i + (!before ? 1 : 0) - shift, data); });
4300
4431
  this._absMinIndex = this.items[0].$index;
4301
4432
  this._absMaxIndex = this.items[this.size - 1].$index;
4302
4433
  if (this.startIndex <= this.absMinIndex) {
@@ -4325,7 +4456,7 @@ var Buffer = /** @class */ (function () {
4325
4456
  // if predicate result is falsy or empty array -> delete
4326
4457
  if (!result || (Array.isArray(result) && !result.length)) {
4327
4458
  item.toRemove = true;
4328
- trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : (fixRight ? 0 : -1);
4459
+ trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : fixRight ? 0 : -1;
4329
4460
  this_2.shiftExtremum(-1, fixRight);
4330
4461
  return "continue";
4331
4462
  }
@@ -4421,8 +4552,9 @@ var Buffer = /** @class */ (function () {
4421
4552
  return index >= 0 ? this.items[index] : void 0;
4422
4553
  };
4423
4554
  Buffer.prototype.getEdgeVisibleItem = function (direction, opposite) {
4424
- return direction === (!opposite ? Direction.forward : Direction.backward) ?
4425
- this.getLastVisibleItem() : this.getFirstVisibleItem();
4555
+ return direction === (!opposite ? Direction.forward : Direction.backward)
4556
+ ? this.getLastVisibleItem()
4557
+ : this.getFirstVisibleItem();
4426
4558
  };
4427
4559
  Buffer.prototype.getVisibleItemsCount = function () {
4428
4560
  return this.items.reduce(function (acc, item) { return acc + (item.invisible ? 0 : 1); }, 0);
@@ -4597,7 +4729,7 @@ var FetchModel = /** @class */ (function () {
4597
4729
  });
4598
4730
  Object.defineProperty(FetchModel.prototype, "hasNewItems", {
4599
4731
  get: function () {
4600
- return !!((this._newItemsData && this._newItemsData.length));
4732
+ return !!(this._newItemsData && this._newItemsData.length);
4601
4733
  },
4602
4734
  enumerable: false,
4603
4735
  configurable: true
@@ -4611,7 +4743,9 @@ var FetchModel = /** @class */ (function () {
4611
4743
  });
4612
4744
  Object.defineProperty(FetchModel.prototype, "count", {
4613
4745
  get: function () {
4614
- return !isNaN(this.first.index) && !isNaN(this.last.index) ? this.last.index - this.first.index + 1 : 0;
4746
+ return !isNaN(this.first.index) && !isNaN(this.last.index)
4747
+ ? this.last.index - this.first.index + 1
4748
+ : 0;
4615
4749
  },
4616
4750
  enumerable: false,
4617
4751
  configurable: true
@@ -4765,10 +4899,12 @@ var State = /** @class */ (function () {
4765
4899
  }
4766
4900
  clip.reset(clip.force);
4767
4901
  render.reset();
4768
- return __assign({}, (cycle.innerLoop.first ? {
4769
- process: cycle.initiator,
4770
- doRender: fetch.simulate && fetch.items.length > 0
4771
- } : {}));
4902
+ return __assign({}, (cycle.innerLoop.first
4903
+ ? {
4904
+ process: cycle.initiator,
4905
+ doRender: fetch.simulate && fetch.items.length > 0
4906
+ }
4907
+ : {}));
4772
4908
  };
4773
4909
  State.prototype.endInnerLoop = function () {
4774
4910
  var _a = this, fetch = _a.fetch, clip = _a.clip, render = _a.render, cycle = _a.cycle;
@@ -4819,7 +4955,6 @@ var Adapter = /** @class */ (function () {
4819
4955
  this.source = {}; // for Reactive props
4820
4956
  this.box = {}; // for Scalars over Reactive props
4821
4957
  this.demand = {}; // for Scalars on demand
4822
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
4823
4958
  this.setFirstOrLastVisible = function (_) { };
4824
4959
  this.getWorkflow = getWorkflow;
4825
4960
  this.logger = logger;
@@ -4828,7 +4963,7 @@ var Adapter = /** @class */ (function () {
4828
4963
  this.reloadCounter = 0;
4829
4964
  var contextId = (context === null || context === void 0 ? void 0 : context.id) || -1;
4830
4965
  // public context (if exists) should provide access to Reactive props config by id
4831
- var reactivePropsStore = context && reactiveConfigStorage.get(context.id) || {};
4966
+ var reactivePropsStore = (context && reactiveConfigStorage.get(context.id)) || {};
4832
4967
  // the Adapter initialization should not trigger "wanted" props setting;
4833
4968
  // after the initialization is completed, "wanted" functionality must be unblocked
4834
4969
  wantedUtils.setBlock(true, contextId);
@@ -4843,7 +4978,7 @@ var Adapter = /** @class */ (function () {
4843
4978
  value = reactiveProp.default; // boolean doesn't matter here
4844
4979
  }
4845
4980
  }
4846
- return (__assign(__assign({}, prop), { value: value }));
4981
+ return __assign(__assign({}, prop), { value: value });
4847
4982
  })
4848
4983
  : getDefaultAdapterProps();
4849
4984
  // restore default reactive props if they were configured
@@ -4886,10 +5021,12 @@ var Adapter = /** @class */ (function () {
4886
5021
  // so this method should be called when accessing the "wanted" props through one of the following getters
4887
5022
  var processWanted = function (prop) {
4888
5023
  if (wantedUtils.setBox(prop, contextId)) {
4889
- if ([AdapterPropName.firstVisible, AdapterPropName.firstVisible$].some(function (n) { return n === prop.name; })) {
5024
+ var firstPropList = [AdapterPropName.firstVisible, AdapterPropName.firstVisible$];
5025
+ var lastPropList = [AdapterPropName.lastVisible, AdapterPropName.lastVisible$];
5026
+ if (firstPropList.some(function (n) { return n === prop.name; })) {
4890
5027
  _this.setFirstOrLastVisible({ first: true });
4891
5028
  }
4892
- else if ([AdapterPropName.lastVisible, AdapterPropName.lastVisible$].some(function (n) { return n === prop.name; })) {
5029
+ else if (lastPropList.some(function (n) { return n === prop.name; })) {
4893
5030
  _this.setFirstOrLastVisible({ last: true });
4894
5031
  }
4895
5032
  }
@@ -4939,8 +5076,7 @@ var Adapter = /** @class */ (function () {
4939
5076
  return;
4940
5077
  }
4941
5078
  // Adapter public context augmentation
4942
- adapterProps
4943
- .forEach(function (prop) {
5079
+ adapterProps.forEach(function (prop) {
4944
5080
  var name = prop.name, type = prop.type, permanent = prop.permanent;
4945
5081
  var value = _this[name];
4946
5082
  if (type === AdapterPropType.Function) {
@@ -5034,23 +5170,23 @@ var Adapter = /** @class */ (function () {
5034
5170
  maxIndex: buffer.maxIndex,
5035
5171
  absMinIndex: buffer.absMinIndex,
5036
5172
  absMaxIndex: buffer.absMaxIndex,
5037
- defaultSize: buffer.defaultSize,
5173
+ defaultSize: buffer.defaultSize
5038
5174
  }); }
5039
5175
  });
5040
5176
  this.bof = buffer.bof.get();
5041
- buffer.bof.on(function (bof) { return _this.bof = bof; });
5177
+ buffer.bof.on(function (bof) { return (_this.bof = bof); });
5042
5178
  this.eof = buffer.eof.get();
5043
- buffer.eof.on(function (eof) { return _this.eof = eof; });
5179
+ buffer.eof.on(function (eof) { return (_this.eof = eof); });
5044
5180
  // state
5045
5181
  Object.defineProperty(this.demand, AdapterPropName.packageInfo, {
5046
5182
  get: function () { return state.packageInfo; }
5047
5183
  });
5048
5184
  this.loopPending = state.cycle.innerLoop.busy.get();
5049
- state.cycle.innerLoop.busy.on(function (busy) { return _this.loopPending = busy; });
5185
+ state.cycle.innerLoop.busy.on(function (busy) { return (_this.loopPending = busy); });
5050
5186
  this.isLoading = state.cycle.busy.get();
5051
- state.cycle.busy.on(function (busy) { return _this.isLoading = busy; });
5187
+ state.cycle.busy.on(function (busy) { return (_this.isLoading = busy); });
5052
5188
  this.paused = state.paused.get();
5053
- state.paused.on(function (paused) { return _this.paused = paused; });
5189
+ state.paused.on(function (paused) { return (_this.paused = paused); });
5054
5190
  //viewport
5055
5191
  this.setFirstOrLastVisible = function (_a) {
5056
5192
  var _b, _c, _d;
@@ -5128,8 +5264,7 @@ var Adapter = /** @class */ (function () {
5128
5264
  var _this = this;
5129
5265
  var _a;
5130
5266
  var reactiveStore = reactiveConfigStorage.get((_a = this.externalContext) === null || _a === void 0 ? void 0 : _a.id);
5131
- ADAPTER_PROPS_STUB
5132
- .forEach(function (_a) {
5267
+ ADAPTER_PROPS_STUB.forEach(function (_a) {
5133
5268
  var type = _a.type, permanent = _a.permanent, name = _a.name, value = _a.value;
5134
5269
  // assign initial values to non-reactive non-permanent props
5135
5270
  if (type !== AdapterPropType.Reactive && !permanent) {
@@ -5270,7 +5405,9 @@ var Adapter = /** @class */ (function () {
5270
5405
  };
5271
5406
  Adapter.prototype.relaxUnchained = function (callback, reloadId) {
5272
5407
  var _this = this;
5273
- var runCallback = function () { return typeof callback === 'function' && reloadId === _this.reloadId && callback(); };
5408
+ var runCallback = function () {
5409
+ return typeof callback === 'function' && reloadId === _this.reloadId && callback();
5410
+ };
5274
5411
  if (!this.isLoading) {
5275
5412
  runCallback();
5276
5413
  }
@@ -5293,7 +5430,9 @@ var Adapter = /** @class */ (function () {
5293
5430
  };
5294
5431
  }
5295
5432
  var success = reloadId === _this.reloadId;
5296
- (_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () { return !success ? "relax promise cancelled due to ".concat(reloadId, " != ").concat(_this.reloadId) : void 0; });
5433
+ (_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
5434
+ return !success ? "relax promise cancelled due to ".concat(reloadId, " != ").concat(_this.reloadId) : void 0;
5435
+ });
5297
5436
  return {
5298
5437
  immediate: immediate,
5299
5438
  success: success,
@@ -5308,12 +5447,12 @@ var Adapter = /** @class */ (function () {
5308
5447
  if (!this.init) {
5309
5448
  return Promise.resolve(methodPreResult);
5310
5449
  }
5311
- return this.relaxRun = this.relaxRun
5450
+ return (this.relaxRun = this.relaxRun
5312
5451
  ? this.relaxRun.then(function () { return _this.relaxUnchained(callback, reloadId); })
5313
5452
  : this.relaxUnchained(callback, reloadId).then(function (result) {
5314
5453
  _this.relaxRun = null;
5315
5454
  return result;
5316
- });
5455
+ }));
5317
5456
  };
5318
5457
  Adapter.prototype.showLog = function () {
5319
5458
  this.logger.logAdapterMethod('showLog');
@@ -5347,7 +5486,8 @@ var Scroller = /** @class */ (function () {
5347
5486
  Object.getOwnPropertyNames(CustomRoutines.prototype)
5348
5487
  .filter(function (method) { return method !== 'constructor'; })
5349
5488
  .forEach(function (method) {
5350
- return __Routines_1.prototype[method] = CustomRoutines === null || CustomRoutines === void 0 ? void 0 : CustomRoutines.prototype[method];
5489
+ return (__Routines_1.prototype[method] =
5490
+ CustomRoutines === null || CustomRoutines === void 0 ? void 0 : CustomRoutines.prototype[method]);
5351
5491
  });
5352
5492
  CustomRoutines = __Routines_1;
5353
5493
  }
@@ -5363,7 +5503,8 @@ var Scroller = /** @class */ (function () {
5363
5503
  }
5364
5504
  Scroller.prototype.initDatasource = function (datasource, scroller) {
5365
5505
  var _this = this;
5366
- if (scroller) { // scroller re-instantiating case
5506
+ if (scroller) {
5507
+ // scroller re-instantiating case
5367
5508
  this.datasource = datasource;
5368
5509
  this.adapter = scroller.adapter;
5369
5510
  // todo: what about (this.settings.adapter !== scroller.setting.adapter) case?
@@ -5372,10 +5513,12 @@ var Scroller = /** @class */ (function () {
5372
5513
  // scroller is being instantiated for the first time
5373
5514
  var constructed = datasource instanceof DatasourceGeneric;
5374
5515
  var mockAdapter = !constructed && !this.settings.adapter;
5375
- if (constructed) { // datasource is already instantiated
5516
+ if (constructed) {
5517
+ // datasource is already instantiated
5376
5518
  this.datasource = datasource;
5377
5519
  }
5378
- else { // datasource as POJO
5520
+ else {
5521
+ // datasource as POJO
5379
5522
  var DS = makeDatasource(function () { return ({ mock: mockAdapter }); });
5380
5523
  this.datasource = new DS(datasource);
5381
5524
  if (this.settings.adapter) {
@@ -5400,14 +5543,14 @@ var Scroller = /** @class */ (function () {
5400
5543
  };
5401
5544
  Scroller.prototype.dispose = function (forever) {
5402
5545
  this.logger.log(function () { return 'disposing scroller' + (forever ? ' (forever)' : ''); });
5403
- if (forever) { // Adapter is not re-instantiated on reset
5546
+ if (forever) {
5547
+ // Adapter is not re-instantiated on reset
5404
5548
  this.adapter.dispose();
5405
5549
  }
5406
5550
  this.buffer.dispose();
5407
5551
  this.state.dispose();
5408
5552
  };
5409
- Scroller.prototype.finalize = function () {
5410
- };
5553
+ Scroller.prototype.finalize = function () { };
5411
5554
  return Scroller;
5412
5555
  }());
5413
5556
 
@@ -5423,7 +5566,8 @@ var runStateMachine = function (_a) {
5423
5566
  var options = payload.options;
5424
5567
  switch (process) {
5425
5568
  case CommonProcess.init:
5426
- if (status === ProcessStatus.start) { // App start
5569
+ if (status === ProcessStatus.start) {
5570
+ // App start
5427
5571
  run(Init)(process);
5428
5572
  }
5429
5573
  if (status === ProcessStatus.next) {
@@ -5643,6 +5787,7 @@ var Workflow = /** @class */ (function () {
5643
5787
  this.initTimer = null;
5644
5788
  this.adapterRun$ = new Reactive();
5645
5789
  this.cyclesDone = 0;
5790
+ this.cyclesDone$ = new Reactive(0);
5646
5791
  this.interruptionCount = 0;
5647
5792
  this.errors = [];
5648
5793
  this.offScroll = function () { return null; };
@@ -5675,11 +5820,13 @@ var Workflow = /** @class */ (function () {
5675
5820
  this.scroller.init(this.adapterRun$);
5676
5821
  // set up scroll event listener
5677
5822
  var routines = this.scroller.routines;
5678
- var onScrollHandler = function (event) { return _this.callWorkflow({
5679
- process: CommonProcess.scroll,
5680
- status: ProcessStatus.start,
5681
- payload: { event: event }
5682
- }); };
5823
+ var onScrollHandler = function (event) {
5824
+ return _this.callWorkflow({
5825
+ process: CommonProcess.scroll,
5826
+ status: ProcessStatus.start,
5827
+ payload: { event: event }
5828
+ });
5829
+ };
5683
5830
  this.offScroll = routines.onScroll(onScrollHandler);
5684
5831
  // run the Workflow
5685
5832
  this.isInitialized = true;
@@ -5711,18 +5858,19 @@ var Workflow = /** @class */ (function () {
5711
5858
  Workflow.prototype.getUpdater = function () {
5712
5859
  return {
5713
5860
  call: this.callWorkflow.bind(this),
5714
- onDataChanged: this.changeItems.bind(this),
5861
+ onDataChanged: this.changeItems.bind(this)
5715
5862
  };
5716
5863
  };
5717
5864
  Workflow.prototype.process = function (data) {
5865
+ var _this = this;
5718
5866
  var status = data.status, process = data.process, payload = data.payload;
5719
5867
  if (this.scroller.settings.logProcessRun) {
5720
- this.scroller.logger.log(function () { return __spreadArray(__spreadArray(__spreadArray([
5721
- '%cfire%c'
5722
- ], ['color: #cc7777;', 'color: #000000;'], false), [
5723
- process,
5724
- "\"".concat(status, "\"")
5725
- ], false), __read((payload !== void 0 ? [payload] : [])), false); });
5868
+ this.scroller.logger.log(function () {
5869
+ var _fire = _this.scroller.settings.logColor
5870
+ ? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']
5871
+ : ['fire'];
5872
+ return __spreadArray(__spreadArray(__spreadArray([], __read(_fire), false), [process, "\"".concat(status, "\"")], false), __read((payload !== void 0 ? [payload] : [])), false);
5873
+ });
5726
5874
  }
5727
5875
  this.scroller.logger.logProcess(data);
5728
5876
  if (process === CommonProcess.end) {
@@ -5743,18 +5891,19 @@ var Workflow = /** @class */ (function () {
5743
5891
  args[_i] = arguments[_i];
5744
5892
  }
5745
5893
  if (_this.scroller.settings.logProcessRun) {
5746
- _this.scroller.logger.log(function () { return __spreadArray(__spreadArray(__spreadArray([
5747
- '%crun%c'
5748
- ], ['color: #333399;', 'color: #000000;'], false), [
5749
- process || name
5750
- ], false), __read(args), false); });
5894
+ _this.scroller.logger.log(function () {
5895
+ var _run = _this.scroller.settings.logColor
5896
+ ? ['%crun%c', 'color: #333399;', 'color: #000000;']
5897
+ : ['run'];
5898
+ return __spreadArray(__spreadArray(__spreadArray([], __read(_run), false), [process || name], false), __read(args), false);
5899
+ });
5751
5900
  }
5752
5901
  run.apply(void 0, __spreadArray([_this.scroller], __read(args), false));
5753
5902
  };
5754
5903
  };
5755
5904
  };
5756
5905
  Workflow.prototype.onError = function (process, payload) {
5757
- var message = payload && String(payload.error) || '';
5906
+ var message = (payload && String(payload.error)) || '';
5758
5907
  var _a = this.scroller.state, time = _a.time, cycle = _a.cycle;
5759
5908
  this.errors.push({
5760
5909
  process: process,
@@ -5771,15 +5920,14 @@ var Workflow = /** @class */ (function () {
5771
5920
  var _b = this.scroller, workflow = _b.workflow, logger_1 = _b.logger;
5772
5921
  // we are going to create a new reference for the scroller.workflow object
5773
5922
  // calling the old version of the scroller.workflow by any outstanding async processes will be skipped
5774
- workflow.call = function (_) {
5775
- return logger_1.log('[skip wf call]');
5776
- };
5923
+ workflow.call = function (_) { return logger_1.log('[skip wf call]'); };
5777
5924
  workflow.call.interrupted = true;
5778
5925
  this.scroller.workflow = this.getUpdater();
5779
5926
  this.interruptionCount++;
5780
5927
  logger_1.log(function () { return "workflow had been interrupted by the ".concat(process, " process (").concat(_this.interruptionCount, ")"); });
5781
5928
  }
5782
- if (datasource) { // Scroller re-initialization case
5929
+ if (datasource) {
5930
+ // Scroller re-initialization case
5783
5931
  var reInit = function () {
5784
5932
  _this.scroller.logger.log('new Scroller instantiation');
5785
5933
  var scroller = new Scroller({ datasource: datasource, scroller: _this.scroller });
@@ -5799,6 +5947,7 @@ var Workflow = /** @class */ (function () {
5799
5947
  Workflow.prototype.done = function () {
5800
5948
  var _a = this.scroller, state = _a.state, logger = _a.logger;
5801
5949
  this.cyclesDone++;
5950
+ this.cyclesDone$.set(this.cyclesDone);
5802
5951
  logger.logCycle(false);
5803
5952
  state.endWorkflowCycle(this.cyclesDone + 1);
5804
5953
  this.finalize();
@@ -5811,14 +5960,15 @@ var Workflow = /** @class */ (function () {
5811
5960
  }
5812
5961
  this.offScroll();
5813
5962
  this.adapterRun$.dispose();
5963
+ this.cyclesDone$.dispose();
5814
5964
  this.scroller.dispose(true);
5815
5965
  Object.getOwnPropertyNames(this).forEach(function (prop) {
5816
5966
  delete _this[prop];
5817
5967
  });
5968
+ this.isInitialized = false;
5818
5969
  this.disposed = true;
5819
5970
  };
5820
- Workflow.prototype.finalize = function () {
5821
- };
5971
+ Workflow.prototype.finalize = function () { };
5822
5972
  return Workflow;
5823
5973
  }());
5824
5974