vscroll 1.7.0 → 1.8.1

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 (230) hide show
  1. package/dist/bundles/vscroll.esm5.js +518 -368
  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 +408 -260
  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 +519 -369
  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 +2 -2
  16. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  17. package/dist/esm2015/classes/adapter.js +17 -18
  18. package/dist/esm2015/classes/adapter.js.map +1 -1
  19. package/dist/esm2015/classes/buffer/cache.js +11 -8
  20. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  21. package/dist/esm2015/classes/buffer/checkCall.js +4 -5
  22. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  23. package/dist/esm2015/classes/buffer/defaultSize.js +2 -1
  24. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  25. package/dist/esm2015/classes/buffer.js +12 -11
  26. package/dist/esm2015/classes/buffer.js.map +1 -1
  27. package/dist/esm2015/classes/datasource.js +16 -3
  28. package/dist/esm2015/classes/datasource.js.map +1 -1
  29. package/dist/esm2015/classes/domRoutines.js +14 -14
  30. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  31. package/dist/esm2015/classes/logger.js +74 -31
  32. package/dist/esm2015/classes/logger.js.map +1 -1
  33. package/dist/esm2015/classes/paddings.js +6 -2
  34. package/dist/esm2015/classes/paddings.js.map +1 -1
  35. package/dist/esm2015/classes/reactive.js.map +1 -1
  36. package/dist/esm2015/classes/settings.js.map +1 -1
  37. package/dist/esm2015/classes/state/clip.js.map +1 -1
  38. package/dist/esm2015/classes/state/fetch.js +4 -2
  39. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  40. package/dist/esm2015/classes/state.js +6 -4
  41. package/dist/esm2015/classes/state.js.map +1 -1
  42. package/dist/esm2015/classes/viewport.js +4 -2
  43. package/dist/esm2015/classes/viewport.js.map +1 -1
  44. package/dist/esm2015/index.js +1 -1
  45. package/dist/esm2015/index.js.map +1 -1
  46. package/dist/esm2015/inputs/adapter.js +44 -24
  47. package/dist/esm2015/inputs/adapter.js.map +1 -1
  48. package/dist/esm2015/inputs/datasource.js.map +1 -1
  49. package/dist/esm2015/inputs/index.js +1 -1
  50. package/dist/esm2015/inputs/index.js.map +1 -1
  51. package/dist/esm2015/inputs/settings.js +8 -3
  52. package/dist/esm2015/inputs/settings.js.map +1 -1
  53. package/dist/esm2015/inputs/validation.js +8 -14
  54. package/dist/esm2015/inputs/validation.js.map +1 -1
  55. package/dist/esm2015/inputs/workflow.js.map +1 -1
  56. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  57. package/dist/esm2015/interfaces/index.js.map +1 -1
  58. package/dist/esm2015/interfaces/process.js.map +1 -1
  59. package/dist/esm2015/interfaces/routines.js.map +1 -1
  60. package/dist/esm2015/interfaces/settings.js.map +1 -1
  61. package/dist/esm2015/interfaces/validation.js.map +1 -1
  62. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  63. package/dist/esm2015/processes/adapter/append.js +2 -1
  64. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  65. package/dist/esm2015/processes/adapter/check.js +2 -1
  66. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  67. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  68. package/dist/esm2015/processes/adapter/fix.js +4 -2
  69. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  70. package/dist/esm2015/processes/adapter/insert.js +4 -3
  71. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  72. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  73. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  74. package/dist/esm2015/processes/adapter/remove.js +8 -5
  75. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  76. package/dist/esm2015/processes/adapter/replace.js +1 -1
  77. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  78. package/dist/esm2015/processes/adapter/reset.js +5 -5
  79. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  80. package/dist/esm2015/processes/adapter/update.js +4 -3
  81. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  82. package/dist/esm2015/processes/adjust.js +15 -10
  83. package/dist/esm2015/processes/adjust.js.map +1 -1
  84. package/dist/esm2015/processes/clip.js +4 -4
  85. package/dist/esm2015/processes/clip.js.map +1 -1
  86. package/dist/esm2015/processes/end.js +2 -1
  87. package/dist/esm2015/processes/end.js.map +1 -1
  88. package/dist/esm2015/processes/fetch.js +6 -4
  89. package/dist/esm2015/processes/fetch.js.map +1 -1
  90. package/dist/esm2015/processes/index.js +1 -1
  91. package/dist/esm2015/processes/index.js.map +1 -1
  92. package/dist/esm2015/processes/init.js.map +1 -1
  93. package/dist/esm2015/processes/misc/base.js +1 -2
  94. package/dist/esm2015/processes/misc/base.js.map +1 -1
  95. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  96. package/dist/esm2015/processes/postFetch.js +13 -12
  97. package/dist/esm2015/processes/postFetch.js.map +1 -1
  98. package/dist/esm2015/processes/preClip.js +6 -5
  99. package/dist/esm2015/processes/preClip.js.map +1 -1
  100. package/dist/esm2015/processes/preFetch.js +28 -15
  101. package/dist/esm2015/processes/preFetch.js.map +1 -1
  102. package/dist/esm2015/processes/render.js +6 -4
  103. package/dist/esm2015/processes/render.js.map +1 -1
  104. package/dist/esm2015/processes/scroll.js +19 -10
  105. package/dist/esm2015/processes/scroll.js.map +1 -1
  106. package/dist/esm2015/processes/start.js.map +1 -1
  107. package/dist/esm2015/scroller.js +14 -9
  108. package/dist/esm2015/scroller.js.map +1 -1
  109. package/dist/esm2015/version.js +1 -1
  110. package/dist/esm2015/version.js.map +1 -1
  111. package/dist/esm2015/workflow-transducer.js +3 -2
  112. package/dist/esm2015/workflow-transducer.js.map +1 -1
  113. package/dist/esm2015/workflow.js +28 -17
  114. package/dist/esm2015/workflow.js.map +1 -1
  115. package/dist/esm5/classes/adapter/context.js +2 -1
  116. package/dist/esm5/classes/adapter/context.js.map +1 -1
  117. package/dist/esm5/classes/adapter/props.js +2 -2
  118. package/dist/esm5/classes/adapter/props.js.map +1 -1
  119. package/dist/esm5/classes/adapter.js +22 -19
  120. package/dist/esm5/classes/adapter.js.map +1 -1
  121. package/dist/esm5/classes/buffer/cache.js +11 -9
  122. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  123. package/dist/esm5/classes/buffer/checkCall.js +4 -7
  124. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  125. package/dist/esm5/classes/buffer/defaultSize.js +2 -1
  126. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  127. package/dist/esm5/classes/buffer.js +15 -14
  128. package/dist/esm5/classes/buffer.js.map +1 -1
  129. package/dist/esm5/classes/datasource.js +20 -3
  130. package/dist/esm5/classes/datasource.js.map +1 -1
  131. package/dist/esm5/classes/domRoutines.js +14 -14
  132. package/dist/esm5/classes/domRoutines.js.map +1 -1
  133. package/dist/esm5/classes/logger.js +75 -34
  134. package/dist/esm5/classes/logger.js.map +1 -1
  135. package/dist/esm5/classes/paddings.js +6 -2
  136. package/dist/esm5/classes/paddings.js.map +1 -1
  137. package/dist/esm5/classes/reactive.js.map +1 -1
  138. package/dist/esm5/classes/settings.js.map +1 -1
  139. package/dist/esm5/classes/state/clip.js.map +1 -1
  140. package/dist/esm5/classes/state/fetch.js +4 -2
  141. package/dist/esm5/classes/state/fetch.js.map +1 -1
  142. package/dist/esm5/classes/state.js +6 -4
  143. package/dist/esm5/classes/state.js.map +1 -1
  144. package/dist/esm5/classes/viewport.js +3 -2
  145. package/dist/esm5/classes/viewport.js.map +1 -1
  146. package/dist/esm5/index.js +1 -1
  147. package/dist/esm5/index.js.map +1 -1
  148. package/dist/esm5/inputs/adapter.js +32 -12
  149. package/dist/esm5/inputs/adapter.js.map +1 -1
  150. package/dist/esm5/inputs/datasource.js.map +1 -1
  151. package/dist/esm5/inputs/index.js +1 -1
  152. package/dist/esm5/inputs/index.js.map +1 -1
  153. package/dist/esm5/inputs/settings.js +5 -0
  154. package/dist/esm5/inputs/settings.js.map +1 -1
  155. package/dist/esm5/inputs/validation.js +99 -93
  156. package/dist/esm5/inputs/validation.js.map +1 -1
  157. package/dist/esm5/inputs/workflow.js.map +1 -1
  158. package/dist/esm5/interfaces/datasource.js.map +1 -1
  159. package/dist/esm5/interfaces/index.js.map +1 -1
  160. package/dist/esm5/interfaces/process.js.map +1 -1
  161. package/dist/esm5/interfaces/routines.js.map +1 -1
  162. package/dist/esm5/interfaces/settings.js.map +1 -1
  163. package/dist/esm5/interfaces/validation.js.map +1 -1
  164. package/dist/esm5/interfaces/workflow.js.map +1 -1
  165. package/dist/esm5/processes/adapter/append.js +2 -1
  166. package/dist/esm5/processes/adapter/append.js.map +1 -1
  167. package/dist/esm5/processes/adapter/check.js +7 -6
  168. package/dist/esm5/processes/adapter/check.js.map +1 -1
  169. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  170. package/dist/esm5/processes/adapter/fix.js +4 -2
  171. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  172. package/dist/esm5/processes/adapter/insert.js +4 -3
  173. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  174. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  175. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  176. package/dist/esm5/processes/adapter/remove.js +11 -10
  177. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  178. package/dist/esm5/processes/adapter/replace.js +1 -1
  179. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  180. package/dist/esm5/processes/adapter/reset.js +5 -5
  181. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  182. package/dist/esm5/processes/adapter/update.js +20 -15
  183. package/dist/esm5/processes/adapter/update.js.map +1 -1
  184. package/dist/esm5/processes/adjust.js +16 -11
  185. package/dist/esm5/processes/adjust.js.map +1 -1
  186. package/dist/esm5/processes/clip.js +4 -4
  187. package/dist/esm5/processes/clip.js.map +1 -1
  188. package/dist/esm5/processes/end.js +2 -1
  189. package/dist/esm5/processes/end.js.map +1 -1
  190. package/dist/esm5/processes/fetch.js +5 -3
  191. package/dist/esm5/processes/fetch.js.map +1 -1
  192. package/dist/esm5/processes/index.js +1 -1
  193. package/dist/esm5/processes/index.js.map +1 -1
  194. package/dist/esm5/processes/init.js.map +1 -1
  195. package/dist/esm5/processes/misc/base.js +1 -2
  196. package/dist/esm5/processes/misc/base.js.map +1 -1
  197. package/dist/esm5/processes/misc/enums.js.map +1 -1
  198. package/dist/esm5/processes/postFetch.js +14 -15
  199. package/dist/esm5/processes/postFetch.js.map +1 -1
  200. package/dist/esm5/processes/preClip.js +5 -4
  201. package/dist/esm5/processes/preClip.js.map +1 -1
  202. package/dist/esm5/processes/preFetch.js +26 -14
  203. package/dist/esm5/processes/preFetch.js.map +1 -1
  204. package/dist/esm5/processes/render.js +7 -7
  205. package/dist/esm5/processes/render.js.map +1 -1
  206. package/dist/esm5/processes/scroll.js +18 -12
  207. package/dist/esm5/processes/scroll.js.map +1 -1
  208. package/dist/esm5/processes/start.js.map +1 -1
  209. package/dist/esm5/scroller.js +11 -7
  210. package/dist/esm5/scroller.js.map +1 -1
  211. package/dist/esm5/version.js +1 -1
  212. package/dist/esm5/version.js.map +1 -1
  213. package/dist/esm5/workflow-transducer.js +3 -2
  214. package/dist/esm5/workflow-transducer.js.map +1 -1
  215. package/dist/esm5/workflow.js +31 -25
  216. package/dist/esm5/workflow.js.map +1 -1
  217. package/dist/typings/classes/buffer/cache.d.ts +0 -1
  218. package/dist/typings/classes/datasource.d.ts +1 -1
  219. package/dist/typings/classes/domRoutines.d.ts +1 -1
  220. package/dist/typings/classes/logger.d.ts +4 -0
  221. package/dist/typings/classes/settings.d.ts +7 -0
  222. package/dist/typings/index.d.ts +3 -3
  223. package/dist/typings/inputs/index.d.ts +1 -1
  224. package/dist/typings/inputs/settings.d.ts +1 -0
  225. package/dist/typings/interfaces/index.d.ts +10 -10
  226. package/dist/typings/interfaces/settings.d.ts +1 -0
  227. package/dist/typings/processes/index.d.ts +1 -1
  228. package/dist/typings/processes/scroll.d.ts +1 -1
  229. package/dist/typings/workflow.d.ts +1 -0
  230. package/package.json +23 -22
