vscroll 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/bundles/vscroll.esm5.js +5704 -5694
  4. package/dist/bundles/vscroll.esm5.js.map +1 -1
  5. package/dist/bundles/vscroll.esm5.min.js +2 -2
  6. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.js +5193 -5183
  8. package/dist/bundles/vscroll.esm6.js.map +1 -1
  9. package/dist/bundles/vscroll.esm6.min.js +2 -2
  10. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.js +5712 -5703
  12. package/dist/bundles/vscroll.umd.js.map +1 -1
  13. package/dist/bundles/vscroll.umd.min.js +2 -2
  14. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/context.js +43 -43
  16. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  17. package/dist/esm2015/classes/adapter/props.js +300 -300
  18. package/dist/esm2015/classes/adapter/wanted.js +28 -28
  19. package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
  20. package/dist/esm2015/classes/adapter.js +487 -487
  21. package/dist/esm2015/classes/adapter.js.map +1 -1
  22. package/dist/esm2015/classes/buffer/cache.js +246 -246
  23. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  24. package/dist/esm2015/classes/buffer/checkCall.js +48 -48
  25. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  26. package/dist/esm2015/classes/buffer/defaultSize.js +127 -127
  27. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  28. package/dist/esm2015/classes/buffer.js +342 -342
  29. package/dist/esm2015/classes/buffer.js.map +1 -1
  30. package/dist/esm2015/classes/datasource.js +23 -24
  31. package/dist/esm2015/classes/datasource.js.map +1 -1
  32. package/dist/esm2015/classes/domRoutines.js +160 -160
  33. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  34. package/dist/esm2015/classes/item.js +61 -61
  35. package/dist/esm2015/classes/item.js.map +1 -1
  36. package/dist/esm2015/classes/logger.js +186 -186
  37. package/dist/esm2015/classes/logger.js.map +1 -1
  38. package/dist/esm2015/classes/paddings.js +72 -72
  39. package/dist/esm2015/classes/paddings.js.map +1 -1
  40. package/dist/esm2015/classes/reactive.js +54 -54
  41. package/dist/esm2015/classes/reactive.js.map +1 -1
  42. package/dist/esm2015/classes/settings.js +39 -39
  43. package/dist/esm2015/classes/settings.js.map +1 -1
  44. package/dist/esm2015/classes/state/clip.js +16 -16
  45. package/dist/esm2015/classes/state/clip.js.map +1 -1
  46. package/dist/esm2015/classes/state/cycle.js +60 -60
  47. package/dist/esm2015/classes/state/cycle.js.map +1 -1
  48. package/dist/esm2015/classes/state/fetch.js +122 -122
  49. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  50. package/dist/esm2015/classes/state/render.js +14 -14
  51. package/dist/esm2015/classes/state/scroll.js +30 -30
  52. package/dist/esm2015/classes/state/scroll.js.map +1 -1
  53. package/dist/esm2015/classes/state.js +62 -62
  54. package/dist/esm2015/classes/state.js.map +1 -1
  55. package/dist/esm2015/classes/viewport.js +72 -72
  56. package/dist/esm2015/classes/viewport.js.map +1 -1
  57. package/dist/esm2015/index.js +9 -9
  58. package/dist/esm2015/inputs/adapter.js +242 -232
  59. package/dist/esm2015/inputs/adapter.js.map +1 -1
  60. package/dist/esm2015/inputs/common.js +11 -11
  61. package/dist/esm2015/inputs/datasource.js +20 -20
  62. package/dist/esm2015/inputs/index.js +7 -7
  63. package/dist/esm2015/inputs/settings.js +146 -146
  64. package/dist/esm2015/inputs/validation.js +371 -374
  65. package/dist/esm2015/inputs/validation.js.map +1 -1
  66. package/dist/esm2015/inputs/workflow.js +30 -30
  67. package/dist/esm2015/interfaces/adapter.js +1 -1
  68. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  69. package/dist/esm2015/interfaces/datasource.js +1 -1
  70. package/dist/esm2015/interfaces/index.js +1 -1
  71. package/dist/esm2015/interfaces/item.js +1 -1
  72. package/dist/esm2015/interfaces/process.js +1 -1
  73. package/dist/esm2015/interfaces/process.js.map +1 -1
  74. package/dist/esm2015/interfaces/routines.js +1 -1
  75. package/dist/esm2015/interfaces/settings.js +1 -1
  76. package/dist/esm2015/interfaces/state.js +1 -1
  77. package/dist/esm2015/interfaces/validation.js +1 -1
  78. package/dist/esm2015/interfaces/workflow.js +1 -1
  79. package/dist/esm2015/processes/adapter/append.js +36 -35
  80. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  81. package/dist/esm2015/processes/adapter/check.js +32 -32
  82. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  83. package/dist/esm2015/processes/adapter/clip.js +12 -12
  84. package/dist/esm2015/processes/adapter/fix.js +77 -77
  85. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  86. package/dist/esm2015/processes/adapter/insert.js +73 -73
  87. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  88. package/dist/esm2015/processes/adapter/pause.js +22 -22
  89. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  90. package/dist/esm2015/processes/adapter/reload.js +19 -19
  91. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  92. package/dist/esm2015/processes/adapter/remove.js +102 -102
  93. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  94. package/dist/esm2015/processes/adapter/replace.js +39 -39
  95. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  96. package/dist/esm2015/processes/adapter/reset.js +35 -35
  97. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  98. package/dist/esm2015/processes/adapter/update.js +43 -43
  99. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  100. package/dist/esm2015/processes/adjust.js +141 -141
  101. package/dist/esm2015/processes/adjust.js.map +1 -1
  102. package/dist/esm2015/processes/clip.js +49 -49
  103. package/dist/esm2015/processes/clip.js.map +1 -1
  104. package/dist/esm2015/processes/end.js +52 -52
  105. package/dist/esm2015/processes/end.js.map +1 -1
  106. package/dist/esm2015/processes/fetch.js +91 -91
  107. package/dist/esm2015/processes/fetch.js.map +1 -1
  108. package/dist/esm2015/processes/index.js +24 -24
  109. package/dist/esm2015/processes/init.js +14 -14
  110. package/dist/esm2015/processes/misc/base.js +30 -30
  111. package/dist/esm2015/processes/misc/base.js.map +1 -1
  112. package/dist/esm2015/processes/misc/enums.js +36 -36
  113. package/dist/esm2015/processes/misc/index.js +2 -2
  114. package/dist/esm2015/processes/postFetch.js +65 -65
  115. package/dist/esm2015/processes/postFetch.js.map +1 -1
  116. package/dist/esm2015/processes/preClip.js +85 -85
  117. package/dist/esm2015/processes/preClip.js.map +1 -1
  118. package/dist/esm2015/processes/preFetch.js +240 -240
  119. package/dist/esm2015/processes/preFetch.js.map +1 -1
  120. package/dist/esm2015/processes/render.js +54 -54
  121. package/dist/esm2015/processes/render.js.map +1 -1
  122. package/dist/esm2015/processes/scroll.js +97 -97
  123. package/dist/esm2015/processes/scroll.js.map +1 -1
  124. package/dist/esm2015/processes/start.js +11 -11
  125. package/dist/esm2015/scroller.js +86 -86
  126. package/dist/esm2015/scroller.js.map +1 -1
  127. package/dist/esm2015/version.js +4 -4
  128. package/dist/esm2015/version.js.map +1 -1
  129. package/dist/esm2015/workflow-transducer.js +218 -218
  130. package/dist/esm2015/workflow-transducer.js.map +1 -1
  131. package/dist/esm2015/workflow.js +174 -174
  132. package/dist/esm2015/workflow.js.map +1 -1
  133. package/dist/esm5/classes/adapter/context.js +50 -50
  134. package/dist/esm5/classes/adapter/context.js.map +1 -1
  135. package/dist/esm5/classes/adapter/props.js +300 -300
  136. package/dist/esm5/classes/adapter/wanted.js +29 -29
  137. package/dist/esm5/classes/adapter/wanted.js.map +1 -1
  138. package/dist/esm5/classes/adapter.js +535 -535
  139. package/dist/esm5/classes/adapter.js.map +1 -1
  140. package/dist/esm5/classes/buffer/cache.js +260 -260
  141. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  142. package/dist/esm5/classes/buffer/checkCall.js +56 -56
  143. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  144. package/dist/esm5/classes/buffer/defaultSize.js +145 -145
  145. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  146. package/dist/esm5/classes/buffer.js +409 -409
  147. package/dist/esm5/classes/buffer.js.map +1 -1
  148. package/dist/esm5/classes/datasource.js +30 -31
  149. package/dist/esm5/classes/datasource.js.map +1 -1
  150. package/dist/esm5/classes/domRoutines.js +165 -165
  151. package/dist/esm5/classes/domRoutines.js.map +1 -1
  152. package/dist/esm5/classes/item.js +76 -76
  153. package/dist/esm5/classes/item.js.map +1 -1
  154. package/dist/esm5/classes/logger.js +210 -210
  155. package/dist/esm5/classes/logger.js.map +1 -1
  156. package/dist/esm5/classes/paddings.js +80 -80
  157. package/dist/esm5/classes/paddings.js.map +1 -1
  158. package/dist/esm5/classes/reactive.js +69 -69
  159. package/dist/esm5/classes/reactive.js.map +1 -1
  160. package/dist/esm5/classes/settings.js +47 -47
  161. package/dist/esm5/classes/settings.js.map +1 -1
  162. package/dist/esm5/classes/state/clip.js +22 -22
  163. package/dist/esm5/classes/state/clip.js.map +1 -1
  164. package/dist/esm5/classes/state/cycle.js +75 -75
  165. package/dist/esm5/classes/state/cycle.js.map +1 -1
  166. package/dist/esm5/classes/state/fetch.js +148 -148
  167. package/dist/esm5/classes/state/fetch.js.map +1 -1
  168. package/dist/esm5/classes/state/render.js +20 -20
  169. package/dist/esm5/classes/state/scroll.js +32 -32
  170. package/dist/esm5/classes/state/scroll.js.map +1 -1
  171. package/dist/esm5/classes/state.js +69 -69
  172. package/dist/esm5/classes/state.js.map +1 -1
  173. package/dist/esm5/classes/viewport.js +79 -79
  174. package/dist/esm5/classes/viewport.js.map +1 -1
  175. package/dist/esm5/index.js +9 -9
  176. package/dist/esm5/inputs/adapter.js +243 -233
  177. package/dist/esm5/inputs/adapter.js.map +1 -1
  178. package/dist/esm5/inputs/common.js +11 -11
  179. package/dist/esm5/inputs/datasource.js +21 -21
  180. package/dist/esm5/inputs/index.js +7 -7
  181. package/dist/esm5/inputs/settings.js +147 -147
  182. package/dist/esm5/inputs/validation.js +393 -396
  183. package/dist/esm5/inputs/validation.js.map +1 -1
  184. package/dist/esm5/inputs/workflow.js +31 -31
  185. package/dist/esm5/interfaces/adapter.js +1 -1
  186. package/dist/esm5/interfaces/adapter.js.map +1 -1
  187. package/dist/esm5/interfaces/datasource.js +1 -1
  188. package/dist/esm5/interfaces/index.js +1 -1
  189. package/dist/esm5/interfaces/item.js +1 -1
  190. package/dist/esm5/interfaces/process.js +1 -1
  191. package/dist/esm5/interfaces/process.js.map +1 -1
  192. package/dist/esm5/interfaces/routines.js +1 -1
  193. package/dist/esm5/interfaces/settings.js +1 -1
  194. package/dist/esm5/interfaces/state.js +1 -1
  195. package/dist/esm5/interfaces/validation.js +1 -1
  196. package/dist/esm5/interfaces/workflow.js +1 -1
  197. package/dist/esm5/processes/adapter/append.js +44 -43
  198. package/dist/esm5/processes/adapter/append.js.map +1 -1
  199. package/dist/esm5/processes/adapter/check.js +39 -39
  200. package/dist/esm5/processes/adapter/check.js.map +1 -1
  201. package/dist/esm5/processes/adapter/clip.js +19 -19
  202. package/dist/esm5/processes/adapter/fix.js +89 -89
  203. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  204. package/dist/esm5/processes/adapter/insert.js +81 -81
  205. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  206. package/dist/esm5/processes/adapter/pause.js +29 -29
  207. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  208. package/dist/esm5/processes/adapter/reload.js +26 -26
  209. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  210. package/dist/esm5/processes/adapter/remove.js +115 -115
  211. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  212. package/dist/esm5/processes/adapter/replace.js +47 -47
  213. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  214. package/dist/esm5/processes/adapter/reset.js +42 -42
  215. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  216. package/dist/esm5/processes/adapter/update.js +59 -59
  217. package/dist/esm5/processes/adapter/update.js.map +1 -1
  218. package/dist/esm5/processes/adjust.js +152 -152
  219. package/dist/esm5/processes/adjust.js.map +1 -1
  220. package/dist/esm5/processes/clip.js +60 -60
  221. package/dist/esm5/processes/clip.js.map +1 -1
  222. package/dist/esm5/processes/end.js +63 -63
  223. package/dist/esm5/processes/end.js.map +1 -1
  224. package/dist/esm5/processes/fetch.js +102 -102
  225. package/dist/esm5/processes/fetch.js.map +1 -1
  226. package/dist/esm5/processes/index.js +24 -24
  227. package/dist/esm5/processes/init.js +21 -21
  228. package/dist/esm5/processes/misc/base.js +44 -44
  229. package/dist/esm5/processes/misc/base.js.map +1 -1
  230. package/dist/esm5/processes/misc/enums.js +36 -36
  231. package/dist/esm5/processes/misc/index.js +2 -2
  232. package/dist/esm5/processes/postFetch.js +74 -74
  233. package/dist/esm5/processes/postFetch.js.map +1 -1
  234. package/dist/esm5/processes/preClip.js +94 -94
  235. package/dist/esm5/processes/preClip.js.map +1 -1
  236. package/dist/esm5/processes/preFetch.js +247 -247
  237. package/dist/esm5/processes/preFetch.js.map +1 -1
  238. package/dist/esm5/processes/render.js +63 -63
  239. package/dist/esm5/processes/render.js.map +1 -1
  240. package/dist/esm5/processes/scroll.js +107 -107
  241. package/dist/esm5/processes/scroll.js.map +1 -1
  242. package/dist/esm5/processes/start.js +18 -18
  243. package/dist/esm5/scroller.js +100 -100
  244. package/dist/esm5/scroller.js.map +1 -1
  245. package/dist/esm5/version.js +4 -4
  246. package/dist/esm5/version.js.map +1 -1
  247. package/dist/esm5/workflow-transducer.js +220 -220
  248. package/dist/esm5/workflow-transducer.js.map +1 -1
  249. package/dist/esm5/workflow.js +198 -198
  250. package/dist/esm5/workflow.js.map +1 -1
  251. package/dist/typings/classes/adapter/context.d.ts +4 -4
  252. package/dist/typings/classes/adapter/props.d.ts +52 -52
  253. package/dist/typings/classes/adapter/wanted.d.ts +14 -14
  254. package/dist/typings/classes/adapter.d.ts +79 -79
  255. package/dist/typings/classes/buffer/cache.d.ts +95 -95
  256. package/dist/typings/classes/buffer/checkCall.d.ts +12 -12
  257. package/dist/typings/classes/buffer/defaultSize.d.ts +32 -32
  258. package/dist/typings/classes/buffer.d.ts +64 -64
  259. package/dist/typings/classes/datasource.d.ts +11 -11
  260. package/dist/typings/classes/domRoutines.d.ts +36 -36
  261. package/dist/typings/classes/item.d.ts +28 -28
  262. package/dist/typings/classes/logger.d.ts +28 -28
  263. package/dist/typings/classes/paddings.d.ts +22 -22
  264. package/dist/typings/classes/reactive.d.ts +21 -21
  265. package/dist/typings/classes/settings.d.ts +119 -119
  266. package/dist/typings/classes/state/clip.d.ts +9 -9
  267. package/dist/typings/classes/state/cycle.d.ts +29 -29
  268. package/dist/typings/classes/state/fetch.d.ts +62 -62
  269. package/dist/typings/classes/state/render.d.ts +9 -9
  270. package/dist/typings/classes/state/scroll.d.ts +16 -16
  271. package/dist/typings/classes/state.d.ts +29 -29
  272. package/dist/typings/classes/viewport.d.ts +32 -32
  273. package/dist/typings/index.d.ts +10 -10
  274. package/dist/typings/inputs/adapter.d.ts +5 -5
  275. package/dist/typings/inputs/common.d.ts +9 -9
  276. package/dist/typings/inputs/datasource.d.ts +7 -7
  277. package/dist/typings/inputs/index.d.ts +7 -7
  278. package/dist/typings/inputs/settings.d.ts +41 -41
  279. package/dist/typings/inputs/validation.d.ts +82 -83
  280. package/dist/typings/inputs/workflow.d.ts +9 -9
  281. package/dist/typings/interfaces/adapter.d.ts +164 -161
  282. package/dist/typings/interfaces/datasource.d.ts +28 -28
  283. package/dist/typings/interfaces/index.d.ts +10 -10
  284. package/dist/typings/interfaces/item.d.ts +8 -8
  285. package/dist/typings/interfaces/process.d.ts +35 -35
  286. package/dist/typings/interfaces/routines.d.ts +166 -166
  287. package/dist/typings/interfaces/settings.d.ts +31 -31
  288. package/dist/typings/interfaces/state.d.ts +24 -24
  289. package/dist/typings/interfaces/validation.d.ts +33 -33
  290. package/dist/typings/interfaces/workflow.d.ts +53 -53
  291. package/dist/typings/processes/adapter/append.d.ts +14 -14
  292. package/dist/typings/processes/adapter/check.d.ts +6 -6
  293. package/dist/typings/processes/adapter/clip.d.ts +7 -7
  294. package/dist/typings/processes/adapter/fix.d.ts +13 -13
  295. package/dist/typings/processes/adapter/insert.d.ts +11 -11
  296. package/dist/typings/processes/adapter/pause.d.ts +8 -8
  297. package/dist/typings/processes/adapter/reload.d.ts +6 -6
  298. package/dist/typings/processes/adapter/remove.d.ts +11 -11
  299. package/dist/typings/processes/adapter/replace.d.ts +8 -8
  300. package/dist/typings/processes/adapter/reset.d.ts +7 -7
  301. package/dist/typings/processes/adapter/update.d.ts +8 -8
  302. package/dist/typings/processes/adjust.d.ts +10 -10
  303. package/dist/typings/processes/clip.d.ts +7 -7
  304. package/dist/typings/processes/end.d.ts +10 -10
  305. package/dist/typings/processes/fetch.d.ts +18 -18
  306. package/dist/typings/processes/index.d.ts +24 -24
  307. package/dist/typings/processes/init.d.ts +7 -7
  308. package/dist/typings/processes/misc/base.d.ts +4 -4
  309. package/dist/typings/processes/misc/enums.d.ts +33 -33
  310. package/dist/typings/processes/misc/index.d.ts +2 -2
  311. package/dist/typings/processes/postFetch.d.ts +8 -8
  312. package/dist/typings/processes/preClip.d.ts +12 -12
  313. package/dist/typings/processes/preFetch.d.ts +17 -17
  314. package/dist/typings/processes/render.d.ts +9 -9
  315. package/dist/typings/processes/scroll.d.ts +13 -13
  316. package/dist/typings/processes/start.d.ts +6 -6
  317. package/dist/typings/scroller.d.ts +26 -26
  318. package/dist/typings/version.d.ts +5 -5
  319. package/dist/typings/workflow-transducer.d.ts +2 -2
  320. package/dist/typings/workflow.d.ts +29 -29
  321. package/package.json +19 -18
