vscroll 1.6.3 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/dist/bundles/vscroll.esm5.js +5854 -5705
  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 +5341 -5194
  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 +5858 -5710
  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 +44 -43
  14. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/props.js +300 -300
  16. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  17. package/dist/esm2015/classes/adapter/wanted.js +28 -28
  18. package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
  19. package/dist/esm2015/classes/adapter.js +486 -487
  20. package/dist/esm2015/classes/adapter.js.map +1 -1
  21. package/dist/esm2015/classes/buffer/cache.js +249 -246
  22. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  23. package/dist/esm2015/classes/buffer/checkCall.js +47 -48
  24. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  25. package/dist/esm2015/classes/buffer/defaultSize.js +128 -127
  26. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  27. package/dist/esm2015/classes/buffer.js +343 -342
  28. package/dist/esm2015/classes/buffer.js.map +1 -1
  29. package/dist/esm2015/classes/datasource.js +36 -24
  30. package/dist/esm2015/classes/datasource.js.map +1 -1
  31. package/dist/esm2015/classes/domRoutines.js +160 -160
  32. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  33. package/dist/esm2015/classes/item.js +61 -61
  34. package/dist/esm2015/classes/item.js.map +1 -1
  35. package/dist/esm2015/classes/logger.js +229 -186
  36. package/dist/esm2015/classes/logger.js.map +1 -1
  37. package/dist/esm2015/classes/paddings.js +76 -72
  38. package/dist/esm2015/classes/paddings.js.map +1 -1
  39. package/dist/esm2015/classes/reactive.js +54 -54
  40. package/dist/esm2015/classes/reactive.js.map +1 -1
  41. package/dist/esm2015/classes/settings.js +39 -39
  42. package/dist/esm2015/classes/settings.js.map +1 -1
  43. package/dist/esm2015/classes/state/clip.js +16 -16
  44. package/dist/esm2015/classes/state/clip.js.map +1 -1
  45. package/dist/esm2015/classes/state/cycle.js +60 -60
  46. package/dist/esm2015/classes/state/cycle.js.map +1 -1
  47. package/dist/esm2015/classes/state/fetch.js +124 -122
  48. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  49. package/dist/esm2015/classes/state/render.js +14 -14
  50. package/dist/esm2015/classes/state/render.js.map +1 -1
  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 +64 -62
  54. package/dist/esm2015/classes/state.js.map +1 -1
  55. package/dist/esm2015/classes/viewport.js +74 -72
  56. package/dist/esm2015/classes/viewport.js.map +1 -1
  57. package/dist/esm2015/index.js +9 -9
  58. package/dist/esm2015/index.js.map +1 -1
  59. package/dist/esm2015/inputs/adapter.js +262 -242
  60. package/dist/esm2015/inputs/adapter.js.map +1 -1
  61. package/dist/esm2015/inputs/common.js +11 -11
  62. package/dist/esm2015/inputs/common.js.map +1 -1
  63. package/dist/esm2015/inputs/datasource.js +20 -20
  64. package/dist/esm2015/inputs/datasource.js.map +1 -1
  65. package/dist/esm2015/inputs/index.js +7 -7
  66. package/dist/esm2015/inputs/index.js.map +1 -1
  67. package/dist/esm2015/inputs/settings.js +151 -146
  68. package/dist/esm2015/inputs/settings.js.map +1 -1
  69. package/dist/esm2015/inputs/validation.js +365 -374
  70. package/dist/esm2015/inputs/validation.js.map +1 -1
  71. package/dist/esm2015/inputs/workflow.js +30 -30
  72. package/dist/esm2015/inputs/workflow.js.map +1 -1
  73. package/dist/esm2015/interfaces/adapter.js +1 -1
  74. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  75. package/dist/esm2015/interfaces/datasource.js +1 -1
  76. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  77. package/dist/esm2015/interfaces/index.js +1 -1
  78. package/dist/esm2015/interfaces/index.js.map +1 -1
  79. package/dist/esm2015/interfaces/item.js +1 -1
  80. package/dist/esm2015/interfaces/item.js.map +1 -1
  81. package/dist/esm2015/interfaces/process.js +1 -1
  82. package/dist/esm2015/interfaces/process.js.map +1 -1
  83. package/dist/esm2015/interfaces/routines.js +1 -1
  84. package/dist/esm2015/interfaces/routines.js.map +1 -1
  85. package/dist/esm2015/interfaces/settings.js +1 -1
  86. package/dist/esm2015/interfaces/settings.js.map +1 -1
  87. package/dist/esm2015/interfaces/state.js +1 -1
  88. package/dist/esm2015/interfaces/state.js.map +1 -1
  89. package/dist/esm2015/interfaces/validation.js +1 -1
  90. package/dist/esm2015/interfaces/validation.js.map +1 -1
  91. package/dist/esm2015/interfaces/workflow.js +1 -1
  92. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  93. package/dist/esm2015/processes/adapter/append.js +37 -36
  94. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  95. package/dist/esm2015/processes/adapter/check.js +33 -32
  96. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  97. package/dist/esm2015/processes/adapter/clip.js +12 -12
  98. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  99. package/dist/esm2015/processes/adapter/fix.js +79 -77
  100. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  101. package/dist/esm2015/processes/adapter/insert.js +74 -73
  102. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  103. package/dist/esm2015/processes/adapter/pause.js +22 -22
  104. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  105. package/dist/esm2015/processes/adapter/reload.js +19 -19
  106. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  107. package/dist/esm2015/processes/adapter/remove.js +105 -102
  108. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  109. package/dist/esm2015/processes/adapter/replace.js +39 -39
  110. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  111. package/dist/esm2015/processes/adapter/reset.js +35 -35
  112. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  113. package/dist/esm2015/processes/adapter/update.js +44 -43
  114. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  115. package/dist/esm2015/processes/adjust.js +146 -141
  116. package/dist/esm2015/processes/adjust.js.map +1 -1
  117. package/dist/esm2015/processes/clip.js +49 -49
  118. package/dist/esm2015/processes/clip.js.map +1 -1
  119. package/dist/esm2015/processes/end.js +53 -52
  120. package/dist/esm2015/processes/end.js.map +1 -1
  121. package/dist/esm2015/processes/fetch.js +93 -91
  122. package/dist/esm2015/processes/fetch.js.map +1 -1
  123. package/dist/esm2015/processes/index.js +24 -24
  124. package/dist/esm2015/processes/index.js.map +1 -1
  125. package/dist/esm2015/processes/init.js +14 -14
  126. package/dist/esm2015/processes/init.js.map +1 -1
  127. package/dist/esm2015/processes/misc/base.js +29 -30
  128. package/dist/esm2015/processes/misc/base.js.map +1 -1
  129. package/dist/esm2015/processes/misc/enums.js +36 -36
  130. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  131. package/dist/esm2015/processes/misc/index.js +2 -2
  132. package/dist/esm2015/processes/misc/index.js.map +1 -1
  133. package/dist/esm2015/processes/postFetch.js +66 -65
  134. package/dist/esm2015/processes/postFetch.js.map +1 -1
  135. package/dist/esm2015/processes/preClip.js +86 -85
  136. package/dist/esm2015/processes/preClip.js.map +1 -1
  137. package/dist/esm2015/processes/preFetch.js +253 -240
  138. package/dist/esm2015/processes/preFetch.js.map +1 -1
  139. package/dist/esm2015/processes/render.js +56 -54
  140. package/dist/esm2015/processes/render.js.map +1 -1
  141. package/dist/esm2015/processes/scroll.js +106 -97
  142. package/dist/esm2015/processes/scroll.js.map +1 -1
  143. package/dist/esm2015/processes/start.js +11 -11
  144. package/dist/esm2015/processes/start.js.map +1 -1
  145. package/dist/esm2015/scroller.js +91 -86
  146. package/dist/esm2015/scroller.js.map +1 -1
  147. package/dist/esm2015/version.js +4 -4
  148. package/dist/esm2015/version.js.map +1 -1
  149. package/dist/esm2015/workflow-transducer.js +219 -218
  150. package/dist/esm2015/workflow-transducer.js.map +1 -1
  151. package/dist/esm2015/workflow.js +185 -174
  152. package/dist/esm2015/workflow.js.map +1 -1
  153. package/dist/esm5/classes/adapter/context.js +51 -50
  154. package/dist/esm5/classes/adapter/context.js.map +1 -1
  155. package/dist/esm5/classes/adapter/props.js +300 -300
  156. package/dist/esm5/classes/adapter/props.js.map +1 -1
  157. package/dist/esm5/classes/adapter/wanted.js +29 -29
  158. package/dist/esm5/classes/adapter/wanted.js.map +1 -1
  159. package/dist/esm5/classes/adapter.js +538 -535
  160. package/dist/esm5/classes/adapter.js.map +1 -1
  161. package/dist/esm5/classes/buffer/cache.js +262 -260
  162. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  163. package/dist/esm5/classes/buffer/checkCall.js +53 -56
  164. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  165. package/dist/esm5/classes/buffer/defaultSize.js +146 -145
  166. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  167. package/dist/esm5/classes/buffer.js +410 -409
  168. package/dist/esm5/classes/buffer.js.map +1 -1
  169. package/dist/esm5/classes/datasource.js +47 -31
  170. package/dist/esm5/classes/datasource.js.map +1 -1
  171. package/dist/esm5/classes/domRoutines.js +165 -165
  172. package/dist/esm5/classes/domRoutines.js.map +1 -1
  173. package/dist/esm5/classes/item.js +76 -76
  174. package/dist/esm5/classes/item.js.map +1 -1
  175. package/dist/esm5/classes/logger.js +251 -210
  176. package/dist/esm5/classes/logger.js.map +1 -1
  177. package/dist/esm5/classes/paddings.js +84 -80
  178. package/dist/esm5/classes/paddings.js.map +1 -1
  179. package/dist/esm5/classes/reactive.js +69 -69
  180. package/dist/esm5/classes/reactive.js.map +1 -1
  181. package/dist/esm5/classes/settings.js +47 -47
  182. package/dist/esm5/classes/settings.js.map +1 -1
  183. package/dist/esm5/classes/state/clip.js +22 -22
  184. package/dist/esm5/classes/state/clip.js.map +1 -1
  185. package/dist/esm5/classes/state/cycle.js +75 -75
  186. package/dist/esm5/classes/state/cycle.js.map +1 -1
  187. package/dist/esm5/classes/state/fetch.js +150 -148
  188. package/dist/esm5/classes/state/fetch.js.map +1 -1
  189. package/dist/esm5/classes/state/render.js +20 -20
  190. package/dist/esm5/classes/state/render.js.map +1 -1
  191. package/dist/esm5/classes/state/scroll.js +32 -32
  192. package/dist/esm5/classes/state/scroll.js.map +1 -1
  193. package/dist/esm5/classes/state.js +71 -69
  194. package/dist/esm5/classes/state.js.map +1 -1
  195. package/dist/esm5/classes/viewport.js +80 -79
  196. package/dist/esm5/classes/viewport.js.map +1 -1
  197. package/dist/esm5/index.js +9 -9
  198. package/dist/esm5/index.js.map +1 -1
  199. package/dist/esm5/inputs/adapter.js +263 -243
  200. package/dist/esm5/inputs/adapter.js.map +1 -1
  201. package/dist/esm5/inputs/common.js +11 -11
  202. package/dist/esm5/inputs/common.js.map +1 -1
  203. package/dist/esm5/inputs/datasource.js +21 -21
  204. package/dist/esm5/inputs/datasource.js.map +1 -1
  205. package/dist/esm5/inputs/index.js +7 -7
  206. package/dist/esm5/inputs/index.js.map +1 -1
  207. package/dist/esm5/inputs/settings.js +152 -147
  208. package/dist/esm5/inputs/settings.js.map +1 -1
  209. package/dist/esm5/inputs/validation.js +399 -396
  210. package/dist/esm5/inputs/validation.js.map +1 -1
  211. package/dist/esm5/inputs/workflow.js +31 -31
  212. package/dist/esm5/inputs/workflow.js.map +1 -1
  213. package/dist/esm5/interfaces/adapter.js +1 -1
  214. package/dist/esm5/interfaces/adapter.js.map +1 -1
  215. package/dist/esm5/interfaces/datasource.js +1 -1
  216. package/dist/esm5/interfaces/datasource.js.map +1 -1
  217. package/dist/esm5/interfaces/index.js +1 -1
  218. package/dist/esm5/interfaces/index.js.map +1 -1
  219. package/dist/esm5/interfaces/item.js +1 -1
  220. package/dist/esm5/interfaces/item.js.map +1 -1
  221. package/dist/esm5/interfaces/process.js +1 -1
  222. package/dist/esm5/interfaces/process.js.map +1 -1
  223. package/dist/esm5/interfaces/routines.js +1 -1
  224. package/dist/esm5/interfaces/routines.js.map +1 -1
  225. package/dist/esm5/interfaces/settings.js +1 -1
  226. package/dist/esm5/interfaces/settings.js.map +1 -1
  227. package/dist/esm5/interfaces/state.js +1 -1
  228. package/dist/esm5/interfaces/state.js.map +1 -1
  229. package/dist/esm5/interfaces/validation.js +1 -1
  230. package/dist/esm5/interfaces/validation.js.map +1 -1
  231. package/dist/esm5/interfaces/workflow.js +1 -1
  232. package/dist/esm5/interfaces/workflow.js.map +1 -1
  233. package/dist/esm5/processes/adapter/append.js +45 -44
  234. package/dist/esm5/processes/adapter/append.js.map +1 -1
  235. package/dist/esm5/processes/adapter/check.js +40 -39
  236. package/dist/esm5/processes/adapter/check.js.map +1 -1
  237. package/dist/esm5/processes/adapter/clip.js +19 -19
  238. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  239. package/dist/esm5/processes/adapter/fix.js +91 -89
  240. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  241. package/dist/esm5/processes/adapter/insert.js +82 -81
  242. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  243. package/dist/esm5/processes/adapter/pause.js +29 -29
  244. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  245. package/dist/esm5/processes/adapter/reload.js +26 -26
  246. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  247. package/dist/esm5/processes/adapter/remove.js +116 -115
  248. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  249. package/dist/esm5/processes/adapter/replace.js +47 -47
  250. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  251. package/dist/esm5/processes/adapter/reset.js +42 -42
  252. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  253. package/dist/esm5/processes/adapter/update.js +64 -59
  254. package/dist/esm5/processes/adapter/update.js.map +1 -1
  255. package/dist/esm5/processes/adjust.js +157 -152
  256. package/dist/esm5/processes/adjust.js.map +1 -1
  257. package/dist/esm5/processes/clip.js +60 -60
  258. package/dist/esm5/processes/clip.js.map +1 -1
  259. package/dist/esm5/processes/end.js +64 -63
  260. package/dist/esm5/processes/end.js.map +1 -1
  261. package/dist/esm5/processes/fetch.js +104 -102
  262. package/dist/esm5/processes/fetch.js.map +1 -1
  263. package/dist/esm5/processes/index.js +24 -24
  264. package/dist/esm5/processes/index.js.map +1 -1
  265. package/dist/esm5/processes/init.js +21 -21
  266. package/dist/esm5/processes/init.js.map +1 -1
  267. package/dist/esm5/processes/misc/base.js +43 -44
  268. package/dist/esm5/processes/misc/base.js.map +1 -1
  269. package/dist/esm5/processes/misc/enums.js +36 -36
  270. package/dist/esm5/processes/misc/enums.js.map +1 -1
  271. package/dist/esm5/processes/misc/index.js +2 -2
  272. package/dist/esm5/processes/misc/index.js.map +1 -1
  273. package/dist/esm5/processes/postFetch.js +73 -74
  274. package/dist/esm5/processes/postFetch.js.map +1 -1
  275. package/dist/esm5/processes/preClip.js +95 -94
  276. package/dist/esm5/processes/preClip.js.map +1 -1
  277. package/dist/esm5/processes/preFetch.js +259 -247
  278. package/dist/esm5/processes/preFetch.js.map +1 -1
  279. package/dist/esm5/processes/render.js +63 -63
  280. package/dist/esm5/processes/render.js.map +1 -1
  281. package/dist/esm5/processes/scroll.js +113 -107
  282. package/dist/esm5/processes/scroll.js.map +1 -1
  283. package/dist/esm5/processes/start.js +18 -18
  284. package/dist/esm5/processes/start.js.map +1 -1
  285. package/dist/esm5/scroller.js +104 -100
  286. package/dist/esm5/scroller.js.map +1 -1
  287. package/dist/esm5/version.js +4 -4
  288. package/dist/esm5/version.js.map +1 -1
  289. package/dist/esm5/workflow-transducer.js +221 -220
  290. package/dist/esm5/workflow-transducer.js.map +1 -1
  291. package/dist/esm5/workflow.js +204 -198
  292. package/dist/esm5/workflow.js.map +1 -1
  293. package/dist/typings/classes/adapter/context.d.ts +4 -4
  294. package/dist/typings/classes/adapter/props.d.ts +52 -52
  295. package/dist/typings/classes/adapter/wanted.d.ts +14 -14
  296. package/dist/typings/classes/adapter.d.ts +79 -79
  297. package/dist/typings/classes/buffer/cache.d.ts +94 -95
  298. package/dist/typings/classes/buffer/checkCall.d.ts +12 -12
  299. package/dist/typings/classes/buffer/defaultSize.d.ts +32 -32
  300. package/dist/typings/classes/buffer.d.ts +64 -64
  301. package/dist/typings/classes/datasource.d.ts +11 -11
  302. package/dist/typings/classes/domRoutines.d.ts +36 -36
  303. package/dist/typings/classes/item.d.ts +28 -28
  304. package/dist/typings/classes/logger.d.ts +32 -28
  305. package/dist/typings/classes/paddings.d.ts +22 -22
  306. package/dist/typings/classes/reactive.d.ts +21 -21
  307. package/dist/typings/classes/settings.d.ts +126 -119
  308. package/dist/typings/classes/state/clip.d.ts +9 -9
  309. package/dist/typings/classes/state/cycle.d.ts +29 -29
  310. package/dist/typings/classes/state/fetch.d.ts +62 -62
  311. package/dist/typings/classes/state/render.d.ts +9 -9
  312. package/dist/typings/classes/state/scroll.d.ts +16 -16
  313. package/dist/typings/classes/state.d.ts +29 -29
  314. package/dist/typings/classes/viewport.d.ts +32 -32
  315. package/dist/typings/index.d.ts +10 -10
  316. package/dist/typings/inputs/adapter.d.ts +5 -5
  317. package/dist/typings/inputs/common.d.ts +9 -9
  318. package/dist/typings/inputs/datasource.d.ts +7 -7
  319. package/dist/typings/inputs/index.d.ts +7 -7
  320. package/dist/typings/inputs/settings.d.ts +42 -41
  321. package/dist/typings/inputs/validation.d.ts +82 -83
  322. package/dist/typings/inputs/workflow.d.ts +9 -9
  323. package/dist/typings/interfaces/adapter.d.ts +164 -164
  324. package/dist/typings/interfaces/datasource.d.ts +28 -28
  325. package/dist/typings/interfaces/index.d.ts +10 -10
  326. package/dist/typings/interfaces/item.d.ts +8 -8
  327. package/dist/typings/interfaces/process.d.ts +35 -35
  328. package/dist/typings/interfaces/routines.d.ts +166 -166
  329. package/dist/typings/interfaces/settings.d.ts +32 -31
  330. package/dist/typings/interfaces/state.d.ts +24 -24
  331. package/dist/typings/interfaces/validation.d.ts +33 -33
  332. package/dist/typings/interfaces/workflow.d.ts +53 -53
  333. package/dist/typings/processes/adapter/append.d.ts +14 -14
  334. package/dist/typings/processes/adapter/check.d.ts +6 -6
  335. package/dist/typings/processes/adapter/clip.d.ts +7 -7
  336. package/dist/typings/processes/adapter/fix.d.ts +13 -13
  337. package/dist/typings/processes/adapter/insert.d.ts +11 -11
  338. package/dist/typings/processes/adapter/pause.d.ts +8 -8
  339. package/dist/typings/processes/adapter/reload.d.ts +6 -6
  340. package/dist/typings/processes/adapter/remove.d.ts +11 -11
  341. package/dist/typings/processes/adapter/replace.d.ts +8 -8
  342. package/dist/typings/processes/adapter/reset.d.ts +7 -7
  343. package/dist/typings/processes/adapter/update.d.ts +8 -8
  344. package/dist/typings/processes/adjust.d.ts +10 -10
  345. package/dist/typings/processes/clip.d.ts +7 -7
  346. package/dist/typings/processes/end.d.ts +10 -10
  347. package/dist/typings/processes/fetch.d.ts +18 -18
  348. package/dist/typings/processes/index.d.ts +24 -24
  349. package/dist/typings/processes/init.d.ts +7 -7
  350. package/dist/typings/processes/misc/base.d.ts +4 -4
  351. package/dist/typings/processes/misc/enums.d.ts +33 -33
  352. package/dist/typings/processes/misc/index.d.ts +2 -2
  353. package/dist/typings/processes/postFetch.d.ts +8 -8
  354. package/dist/typings/processes/preClip.d.ts +12 -12
  355. package/dist/typings/processes/preFetch.d.ts +17 -17
  356. package/dist/typings/processes/render.d.ts +9 -9
  357. package/dist/typings/processes/scroll.d.ts +13 -13
  358. package/dist/typings/processes/start.d.ts +6 -6
  359. package/dist/typings/scroller.d.ts +26 -26
  360. package/dist/typings/version.d.ts +5 -5
  361. package/dist/typings/workflow-transducer.d.ts +2 -2
  362. package/dist/typings/workflow.d.ts +30 -29
  363. package/package.json +72 -69