@@ -1 +1 @@
1
- {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../../../src/processes/adapter/clip.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAsC,4BAA8C;IAApF;;IAcA,CAAC;IAZQ,YAAG,GAAV,UAAW,QAAkB,EAAE,OAA4B;QACjD,IAAA,MAAM,GAAK,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAA3C,CAA4C;QAE1D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAEpE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IAEH,eAAC;AAAD,CAAC,AAdD,CAAsC,yBAAyB,CAAC,cAAc,CAAC,IAAI,CAAC,GAcnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterClipOptions } from '../../interfaces/index';\r\n\r\nexport default class UserClip extends BaseAdapterProcessFactory(AdapterProcess.clip) {\r\n\r\n static run(scroller: Scroller, options?: AdapterClipOptions): void {\r\n const { params } = UserClip.parseInput(scroller, options);\r\n\r\n scroller.state.clip.forceForward = !(params && params.backwardOnly);\r\n scroller.state.clip.forceBackward = !(params && params.forwardOnly);\r\n\r\n scroller.workflow.call({\r\n process: UserClip.process,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../../../src/processes/adapter/clip.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAsC,4BAA8C;IAApF;;IAYA,CAAC;IAXQ,YAAG,GAAV,UAAW,QAAkB,EAAE,OAA4B;QACjD,IAAA,MAAM,GAAK,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAA3C,CAA4C;QAE1D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAEpE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IACH,eAAC;AAAD,CAAC,AAZD,CAAsC,yBAAyB,CAAC,cAAc,CAAC,IAAI,CAAC,GAYnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterClipOptions } from '../../interfaces/index';\r\n\r\nexport default class UserClip extends BaseAdapterProcessFactory(AdapterProcess.clip) {\r\n static run(scroller: Scroller, options?: AdapterClipOptions): void {\r\n const { params } = UserClip.parseInput(scroller, options);\r\n\r\n scroller.state.clip.forceForward = !(params && params.backwardOnly);\r\n scroller.state.clip.forceBackward = !(params && params.forwardOnly);\r\n\r\n scroller.workflow.call({\r\n process: UserClip.process,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n}\r\n"]}
@@ -37,7 +37,9 @@ var Fix = /** @class */ (function (_super) {
37
37
  case FixParams.scrollToItem:
38
38
  if (methodData.params) {
39
39
  var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];
40
- var options = scrollToItemOpt ? scrollToItemOpt.value : void 0;
40
+ var options = scrollToItemOpt
41
+ ? scrollToItemOpt.value
42
+ : void 0;
41
43
  return Fix.scrollToItem(scroller, value, options);
42
44
  }
43
45
  return;
@@ -69,7 +71,7 @@ var Fix = /** @class */ (function (_super) {
69
71
  Fix.updateItems = function (_a, value) {
70
72
  var buffer = _a.buffer, logger = _a.logger;
71
73
  var updateReference = false;
72
- var updater = function () { return updateReference = true; };
74
+ var updater = function () { return (updateReference = true); };
73
75
  buffer.items.forEach(function (item) { return value(item.get(), updater); });
74
76
  if (updateReference) {
75
77
  logger.log(function () { return 'update Buffer.items reference'; });
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../../../src/processes/adapter/fix.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { AdapterMethods } from '../../inputs/index';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport {\r\n ItemsPredicate,\r\n ItemsUpdater,\r\n AdapterFixOptions,\r\n IValidatedData,\r\n} from '../../interfaces/index';\r\n\r\nconst { [AdapterProcess.fix]: FixParams } = AdapterMethods;\r\n\r\nexport default class Fix extends BaseAdapterProcessFactory(AdapterProcess.fix) {\r\n\r\n static run(scroller: Scroller, options: AdapterFixOptions): void {\r\n const { workflow } = scroller;\r\n\r\n const { data, params } = Fix.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n Object.entries(data.params).forEach(([key, value]) => {\r\n if (value.isSet && value.isValid) {\r\n Fix.runByType(scroller, key, value.value, data);\r\n }\r\n });\r\n\r\n workflow.call({\r\n process: Fix.process,\r\n status: ProcessStatus.done\r\n });\r\n }\r\n\r\n static runByType(scroller: Scroller, token: string, value: unknown, methodData: IValidatedData): void {\r\n switch (token) {\r\n case FixParams.scrollPosition:\r\n return Fix.setScrollPosition(scroller, value as number);\r\n case FixParams.minIndex:\r\n return Fix.setMinIndex(scroller, value as number);\r\n case FixParams.maxIndex:\r\n return Fix.setMaxIndex(scroller, value as number);\r\n case FixParams.updater:\r\n return Fix.updateItems(scroller, value as ItemsUpdater);\r\n case FixParams.scrollToItem:\r\n if (methodData.params) {\r\n const scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];\r\n const options = scrollToItemOpt ? scrollToItemOpt.value as AdapterFixOptions['scrollToItemOpt'] : void 0;\r\n return Fix.scrollToItem(scroller, value as ItemsPredicate, options);\r\n }\r\n return;\r\n case FixParams.scrollToItemOpt:\r\n return;\r\n }\r\n }\r\n\r\n static setScrollPosition({ viewport }: Scroller, value: number): void {\r\n let result = value;\r\n if (value === -Infinity) {\r\n result = 0;\r\n } else if (value === Infinity) {\r\n result = viewport.getScrollableSize();\r\n }\r\n viewport.setPosition(result);\r\n }\r\n\r\n static setMinIndex({ buffer, settings }: Scroller, value: number): void {\r\n settings.minIndex = value;\r\n buffer.absMinIndex = value;\r\n }\r\n\r\n static setMaxIndex({ buffer, settings }: Scroller, value: number): void {\r\n settings.maxIndex = value;\r\n buffer.absMaxIndex = value;\r\n }\r\n\r\n static updateItems({ buffer, logger }: Scroller, value: ItemsUpdater): void {\r\n let updateReference = false;\r\n const updater = () => updateReference = true;\r\n buffer.items.forEach(item => value(item.get(), updater));\r\n if (updateReference) {\r\n logger.log(() => 'update Buffer.items reference');\r\n buffer.items = [...buffer.items];\r\n }\r\n }\r\n\r\n static scrollToItem(scroller: Scroller, value: ItemsPredicate, options?: boolean | ScrollIntoViewOptions): void {\r\n const found = scroller.buffer.items.find(item => value(item.get()));\r\n if (!found) {\r\n scroller.logger.log(() => 'scrollToItem cancelled, item not found');\r\n return;\r\n }\r\n found.scrollTo(options);\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../../../src/processes/adapter/fix.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { AdapterMethods } from '../../inputs/index';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport {\r\n ItemsPredicate,\r\n ItemsUpdater,\r\n AdapterFixOptions,\r\n IValidatedData\r\n} from '../../interfaces/index';\r\n\r\nconst { [AdapterProcess.fix]: FixParams } = AdapterMethods;\r\n\r\nexport default class Fix extends BaseAdapterProcessFactory(AdapterProcess.fix) {\r\n static run(scroller: Scroller, options: AdapterFixOptions): void {\r\n const { workflow } = scroller;\r\n\r\n const { data, params } = Fix.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n Object.entries(data.params).forEach(([key, value]) => {\r\n if (value.isSet && value.isValid) {\r\n Fix.runByType(scroller, key, value.value, data);\r\n }\r\n });\r\n\r\n workflow.call({\r\n process: Fix.process,\r\n status: ProcessStatus.done\r\n });\r\n }\r\n\r\n static runByType(\r\n scroller: Scroller,\r\n token: string,\r\n value: unknown,\r\n methodData: IValidatedData\r\n ): void {\r\n switch (token) {\r\n case FixParams.scrollPosition:\r\n return Fix.setScrollPosition(scroller, value as number);\r\n case FixParams.minIndex:\r\n return Fix.setMinIndex(scroller, value as number);\r\n case FixParams.maxIndex:\r\n return Fix.setMaxIndex(scroller, value as number);\r\n case FixParams.updater:\r\n return Fix.updateItems(scroller, value as ItemsUpdater);\r\n case FixParams.scrollToItem:\r\n if (methodData.params) {\r\n const scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];\r\n const options = scrollToItemOpt\r\n ? (scrollToItemOpt.value as AdapterFixOptions['scrollToItemOpt'])\r\n : void 0;\r\n return Fix.scrollToItem(scroller, value as ItemsPredicate, options);\r\n }\r\n return;\r\n case FixParams.scrollToItemOpt:\r\n return;\r\n }\r\n }\r\n\r\n static setScrollPosition({ viewport }: Scroller, value: number): void {\r\n let result = value;\r\n if (value === -Infinity) {\r\n result = 0;\r\n } else if (value === Infinity) {\r\n result = viewport.getScrollableSize();\r\n }\r\n viewport.setPosition(result);\r\n }\r\n\r\n static setMinIndex({ buffer, settings }: Scroller, value: number): void {\r\n settings.minIndex = value;\r\n buffer.absMinIndex = value;\r\n }\r\n\r\n static setMaxIndex({ buffer, settings }: Scroller, value: number): void {\r\n settings.maxIndex = value;\r\n buffer.absMaxIndex = value;\r\n }\r\n\r\n static updateItems({ buffer, logger }: Scroller, value: ItemsUpdater): void {\r\n let updateReference = false;\r\n const updater = () => (updateReference = true);\r\n buffer.items.forEach(item => value(item.get(), updater));\r\n if (updateReference) {\r\n logger.log(() => 'update Buffer.items reference');\r\n buffer.items = [...buffer.items];\r\n }\r\n }\r\n\r\n static scrollToItem(\r\n scroller: Scroller,\r\n value: ItemsPredicate,\r\n options?: boolean | ScrollIntoViewOptions\r\n ): void {\r\n const found = scroller.buffer.items.find(item => value(item.get()));\r\n if (!found) {\r\n scroller.logger.log(() => 'scrollToItem cancelled, item not found');\r\n return;\r\n }\r\n found.scrollTo(options);\r\n }\r\n}\r\n"]}
@@ -30,7 +30,7 @@ var Insert = /** @class */ (function (_super) {
30
30
  return true;
31
31
  };
32
32
  Insert.insertEmpty = function (scroller, params) {
33
- var buffer = scroller.buffer, routines = scroller.routines, fetch = scroller.state.fetch;
33
+ var buffer = scroller.buffer, routines = scroller.routines, state = scroller.state;
34
34
  if (buffer.size) {
35
35
  return false;
36
36
  }
@@ -38,7 +38,7 @@ var Insert = /** @class */ (function (_super) {
38
38
  if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
39
39
  return false;
40
40
  }
41
- fetch.fill(buffer.items, buffer.startIndex);
41
+ state.fetch.fill(buffer.items, buffer.startIndex);
42
42
  return true;
43
43
  };
44
44
  Insert.insertInBuffer = function (scroller, params) {
@@ -62,12 +62,13 @@ var Insert = /** @class */ (function (_super) {
62
62
  };
63
63
  Insert.insertVirtually = function (scroller, params) {
64
64
  var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
65
- var buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;
65
+ var buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
66
66
  var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
67
67
  var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);
68
68
  if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
69
69
  return false;
70
70
  }
71
+ var fetch = state.fetch;
71
72
  var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
72
73
  fetch.firstVisible.index = index;
73
74
  if (!isNaN(index)) {
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/processes/adapter/insert.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\r\n\r\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\r\n const { params } = Insert.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldInsert = Insert.doInsert(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { buffer, routines, state: { fetch } } = scroller;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n if (!buffer.fillEmpty(\r\n items, beforeIndex, afterIndex, !!decrease,\r\n (index, data) => new Item(index, data, routines)\r\n )) {\r\n return false;\r\n }\r\n fetch.fill(buffer.items, buffer.startIndex);\r\n\r\n return true;\r\n }\r\n\r\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\r\n const indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);\r\n\r\n if (params.virtualize || isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n const isBackward = Number.isInteger(beforeIndex) || before;\r\n\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index, data }) => {\r\n if (indexToInsert === $index) {\r\n return isBackward ? [...items, data] : [data, ...items];\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n const { buffer, state: { fetch }, viewport } = scroller;\r\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\r\n\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/processes/adapter/insert.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;IAAoC,0BAAgD;IAApF;;IA6FA,CAAC;IA5FQ,UAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAzC,CAA0C;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,MAA4B;QAC9D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC9C,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kBAAW,GAAlB,UAAmB,QAAkB,EAAE,MAA4B;QACzD,IAAA,MAAM,GAAsB,QAAQ,OAA9B,EAAE,QAAQ,GAAY,QAAQ,SAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACO,IAAA,WAAW,GAAkC,MAAM,YAAxC,EAAE,UAAU,GAAsB,MAAM,WAA5B,EAAE,KAAK,GAAe,MAAM,MAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QAC5D,IACE,CAAC,MAAM,CAAC,SAAS,CACf,KAAK,EACL,WAAW,EACX,UAAU,EACV,CAAC,CAAC,QAAQ,EACV,UAAC,KAAK,EAAE,IAAI,IAAK,OAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,EAA/B,CAA+B,CACjD,EACD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,qBAAc,GAArB,UAAsB,QAAkB,EAAE,MAA4B;QAC5D,IAAA,MAAM,GAAsD,MAAM,OAA5D,EAAE,KAAK,GAA+C,MAAM,MAArD,EAAE,WAAW,GAAkC,MAAM,YAAxC,EAAE,UAAU,GAAsB,MAAM,WAA5B,EAAE,KAAK,GAAe,MAAM,MAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QAC3E,IAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CACpD,MAAM,IAAI,KAAK,EACf,WAAW,EACX,UAAU,CACX,CAAC;QAEF,IAAI,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC;QAE3D,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAC,EAAgB;oBAAd,MAAM,YAAA,EAAE,IAAI,UAAA;gBACxB,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBAC7B,OAAO,UAAU,CAAC,CAAC,wCAAK,KAAK,YAAE,IAAI,UAAE,CAAC,gBAAE,IAAI,UAAK,KAAK,SAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAEM,sBAAe,GAAtB,UAAuB,QAAkB,EAAE,MAA4B;QAC7D,IAAA,WAAW,GAAkC,MAAM,YAAxC,EAAE,UAAU,GAAsB,MAAM,WAA5B,EAAE,KAAK,GAAe,MAAM,MAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QACpD,IAAA,MAAM,GAAsB,QAAQ,OAA9B,EAAE,KAAK,GAAe,QAAQ,MAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAc;QAC7C,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QACzF,IAAM,aAAa,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAW,CAAC;QAE9F,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,OAAO,KAAK,CAAC;QACf,CAAC;QAEO,IAAA,KAAK,GAAK,KAAK,MAAV,CAAW;QAClB,IAAA,KAAkB,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAA7E,KAAK,WAAA,EAAE,IAAI,UAAkE,CAAC;QACtF,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IACH,aAAC;AAAD,CAAC,AA7FD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GA6FnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\r\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\r\n const { params } = Insert.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldInsert = Insert.doInsert(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { buffer, routines, state } = scroller;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n if (\r\n !buffer.fillEmpty(\r\n items,\r\n beforeIndex,\r\n afterIndex,\r\n !!decrease,\r\n (index, data) => new Item(index, data, routines)\r\n )\r\n ) {\r\n return false;\r\n }\r\n state.fetch.fill(buffer.items, buffer.startIndex);\r\n\r\n return true;\r\n }\r\n\r\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\r\n const indexToInsert = scroller.buffer.getIndexToInsert(\r\n before || after,\r\n beforeIndex,\r\n afterIndex\r\n );\r\n\r\n if (params.virtualize || isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n const isBackward = Number.isInteger(beforeIndex) || before;\r\n\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index, data }) => {\r\n if (indexToInsert === $index) {\r\n return isBackward ? [...items, data] : [data, ...items];\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n const { buffer, state, viewport } = scroller;\r\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\r\n\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n\r\n const { fetch } = state;\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pause.js","sourceRoot":"","sources":["../../../../src/processes/adapter/pause.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzF;IAAmC,yBAA+C;IAAlF;;IAwBA,CAAC;IAtBQ,SAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAC1D,IAAM,MAAM,GAAG,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC;QAEjC,eAAe;QACf,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrB,OAAO,EAAE,cAAc,CAAC,KAAK;gBAC7B,MAAM,EAAE,aAAa,CAAC,IAAI;aAC3B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,cAAc,CAAC,KAAK;YAC7B,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IAEH,YAAC;AAAD,CAAC,AAxBD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAwBjF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\n\r\nexport default class Pause extends BaseAdapterProcessFactory(AdapterProcess.pause) {\r\n\r\n static run(scroller: Scroller, options?: { resume: boolean }): void {\r\n const resume = !!options?.resume;\r\n\r\n // pause branch\r\n if (!resume && !scroller.state.paused.get()) {\r\n scroller.logger.log('pause scroller');\r\n scroller.state.paused.set(true);\r\n scroller.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.done\r\n });\r\n return;\r\n }\r\n\r\n scroller.logger.log('resume scroller');\r\n scroller.state.paused.set(false);\r\n scroller.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"pause.js","sourceRoot":"","sources":["../../../../src/processes/adapter/pause.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzF;IAAmC,yBAA+C;IAAlF;;IAsBA,CAAC;IArBQ,SAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAC1D,IAAM,MAAM,GAAG,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC;QAEjC,eAAe;QACf,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrB,OAAO,EAAE,cAAc,CAAC,KAAK;gBAC7B,MAAM,EAAE,aAAa,CAAC,IAAI;aAC3B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,cAAc,CAAC,KAAK;YAC7B,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC,AAtBD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAsBjF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\n\r\nexport default class Pause extends BaseAdapterProcessFactory(AdapterProcess.pause) {\r\n static run(scroller: Scroller, options?: { resume: boolean }): void {\r\n const resume = !!options?.resume;\r\n\r\n // pause branch\r\n if (!resume && !scroller.state.paused.get()) {\r\n scroller.logger.log('pause scroller');\r\n scroller.state.paused.set(true);\r\n scroller.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.done\r\n });\r\n return;\r\n }\r\n\r\n scroller.logger.log('resume scroller');\r\n scroller.state.paused.set(false);\r\n scroller.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reload.js","sourceRoot":"","sources":["../../../../src/processes/adapter/reload.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAoC,0BAAgD;IAApF;;IAuBA,CAAC;IArBQ,UAAG,GAAV,UAAW,QAAkB,EAAE,WAAmB;QACxC,IAAA,QAAQ,GAAoB,QAAQ,SAA5B,EAAE,KAAK,GAAa,QAAQ,MAArB,EAAE,MAAM,GAAK,QAAQ,OAAb,CAAc;QAErC,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,aAAA,EAAE,EAAE,IAAI,CAAC,OAAvD,CAAwD;QAEtE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAElC,IAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IAEH,aAAC;AAAD,CAAC,AAvBD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GAuBnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { ProcessPayload } from '../../interfaces/index';\r\n\r\nexport default class Reload extends BaseAdapterProcessFactory(AdapterProcess.reload) {\r\n\r\n static run(scroller: Scroller, reloadIndex: number): void {\r\n const { viewport, state, buffer } = scroller;\r\n\r\n const { params } = Reload.parseInput(scroller, { reloadIndex }, true);\r\n\r\n buffer.reset(false, params ? params.reloadIndex : void 0);\r\n viewport.reset(buffer.startIndex);\r\n\r\n const payload: ProcessPayload = {};\r\n if (state.cycle.busy.get()) {\r\n payload.finalize = true;\r\n state.cycle.interrupter = Reload.process;\r\n }\r\n\r\n scroller.workflow.call({\r\n process: Reload.process,\r\n status: ProcessStatus.next,\r\n payload\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"reload.js","sourceRoot":"","sources":["../../../../src/processes/adapter/reload.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAoC,0BAAgD;IAApF;;IAqBA,CAAC;IApBQ,UAAG,GAAV,UAAW,QAAkB,EAAE,WAAmB;QACxC,IAAA,QAAQ,GAAoB,QAAQ,SAA5B,EAAE,KAAK,GAAa,QAAQ,MAArB,EAAE,MAAM,GAAK,QAAQ,OAAb,CAAc;QAErC,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,aAAA,EAAE,EAAE,IAAI,CAAC,OAAvD,CAAwD;QAEtE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAElC,IAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IACH,aAAC;AAAD,CAAC,AArBD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GAqBnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { ProcessPayload } from '../../interfaces/index';\r\n\r\nexport default class Reload extends BaseAdapterProcessFactory(AdapterProcess.reload) {\r\n static run(scroller: Scroller, reloadIndex: number): void {\r\n const { viewport, state, buffer } = scroller;\r\n\r\n const { params } = Reload.parseInput(scroller, { reloadIndex }, true);\r\n\r\n buffer.reset(false, params ? params.reloadIndex : void 0);\r\n viewport.reset(buffer.startIndex);\r\n\r\n const payload: ProcessPayload = {};\r\n if (state.cycle.busy.get()) {\r\n payload.finalize = true;\r\n state.cycle.interrupter = Reload.process;\r\n }\r\n\r\n scroller.workflow.call({\r\n process: Reload.process,\r\n status: ProcessStatus.next,\r\n payload\r\n });\r\n }\r\n}\r\n"]}
@@ -32,9 +32,7 @@ var Remove = /** @class */ (function (_super) {
32
32
  if (params.indexes && params.indexes.length) {
33
33
  var diffLeft_1 = (params.increase ? 1 : 0) * removed.length;
34
34
  var diffRight_1 = (params.increase ? 0 : -1) * removed.length;
35
- params.indexes = params.indexes.map(function (index) {
36
- return index + (index < removed[0] ? diffLeft_1 : diffRight_1);
37
- });
35
+ params.indexes = params.indexes.map(function (index) { return index + (index < removed[0] ? diffLeft_1 : diffRight_1); });
38
36
  }
39
37
  }
40
38
  var shouldVirtual = Remove.removeVirtualItems(scroller, params);
@@ -50,12 +48,9 @@ var Remove = /** @class */ (function (_super) {
50
48
  return [];
51
49
  }
52
50
  var newPredicate = function (item) {
53
- return (predicate && predicate(item)) ||
54
- (!!indexes && indexes.includes(item.$index));
51
+ return (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));
55
52
  };
56
- var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) {
57
- return newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc;
58
- }, []);
53
+ var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) { return (newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc); }, []);
59
54
  var updateOptions = {
60
55
  predicate: function (item) { return !newPredicate(item); },
61
56
  fixRight: increase
@@ -68,7 +63,7 @@ var Remove = /** @class */ (function (_super) {
68
63
  if (!indexes || !indexes.length) {
69
64
  return false;
70
65
  }
71
- var buffer = scroller.buffer, viewport = scroller.viewport, fetch = scroller.state.fetch;
66
+ var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
72
67
  // get items to remove
73
68
  var finiteAbsMinIndex = buffer.finiteAbsMinIndex, firstIndex = buffer.firstIndex, finiteAbsMaxIndex = buffer.finiteAbsMaxIndex, lastIndex = buffer.lastIndex;
74
69
  var toRemove = [];
@@ -88,6 +83,7 @@ var Remove = /** @class */ (function (_super) {
88
83
  return false;
89
84
  }
90
85
  // what should be shown after remove; Buffer removal has priority
86
+ var fetch = state.fetch;
91
87
  if (isNaN(fetch.firstVisible.index)) {
92
88
  var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
93
89
  fetch.firstVisible.index = index;
@@ -107,7 +103,12 @@ var Remove = /** @class */ (function (_super) {
107
103
  if (isNaN(firstVisible.index)) {
108
104
  return;
109
105
  }
110
- var shift = listToRemove.reduce(function (acc, index) { return acc + (((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)) ? 1 : 0); }, 0);
106
+ var shift = listToRemove.reduce(function (acc, index) {
107
+ return acc +
108
+ ((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)
109
+ ? 1
110
+ : 0);
111
+ }, 0);
111
112
  firstVisible.index = firstVisible.index + (increase ? shift : -shift);
112
113
  };
113
114
  return Remove;
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/processes/adapter/remove.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterRemoveOptions, AdapterUpdateOptions, ItemsPredicate } from '../../interfaces/index';\r\n\r\nexport default class Remove extends BaseAdapterProcessFactory(AdapterProcess.remove) {\r\n\r\n static run(scroller: Scroller, options: AdapterRemoveOptions): void {\r\n const { params } = Remove.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldRemove = Remove.doRemove(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Remove.process,\r\n status: shouldRemove ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doRemove(scroller: Scroller, params: AdapterRemoveOptions): boolean {\r\n const { fetch } = scroller.state;\r\n fetch.firstVisible.index = NaN;\r\n const removed = Remove.removeBufferedItems(scroller, params);\r\n const shouldBuffered = removed.length > 0;\r\n if (shouldBuffered) {\r\n // exclude just removed in-buffer indexes\r\n if (params.indexes && params.indexes.length) {\r\n params.indexes = params.indexes.filter(i => !removed.includes(i));\r\n }\r\n // shift virtual indexes that remain\r\n if (params.indexes && params.indexes.length) {\r\n const diffLeft = (params.increase ? 1 : 0) * removed.length;\r\n const diffRight = (params.increase ? 0 : -1) * removed.length;\r\n params.indexes = params.indexes.map(index =>\r\n index + (index < removed[0] ? diffLeft : diffRight)\r\n );\r\n }\r\n }\r\n const shouldVirtual = Remove.removeVirtualItems(scroller, params);\r\n if (!shouldBuffered && !shouldVirtual) {\r\n return false;\r\n }\r\n scroller.logger.stat('after remove');\r\n return true;\r\n }\r\n\r\n static removeBufferedItems(scroller: Scroller, options: AdapterRemoveOptions): number[] {\r\n const { predicate, indexes, increase } = options;\r\n if (!predicate && !indexes) {\r\n return [];\r\n }\r\n const newPredicate: ItemsPredicate = item =>\r\n (predicate && predicate(item)) ||\r\n (!!indexes && indexes.includes(item.$index));\r\n\r\n const indexesToRemove: number[] = scroller.buffer.items.reduce((acc, item) =>\r\n newPredicate(item) ? [...acc, item.$index] : acc, [] as number[]\r\n );\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: item => !newPredicate(item),\r\n fixRight: increase\r\n };\r\n Update.doUpdate(scroller, updateOptions);\r\n return indexesToRemove;\r\n }\r\n\r\n static removeVirtualItems(scroller: Scroller, params: AdapterRemoveOptions): boolean {\r\n const { indexes, increase } = params;\r\n if (!indexes || !indexes.length) {\r\n return false;\r\n }\r\n const { buffer, viewport, state: { fetch } } = scroller;\r\n\r\n // get items to remove\r\n const { finiteAbsMinIndex, firstIndex, finiteAbsMaxIndex, lastIndex } = buffer;\r\n const toRemove = [];\r\n for (let i = 0, len = indexes.length; i < len; i++) {\r\n const index = indexes[i];\r\n if (index >= finiteAbsMinIndex && !isNaN(firstIndex) && index < firstIndex) {\r\n toRemove.push(index); // backward;\r\n } else if (index <= finiteAbsMaxIndex && !isNaN(lastIndex) && index > lastIndex) {\r\n toRemove.push(index); // forward;\r\n } else {\r\n continue;\r\n }\r\n }\r\n\r\n if (!toRemove.length) {\r\n return false;\r\n }\r\n\r\n // what should be shown after remove; Buffer removal has priority\r\n if (isNaN(fetch.firstVisible.index)) {\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\r\n }\r\n }\r\n\r\n // virtual removal\r\n scroller.logger.log(() => `going to remove ${toRemove.length} item(s) virtually`);\r\n buffer.removeVirtually(toRemove, !!increase);\r\n buffer.checkDefaultSize();\r\n Remove.shiftFirstVisibleIndex(scroller, toRemove, !!increase);\r\n\r\n return true;\r\n }\r\n\r\n static shiftFirstVisibleIndex(scroller: Scroller, listToRemove: number[], increase: boolean): void {\r\n const { firstVisible } = scroller.state.fetch;\r\n if (isNaN(firstVisible.index)) {\r\n return;\r\n }\r\n const shift = listToRemove.reduce((acc, index) => acc + (\r\n ((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)) ? 1 : 0\r\n ), 0);\r\n firstVisible.index = firstVisible.index + (increase ? shift : -shift);\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/processes/adapter/remove.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterRemoveOptions, AdapterUpdateOptions, ItemsPredicate } from '../../interfaces/index';\r\n\r\nexport default class Remove extends BaseAdapterProcessFactory(AdapterProcess.remove) {\r\n static run(scroller: Scroller, options: AdapterRemoveOptions): void {\r\n const { params } = Remove.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldRemove = Remove.doRemove(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Remove.process,\r\n status: shouldRemove ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doRemove(scroller: Scroller, params: AdapterRemoveOptions): boolean {\r\n const { fetch } = scroller.state;\r\n fetch.firstVisible.index = NaN;\r\n const removed = Remove.removeBufferedItems(scroller, params);\r\n const shouldBuffered = removed.length > 0;\r\n if (shouldBuffered) {\r\n // exclude just removed in-buffer indexes\r\n if (params.indexes && params.indexes.length) {\r\n params.indexes = params.indexes.filter(i => !removed.includes(i));\r\n }\r\n // shift virtual indexes that remain\r\n if (params.indexes && params.indexes.length) {\r\n const diffLeft = (params.increase ? 1 : 0) * removed.length;\r\n const diffRight = (params.increase ? 0 : -1) * removed.length;\r\n params.indexes = params.indexes.map(\r\n index => index + (index < removed[0] ? diffLeft : diffRight)\r\n );\r\n }\r\n }\r\n const shouldVirtual = Remove.removeVirtualItems(scroller, params);\r\n if (!shouldBuffered && !shouldVirtual) {\r\n return false;\r\n }\r\n scroller.logger.stat('after remove');\r\n return true;\r\n }\r\n\r\n static removeBufferedItems(scroller: Scroller, options: AdapterRemoveOptions): number[] {\r\n const { predicate, indexes, increase } = options;\r\n if (!predicate && !indexes) {\r\n return [];\r\n }\r\n const newPredicate: ItemsPredicate = item =>\r\n (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));\r\n\r\n const indexesToRemove: number[] = scroller.buffer.items.reduce(\r\n (acc, item) => (newPredicate(item) ? [...acc, item.$index] : acc),\r\n [] as number[]\r\n );\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: item => !newPredicate(item),\r\n fixRight: increase\r\n };\r\n Update.doUpdate(scroller, updateOptions);\r\n return indexesToRemove;\r\n }\r\n\r\n static removeVirtualItems(scroller: Scroller, params: AdapterRemoveOptions): boolean {\r\n const { indexes, increase } = params;\r\n if (!indexes || !indexes.length) {\r\n return false;\r\n }\r\n const { buffer, viewport, state } = scroller;\r\n\r\n // get items to remove\r\n const { finiteAbsMinIndex, firstIndex, finiteAbsMaxIndex, lastIndex } = buffer;\r\n const toRemove = [];\r\n for (let i = 0, len = indexes.length; i < len; i++) {\r\n const index = indexes[i];\r\n if (index >= finiteAbsMinIndex && !isNaN(firstIndex) && index < firstIndex) {\r\n toRemove.push(index); // backward;\r\n } else if (index <= finiteAbsMaxIndex && !isNaN(lastIndex) && index > lastIndex) {\r\n toRemove.push(index); // forward;\r\n } else {\r\n continue;\r\n }\r\n }\r\n\r\n if (!toRemove.length) {\r\n return false;\r\n }\r\n\r\n // what should be shown after remove; Buffer removal has priority\r\n const { fetch } = state;\r\n if (isNaN(fetch.firstVisible.index)) {\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\r\n }\r\n }\r\n\r\n // virtual removal\r\n scroller.logger.log(() => `going to remove ${toRemove.length} item(s) virtually`);\r\n buffer.removeVirtually(toRemove, !!increase);\r\n buffer.checkDefaultSize();\r\n Remove.shiftFirstVisibleIndex(scroller, toRemove, !!increase);\r\n\r\n return true;\r\n }\r\n\r\n static shiftFirstVisibleIndex(\r\n scroller: Scroller,\r\n listToRemove: number[],\r\n increase: boolean\r\n ): void {\r\n const { firstVisible } = scroller.state.fetch;\r\n if (isNaN(firstVisible.index)) {\r\n return;\r\n }\r\n const shift = listToRemove.reduce(\r\n (acc, index) =>\r\n acc +\r\n ((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)\r\n ? 1\r\n : 0),\r\n 0\r\n );\r\n firstVisible.index = firstVisible.index + (increase ? shift : -shift);\r\n }\r\n}\r\n"]}
@@ -14,7 +14,7 @@ var Replace = /** @class */ (function (_super) {
14
14
  var shouldReplace = Replace.doReplace(scroller, params);
15
15
  scroller.workflow.call({
16
16
  process: Replace.process,
17
- status: shouldReplace ? ProcessStatus.next : ProcessStatus.done,
17
+ status: shouldReplace ? ProcessStatus.next : ProcessStatus.done
18
18
  });
19
19
  };
20
20
  Replace.doReplace = function (scroller, params) {
@@ -1 +1 @@
1
- {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../../../src/processes/adapter/replace.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAqC,2BAAiD;IAAtF;;IA2CA,CAAC;IAzCQ,WAAG,GAAV,UAAW,QAAkB,EAAE,OAA8B;QACnD,IAAA,MAAM,GAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAA1C,CAA2C;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE1D,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAChE,CAAC,CAAC;IACL,CAAC;IAEM,iBAAS,GAAhB,UAAiB,QAAkB,EAAE,MAA6B;QAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK;aACnC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC;aACtC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAC,EAAU;oBAAR,MAAM,YAAA;gBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,MAAM,CAAC,KAAK,CAAC;gBACtB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAEH,cAAC;AAAD,CAAC,AA3CD,CAAqC,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,GA2CrF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterReplaceOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Replace extends BaseAdapterProcessFactory(AdapterProcess.replace) {\r\n\r\n static run(scroller: Scroller, options: AdapterReplaceOptions): void {\r\n const { params } = Replace.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldReplace = Replace.doReplace(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Replace.process,\r\n status: shouldReplace ? ProcessStatus.next : ProcessStatus.done,\r\n });\r\n }\r\n\r\n static doReplace(scroller: Scroller, params: AdapterReplaceOptions): boolean {\r\n const toRemove = scroller.buffer.items\r\n .filter(item => params.predicate(item))\r\n .map(item => item.$index);\r\n\r\n if (!toRemove.length) {\r\n scroller.logger.log('no items to be replaced');\r\n return false;\r\n }\r\n\r\n let injected = false;\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index }) => {\r\n if (!toRemove.includes($index)) {\r\n return true;\r\n }\r\n if (!injected) {\r\n injected = true;\r\n return params.items;\r\n }\r\n return false;\r\n },\r\n fixRight: params.fixRight\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../../../src/processes/adapter/replace.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAqC,2BAAiD;IAAtF;;IAyCA,CAAC;IAxCQ,WAAG,GAAV,UAAW,QAAkB,EAAE,OAA8B;QACnD,IAAA,MAAM,GAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAA1C,CAA2C;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE1D,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAChE,CAAC,CAAC;IACL,CAAC;IAEM,iBAAS,GAAhB,UAAiB,QAAkB,EAAE,MAA6B;QAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK;aACnC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC;aACtC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAC,EAAU;oBAAR,MAAM,YAAA;gBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,MAAM,CAAC,KAAK,CAAC;gBACtB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IACH,cAAC;AAAD,CAAC,AAzCD,CAAqC,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,GAyCrF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterReplaceOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Replace extends BaseAdapterProcessFactory(AdapterProcess.replace) {\r\n static run(scroller: Scroller, options: AdapterReplaceOptions): void {\r\n const { params } = Replace.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldReplace = Replace.doReplace(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Replace.process,\r\n status: shouldReplace ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doReplace(scroller: Scroller, params: AdapterReplaceOptions): boolean {\r\n const toRemove = scroller.buffer.items\r\n .filter(item => params.predicate(item))\r\n .map(item => item.$index);\r\n\r\n if (!toRemove.length) {\r\n scroller.logger.log('no items to be replaced');\r\n return false;\r\n }\r\n\r\n let injected = false;\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index }) => {\r\n if (!toRemove.includes($index)) {\r\n return true;\r\n }\r\n if (!injected) {\r\n injected = true;\r\n return params.items;\r\n }\r\n return false;\r\n },\r\n fixRight: params.fixRight\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n}\r\n"]}
@@ -8,7 +8,7 @@ var Reset = /** @class */ (function (_super) {
8
8
  return _super !== null && _super.apply(this, arguments) || this;
9
9
  }
10
10
  Reset.run = function (scroller, options) {
11
- var datasource = scroller.datasource, buffer = scroller.buffer, paddings = scroller.viewport.paddings, cycle = scroller.state.cycle;
11
+ var datasource = scroller.datasource, buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
12
12
  if (options) {
13
13
  var data_1 = Reset.parseInput(scroller, options).data;
14
14
  if (!data_1.isValid) {
@@ -24,12 +24,12 @@ var Reset = /** @class */ (function (_super) {
24
24
  });
25
25
  }
26
26
  buffer.reset(true);
27
- paddings.backward.reset();
28
- paddings.forward.reset();
27
+ viewport.paddings.backward.reset();
28
+ viewport.paddings.forward.reset();
29
29
  var payload = { datasource: datasource };
30
- if (cycle.busy.get()) {
30
+ if (state.cycle.busy.get()) {
31
31
  payload.finalize = true;
32
- cycle.interrupter = Reset.process;
32
+ state.cycle.interrupter = Reset.process;
33
33
  }
34
34
  scroller.workflow.call({
35
35
  process: Reset.process,
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/processes/adapter/reset.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAmC,yBAA+C;IAAlF;;IAqCA,CAAC;IAnCQ,SAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,UAAU,GAAuD,QAAQ,WAA/D,EAAE,MAAM,GAA+C,QAAQ,OAAvD,EAAc,QAAQ,GAAyB,QAAQ,kBAAjC,EAAa,KAAK,GAAO,QAAQ,YAAf,CAAgB;QAElF,IAAI,OAAO,EAAE,CAAC;YACJ,IAAA,MAAI,GAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAxC,CAAyC;YACrD,IAAI,CAAC,MAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAM,aAAW,GAAG,OAAO,YAAY,UAAU,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;gBACtC,IAAM,KAAK,GAAG,MAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAM,EAAE,GAAG,UAAmD,CAAC;gBAC/D,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,aAAW,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5C,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEzB,IAAM,OAAO,GAAmB,EAAE,UAAU,YAAA,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IAEH,YAAC;AAAD,CAAC,AArCD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAqCjF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { DatasourceProps } from '../../inputs/index';\r\nimport { Datasource } from '../../classes/datasource';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { IDatasourceOptional, ProcessPayload } from '../../interfaces/index';\r\n\r\nexport default class Reset extends BaseAdapterProcessFactory(AdapterProcess.reset) {\r\n\r\n static run(scroller: Scroller, options?: IDatasourceOptional): void {\r\n const { datasource, buffer, viewport: { paddings }, state: { cycle } } = scroller;\r\n\r\n if (options) {\r\n const { data } = Reset.parseInput(scroller, options);\r\n if (!data.isValid) {\r\n return;\r\n }\r\n const constructed = options instanceof Datasource;\r\n Object.keys(DatasourceProps).forEach(key => {\r\n const param = data.params[key];\r\n const ds = datasource as unknown as { [key: string]: unknown };\r\n if (param.isSet || (constructed && ds[key])) {\r\n ds[key] = param.value;\r\n }\r\n });\r\n }\r\n\r\n buffer.reset(true);\r\n paddings.backward.reset();\r\n paddings.forward.reset();\r\n\r\n const payload: ProcessPayload = { datasource };\r\n if (cycle.busy.get()) {\r\n payload.finalize = true;\r\n cycle.interrupter = Reset.process;\r\n }\r\n\r\n scroller.workflow.call({\r\n process: Reset.process,\r\n status: ProcessStatus.next,\r\n payload\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/processes/adapter/reset.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAmC,yBAA+C;IAAlF;;IAkCA,CAAC;IAjCQ,SAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,UAAU,GAA8B,QAAQ,WAAtC,EAAE,MAAM,GAAsB,QAAQ,OAA9B,EAAE,QAAQ,GAAY,QAAQ,SAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QACzD,IAAI,OAAO,EAAE,CAAC;YACJ,IAAA,MAAI,GAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAxC,CAAyC;YACrD,IAAI,CAAC,MAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAM,aAAW,GAAG,OAAO,YAAY,UAAU,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;gBACtC,IAAM,KAAK,GAAG,MAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAM,EAAE,GAAG,UAAmD,CAAC;gBAC/D,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,aAAW,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5C,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAElC,IAAM,OAAO,GAAmB,EAAE,UAAU,YAAA,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1C,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC,AAlCD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAkCjF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { DatasourceProps } from '../../inputs/index';\r\nimport { Datasource } from '../../classes/datasource';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { IDatasourceOptional, ProcessPayload } from '../../interfaces/index';\r\n\r\nexport default class Reset extends BaseAdapterProcessFactory(AdapterProcess.reset) {\r\n static run(scroller: Scroller, options?: IDatasourceOptional): void {\r\n const { datasource, buffer, viewport, state } = scroller;\r\n if (options) {\r\n const { data } = Reset.parseInput(scroller, options);\r\n if (!data.isValid) {\r\n return;\r\n }\r\n const constructed = options instanceof Datasource;\r\n Object.keys(DatasourceProps).forEach(key => {\r\n const param = data.params[key];\r\n const ds = datasource as unknown as { [key: string]: unknown };\r\n if (param.isSet || (constructed && ds[key])) {\r\n ds[key] = param.value;\r\n }\r\n });\r\n }\r\n\r\n buffer.reset(true);\r\n viewport.paddings.backward.reset();\r\n viewport.paddings.forward.reset();\r\n\r\n const payload: ProcessPayload = { datasource };\r\n if (state.cycle.busy.get()) {\r\n payload.finalize = true;\r\n state.cycle.interrupter = Reset.process;\r\n }\r\n\r\n scroller.workflow.call({\r\n process: Reset.process,\r\n status: ProcessStatus.next,\r\n payload\r\n });\r\n }\r\n}\r\n"]}
@@ -19,7 +19,7 @@ var Update = /** @class */ (function (_super) {
19
19
  });
20
20
  };
21
21
  Update.doUpdate = function (scroller, params) {
22
- var buffer = scroller.buffer, viewport = scroller.viewport, fetch = scroller.state.fetch, routines = scroller.routines, logger = scroller.logger;
22
+ var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, routines = scroller.routines, logger = scroller.logger;
23
23
  if (!buffer.items) {
24
24
  logger.log(function () { return 'no items in Buffer'; });
25
25
  return false;
@@ -32,26 +32,31 @@ var Update = /** @class */ (function (_super) {
32
32
  delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;
33
33
  }
34
34
  toRemove.forEach(function (item) { return item.hide(); });
35
- logger.log(function () { return toRemove.length
36
- ? 'items to remove: [' + toRemove.map(function (_a) {
37
- var $index = _a.$index;
38
- return $index;
39
- }).join(',') + ']'
40
- : 'no items to remove'; });
41
- if (toRemove.length) { // insertions will be processed on render
35
+ logger.log(function () {
36
+ return toRemove.length
37
+ ? 'items to remove: [' + toRemove.map(function (_a) {
38
+ var $index = _a.$index;
39
+ return $index;
40
+ }).join(',') + ']'
41
+ : 'no items to remove';
42
+ });
43
+ if (toRemove.length) {
44
+ // insertions will be processed on render
42
45
  buffer.checkDefaultSize();
43
46
  }
44
47
  var toRender = buffer.items.filter(function (_a) {
45
48
  var toInsert = _a.toInsert;
46
49
  return toInsert;
47
50
  });
48
- logger.log(function () { return toRender.length
49
- ? 'items to render: [' + toRender.map(function (_a) {
50
- var $index = _a.$index;
51
- return $index;
52
- }).join(',') + ']'
53
- : 'no items to render'; });
54
- fetch.update(trackedIndex, delta, toRender, toRemove);
51
+ logger.log(function () {
52
+ return toRender.length
53
+ ? 'items to render: [' + toRender.map(function (_a) {
54
+ var $index = _a.$index;
55
+ return $index;
56
+ }).join(',') + ']'
57
+ : 'no items to render';
58
+ });
59
+ state.fetch.update(trackedIndex, delta, toRender, toRemove);
55
60
  return !!toRemove.length || !!toRender.length;
56
61
  };
57
62
  return Update;
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/processes/adapter/update.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Update extends BaseAdapterProcessFactory(AdapterProcess.update) {\r\n\r\n static run(scroller: Scroller, options: AdapterUpdateOptions): void {\r\n const { params } = Update.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldUpdate = Update.doUpdate(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Update.process,\r\n status: shouldUpdate ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doUpdate(scroller: Scroller, params: AdapterUpdateOptions): boolean {\r\n const { buffer, viewport, state: { fetch }, routines, logger } = scroller;\r\n if (!buffer.items) {\r\n logger.log(() => 'no items in Buffer');\r\n return false;\r\n }\r\n const { item: firstItem, index: firstIndex, diff: firstItemDiff } =\r\n viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n\r\n const { trackedIndex, toRemove } = buffer.updateItems(\r\n params.predicate,\r\n (index, data) => new Item(index, data, routines),\r\n firstIndex,\r\n !!params.fixRight\r\n );\r\n\r\n let delta = 0;\r\n const trackedItem = buffer.get(trackedIndex);\r\n if (firstItem && firstItem === trackedItem) {\r\n delta = - buffer.getSizeByIndex(trackedIndex) + firstItemDiff;\r\n }\r\n\r\n toRemove.forEach(item => item.hide());\r\n logger.log(() => toRemove.length\r\n ? 'items to remove: [' + toRemove.map(({ $index }) => $index).join(',') + ']'\r\n : 'no items to remove'\r\n );\r\n if (toRemove.length) { // insertions will be processed on render\r\n buffer.checkDefaultSize();\r\n }\r\n\r\n const toRender = buffer.items.filter(({ toInsert }) => toInsert);\r\n logger.log(() => toRender.length\r\n ? 'items to render: [' + toRender.map(({ $index }) => $index).join(',') + ']'\r\n : 'no items to render'\r\n );\r\n\r\n fetch.update(trackedIndex, delta, toRender, toRemove);\r\n return !!toRemove.length || !!toRender.length;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/processes/adapter/update.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Update extends BaseAdapterProcessFactory(AdapterProcess.update) {\r\n static run(scroller: Scroller, options: AdapterUpdateOptions): void {\r\n const { params } = Update.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldUpdate = Update.doUpdate(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Update.process,\r\n status: shouldUpdate ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doUpdate(scroller: Scroller, params: AdapterUpdateOptions): boolean {\r\n const { buffer, viewport, state, routines, logger } = scroller;\r\n if (!buffer.items) {\r\n logger.log(() => 'no items in Buffer');\r\n return false;\r\n }\r\n const {\r\n item: firstItem,\r\n index: firstIndex,\r\n diff: firstItemDiff\r\n } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n\r\n const { trackedIndex, toRemove } = buffer.updateItems(\r\n params.predicate,\r\n (index, data) => new Item(index, data, routines),\r\n firstIndex,\r\n !!params.fixRight\r\n );\r\n\r\n let delta = 0;\r\n const trackedItem = buffer.get(trackedIndex);\r\n if (firstItem && firstItem === trackedItem) {\r\n delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;\r\n }\r\n\r\n toRemove.forEach(item => item.hide());\r\n logger.log(() =>\r\n toRemove.length\r\n ? 'items to remove: [' + toRemove.map(({ $index }) => $index).join(',') + ']'\r\n : 'no items to remove'\r\n );\r\n if (toRemove.length) {\r\n // insertions will be processed on render\r\n buffer.checkDefaultSize();\r\n }\r\n\r\n const toRender = buffer.items.filter(({ toInsert }) => toInsert);\r\n logger.log(() =>\r\n toRender.length\r\n ? 'items to render: [' + toRender.map(({ $index }) => $index).join(',') + ']'\r\n : 'no items to render'\r\n );\r\n\r\n state.fetch.update(trackedIndex, delta, toRender, toRemove);\r\n return !!toRemove.length || !!toRender.length;\r\n }\r\n}\r\n"]}
@@ -7,10 +7,10 @@ var Adjust = /** @class */ (function (_super) {
7
7
  return _super !== null && _super.apply(this, arguments) || this;
8
8
  }
9
9
  Adjust.run = function (scroller) {
10
- var workflow = scroller.workflow, viewport = scroller.viewport, scroll = scroller.state.scroll;
11
- scroll.positionBeforeAdjust = viewport.scrollPosition;
10
+ var workflow = scroller.workflow, viewport = scroller.viewport, state = scroller.state;
11
+ state.scroll.positionBeforeAdjust = viewport.scrollPosition;
12
12
  Adjust.setPaddings(scroller);
13
- scroll.positionAfterAdjust = viewport.scrollPosition;
13
+ state.scroll.positionAfterAdjust = viewport.scrollPosition;
14
14
  // scroll position adjustments
15
15
  var position = Adjust.calculatePosition(scroller);
16
16
  // additional adjustment if the position can't be reached during the initial cycle
@@ -24,7 +24,7 @@ var Adjust = /** @class */ (function (_super) {
24
24
  });
25
25
  };
26
26
  Adjust.setPaddings = function (scroller) {
27
- var viewport = scroller.viewport, buffer = scroller.buffer, inverse = scroller.settings.inverse, fetch = scroller.state.fetch;
27
+ var viewport = scroller.viewport, buffer = scroller.buffer, settings = scroller.settings, state = scroller.state;
28
28
  var firstItem = buffer.getFirstVisibleItem();
29
29
  var lastItem = buffer.getLastVisibleItem();
30
30
  var first, last;
@@ -33,7 +33,8 @@ var Adjust = /** @class */ (function (_super) {
33
33
  last = lastItem.$index;
34
34
  }
35
35
  else {
36
- first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;
36
+ var fetch_1 = state.fetch;
37
+ first = !isNaN(fetch_1.firstVisible.index) ? fetch_1.firstVisible.index : buffer.startIndex;
37
38
  last = first - 1;
38
39
  }
39
40
  var _a = viewport.paddings, forward = _a.forward, backward = _a.backward;
@@ -50,14 +51,16 @@ var Adjust = /** @class */ (function (_super) {
50
51
  var scrollSize = bwdSize + bufferSize + fwdSize;
51
52
  var viewportSizeDiff = viewport.getSize() - scrollSize;
52
53
  if (viewportSizeDiff > 0) {
53
- if (inverse) {
54
+ if (settings.inverse) {
54
55
  bwdSize += viewportSizeDiff;
55
56
  }
56
57
  else {
57
58
  fwdSize += viewportSizeDiff;
58
59
  }
59
60
  scroller.logger.log(function () {
60
- return inverse ? 'backward' : 'forward' + " padding will be increased by ".concat(viewportSizeDiff, " to fill the viewport");
61
+ return settings.inverse
62
+ ? 'backward'
63
+ : 'forward' + " padding will be increased by ".concat(viewportSizeDiff, " to fill the viewport");
61
64
  });
62
65
  }
63
66
  backward.size = bwdSize;
@@ -65,7 +68,8 @@ var Adjust = /** @class */ (function (_super) {
65
68
  scroller.logger.stat('after paddings adjustments');
66
69
  };
67
70
  Adjust.calculatePosition = function (scroller) {
68
- var viewport = scroller.viewport, buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, render = _a.render, scroll = _a.scroll;
71
+ var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
72
+ var fetch = state.fetch, render = state.render, scroll = state.scroll;
69
73
  var position = viewport.paddings.backward.size;
70
74
  // increase the position to meet the expectation of the first visible item
71
75
  if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {
@@ -102,8 +106,8 @@ var Adjust = /** @class */ (function (_super) {
102
106
  return Math.round(position);
103
107
  };
104
108
  Adjust.setAdditionalForwardPadding = function (scroller, position) {
105
- var viewport = scroller.viewport, buffer = scroller.buffer, cycle = scroller.state.cycle;
106
- if (!cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
109
+ var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
110
+ if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
107
111
  return;
108
112
  }
109
113
  var diff = position - viewport.getMaxScrollPosition();
@@ -126,7 +130,8 @@ var Adjust = /** @class */ (function (_super) {
126
130
  }
127
131
  };
128
132
  Adjust.setPosition = function (scroller, position, done) {
129
- var scroll = scroller.state.scroll, viewport = scroller.viewport, routines = scroller.routines;
133
+ var state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
134
+ var scroll = state.scroll;
130
135
  if (!scroll.hasPositionChanged(position)) {
131
136
  return done();
132
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adjust.js","sourceRoot":"","sources":["../../../src/processes/adjust.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport End from './end';\r\n\r\nexport default class Adjust extends BaseProcessFactory(CommonProcess.adjust) {\r\n\r\n static run(scroller: Scroller): void {\r\n const { workflow, viewport, state: { scroll } } = scroller;\r\n\r\n scroll.positionBeforeAdjust = viewport.scrollPosition;\r\n Adjust.setPaddings(scroller);\r\n scroll.positionAfterAdjust = viewport.scrollPosition;\r\n\r\n // scroll position adjustments\r\n const position = Adjust.calculatePosition(scroller);\r\n\r\n // additional adjustment if the position can't be reached during the initial cycle\r\n Adjust.setAdditionalForwardPadding(scroller, position);\r\n\r\n // set new position using animation frame\r\n Adjust.setPosition(scroller, position, () =>\r\n workflow.call({\r\n process: Adjust.process,\r\n status: ProcessStatus.done\r\n })\r\n );\r\n }\r\n\r\n static setPaddings(scroller: Scroller): void {\r\n const { viewport, buffer, settings: { inverse }, state: { fetch } } = scroller;\r\n const firstItem = buffer.getFirstVisibleItem();\r\n const lastItem = buffer.getLastVisibleItem();\r\n let first, last;\r\n if (firstItem && lastItem) {\r\n first = firstItem.$index;\r\n last = lastItem.$index;\r\n } else {\r\n first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;\r\n last = first - 1;\r\n }\r\n const { forward, backward } = viewport.paddings;\r\n let index, bwdSize = 0, fwdSize = 0;\r\n\r\n // new backward and forward paddings size\r\n for (index = buffer.finiteAbsMinIndex; index < first; index++) {\r\n bwdSize += buffer.getSizeByIndex(index);\r\n }\r\n for (index = last + 1; index <= buffer.finiteAbsMaxIndex; index++) {\r\n fwdSize += buffer.getSizeByIndex(index);\r\n }\r\n\r\n // lack of items case\r\n const bufferSize = viewport.getScrollableSize() - forward.size - backward.size;\r\n const scrollSize = bwdSize + bufferSize + fwdSize;\r\n const viewportSizeDiff = viewport.getSize() - scrollSize;\r\n if (viewportSizeDiff > 0) {\r\n if (inverse) {\r\n bwdSize += viewportSizeDiff;\r\n } else {\r\n fwdSize += viewportSizeDiff;\r\n }\r\n scroller.logger.log(() =>\r\n inverse ? 'backward' : 'forward' + ` padding will be increased by ${viewportSizeDiff} to fill the viewport`\r\n );\r\n }\r\n\r\n backward.size = bwdSize;\r\n forward.size = fwdSize;\r\n\r\n scroller.logger.stat('after paddings adjustments');\r\n }\r\n\r\n static calculatePosition(scroller: Scroller): number {\r\n const { viewport, buffer, state: { fetch, render, scroll } } = scroller;\r\n let position = viewport.paddings.backward.size;\r\n\r\n // increase the position to meet the expectation of the first visible item\r\n if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {\r\n scroller.logger.log(`first index = ${fetch.firstVisible.index}, delta = ${fetch.firstVisible.delta}`);\r\n const shouldCheckPreSizeExpectation = fetch.shouldCheckPreSizeExpectation(buffer.lastIndex);\r\n buffer.items.forEach(item => {\r\n // 1) shift of the buffered items before the first visible item\r\n if (item.$index < fetch.firstVisible.index) {\r\n position += item.size;\r\n return;\r\n }\r\n // 2) delta of the first visible item\r\n if (item.$index === fetch.firstVisible.index && fetch.firstVisible.delta) {\r\n position -= fetch.firstVisible.delta;\r\n }\r\n // 3) difference between expected and real sizes of fetched items after the first visible\r\n if (shouldCheckPreSizeExpectation && item.preSize && fetch.items.includes(item)) {\r\n position += item.size - item.preSize;\r\n }\r\n });\r\n }\r\n\r\n // slow fetch/render case\r\n if (scroll.positionBeforeAsync !== null) {\r\n const diff = render.positionBefore - scroll.positionBeforeAsync;\r\n if (diff !== 0) {\r\n scroller.logger.log(`shift position due to fetch-render difference (${diff})`);\r\n position += diff;\r\n }\r\n }\r\n\r\n // increase the position due to viewport's offset\r\n if (viewport.offset > 0 && (position || fetch.positions.before)) {\r\n position += viewport.offset;\r\n }\r\n\r\n return Math.round(position);\r\n }\r\n\r\n static setAdditionalForwardPadding(scroller: Scroller, position: number): void {\r\n const { viewport, buffer, state: { cycle } } = scroller;\r\n if (!cycle.isInitial || !End.shouldContinueRun(scroller, null)) {\r\n return;\r\n }\r\n const diff = position - viewport.getMaxScrollPosition();\r\n if (diff <= 0) {\r\n return;\r\n }\r\n const last = buffer.getLastVisibleItem();\r\n if (!last) {\r\n return;\r\n }\r\n let size = 0;\r\n let index = last.$index + 1;\r\n while (size <= diff && index <= buffer.absMaxIndex) {\r\n size += buffer.getSizeByIndex(index++);\r\n }\r\n const shift = Math.min(size, diff);\r\n if (shift) {\r\n viewport.paddings.forward.size += shift;\r\n scroller.logger.log(`increase fwd padding due to lack of items (${diff} -> ${shift})`);\r\n }\r\n }\r\n\r\n static setPosition(scroller: Scroller, position: number, done: () => void): void {\r\n const { state: { scroll }, viewport, routines } = scroller;\r\n if (!scroll.hasPositionChanged(position)) {\r\n return done();\r\n }\r\n scroll.syntheticPosition = position;\r\n scroll.syntheticFulfill = false;\r\n\r\n scroll.cancelAnimation = routines.animate(() => {\r\n scroll.cancelAnimation = null;\r\n const inertiaDiff = (scroll.positionAfterAdjust as number) - viewport.scrollPosition;\r\n let diffLog = '';\r\n if (inertiaDiff > 0) {\r\n position -= inertiaDiff;\r\n scroll.syntheticPosition = position;\r\n diffLog = ` (-${inertiaDiff})`;\r\n }\r\n scroll.syntheticFulfill = true;\r\n viewport.scrollPosition = position;\r\n scroller.logger.stat('after scroll adjustment' + diffLog);\r\n done();\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"adjust.js","sourceRoot":"","sources":["../../../src/processes/adjust.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport End from './end';\r\n\r\nexport default class Adjust extends BaseProcessFactory(CommonProcess.adjust) {\r\n static run(scroller: Scroller): void {\r\n const { workflow, viewport, state } = scroller;\r\n\r\n state.scroll.positionBeforeAdjust = viewport.scrollPosition;\r\n Adjust.setPaddings(scroller);\r\n state.scroll.positionAfterAdjust = viewport.scrollPosition;\r\n\r\n // scroll position adjustments\r\n const position = Adjust.calculatePosition(scroller);\r\n\r\n // additional adjustment if the position can't be reached during the initial cycle\r\n Adjust.setAdditionalForwardPadding(scroller, position);\r\n\r\n // set new position using animation frame\r\n Adjust.setPosition(scroller, position, () =>\r\n workflow.call({\r\n process: Adjust.process,\r\n status: ProcessStatus.done\r\n })\r\n );\r\n }\r\n\r\n static setPaddings(scroller: Scroller): void {\r\n const { viewport, buffer, settings, state } = scroller;\r\n const firstItem = buffer.getFirstVisibleItem();\r\n const lastItem = buffer.getLastVisibleItem();\r\n let first, last;\r\n if (firstItem && lastItem) {\r\n first = firstItem.$index;\r\n last = lastItem.$index;\r\n } else {\r\n const { fetch } = state;\r\n first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;\r\n last = first - 1;\r\n }\r\n const { forward, backward } = viewport.paddings;\r\n let index,\r\n bwdSize = 0,\r\n fwdSize = 0;\r\n\r\n // new backward and forward paddings size\r\n for (index = buffer.finiteAbsMinIndex; index < first; index++) {\r\n bwdSize += buffer.getSizeByIndex(index);\r\n }\r\n for (index = last + 1; index <= buffer.finiteAbsMaxIndex; index++) {\r\n fwdSize += buffer.getSizeByIndex(index);\r\n }\r\n\r\n // lack of items case\r\n const bufferSize = viewport.getScrollableSize() - forward.size - backward.size;\r\n const scrollSize = bwdSize + bufferSize + fwdSize;\r\n const viewportSizeDiff = viewport.getSize() - scrollSize;\r\n if (viewportSizeDiff > 0) {\r\n if (settings.inverse) {\r\n bwdSize += viewportSizeDiff;\r\n } else {\r\n fwdSize += viewportSizeDiff;\r\n }\r\n scroller.logger.log(() =>\r\n settings.inverse\r\n ? 'backward'\r\n : 'forward' + ` padding will be increased by ${viewportSizeDiff} to fill the viewport`\r\n );\r\n }\r\n\r\n backward.size = bwdSize;\r\n forward.size = fwdSize;\r\n\r\n scroller.logger.stat('after paddings adjustments');\r\n }\r\n\r\n static calculatePosition(scroller: Scroller): number {\r\n const { viewport, buffer, state } = scroller;\r\n const { fetch, render, scroll } = state;\r\n let position = viewport.paddings.backward.size;\r\n\r\n // increase the position to meet the expectation of the first visible item\r\n if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {\r\n scroller.logger.log(\r\n `first index = ${fetch.firstVisible.index}, delta = ${fetch.firstVisible.delta}`\r\n );\r\n const shouldCheckPreSizeExpectation = fetch.shouldCheckPreSizeExpectation(buffer.lastIndex);\r\n buffer.items.forEach(item => {\r\n // 1) shift of the buffered items before the first visible item\r\n if (item.$index < fetch.firstVisible.index) {\r\n position += item.size;\r\n return;\r\n }\r\n // 2) delta of the first visible item\r\n if (item.$index === fetch.firstVisible.index && fetch.firstVisible.delta) {\r\n position -= fetch.firstVisible.delta;\r\n }\r\n // 3) difference between expected and real sizes of fetched items after the first visible\r\n if (shouldCheckPreSizeExpectation && item.preSize && fetch.items.includes(item)) {\r\n position += item.size - item.preSize;\r\n }\r\n });\r\n }\r\n\r\n // slow fetch/render case\r\n if (scroll.positionBeforeAsync !== null) {\r\n const diff = render.positionBefore - scroll.positionBeforeAsync;\r\n if (diff !== 0) {\r\n scroller.logger.log(`shift position due to fetch-render difference (${diff})`);\r\n position += diff;\r\n }\r\n }\r\n\r\n // increase the position due to viewport's offset\r\n if (viewport.offset > 0 && (position || fetch.positions.before)) {\r\n position += viewport.offset;\r\n }\r\n\r\n return Math.round(position);\r\n }\r\n\r\n static setAdditionalForwardPadding(scroller: Scroller, position: number): void {\r\n const { viewport, buffer, state } = scroller;\r\n if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {\r\n return;\r\n }\r\n const diff = position - viewport.getMaxScrollPosition();\r\n if (diff <= 0) {\r\n return;\r\n }\r\n const last = buffer.getLastVisibleItem();\r\n if (!last) {\r\n return;\r\n }\r\n let size = 0;\r\n let index = last.$index + 1;\r\n while (size <= diff && index <= buffer.absMaxIndex) {\r\n size += buffer.getSizeByIndex(index++);\r\n }\r\n const shift = Math.min(size, diff);\r\n if (shift) {\r\n viewport.paddings.forward.size += shift;\r\n scroller.logger.log(`increase fwd padding due to lack of items (${diff} -> ${shift})`);\r\n }\r\n }\r\n\r\n static setPosition(scroller: Scroller, position: number, done: () => void): void {\r\n const { state, viewport, routines } = scroller;\r\n const { scroll } = state;\r\n if (!scroll.hasPositionChanged(position)) {\r\n return done();\r\n }\r\n scroll.syntheticPosition = position;\r\n scroll.syntheticFulfill = false;\r\n\r\n scroll.cancelAnimation = routines.animate(() => {\r\n scroll.cancelAnimation = null;\r\n const inertiaDiff = (scroll.positionAfterAdjust as number) - viewport.scrollPosition;\r\n let diffLog = '';\r\n if (inertiaDiff > 0) {\r\n position -= inertiaDiff;\r\n scroll.syntheticPosition = position;\r\n diffLog = ` (-${inertiaDiff})`;\r\n }\r\n scroll.syntheticFulfill = true;\r\n viewport.scrollPosition = position;\r\n scroller.logger.stat('after scroll adjustment' + diffLog);\r\n done();\r\n });\r\n }\r\n}\r\n"]}
@@ -16,9 +16,9 @@ var Clip = /** @class */ (function (_super) {
16
16
  };
17
17
  Clip.doClip = function (scroller) {
18
18
  var _a;
19
- var buffer = scroller.buffer, paddings = scroller.viewport.paddings, clip = scroller.state.clip, logger = scroller.logger;
19
+ var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, logger = scroller.logger;
20
20
  var size = (_a = {}, _a[Direction.backward] = 0, _a[Direction.forward] = 0, _a);
21
- logger.stat("before clip (".concat(++clip.callCount, ")"));
21
+ logger.stat("before clip (".concat(++state.clip.callCount, ")"));
22
22
  var itemsToRemove = buffer.items.filter(function (item) {
23
23
  if (!item.toRemove) {
24
24
  return false;
@@ -29,10 +29,10 @@ var Clip = /** @class */ (function (_super) {
29
29
  });
30
30
  if (itemsToRemove.length) {
31
31
  if (size[Direction.backward]) {
32
- paddings.byDirection(Direction.backward).size += size[Direction.backward];
32
+ viewport.paddings.byDirection(Direction.backward).size += size[Direction.backward];
33
33
  }
34
34
  if (size[Direction.forward]) {
35
- paddings.byDirection(Direction.forward).size += size[Direction.forward];
35
+ viewport.paddings.byDirection(Direction.forward).size += size[Direction.forward];
36
36
  }
37
37
  if (scroller.settings.onBeforeClip) {
38
38
  scroller.settings.onBeforeClip(itemsToRemove.map(function (item) { return item.get(); }));