@@ -1,37 +1,37 @@
1
- export var CommonProcess;
2
- (function (CommonProcess) {
3
- CommonProcess["init"] = "init";
4
- CommonProcess["scroll"] = "scroll";
5
- CommonProcess["start"] = "start";
6
- CommonProcess["preFetch"] = "preFetch";
7
- CommonProcess["fetch"] = "fetch";
8
- CommonProcess["postFetch"] = "postFetch";
9
- CommonProcess["render"] = "render";
10
- CommonProcess["preClip"] = "preClip";
11
- CommonProcess["clip"] = "clip";
12
- CommonProcess["adjust"] = "adjust";
13
- CommonProcess["end"] = "end";
14
- })(CommonProcess || (CommonProcess = {}));
15
- export var AdapterProcess;
16
- (function (AdapterProcess) {
17
- AdapterProcess["reset"] = "adapter.reset";
18
- AdapterProcess["reload"] = "adapter.reload";
19
- AdapterProcess["append"] = "adapter.append";
20
- AdapterProcess["prepend"] = "adapter.prepend";
21
- AdapterProcess["check"] = "adapter.check";
22
- AdapterProcess["remove"] = "adapter.remove";
23
- AdapterProcess["replace"] = "adapter.replace";
24
- AdapterProcess["update"] = "adapter.update";
25
- AdapterProcess["clip"] = "adapter.clip";
26
- AdapterProcess["insert"] = "adapter.insert";
27
- AdapterProcess["pause"] = "adapter.pause";
28
- AdapterProcess["fix"] = "adapter.fix";
29
- })(AdapterProcess || (AdapterProcess = {}));
30
- export var ProcessStatus;
31
- (function (ProcessStatus) {
32
- ProcessStatus["start"] = "start";
33
- ProcessStatus["next"] = "next";
34
- ProcessStatus["done"] = "done";
35
- ProcessStatus["error"] = "error";
36
- })(ProcessStatus || (ProcessStatus = {}));
1
+ export var CommonProcess;
2
+ (function (CommonProcess) {
3
+ CommonProcess["init"] = "init";
4
+ CommonProcess["scroll"] = "scroll";
5
+ CommonProcess["start"] = "start";
6
+ CommonProcess["preFetch"] = "preFetch";
7
+ CommonProcess["fetch"] = "fetch";
8
+ CommonProcess["postFetch"] = "postFetch";
9
+ CommonProcess["render"] = "render";
10
+ CommonProcess["preClip"] = "preClip";
11
+ CommonProcess["clip"] = "clip";
12
+ CommonProcess["adjust"] = "adjust";
13
+ CommonProcess["end"] = "end";
14
+ })(CommonProcess || (CommonProcess = {}));
15
+ export var AdapterProcess;
16
+ (function (AdapterProcess) {
17
+ AdapterProcess["reset"] = "adapter.reset";
18
+ AdapterProcess["reload"] = "adapter.reload";
19
+ AdapterProcess["append"] = "adapter.append";
20
+ AdapterProcess["prepend"] = "adapter.prepend";
21
+ AdapterProcess["check"] = "adapter.check";
22
+ AdapterProcess["remove"] = "adapter.remove";
23
+ AdapterProcess["replace"] = "adapter.replace";
24
+ AdapterProcess["update"] = "adapter.update";
25
+ AdapterProcess["clip"] = "adapter.clip";
26
+ AdapterProcess["insert"] = "adapter.insert";
27
+ AdapterProcess["pause"] = "adapter.pause";
28
+ AdapterProcess["fix"] = "adapter.fix";
29
+ })(AdapterProcess || (AdapterProcess = {}));
30
+ export var ProcessStatus;
31
+ (function (ProcessStatus) {
32
+ ProcessStatus["start"] = "start";
33
+ ProcessStatus["next"] = "next";
34
+ ProcessStatus["done"] = "done";
35
+ ProcessStatus["error"] = "error";
36
+ })(ProcessStatus || (ProcessStatus = {}));
37
37
  //# sourceMappingURL=enums.js.map