@@ -1,40 +1,41 @@
1
- import { __extends } from "tslib";
2
- import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
3
- import { Direction } from '../../inputs/index';
4
- var Check = /** @class */ (function (_super) {
5
- __extends(Check, _super);
6
- function Check() {
7
- return _super !== null && _super.apply(this, arguments) || this;
8
- }
9
- Check.run = function (scroller) {
10
- var workflow = scroller.workflow, buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;
11
- var min = Infinity, max = -Infinity;
12
- buffer.items.forEach(function (item) {
13
- var size = item.size;
14
- item.setSize();
15
- if (item.size !== size) {
16
- buffer.cacheItem(item);
17
- min = Math.min(min, item.$index);
18
- max = Math.max(max, item.$index);
19
- }
20
- });
21
- if (Number.isFinite(min)) {
22
- fetch.first.indexBuffer = buffer.firstIndex;
23
- fetch.last.indexBuffer = buffer.lastIndex;
24
- var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), firstIndex = _a.index, diff = _a.diff;
25
- fetch.firstVisible.index = firstIndex;
26
- if (!isNaN(firstIndex)) {
27
- fetch.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;
28
- }
29
- fetch.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));
30
- }
31
- scroller.logger.stat('check');
32
- workflow.call({
33
- process: Check.process,
34
- status: Number.isFinite(min) ? ProcessStatus.next : ProcessStatus.done
35
- });
36
- };
37
- return Check;
38
- }(BaseAdapterProcessFactory(AdapterProcess.check)));
39
- export default Check;
1
+ import { __extends } from "tslib";
2
+ import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
3
+ import { Direction } from '../../inputs/index';
4
+ var Check = /** @class */ (function (_super) {
5
+ __extends(Check, _super);
6
+ function Check() {
7
+ return _super !== null && _super.apply(this, arguments) || this;
8
+ }
9
+ Check.run = function (scroller) {
10
+ var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
11
+ var min = Infinity, max = -Infinity;
12
+ buffer.items.forEach(function (item) {
13
+ var size = item.size;
14
+ item.setSize();
15
+ if (item.size !== size) {
16
+ buffer.cacheItem(item);
17
+ min = Math.min(min, item.$index);
18
+ max = Math.max(max, item.$index);
19
+ }
20
+ });
21
+ if (Number.isFinite(min)) {
22
+ var fetch_1 = state.fetch;
23
+ fetch_1.first.indexBuffer = buffer.firstIndex;
24
+ fetch_1.last.indexBuffer = buffer.lastIndex;
25
+ var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), firstIndex = _a.index, diff = _a.diff;
26
+ fetch_1.firstVisible.index = firstIndex;
27
+ if (!isNaN(firstIndex)) {
28
+ fetch_1.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;
29
+ }
30
+ fetch_1.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));
31
+ }
32
+ scroller.logger.stat('check');
33
+ workflow.call({
34
+ process: Check.process,
35
+ status: Number.isFinite(min) ? ProcessStatus.next : ProcessStatus.done
36
+ });
37
+ };
38
+ return Check;
39
+ }(BaseAdapterProcessFactory(AdapterProcess.check)));
40
+ export default Check;
40
41
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../src/processes/adapter/check.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;IAAmC,yBAA+C;IAAlF;;IAqCA,CAAC;IAnCQ,SAAG,GAAV,UAAW,QAAkB;QACnB,IAAA,QAAQ,GAAyC,QAAQ,SAAjD,EAAE,MAAM,GAAiC,QAAQ,OAAzC,EAAW,KAAK,GAAiB,QAAQ,YAAzB,EAAI,QAAQ,GAAK,QAAQ,SAAb,CAAc;QAClE,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;YACvB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAClC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;YACpC,IAAA,KAA8B,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAlF,UAAU,WAAA,EAAE,IAAI,UAAkE,CAAC;YAClG,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBACtB,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAE,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;aACvE;YACD,KAAK,CAAC,KAAK,CACT,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAxC,CAAwC,CAAC,CACtE,CAAC;SACH;QAED,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9B,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SACvE,CAAC,CAAC;IACL,CAAC;IAEH,YAAC;AAAD,CAAC,AArCD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAqCjF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Direction } from '../../inputs/index';\r\n\r\nexport default class Check extends BaseAdapterProcessFactory(AdapterProcess.check) {\r\n\r\n static run(scroller: Scroller): void {\r\n const { workflow, buffer, state: { fetch }, viewport } = scroller;\r\n let min = Infinity, max = -Infinity;\r\n\r\n buffer.items.forEach(item => {\r\n const size = item.size;\r\n item.setSize();\r\n if (item.size !== size) {\r\n buffer.cacheItem(item);\r\n min = Math.min(min, item.$index);\r\n max = Math.max(max, item.$index);\r\n }\r\n });\r\n\r\n if (Number.isFinite(min)) {\r\n fetch.first.indexBuffer = buffer.firstIndex;\r\n fetch.last.indexBuffer = buffer.lastIndex;\r\n const { index: firstIndex, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = firstIndex;\r\n if (!isNaN(firstIndex)) {\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(firstIndex) + diff;\r\n }\r\n fetch.check(\r\n buffer.items.filter(item => item.$index >= min && item.$index <= max)\r\n );\r\n }\r\n\r\n scroller.logger.stat('check');\r\n\r\n workflow.call({\r\n process: Check.process,\r\n status: Number.isFinite(min) ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../src/processes/adapter/check.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;IAAmC,yBAA+C;IAAlF;;IAsCA,CAAC;IArCQ,SAAG,GAAV,UAAW,QAAkB;QACnB,IAAA,QAAQ,GAA8B,QAAQ,SAAtC,EAAE,MAAM,GAAsB,QAAQ,OAA9B,EAAE,KAAK,GAAe,QAAQ,MAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAc;QACvD,IAAI,GAAG,GAAG,QAAQ,EAChB,GAAG,GAAG,CAAC,QAAQ,CAAC;QAElB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;YACvB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAA,OAAK,GAAK,KAAK,MAAV,CAAW;YACxB,OAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;YAC5C,OAAK,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;YACpC,IAAA,KAA8B,QAAQ,CAAC,kBAAkB,CAC7D,MAAM,CAAC,KAAK,EACZ,SAAS,CAAC,QAAQ,CACnB,EAHc,UAAU,WAAA,EAAE,IAAI,UAG9B,CAAC;YACF,OAAK,CAAC,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvB,OAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YACvE,CAAC;YACD,OAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAxC,CAAwC,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9B,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SACvE,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC,AAtCD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAsCjF","sourcesContent":["import { Scroller } from '../../scroller';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { Direction } from '../../inputs/index';\n\nexport default class Check extends BaseAdapterProcessFactory(AdapterProcess.check) {\n static run(scroller: Scroller): void {\n const { workflow, buffer, state, viewport } = scroller;\n let min = Infinity,\n max = -Infinity;\n\n buffer.items.forEach(item => {\n const size = item.size;\n item.setSize();\n if (item.size !== size) {\n buffer.cacheItem(item);\n min = Math.min(min, item.$index);\n max = Math.max(max, item.$index);\n }\n });\n\n if (Number.isFinite(min)) {\n const { fetch } = state;\n fetch.first.indexBuffer = buffer.firstIndex;\n fetch.last.indexBuffer = buffer.lastIndex;\n const { index: firstIndex, diff } = viewport.getEdgeVisibleItem(\n buffer.items,\n Direction.backward\n );\n fetch.firstVisible.index = firstIndex;\n if (!isNaN(firstIndex)) {\n fetch.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;\n }\n fetch.check(buffer.items.filter(item => item.$index >= min && item.$index <= max));\n }\n\n scroller.logger.stat('check');\n\n workflow.call({\n process: Check.process,\n status: Number.isFinite(min) ? ProcessStatus.next : ProcessStatus.done\n });\n }\n}\n"]}
@@ -1,20 +1,20 @@
1
- import { __extends } from "tslib";
2
- import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
3
- var UserClip = /** @class */ (function (_super) {
4
- __extends(UserClip, _super);
5
- function UserClip() {
6
- return _super !== null && _super.apply(this, arguments) || this;
7
- }
8
- UserClip.run = function (scroller, options) {
9
- var params = UserClip.parseInput(scroller, options).params;
10
- scroller.state.clip.forceForward = !(params && params.backwardOnly);
11
- scroller.state.clip.forceBackward = !(params && params.forwardOnly);
12
- scroller.workflow.call({
13
- process: UserClip.process,
14
- status: ProcessStatus.next
15
- });
16
- };
17
- return UserClip;
18
- }(BaseAdapterProcessFactory(AdapterProcess.clip)));
19
- export default UserClip;
1
+ import { __extends } from "tslib";
2
+ import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
3
+ var UserClip = /** @class */ (function (_super) {
4
+ __extends(UserClip, _super);
5
+ function UserClip() {
6
+ return _super !== null && _super.apply(this, arguments) || this;
7
+ }
8
+ UserClip.run = function (scroller, options) {
9
+ var params = UserClip.parseInput(scroller, options).params;
10
+ scroller.state.clip.forceForward = !(params && params.backwardOnly);
11
+ scroller.state.clip.forceBackward = !(params && params.forwardOnly);
12
+ scroller.workflow.call({
13
+ process: UserClip.process,
14
+ status: ProcessStatus.next
15
+ });
16
+ };
17
+ return UserClip;
18
+ }(BaseAdapterProcessFactory(AdapterProcess.clip)));
19
+ export default UserClip;
20
20
  //# sourceMappingURL=clip.js.map
@@ -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';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { AdapterClipOptions } from '../../interfaces/index';\n\nexport default class UserClip extends BaseAdapterProcessFactory(AdapterProcess.clip) {\n static run(scroller: Scroller, options?: AdapterClipOptions): void {\n const { params } = UserClip.parseInput(scroller, options);\n\n scroller.state.clip.forceForward = !(params && params.backwardOnly);\n scroller.state.clip.forceBackward = !(params && params.forwardOnly);\n\n scroller.workflow.call({\n process: UserClip.process,\n status: ProcessStatus.next\n });\n }\n}\n"]}
@@ -1,90 +1,92 @@
1
- import { __extends, __read, __spreadArray } from "tslib";
2
- import { AdapterMethods } from '../../inputs/index';
3
- import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
4
- var _a = AdapterMethods, _b = AdapterProcess.fix, FixParams = _a[_b];
5
- var Fix = /** @class */ (function (_super) {
6
- __extends(Fix, _super);
7
- function Fix() {
8
- return _super !== null && _super.apply(this, arguments) || this;
9
- }
10
- Fix.run = function (scroller, options) {
11
- var workflow = scroller.workflow;
12
- var _a = Fix.parseInput(scroller, options), data = _a.data, params = _a.params;
13
- if (!params) {
14
- return;
15
- }
16
- Object.entries(data.params).forEach(function (_a) {
17
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
18
- if (value.isSet && value.isValid) {
19
- Fix.runByType(scroller, key, value.value, data);
20
- }
21
- });
22
- workflow.call({
23
- process: Fix.process,
24
- status: ProcessStatus.done
25
- });
26
- };
27
- Fix.runByType = function (scroller, token, value, methodData) {
28
- switch (token) {
29
- case FixParams.scrollPosition:
30
- return Fix.setScrollPosition(scroller, value);
31
- case FixParams.minIndex:
32
- return Fix.setMinIndex(scroller, value);
33
- case FixParams.maxIndex:
34
- return Fix.setMaxIndex(scroller, value);
35
- case FixParams.updater:
36
- return Fix.updateItems(scroller, value);
37
- case FixParams.scrollToItem:
38
- if (methodData.params) {
39
- var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];
40
- var options = scrollToItemOpt ? scrollToItemOpt.value : void 0;
41
- return Fix.scrollToItem(scroller, value, options);
42
- }
43
- return;
44
- case FixParams.scrollToItemOpt:
45
- return;
46
- }
47
- };
48
- Fix.setScrollPosition = function (_a, value) {
49
- var viewport = _a.viewport;
50
- var result = value;
51
- if (value === -Infinity) {
52
- result = 0;
53
- }
54
- else if (value === Infinity) {
55
- result = viewport.getScrollableSize();
56
- }
57
- viewport.setPosition(result);
58
- };
59
- Fix.setMinIndex = function (_a, value) {
60
- var buffer = _a.buffer, settings = _a.settings;
61
- settings.minIndex = value;
62
- buffer.absMinIndex = value;
63
- };
64
- Fix.setMaxIndex = function (_a, value) {
65
- var buffer = _a.buffer, settings = _a.settings;
66
- settings.maxIndex = value;
67
- buffer.absMaxIndex = value;
68
- };
69
- Fix.updateItems = function (_a, value) {
70
- var buffer = _a.buffer, logger = _a.logger;
71
- var updateReference = false;
72
- var updater = function () { return updateReference = true; };
73
- buffer.items.forEach(function (item) { return value(item.get(), updater); });
74
- if (updateReference) {
75
- logger.log(function () { return 'update Buffer.items reference'; });
76
- buffer.items = __spreadArray([], __read(buffer.items), false);
77
- }
78
- };
79
- Fix.scrollToItem = function (scroller, value, options) {
80
- var found = scroller.buffer.items.find(function (item) { return value(item.get()); });
81
- if (!found) {
82
- scroller.logger.log(function () { return 'scrollToItem cancelled, item not found'; });
83
- return;
84
- }
85
- found.scrollTo(options);
86
- };
87
- return Fix;
88
- }(BaseAdapterProcessFactory(AdapterProcess.fix)));
89
- export default Fix;
1
+ import { __extends, __read, __spreadArray } from "tslib";
2
+ import { AdapterMethods } from '../../inputs/index';
3
+ import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
4
+ var _a = AdapterMethods, _b = AdapterProcess.fix, FixParams = _a[_b];
5
+ var Fix = /** @class */ (function (_super) {
6
+ __extends(Fix, _super);
7
+ function Fix() {
8
+ return _super !== null && _super.apply(this, arguments) || this;
9
+ }
10
+ Fix.run = function (scroller, options) {
11
+ var workflow = scroller.workflow;
12
+ var _a = Fix.parseInput(scroller, options), data = _a.data, params = _a.params;
13
+ if (!params) {
14
+ return;
15
+ }
16
+ Object.entries(data.params).forEach(function (_a) {
17
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
18
+ if (value.isSet && value.isValid) {
19
+ Fix.runByType(scroller, key, value.value, data);
20
+ }
21
+ });
22
+ workflow.call({
23
+ process: Fix.process,
24
+ status: ProcessStatus.done
25
+ });
26
+ };
27
+ Fix.runByType = function (scroller, token, value, methodData) {
28
+ switch (token) {
29
+ case FixParams.scrollPosition:
30
+ return Fix.setScrollPosition(scroller, value);
31
+ case FixParams.minIndex:
32
+ return Fix.setMinIndex(scroller, value);
33
+ case FixParams.maxIndex:
34
+ return Fix.setMaxIndex(scroller, value);
35
+ case FixParams.updater:
36
+ return Fix.updateItems(scroller, value);
37
+ case FixParams.scrollToItem:
38
+ if (methodData.params) {
39
+ var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];
40
+ var options = scrollToItemOpt
41
+ ? scrollToItemOpt.value
42
+ : void 0;
43
+ return Fix.scrollToItem(scroller, value, options);
44
+ }
45
+ return;
46
+ case FixParams.scrollToItemOpt:
47
+ return;
48
+ }
49
+ };
50
+ Fix.setScrollPosition = function (_a, value) {
51
+ var viewport = _a.viewport;
52
+ var result = value;
53
+ if (value === -Infinity) {
54
+ result = 0;
55
+ }
56
+ else if (value === Infinity) {
57
+ result = viewport.getScrollableSize();
58
+ }
59
+ viewport.setPosition(result);
60
+ };
61
+ Fix.setMinIndex = function (_a, value) {
62
+ var buffer = _a.buffer, settings = _a.settings;
63
+ settings.minIndex = value;
64
+ buffer.absMinIndex = value;
65
+ };
66
+ Fix.setMaxIndex = function (_a, value) {
67
+ var buffer = _a.buffer, settings = _a.settings;
68
+ settings.maxIndex = value;
69
+ buffer.absMaxIndex = value;
70
+ };
71
+ Fix.updateItems = function (_a, value) {
72
+ var buffer = _a.buffer, logger = _a.logger;
73
+ var updateReference = false;
74
+ var updater = function () { return (updateReference = true); };
75
+ buffer.items.forEach(function (item) { return value(item.get(), updater); });
76
+ if (updateReference) {
77
+ logger.log(function () { return 'update Buffer.items reference'; });
78
+ buffer.items = __spreadArray([], __read(buffer.items), false);
79
+ }
80
+ };
81
+ Fix.scrollToItem = function (scroller, value, options) {
82
+ var found = scroller.buffer.items.find(function (item) { return value(item.get()); });
83
+ if (!found) {
84
+ scroller.logger.log(function () { return 'scrollToItem cancelled, item not found'; });
85
+ return;
86
+ }
87
+ found.scrollTo(options);
88
+ };
89
+ return Fix;
90
+ }(BaseAdapterProcessFactory(AdapterProcess.fix)));
91
+ export default Fix;
90
92
  //# sourceMappingURL=fix.js.map
@@ -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';\nimport { AdapterMethods } from '../../inputs/index';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport {\n ItemsPredicate,\n ItemsUpdater,\n AdapterFixOptions,\n IValidatedData\n} from '../../interfaces/index';\n\nconst { [AdapterProcess.fix]: FixParams } = AdapterMethods;\n\nexport default class Fix extends BaseAdapterProcessFactory(AdapterProcess.fix) {\n static run(scroller: Scroller, options: AdapterFixOptions): void {\n const { workflow } = scroller;\n\n const { data, params } = Fix.parseInput(scroller, options);\n if (!params) {\n return;\n }\n\n Object.entries(data.params).forEach(([key, value]) => {\n if (value.isSet && value.isValid) {\n Fix.runByType(scroller, key, value.value, data);\n }\n });\n\n workflow.call({\n process: Fix.process,\n status: ProcessStatus.done\n });\n }\n\n static runByType(\n scroller: Scroller,\n token: string,\n value: unknown,\n methodData: IValidatedData\n ): void {\n switch (token) {\n case FixParams.scrollPosition:\n return Fix.setScrollPosition(scroller, value as number);\n case FixParams.minIndex:\n return Fix.setMinIndex(scroller, value as number);\n case FixParams.maxIndex:\n return Fix.setMaxIndex(scroller, value as number);\n case FixParams.updater:\n return Fix.updateItems(scroller, value as ItemsUpdater);\n case FixParams.scrollToItem:\n if (methodData.params) {\n const scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];\n const options = scrollToItemOpt\n ? (scrollToItemOpt.value as AdapterFixOptions['scrollToItemOpt'])\n : void 0;\n return Fix.scrollToItem(scroller, value as ItemsPredicate, options);\n }\n return;\n case FixParams.scrollToItemOpt:\n return;\n }\n }\n\n static setScrollPosition({ viewport }: Scroller, value: number): void {\n let result = value;\n if (value === -Infinity) {\n result = 0;\n } else if (value === Infinity) {\n result = viewport.getScrollableSize();\n }\n viewport.setPosition(result);\n }\n\n static setMinIndex({ buffer, settings }: Scroller, value: number): void {\n settings.minIndex = value;\n buffer.absMinIndex = value;\n }\n\n static setMaxIndex({ buffer, settings }: Scroller, value: number): void {\n settings.maxIndex = value;\n buffer.absMaxIndex = value;\n }\n\n static updateItems({ buffer, logger }: Scroller, value: ItemsUpdater): void {\n let updateReference = false;\n const updater = () => (updateReference = true);\n buffer.items.forEach(item => value(item.get(), updater));\n if (updateReference) {\n logger.log(() => 'update Buffer.items reference');\n buffer.items = [...buffer.items];\n }\n }\n\n static scrollToItem(\n scroller: Scroller,\n value: ItemsPredicate,\n options?: boolean | ScrollIntoViewOptions\n ): void {\n const found = scroller.buffer.items.find(item => value(item.get()));\n if (!found) {\n scroller.logger.log(() => 'scrollToItem cancelled, item not found');\n return;\n }\n found.scrollTo(options);\n }\n}\n"]}
@@ -1,82 +1,83 @@
1
- import { __extends, __read, __spreadArray } from "tslib";
2
- import Update from './update';
3
- import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
4
- import { Item } from '../../classes/item';
5
- import { Direction } from '../../inputs/index';
6
- var Insert = /** @class */ (function (_super) {
7
- __extends(Insert, _super);
8
- function Insert() {
9
- return _super !== null && _super.apply(this, arguments) || this;
10
- }
11
- Insert.run = function (scroller, options) {
12
- var params = Insert.parseInput(scroller, options).params;
13
- if (!params) {
14
- return;
15
- }
16
- var shouldInsert = Insert.doInsert(scroller, params);
17
- scroller.workflow.call({
18
- process: Insert.process,
19
- status: shouldInsert ? ProcessStatus.next : ProcessStatus.done
20
- });
21
- };
22
- Insert.doInsert = function (scroller, params) {
23
- if (!Insert.insertEmpty(scroller, params)) {
24
- if (!Insert.insertInBuffer(scroller, params)) {
25
- if (!Insert.insertVirtually(scroller, params)) {
26
- return false;
27
- }
28
- }
29
- }
30
- return true;
31
- };
32
- Insert.insertEmpty = function (scroller, params) {
33
- var buffer = scroller.buffer, routines = scroller.routines, fetch = scroller.state.fetch;
34
- if (buffer.size) {
35
- return false;
36
- }
37
- var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
38
- if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
39
- return false;
40
- }
41
- fetch.fill(buffer.items, buffer.startIndex);
42
- return true;
43
- };
44
- Insert.insertInBuffer = function (scroller, params) {
45
- var before = params.before, after = params.after, beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
46
- var indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);
47
- if (params.virtualize || isNaN(indexToInsert)) {
48
- return false;
49
- }
50
- var isBackward = Number.isInteger(beforeIndex) || before;
51
- var updateOptions = {
52
- predicate: function (_a) {
53
- var $index = _a.$index, data = _a.data;
54
- if (indexToInsert === $index) {
55
- return isBackward ? __spreadArray(__spreadArray([], __read(items), false), [data], false) : __spreadArray([data], __read(items), false);
56
- }
57
- return true;
58
- },
59
- fixRight: decrease
60
- };
61
- return Update.doUpdate(scroller, updateOptions);
62
- };
63
- Insert.insertVirtually = function (scroller, params) {
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;
66
- var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
67
- var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);
68
- if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
69
- return false;
70
- }
71
- var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
72
- fetch.firstVisible.index = index;
73
- if (!isNaN(index)) {
74
- fetch.simulate = true;
75
- fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;
76
- }
77
- return true;
78
- };
79
- return Insert;
80
- }(BaseAdapterProcessFactory(AdapterProcess.insert)));
81
- export default Insert;
1
+ import { __extends, __read, __spreadArray } from "tslib";
2
+ import Update from './update';
3
+ import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
4
+ import { Item } from '../../classes/item';
5
+ import { Direction } from '../../inputs/index';
6
+ var Insert = /** @class */ (function (_super) {
7
+ __extends(Insert, _super);
8
+ function Insert() {
9
+ return _super !== null && _super.apply(this, arguments) || this;
10
+ }
11
+ Insert.run = function (scroller, options) {
12
+ var params = Insert.parseInput(scroller, options).params;
13
+ if (!params) {
14
+ return;
15
+ }
16
+ var shouldInsert = Insert.doInsert(scroller, params);
17
+ scroller.workflow.call({
18
+ process: Insert.process,
19
+ status: shouldInsert ? ProcessStatus.next : ProcessStatus.done
20
+ });
21
+ };
22
+ Insert.doInsert = function (scroller, params) {
23
+ if (!Insert.insertEmpty(scroller, params)) {
24
+ if (!Insert.insertInBuffer(scroller, params)) {
25
+ if (!Insert.insertVirtually(scroller, params)) {
26
+ return false;
27
+ }
28
+ }
29
+ }
30
+ return true;
31
+ };
32
+ Insert.insertEmpty = function (scroller, params) {
33
+ var buffer = scroller.buffer, routines = scroller.routines, state = scroller.state;
34
+ if (buffer.size) {
35
+ return false;
36
+ }
37
+ var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
38
+ if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
39
+ return false;
40
+ }
41
+ state.fetch.fill(buffer.items, buffer.startIndex);
42
+ return true;
43
+ };
44
+ Insert.insertInBuffer = function (scroller, params) {
45
+ var before = params.before, after = params.after, beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
46
+ var indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);
47
+ if (params.virtualize || isNaN(indexToInsert)) {
48
+ return false;
49
+ }
50
+ var isBackward = Number.isInteger(beforeIndex) || before;
51
+ var updateOptions = {
52
+ predicate: function (_a) {
53
+ var $index = _a.$index, data = _a.data;
54
+ if (indexToInsert === $index) {
55
+ return isBackward ? __spreadArray(__spreadArray([], __read(items), false), [data], false) : __spreadArray([data], __read(items), false);
56
+ }
57
+ return true;
58
+ },
59
+ fixRight: decrease
60
+ };
61
+ return Update.doUpdate(scroller, updateOptions);
62
+ };
63
+ Insert.insertVirtually = function (scroller, params) {
64
+ var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
65
+ var buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
66
+ var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
67
+ var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);
68
+ if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
69
+ return false;
70
+ }
71
+ var fetch = state.fetch;
72
+ var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
73
+ fetch.firstVisible.index = index;
74
+ if (!isNaN(index)) {
75
+ fetch.simulate = true;
76
+ fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;
77
+ }
78
+ return true;
79
+ };
80
+ return Insert;
81
+ }(BaseAdapterProcessFactory(AdapterProcess.insert)));
82
+ export default Insert;
82
83
  //# sourceMappingURL=insert.js.map
