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,62 +1,62 @@
1
- export class Item {
2
- get $index() {
3
- return this.container.$index;
4
- }
5
- set $index(value) {
6
- this.container.$index = value;
7
- }
8
- get data() {
9
- return this.container.data;
10
- }
11
- set data(value) {
12
- this.container.data = value;
13
- }
14
- get element() {
15
- return this.container.element;
16
- }
17
- set element(value) {
18
- this.container.element = value;
19
- }
20
- constructor($index, data, routines) {
21
- this.container = {
22
- $index,
23
- data
24
- };
25
- this.nodeId = String($index);
26
- this.routines = routines;
27
- this.invisible = true;
28
- this.toRemove = false;
29
- this.toInsert = false;
30
- }
31
- dispose() {
32
- delete this.container.element;
33
- }
34
- setSize(preSize = 0) {
35
- this.preSize = preSize;
36
- if (this.element) {
37
- this.size = this.routines.getSize(this.element);
38
- }
39
- }
40
- makeVisible() {
41
- this.routines.makeElementVisible(this.element);
42
- this.invisible = false;
43
- }
44
- hide() {
45
- if (this.element) {
46
- this.routines.hideElement(this.element);
47
- }
48
- }
49
- scrollTo(argument) {
50
- if (this.element) {
51
- this.routines.scrollTo(this.element, argument);
52
- }
53
- }
54
- updateIndex(index) {
55
- this.$index = index;
56
- this.nodeId = String(index);
57
- }
58
- get() {
59
- return this.container;
60
- }
61
- }
1
+ export class Item {
2
+ get $index() {
3
+ return this.container.$index;
4
+ }
5
+ set $index(value) {
6
+ this.container.$index = value;
7
+ }
8
+ get data() {
9
+ return this.container.data;
10
+ }
11
+ set data(value) {
12
+ this.container.data = value;
13
+ }
14
+ get element() {
15
+ return this.container.element;
16
+ }
17
+ set element(value) {
18
+ this.container.element = value;
19
+ }
20
+ constructor($index, data, routines) {
21
+ this.container = {
22
+ $index,
23
+ data
24
+ };
25
+ this.nodeId = String($index);
26
+ this.routines = routines;
27
+ this.invisible = true;
28
+ this.toRemove = false;
29
+ this.toInsert = false;
30
+ }
31
+ dispose() {
32
+ delete this.container.element;
33
+ }
34
+ setSize(preSize = 0) {
35
+ this.preSize = preSize;
36
+ if (this.element) {
37
+ this.size = this.routines.getSize(this.element);
38
+ }
39
+ }
40
+ makeVisible() {
41
+ this.routines.makeElementVisible(this.element);
42
+ this.invisible = false;
43
+ }
44
+ hide() {
45
+ if (this.element) {
46
+ this.routines.hideElement(this.element);
47
+ }
48
+ }
49
+ scrollTo(argument) {
50
+ if (this.element) {
51
+ this.routines.scrollTo(this.element, argument);
52
+ }
53
+ }
54
+ updateIndex(index) {
55
+ this.$index = index;
56
+ this.nodeId = String(index);
57
+ }
58
+ get() {
59
+ return this.container;
60
+ }
61
+ }
62
62
  //# sourceMappingURL=item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/classes/item.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,IAAI;IAYf,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,IAAI,CAAC,KAAW;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,OAAsB,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,KAAkB;QAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,YAAY,MAAc,EAAE,IAAU,EAAE,QAAkB;QACxD,IAAI,CAAC,SAAS,GAAG;YACf,MAAM;YACN,IAAI;SACL,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzC;IACH,CAAC;IAED,QAAQ,CAAC,QAA0C;QACjD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAChD;IACH,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF","sourcesContent":["import { Routines } from './domRoutines';\r\nimport { Direction } from '../inputs/index';\r\nimport { Item as _Item, ItemAdapter } from '../interfaces/index';\r\n\r\nexport class Item<Data = unknown> implements _Item<Data> {\r\n nodeId: string;\r\n routines: Routines;\r\n preSize: number; // estimated size\r\n size: number; // real size\r\n invisible: boolean;\r\n toRemove: boolean;\r\n toInsert: boolean;\r\n removeDirection: Direction;\r\n\r\n private container: ItemAdapter<Data>;\r\n\r\n get $index(): number {\r\n return this.container.$index;\r\n }\r\n set $index(value: number) {\r\n this.container.$index = value;\r\n }\r\n\r\n get data(): Data {\r\n return this.container.data;\r\n }\r\n set data(value: Data) {\r\n this.container.data = value;\r\n }\r\n\r\n get element(): HTMLElement {\r\n return this.container.element as HTMLElement;\r\n }\r\n set element(value: HTMLElement) {\r\n this.container.element = value;\r\n }\r\n\r\n constructor($index: number, data: Data, routines: Routines) {\r\n this.container = {\r\n $index,\r\n data\r\n };\r\n this.nodeId = String($index);\r\n this.routines = routines;\r\n this.invisible = true;\r\n this.toRemove = false;\r\n this.toInsert = false;\r\n }\r\n\r\n dispose(): void {\r\n delete this.container.element;\r\n }\r\n\r\n setSize(preSize = 0): void {\r\n this.preSize = preSize;\r\n if (this.element) {\r\n this.size = this.routines.getSize(this.element);\r\n }\r\n }\r\n\r\n makeVisible(): void {\r\n this.routines.makeElementVisible(this.element);\r\n this.invisible = false;\r\n }\r\n\r\n hide(): void {\r\n if (this.element) {\r\n this.routines.hideElement(this.element);\r\n }\r\n }\r\n\r\n scrollTo(argument?: boolean | ScrollIntoViewOptions): void {\r\n if (this.element) {\r\n this.routines.scrollTo(this.element, argument);\r\n }\r\n }\r\n\r\n updateIndex(index: number): void {\r\n this.$index = index;\r\n this.nodeId = String(index);\r\n }\r\n\r\n get(): ItemAdapter<Data> {\r\n return this.container;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/classes/item.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,IAAI;IAYf,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,IAAI,CAAC,KAAW;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,OAAsB,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,KAAkB;QAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,YAAY,MAAc,EAAE,IAAU,EAAE,QAAkB;QACxD,IAAI,CAAC,SAAS,GAAG;YACf,MAAM;YACN,IAAI;SACL,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,QAA0C;QACjD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF","sourcesContent":["import { Routines } from './domRoutines';\nimport { Direction } from '../inputs/index';\nimport { Item as _Item, ItemAdapter } from '../interfaces/index';\n\nexport class Item<Data = unknown> implements _Item<Data> {\n nodeId: string;\n routines: Routines;\n preSize: number; // estimated size\n size: number; // real size\n invisible: boolean;\n toRemove: boolean;\n toInsert: boolean;\n removeDirection: Direction;\n\n private container: ItemAdapter<Data>;\n\n get $index(): number {\n return this.container.$index;\n }\n set $index(value: number) {\n this.container.$index = value;\n }\n\n get data(): Data {\n return this.container.data;\n }\n set data(value: Data) {\n this.container.data = value;\n }\n\n get element(): HTMLElement {\n return this.container.element as HTMLElement;\n }\n set element(value: HTMLElement) {\n this.container.element = value;\n }\n\n constructor($index: number, data: Data, routines: Routines) {\n this.container = {\n $index,\n data\n };\n this.nodeId = String($index);\n this.routines = routines;\n this.invisible = true;\n this.toRemove = false;\n this.toInsert = false;\n }\n\n dispose(): void {\n delete this.container.element;\n }\n\n setSize(preSize = 0): void {\n this.preSize = preSize;\n if (this.element) {\n this.size = this.routines.getSize(this.element);\n }\n }\n\n makeVisible(): void {\n this.routines.makeElementVisible(this.element);\n this.invisible = false;\n }\n\n hide(): void {\n if (this.element) {\n this.routines.hideElement(this.element);\n }\n }\n\n scrollTo(argument?: boolean | ScrollIntoViewOptions): void {\n if (this.element) {\n this.routines.scrollTo(this.element, argument);\n }\n }\n\n updateIndex(index: number): void {\n this.$index = index;\n this.nodeId = String(index);\n }\n\n get(): ItemAdapter<Data> {\n return this.container;\n }\n}\n"]}