@@ -1,3 +1,3 @@
1
- export { CommonProcess, AdapterProcess, ProcessStatus } from './enums';
2
- export { BaseProcessFactory, BaseAdapterProcessFactory } from './base';
1
+ export { CommonProcess, AdapterProcess, ProcessStatus } from './enums';
2
+ export { BaseProcessFactory, BaseAdapterProcessFactory } from './base';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,75 +1,75 @@
1
- import { __extends } from "tslib";
2
- import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
3
- import { Item } from '../classes/item';
4
- var PostFetch = /** @class */ (function (_super) {
5
- __extends(PostFetch, _super);
6
- function PostFetch() {
7
- return _super !== null && _super.apply(this, arguments) || this;
8
- }
9
- PostFetch.run = function (scroller) {
10
- var workflow = scroller.workflow;
11
- if (PostFetch.setItems(scroller)) {
12
- PostFetch.setBufferLimits(scroller);
13
- workflow.call({
14
- process: PostFetch.process,
15
- status: scroller.state.fetch.hasNewItems
16
- ? ProcessStatus.next
17
- : ProcessStatus.done
18
- });
19
- }
20
- else {
21
- workflow.call({
22
- process: PostFetch.process,
23
- status: ProcessStatus.error,
24
- payload: { error: 'Can\'t set buffer items' }
25
- });
26
- }
27
- };
28
- PostFetch.setBufferLimits = function (scroller) {
29
- var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, innerLoop = _a.cycle.innerLoop;
30
- var items = fetch.items, first = fetch.first.index, last = fetch.last.index;
31
- if (!items.length) {
32
- if (last < buffer.minIndex || innerLoop.isInitial) {
33
- buffer.absMinIndex = buffer.minIndex;
34
- }
35
- if (first > buffer.maxIndex || innerLoop.isInitial) {
36
- buffer.absMaxIndex = buffer.maxIndex;
37
- }
38
- }
39
- else {
40
- var lastIndex = items.length - 1;
41
- if (first < items[0].$index) {
42
- buffer.absMinIndex = items[0].$index;
43
- }
44
- if (last > items[lastIndex].$index) {
45
- buffer.absMaxIndex = items[lastIndex].$index;
46
- }
47
- }
48
- };
49
- PostFetch.setItems = function (scroller) {
50
- var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle;
51
- var items = fetch.newItemsData;
52
- if (!items || !items.length) { // empty result
53
- return true;
54
- }
55
- // eof/bof case, need to shift fetch index if bof
56
- var fetchIndex = fetch.index;
57
- if (items.length < fetch.count) {
58
- if (cycle.innerLoop.isInitial) {
59
- // let's treat initial poor fetch as startIndex-bof
60
- fetchIndex = buffer.startIndex;
61
- }
62
- else if (fetch.first.index < buffer.minIndex) {
63
- // normal bof
64
- fetchIndex = buffer.firstIndex - items.length;
65
- }
66
- }
67
- fetch.items = items.map(function (item, index) {
68
- return new Item(fetchIndex + index, item, scroller.routines);
69
- });
70
- return buffer.setItems(fetch.items);
71
- };
72
- return PostFetch;
73
- }(BaseProcessFactory(CommonProcess.postFetch)));
74
- export default PostFetch;
1
+ import { __extends } from "tslib";
2
+ import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
3
+ import { Item } from '../classes/item';
4
+ var PostFetch = /** @class */ (function (_super) {
5
+ __extends(PostFetch, _super);
6
+ function PostFetch() {
7
+ return _super !== null && _super.apply(this, arguments) || this;
8
+ }
9
+ PostFetch.run = function (scroller) {
10
+ var workflow = scroller.workflow;
11
+ if (PostFetch.setItems(scroller)) {
12
+ PostFetch.setBufferLimits(scroller);
13
+ workflow.call({
14
+ process: PostFetch.process,
15
+ status: scroller.state.fetch.hasNewItems
16
+ ? ProcessStatus.next
17
+ : ProcessStatus.done
18
+ });
19
+ }
20
+ else {
21
+ workflow.call({
22
+ process: PostFetch.process,
23
+ status: ProcessStatus.error,
24
+ payload: { error: 'Can\'t set buffer items' }
25
+ });
26
+ }
27
+ };
28
+ PostFetch.setBufferLimits = function (scroller) {
29
+ var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, innerLoop = _a.cycle.innerLoop;
30
+ var items = fetch.items, first = fetch.first.index, last = fetch.last.index;
31
+ if (!items.length) {
32
+ if (last < buffer.minIndex || innerLoop.isInitial) {
33
+ buffer.absMinIndex = buffer.minIndex;
34
+ }
35
+ if (first > buffer.maxIndex || innerLoop.isInitial) {
36
+ buffer.absMaxIndex = buffer.maxIndex;
37
+ }
38
+ }
39
+ else {
40
+ var lastIndex = items.length - 1;
41
+ if (first < items[0].$index) {
42
+ buffer.absMinIndex = items[0].$index;
43
+ }
44
+ if (last > items[lastIndex].$index) {
45
+ buffer.absMaxIndex = items[lastIndex].$index;
46
+ }
47
+ }
48
+ };
49
+ PostFetch.setItems = function (scroller) {
50
+ var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle;
51
+ var items = fetch.newItemsData;
52
+ if (!items || !items.length) { // empty result
53
+ return true;
54
+ }
55
+ // eof/bof case, need to shift fetch index if bof
56
+ var fetchIndex = fetch.index;
57
+ if (items.length < fetch.count) {
58
+ if (cycle.innerLoop.isInitial) {
59
+ // let's treat initial poor fetch as startIndex-bof
60
+ fetchIndex = buffer.startIndex;
61
+ }
62
+ else if (fetch.first.index < buffer.minIndex) {
63
+ // normal bof
64
+ fetchIndex = buffer.firstIndex - items.length;
65
+ }
66
+ }
67
+ fetch.items = items.map(function (item, index) {
68
+ return new Item(fetchIndex + index, item, scroller.routines);
69
+ });
70
+ return buffer.setItems(fetch.items);
71
+ };
72
+ return PostFetch;
73
+ }(BaseProcessFactory(CommonProcess.postFetch)));
74
+ export default PostFetch;
75
75
  //# sourceMappingURL=postFetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postFetch.js","sourceRoot":"","sources":["../../../src/processes/postFetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Item } from '../classes/item';\r\n\r\nexport default class PostFetch extends BaseProcessFactory(CommonProcess.postFetch) {\r\n\r\n static run(scroller: Scroller): void {\r\n const { workflow } = scroller;\r\n if (PostFetch.setItems(scroller)) {\r\n PostFetch.setBufferLimits(scroller);\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: scroller.state.fetch.hasNewItems\r\n ? ProcessStatus.next\r\n : ProcessStatus.done\r\n });\r\n } else {\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error: 'Can\\'t set buffer items' }\r\n });\r\n }\r\n }\r\n\r\n static setBufferLimits(scroller: Scroller): void {\r\n const { buffer, state: { fetch, cycle: { innerLoop } } } = scroller;\r\n const { items, first: { index: first }, last: { index: last } } = fetch;\r\n if (!items.length) {\r\n if (last < buffer.minIndex || innerLoop.isInitial) {\r\n buffer.absMinIndex = buffer.minIndex;\r\n }\r\n if (first > buffer.maxIndex || innerLoop.isInitial) {\r\n buffer.absMaxIndex = buffer.maxIndex;\r\n }\r\n } else {\r\n const lastIndex = items.length - 1;\r\n if (first < items[0].$index) {\r\n buffer.absMinIndex = items[0].$index;\r\n }\r\n if (last > items[lastIndex].$index) {\r\n buffer.absMaxIndex = items[lastIndex].$index;\r\n }\r\n }\r\n }\r\n\r\n static setItems(scroller: Scroller): boolean {\r\n const { buffer, state: { fetch, cycle } } = scroller;\r\n const items = fetch.newItemsData;\r\n if (!items || !items.length) { // empty result\r\n return true;\r\n }\r\n // eof/bof case, need to shift fetch index if bof\r\n let fetchIndex = fetch.index;\r\n if (items.length < fetch.count) {\r\n if (cycle.innerLoop.isInitial) {\r\n // let's treat initial poor fetch as startIndex-bof\r\n fetchIndex = buffer.startIndex;\r\n } else if (fetch.first.index < buffer.minIndex) {\r\n // normal bof\r\n fetchIndex = buffer.firstIndex - items.length;\r\n }\r\n }\r\n fetch.items = items.map((item, index: number) =>\r\n new Item(fetchIndex + index, item, scroller.routines)\r\n );\r\n return buffer.setItems(fetch.items);\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"postFetch.js","sourceRoot":"","sources":["../../../src/processes/postFetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Item } from '../classes/item';\r\n\r\nexport default class PostFetch extends BaseProcessFactory(CommonProcess.postFetch) {\r\n\r\n static run(scroller: Scroller): void {\r\n const { workflow } = scroller;\r\n if (PostFetch.setItems(scroller)) {\r\n PostFetch.setBufferLimits(scroller);\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: scroller.state.fetch.hasNewItems\r\n ? ProcessStatus.next\r\n : ProcessStatus.done\r\n });\r\n } else {\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error: 'Can\\'t set buffer items' }\r\n });\r\n }\r\n }\r\n\r\n static setBufferLimits(scroller: Scroller): void {\r\n const { buffer, state: { fetch, cycle: { innerLoop } } } = scroller;\r\n const { items, first: { index: first }, last: { index: last } } = fetch;\r\n if (!items.length) {\r\n if (last < buffer.minIndex || innerLoop.isInitial) {\r\n buffer.absMinIndex = buffer.minIndex;\r\n }\r\n if (first > buffer.maxIndex || innerLoop.isInitial) {\r\n buffer.absMaxIndex = buffer.maxIndex;\r\n }\r\n } else {\r\n const lastIndex = items.length - 1;\r\n if (first < items[0].$index) {\r\n buffer.absMinIndex = items[0].$index;\r\n }\r\n if (last > items[lastIndex].$index) {\r\n buffer.absMaxIndex = items[lastIndex].$index;\r\n }\r\n }\r\n }\r\n\r\n static setItems(scroller: Scroller): boolean {\r\n const { buffer, state: { fetch, cycle } } = scroller;\r\n const items = fetch.newItemsData;\r\n if (!items || !items.length) { // empty result\r\n return true;\r\n }\r\n // eof/bof case, need to shift fetch index if bof\r\n let fetchIndex = fetch.index;\r\n if (items.length < fetch.count) {\r\n if (cycle.innerLoop.isInitial) {\r\n // let's treat initial poor fetch as startIndex-bof\r\n fetchIndex = buffer.startIndex;\r\n } else if (fetch.first.index < buffer.minIndex) {\r\n // normal bof\r\n fetchIndex = buffer.firstIndex - items.length;\r\n }\r\n }\r\n fetch.items = items.map((item, index: number) =>\r\n new Item(fetchIndex + index, item, scroller.routines)\r\n );\r\n return buffer.setItems(fetch.items);\r\n }\r\n\r\n}\r\n"]}