@@ -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';\nimport Update from './update';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { Item } from '../../classes/item';\nimport { Direction } from '../../inputs/index';\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\n\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\n const { params } = Insert.parseInput(scroller, options);\n if (!params) {\n return;\n }\n const shouldInsert = Insert.doInsert(scroller, params);\n\n scroller.workflow.call({\n process: Insert.process,\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\n });\n }\n\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\n if (!Insert.insertEmpty(scroller, params)) {\n if (!Insert.insertInBuffer(scroller, params)) {\n if (!Insert.insertVirtually(scroller, params)) {\n return false;\n }\n }\n }\n return true;\n }\n\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\n const { buffer, routines, state } = scroller;\n if (buffer.size) {\n return false;\n }\n const { beforeIndex, afterIndex, items, decrease } = params;\n if (\n !buffer.fillEmpty(\n items,\n beforeIndex,\n afterIndex,\n !!decrease,\n (index, data) => new Item(index, data, routines)\n )\n ) {\n return false;\n }\n state.fetch.fill(buffer.items, buffer.startIndex);\n\n return true;\n }\n\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\n const indexToInsert = scroller.buffer.getIndexToInsert(\n before || after,\n beforeIndex,\n afterIndex\n );\n\n if (params.virtualize || isNaN(indexToInsert)) {\n return false;\n }\n const isBackward = Number.isInteger(beforeIndex) || before;\n\n const updateOptions: AdapterUpdateOptions = {\n predicate: ({ $index, data }) => {\n if (indexToInsert === $index) {\n return isBackward ? [...items, data] : [data, ...items];\n }\n return true;\n },\n fixRight: decrease\n };\n\n return Update.doUpdate(scroller, updateOptions);\n }\n\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\n const { beforeIndex, afterIndex, items, decrease } = params;\n const { buffer, state, viewport } = scroller;\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\n\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\n return false;\n }\n\n const { fetch } = state;\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\n fetch.firstVisible.index = index;\n if (!isNaN(index)) {\n fetch.simulate = true;\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\n }\n\n return true;\n }\n}\n"]}