vscroll 1.5.3 → 1.5.5

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 (335) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +283 -273
  3. package/dist/bundles/vscroll.esm5.js +5558 -5525
  4. package/dist/bundles/vscroll.esm5.js.map +1 -1
  5. package/dist/bundles/vscroll.esm5.min.js +2 -2
  6. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.js +5045 -5015
  8. package/dist/bundles/vscroll.esm6.js.map +1 -1
  9. package/dist/bundles/vscroll.esm6.min.js +2 -2
  10. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.js +5559 -5526
  12. package/dist/bundles/vscroll.umd.js.map +1 -1
  13. package/dist/bundles/vscroll.umd.min.js +2 -2
  14. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/context.js +43 -43
  16. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  17. package/dist/esm2015/classes/adapter/props.js +268 -268
  18. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  19. package/dist/esm2015/classes/adapter/wanted.js +28 -28
  20. package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
  21. package/dist/esm2015/classes/adapter.js +455 -442
  22. package/dist/esm2015/classes/adapter.js.map +1 -1
  23. package/dist/esm2015/classes/buffer/cache.js +246 -246
  24. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  25. package/dist/esm2015/classes/buffer/checkCall.js +48 -48
  26. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  27. package/dist/esm2015/classes/buffer/defaultSize.js +127 -127
  28. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  29. package/dist/esm2015/classes/buffer.js +342 -342
  30. package/dist/esm2015/classes/buffer.js.map +1 -1
  31. package/dist/esm2015/classes/datasource.js +28 -28
  32. package/dist/esm2015/classes/domRoutines.js +166 -166
  33. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  34. package/dist/esm2015/classes/item.js +61 -61
  35. package/dist/esm2015/classes/item.js.map +1 -1
  36. package/dist/esm2015/classes/logger.js +186 -186
  37. package/dist/esm2015/classes/logger.js.map +1 -1
  38. package/dist/esm2015/classes/paddings.js +72 -72
  39. package/dist/esm2015/classes/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 +122 -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 +59 -59
  54. package/dist/esm2015/classes/viewport.js +72 -72
  55. package/dist/esm2015/classes/viewport.js.map +1 -1
  56. package/dist/esm2015/index.js +8 -8
  57. package/dist/esm2015/index.js.map +1 -1
  58. package/dist/esm2015/inputs/adapter.js +230 -230
  59. package/dist/esm2015/inputs/adapter.js.map +1 -1
  60. package/dist/esm2015/inputs/common.js +11 -11
  61. package/dist/esm2015/inputs/common.js.map +1 -1
  62. package/dist/esm2015/inputs/datasource.js +20 -20
  63. package/dist/esm2015/inputs/datasource.js.map +1 -1
  64. package/dist/esm2015/inputs/index.js +6 -6
  65. package/dist/esm2015/inputs/index.js.map +1 -1
  66. package/dist/esm2015/inputs/settings.js +146 -146
  67. package/dist/esm2015/inputs/settings.js.map +1 -1
  68. package/dist/esm2015/inputs/validation.js +374 -374
  69. package/dist/esm2015/inputs/validation.js.map +1 -1
  70. package/dist/esm2015/interfaces/adapter.js +1 -1
  71. package/dist/esm2015/interfaces/datasource.js +1 -1
  72. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  73. package/dist/esm2015/interfaces/index.js +1 -1
  74. package/dist/esm2015/interfaces/index.js.map +1 -1
  75. package/dist/esm2015/interfaces/item.js +1 -1
  76. package/dist/esm2015/interfaces/item.js.map +1 -1
  77. package/dist/esm2015/interfaces/process.js +1 -1
  78. package/dist/esm2015/interfaces/routines.js +1 -1
  79. package/dist/esm2015/interfaces/routines.js.map +1 -1
  80. package/dist/esm2015/interfaces/settings.js +1 -1
  81. package/dist/esm2015/interfaces/state.js +1 -1
  82. package/dist/esm2015/interfaces/validation.js +1 -1
  83. package/dist/esm2015/interfaces/validation.js.map +1 -1
  84. package/dist/esm2015/interfaces/workflow.js +1 -1
  85. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  86. package/dist/esm2015/processes/adapter/append.js +35 -35
  87. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  88. package/dist/esm2015/processes/adapter/check.js +32 -32
  89. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  90. package/dist/esm2015/processes/adapter/clip.js +12 -12
  91. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  92. package/dist/esm2015/processes/adapter/fix.js +77 -77
  93. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  94. package/dist/esm2015/processes/adapter/insert.js +73 -73
  95. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  96. package/dist/esm2015/processes/adapter/reload.js +19 -20
  97. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  98. package/dist/esm2015/processes/adapter/remove.js +102 -102
  99. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  100. package/dist/esm2015/processes/adapter/replace.js +39 -39
  101. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  102. package/dist/esm2015/processes/adapter/reset.js +35 -35
  103. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  104. package/dist/esm2015/processes/adapter/update.js +43 -43
  105. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  106. package/dist/esm2015/processes/adjust.js +141 -141
  107. package/dist/esm2015/processes/clip.js +49 -49
  108. package/dist/esm2015/processes/end.js +52 -52
  109. package/dist/esm2015/processes/end.js.map +1 -1
  110. package/dist/esm2015/processes/fetch.js +91 -90
  111. package/dist/esm2015/processes/fetch.js.map +1 -1
  112. package/dist/esm2015/processes/index.js +23 -23
  113. package/dist/esm2015/processes/init.js +14 -14
  114. package/dist/esm2015/processes/init.js.map +1 -1
  115. package/dist/esm2015/processes/misc/base.js +30 -30
  116. package/dist/esm2015/processes/misc/base.js.map +1 -1
  117. package/dist/esm2015/processes/misc/enums.js +35 -35
  118. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  119. package/dist/esm2015/processes/misc/index.js +2 -2
  120. package/dist/esm2015/processes/misc/index.js.map +1 -1
  121. package/dist/esm2015/processes/postFetch.js +64 -64
  122. package/dist/esm2015/processes/postFetch.js.map +1 -1
  123. package/dist/esm2015/processes/preClip.js +85 -85
  124. package/dist/esm2015/processes/preClip.js.map +1 -1
  125. package/dist/esm2015/processes/preFetch.js +240 -240
  126. package/dist/esm2015/processes/preFetch.js.map +1 -1
  127. package/dist/esm2015/processes/render.js +54 -54
  128. package/dist/esm2015/processes/render.js.map +1 -1
  129. package/dist/esm2015/processes/scroll.js +97 -97
  130. package/dist/esm2015/processes/scroll.js.map +1 -1
  131. package/dist/esm2015/processes/start.js +11 -11
  132. package/dist/esm2015/processes/start.js.map +1 -1
  133. package/dist/esm2015/scroller.js +76 -69
  134. package/dist/esm2015/scroller.js.map +1 -1
  135. package/dist/esm2015/version.js +4 -4
  136. package/dist/esm2015/version.js.map +1 -1
  137. package/dist/esm2015/workflow-transducer.js +210 -210
  138. package/dist/esm2015/workflow-transducer.js.map +1 -1
  139. package/dist/esm2015/workflow.js +161 -151
  140. package/dist/esm2015/workflow.js.map +1 -1
  141. package/dist/esm5/classes/adapter/context.js +50 -50
  142. package/dist/esm5/classes/adapter/context.js.map +1 -1
  143. package/dist/esm5/classes/adapter/props.js +268 -268
  144. package/dist/esm5/classes/adapter/props.js.map +1 -1
  145. package/dist/esm5/classes/adapter/wanted.js +29 -29
  146. package/dist/esm5/classes/adapter/wanted.js.map +1 -1
  147. package/dist/esm5/classes/adapter.js +504 -490
  148. package/dist/esm5/classes/adapter.js.map +1 -1
  149. package/dist/esm5/classes/buffer/cache.js +260 -260
  150. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  151. package/dist/esm5/classes/buffer/checkCall.js +56 -56
  152. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  153. package/dist/esm5/classes/buffer/defaultSize.js +145 -145
  154. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  155. package/dist/esm5/classes/buffer.js +409 -409
  156. package/dist/esm5/classes/buffer.js.map +1 -1
  157. package/dist/esm5/classes/datasource.js +37 -37
  158. package/dist/esm5/classes/domRoutines.js +182 -182
  159. package/dist/esm5/classes/domRoutines.js.map +1 -1
  160. package/dist/esm5/classes/item.js +76 -76
  161. package/dist/esm5/classes/item.js.map +1 -1
  162. package/dist/esm5/classes/logger.js +210 -210
  163. package/dist/esm5/classes/logger.js.map +1 -1
  164. package/dist/esm5/classes/paddings.js +80 -80
  165. package/dist/esm5/classes/reactive.js +69 -69
  166. package/dist/esm5/classes/reactive.js.map +1 -1
  167. package/dist/esm5/classes/settings.js +47 -47
  168. package/dist/esm5/classes/settings.js.map +1 -1
  169. package/dist/esm5/classes/state/clip.js +22 -22
  170. package/dist/esm5/classes/state/clip.js.map +1 -1
  171. package/dist/esm5/classes/state/cycle.js +75 -75
  172. package/dist/esm5/classes/state/cycle.js.map +1 -1
  173. package/dist/esm5/classes/state/fetch.js +148 -148
  174. package/dist/esm5/classes/state/fetch.js.map +1 -1
  175. package/dist/esm5/classes/state/render.js +20 -20
  176. package/dist/esm5/classes/state/render.js.map +1 -1
  177. package/dist/esm5/classes/state/scroll.js +32 -32
  178. package/dist/esm5/classes/state/scroll.js.map +1 -1
  179. package/dist/esm5/classes/state.js +66 -66
  180. package/dist/esm5/classes/viewport.js +79 -79
  181. package/dist/esm5/classes/viewport.js.map +1 -1
  182. package/dist/esm5/index.js +8 -8
  183. package/dist/esm5/index.js.map +1 -1
  184. package/dist/esm5/inputs/adapter.js +231 -231
  185. package/dist/esm5/inputs/adapter.js.map +1 -1
  186. package/dist/esm5/inputs/common.js +11 -11
  187. package/dist/esm5/inputs/common.js.map +1 -1
  188. package/dist/esm5/inputs/datasource.js +21 -21
  189. package/dist/esm5/inputs/datasource.js.map +1 -1
  190. package/dist/esm5/inputs/index.js +6 -6
  191. package/dist/esm5/inputs/index.js.map +1 -1
  192. package/dist/esm5/inputs/settings.js +147 -147
  193. package/dist/esm5/inputs/settings.js.map +1 -1
  194. package/dist/esm5/inputs/validation.js +396 -396
  195. package/dist/esm5/inputs/validation.js.map +1 -1
  196. package/dist/esm5/interfaces/adapter.js +1 -1
  197. package/dist/esm5/interfaces/datasource.js +1 -1
  198. package/dist/esm5/interfaces/datasource.js.map +1 -1
  199. package/dist/esm5/interfaces/index.js +1 -1
  200. package/dist/esm5/interfaces/index.js.map +1 -1
  201. package/dist/esm5/interfaces/item.js +1 -1
  202. package/dist/esm5/interfaces/item.js.map +1 -1
  203. package/dist/esm5/interfaces/process.js +1 -1
  204. package/dist/esm5/interfaces/routines.js +1 -1
  205. package/dist/esm5/interfaces/routines.js.map +1 -1
  206. package/dist/esm5/interfaces/settings.js +1 -1
  207. package/dist/esm5/interfaces/state.js +1 -1
  208. package/dist/esm5/interfaces/validation.js +1 -1
  209. package/dist/esm5/interfaces/validation.js.map +1 -1
  210. package/dist/esm5/interfaces/workflow.js +1 -1
  211. package/dist/esm5/interfaces/workflow.js.map +1 -1
  212. package/dist/esm5/processes/adapter/append.js +43 -43
  213. package/dist/esm5/processes/adapter/append.js.map +1 -1
  214. package/dist/esm5/processes/adapter/check.js +39 -39
  215. package/dist/esm5/processes/adapter/check.js.map +1 -1
  216. package/dist/esm5/processes/adapter/clip.js +19 -19
  217. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  218. package/dist/esm5/processes/adapter/fix.js +89 -89
  219. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  220. package/dist/esm5/processes/adapter/insert.js +81 -81
  221. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  222. package/dist/esm5/processes/adapter/reload.js +26 -27
  223. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  224. package/dist/esm5/processes/adapter/remove.js +115 -115
  225. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  226. package/dist/esm5/processes/adapter/replace.js +47 -47
  227. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  228. package/dist/esm5/processes/adapter/reset.js +42 -42
  229. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  230. package/dist/esm5/processes/adapter/update.js +59 -59
  231. package/dist/esm5/processes/adapter/update.js.map +1 -1
  232. package/dist/esm5/processes/adjust.js +152 -152
  233. package/dist/esm5/processes/clip.js +60 -60
  234. package/dist/esm5/processes/end.js +63 -63
  235. package/dist/esm5/processes/end.js.map +1 -1
  236. package/dist/esm5/processes/fetch.js +102 -101
  237. package/dist/esm5/processes/fetch.js.map +1 -1
  238. package/dist/esm5/processes/index.js +23 -23
  239. package/dist/esm5/processes/init.js +21 -21
  240. package/dist/esm5/processes/init.js.map +1 -1
  241. package/dist/esm5/processes/misc/base.js +44 -44
  242. package/dist/esm5/processes/misc/base.js.map +1 -1
  243. package/dist/esm5/processes/misc/enums.js +35 -35
  244. package/dist/esm5/processes/misc/enums.js.map +1 -1
  245. package/dist/esm5/processes/misc/index.js +2 -2
  246. package/dist/esm5/processes/misc/index.js.map +1 -1
  247. package/dist/esm5/processes/postFetch.js +73 -73
  248. package/dist/esm5/processes/postFetch.js.map +1 -1
  249. package/dist/esm5/processes/preClip.js +94 -94
  250. package/dist/esm5/processes/preClip.js.map +1 -1
  251. package/dist/esm5/processes/preFetch.js +247 -247
  252. package/dist/esm5/processes/preFetch.js.map +1 -1
  253. package/dist/esm5/processes/render.js +63 -63
  254. package/dist/esm5/processes/render.js.map +1 -1
  255. package/dist/esm5/processes/scroll.js +107 -107
  256. package/dist/esm5/processes/scroll.js.map +1 -1
  257. package/dist/esm5/processes/start.js +18 -18
  258. package/dist/esm5/processes/start.js.map +1 -1
  259. package/dist/esm5/scroller.js +82 -73
  260. package/dist/esm5/scroller.js.map +1 -1
  261. package/dist/esm5/version.js +4 -4
  262. package/dist/esm5/version.js.map +1 -1
  263. package/dist/esm5/workflow-transducer.js +212 -212
  264. package/dist/esm5/workflow-transducer.js.map +1 -1
  265. package/dist/esm5/workflow.js +186 -176
  266. package/dist/esm5/workflow.js.map +1 -1
  267. package/dist/typings/classes/adapter/context.d.ts +4 -4
  268. package/dist/typings/classes/adapter/props.d.ts +47 -47
  269. package/dist/typings/classes/adapter/wanted.d.ts +14 -14
  270. package/dist/typings/classes/adapter.d.ts +74 -64
  271. package/dist/typings/classes/buffer/cache.d.ts +95 -95
  272. package/dist/typings/classes/buffer/checkCall.d.ts +12 -12
  273. package/dist/typings/classes/buffer/defaultSize.d.ts +32 -32
  274. package/dist/typings/classes/buffer.d.ts +64 -64
  275. package/dist/typings/classes/datasource.d.ts +27 -27
  276. package/dist/typings/classes/domRoutines.d.ts +33 -33
  277. package/dist/typings/classes/item.d.ts +28 -28
  278. package/dist/typings/classes/logger.d.ts +28 -28
  279. package/dist/typings/classes/paddings.d.ts +22 -22
  280. package/dist/typings/classes/reactive.d.ts +21 -21
  281. package/dist/typings/classes/settings.d.ts +119 -119
  282. package/dist/typings/classes/state/clip.d.ts +9 -9
  283. package/dist/typings/classes/state/cycle.d.ts +29 -29
  284. package/dist/typings/classes/state/fetch.d.ts +62 -62
  285. package/dist/typings/classes/state/render.d.ts +9 -9
  286. package/dist/typings/classes/state/scroll.d.ts +16 -16
  287. package/dist/typings/classes/state.d.ts +27 -27
  288. package/dist/typings/classes/viewport.d.ts +32 -32
  289. package/dist/typings/index.d.ts +9 -9
  290. package/dist/typings/inputs/adapter.d.ts +5 -5
  291. package/dist/typings/inputs/common.d.ts +9 -9
  292. package/dist/typings/inputs/datasource.d.ts +7 -7
  293. package/dist/typings/inputs/index.d.ts +6 -6
  294. package/dist/typings/inputs/settings.d.ts +41 -41
  295. package/dist/typings/inputs/validation.d.ts +83 -83
  296. package/dist/typings/interfaces/adapter.d.ts +156 -156
  297. package/dist/typings/interfaces/datasource.d.ts +26 -26
  298. package/dist/typings/interfaces/index.d.ts +10 -10
  299. package/dist/typings/interfaces/item.d.ts +8 -8
  300. package/dist/typings/interfaces/process.d.ts +35 -35
  301. package/dist/typings/interfaces/routines.d.ts +157 -157
  302. package/dist/typings/interfaces/settings.d.ts +31 -31
  303. package/dist/typings/interfaces/state.d.ts +22 -22
  304. package/dist/typings/interfaces/validation.d.ts +33 -33
  305. package/dist/typings/interfaces/workflow.d.ts +53 -53
  306. package/dist/typings/processes/adapter/append.d.ts +14 -14
  307. package/dist/typings/processes/adapter/check.d.ts +6 -6
  308. package/dist/typings/processes/adapter/clip.d.ts +7 -7
  309. package/dist/typings/processes/adapter/fix.d.ts +13 -13
  310. package/dist/typings/processes/adapter/insert.d.ts +11 -11
  311. package/dist/typings/processes/adapter/reload.d.ts +6 -6
  312. package/dist/typings/processes/adapter/remove.d.ts +11 -11
  313. package/dist/typings/processes/adapter/replace.d.ts +8 -8
  314. package/dist/typings/processes/adapter/reset.d.ts +7 -7
  315. package/dist/typings/processes/adapter/update.d.ts +8 -8
  316. package/dist/typings/processes/adjust.d.ts +10 -10
  317. package/dist/typings/processes/clip.d.ts +7 -7
  318. package/dist/typings/processes/end.d.ts +10 -10
  319. package/dist/typings/processes/fetch.d.ts +18 -18
  320. package/dist/typings/processes/index.d.ts +23 -23
  321. package/dist/typings/processes/init.d.ts +7 -7
  322. package/dist/typings/processes/misc/base.d.ts +4 -4
  323. package/dist/typings/processes/misc/enums.d.ts +32 -32
  324. package/dist/typings/processes/misc/index.d.ts +2 -2
  325. package/dist/typings/processes/postFetch.d.ts +8 -8
  326. package/dist/typings/processes/preClip.d.ts +12 -12
  327. package/dist/typings/processes/preFetch.d.ts +17 -17
  328. package/dist/typings/processes/render.d.ts +9 -9
  329. package/dist/typings/processes/scroll.d.ts +13 -13
  330. package/dist/typings/processes/start.d.ts +6 -6
  331. package/dist/typings/scroller.d.ts +26 -26
  332. package/dist/typings/version.d.ts +5 -5
  333. package/dist/typings/workflow-transducer.d.ts +2 -2
  334. package/dist/typings/workflow.d.ts +29 -28
  335. package/package.json +68 -68