@@ -1,95 +1,95 @@
1
- import { __extends } from "tslib";
2
- import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
3
- import { Direction } from '../inputs/index';
4
- var PreClip = /** @class */ (function (_super) {
5
- __extends(PreClip, _super);
6
- function PreClip() {
7
- return _super !== null && _super.apply(this, arguments) || this;
8
- }
9
- PreClip.run = function (scroller) {
10
- PreClip.prepareClip(scroller);
11
- scroller.workflow.call({
12
- process: PreClip.process,
13
- status: ProcessStatus.next,
14
- payload: {
15
- doClip: scroller.state.clip.doClip
16
- }
17
- });
18
- };
19
- PreClip.prepareClip = function (scroller) {
20
- var _a = scroller.state, fetch = _a.fetch, clip = _a.clip;
21
- if (PreClip.shouldNotClip(scroller)) {
22
- return;
23
- }
24
- var firstIndex = fetch.first.indexBuffer;
25
- var lastIndex = fetch.last.indexBuffer;
26
- scroller.logger.log(function () {
27
- return "looking for ".concat(fetch.direction ? 'anti-' + fetch.direction + ' ' : '', "items ") +
28
- "that are out of [".concat(firstIndex, "..").concat(lastIndex, "] range");
29
- });
30
- if (PreClip.isBackward(scroller, firstIndex)) {
31
- PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);
32
- }
33
- if (PreClip.isForward(scroller, lastIndex)) {
34
- PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);
35
- }
36
- if (!clip.doClip) {
37
- scroller.logger.log('skipping clip [no items to clip]');
38
- }
39
- return;
40
- };
41
- PreClip.shouldNotClip = function (scroller) {
42
- var settings = scroller.settings, buffer = scroller.buffer, state = scroller.state;
43
- if (settings.infinite && !state.clip.force) {
44
- scroller.logger.log('skipping clip [infinite mode]');
45
- return true;
46
- }
47
- if (!buffer.size) {
48
- scroller.logger.log('skipping clip [empty buffer]');
49
- return true;
50
- }
51
- if (state.cycle.isInitial) {
52
- scroller.logger.log('skipping clip [initial cycle]');
53
- return true;
54
- }
55
- return false;
56
- };
57
- PreClip.isBackward = function (scroller, firstIndex) {
58
- var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;
59
- if (clip.force) {
60
- return clip.forceBackward;
61
- }
62
- if (fetch.direction !== Direction.backward) {
63
- if (firstIndex - 1 >= buffer.absMinIndex) {
64
- return true;
65
- }
66
- }
67
- return false;
68
- };
69
- PreClip.isForward = function (scroller, lastIndex) {
70
- var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;
71
- if (clip.force) {
72
- return clip.forceForward;
73
- }
74
- if (fetch.direction !== Direction.forward) {
75
- if (lastIndex + 1 <= buffer.absMaxIndex) {
76
- return true;
77
- }
78
- }
79
- return false;
80
- };
81
- PreClip.prepareClipByDirection = function (scroller, direction, edgeIndex) {
82
- var forward = direction === Direction.forward;
83
- scroller.buffer.items.forEach(function (item) {
84
- if ((!forward && item.$index < edgeIndex) ||
85
- (forward && item.$index > edgeIndex)) {
86
- item.toRemove = true;
87
- item.removeDirection = direction;
88
- scroller.state.clip.doClip = true;
89
- }
90
- });
91
- };
92
- return PreClip;
93
- }(BaseProcessFactory(CommonProcess.preClip)));
94
- export default PreClip;
1
+ import { __extends } from "tslib";
2
+ import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
3
+ import { Direction } from '../inputs/index';
4
+ var PreClip = /** @class */ (function (_super) {
5
+ __extends(PreClip, _super);
6
+ function PreClip() {
7
+ return _super !== null && _super.apply(this, arguments) || this;
8
+ }
9
+ PreClip.run = function (scroller) {
10
+ PreClip.prepareClip(scroller);
11
+ scroller.workflow.call({
12
+ process: PreClip.process,
13
+ status: ProcessStatus.next,
14
+ payload: {
15
+ doClip: scroller.state.clip.doClip
16
+ }
17
+ });
18
+ };
19
+ PreClip.prepareClip = function (scroller) {
20
+ var _a = scroller.state, fetch = _a.fetch, clip = _a.clip;
21
+ if (PreClip.shouldNotClip(scroller)) {
22
+ return;
23
+ }
24
+ var firstIndex = fetch.first.indexBuffer;
25
+ var lastIndex = fetch.last.indexBuffer;
26
+ scroller.logger.log(function () {
27
+ return "looking for ".concat(fetch.direction ? 'anti-' + fetch.direction + ' ' : '', "items ") +
28
+ "that are out of [".concat(firstIndex, "..").concat(lastIndex, "] range");
29
+ });
30
+ if (PreClip.isBackward(scroller, firstIndex)) {
31
+ PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);
32
+ }
33
+ if (PreClip.isForward(scroller, lastIndex)) {
34
+ PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);
35
+ }
36
+ if (!clip.doClip) {
37
+ scroller.logger.log('skipping clip [no items to clip]');
38
+ }
39
+ return;
40
+ };
41
+ PreClip.shouldNotClip = function (scroller) {
42
+ var settings = scroller.settings, buffer = scroller.buffer, state = scroller.state;
43
+ if (settings.infinite && !state.clip.force) {
44
+ scroller.logger.log('skipping clip [infinite mode]');
45
+ return true;
46
+ }
47
+ if (!buffer.size) {
48
+ scroller.logger.log('skipping clip [empty buffer]');
49
+ return true;
50
+ }
51
+ if (state.cycle.isInitial) {
52
+ scroller.logger.log('skipping clip [initial cycle]');
53
+ return true;
54
+ }
55
+ return false;
56
+ };
57
+ PreClip.isBackward = function (scroller, firstIndex) {
58
+ var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;
59
+ if (clip.force) {
60
+ return clip.forceBackward;
61
+ }
62
+ if (fetch.direction !== Direction.backward) {
63
+ if (firstIndex - 1 >= buffer.absMinIndex) {
64
+ return true;
65
+ }
66
+ }
67
+ return false;
68
+ };
69
+ PreClip.isForward = function (scroller, lastIndex) {
70
+ var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;
71
+ if (clip.force) {
72
+ return clip.forceForward;
73
+ }
74
+ if (fetch.direction !== Direction.forward) {
75
+ if (lastIndex + 1 <= buffer.absMaxIndex) {
76
+ return true;
77
+ }
78
+ }
79
+ return false;
80
+ };
81
+ PreClip.prepareClipByDirection = function (scroller, direction, edgeIndex) {
82
+ var forward = direction === Direction.forward;
83
+ scroller.buffer.items.forEach(function (item) {
84
+ if ((!forward && item.$index < edgeIndex) ||
85
+ (forward && item.$index > edgeIndex)) {
86
+ item.toRemove = true;
87
+ item.removeDirection = direction;
88
+ scroller.state.clip.doClip = true;
89
+ }
90
+ });
91
+ };
92
+ return PreClip;
93
+ }(BaseProcessFactory(CommonProcess.preClip)));
94
+ export default PreClip;
95
95
  //# sourceMappingURL=preClip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preClip.js","sourceRoot":"","sources":["../../../src/processes/preClip.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Direction } from '../inputs/index';\r\n\r\nexport default class PreClip extends BaseProcessFactory(CommonProcess.preClip) {\r\n\r\n static run(scroller: Scroller): void {\r\n PreClip.prepareClip(scroller);\r\n\r\n scroller.workflow.call({\r\n process: PreClip.process,\r\n status: ProcessStatus.next,\r\n payload: {\r\n doClip: scroller.state.clip.doClip\r\n }\r\n });\r\n }\r\n\r\n static prepareClip(scroller: Scroller): void {\r\n const { state: { fetch, clip } } = scroller;\r\n if (PreClip.shouldNotClip(scroller)) {\r\n return;\r\n }\r\n const firstIndex = fetch.first.indexBuffer;\r\n const lastIndex = fetch.last.indexBuffer;\r\n scroller.logger.log(() =>\r\n `looking for ${fetch.direction ? 'anti-' + fetch.direction + ' ' : ''}items ` +\r\n `that are out of [${firstIndex}..${lastIndex}] range`);\r\n if (PreClip.isBackward(scroller, firstIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);\r\n }\r\n if (PreClip.isForward(scroller, lastIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);\r\n }\r\n if (!clip.doClip) {\r\n scroller.logger.log('skipping clip [no items to clip]');\r\n }\r\n return;\r\n }\r\n\r\n static shouldNotClip(scroller: Scroller): boolean {\r\n const { settings, buffer, state } = scroller;\r\n if (settings.infinite && !state.clip.force) {\r\n scroller.logger.log('skipping clip [infinite mode]');\r\n return true;\r\n }\r\n if (!buffer.size) {\r\n scroller.logger.log('skipping clip [empty buffer]');\r\n return true;\r\n }\r\n if (state.cycle.isInitial) {\r\n scroller.logger.log('skipping clip [initial cycle]');\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static isBackward(scroller: Scroller, firstIndex: number): boolean {\r\n const { buffer, state: { clip, fetch } } = scroller;\r\n if (clip.force) {\r\n return clip.forceBackward;\r\n }\r\n if (fetch.direction !== Direction.backward) {\r\n if (firstIndex - 1 >= buffer.absMinIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static isForward(scroller: Scroller, lastIndex: number): boolean {\r\n const { buffer, state: { clip, fetch } } = scroller;\r\n if (clip.force) {\r\n return clip.forceForward;\r\n }\r\n if (fetch.direction !== Direction.forward) {\r\n if (lastIndex + 1 <= buffer.absMaxIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static prepareClipByDirection(scroller: Scroller, direction: Direction, edgeIndex: number): void {\r\n const forward = direction === Direction.forward;\r\n scroller.buffer.items.forEach(item => {\r\n if (\r\n (!forward && item.$index < edgeIndex) ||\r\n (forward && item.$index > edgeIndex)\r\n ) {\r\n item.toRemove = true;\r\n item.removeDirection = direction;\r\n scroller.state.clip.doClip = true;\r\n }\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"preClip.js","sourceRoot":"","sources":["../../../src/processes/preClip.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Direction } from '../inputs/index';\r\n\r\nexport default class PreClip extends BaseProcessFactory(CommonProcess.preClip) {\r\n\r\n static run(scroller: Scroller): void {\r\n PreClip.prepareClip(scroller);\r\n\r\n scroller.workflow.call({\r\n process: PreClip.process,\r\n status: ProcessStatus.next,\r\n payload: {\r\n doClip: scroller.state.clip.doClip\r\n }\r\n });\r\n }\r\n\r\n static prepareClip(scroller: Scroller): void {\r\n const { state: { fetch, clip } } = scroller;\r\n if (PreClip.shouldNotClip(scroller)) {\r\n return;\r\n }\r\n const firstIndex = fetch.first.indexBuffer;\r\n const lastIndex = fetch.last.indexBuffer;\r\n scroller.logger.log(() =>\r\n `looking for ${fetch.direction ? 'anti-' + fetch.direction + ' ' : ''}items ` +\r\n `that are out of [${firstIndex}..${lastIndex}] range`);\r\n if (PreClip.isBackward(scroller, firstIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);\r\n }\r\n if (PreClip.isForward(scroller, lastIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);\r\n }\r\n if (!clip.doClip) {\r\n scroller.logger.log('skipping clip [no items to clip]');\r\n }\r\n return;\r\n }\r\n\r\n static shouldNotClip(scroller: Scroller): boolean {\r\n const { settings, buffer, state } = scroller;\r\n if (settings.infinite && !state.clip.force) {\r\n scroller.logger.log('skipping clip [infinite mode]');\r\n return true;\r\n }\r\n if (!buffer.size) {\r\n scroller.logger.log('skipping clip [empty buffer]');\r\n return true;\r\n }\r\n if (state.cycle.isInitial) {\r\n scroller.logger.log('skipping clip [initial cycle]');\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static isBackward(scroller: Scroller, firstIndex: number): boolean {\r\n const { buffer, state: { clip, fetch } } = scroller;\r\n if (clip.force) {\r\n return clip.forceBackward;\r\n }\r\n if (fetch.direction !== Direction.backward) {\r\n if (firstIndex - 1 >= buffer.absMinIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static isForward(scroller: Scroller, lastIndex: number): boolean {\r\n const { buffer, state: { clip, fetch } } = scroller;\r\n if (clip.force) {\r\n return clip.forceForward;\r\n }\r\n if (fetch.direction !== Direction.forward) {\r\n if (lastIndex + 1 <= buffer.absMaxIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static prepareClipByDirection(scroller: Scroller, direction: Direction, edgeIndex: number): void {\r\n const forward = direction === Direction.forward;\r\n scroller.buffer.items.forEach(item => {\r\n if (\r\n (!forward && item.$index < edgeIndex) ||\r\n (forward && item.$index > edgeIndex)\r\n ) {\r\n item.toRemove = true;\r\n item.removeDirection = direction;\r\n scroller.state.clip.doClip = true;\r\n }\r\n });\r\n }\r\n\r\n}\r\n"]}