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,410 +1,411 @@
1
- import { __read, __spreadArray } from "tslib";
2
- import { Cache } from './buffer/cache';
3
- import { CheckBufferCall } from './buffer/checkCall';
4
- import { Reactive } from './reactive';
5
- import { Direction } from '../inputs/index';
6
- var Buffer = /** @class */ (function () {
7
- function Buffer(settings, onDataChanged, logger) {
8
- this._items = [];
9
- this.logger = logger;
10
- this.changeItems = onDataChanged;
11
- this.bof = new Reactive(false);
12
- this.eof = new Reactive(false);
13
- this.cache = new Cache(settings, logger);
14
- this.checkCall = new CheckBufferCall(this, logger);
15
- this.startIndexUser = settings.startIndex;
16
- this.minIndexUser = settings.minIndex;
17
- this.maxIndexUser = settings.maxIndex;
18
- this.reset(true);
19
- }
20
- Buffer.prototype.dispose = function () {
21
- this.bof.dispose();
22
- this.eof.dispose();
23
- this._items.forEach(function (item) { return item.dispose(); });
24
- this._items = [];
25
- };
26
- Buffer.prototype.reset = function (force, startIndex) {
27
- this.items.forEach(function (item) { return item.hide(); });
28
- this.pristine = true;
29
- this.items = [];
30
- this.cache.reset(force);
31
- this.absMinIndex = this.minIndexUser;
32
- this.absMaxIndex = this.maxIndexUser;
33
- this.setCurrentStartIndex(startIndex);
34
- this.bof.set(false);
35
- this.eof.set(false);
36
- this.pristine = false;
37
- };
38
- Buffer.prototype.setCurrentStartIndex = function (newStartIndex) {
39
- var min = this.minIndexUser;
40
- var max = this.maxIndexUser;
41
- var start = this.startIndexUser;
42
- var index = Number(newStartIndex);
43
- if (Number.isNaN(index)) {
44
- this.logger.log(function () { return "fallback startIndex to settings.startIndex (".concat(start, ")"); });
45
- index = start;
46
- }
47
- if (index < min) {
48
- this.logger.log(function () { return "setting startIndex to settings.minIndex (".concat(min, ") because ").concat(index, " < ").concat(min); });
49
- index = min;
50
- }
51
- if (index > max) {
52
- this.logger.log(function () { return "setting startIndex to settings.maxIndex (".concat(max, ") because ").concat(index, " > ").concat(max); });
53
- index = max;
54
- }
55
- this.startIndex = index;
56
- };
57
- Object.defineProperty(Buffer.prototype, "items", {
58
- get: function () {
59
- return this._items;
60
- },
61
- set: function (items) {
62
- this._items = items;
63
- this.changeItems(items);
64
- if (!this.pristine) {
65
- this.checkBOF();
66
- this.checkEOF();
67
- }
68
- },
69
- enumerable: false,
70
- configurable: true
71
- });
72
- Object.defineProperty(Buffer.prototype, "absMinIndex", {
73
- get: function () {
74
- return this._absMinIndex;
75
- },
76
- set: function (value) {
77
- if (this._absMinIndex !== value) {
78
- this._absMinIndex = Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;
79
- }
80
- if (!this.pristine) {
81
- this.checkBOF();
82
- }
83
- },
84
- enumerable: false,
85
- configurable: true
86
- });
87
- Object.defineProperty(Buffer.prototype, "absMaxIndex", {
88
- get: function () {
89
- return this._absMaxIndex;
90
- },
91
- set: function (value) {
92
- if (this._absMaxIndex !== value) {
93
- this._absMaxIndex = Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;
94
- }
95
- if (!this.pristine) {
96
- this.checkEOF();
97
- }
98
- },
99
- enumerable: false,
100
- configurable: true
101
- });
102
- Buffer.prototype.checkBOF = function () {
103
- // since bof has no setter, need to call checkBOF() on items and absMinIndex change
104
- var bof = this.items.length
105
- ? (this.items[0].$index === this.absMinIndex)
106
- : isFinite(this.absMinIndex);
107
- this.bof.set(bof);
108
- };
109
- Buffer.prototype.checkEOF = function () {
110
- // since eof has no setter, need to call checkEOF() on items and absMaxIndex change
111
- var eof = this.items.length
112
- ? (this.items[this.items.length - 1].$index === this.absMaxIndex)
113
- : isFinite(this.absMaxIndex);
114
- this.eof.set(eof);
115
- };
116
- Object.defineProperty(Buffer.prototype, "size", {
117
- get: function () {
118
- return this._items.length;
119
- },
120
- enumerable: false,
121
- configurable: true
122
- });
123
- Object.defineProperty(Buffer.prototype, "cacheSize", {
124
- get: function () {
125
- return this.cache.size;
126
- },
127
- enumerable: false,
128
- configurable: true
129
- });
130
- Object.defineProperty(Buffer.prototype, "defaultSize", {
131
- get: function () {
132
- return this.cache.getDefaultSize();
133
- },
134
- enumerable: false,
135
- configurable: true
136
- });
137
- Object.defineProperty(Buffer.prototype, "minIndex", {
138
- get: function () {
139
- return isFinite(this.cache.minIndex) ? this.cache.minIndex : this.startIndex;
140
- },
141
- enumerable: false,
142
- configurable: true
143
- });
144
- Object.defineProperty(Buffer.prototype, "maxIndex", {
145
- get: function () {
146
- return isFinite(this.cache.maxIndex) ? this.cache.maxIndex : this.startIndex;
147
- },
148
- enumerable: false,
149
- configurable: true
150
- });
151
- Object.defineProperty(Buffer.prototype, "firstIndex", {
152
- get: function () {
153
- return this.items.length ? this.items[0].$index : NaN;
154
- },
155
- enumerable: false,
156
- configurable: true
157
- });
158
- Object.defineProperty(Buffer.prototype, "lastIndex", {
159
- get: function () {
160
- return this.items.length ? this.items[this.items.length - 1].$index : NaN;
161
- },
162
- enumerable: false,
163
- configurable: true
164
- });
165
- Object.defineProperty(Buffer.prototype, "finiteAbsMinIndex", {
166
- get: function () {
167
- return isFinite(this.absMinIndex) ? this.absMinIndex : this.minIndex;
168
- },
169
- enumerable: false,
170
- configurable: true
171
- });
172
- Object.defineProperty(Buffer.prototype, "finiteAbsMaxIndex", {
173
- get: function () {
174
- return isFinite(this.absMaxIndex) ? this.absMaxIndex : this.maxIndex;
175
- },
176
- enumerable: false,
177
- configurable: true
178
- });
179
- Buffer.prototype.get = function ($index) {
180
- return this.items.find(function (item) { return item.$index === $index; });
181
- };
182
- Buffer.prototype.setItems = function (items) {
183
- if (!this.items.length) {
184
- this.items = __spreadArray([], __read(items), false);
185
- }
186
- else if (this.items[0].$index > items[items.length - 1].$index) {
187
- this.items = __spreadArray(__spreadArray([], __read(items), false), __read(this.items), false);
188
- }
189
- else if (items[0].$index > this.items[this.items.length - 1].$index) {
190
- this.items = __spreadArray(__spreadArray([], __read(this.items), false), __read(items), false);
191
- }
192
- else {
193
- return false;
194
- }
195
- return true;
196
- };
197
- Buffer.prototype.clip = function () {
198
- this.items = this.items.filter(function (_a) {
199
- var toRemove = _a.toRemove;
200
- return !toRemove;
201
- });
202
- };
203
- Buffer.prototype.getIndexToInsert = function (predicate, before, after) {
204
- return this.checkCall.insertInBuffer(predicate, before, after);
205
- };
206
- Buffer.prototype.shiftExtremum = function (amount, fixRight) {
207
- if (!fixRight) {
208
- this.absMaxIndex += amount;
209
- }
210
- else {
211
- this.absMinIndex -= amount;
212
- this.startIndex -= amount;
213
- }
214
- if (this.startIndex > this.absMaxIndex) {
215
- this.startIndex = this.absMaxIndex;
216
- }
217
- else if (this.startIndex < this.absMinIndex) {
218
- this.startIndex = this.absMinIndex;
219
- }
220
- };
221
- Buffer.prototype.insertVirtually = function (items, index, direction, fixRight) {
222
- if (!this.checkCall.insertVirtual(items, index, direction)) {
223
- return false;
224
- }
225
- var shift = 0;
226
- if (index <= this.firstIndex && !fixRight) {
227
- shift = items.length;
228
- }
229
- else if (index >= this.lastIndex && fixRight) {
230
- shift = -items.length;
231
- }
232
- if (shift) {
233
- this.items.forEach(function (item) { return item.updateIndex(item.$index + shift); });
234
- this.cache.insertItems(items, index, direction, fixRight);
235
- this.items = __spreadArray([], __read(this.items), false);
236
- }
237
- this.shiftExtremum(items.length, fixRight);
238
- return true;
239
- };
240
- Buffer.prototype.removeVirtually = function (indexes, fixRight) {
241
- var length = this.items.length;
242
- var shifted = false;
243
- var _loop_1 = function (i) {
244
- var item = this_1.items[i];
245
- var diff = indexes.reduce(function (acc, index) { return acc + (fixRight
246
- ? (item.$index < index ? 1 : 0)
247
- : (item.$index > index ? -1 : 0)); }, 0);
248
- shifted = shifted || !!diff;
249
- item.updateIndex(item.$index + diff);
250
- };
251
- var this_1 = this;
252
- for (var i = fixRight ? length - 1 : 0; fixRight ? i >= 0 : i < length; fixRight ? i-- : i++) {
253
- _loop_1(i);
254
- }
255
- this.shiftExtremum(-indexes.length, fixRight);
256
- if (shifted) {
257
- this.items = __spreadArray([], __read(this.items), false);
258
- }
259
- this.cache.removeItems(indexes, fixRight);
260
- };
261
- Buffer.prototype.fillEmpty = function (items, beforeIndex, afterIndex, fixRight, generator) {
262
- if (!this.checkCall.fillEmpty(items, beforeIndex, afterIndex)) {
263
- return false;
264
- }
265
- var before = Number.isInteger(beforeIndex);
266
- var index = (before ? beforeIndex : afterIndex);
267
- var shift = (fixRight ? items.length : (before ? 1 : 0));
268
- this.items = items.map(function (data, i) {
269
- return generator(index + i + (!before ? 1 : 0) - shift, data);
270
- });
271
- this._absMinIndex = this.items[0].$index;
272
- this._absMaxIndex = this.items[this.size - 1].$index;
273
- if (this.startIndex <= this.absMinIndex) {
274
- this.startIndex = this.absMinIndex;
275
- }
276
- else if (this.startIndex > this.absMaxIndex) {
277
- this.startIndex = this.absMaxIndex;
278
- }
279
- return true;
280
- };
281
- Buffer.prototype.updateItems = function (predicate, generator, indexToTrack, fixRight) {
282
- if (!this.size || Number.isNaN(this.firstIndex)) {
283
- return { trackedIndex: NaN, toRemove: [] };
284
- }
285
- var trackedIndex = indexToTrack;
286
- var index = fixRight ? this.lastIndex : this.firstIndex;
287
- var items = [];
288
- var diff = fixRight ? -1 : 1;
289
- var limit = this.size - 1;
290
- var beforeMap = new Map(); // need to persist original $indexes
291
- var updateArray = Array.prototype[fixRight ? 'unshift' : 'push'];
292
- var _loop_2 = function (i) {
293
- var item = this_2.items[i];
294
- beforeMap.set(item.$index, item);
295
- var result = predicate(item);
296
- // if predicate result is falsy or empty array -> delete
297
- if (!result || (Array.isArray(result) && !result.length)) {
298
- item.toRemove = true;
299
- trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : (fixRight ? 0 : -1);
300
- this_2.shiftExtremum(-1, fixRight);
301
- return "continue";
302
- }
303
- // if predicate result is truthy but not array -> leave
304
- if (!Array.isArray(result)) {
305
- item.updateIndex(index);
306
- updateArray.call(items, item);
307
- index += diff;
308
- return "continue";
309
- }
310
- // if predicate result is non-empty array -> insert/replace
311
- if (item.$index < indexToTrack) {
312
- trackedIndex += fixRight ? 0 : result.length - 1;
313
- }
314
- else if (item.$index > indexToTrack) {
315
- trackedIndex += fixRight ? 1 - result.length : 0;
316
- }
317
- var toRemove_1 = true;
318
- var newItems = [];
319
- (fixRight ? __spreadArray([], __read(result), false).reverse() : result).forEach(function (data, i) {
320
- var newItem;
321
- if (item.data === data) {
322
- if (indexToTrack === item.$index) {
323
- trackedIndex = index + i * diff;
324
- }
325
- item.updateIndex(index + i * diff);
326
- newItem = item;
327
- toRemove_1 = false; // insert case
328
- }
329
- else {
330
- newItem = generator(index + i * diff, data);
331
- newItem.toInsert = true;
332
- }
333
- updateArray.call(newItems, newItem);
334
- });
335
- item.toRemove = toRemove_1;
336
- updateArray.call.apply(updateArray, __spreadArray([items], __read(newItems), false));
337
- index += diff * result.length;
338
- if (result.length > 1) {
339
- this_2.shiftExtremum(result.length - 1, fixRight);
340
- }
341
- };
342
- var this_2 = this;
343
- for (var i = fixRight ? limit : 0; fixRight ? i >= 0 : i <= limit; i += diff) {
344
- _loop_2(i);
345
- }
346
- var toRemove = this.items.filter(function (item) { return item.toRemove; });
347
- var itemsBefore = Array.from(beforeMap)
348
- .map(function (_a) {
349
- var _b = __read(_a, 2), $index = _b[0], _c = _b[1], size = _c.size, toRemove = _c.toRemove;
350
- return ({ $index: $index, size: size, toRemove: toRemove });
351
- })
352
- .sort(function (a, b) { return a.$index - b.$index; });
353
- this.items = items;
354
- this.cache.updateSubset(itemsBefore, items, fixRight);
355
- if (this.finiteAbsMinIndex === this.finiteAbsMaxIndex) {
356
- trackedIndex = NaN;
357
- }
358
- else if (trackedIndex > this.finiteAbsMaxIndex) {
359
- trackedIndex = this.finiteAbsMaxIndex;
360
- }
361
- else if (trackedIndex < this.finiteAbsMinIndex) {
362
- trackedIndex = this.finiteAbsMinIndex;
363
- }
364
- return { trackedIndex: trackedIndex, toRemove: toRemove };
365
- };
366
- Buffer.prototype.cacheItem = function (item) {
367
- this.cache.add(item);
368
- };
369
- Buffer.prototype.getFirstVisibleItemIndex = function () {
370
- var length = this.items.length;
371
- for (var i = 0; i < length; i++) {
372
- if (!this.items[i].invisible) {
373
- return i;
374
- }
375
- }
376
- return -1;
377
- };
378
- Buffer.prototype.getLastVisibleItemIndex = function () {
379
- for (var i = this.items.length - 1; i >= 0; i--) {
380
- if (!this.items[i].invisible) {
381
- return i;
382
- }
383
- }
384
- return -1;
385
- };
386
- Buffer.prototype.getFirstVisibleItem = function () {
387
- var index = this.getFirstVisibleItemIndex();
388
- return index >= 0 ? this.items[index] : void 0;
389
- };
390
- Buffer.prototype.getLastVisibleItem = function () {
391
- var index = this.getLastVisibleItemIndex();
392
- return index >= 0 ? this.items[index] : void 0;
393
- };
394
- Buffer.prototype.getEdgeVisibleItem = function (direction, opposite) {
395
- return direction === (!opposite ? Direction.forward : Direction.backward) ?
396
- this.getLastVisibleItem() : this.getFirstVisibleItem();
397
- };
398
- Buffer.prototype.getVisibleItemsCount = function () {
399
- return this.items.reduce(function (acc, item) { return acc + (item.invisible ? 0 : 1); }, 0);
400
- };
401
- Buffer.prototype.getSizeByIndex = function (index) {
402
- return this.cache.getSizeByIndex(index);
403
- };
404
- Buffer.prototype.checkDefaultSize = function () {
405
- return this.cache.recalculateDefaultSize();
406
- };
407
- return Buffer;
408
- }());
409
- export { Buffer };
1
+ import { __read, __spreadArray } from "tslib";
2
+ import { Cache } from './buffer/cache';
3
+ import { CheckBufferCall } from './buffer/checkCall';
4
+ import { Reactive } from './reactive';
5
+ import { Direction } from '../inputs/index';
6
+ var Buffer = /** @class */ (function () {
7
+ function Buffer(settings, onDataChanged, logger) {
8
+ this._items = [];
9
+ this.logger = logger;
10
+ this.changeItems = onDataChanged;
11
+ this.bof = new Reactive(false);
12
+ this.eof = new Reactive(false);
13
+ this.cache = new Cache(settings, logger);
14
+ this.checkCall = new CheckBufferCall(this, logger);
15
+ this.startIndexUser = settings.startIndex;
16
+ this.minIndexUser = settings.minIndex;
17
+ this.maxIndexUser = settings.maxIndex;
18
+ this.reset(true);
19
+ }
20
+ Buffer.prototype.dispose = function () {
21
+ this.bof.dispose();
22
+ this.eof.dispose();
23
+ this._items.forEach(function (item) { return item.dispose(); });
24
+ this._items = [];
25
+ };
26
+ Buffer.prototype.reset = function (force, startIndex) {
27
+ this.items.forEach(function (item) { return item.hide(); });
28
+ this.pristine = true;
29
+ this.items = [];
30
+ this.cache.reset(force);
31
+ this.absMinIndex = this.minIndexUser;
32
+ this.absMaxIndex = this.maxIndexUser;
33
+ this.setCurrentStartIndex(startIndex);
34
+ this.bof.set(false);
35
+ this.eof.set(false);
36
+ this.pristine = false;
37
+ };
38
+ Buffer.prototype.setCurrentStartIndex = function (newStartIndex) {
39
+ var min = this.minIndexUser;
40
+ var max = this.maxIndexUser;
41
+ var start = this.startIndexUser;
42
+ var index = Number(newStartIndex);
43
+ if (Number.isNaN(index)) {
44
+ this.logger.log(function () { return "fallback startIndex to settings.startIndex (".concat(start, ")"); });
45
+ index = start;
46
+ }
47
+ if (index < min) {
48
+ this.logger.log(function () { return "setting startIndex to settings.minIndex (".concat(min, ") because ").concat(index, " < ").concat(min); });
49
+ index = min;
50
+ }
51
+ if (index > max) {
52
+ this.logger.log(function () { return "setting startIndex to settings.maxIndex (".concat(max, ") because ").concat(index, " > ").concat(max); });
53
+ index = max;
54
+ }
55
+ this.startIndex = index;
56
+ };
57
+ Object.defineProperty(Buffer.prototype, "items", {
58
+ get: function () {
59
+ return this._items;
60
+ },
61
+ set: function (items) {
62
+ this._items = items;
63
+ this.changeItems(items);
64
+ if (!this.pristine) {
65
+ this.checkBOF();
66
+ this.checkEOF();
67
+ }
68
+ },
69
+ enumerable: false,
70
+ configurable: true
71
+ });
72
+ Object.defineProperty(Buffer.prototype, "absMinIndex", {
73
+ get: function () {
74
+ return this._absMinIndex;
75
+ },
76
+ set: function (value) {
77
+ if (this._absMinIndex !== value) {
78
+ this._absMinIndex =
79
+ Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;
80
+ }
81
+ if (!this.pristine) {
82
+ this.checkBOF();
83
+ }
84
+ },
85
+ enumerable: false,
86
+ configurable: true
87
+ });
88
+ Object.defineProperty(Buffer.prototype, "absMaxIndex", {
89
+ get: function () {
90
+ return this._absMaxIndex;
91
+ },
92
+ set: function (value) {
93
+ if (this._absMaxIndex !== value) {
94
+ this._absMaxIndex =
95
+ Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;
96
+ }
97
+ if (!this.pristine) {
98
+ this.checkEOF();
99
+ }
100
+ },
101
+ enumerable: false,
102
+ configurable: true
103
+ });
104
+ Buffer.prototype.checkBOF = function () {
105
+ // since bof has no setter, need to call checkBOF() on items and absMinIndex change
106
+ var bof = this.items.length
107
+ ? this.items[0].$index === this.absMinIndex
108
+ : isFinite(this.absMinIndex);
109
+ this.bof.set(bof);
110
+ };
111
+ Buffer.prototype.checkEOF = function () {
112
+ // since eof has no setter, need to call checkEOF() on items and absMaxIndex change
113
+ var eof = this.items.length
114
+ ? this.items[this.items.length - 1].$index === this.absMaxIndex
115
+ : isFinite(this.absMaxIndex);
116
+ this.eof.set(eof);
117
+ };
118
+ Object.defineProperty(Buffer.prototype, "size", {
119
+ get: function () {
120
+ return this._items.length;
121
+ },
122
+ enumerable: false,
123
+ configurable: true
124
+ });
125
+ Object.defineProperty(Buffer.prototype, "cacheSize", {
126
+ get: function () {
127
+ return this.cache.size;
128
+ },
129
+ enumerable: false,
130
+ configurable: true
131
+ });
132
+ Object.defineProperty(Buffer.prototype, "defaultSize", {
133
+ get: function () {
134
+ return this.cache.getDefaultSize();
135
+ },
136
+ enumerable: false,
137
+ configurable: true
138
+ });
139
+ Object.defineProperty(Buffer.prototype, "minIndex", {
140
+ get: function () {
141
+ return isFinite(this.cache.minIndex) ? this.cache.minIndex : this.startIndex;
142
+ },
143
+ enumerable: false,
144
+ configurable: true
145
+ });
146
+ Object.defineProperty(Buffer.prototype, "maxIndex", {
147
+ get: function () {
148
+ return isFinite(this.cache.maxIndex) ? this.cache.maxIndex : this.startIndex;
149
+ },
150
+ enumerable: false,
151
+ configurable: true
152
+ });
153
+ Object.defineProperty(Buffer.prototype, "firstIndex", {
154
+ get: function () {
155
+ return this.items.length ? this.items[0].$index : NaN;
156
+ },
157
+ enumerable: false,
158
+ configurable: true
159
+ });
160
+ Object.defineProperty(Buffer.prototype, "lastIndex", {
161
+ get: function () {
162
+ return this.items.length ? this.items[this.items.length - 1].$index : NaN;
163
+ },
164
+ enumerable: false,
165
+ configurable: true
166
+ });
167
+ Object.defineProperty(Buffer.prototype, "finiteAbsMinIndex", {
168
+ get: function () {
169
+ return isFinite(this.absMinIndex) ? this.absMinIndex : this.minIndex;
170
+ },
171
+ enumerable: false,
172
+ configurable: true
173
+ });
174
+ Object.defineProperty(Buffer.prototype, "finiteAbsMaxIndex", {
175
+ get: function () {
176
+ return isFinite(this.absMaxIndex) ? this.absMaxIndex : this.maxIndex;
177
+ },
178
+ enumerable: false,
179
+ configurable: true
180
+ });
181
+ Buffer.prototype.get = function ($index) {
182
+ return this.items.find(function (item) { return item.$index === $index; });
183
+ };
184
+ Buffer.prototype.setItems = function (items) {
185
+ if (!this.items.length) {
186
+ this.items = __spreadArray([], __read(items), false);
187
+ }
188
+ else if (this.items[0].$index > items[items.length - 1].$index) {
189
+ this.items = __spreadArray(__spreadArray([], __read(items), false), __read(this.items), false);
190
+ }
191
+ else if (items[0].$index > this.items[this.items.length - 1].$index) {
192
+ this.items = __spreadArray(__spreadArray([], __read(this.items), false), __read(items), false);
193
+ }
194
+ else {
195
+ return false;
196
+ }
197
+ return true;
198
+ };
199
+ Buffer.prototype.clip = function () {
200
+ this.items = this.items.filter(function (_a) {
201
+ var toRemove = _a.toRemove;
202
+ return !toRemove;
203
+ });
204
+ };
205
+ Buffer.prototype.getIndexToInsert = function (predicate, before, after) {
206
+ return this.checkCall.insertInBuffer(predicate, before, after);
207
+ };
208
+ Buffer.prototype.shiftExtremum = function (amount, fixRight) {
209
+ if (!fixRight) {
210
+ this.absMaxIndex += amount;
211
+ }
212
+ else {
213
+ this.absMinIndex -= amount;
214
+ this.startIndex -= amount;
215
+ }
216
+ if (this.startIndex > this.absMaxIndex) {
217
+ this.startIndex = this.absMaxIndex;
218
+ }
219
+ else if (this.startIndex < this.absMinIndex) {
220
+ this.startIndex = this.absMinIndex;
221
+ }
222
+ };
223
+ Buffer.prototype.insertVirtually = function (items, index, direction, fixRight) {
224
+ if (!this.checkCall.insertVirtual(items, index, direction)) {
225
+ return false;
226
+ }
227
+ var shift = 0;
228
+ if (index <= this.firstIndex && !fixRight) {
229
+ shift = items.length;
230
+ }
231
+ else if (index >= this.lastIndex && fixRight) {
232
+ shift = -items.length;
233
+ }
234
+ if (shift) {
235
+ this.items.forEach(function (item) { return item.updateIndex(item.$index + shift); });
236
+ this.cache.insertItems(items, index, direction, fixRight);
237
+ this.items = __spreadArray([], __read(this.items), false);
238
+ }
239
+ this.shiftExtremum(items.length, fixRight);
240
+ return true;
241
+ };
242
+ Buffer.prototype.removeVirtually = function (indexes, fixRight) {
243
+ var length = this.items.length;
244
+ var shifted = false;
245
+ var _loop_1 = function (i) {
246
+ var item = this_1.items[i];
247
+ var diff = indexes.reduce(function (acc, index) {
248
+ return acc + (fixRight ? (item.$index < index ? 1 : 0) : item.$index > index ? -1 : 0);
249
+ }, 0);
250
+ shifted = shifted || !!diff;
251
+ item.updateIndex(item.$index + diff);
252
+ };
253
+ var this_1 = this;
254
+ for (var i = fixRight ? length - 1 : 0; fixRight ? i >= 0 : i < length; fixRight ? i-- : i++) {
255
+ _loop_1(i);
256
+ }
257
+ this.shiftExtremum(-indexes.length, fixRight);
258
+ if (shifted) {
259
+ this.items = __spreadArray([], __read(this.items), false);
260
+ }
261
+ this.cache.removeItems(indexes, fixRight);
262
+ };
263
+ Buffer.prototype.fillEmpty = function (items, beforeIndex, afterIndex, fixRight, generator) {
264
+ if (!this.checkCall.fillEmpty(items, beforeIndex, afterIndex)) {
265
+ return false;
266
+ }
267
+ var before = Number.isInteger(beforeIndex);
268
+ var index = (before ? beforeIndex : afterIndex);
269
+ var shift = fixRight ? items.length : before ? 1 : 0;
270
+ this.items = items.map(function (data, i) { return generator(index + i + (!before ? 1 : 0) - shift, data); });
271
+ this._absMinIndex = this.items[0].$index;
272
+ this._absMaxIndex = this.items[this.size - 1].$index;
273
+ if (this.startIndex <= this.absMinIndex) {
274
+ this.startIndex = this.absMinIndex;
275
+ }
276
+ else if (this.startIndex > this.absMaxIndex) {
277
+ this.startIndex = this.absMaxIndex;
278
+ }
279
+ return true;
280
+ };
281
+ Buffer.prototype.updateItems = function (predicate, generator, indexToTrack, fixRight) {
282
+ if (!this.size || Number.isNaN(this.firstIndex)) {
283
+ return { trackedIndex: NaN, toRemove: [] };
284
+ }
285
+ var trackedIndex = indexToTrack;
286
+ var index = fixRight ? this.lastIndex : this.firstIndex;
287
+ var items = [];
288
+ var diff = fixRight ? -1 : 1;
289
+ var limit = this.size - 1;
290
+ var beforeMap = new Map(); // need to persist original $indexes
291
+ var updateArray = Array.prototype[fixRight ? 'unshift' : 'push'];
292
+ var _loop_2 = function (i) {
293
+ var item = this_2.items[i];
294
+ beforeMap.set(item.$index, item);
295
+ var result = predicate(item);
296
+ // if predicate result is falsy or empty array -> delete
297
+ if (!result || (Array.isArray(result) && !result.length)) {
298
+ item.toRemove = true;
299
+ trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : fixRight ? 0 : -1;
300
+ this_2.shiftExtremum(-1, fixRight);
301
+ return "continue";
302
+ }
303
+ // if predicate result is truthy but not array -> leave
304
+ if (!Array.isArray(result)) {
305
+ item.updateIndex(index);
306
+ updateArray.call(items, item);
307
+ index += diff;
308
+ return "continue";
309
+ }
310
+ // if predicate result is non-empty array -> insert/replace
311
+ if (item.$index < indexToTrack) {
312
+ trackedIndex += fixRight ? 0 : result.length - 1;
313
+ }
314
+ else if (item.$index > indexToTrack) {
315
+ trackedIndex += fixRight ? 1 - result.length : 0;
316
+ }
317
+ var toRemove_1 = true;
318
+ var newItems = [];
319
+ (fixRight ? __spreadArray([], __read(result), false).reverse() : result).forEach(function (data, i) {
320
+ var newItem;
321
+ if (item.data === data) {
322
+ if (indexToTrack === item.$index) {
323
+ trackedIndex = index + i * diff;
324
+ }
325
+ item.updateIndex(index + i * diff);
326
+ newItem = item;
327
+ toRemove_1 = false; // insert case
328
+ }
329
+ else {
330
+ newItem = generator(index + i * diff, data);
331
+ newItem.toInsert = true;
332
+ }
333
+ updateArray.call(newItems, newItem);
334
+ });
335
+ item.toRemove = toRemove_1;
336
+ updateArray.call.apply(updateArray, __spreadArray([items], __read(newItems), false));
337
+ index += diff * result.length;
338
+ if (result.length > 1) {
339
+ this_2.shiftExtremum(result.length - 1, fixRight);
340
+ }
341
+ };
342
+ var this_2 = this;
343
+ for (var i = fixRight ? limit : 0; fixRight ? i >= 0 : i <= limit; i += diff) {
344
+ _loop_2(i);
345
+ }
346
+ var toRemove = this.items.filter(function (item) { return item.toRemove; });
347
+ var itemsBefore = Array.from(beforeMap)
348
+ .map(function (_a) {
349
+ var _b = __read(_a, 2), $index = _b[0], _c = _b[1], size = _c.size, toRemove = _c.toRemove;
350
+ return ({ $index: $index, size: size, toRemove: toRemove });
351
+ })
352
+ .sort(function (a, b) { return a.$index - b.$index; });
353
+ this.items = items;
354
+ this.cache.updateSubset(itemsBefore, items, fixRight);
355
+ if (this.finiteAbsMinIndex === this.finiteAbsMaxIndex) {
356
+ trackedIndex = NaN;
357
+ }
358
+ else if (trackedIndex > this.finiteAbsMaxIndex) {
359
+ trackedIndex = this.finiteAbsMaxIndex;
360
+ }
361
+ else if (trackedIndex < this.finiteAbsMinIndex) {
362
+ trackedIndex = this.finiteAbsMinIndex;
363
+ }
364
+ return { trackedIndex: trackedIndex, toRemove: toRemove };
365
+ };
366
+ Buffer.prototype.cacheItem = function (item) {
367
+ this.cache.add(item);
368
+ };
369
+ Buffer.prototype.getFirstVisibleItemIndex = function () {
370
+ var length = this.items.length;
371
+ for (var i = 0; i < length; i++) {
372
+ if (!this.items[i].invisible) {
373
+ return i;
374
+ }
375
+ }
376
+ return -1;
377
+ };
378
+ Buffer.prototype.getLastVisibleItemIndex = function () {
379
+ for (var i = this.items.length - 1; i >= 0; i--) {
380
+ if (!this.items[i].invisible) {
381
+ return i;
382
+ }
383
+ }
384
+ return -1;
385
+ };
386
+ Buffer.prototype.getFirstVisibleItem = function () {
387
+ var index = this.getFirstVisibleItemIndex();
388
+ return index >= 0 ? this.items[index] : void 0;
389
+ };
390
+ Buffer.prototype.getLastVisibleItem = function () {
391
+ var index = this.getLastVisibleItemIndex();
392
+ return index >= 0 ? this.items[index] : void 0;
393
+ };
394
+ Buffer.prototype.getEdgeVisibleItem = function (direction, opposite) {
395
+ return direction === (!opposite ? Direction.forward : Direction.backward)
396
+ ? this.getLastVisibleItem()
397
+ : this.getFirstVisibleItem();
398
+ };
399
+ Buffer.prototype.getVisibleItemsCount = function () {
400
+ return this.items.reduce(function (acc, item) { return acc + (item.invisible ? 0 : 1); }, 0);
401
+ };
402
+ Buffer.prototype.getSizeByIndex = function (index) {
403
+ return this.cache.getSizeByIndex(index);
404
+ };
405
+ Buffer.prototype.checkDefaultSize = function () {
406
+ return this.cache.recalculateDefaultSize();
407
+ };
408
+ return Buffer;
409
+ }());
410
+ export { Buffer };
410
411
  //# sourceMappingURL=buffer.js.map