@@ -1,50 +1,50 @@
1
- import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
2
- import { Direction } from '../inputs/index';
3
- export default class Clip extends BaseProcessFactory(CommonProcess.clip) {
4
- static run(scroller) {
5
- const { workflow } = scroller;
6
- Clip.doClip(scroller);
7
- workflow.call({
8
- process: Clip.process,
9
- status: ProcessStatus.next
10
- });
11
- }
12
- static doClip(scroller) {
13
- const { buffer, viewport: { paddings }, state: { clip }, logger } = scroller;
14
- const size = { [Direction.backward]: 0, [Direction.forward]: 0 };
15
- logger.stat(`before clip (${++clip.callCount})`);
16
- const itemsToRemove = buffer.items.filter(item => {
17
- if (!item.toRemove) {
18
- return false;
19
- }
20
- item.hide();
21
- size[item.removeDirection] += item.size;
22
- return true;
23
- });
24
- if (itemsToRemove.length) {
25
- if (size[Direction.backward]) {
26
- paddings.byDirection(Direction.backward).size += size[Direction.backward];
27
- }
28
- if (size[Direction.forward]) {
29
- paddings.byDirection(Direction.forward).size += size[Direction.forward];
30
- }
31
- if (scroller.settings.onBeforeClip) {
32
- scroller.settings.onBeforeClip(itemsToRemove.map(item => item.get()));
33
- }
34
- }
35
- buffer.clip();
36
- logger.log(() => {
37
- const list = itemsToRemove.map(({ $index }) => $index);
38
- return list.length
39
- ? [
40
- `clipped ${list.length} item(s) from Buffer` +
41
- (size.backward ? `, +${size.backward} fwd px` : '') +
42
- (size.forward ? `, +${size.forward} bwd px` : '') +
43
- `, range: [${list[0]}..${list[list.length - 1]}]`
44
- ]
45
- : 'clipped 0 items from Buffer';
46
- });
47
- logger.stat('after clip');
48
- }
49
- }
1
+ import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
2
+ import { Direction } from '../inputs/index';
3
+ export default class Clip extends BaseProcessFactory(CommonProcess.clip) {
4
+ static run(scroller) {
5
+ const { workflow } = scroller;
6
+ Clip.doClip(scroller);
7
+ workflow.call({
8
+ process: Clip.process,
9
+ status: ProcessStatus.next
10
+ });
11
+ }
12
+ static doClip(scroller) {
13
+ const { buffer, viewport: { paddings }, state: { clip }, logger } = scroller;
14
+ const size = { [Direction.backward]: 0, [Direction.forward]: 0 };
15
+ logger.stat(`before clip (${++clip.callCount})`);
16
+ const itemsToRemove = buffer.items.filter(item => {
17
+ if (!item.toRemove) {
18
+ return false;
19
+ }
20
+ item.hide();
21
+ size[item.removeDirection] += item.size;
22
+ return true;
23
+ });
24
+ if (itemsToRemove.length) {
25
+ if (size[Direction.backward]) {
26
+ paddings.byDirection(Direction.backward).size += size[Direction.backward];
27
+ }
28
+ if (size[Direction.forward]) {
29
+ paddings.byDirection(Direction.forward).size += size[Direction.forward];
30
+ }
31
+ if (scroller.settings.onBeforeClip) {
32
+ scroller.settings.onBeforeClip(itemsToRemove.map(item => item.get()));
33
+ }
34
+ }
35
+ buffer.clip();
36
+ logger.log(() => {
37
+ const list = itemsToRemove.map(({ $index }) => $index);
38
+ return list.length
39
+ ? [
40
+ `clipped ${list.length} item(s) from Buffer` +
41
+ (size.backward ? `, +${size.backward} fwd px` : '') +
42
+ (size.forward ? `, +${size.forward} bwd px` : '') +
43
+ `, range: [${list[0]}..${list[list.length - 1]}]`
44
+ ]
45
+ : 'clipped 0 items from Buffer';
46
+ });
47
+ logger.stat('after clip');
48
+ }
49
+ }
50
50
  //# sourceMappingURL=clip.js.map