@@ -1,187 +1,230 @@
1
- import { CommonProcess, AdapterProcess, ProcessStatus as Status } from '../processes/index';
2
- export class Logger {
3
- constructor(scroller, packageInfo, adapter) {
4
- this.logs = [];
5
- this.logAdapterMethod = (methodName, args, add) => {
6
- if (!this.debug) {
7
- return;
8
- }
9
- const params = (args === void 0 ? [] : (Array.isArray(args) ? args : [args]))
10
- .map((arg) => {
11
- if (typeof arg === 'function') {
12
- return 'func';
13
- }
14
- else if (typeof arg !== 'object' || !arg) {
15
- return arg;
16
- }
17
- else if (Array.isArray(arg)) {
18
- return `[of ${arg.length}]`;
19
- }
20
- return '{ ' + Object.keys(arg).join(', ') + ' }';
21
- })
22
- .join(', ');
23
- this.log(`adapter: ${methodName}(${params || ''})${add || ''}`);
24
- };
25
- const { settings } = scroller;
26
- this.debug = settings.debug;
27
- this.immediateLog = settings.immediateLog;
28
- this.logTime = settings.logTime;
29
- this.getTime = () => scroller.state && ` // time: ${scroller.state.time}`;
30
- this.getStat = () => {
31
- const { buffer, viewport } = scroller;
32
- const first = buffer.getFirstVisibleItem();
33
- const last = buffer.getLastVisibleItem();
34
- return 'pos: ' + viewport.scrollPosition + ', ' +
35
- 'size: ' + viewport.getScrollableSize() + ', ' +
36
- 'bwd_p: ' + viewport.paddings.backward.size + ', ' +
37
- 'fwd_p: ' + viewport.paddings.forward.size + ', ' +
38
- 'default: ' + (buffer.defaultSize || 'no') + ', ' +
39
- 'items: ' + buffer.getVisibleItemsCount() + ', ' +
40
- 'range: ' + (first && last ? `[${first.$index}..${last.$index}]` : 'no');
41
- };
42
- this.getFetchRange = () => {
43
- const { first: { index: first }, last: { index: last } } = scroller.state.fetch;
44
- return !Number.isNaN(first) && !Number.isNaN(last)
45
- ? `[${first}..${last}]`
46
- : 'no';
47
- };
48
- this.getLoopId = () => scroller.state.cycle.loopId;
49
- this.getLoopIdNext = () => scroller.state.cycle.loopIdNext;
50
- this.getWorkflowCycleData = () => `${settings.instanceIndex}-${scroller.state.cycle.count}`;
51
- this.getScrollPosition = () => scroller.routines.getScrollPosition();
52
- this.log(() => 'vscroll Workflow has been started, ' +
53
- `core: ${packageInfo.core.name} v${packageInfo.core.version}, ` +
54
- `consumer: ${packageInfo.consumer.name} v${packageInfo.consumer.version}, ` +
55
- `scroller instance: ${settings.instanceIndex}, adapter ` +
56
- (!adapter ? 'is not instantiated' : `instance: ${adapter.id}`));
57
- }
58
- object(str, obj, stringify) {
59
- this.log(() => [
60
- str,
61
- stringify
62
- ? JSON.stringify(obj, (k, v) => {
63
- if (Number.isNaN(v)) {
64
- return 'NaN';
65
- }
66
- if (v === Infinity) {
67
- return 'Infinity';
68
- }
69
- if (v === -Infinity) {
70
- return '-Infinity';
71
- }
72
- if (v instanceof Element) {
73
- return 'HTMLElement';
74
- }
75
- if (v instanceof HTMLDocument) {
76
- return 'HTMLDocument';
77
- }
78
- if (typeof v === 'function') {
79
- return 'Function';
80
- }
81
- return v;
82
- })
83
- .replace(/"/g, '')
84
- .replace(/(\{|:|,)/g, '$1 ')
85
- .replace(/(\})/g, ' $1')
86
- : obj
87
- ]);
88
- }
89
- stat(str) {
90
- if (this.debug) {
91
- const logStyles = [
92
- 'color: #888; border: dashed #888 0; border-bottom-width: 0px',
93
- 'color: #000; border-width: 0'
94
- ];
95
- this.log(() => ['%cstat' + (str ? ` ${str}` : '') + ',%c ' + this.getStat(), ...logStyles]);
96
- }
97
- }
98
- fetch(str) {
99
- if (this.debug) {
100
- const _text = 'fetch interval' + (str ? ` ${str}` : '');
101
- const logStyles = ['color: #888', 'color: #000'];
102
- this.log(() => [`%c${_text}: %c${this.getFetchRange()}`, ...logStyles]);
103
- }
104
- }
105
- prepareForLog(data) {
106
- return data instanceof Event && data.target
107
- ? this.getScrollPosition()
108
- : data;
109
- }
110
- logProcess(data) {
111
- if (!this.debug) {
112
- return;
113
- }
114
- const { process, status, payload } = data;
115
- // inner loop start-end log
116
- const loopLog = [];
117
- if (process === CommonProcess.init && status === Status.next) {
118
- loopLog.push(`%c---=== loop ${this.getLoopIdNext()} start`);
119
- }
120
- else if (process === CommonProcess.end) {
121
- loopLog.push(`%c---=== loop ${this.getLoopId()} done`);
122
- const parent = payload && payload.process;
123
- if (status === Status.next && (parent !== AdapterProcess.reset && parent !== AdapterProcess.reload)) {
124
- loopLog[0] += `, loop ${this.getLoopIdNext()} start`;
125
- }
126
- }
127
- if (loopLog.length) {
128
- this.log(() => [...loopLog, 'color: #006600;']);
129
- }
130
- }
131
- logCycle(start = true) {
132
- const logData = this.getWorkflowCycleData();
133
- const border = start ? '1px 0 0 1px' : '0 0 1px 1px';
134
- const logStyles = `color: #0000aa; border: solid #555 1px; border-width: ${border}; margin-left: -2px`;
135
- this.log(() => [`%c ~~~ WF Cycle ${logData} ${start ? 'STARTED' : 'FINALIZED'} ~~~ `, logStyles]);
136
- }
137
- logError(str) {
138
- if (this.debug) {
139
- const logStyles = ['color: #a00;', 'color: #000'];
140
- this.log(() => ['error:%c' + (str ? ` ${str}` : '') + `%c (loop ${this.getLoopIdNext()})`, ...logStyles]);
141
- }
142
- }
143
- log(...args) {
144
- if (this.debug) {
145
- if (typeof args[0] === 'function') {
146
- args = args[0]();
147
- if (!Array.isArray(args)) {
148
- args = [args];
149
- }
150
- }
151
- if (args.every(item => item === void 0)) {
152
- return;
153
- }
154
- if (this.logTime) {
155
- args = [...args, this.getTime()];
156
- }
157
- args = args.map((arg) => this.prepareForLog(arg));
158
- if (this.immediateLog) {
159
- console.log.apply(this, args);
160
- }
161
- else {
162
- this.logs.push(args);
163
- }
164
- }
165
- }
166
- // logNow(...args: unknown[]) {
167
- // const immediateLog = this.immediateLog;
168
- // const debug = this.debug;
169
- // (this as any).debug = true;
170
- // (this as any).immediateLog = true;
171
- // this.log.apply(this, args);
172
- // (this as any).debug = debug;
173
- // (this as any).immediateLog = immediateLog;
174
- // }
175
- logForce(...args) {
176
- if (this.debug) {
177
- if (!this.immediateLog && this.logs.length) {
178
- this.logs.forEach(logArgs => console.log.apply(this, logArgs));
179
- this.logs = [];
180
- }
181
- if (args.length) {
182
- console.log.apply(this, args);
183
- }
184
- }
185
- }
186
- }
1
+ import { CommonProcess, AdapterProcess, ProcessStatus as Status } from '../processes/index';
2
+ export class Logger {
3
+ constructor(scroller, packageInfo, adapter) {
4
+ this.logs = [];
5
+ this.logAdapterMethod = (methodName, args, add) => {
6
+ if (!this.debug) {
7
+ return;
8
+ }
9
+ const params = (args === void 0 ? [] : Array.isArray(args) ? args : [args])
10
+ .map((arg) => {
11
+ if (typeof arg === 'function') {
12
+ return 'func';
13
+ }
14
+ else if (typeof arg !== 'object' || !arg) {
15
+ return arg;
16
+ }
17
+ else if (Array.isArray(arg)) {
18
+ return `[of ${arg.length}]`;
19
+ }
20
+ return '{ ' + Object.keys(arg).join(', ') + ' }';
21
+ })
22
+ .join(', ');
23
+ this.log(`adapter: ${methodName}(${params || ''})${add || ''}`);
24
+ };
25
+ const { settings } = scroller;
26
+ this.debug = settings.debug;
27
+ this.immediateLog = settings.immediateLog;
28
+ this.logTime = settings.logTime;
29
+ this.logColor = settings.logColor;
30
+ this.getTime = () => scroller.state && ` // time: ${scroller.state.time}`;
31
+ this.getStat = () => {
32
+ const { buffer, viewport } = scroller;
33
+ const first = buffer.getFirstVisibleItem();
34
+ const last = buffer.getLastVisibleItem();
35
+ return ('pos: ' +
36
+ viewport.scrollPosition +
37
+ ', ' +
38
+ 'size: ' +
39
+ viewport.getScrollableSize() +
40
+ ', ' +
41
+ 'bwd_p: ' +
42
+ viewport.paddings.backward.size +
43
+ ', ' +
44
+ 'fwd_p: ' +
45
+ viewport.paddings.forward.size +
46
+ ', ' +
47
+ 'default: ' +
48
+ (buffer.defaultSize || 'no') +
49
+ ', ' +
50
+ 'items: ' +
51
+ buffer.getVisibleItemsCount() +
52
+ ', ' +
53
+ 'range: ' +
54
+ (first && last ? `[${first.$index}..${last.$index}]` : 'no'));
55
+ };
56
+ this.getFetchRange = () => {
57
+ const { first: { index: first }, last: { index: last } } = scroller.state.fetch;
58
+ return !Number.isNaN(first) && !Number.isNaN(last) ? `[${first}..${last}]` : 'no';
59
+ };
60
+ this.getLoopId = () => scroller.state.cycle.loopId;
61
+ this.getLoopIdNext = () => scroller.state.cycle.loopIdNext;
62
+ this.getWorkflowCycleData = () => `${settings.instanceIndex}-${scroller.state.cycle.count}`;
63
+ this.getScrollPosition = () => scroller.routines.getScrollPosition();
64
+ this.log(() => 'vscroll Workflow has been started, ' +
65
+ `core: ${packageInfo.core.name} v${packageInfo.core.version}, ` +
66
+ `consumer: ${packageInfo.consumer.name} v${packageInfo.consumer.version}, ` +
67
+ `scroller instance: ${settings.instanceIndex}, adapter ` +
68
+ (!adapter ? 'is not instantiated' : `instance: ${adapter.id}`));
69
+ }
70
+ object(str, obj, stringify) {
71
+ this.log(() => [
72
+ str,
73
+ stringify
74
+ ? JSON.stringify(obj, (_, v) => {
75
+ if (Number.isNaN(v)) {
76
+ return 'NaN';
77
+ }
78
+ if (v === Infinity) {
79
+ return 'Infinity';
80
+ }
81
+ if (v === -Infinity) {
82
+ return '-Infinity';
83
+ }
84
+ if (v instanceof Element) {
85
+ return 'HTMLElement';
86
+ }
87
+ if (v instanceof HTMLDocument) {
88
+ return 'HTMLDocument';
89
+ }
90
+ if (typeof v === 'function') {
91
+ return 'Function';
92
+ }
93
+ return v;
94
+ })
95
+ .replace(/"/g, '')
96
+ .replace(/(\{|:|,)/g, '$1 ')
97
+ .replace(/(\})/g, ' $1')
98
+ : obj
99
+ ]);
100
+ }
101
+ stat(str) {
102
+ if (this.debug) {
103
+ if (this.logColor) {
104
+ const logStyles = [
105
+ 'color: #888; border: dashed #888 0; border-bottom-width: 0px',
106
+ 'color: #000; border-width: 0'
107
+ ];
108
+ this.log(() => ['%cstat' + (str ? ` ${str}` : '') + ',%c ' + this.getStat(), ...logStyles]);
109
+ }
110
+ else {
111
+ this.log(() => ['stat' + (str ? ` ${str}` : '') + ', ' + this.getStat()]);
112
+ }
113
+ }
114
+ }
115
+ fetch(str) {
116
+ if (this.debug) {
117
+ const _text = 'fetch interval' + (str ? ` ${str}` : '');
118
+ if (this.logColor) {
119
+ const logStyles = ['color: #888', 'color: #000'];
120
+ this.log(() => [`%c${_text}: %c${this.getFetchRange()}`, ...logStyles]);
121
+ }
122
+ else {
123
+ this.log(() => [`${_text}: ${this.getFetchRange()}`]);
124
+ }
125
+ }
126
+ }
127
+ prepareForLog(data) {
128
+ return data instanceof Event && data.target ? this.getScrollPosition() : data;
129
+ }
130
+ logProcess(data) {
131
+ if (!this.debug) {
132
+ return;
133
+ }
134
+ const { process, status, payload } = data;
135
+ // inner loop start-end log
136
+ const loopLog = [];
137
+ if (process === CommonProcess.init && status === Status.next) {
138
+ const loopStart = `---=== loop ${this.getLoopIdNext()} start`;
139
+ loopLog.push(this.logColor ? `%c${loopStart}` : loopStart);
140
+ }
141
+ else if (process === CommonProcess.end) {
142
+ const loopDone = `---=== loop ${this.getLoopId()} done`;
143
+ loopLog.push(this.logColor ? `%c${loopDone}` : loopDone);
144
+ const parent = payload && payload.process;
145
+ if (status === Status.next &&
146
+ parent !== AdapterProcess.reset &&
147
+ parent !== AdapterProcess.reload) {
148
+ loopLog[0] += `, loop ${this.getLoopIdNext()} start`;
149
+ }
150
+ }
151
+ if (loopLog.length) {
152
+ this.log(() => (this.logColor ? [...loopLog, 'color: #006600;'] : loopLog));
153
+ }
154
+ }
155
+ logCycle(start = true) {
156
+ const logData = this.getWorkflowCycleData();
157
+ if (this.logColor) {
158
+ const border = start ? '1px 0 0 1px' : '0 0 1px 1px';
159
+ const logStyles = `color: #0000aa; border: solid #555 1px; border-width: ${border}; margin-left: -2px`;
160
+ this.log(() => [
161
+ `%c ~~~ WF Cycle ${logData} ${start ? 'STARTED' : 'FINALIZED'} ~~~ `,
162
+ logStyles
163
+ ]);
164
+ }
165
+ else {
166
+ this.log(() => [` ~~~ WF Cycle ${logData} ${start ? 'STARTED' : 'FINALIZED'} ~~~ `]);
167
+ }
168
+ }
169
+ logError(str) {
170
+ if (this.debug) {
171
+ if (this.logColor) {
172
+ const logStyles = ['color: #a00;', 'color: #000'];
173
+ this.log(() => [
174
+ 'error:%c' + (str ? ` ${str}` : '') + `%c (loop ${this.getLoopIdNext()})`,
175
+ ...logStyles
176
+ ]);
177
+ }
178
+ else {
179
+ this.log(() => ['error:' + (str ? ` ${str}` : '') + ` (loop ${this.getLoopIdNext()})`]);
180
+ }
181
+ }
182
+ }
183
+ log(...args) {
184
+ if (this.debug) {
185
+ if (typeof args[0] === 'function') {
186
+ args = args[0]();
187
+ if (!Array.isArray(args)) {
188
+ args = [args];
189
+ }
190
+ }
191
+ if (args.every(item => item === void 0)) {
192
+ return;
193
+ }
194
+ if (this.logTime) {
195
+ args = [...args, this.getTime()];
196
+ }
197
+ args = args.map((arg) => this.prepareForLog(arg));
198
+ if (this.immediateLog) {
199
+ console.log.apply(this, args);
200
+ }
201
+ else {
202
+ this.logs.push(args);
203
+ }
204
+ }
205
+ }
206
+ // logNow(...args: unknown[]) {
207
+ // const immediateLog = this.immediateLog;
208
+ // const debug = this.debug;
209
+ // (this as any).debug = true;
210
+ // (this as any).immediateLog = true;
211
+ // this.log.apply(this, args);
212
+ // (this as any).debug = debug;
213
+ // (this as any).immediateLog = immediateLog;
214
+ // }
215
+ logForce(...args) {
216
+ if (this.debug) {
217
+ if (!this.immediateLog && this.logs.length) {
218
+ this.logs.forEach(logArgs => console.log.apply(this, logArgs));
219
+ this.logs = [];
220
+ }
221
+ if (args.length) {
222
+ console.log.apply(this, args);
223
+ }
224
+ }
225
+ }
226
+ getLogs() {
227
+ return this.logs;
228
+ }
229
+ }
187
230
  //# sourceMappingURL=logger.js.map