vscroll 1.7.0 → 1.8.1

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 (230) hide show
  1. package/dist/bundles/vscroll.esm5.js +518 -368
  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 +408 -260
  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 +519 -369
  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 +2 -1
  14. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/props.js +2 -2
  16. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  17. package/dist/esm2015/classes/adapter.js +17 -18
  18. package/dist/esm2015/classes/adapter.js.map +1 -1
  19. package/dist/esm2015/classes/buffer/cache.js +11 -8
  20. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  21. package/dist/esm2015/classes/buffer/checkCall.js +4 -5
  22. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  23. package/dist/esm2015/classes/buffer/defaultSize.js +2 -1
  24. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  25. package/dist/esm2015/classes/buffer.js +12 -11
  26. package/dist/esm2015/classes/buffer.js.map +1 -1
  27. package/dist/esm2015/classes/datasource.js +16 -3
  28. package/dist/esm2015/classes/datasource.js.map +1 -1
  29. package/dist/esm2015/classes/domRoutines.js +14 -14
  30. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  31. package/dist/esm2015/classes/logger.js +74 -31
  32. package/dist/esm2015/classes/logger.js.map +1 -1
  33. package/dist/esm2015/classes/paddings.js +6 -2
  34. package/dist/esm2015/classes/paddings.js.map +1 -1
  35. package/dist/esm2015/classes/reactive.js.map +1 -1
  36. package/dist/esm2015/classes/settings.js.map +1 -1
  37. package/dist/esm2015/classes/state/clip.js.map +1 -1
  38. package/dist/esm2015/classes/state/fetch.js +4 -2
  39. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  40. package/dist/esm2015/classes/state.js +6 -4
  41. package/dist/esm2015/classes/state.js.map +1 -1
  42. package/dist/esm2015/classes/viewport.js +4 -2
  43. package/dist/esm2015/classes/viewport.js.map +1 -1
  44. package/dist/esm2015/index.js +1 -1
  45. package/dist/esm2015/index.js.map +1 -1
  46. package/dist/esm2015/inputs/adapter.js +44 -24
  47. package/dist/esm2015/inputs/adapter.js.map +1 -1
  48. package/dist/esm2015/inputs/datasource.js.map +1 -1
  49. package/dist/esm2015/inputs/index.js +1 -1
  50. package/dist/esm2015/inputs/index.js.map +1 -1
  51. package/dist/esm2015/inputs/settings.js +8 -3
  52. package/dist/esm2015/inputs/settings.js.map +1 -1
  53. package/dist/esm2015/inputs/validation.js +8 -14
  54. package/dist/esm2015/inputs/validation.js.map +1 -1
  55. package/dist/esm2015/inputs/workflow.js.map +1 -1
  56. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  57. package/dist/esm2015/interfaces/index.js.map +1 -1
  58. package/dist/esm2015/interfaces/process.js.map +1 -1
  59. package/dist/esm2015/interfaces/routines.js.map +1 -1
  60. package/dist/esm2015/interfaces/settings.js.map +1 -1
  61. package/dist/esm2015/interfaces/validation.js.map +1 -1
  62. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  63. package/dist/esm2015/processes/adapter/append.js +2 -1
  64. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  65. package/dist/esm2015/processes/adapter/check.js +2 -1
  66. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  67. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  68. package/dist/esm2015/processes/adapter/fix.js +4 -2
  69. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  70. package/dist/esm2015/processes/adapter/insert.js +4 -3
  71. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  72. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  73. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  74. package/dist/esm2015/processes/adapter/remove.js +8 -5
  75. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  76. package/dist/esm2015/processes/adapter/replace.js +1 -1
  77. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  78. package/dist/esm2015/processes/adapter/reset.js +5 -5
  79. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  80. package/dist/esm2015/processes/adapter/update.js +4 -3
  81. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  82. package/dist/esm2015/processes/adjust.js +15 -10
  83. package/dist/esm2015/processes/adjust.js.map +1 -1
  84. package/dist/esm2015/processes/clip.js +4 -4
  85. package/dist/esm2015/processes/clip.js.map +1 -1
  86. package/dist/esm2015/processes/end.js +2 -1
  87. package/dist/esm2015/processes/end.js.map +1 -1
  88. package/dist/esm2015/processes/fetch.js +6 -4
  89. package/dist/esm2015/processes/fetch.js.map +1 -1
  90. package/dist/esm2015/processes/index.js +1 -1
  91. package/dist/esm2015/processes/index.js.map +1 -1
  92. package/dist/esm2015/processes/init.js.map +1 -1
  93. package/dist/esm2015/processes/misc/base.js +1 -2
  94. package/dist/esm2015/processes/misc/base.js.map +1 -1
  95. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  96. package/dist/esm2015/processes/postFetch.js +13 -12
  97. package/dist/esm2015/processes/postFetch.js.map +1 -1
  98. package/dist/esm2015/processes/preClip.js +6 -5
  99. package/dist/esm2015/processes/preClip.js.map +1 -1
  100. package/dist/esm2015/processes/preFetch.js +28 -15
  101. package/dist/esm2015/processes/preFetch.js.map +1 -1
  102. package/dist/esm2015/processes/render.js +6 -4
  103. package/dist/esm2015/processes/render.js.map +1 -1
  104. package/dist/esm2015/processes/scroll.js +19 -10
  105. package/dist/esm2015/processes/scroll.js.map +1 -1
  106. package/dist/esm2015/processes/start.js.map +1 -1
  107. package/dist/esm2015/scroller.js +14 -9
  108. package/dist/esm2015/scroller.js.map +1 -1
  109. package/dist/esm2015/version.js +1 -1
  110. package/dist/esm2015/version.js.map +1 -1
  111. package/dist/esm2015/workflow-transducer.js +3 -2
  112. package/dist/esm2015/workflow-transducer.js.map +1 -1
  113. package/dist/esm2015/workflow.js +28 -17
  114. package/dist/esm2015/workflow.js.map +1 -1
  115. package/dist/esm5/classes/adapter/context.js +2 -1
  116. package/dist/esm5/classes/adapter/context.js.map +1 -1
  117. package/dist/esm5/classes/adapter/props.js +2 -2
  118. package/dist/esm5/classes/adapter/props.js.map +1 -1
  119. package/dist/esm5/classes/adapter.js +22 -19
  120. package/dist/esm5/classes/adapter.js.map +1 -1
  121. package/dist/esm5/classes/buffer/cache.js +11 -9
  122. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  123. package/dist/esm5/classes/buffer/checkCall.js +4 -7
  124. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  125. package/dist/esm5/classes/buffer/defaultSize.js +2 -1
  126. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  127. package/dist/esm5/classes/buffer.js +15 -14
  128. package/dist/esm5/classes/buffer.js.map +1 -1
  129. package/dist/esm5/classes/datasource.js +20 -3
  130. package/dist/esm5/classes/datasource.js.map +1 -1
  131. package/dist/esm5/classes/domRoutines.js +14 -14
  132. package/dist/esm5/classes/domRoutines.js.map +1 -1
  133. package/dist/esm5/classes/logger.js +75 -34
  134. package/dist/esm5/classes/logger.js.map +1 -1
  135. package/dist/esm5/classes/paddings.js +6 -2
  136. package/dist/esm5/classes/paddings.js.map +1 -1
  137. package/dist/esm5/classes/reactive.js.map +1 -1
  138. package/dist/esm5/classes/settings.js.map +1 -1
  139. package/dist/esm5/classes/state/clip.js.map +1 -1
  140. package/dist/esm5/classes/state/fetch.js +4 -2
  141. package/dist/esm5/classes/state/fetch.js.map +1 -1
  142. package/dist/esm5/classes/state.js +6 -4
  143. package/dist/esm5/classes/state.js.map +1 -1
  144. package/dist/esm5/classes/viewport.js +3 -2
  145. package/dist/esm5/classes/viewport.js.map +1 -1
  146. package/dist/esm5/index.js +1 -1
  147. package/dist/esm5/index.js.map +1 -1
  148. package/dist/esm5/inputs/adapter.js +32 -12
  149. package/dist/esm5/inputs/adapter.js.map +1 -1
  150. package/dist/esm5/inputs/datasource.js.map +1 -1
  151. package/dist/esm5/inputs/index.js +1 -1
  152. package/dist/esm5/inputs/index.js.map +1 -1
  153. package/dist/esm5/inputs/settings.js +5 -0
  154. package/dist/esm5/inputs/settings.js.map +1 -1
  155. package/dist/esm5/inputs/validation.js +99 -93
  156. package/dist/esm5/inputs/validation.js.map +1 -1
  157. package/dist/esm5/inputs/workflow.js.map +1 -1
  158. package/dist/esm5/interfaces/datasource.js.map +1 -1
  159. package/dist/esm5/interfaces/index.js.map +1 -1
  160. package/dist/esm5/interfaces/process.js.map +1 -1
  161. package/dist/esm5/interfaces/routines.js.map +1 -1
  162. package/dist/esm5/interfaces/settings.js.map +1 -1
  163. package/dist/esm5/interfaces/validation.js.map +1 -1
  164. package/dist/esm5/interfaces/workflow.js.map +1 -1
  165. package/dist/esm5/processes/adapter/append.js +2 -1
  166. package/dist/esm5/processes/adapter/append.js.map +1 -1
  167. package/dist/esm5/processes/adapter/check.js +7 -6
  168. package/dist/esm5/processes/adapter/check.js.map +1 -1
  169. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  170. package/dist/esm5/processes/adapter/fix.js +4 -2
  171. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  172. package/dist/esm5/processes/adapter/insert.js +4 -3
  173. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  174. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  175. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  176. package/dist/esm5/processes/adapter/remove.js +11 -10
  177. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  178. package/dist/esm5/processes/adapter/replace.js +1 -1
  179. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  180. package/dist/esm5/processes/adapter/reset.js +5 -5
  181. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  182. package/dist/esm5/processes/adapter/update.js +20 -15
  183. package/dist/esm5/processes/adapter/update.js.map +1 -1
  184. package/dist/esm5/processes/adjust.js +16 -11
  185. package/dist/esm5/processes/adjust.js.map +1 -1
  186. package/dist/esm5/processes/clip.js +4 -4
  187. package/dist/esm5/processes/clip.js.map +1 -1
  188. package/dist/esm5/processes/end.js +2 -1
  189. package/dist/esm5/processes/end.js.map +1 -1
  190. package/dist/esm5/processes/fetch.js +5 -3
  191. package/dist/esm5/processes/fetch.js.map +1 -1
  192. package/dist/esm5/processes/index.js +1 -1
  193. package/dist/esm5/processes/index.js.map +1 -1
  194. package/dist/esm5/processes/init.js.map +1 -1
  195. package/dist/esm5/processes/misc/base.js +1 -2
  196. package/dist/esm5/processes/misc/base.js.map +1 -1
  197. package/dist/esm5/processes/misc/enums.js.map +1 -1
  198. package/dist/esm5/processes/postFetch.js +14 -15
  199. package/dist/esm5/processes/postFetch.js.map +1 -1
  200. package/dist/esm5/processes/preClip.js +5 -4
  201. package/dist/esm5/processes/preClip.js.map +1 -1
  202. package/dist/esm5/processes/preFetch.js +26 -14
  203. package/dist/esm5/processes/preFetch.js.map +1 -1
  204. package/dist/esm5/processes/render.js +7 -7
  205. package/dist/esm5/processes/render.js.map +1 -1
  206. package/dist/esm5/processes/scroll.js +18 -12
  207. package/dist/esm5/processes/scroll.js.map +1 -1
  208. package/dist/esm5/processes/start.js.map +1 -1
  209. package/dist/esm5/scroller.js +11 -7
  210. package/dist/esm5/scroller.js.map +1 -1
  211. package/dist/esm5/version.js +1 -1
  212. package/dist/esm5/version.js.map +1 -1
  213. package/dist/esm5/workflow-transducer.js +3 -2
  214. package/dist/esm5/workflow-transducer.js.map +1 -1
  215. package/dist/esm5/workflow.js +31 -25
  216. package/dist/esm5/workflow.js.map +1 -1
  217. package/dist/typings/classes/buffer/cache.d.ts +0 -1
  218. package/dist/typings/classes/datasource.d.ts +1 -1
  219. package/dist/typings/classes/domRoutines.d.ts +1 -1
  220. package/dist/typings/classes/logger.d.ts +4 -0
  221. package/dist/typings/classes/settings.d.ts +7 -0
  222. package/dist/typings/index.d.ts +3 -3
  223. package/dist/typings/inputs/index.d.ts +1 -1
  224. package/dist/typings/inputs/settings.d.ts +1 -0
  225. package/dist/typings/interfaces/index.d.ts +10 -10
  226. package/dist/typings/interfaces/settings.d.ts +1 -0
  227. package/dist/typings/processes/index.d.ts +1 -1
  228. package/dist/typings/processes/scroll.d.ts +1 -1
  229. package/dist/typings/workflow.d.ts +1 -0
  230. package/package.json +23 -22
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-transducer.js","sourceRoot":"","sources":["../../src/workflow-transducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n CommonProcess,\r\n AdapterProcess,\r\n ProcessStatus as Status,\r\n Init,\r\n Scroll,\r\n Reset,\r\n Reload,\r\n Append,\r\n Check,\r\n Remove,\r\n UserClip,\r\n Insert,\r\n Replace,\r\n Update,\r\n Pause,\r\n Fix,\r\n Start,\r\n PreFetch,\r\n Fetch,\r\n PostFetch,\r\n Render,\r\n PreClip,\r\n Clip,\r\n Adjust,\r\n End,\r\n} from './processes/index';\r\n\r\nimport { StateMachineParams } from './interfaces/index';\r\n\r\nexport const runStateMachine = ({\r\n input: { process, status, payload = {} },\r\n methods: { run, interrupt, done, onError }\r\n}: StateMachineParams): void => {\r\n if (status === Status.error) {\r\n onError(process, payload);\r\n if (!process.startsWith('adapter')) {\r\n run(End)(payload);\r\n }\r\n return;\r\n }\r\n const { options } = payload;\r\n switch (process) {\r\n case CommonProcess.init:\r\n if (status === Status.start) { // App start\r\n run(Init)(process);\r\n }\r\n if (status === Status.next) {\r\n run(Start)();\r\n }\r\n break;\r\n case CommonProcess.scroll:\r\n if (status === Status.start) {\r\n run(Scroll)(payload);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n if (status === Status.start) {\r\n if (process === AdapterProcess.reset) {\r\n run(Reset)(options);\r\n } else {\r\n run(Reload)(options);\r\n }\r\n }\r\n if (status === Status.next) {\r\n interrupt({ process, ...payload });\r\n if (payload.finalize) {\r\n run(End)();\r\n } else {\r\n run(Init)(process);\r\n }\r\n }\r\n break;\r\n case AdapterProcess.append:\r\n case AdapterProcess.prepend:\r\n if (status === Status.start) {\r\n run(Append)({ process, options });\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n if (status === Status.start) {\r\n run(Check)();\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.remove:\r\n if (status === Status.start) {\r\n run(Remove)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.clip:\r\n if (status === Status.start) {\r\n run(UserClip)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.insert:\r\n if (status === Status.start) {\r\n run(Insert)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.replace:\r\n if (status === Status.start) {\r\n run(Replace)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.update:\r\n if (status === Status.start) {\r\n run(Update)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.pause:\r\n if (status === Status.start) {\r\n run(Pause)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.fix:\r\n if (status === Status.start) {\r\n run(Fix)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case CommonProcess.start:\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n if (payload.doRender) {\r\n run(Render)();\r\n } else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n run(Render)();\r\n break;\r\n case AdapterProcess.remove:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreFetch)();\r\n }\r\n break;\r\n case CommonProcess.preFetch:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.clip:\r\n run(PreClip)();\r\n break;\r\n default:\r\n run(Fetch)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.fetch:\r\n run(PostFetch)();\r\n break;\r\n case CommonProcess.postFetch:\r\n if (status === Status.next) {\r\n run(Render)();\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.render:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.check:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreClip)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.preClip:\r\n if (payload.doClip) {\r\n run(Clip)();\r\n } else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case CommonProcess.clip:\r\n run(Adjust)();\r\n break;\r\n case CommonProcess.adjust:\r\n run(End)();\r\n break;\r\n case CommonProcess.end:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n done();\r\n run(Init)(payload.process);\r\n break;\r\n default:\r\n run(Start)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n done();\r\n }\r\n break;\r\n }\r\n};\r\n"]}
1
+ {"version":3,"file":"workflow-transducer.js","sourceRoot":"","sources":["../../src/workflow-transducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n CommonProcess,\r\n AdapterProcess,\r\n ProcessStatus as Status,\r\n Init,\r\n Scroll,\r\n Reset,\r\n Reload,\r\n Append,\r\n Check,\r\n Remove,\r\n UserClip,\r\n Insert,\r\n Replace,\r\n Update,\r\n Pause,\r\n Fix,\r\n Start,\r\n PreFetch,\r\n Fetch,\r\n PostFetch,\r\n Render,\r\n PreClip,\r\n Clip,\r\n Adjust,\r\n End\r\n} from './processes/index';\r\n\r\nimport { StateMachineParams } from './interfaces/index';\r\n\r\nexport const runStateMachine = ({\r\n input: { process, status, payload = {} },\r\n methods: { run, interrupt, done, onError }\r\n}: StateMachineParams): void => {\r\n if (status === Status.error) {\r\n onError(process, payload);\r\n if (!process.startsWith('adapter')) {\r\n run(End)(payload);\r\n }\r\n return;\r\n }\r\n const { options } = payload;\r\n switch (process) {\r\n case CommonProcess.init:\r\n if (status === Status.start) {\r\n // App start\r\n run(Init)(process);\r\n }\r\n if (status === Status.next) {\r\n run(Start)();\r\n }\r\n break;\r\n case CommonProcess.scroll:\r\n if (status === Status.start) {\r\n run(Scroll)(payload);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n if (status === Status.start) {\r\n if (process === AdapterProcess.reset) {\r\n run(Reset)(options);\r\n } else {\r\n run(Reload)(options);\r\n }\r\n }\r\n if (status === Status.next) {\r\n interrupt({ process, ...payload });\r\n if (payload.finalize) {\r\n run(End)();\r\n } else {\r\n run(Init)(process);\r\n }\r\n }\r\n break;\r\n case AdapterProcess.append:\r\n case AdapterProcess.prepend:\r\n if (status === Status.start) {\r\n run(Append)({ process, options });\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n if (status === Status.start) {\r\n run(Check)();\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.remove:\r\n if (status === Status.start) {\r\n run(Remove)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.clip:\r\n if (status === Status.start) {\r\n run(UserClip)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.insert:\r\n if (status === Status.start) {\r\n run(Insert)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.replace:\r\n if (status === Status.start) {\r\n run(Replace)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.update:\r\n if (status === Status.start) {\r\n run(Update)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.pause:\r\n if (status === Status.start) {\r\n run(Pause)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.fix:\r\n if (status === Status.start) {\r\n run(Fix)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case CommonProcess.start:\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n if (payload.doRender) {\r\n run(Render)();\r\n } else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n run(Render)();\r\n break;\r\n case AdapterProcess.remove:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreFetch)();\r\n }\r\n break;\r\n case CommonProcess.preFetch:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.clip:\r\n run(PreClip)();\r\n break;\r\n default:\r\n run(Fetch)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.fetch:\r\n run(PostFetch)();\r\n break;\r\n case CommonProcess.postFetch:\r\n if (status === Status.next) {\r\n run(Render)();\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.render:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.check:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreClip)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.preClip:\r\n if (payload.doClip) {\r\n run(Clip)();\r\n } else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case CommonProcess.clip:\r\n run(Adjust)();\r\n break;\r\n case CommonProcess.adjust:\r\n run(End)();\r\n break;\r\n case CommonProcess.end:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n done();\r\n run(Init)(payload.process);\r\n break;\r\n default:\r\n run(Start)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n done();\r\n }\r\n break;\r\n }\r\n};\r\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Scroller } from './scroller';
2
2
  import { runStateMachine } from './workflow-transducer';
3
3
  import { Reactive } from './classes/reactive';
4
- import { AdapterProcess, CommonProcess, ProcessStatus as Status, } from './processes/index';
4
+ import { AdapterProcess, CommonProcess, ProcessStatus as Status } from './processes/index';
5
5
  import { WORKFLOW, validate } from './inputs/index';
6
6
  export class Workflow {
7
7
  constructor(params) {
@@ -15,6 +15,7 @@ export class Workflow {
15
15
  this.initTimer = null;
16
16
  this.adapterRun$ = new Reactive();
17
17
  this.cyclesDone = 0;
18
+ this.cyclesDone$ = new Reactive(0);
18
19
  this.interruptionCount = 0;
19
20
  this.errors = [];
20
21
  this.offScroll = () => null;
@@ -26,7 +27,11 @@ export class Workflow {
26
27
  onError: this.onError.bind(this)
27
28
  };
28
29
  this.scroller = new Scroller({
29
- element, datasource, consumer, workflow: this.getUpdater(), Routines
30
+ element,
31
+ datasource,
32
+ consumer,
33
+ workflow: this.getUpdater(),
34
+ Routines
30
35
  });
31
36
  if (this.scroller.settings.initializeDelay) {
32
37
  this.initTimer = setTimeout(() => {
@@ -78,16 +83,18 @@ export class Workflow {
78
83
  getUpdater() {
79
84
  return {
80
85
  call: this.callWorkflow.bind(this),
81
- onDataChanged: this.changeItems.bind(this),
86
+ onDataChanged: this.changeItems.bind(this)
82
87
  };
83
88
  }
84
89
  process(data) {
85
90
  const { status, process, payload } = data;
86
91
  if (this.scroller.settings.logProcessRun) {
87
- this.scroller.logger.log(() => [
88
- '%cfire%c', ...['color: #cc7777;', 'color: #000000;'],
89
- process, `"${status}"`, ...(payload !== void 0 ? [payload] : [])
90
- ]);
92
+ this.scroller.logger.log(() => {
93
+ const _fire = this.scroller.settings.logColor
94
+ ? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']
95
+ : ['fire'];
96
+ return [..._fire, process, `"${status}"`, ...(payload !== void 0 ? [payload] : [])];
97
+ });
91
98
  }
92
99
  this.scroller.logger.logProcess(data);
93
100
  if (process === CommonProcess.end) {
@@ -101,16 +108,18 @@ export class Workflow {
101
108
  runProcess() {
102
109
  return ({ run, process, name }) => (...args) => {
103
110
  if (this.scroller.settings.logProcessRun) {
104
- this.scroller.logger.log(() => [
105
- '%crun%c', ...['color: #333399;', 'color: #000000;'],
106
- process || name, ...args
107
- ]);
111
+ this.scroller.logger.log(() => {
112
+ const _run = this.scroller.settings.logColor
113
+ ? ['%crun%c', 'color: #333399;', 'color: #000000;']
114
+ : ['run'];
115
+ return [..._run, process || name, ...args];
116
+ });
108
117
  }
109
118
  run(this.scroller, ...args);
110
119
  };
111
120
  }
112
121
  onError(process, payload) {
113
- const message = payload && String(payload.error) || '';
122
+ const message = (payload && String(payload.error)) || '';
114
123
  const { time, cycle } = this.scroller.state;
115
124
  this.errors.push({
116
125
  process,
@@ -125,14 +134,14 @@ export class Workflow {
125
134
  const { workflow, logger } = this.scroller;
126
135
  // we are going to create a new reference for the scroller.workflow object
127
136
  // calling the old version of the scroller.workflow by any outstanding async processes will be skipped
128
- workflow.call = (_) => // eslint-disable-line @typescript-eslint/no-unused-vars
129
- logger.log('[skip wf call]');
137
+ workflow.call = (_) => logger.log('[skip wf call]');
130
138
  workflow.call.interrupted = true;
131
139
  this.scroller.workflow = this.getUpdater();
132
140
  this.interruptionCount++;
133
141
  logger.log(() => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`);
134
142
  }
135
- if (datasource) { // Scroller re-initialization case
143
+ if (datasource) {
144
+ // Scroller re-initialization case
136
145
  const reInit = () => {
137
146
  this.scroller.logger.log('new Scroller instantiation');
138
147
  const scroller = new Scroller({ datasource, scroller: this.scroller });
@@ -152,6 +161,7 @@ export class Workflow {
152
161
  done() {
153
162
  const { state, logger } = this.scroller;
154
163
  this.cyclesDone++;
164
+ this.cyclesDone$.set(this.cyclesDone);
155
165
  logger.logCycle(false);
156
166
  state.endWorkflowCycle(this.cyclesDone + 1);
157
167
  this.finalize();
@@ -163,13 +173,14 @@ export class Workflow {
163
173
  }
164
174
  this.offScroll();
165
175
  this.adapterRun$.dispose();
176
+ this.cyclesDone$.dispose();
166
177
  this.scroller.dispose(true);
167
178
  Object.getOwnPropertyNames(this).forEach(prop => {
168
179
  delete this[prop];
169
180
  });
181
+ this.isInitialized = false;
170
182
  this.disposed = true;
171
183
  }
172
- finalize() {
173
- }
184
+ finalize() { }
174
185
  }
175
186
  //# sourceMappingURL=workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from './scroller';\r\nimport { runStateMachine } from './workflow-transducer';\r\nimport { Reactive } from './classes/reactive';\r\nimport { Item } from './classes/item';\r\nimport { AdapterProcess, CommonProcess, ProcessStatus as Status, } from './processes/index';\r\nimport { WORKFLOW, validate } from './inputs/index';\r\nimport {\r\n WorkflowParams,\r\n ProcessName,\r\n ProcessPayload,\r\n ProcessClass,\r\n ProcessSubject,\r\n WorkflowError,\r\n InterruptParams,\r\n StateMachineMethods,\r\n ScrollerWorkflow,\r\n} from './interfaces/index';\r\n\r\nexport class Workflow<ItemData = unknown> {\r\n\r\n isInitialized: boolean;\r\n disposed: boolean;\r\n initTimer: ReturnType<typeof setTimeout> | null;\r\n adapterRun$: Reactive<ProcessSubject>;\r\n cyclesDone: number;\r\n interruptionCount: number;\r\n errors: WorkflowError[];\r\n\r\n private offScroll: () => void;\r\n readonly propagateChanges: WorkflowParams<ItemData>['run'];\r\n readonly stateMachineMethods: StateMachineMethods<ItemData>;\r\n\r\n scroller: Scroller<ItemData>;\r\n\r\n constructor(params: WorkflowParams<ItemData>) {\r\n const { element, datasource, consumer, run, Routines } = params;\r\n\r\n const validationResult = validate(params, WORKFLOW);\r\n if (!validationResult.isValid) {\r\n throw new Error(`Invalid Workflow params: ${validationResult.errors.join(', ')}.`);\r\n }\r\n\r\n this.isInitialized = false;\r\n this.disposed = false;\r\n this.initTimer = null;\r\n this.adapterRun$ = new Reactive();\r\n this.cyclesDone = 0;\r\n this.interruptionCount = 0;\r\n this.errors = [];\r\n this.offScroll = () => null;\r\n this.propagateChanges = run;\r\n this.stateMachineMethods = {\r\n run: this.runProcess(),\r\n interrupt: this.interrupt.bind(this),\r\n done: this.done.bind(this),\r\n onError: this.onError.bind(this)\r\n };\r\n\r\n this.scroller = new Scroller<ItemData>({\r\n element, datasource, consumer, workflow: this.getUpdater(), Routines\r\n });\r\n\r\n if (this.scroller.settings.initializeDelay) {\r\n this.initTimer = setTimeout(() => {\r\n this.initTimer = null;\r\n this.init();\r\n }, this.scroller.settings.initializeDelay);\r\n } else {\r\n this.init();\r\n }\r\n }\r\n\r\n init(): void {\r\n this.scroller.init(this.adapterRun$);\r\n\r\n // set up scroll event listener\r\n const { routines } = this.scroller;\r\n const onScrollHandler: EventListener =\r\n event => this.callWorkflow({\r\n process: CommonProcess.scroll,\r\n status: Status.start,\r\n payload: { event }\r\n });\r\n this.offScroll = routines.onScroll(onScrollHandler);\r\n\r\n // run the Workflow\r\n this.isInitialized = true;\r\n this.callWorkflow({\r\n process: CommonProcess.init,\r\n status: Status.start\r\n });\r\n }\r\n\r\n changeItems(items: Item<ItemData>[]): void {\r\n this.propagateChanges(items);\r\n }\r\n\r\n callWorkflow(processSubject: ProcessSubject): void {\r\n if (!this.isInitialized) {\r\n return;\r\n }\r\n const { process, status } = processSubject;\r\n // if the scroller is paused, any process other than \"pause\" and \"reset\" should be blocked\r\n if (this.scroller.state.paused.get()) {\r\n if (![AdapterProcess.pause, AdapterProcess.reset].includes(process as AdapterProcess)) {\r\n this.scroller.logger.log('scroller is paused: ' + process + ' process is ignored');\r\n return;\r\n }\r\n }\r\n if (process && process.startsWith('adapter') && status !== Status.next) {\r\n this.adapterRun$.set(processSubject);\r\n }\r\n this.process(processSubject);\r\n }\r\n\r\n getUpdater(): ScrollerWorkflow<ItemData> {\r\n return {\r\n call: this.callWorkflow.bind(this),\r\n onDataChanged: this.changeItems.bind(this),\r\n };\r\n }\r\n\r\n process(data: ProcessSubject): void {\r\n const { status, process, payload } = data;\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(() => [\r\n '%cfire%c', ...['color: #cc7777;', 'color: #000000;'],\r\n process, `\"${status}\"`, ...(payload !== void 0 ? [payload] : [])\r\n ]);\r\n }\r\n this.scroller.logger.logProcess(data);\r\n\r\n if (process === CommonProcess.end) {\r\n this.scroller.finalize();\r\n }\r\n runStateMachine({\r\n input: data,\r\n methods: this.stateMachineMethods as StateMachineMethods<unknown>\r\n });\r\n }\r\n\r\n runProcess() {\r\n return ({ run, process, name }: ProcessClass) =>\r\n (...args: unknown[]): void => {\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(() => [\r\n '%crun%c', ...['color: #333399;', 'color: #000000;'],\r\n process || name, ...args\r\n ]);\r\n }\r\n run(this.scroller as Scroller, ...args);\r\n };\r\n }\r\n\r\n onError(process: ProcessName, payload?: ProcessPayload): void {\r\n const message: string = payload && String(payload.error) || '';\r\n const { time, cycle } = this.scroller.state;\r\n this.errors.push({\r\n process,\r\n message,\r\n time,\r\n loop: cycle.loopIdNext\r\n });\r\n this.scroller.logger.logError(message);\r\n }\r\n\r\n interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void {\r\n if (finalize) {\r\n const { workflow, logger } = this.scroller;\r\n // we are going to create a new reference for the scroller.workflow object\r\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\r\n workflow.call = (_: ProcessSubject) => // eslint-disable-line @typescript-eslint/no-unused-vars\r\n logger.log('[skip wf call]');\r\n workflow.call.interrupted = true;\r\n this.scroller.workflow = this.getUpdater();\r\n this.interruptionCount++;\r\n logger.log(() => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`);\r\n }\r\n if (datasource) { // Scroller re-initialization case\r\n const reInit = () => {\r\n this.scroller.logger.log('new Scroller instantiation');\r\n const scroller = new Scroller<ItemData>({ datasource, scroller: this.scroller });\r\n this.scroller.dispose();\r\n this.scroller = scroller;\r\n this.scroller.init();\r\n };\r\n if (this.scroller.state.cycle.busy.get()) {\r\n // todo: think about immediate re-initialization even is there are pending processes\r\n this.scroller.adapter.relax(reInit.bind(this));\r\n } else {\r\n reInit();\r\n }\r\n }\r\n }\r\n\r\n done(): void {\r\n const { state, logger } = this.scroller;\r\n this.cyclesDone++;\r\n logger.logCycle(false);\r\n state.endWorkflowCycle(this.cyclesDone + 1);\r\n this.finalize();\r\n }\r\n\r\n dispose(): void {\r\n this.scroller.logger.log(() => 'disposing workflow');\r\n if (this.initTimer) {\r\n clearTimeout(this.initTimer);\r\n }\r\n this.offScroll();\r\n this.adapterRun$.dispose();\r\n this.scroller.dispose(true);\r\n Object.getOwnPropertyNames(this).forEach(prop => {\r\n delete (this as Record<string, unknown>)[prop];\r\n });\r\n this.disposed = true;\r\n }\r\n\r\n finalize(): void {\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from './scroller';\r\nimport { runStateMachine } from './workflow-transducer';\r\nimport { Reactive } from './classes/reactive';\r\nimport { Item } from './classes/item';\r\nimport { AdapterProcess, CommonProcess, ProcessStatus as Status } from './processes/index';\r\nimport { WORKFLOW, validate } from './inputs/index';\r\nimport {\r\n WorkflowParams,\r\n ProcessName,\r\n ProcessPayload,\r\n ProcessClass,\r\n ProcessSubject,\r\n WorkflowError,\r\n InterruptParams,\r\n StateMachineMethods,\r\n ScrollerWorkflow\r\n} from './interfaces/index';\r\n\r\nexport class Workflow<ItemData = unknown> {\r\n isInitialized: boolean;\r\n disposed: boolean;\r\n initTimer: ReturnType<typeof setTimeout> | null;\r\n adapterRun$: Reactive<ProcessSubject>;\r\n cyclesDone: number;\r\n cyclesDone$: Reactive<number>;\r\n interruptionCount: number;\r\n errors: WorkflowError[];\r\n\r\n private offScroll: () => void;\r\n readonly propagateChanges: WorkflowParams<ItemData>['run'];\r\n readonly stateMachineMethods: StateMachineMethods<ItemData>;\r\n\r\n scroller: Scroller<ItemData>;\r\n\r\n constructor(params: WorkflowParams<ItemData>) {\r\n const { element, datasource, consumer, run, Routines } = params;\r\n\r\n const validationResult = validate(params, WORKFLOW);\r\n if (!validationResult.isValid) {\r\n throw new Error(`Invalid Workflow params: ${validationResult.errors.join(', ')}.`);\r\n }\r\n\r\n this.isInitialized = false;\r\n this.disposed = false;\r\n this.initTimer = null;\r\n this.adapterRun$ = new Reactive();\r\n this.cyclesDone = 0;\r\n this.cyclesDone$ = new Reactive<number>(0);\r\n this.interruptionCount = 0;\r\n this.errors = [];\r\n this.offScroll = () => null;\r\n this.propagateChanges = run;\r\n this.stateMachineMethods = {\r\n run: this.runProcess(),\r\n interrupt: this.interrupt.bind(this),\r\n done: this.done.bind(this),\r\n onError: this.onError.bind(this)\r\n };\r\n\r\n this.scroller = new Scroller<ItemData>({\r\n element,\r\n datasource,\r\n consumer,\r\n workflow: this.getUpdater(),\r\n Routines\r\n });\r\n\r\n if (this.scroller.settings.initializeDelay) {\r\n this.initTimer = setTimeout(() => {\r\n this.initTimer = null;\r\n this.init();\r\n }, this.scroller.settings.initializeDelay);\r\n } else {\r\n this.init();\r\n }\r\n }\r\n\r\n init(): void {\r\n this.scroller.init(this.adapterRun$);\r\n\r\n // set up scroll event listener\r\n const { routines } = this.scroller;\r\n const onScrollHandler: EventListener = event =>\r\n this.callWorkflow({\r\n process: CommonProcess.scroll,\r\n status: Status.start,\r\n payload: { event }\r\n });\r\n this.offScroll = routines.onScroll(onScrollHandler);\r\n\r\n // run the Workflow\r\n this.isInitialized = true;\r\n this.callWorkflow({\r\n process: CommonProcess.init,\r\n status: Status.start\r\n });\r\n }\r\n\r\n changeItems(items: Item<ItemData>[]): void {\r\n this.propagateChanges(items);\r\n }\r\n\r\n callWorkflow(processSubject: ProcessSubject): void {\r\n if (!this.isInitialized) {\r\n return;\r\n }\r\n const { process, status } = processSubject;\r\n // if the scroller is paused, any process other than \"pause\" and \"reset\" should be blocked\r\n if (this.scroller.state.paused.get()) {\r\n if (![AdapterProcess.pause, AdapterProcess.reset].includes(process as AdapterProcess)) {\r\n this.scroller.logger.log('scroller is paused: ' + process + ' process is ignored');\r\n return;\r\n }\r\n }\r\n if (process && process.startsWith('adapter') && status !== Status.next) {\r\n this.adapterRun$.set(processSubject);\r\n }\r\n this.process(processSubject);\r\n }\r\n\r\n getUpdater(): ScrollerWorkflow<ItemData> {\r\n return {\r\n call: this.callWorkflow.bind(this),\r\n onDataChanged: this.changeItems.bind(this)\r\n };\r\n }\r\n\r\n process(data: ProcessSubject): void {\r\n const { status, process, payload } = data;\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(() => {\r\n const _fire = this.scroller.settings.logColor\r\n ? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']\r\n : ['fire'];\r\n return [..._fire, process, `\"${status}\"`, ...(payload !== void 0 ? [payload] : [])];\r\n });\r\n }\r\n this.scroller.logger.logProcess(data);\r\n\r\n if (process === CommonProcess.end) {\r\n this.scroller.finalize();\r\n }\r\n runStateMachine({\r\n input: data,\r\n methods: this.stateMachineMethods as StateMachineMethods<unknown>\r\n });\r\n }\r\n\r\n runProcess() {\r\n return ({ run, process, name }: ProcessClass) =>\r\n (...args: unknown[]): void => {\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(() => {\r\n const _run = this.scroller.settings.logColor\r\n ? ['%crun%c', 'color: #333399;', 'color: #000000;']\r\n : ['run'];\r\n return [..._run, process || name, ...args];\r\n });\r\n }\r\n run(this.scroller as Scroller, ...args);\r\n };\r\n }\r\n\r\n onError(process: ProcessName, payload?: ProcessPayload): void {\r\n const message: string = (payload && String(payload.error)) || '';\r\n const { time, cycle } = this.scroller.state;\r\n this.errors.push({\r\n process,\r\n message,\r\n time,\r\n loop: cycle.loopIdNext\r\n });\r\n this.scroller.logger.logError(message);\r\n }\r\n\r\n interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void {\r\n if (finalize) {\r\n const { workflow, logger } = this.scroller;\r\n // we are going to create a new reference for the scroller.workflow object\r\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\r\n workflow.call = (_: ProcessSubject) => logger.log('[skip wf call]');\r\n workflow.call.interrupted = true;\r\n this.scroller.workflow = this.getUpdater();\r\n this.interruptionCount++;\r\n logger.log(\r\n () => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`\r\n );\r\n }\r\n if (datasource) {\r\n // Scroller re-initialization case\r\n const reInit = () => {\r\n this.scroller.logger.log('new Scroller instantiation');\r\n const scroller = new Scroller<ItemData>({ datasource, scroller: this.scroller });\r\n this.scroller.dispose();\r\n this.scroller = scroller;\r\n this.scroller.init();\r\n };\r\n if (this.scroller.state.cycle.busy.get()) {\r\n // todo: think about immediate re-initialization even is there are pending processes\r\n this.scroller.adapter.relax(reInit.bind(this));\r\n } else {\r\n reInit();\r\n }\r\n }\r\n }\r\n\r\n done(): void {\r\n const { state, logger } = this.scroller;\r\n this.cyclesDone++;\r\n this.cyclesDone$.set(this.cyclesDone);\r\n logger.logCycle(false);\r\n state.endWorkflowCycle(this.cyclesDone + 1);\r\n this.finalize();\r\n }\r\n\r\n dispose(): void {\r\n this.scroller.logger.log(() => 'disposing workflow');\r\n if (this.initTimer) {\r\n clearTimeout(this.initTimer);\r\n }\r\n this.offScroll();\r\n this.adapterRun$.dispose();\r\n this.cyclesDone$.dispose();\r\n this.scroller.dispose(true);\r\n Object.getOwnPropertyNames(this).forEach(prop => {\r\n delete (this as Record<string, unknown>)[prop];\r\n });\r\n this.isInitialized = false;\r\n this.disposed = true;\r\n }\r\n\r\n finalize(): void {}\r\n}\r\n"]}
@@ -41,7 +41,8 @@ var AdapterContext = /** @class */ (function () {
41
41
  return value;
42
42
  } }, conf));
43
43
  });
44
- if (reactive) { // save both configured and default reactive props in the store
44
+ if (reactive) {
45
+ // save both configured and default reactive props in the store
45
46
  reactiveConfigStorage.set(id, reactivePropsStore);
46
47
  }
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/classes/adapter/context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC1G,OAAO,IAAI,MAAM,eAAe,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGtD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;IAEE,wBAAY,MAAsB;QAAlC,iBA8CC;QA7CS,IAAA,IAAI,GAAe,MAAM,KAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QAClC,IAAM,EAAE,GAAG,EAAE,aAAa,CAAC;QAC3B,IAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACpC,IAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,yBAAyB;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,aAAI,GAAG,EAAE,cAAM,OAAA,EAAE,EAAF,CAAE,IAAK,IAAI,EAAG,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,IAAK,IAAI,EAAG,CAAC;QAChF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,aAAI,GAAG,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK,IAAK,IAAI,EAAG,CAAC;QACtF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,IAAK,IAAI,EAAG,CAAC;QAE3F,iFAAiF;QACjF,sBAAsB,EAAE;aACrB,MAAM,CAAC,UAAC,EAAa;gBAAX,SAAS,eAAA;YAAO,OAAA,CAAC,SAAS;QAAV,CAAU,CAAC;aACrC,OAAO,CAAC,UAAA,IAAI;YACL,IAAA,KAAK,GAAK,IAAI,MAAT,CAAU;YAErB,+DAA+D;YAC/D,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACvD,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACV,8EAA8E;oBAC9E,yEAAyE;oBACzE,kFAAkF;oBAClF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,yBACxB,KAAK,KACR,OAAO,EAAE,KAA0B,CAAC,8CAA8C;uBACnF,CAAC;oBACF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,0DAA0D;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,IAAI,CAAC,IAAI,aACnC,GAAG,EAAE;oBACH,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7B,OAAO,KAAK,CAAC;gBACf,CAAC,IACE,IAAI,EACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,IAAI,QAAQ,EAAE,CAAC,CAAC,+DAA+D;YAC7E,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjDD,IAiDC","sourcesContent":["import { AdapterPropName, AdapterPropType, getDefaultAdapterProps, reactiveConfigStorage } from './props';\r\nimport core from '../../version';\r\nimport { Reactive } from '../reactive';\r\nimport { wantedStorage, wantedUtils } from './wanted';\r\nimport { IReactivePropsStore, IAdapterConfig } from '../../interfaces/index';\r\n\r\nlet instanceCount = 0;\r\n\r\nexport class AdapterContext {\r\n\r\n constructor(config: IAdapterConfig) {\r\n const { mock, reactive } = config;\r\n const id = ++instanceCount;\r\n const conf = { configurable: true };\r\n const reactivePropsStore: IReactivePropsStore = {};\r\n wantedStorage.set(id, { box: {}, block: false });\r\n\r\n // set up permanent props\r\n Object.defineProperty(this, AdapterPropName.id, { get: () => id, ...conf });\r\n Object.defineProperty(this, AdapterPropName.mock, { get: () => mock, ...conf });\r\n Object.defineProperty(this, AdapterPropName.augmented, { get: () => false, ...conf });\r\n Object.defineProperty(this, AdapterPropName.version, { get: () => core.version, ...conf });\r\n\r\n // set up default props, they will be reassigned during the Adapter instantiation\r\n getDefaultAdapterProps()\r\n .filter(({ permanent }) => !permanent)\r\n .forEach(prop => {\r\n let { value } = prop;\r\n\r\n // reactive props might be reconfigured by the vscroll consumer\r\n if (reactive && prop.type === AdapterPropType.Reactive) {\r\n const react = reactive[prop.name];\r\n if (react) {\r\n // here we have a configured reactive property that came from the outer config\r\n // this prop must be exposed via Adapter, but at the same time we need to\r\n // persist the original default value as it will be used by the Adapter internally\r\n reactivePropsStore[prop.name] = {\r\n ...react,\r\n default: value as Reactive<unknown> // persisting the default native Reactive prop\r\n };\r\n value = react.source; // exposing the configured prop instead of the default one\r\n }\r\n }\r\n\r\n Object.defineProperty(this, prop.name, {\r\n get: () => {\r\n wantedUtils.setBox(prop, id);\r\n return value;\r\n },\r\n ...conf\r\n });\r\n });\r\n\r\n if (reactive) { // save both configured and default reactive props in the store\r\n reactiveConfigStorage.set(id, reactivePropsStore);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/classes/adapter/context.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,eAAe,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGtD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;IACE,wBAAY,MAAsB;QAAlC,iBA+CC;QA9CS,IAAA,IAAI,GAAe,MAAM,KAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QAClC,IAAM,EAAE,GAAG,EAAE,aAAa,CAAC;QAC3B,IAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACpC,IAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,yBAAyB;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,aAAI,GAAG,EAAE,cAAM,OAAA,EAAE,EAAF,CAAE,IAAK,IAAI,EAAG,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,IAAK,IAAI,EAAG,CAAC;QAChF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,aAAI,GAAG,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK,IAAK,IAAI,EAAG,CAAC;QACtF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,IAAK,IAAI,EAAG,CAAC;QAE3F,iFAAiF;QACjF,sBAAsB,EAAE;aACrB,MAAM,CAAC,UAAC,EAAa;gBAAX,SAAS,eAAA;YAAO,OAAA,CAAC,SAAS;QAAV,CAAU,CAAC;aACrC,OAAO,CAAC,UAAA,IAAI;YACL,IAAA,KAAK,GAAK,IAAI,MAAT,CAAU;YAErB,+DAA+D;YAC/D,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACvD,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACV,8EAA8E;oBAC9E,yEAAyE;oBACzE,kFAAkF;oBAClF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,yBACxB,KAAK,KACR,OAAO,EAAE,KAA0B,CAAC,8CAA8C;uBACnF,CAAC;oBACF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,0DAA0D;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,IAAI,CAAC,IAAI,aACnC,GAAG,EAAE;oBACH,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7B,OAAO,KAAK,CAAC;gBACf,CAAC,IACE,IAAI,EACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,IAAI,QAAQ,EAAE,CAAC;YACb,+DAA+D;YAC/D,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjDD,IAiDC","sourcesContent":["import {\r\n AdapterPropName,\r\n AdapterPropType,\r\n getDefaultAdapterProps,\r\n reactiveConfigStorage\r\n} from './props';\r\nimport core from '../../version';\r\nimport { Reactive } from '../reactive';\r\nimport { wantedStorage, wantedUtils } from './wanted';\r\nimport { IReactivePropsStore, IAdapterConfig } from '../../interfaces/index';\r\n\r\nlet instanceCount = 0;\r\n\r\nexport class AdapterContext {\r\n constructor(config: IAdapterConfig) {\r\n const { mock, reactive } = config;\r\n const id = ++instanceCount;\r\n const conf = { configurable: true };\r\n const reactivePropsStore: IReactivePropsStore = {};\r\n wantedStorage.set(id, { box: {}, block: false });\r\n\r\n // set up permanent props\r\n Object.defineProperty(this, AdapterPropName.id, { get: () => id, ...conf });\r\n Object.defineProperty(this, AdapterPropName.mock, { get: () => mock, ...conf });\r\n Object.defineProperty(this, AdapterPropName.augmented, { get: () => false, ...conf });\r\n Object.defineProperty(this, AdapterPropName.version, { get: () => core.version, ...conf });\r\n\r\n // set up default props, they will be reassigned during the Adapter instantiation\r\n getDefaultAdapterProps()\r\n .filter(({ permanent }) => !permanent)\r\n .forEach(prop => {\r\n let { value } = prop;\r\n\r\n // reactive props might be reconfigured by the vscroll consumer\r\n if (reactive && prop.type === AdapterPropType.Reactive) {\r\n const react = reactive[prop.name];\r\n if (react) {\r\n // here we have a configured reactive property that came from the outer config\r\n // this prop must be exposed via Adapter, but at the same time we need to\r\n // persist the original default value as it will be used by the Adapter internally\r\n reactivePropsStore[prop.name] = {\r\n ...react,\r\n default: value as Reactive<unknown> // persisting the default native Reactive prop\r\n };\r\n value = react.source; // exposing the configured prop instead of the default one\r\n }\r\n }\r\n\r\n Object.defineProperty(this, prop.name, {\r\n get: () => {\r\n wantedUtils.setBox(prop, id);\r\n return value;\r\n },\r\n ...conf\r\n });\r\n });\r\n\r\n if (reactive) {\r\n // save both configured and default reactive props in the store\r\n reactiveConfigStorage.set(id, reactivePropsStore);\r\n }\r\n }\r\n}\r\n"]}
@@ -78,7 +78,7 @@ var bufferInfoDefault = {
78
78
  maxIndex: NaN,
79
79
  absMinIndex: -Infinity,
80
80
  absMaxIndex: +Infinity,
81
- defaultSize: NaN,
81
+ defaultSize: NaN
82
82
  };
83
83
  export var EMPTY_ITEM = {
84
84
  data: {},
@@ -247,7 +247,7 @@ export var getDefaultAdapterProps = function () { return [
247
247
  {
248
248
  type: Type.Function,
249
249
  name: Name.relax,
250
- value: noop
250
+ value: noopWF
251
251
  },
252
252
  {
253
253
  type: Type.Function,
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../src/classes/adapter/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { Reactive } from '../reactive';\r\nimport {\r\n IAdapterProp, IBufferInfo, ItemAdapter, IPackages, AdapterMethodResult, IReactivePropsStore\r\n} from '../../interfaces/index';\r\n\r\nexport enum AdapterPropName {\r\n id = 'id',\r\n mock = 'mock',\r\n augmented = 'augmented',\r\n version = 'version',\r\n init = 'init',\r\n init$ = 'init$',\r\n packageInfo = 'packageInfo',\r\n itemsCount = 'itemsCount',\r\n bufferInfo = 'bufferInfo',\r\n isLoading = 'isLoading',\r\n isLoading$ = 'isLoading$',\r\n loopPending = 'loopPending',\r\n loopPending$ = 'loopPending$',\r\n firstVisible = 'firstVisible',\r\n firstVisible$ = 'firstVisible$',\r\n lastVisible = 'lastVisible',\r\n lastVisible$ = 'lastVisible$',\r\n bof = 'bof',\r\n bof$ = 'bof$',\r\n eof = 'eof',\r\n eof$ = 'eof$',\r\n paused = 'paused',\r\n paused$ = 'paused$',\r\n reset = 'reset',\r\n reload = 'reload',\r\n append = 'append',\r\n prepend = 'prepend',\r\n check = 'check',\r\n remove = 'remove',\r\n clip = 'clip',\r\n insert = 'insert',\r\n replace = 'replace',\r\n update = 'update',\r\n pause = 'pause',\r\n resume = 'resume',\r\n fix = 'fix',\r\n relax = 'relax',\r\n showLog = 'showLog',\r\n}\r\n\r\nexport enum AdapterPropType {\r\n Scalar,\r\n Reactive,\r\n WorkflowRunner,\r\n Function,\r\n}\r\n\r\nconst Name = AdapterPropName;\r\nconst Type = AdapterPropType;\r\n\r\nconst noop = () => null;\r\n\r\nexport const methodPreResult: AdapterMethodResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Adapter is not initialized'\r\n};\r\n\r\nexport const methodPausedResult: AdapterMethodResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Scroller is paused'\r\n};\r\n\r\nconst noopWF = () => Promise.resolve(methodPreResult);\r\n\r\nconst emptyPackageInfo: IPackages = {\r\n core: {\r\n name: '',\r\n version: ''\r\n },\r\n consumer: {\r\n name: '',\r\n version: ''\r\n }\r\n};\r\n\r\nconst bufferInfoDefault: IBufferInfo = {\r\n firstIndex: NaN,\r\n lastIndex: NaN,\r\n minIndex: NaN,\r\n maxIndex: NaN,\r\n absMinIndex: -Infinity,\r\n absMaxIndex: +Infinity,\r\n defaultSize: NaN,\r\n};\r\n\r\nexport const EMPTY_ITEM = {\r\n data: {},\r\n element: {}\r\n} as ItemAdapter;\r\n\r\nexport const getDefaultAdapterProps = (): IAdapterProp[] => [\r\n {\r\n type: Type.Scalar,\r\n name: Name.id,\r\n value: 0,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.mock,\r\n value: true,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.augmented,\r\n value: false,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.version,\r\n value: '',\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.init,\r\n value: false,\r\n reactive: Name.init$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.packageInfo,\r\n value: emptyPackageInfo,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.itemsCount,\r\n value: 0,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bufferInfo,\r\n value: bufferInfoDefault,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.isLoading,\r\n value: false,\r\n reactive: Name.isLoading$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.loopPending,\r\n value: false,\r\n reactive: Name.loopPending$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.firstVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.firstVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.lastVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.lastVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bof,\r\n value: false,\r\n reactive: Name.bof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.eof,\r\n value: false,\r\n reactive: Name.eof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.paused,\r\n value: false,\r\n reactive: Name.paused$\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reset,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reload,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.append,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.prepend,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.check,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.remove,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.clip,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.insert,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.replace,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.update,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.pause,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.resume,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.fix,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.relax,\r\n value: noop\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.showLog,\r\n value: noop\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.init$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.isLoading$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.loopPending$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.firstVisible$,\r\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.lastVisible$,\r\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.bof$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.eof$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.paused$,\r\n value: new Reactive<boolean>()\r\n }\r\n];\r\n\r\nexport const reactiveConfigStorage = new Map<number, IReactivePropsStore>();\r\n"]}
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../src/classes/adapter/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { Reactive } from '../reactive';\r\nimport {\r\n IAdapterProp,\r\n IBufferInfo,\r\n ItemAdapter,\r\n IPackages,\r\n AdapterMethodResult,\r\n IReactivePropsStore\r\n} from '../../interfaces/index';\r\n\r\nexport enum AdapterPropName {\r\n id = 'id',\r\n mock = 'mock',\r\n augmented = 'augmented',\r\n version = 'version',\r\n init = 'init',\r\n init$ = 'init$',\r\n packageInfo = 'packageInfo',\r\n itemsCount = 'itemsCount',\r\n bufferInfo = 'bufferInfo',\r\n isLoading = 'isLoading',\r\n isLoading$ = 'isLoading$',\r\n loopPending = 'loopPending',\r\n loopPending$ = 'loopPending$',\r\n firstVisible = 'firstVisible',\r\n firstVisible$ = 'firstVisible$',\r\n lastVisible = 'lastVisible',\r\n lastVisible$ = 'lastVisible$',\r\n bof = 'bof',\r\n bof$ = 'bof$',\r\n eof = 'eof',\r\n eof$ = 'eof$',\r\n paused = 'paused',\r\n paused$ = 'paused$',\r\n reset = 'reset',\r\n reload = 'reload',\r\n append = 'append',\r\n prepend = 'prepend',\r\n check = 'check',\r\n remove = 'remove',\r\n clip = 'clip',\r\n insert = 'insert',\r\n replace = 'replace',\r\n update = 'update',\r\n pause = 'pause',\r\n resume = 'resume',\r\n fix = 'fix',\r\n relax = 'relax',\r\n showLog = 'showLog'\r\n}\r\n\r\nexport enum AdapterPropType {\r\n Scalar,\r\n Reactive,\r\n WorkflowRunner,\r\n Function\r\n}\r\n\r\nconst Name = AdapterPropName;\r\nconst Type = AdapterPropType;\r\n\r\nconst noop = () => null;\r\n\r\nexport const methodPreResult: AdapterMethodResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Adapter is not initialized'\r\n};\r\n\r\nexport const methodPausedResult: AdapterMethodResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Scroller is paused'\r\n};\r\n\r\nconst noopWF = () => Promise.resolve(methodPreResult);\r\n\r\nconst emptyPackageInfo: IPackages = {\r\n core: {\r\n name: '',\r\n version: ''\r\n },\r\n consumer: {\r\n name: '',\r\n version: ''\r\n }\r\n};\r\n\r\nconst bufferInfoDefault: IBufferInfo = {\r\n firstIndex: NaN,\r\n lastIndex: NaN,\r\n minIndex: NaN,\r\n maxIndex: NaN,\r\n absMinIndex: -Infinity,\r\n absMaxIndex: +Infinity,\r\n defaultSize: NaN\r\n};\r\n\r\nexport const EMPTY_ITEM = {\r\n data: {},\r\n element: {}\r\n} as ItemAdapter;\r\n\r\nexport const getDefaultAdapterProps = (): IAdapterProp[] => [\r\n {\r\n type: Type.Scalar,\r\n name: Name.id,\r\n value: 0,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.mock,\r\n value: true,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.augmented,\r\n value: false,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.version,\r\n value: '',\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.init,\r\n value: false,\r\n reactive: Name.init$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.packageInfo,\r\n value: emptyPackageInfo,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.itemsCount,\r\n value: 0,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bufferInfo,\r\n value: bufferInfoDefault,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.isLoading,\r\n value: false,\r\n reactive: Name.isLoading$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.loopPending,\r\n value: false,\r\n reactive: Name.loopPending$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.firstVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.firstVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.lastVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.lastVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bof,\r\n value: false,\r\n reactive: Name.bof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.eof,\r\n value: false,\r\n reactive: Name.eof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.paused,\r\n value: false,\r\n reactive: Name.paused$\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reset,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reload,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.append,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.prepend,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.check,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.remove,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.clip,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.insert,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.replace,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.update,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.pause,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.resume,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.fix,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.relax,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.showLog,\r\n value: noop\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.init$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.isLoading$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.loopPending$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.firstVisible$,\r\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.lastVisible$,\r\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.bof$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.eof$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.paused$,\r\n value: new Reactive<boolean>()\r\n }\r\n];\r\n\r\nexport const reactiveConfigStorage = new Map<number, IReactivePropsStore>();\r\n"]}
@@ -30,7 +30,6 @@ var Adapter = /** @class */ (function () {
30
30
  this.source = {}; // for Reactive props
31
31
  this.box = {}; // for Scalars over Reactive props
32
32
  this.demand = {}; // for Scalars on demand
33
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
33
  this.setFirstOrLastVisible = function (_) { };
35
34
  this.getWorkflow = getWorkflow;
36
35
  this.logger = logger;
@@ -39,7 +38,7 @@ var Adapter = /** @class */ (function () {
39
38
  this.reloadCounter = 0;
40
39
  var contextId = (context === null || context === void 0 ? void 0 : context.id) || -1;
41
40
  // public context (if exists) should provide access to Reactive props config by id
42
- var reactivePropsStore = context && reactiveConfigStorage.get(context.id) || {};
41
+ var reactivePropsStore = (context && reactiveConfigStorage.get(context.id)) || {};
43
42
  // the Adapter initialization should not trigger "wanted" props setting;
44
43
  // after the initialization is completed, "wanted" functionality must be unblocked
45
44
  wantedUtils.setBlock(true, contextId);
@@ -54,7 +53,7 @@ var Adapter = /** @class */ (function () {
54
53
  value = reactiveProp.default; // boolean doesn't matter here
55
54
  }
56
55
  }
57
- return (__assign(__assign({}, prop), { value: value }));
56
+ return __assign(__assign({}, prop), { value: value });
58
57
  })
59
58
  : getDefaultAdapterProps();
60
59
  // restore default reactive props if they were configured
@@ -97,10 +96,12 @@ var Adapter = /** @class */ (function () {
97
96
  // so this method should be called when accessing the "wanted" props through one of the following getters
98
97
  var processWanted = function (prop) {
99
98
  if (wantedUtils.setBox(prop, contextId)) {
100
- if ([AdapterPropName.firstVisible, AdapterPropName.firstVisible$].some(function (n) { return n === prop.name; })) {
99
+ var firstPropList = [AdapterPropName.firstVisible, AdapterPropName.firstVisible$];
100
+ var lastPropList = [AdapterPropName.lastVisible, AdapterPropName.lastVisible$];
101
+ if (firstPropList.some(function (n) { return n === prop.name; })) {
101
102
  _this.setFirstOrLastVisible({ first: true });
102
103
  }
103
- else if ([AdapterPropName.lastVisible, AdapterPropName.lastVisible$].some(function (n) { return n === prop.name; })) {
104
+ else if (lastPropList.some(function (n) { return n === prop.name; })) {
104
105
  _this.setFirstOrLastVisible({ last: true });
105
106
  }
106
107
  }
@@ -150,8 +151,7 @@ var Adapter = /** @class */ (function () {
150
151
  return;
151
152
  }
152
153
  // Adapter public context augmentation
153
- adapterProps
154
- .forEach(function (prop) {
154
+ adapterProps.forEach(function (prop) {
155
155
  var name = prop.name, type = prop.type, permanent = prop.permanent;
156
156
  var value = _this[name];
157
157
  if (type === AdapterPropType.Function) {
@@ -245,23 +245,23 @@ var Adapter = /** @class */ (function () {
245
245
  maxIndex: buffer.maxIndex,
246
246
  absMinIndex: buffer.absMinIndex,
247
247
  absMaxIndex: buffer.absMaxIndex,
248
- defaultSize: buffer.defaultSize,
248
+ defaultSize: buffer.defaultSize
249
249
  }); }
250
250
  });
251
251
  this.bof = buffer.bof.get();
252
- buffer.bof.on(function (bof) { return _this.bof = bof; });
252
+ buffer.bof.on(function (bof) { return (_this.bof = bof); });
253
253
  this.eof = buffer.eof.get();
254
- buffer.eof.on(function (eof) { return _this.eof = eof; });
254
+ buffer.eof.on(function (eof) { return (_this.eof = eof); });
255
255
  // state
256
256
  Object.defineProperty(this.demand, AdapterPropName.packageInfo, {
257
257
  get: function () { return state.packageInfo; }
258
258
  });
259
259
  this.loopPending = state.cycle.innerLoop.busy.get();
260
- state.cycle.innerLoop.busy.on(function (busy) { return _this.loopPending = busy; });
260
+ state.cycle.innerLoop.busy.on(function (busy) { return (_this.loopPending = busy); });
261
261
  this.isLoading = state.cycle.busy.get();
262
- state.cycle.busy.on(function (busy) { return _this.isLoading = busy; });
262
+ state.cycle.busy.on(function (busy) { return (_this.isLoading = busy); });
263
263
  this.paused = state.paused.get();
264
- state.paused.on(function (paused) { return _this.paused = paused; });
264
+ state.paused.on(function (paused) { return (_this.paused = paused); });
265
265
  //viewport
266
266
  this.setFirstOrLastVisible = function (_a) {
267
267
  var _b, _c, _d;
@@ -339,8 +339,7 @@ var Adapter = /** @class */ (function () {
339
339
  var _this = this;
340
340
  var _a;
341
341
  var reactiveStore = reactiveConfigStorage.get((_a = this.externalContext) === null || _a === void 0 ? void 0 : _a.id);
342
- ADAPTER_PROPS_STUB
343
- .forEach(function (_a) {
342
+ ADAPTER_PROPS_STUB.forEach(function (_a) {
344
343
  var type = _a.type, permanent = _a.permanent, name = _a.name, value = _a.value;
345
344
  // assign initial values to non-reactive non-permanent props
346
345
  if (type !== AdapterPropType.Reactive && !permanent) {
@@ -481,7 +480,9 @@ var Adapter = /** @class */ (function () {
481
480
  };
482
481
  Adapter.prototype.relaxUnchained = function (callback, reloadId) {
483
482
  var _this = this;
484
- var runCallback = function () { return typeof callback === 'function' && reloadId === _this.reloadId && callback(); };
483
+ var runCallback = function () {
484
+ return typeof callback === 'function' && reloadId === _this.reloadId && callback();
485
+ };
485
486
  if (!this.isLoading) {
486
487
  runCallback();
487
488
  }
@@ -504,7 +505,9 @@ var Adapter = /** @class */ (function () {
504
505
  };
505
506
  }
506
507
  var success = reloadId === _this.reloadId;
507
- (_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () { return !success ? "relax promise cancelled due to ".concat(reloadId, " != ").concat(_this.reloadId) : void 0; });
508
+ (_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
509
+ return !success ? "relax promise cancelled due to ".concat(reloadId, " != ").concat(_this.reloadId) : void 0;
510
+ });
508
511
  return {
509
512
  immediate: immediate,
510
513
  success: success,
@@ -519,12 +522,12 @@ var Adapter = /** @class */ (function () {
519
522
  if (!this.init) {
520
523
  return Promise.resolve(methodPreResult);
521
524
  }
522
- return this.relaxRun = this.relaxRun
525
+ return (this.relaxRun = this.relaxRun
523
526
  ? this.relaxRun.then(function () { return _this.relaxUnchained(callback, reloadId); })
524
527
  : this.relaxUnchained(callback, reloadId).then(function (result) {
525
528
  _this.relaxRun = null;
526
529
  return result;
527
- });
530
+ }));
528
531
  };
529
532
  Adapter.prototype.showLog = function () {
530
533
  this.logger.logAdapterMethod('showLog');