@@ -1,53 +1,53 @@
1
- import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
2
- const isInterrupted = ({ call }) => !!call.interrupted;
3
- export default class End extends BaseProcessFactory(CommonProcess.end) {
4
- static run(scroller, { error } = {}) {
5
- const { workflow, state: { cycle: { interrupter } } } = scroller;
6
- if (!error && !interrupter) {
7
- // set out params accessible via Adapter
8
- End.calculateParams(scroller);
9
- }
10
- // explicit interruption for we don't want to go through the inner loop finalizing
11
- if (isInterrupted(workflow)) {
12
- workflow.call({ process: End.process, status: ProcessStatus.done });
13
- return;
14
- }
15
- const next = End.shouldContinueRun(scroller, error);
16
- scroller.state.endInnerLoop();
17
- workflow.call({
18
- process: End.process,
19
- status: next ? ProcessStatus.next : ProcessStatus.done,
20
- payload: Object.assign({}, (interrupter ? { process: interrupter } : {}))
21
- });
22
- }
23
- static calculateParams(scroller) {
24
- const { adapter, workflow } = scroller;
25
- adapter.setFirstOrLastVisible({ first: true, workflow });
26
- adapter.setFirstOrLastVisible({ last: true, workflow });
27
- }
28
- static shouldContinueRun(scroller, error) {
29
- const { cycle, fetch, render } = scroller.state;
30
- // Adapter.reload or Adapter.reset
31
- if (cycle.interrupter) {
32
- return true;
33
- }
34
- // critical error
35
- if (error) {
36
- return false;
37
- }
38
- // Adapter.check
39
- if (fetch.simulate && fetch.isCheck && !render.noSize) {
40
- return true;
41
- }
42
- // Adapter.remove or Adapter.update with clip
43
- if (fetch.simulate && fetch.doRemove) {
44
- return true;
45
- }
46
- // common inner loop (App start, scroll, Adapter.clip) with full fetch
47
- if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {
48
- return true;
49
- }
50
- return false;
51
- }
52
- }
1
+ import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
2
+ const isInterrupted = ({ call }) => !!call.interrupted;
3
+ export default class End extends BaseProcessFactory(CommonProcess.end) {
4
+ static run(scroller, { error } = {}) {
5
+ const { workflow, state: { cycle: { interrupter } } } = scroller;
6
+ if (!error && !interrupter) {
7
+ // set out params accessible via Adapter
8
+ End.calculateParams(scroller);
9
+ }
10
+ // explicit interruption for we don't want to go through the inner loop finalizing
11
+ if (isInterrupted(workflow)) {
12
+ workflow.call({ process: End.process, status: ProcessStatus.done });
13
+ return;
14
+ }
15
+ const next = End.shouldContinueRun(scroller, error);
16
+ scroller.state.endInnerLoop();
17
+ workflow.call({
18
+ process: End.process,
19
+ status: next ? ProcessStatus.next : ProcessStatus.done,
20
+ payload: Object.assign({}, (interrupter ? { process: interrupter } : {}))
21
+ });
22
+ }
23
+ static calculateParams(scroller) {
24
+ const { adapter, workflow } = scroller;
25
+ adapter.setFirstOrLastVisible({ first: true, workflow });
26
+ adapter.setFirstOrLastVisible({ last: true, workflow });
27
+ }
28
+ static shouldContinueRun(scroller, error) {
29
+ const { cycle, fetch, render } = scroller.state;
30
+ // Adapter.reload or Adapter.reset
31
+ if (cycle.interrupter) {
32
+ return true;
33
+ }
34
+ // critical error
35
+ if (error) {
36
+ return false;
37
+ }
38
+ // Adapter.check
39
+ if (fetch.simulate && fetch.isCheck && !render.noSize) {
40
+ return true;
41
+ }
42
+ // Adapter.remove or Adapter.update with clip
43
+ if (fetch.simulate && fetch.doRemove) {
44
+ return true;
45
+ }
46
+ // common inner loop (App start, scroll, Adapter.clip) with full fetch
47
+ if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+ }
53
53
  //# sourceMappingURL=end.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/processes/end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhF,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAElF,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC;IAEpE,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,EAAE,KAAK,KAA0B,EAAE;QAChE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;QAEjE,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,wCAAwC;YACxC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAED,kFAAkF;QAClF,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,OAAO;SACR;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE9B,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;YACtD,OAAO,oBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,QAAkB;QACvC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAEvC,OAAO,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,QAAkB,EAAE,KAAc;QACzD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;QAChD,kCAAkC;QAClC,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QACD,iBAAiB;QACjB,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QACD,gBAAgB;QAChB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACrD,OAAO,IAAI,CAAC;SACb;QACD,6CAA6C;QAC7C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QACD,sEAAsE;QACtE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE;YACtF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAEF","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { ScrollerWorkflow } from '../interfaces/index';\n\nconst isInterrupted = ({ call }: ScrollerWorkflow): boolean => !!call.interrupted;\n\nexport default class End extends BaseProcessFactory(CommonProcess.end) {\n\n static run(scroller: Scroller, { error }: { error?: unknown } = {}): void {\n const { workflow, state: { cycle: { interrupter } } } = scroller;\n\n if (!error && !interrupter) {\n // set out params accessible via Adapter\n End.calculateParams(scroller);\n }\n\n // explicit interruption for we don't want to go through the inner loop finalizing\n if (isInterrupted(workflow)) {\n workflow.call({ process: End.process, status: ProcessStatus.done });\n return;\n }\n\n const next = End.shouldContinueRun(scroller, error);\n scroller.state.endInnerLoop();\n\n workflow.call({\n process: End.process,\n status: next ? ProcessStatus.next : ProcessStatus.done,\n payload: { ...(interrupter ? { process: interrupter } : {}) }\n });\n }\n\n static calculateParams(scroller: Scroller): void {\n const { adapter, workflow } = scroller;\n\n adapter.setFirstOrLastVisible({ first: true, workflow });\n adapter.setFirstOrLastVisible({ last: true, workflow });\n }\n\n static shouldContinueRun(scroller: Scroller, error: unknown): boolean {\n const { cycle, fetch, render } = scroller.state;\n // Adapter.reload or Adapter.reset\n if (cycle.interrupter) {\n return true;\n }\n // critical error\n if (error) {\n return false;\n }\n // Adapter.check\n if (fetch.simulate && fetch.isCheck && !render.noSize) {\n return true;\n }\n // Adapter.remove or Adapter.update with clip\n if (fetch.simulate && fetch.doRemove) {\n return true;\n }\n // common inner loop (App start, scroll, Adapter.clip) with full fetch\n if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {\n return true;\n }\n return false;\n }\n\n}\n"]}
1
+ {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/processes/end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhF,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAElF,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC;IAEpE,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,EAAE,KAAK,KAA0B,EAAE;QAChE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;QAEjE,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,wCAAwC;YACxC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAED,kFAAkF;QAClF,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,OAAO;SACR;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE9B,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;YACtD,OAAO,oBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,QAAkB;QACvC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAEvC,OAAO,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,QAAkB,EAAE,KAAc;QACzD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;QAChD,kCAAkC;QAClC,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QACD,iBAAiB;QACjB,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QACD,gBAAgB;QAChB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACrD,OAAO,IAAI,CAAC;SACb;QACD,6CAA6C;QAC7C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QACD,sEAAsE;QACtE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE;YACtF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAEF","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { ScrollerWorkflow } from '../interfaces/index';\r\n\r\nconst isInterrupted = ({ call }: ScrollerWorkflow): boolean => !!call.interrupted;\r\n\r\nexport default class End extends BaseProcessFactory(CommonProcess.end) {\r\n\r\n static run(scroller: Scroller, { error }: { error?: unknown } = {}): void {\r\n const { workflow, state: { cycle: { interrupter } } } = scroller;\r\n\r\n if (!error && !interrupter) {\r\n // set out params accessible via Adapter\r\n End.calculateParams(scroller);\r\n }\r\n\r\n // explicit interruption for we don't want to go through the inner loop finalizing\r\n if (isInterrupted(workflow)) {\r\n workflow.call({ process: End.process, status: ProcessStatus.done });\r\n return;\r\n }\r\n\r\n const next = End.shouldContinueRun(scroller, error);\r\n scroller.state.endInnerLoop();\r\n\r\n workflow.call({\r\n process: End.process,\r\n status: next ? ProcessStatus.next : ProcessStatus.done,\r\n payload: { ...(interrupter ? { process: interrupter } : {}) }\r\n });\r\n }\r\n\r\n static calculateParams(scroller: Scroller): void {\r\n const { adapter, workflow } = scroller;\r\n\r\n adapter.setFirstOrLastVisible({ first: true, workflow });\r\n adapter.setFirstOrLastVisible({ last: true, workflow });\r\n }\r\n\r\n static shouldContinueRun(scroller: Scroller, error: unknown): boolean {\r\n const { cycle, fetch, render } = scroller.state;\r\n // Adapter.reload or Adapter.reset\r\n if (cycle.interrupter) {\r\n return true;\r\n }\r\n // critical error\r\n if (error) {\r\n return false;\r\n }\r\n // Adapter.check\r\n if (fetch.simulate && fetch.isCheck && !render.noSize) {\r\n return true;\r\n }\r\n // Adapter.remove or Adapter.update with clip\r\n if (fetch.simulate && fetch.doRemove) {\r\n return true;\r\n }\r\n // common inner loop (App start, scroll, Adapter.clip) with full fetch\r\n if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n"]}
@@ -1,91 +1,92 @@
1
- import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
2
- export default class Fetch extends BaseProcessFactory(CommonProcess.fetch) {
3
- static run(scroller) {
4
- const { workflow } = scroller;
5
- const box = {
6
- success: (data) => {
7
- scroller.logger.log(() => `resolved ${data.length} items ` +
8
- `(index = ${scroller.state.fetch.index}, count = ${scroller.state.fetch.count})`);
9
- scroller.state.fetch.newItemsData = data;
10
- workflow.call({
11
- process: Fetch.process,
12
- status: ProcessStatus.next
13
- });
14
- },
15
- fail: (error) => workflow.call({
16
- process: Fetch.process,
17
- status: ProcessStatus.error,
18
- payload: { error }
19
- })
20
- };
21
- const result = Fetch.get(scroller);
22
- Fetch.complete(scroller, box, result);
23
- }
24
- static complete(scroller, box, result) {
25
- if (Object.prototype.hasOwnProperty.call(result, 'data')) {
26
- const { data, error, isError } = result;
27
- if (!isError) {
28
- box.success(data || []);
29
- }
30
- else {
31
- box.fail(error);
32
- }
33
- }
34
- else {
35
- const { state: { scroll, fetch }, viewport } = scroller;
36
- if (scroll.positionBeforeAsync === null) {
37
- scroll.positionBeforeAsync = viewport.scrollPosition;
38
- }
39
- fetch.cancel = () => {
40
- box.success = () => null;
41
- box.fail = () => null;
42
- };
43
- result.then((data) => box.success(data), (error) => box.fail(error));
44
- }
45
- }
46
- static get(scroller) {
47
- const _get = scroller.datasource.get;
48
- const { index, count } = scroller.state.fetch;
49
- let immediateData, immediateError;
50
- let resolve, reject;
51
- const done = (data) => {
52
- if (!resolve) {
53
- immediateData = data || null;
54
- return;
55
- }
56
- resolve(data);
57
- };
58
- const fail = (error) => {
59
- if (!reject) {
60
- immediateError = error || null;
61
- return;
62
- }
63
- reject(error);
64
- };
65
- const getResult = _get(index, count, done, fail);
66
- if (getResult && typeof getResult === 'object' && getResult !== null) {
67
- if (typeof getResult.then === 'function') {
68
- return getResult;
69
- }
70
- else if (typeof getResult.subscribe === 'function') {
71
- const sub = getResult.subscribe(done, fail, () => {
72
- if (sub && typeof sub === 'object' && typeof sub.unsubscribe === 'function') {
73
- sub.unsubscribe();
74
- }
75
- });
76
- }
77
- }
78
- if (immediateData || immediateError) { // callback case or immediate observable
79
- return {
80
- data: immediateError ? null : (immediateData || []),
81
- error: immediateError,
82
- isError: !!immediateError
83
- };
84
- }
85
- return new Promise((_resolve, _reject) => {
86
- resolve = _resolve;
87
- reject = _reject;
88
- });
89
- }
90
- }
1
+ import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
2
+ export default class Fetch extends BaseProcessFactory(CommonProcess.fetch) {
3
+ static run(scroller) {
4
+ const { workflow } = scroller;
5
+ const box = {
6
+ success: (data) => {
7
+ scroller.logger.log(() => `resolved ${data.length} items ` +
8
+ `(index = ${scroller.state.fetch.index}, count = ${scroller.state.fetch.count})`);
9
+ scroller.state.fetch.newItemsData = data;
10
+ workflow.call({
11
+ process: Fetch.process,
12
+ status: ProcessStatus.next
13
+ });
14
+ },
15
+ fail: (error) => workflow.call({
16
+ process: Fetch.process,
17
+ status: ProcessStatus.error,
18
+ payload: { error }
19
+ })
20
+ };
21
+ const result = Fetch.get(scroller);
22
+ Fetch.complete(scroller, box, result);
23
+ }
24
+ static complete(scroller, box, result) {
25
+ if (Object.prototype.hasOwnProperty.call(result, 'data')) {
26
+ const { data, error, isError } = result;
27
+ if (!isError) {
28
+ box.success(data || []);
29
+ }
30
+ else {
31
+ box.fail(error);
32
+ }
33
+ }
34
+ else {
35
+ const { state: { scroll, fetch }, viewport } = scroller;
36
+ if (scroll.positionBeforeAsync === null) {
37
+ scroll.positionBeforeAsync = viewport.scrollPosition;
38
+ }
39
+ fetch.cancel = () => {
40
+ box.success = () => null;
41
+ box.fail = () => null;
42
+ };
43
+ result.then((data) => box.success(data), (error) => box.fail(error));
44
+ }
45
+ }
46
+ static get(scroller) {
47
+ const _get = scroller.datasource.get;
48
+ const { index, count } = scroller.state.fetch;
49
+ let immediateData, immediateError;
50
+ let resolve, reject;
51
+ const done = (data) => {
52
+ if (!resolve) {
53
+ immediateData = data || null;
54
+ return;
55
+ }
56
+ resolve(data);
57
+ };
58
+ const fail = (error) => {
59
+ if (!reject) {
60
+ immediateError = error || null;
61
+ return;
62
+ }
63
+ reject(error);
64
+ };
65
+ const getResult = _get(index, count, done, fail);
66
+ if (getResult && typeof getResult === 'object' && getResult !== null) {
67
+ if (typeof getResult.then === 'function') {
68
+ return getResult;
69
+ }
70
+ else if (typeof getResult.subscribe === 'function') {
71
+ let sub = void 0;
72
+ sub = getResult.subscribe(done, fail, () => {
73
+ if (sub && typeof sub === 'object' && typeof sub.unsubscribe === 'function') {
74
+ sub.unsubscribe();
75
+ }
76
+ });
77
+ }
78
+ }
79
+ if (immediateData || immediateError) { // callback case or immediate observable
80
+ return {
81
+ data: immediateError ? null : (immediateData || []),
82
+ error: immediateError,
83
+ isError: !!immediateError
84
+ };
85
+ }
86
+ return new Promise((_resolve, _reject) => {
87
+ resolve = _resolve;
88
+ reject = _reject;
89
+ });
90
+ }
91
+ }
91
92
  //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/processes/fetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { ObservableLike } from '../interfaces/index';\n\ninterface Immediate {\n data: unknown[] | null;\n error: unknown | null;\n isError: boolean;\n}\n\ntype FetchGetResult = Immediate | Promise<unknown>;\n\ninterface FetchBox {\n success: (value: unknown[]) => void;\n fail: (value: unknown) => void;\n}\n\nexport default class Fetch extends BaseProcessFactory(CommonProcess.fetch) {\n\n static run(scroller: Scroller): void {\n const { workflow } = scroller;\n\n const box = {\n success: (data: unknown[]) => {\n scroller.logger.log(() =>\n `resolved ${data.length} items ` +\n `(index = ${scroller.state.fetch.index}, count = ${scroller.state.fetch.count})`\n );\n scroller.state.fetch.newItemsData = data;\n workflow.call({\n process: Fetch.process,\n status: ProcessStatus.next\n });\n },\n fail: (error: unknown) =>\n workflow.call({\n process: Fetch.process,\n status: ProcessStatus.error,\n payload: { error }\n })\n };\n\n const result = Fetch.get(scroller);\n Fetch.complete(scroller, box, result);\n }\n\n static complete(scroller: Scroller, box: FetchBox, result: FetchGetResult): void {\n if (Object.prototype.hasOwnProperty.call(result, 'data')) {\n const { data, error, isError } = result as Immediate;\n if (!isError) {\n box.success(data || []);\n } else {\n box.fail(error);\n }\n } else {\n const { state: { scroll, fetch }, viewport } = scroller;\n if (scroll.positionBeforeAsync === null) {\n scroll.positionBeforeAsync = viewport.scrollPosition;\n }\n fetch.cancel = () => {\n box.success = () => null;\n box.fail = () => null;\n };\n (result as Promise<unknown[]>).then(\n (data) => box.success(data),\n (error) => box.fail(error)\n );\n }\n }\n\n static get(scroller: Scroller): FetchGetResult {\n const _get = scroller.datasource.get;\n const { index, count } = scroller.state.fetch;\n\n let immediateData, immediateError;\n let resolve: (value: unknown) => void, reject: (value: unknown) => void;\n\n const done = (data: unknown[]) => {\n if (!resolve) {\n immediateData = data || null;\n return;\n }\n resolve(data);\n };\n const fail = (error: unknown) => {\n if (!reject) {\n immediateError = error || null;\n return;\n }\n reject(error);\n };\n\n const getResult = _get(index, count, done, fail);\n\n if (getResult && typeof getResult === 'object' && getResult !== null) {\n if (typeof (getResult as PromiseLike<unknown>).then === 'function') {\n return getResult as Promise<unknown>;\n } else if (typeof (getResult as ObservableLike).subscribe === 'function') {\n const sub = (getResult as ObservableLike).subscribe(done, fail, () => {\n if (sub && typeof sub === 'object' && typeof sub.unsubscribe === 'function') {\n sub.unsubscribe();\n }\n });\n }\n }\n\n if (immediateData || immediateError) { // callback case or immediate observable\n return {\n data: immediateError ? null : (immediateData || []),\n error: immediateError,\n isError: !!immediateError\n };\n }\n\n return new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n }\n\n}\n"]}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/processes/fetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { ObservableLike } from '../interfaces/index';\r\n\r\ninterface Immediate {\r\n data: unknown[] | null;\r\n error: unknown | null;\r\n isError: boolean;\r\n}\r\n\r\ntype FetchGetResult = Immediate | Promise<unknown>;\r\n\r\ninterface FetchBox {\r\n success: (value: unknown[]) => void;\r\n fail: (value: unknown) => void;\r\n}\r\n\r\nexport default class Fetch extends BaseProcessFactory(CommonProcess.fetch) {\r\n\r\n static run(scroller: Scroller): void {\r\n const { workflow } = scroller;\r\n\r\n const box = {\r\n success: (data: unknown[]) => {\r\n scroller.logger.log(() =>\r\n `resolved ${data.length} items ` +\r\n `(index = ${scroller.state.fetch.index}, count = ${scroller.state.fetch.count})`\r\n );\r\n scroller.state.fetch.newItemsData = data;\r\n workflow.call({\r\n process: Fetch.process,\r\n status: ProcessStatus.next\r\n });\r\n },\r\n fail: (error: unknown) =>\r\n workflow.call({\r\n process: Fetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error }\r\n })\r\n };\r\n\r\n const result = Fetch.get(scroller);\r\n Fetch.complete(scroller, box, result);\r\n }\r\n\r\n static complete(scroller: Scroller, box: FetchBox, result: FetchGetResult): void {\r\n if (Object.prototype.hasOwnProperty.call(result, 'data')) {\r\n const { data, error, isError } = result as Immediate;\r\n if (!isError) {\r\n box.success(data || []);\r\n } else {\r\n box.fail(error);\r\n }\r\n } else {\r\n const { state: { scroll, fetch }, viewport } = scroller;\r\n if (scroll.positionBeforeAsync === null) {\r\n scroll.positionBeforeAsync = viewport.scrollPosition;\r\n }\r\n fetch.cancel = () => {\r\n box.success = () => null;\r\n box.fail = () => null;\r\n };\r\n (result as Promise<unknown[]>).then(\r\n (data) => box.success(data),\r\n (error) => box.fail(error)\r\n );\r\n }\r\n }\r\n\r\n static get(scroller: Scroller): FetchGetResult {\r\n const _get = scroller.datasource.get;\r\n const { index, count } = scroller.state.fetch;\r\n\r\n let immediateData, immediateError;\r\n let resolve: (value: unknown) => void, reject: (value: unknown) => void;\r\n\r\n const done = (data: unknown[]) => {\r\n if (!resolve) {\r\n immediateData = data || null;\r\n return;\r\n }\r\n resolve(data);\r\n };\r\n const fail = (error: unknown) => {\r\n if (!reject) {\r\n immediateError = error || null;\r\n return;\r\n }\r\n reject(error);\r\n };\r\n\r\n const getResult = _get(index, count, done, fail);\r\n\r\n if (getResult && typeof getResult === 'object' && getResult !== null) {\r\n if (typeof (getResult as PromiseLike<unknown>).then === 'function') {\r\n return getResult as Promise<unknown>;\r\n } else if (typeof (getResult as ObservableLike).subscribe === 'function') {\r\n let sub: undefined | ReturnType<ObservableLike['subscribe']> = void 0;\r\n sub = (getResult as ObservableLike).subscribe(done, fail, () => {\r\n if (sub && typeof sub === 'object' && typeof sub.unsubscribe === 'function') {\r\n sub.unsubscribe();\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (immediateData || immediateError) { // callback case or immediate observable\r\n return {\r\n data: immediateError ? null : (immediateData || []),\r\n error: immediateError,\r\n isError: !!immediateError\r\n };\r\n }\r\n\r\n return new Promise((_resolve, _reject) => {\r\n resolve = _resolve;\r\n reject = _reject;\r\n });\r\n }\r\n\r\n}\r\n"]}
@@ -1,24 +1,24 @@
1
- import Init from './init';
2
- import Scroll from './scroll';
3
- import Reset from './adapter/reset';
4
- import Reload from './adapter/reload';
5
- import Append from './adapter/append';
6
- import Check from './adapter/check';
7
- import Remove from './adapter/remove';
8
- import UserClip from './adapter/clip';
9
- import Insert from './adapter/insert';
10
- import Replace from './adapter/replace';
11
- import Update from './adapter/update';
12
- import Fix from './adapter/fix';
13
- import Start from './start';
14
- import PreFetch from './preFetch';
15
- import Fetch from './fetch';
16
- import PostFetch from './postFetch';
17
- import Render from './render';
18
- import Adjust from './adjust';
19
- import PreClip from './preClip';
20
- import Clip from './clip';
21
- import End from './end';
22
- import { CommonProcess, AdapterProcess, ProcessStatus } from './misc/enums';
23
- export { Init, Scroll, Reset, Reload, Append, Check, Remove, UserClip, Insert, Replace, Update, Fix, Start, PreFetch, Fetch, PostFetch, Render, PreClip, Clip, Adjust, End, CommonProcess, AdapterProcess, ProcessStatus, };
1
+ import Init from './init';
2
+ import Scroll from './scroll';
3
+ import Reset from './adapter/reset';
4
+ import Reload from './adapter/reload';
5
+ import Append from './adapter/append';
6
+ import Check from './adapter/check';
7
+ import Remove from './adapter/remove';
8
+ import UserClip from './adapter/clip';
9
+ import Insert from './adapter/insert';
10
+ import Replace from './adapter/replace';
11
+ import Update from './adapter/update';
12
+ import Fix from './adapter/fix';
13
+ import Start from './start';
14
+ import PreFetch from './preFetch';
15
+ import Fetch from './fetch';
16
+ import PostFetch from './postFetch';
17
+ import Render from './render';
18
+ import Adjust from './adjust';
19
+ import PreClip from './preClip';
20
+ import Clip from './clip';
21
+ import End from './end';
22
+ import { CommonProcess, AdapterProcess, ProcessStatus } from './misc/enums';
23
+ export { Init, Scroll, Reset, Reload, Append, Check, Remove, UserClip, Insert, Replace, Update, Fix, Start, PreFetch, Fetch, PostFetch, Render, PreClip, Clip, Adjust, End, CommonProcess, AdapterProcess, ProcessStatus, };
24
24
  //# sourceMappingURL=index.js.map
@@ -1,15 +1,15 @@
1
- import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';
2
- const initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];
3
- export default class Init extends BaseProcessFactory(CommonProcess.init) {
4
- static run(scroller, process) {
5
- const { state, workflow } = scroller;
6
- const isInitial = initProcesses.includes(process);
7
- scroller.logger.logCycle(true);
8
- state.startWorkflowCycle(isInitial, process);
9
- workflow.call({
10
- process: Init.process,
11
- status: ProcessStatus.next
12
- });
13
- }
14
- }
1
+ import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';
2
+ const initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];
3
+ export default class Init extends BaseProcessFactory(CommonProcess.init) {
4
+ static run(scroller, process) {
5
+ const { state, workflow } = scroller;
6
+ const isInitial = initProcesses.includes(process);
7
+ scroller.logger.logCycle(true);
8
+ state.startWorkflowCycle(isInitial, process);
9
+ workflow.call({
10
+ process: Init.process,
11
+ status: ProcessStatus.next
12
+ });
13
+ }
14
+ }
15
15
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/processes/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhG,MAAM,aAAa,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAExF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC;IAEtE,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,OAAoB;QACjD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QACrC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;CAEF","sourcesContent":["import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { ProcessName } from '../interfaces/index';\n\nconst initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];\n\nexport default class Init extends BaseProcessFactory(CommonProcess.init) {\n\n static run(scroller: Scroller, process: ProcessName): void {\n const { state, workflow } = scroller;\n const isInitial = initProcesses.includes(process);\n scroller.logger.logCycle(true);\n state.startWorkflowCycle(isInitial, process);\n workflow.call({\n process: Init.process,\n status: ProcessStatus.next\n });\n }\n\n}\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/processes/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhG,MAAM,aAAa,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAExF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC;IAEtE,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,OAAoB;QACjD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QACrC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;CAEF","sourcesContent":["import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { ProcessName } from '../interfaces/index';\r\n\r\nconst initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];\r\n\r\nexport default class Init extends BaseProcessFactory(CommonProcess.init) {\r\n\r\n static run(scroller: Scroller, process: ProcessName): void {\r\n const { state, workflow } = scroller;\r\n const isInitial = initProcesses.includes(process);\r\n scroller.logger.logCycle(true);\r\n state.startWorkflowCycle(isInitial, process);\r\n workflow.call({\r\n process: Init.process,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n\r\n}\r\n"]}
@@ -1,31 +1,31 @@
1
- import { ProcessStatus } from './enums';
2
- import { ADAPTER_METHODS, validate } from '../../inputs/index';
3
- export const BaseProcessFactory = (process) => { var _a; return _a = class BaseProcess {
4
- },
5
- _a.process = process,
6
- _a; };
7
- export const BaseAdapterProcessFactory = (process) => { var _a; return _a = class BaseAdapterProcess extends BaseProcessFactory(process) {
8
- static parseInput(scroller, options, ignoreErrors = false, _process) {
9
- const result = {
10
- data: validate(options, ADAPTER_METHODS[_process || process])
11
- };
12
- if (result.data.isValid) {
13
- result.params = Object.entries(result.data.params)
14
- .reduce((acc, [key, { value }]) => (Object.assign(Object.assign({}, acc), { [key]: value })), {});
15
- }
16
- else {
17
- scroller.logger.log(() => result.data.showErrors());
18
- if (!ignoreErrors) {
19
- scroller.workflow.call({
20
- process,
21
- status: ProcessStatus.error,
22
- payload: { error: `Wrong argument of the "${process}" method call` }
23
- });
24
- }
25
- }
26
- return result;
27
- }
28
- },
29
- _a.process = process,
30
- _a; };
1
+ import { ProcessStatus } from './enums';
2
+ import { ADAPTER_METHODS, validate } from '../../inputs/index';
3
+ export const BaseProcessFactory = (process) => { var _a; return _a = class BaseProcess {
4
+ },
5
+ _a.process = process,
6
+ _a; };
7
+ export const BaseAdapterProcessFactory = (process) => { var _a; return _a = class BaseAdapterProcess extends BaseProcessFactory(process) {
8
+ static parseInput(scroller, options, ignoreErrors = false, _process) {
9
+ const result = {
10
+ data: validate(options, ADAPTER_METHODS[_process || process])
11
+ };
12
+ if (result.data.isValid) {
13
+ result.params = Object.entries(result.data.params)
14
+ .reduce((acc, [key, { value }]) => (Object.assign(Object.assign({}, acc), { [key]: value })), {});
15
+ }
16
+ else {
17
+ scroller.logger.log(() => result.data.showErrors());
18
+ if (!ignoreErrors) {
19
+ scroller.workflow.call({
20
+ process,
21
+ status: ProcessStatus.error,
22
+ payload: { error: `Wrong argument of the "${process}" method call` }
23
+ });
24
+ }
25
+ }
26
+ return result;
27
+ }
28
+ },
29
+ _a.process = process,
30
+ _a; };
31
31
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/processes/misc/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAgB,EAAE,uBAEvE,MAAM,WAAW;KAIhB;IAFQ,UAAO,GAAgB,OAAQ;SAEvC,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAuB,EAAuB,EAAE,uBAExF,MAAM,kBAAmB,SAAS,kBAAkB,CAAC,OAAO,CAAkB;QAI5E,MAAM,CAAC,UAAU,CACf,QAAkB,EAAE,OAAU,EAAE,YAAY,GAAG,KAAK,EAAE,QAAyB;YAE/E,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;aAC9D,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;gBACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;qBAC/C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,iCAC9B,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ,EAAE,EAAO,CAAC,CAAC;aAChB;iBAAM;gBACL,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,EAAE;oBACjB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACrB,OAAO;wBACP,MAAM,EAAE,aAAa,CAAC,KAAK;wBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,0BAA0B,OAAO,eAAe,EAAE;qBACrE,CAAC,CAAC;iBACJ;aACF;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KAEF;IA7BQ,UAAO,GAAmB,OAAQ;SA6B1C,CAAC","sourcesContent":["import { AdapterProcess, ProcessStatus } from './enums';\nimport { Scroller } from '../../scroller';\nimport { ADAPTER_METHODS, validate } from '../../inputs/index';\nimport { ProcessName, IBaseProcess, IBaseAdapterProcess, IAdapterInput } from '../../interfaces/index';\n\nexport const BaseProcessFactory = (process: ProcessName): IBaseProcess =>\n\n class BaseProcess {\n\n static process: ProcessName = process;\n\n };\n\nexport const BaseAdapterProcessFactory = (process: AdapterProcess): IBaseAdapterProcess =>\n\n class BaseAdapterProcess extends (BaseProcessFactory(process) as IBaseProcess) {\n\n static process: AdapterProcess = process;\n\n static parseInput<T>(\n scroller: Scroller, options: T, ignoreErrors = false, _process?: AdapterProcess\n ): IAdapterInput<T> {\n const result: IAdapterInput<T> = {\n data: validate(options, ADAPTER_METHODS[_process || process])\n };\n\n if (result.data.isValid) {\n result.params = Object.entries(result.data.params)\n .reduce((acc, [key, { value }]) => ({\n ...acc,\n [key]: value\n }), {} as T);\n } else {\n scroller.logger.log(() => result.data.showErrors());\n if (!ignoreErrors) {\n scroller.workflow.call({\n process,\n status: ProcessStatus.error,\n payload: { error: `Wrong argument of the \"${process}\" method call` }\n });\n }\n }\n\n return result;\n }\n\n };\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/processes/misc/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAgB,EAAE,uBAEvE,MAAM,WAAW;KAIhB;IAFQ,UAAO,GAAgB,OAAQ;SAEvC,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAuB,EAAuB,EAAE,uBAExF,MAAM,kBAAmB,SAAS,kBAAkB,CAAC,OAAO,CAAkB;QAI5E,MAAM,CAAC,UAAU,CACf,QAAkB,EAAE,OAAU,EAAE,YAAY,GAAG,KAAK,EAAE,QAAyB;YAE/E,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;aAC9D,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;gBACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;qBAC/C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,iCAC9B,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ,EAAE,EAAO,CAAC,CAAC;aAChB;iBAAM;gBACL,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,EAAE;oBACjB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACrB,OAAO;wBACP,MAAM,EAAE,aAAa,CAAC,KAAK;wBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,0BAA0B,OAAO,eAAe,EAAE;qBACrE,CAAC,CAAC;iBACJ;aACF;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KAEF;IA7BQ,UAAO,GAAmB,OAAQ;SA6B1C,CAAC","sourcesContent":["import { AdapterProcess, ProcessStatus } from './enums';\r\nimport { Scroller } from '../../scroller';\r\nimport { ADAPTER_METHODS, validate } from '../../inputs/index';\r\nimport { ProcessName, IBaseProcess, IBaseAdapterProcess, IAdapterInput } from '../../interfaces/index';\r\n\r\nexport const BaseProcessFactory = (process: ProcessName): IBaseProcess =>\r\n\r\n class BaseProcess {\r\n\r\n static process: ProcessName = process;\r\n\r\n };\r\n\r\nexport const BaseAdapterProcessFactory = (process: AdapterProcess): IBaseAdapterProcess =>\r\n\r\n class BaseAdapterProcess extends (BaseProcessFactory(process) as IBaseProcess) {\r\n\r\n static process: AdapterProcess = process;\r\n\r\n static parseInput<T>(\r\n scroller: Scroller, options: T, ignoreErrors = false, _process?: AdapterProcess\r\n ): IAdapterInput<T> {\r\n const result: IAdapterInput<T> = {\r\n data: validate(options, ADAPTER_METHODS[_process || process])\r\n };\r\n\r\n if (result.data.isValid) {\r\n result.params = Object.entries(result.data.params)\r\n .reduce((acc, [key, { value }]) => ({\r\n ...acc,\r\n [key]: value\r\n }), {} as T);\r\n } else {\r\n scroller.logger.log(() => result.data.showErrors());\r\n if (!ignoreErrors) {\r\n scroller.workflow.call({\r\n process,\r\n status: ProcessStatus.error,\r\n payload: { error: `Wrong argument of the \"${process}\" method call` }\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n };\r\n"]}