vscroll 1.8.0 → 1.8.2

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 (163) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/bundles/vscroll.esm5.js +4 -4
  4. package/dist/bundles/vscroll.esm5.js.map +1 -1
  5. package/dist/bundles/vscroll.esm5.min.js +2 -2
  6. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.js +4 -4
  8. package/dist/bundles/vscroll.esm6.js.map +1 -1
  9. package/dist/bundles/vscroll.esm6.min.js +2 -2
  10. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.js +5 -5
  12. package/dist/bundles/vscroll.umd.js.map +1 -1
  13. package/dist/bundles/vscroll.umd.min.js +2 -2
  14. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  15. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  16. package/dist/esm2015/classes/adapter/props.js +1 -1
  17. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  18. package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
  19. package/dist/esm2015/classes/adapter.js.map +1 -1
  20. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  21. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  22. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  23. package/dist/esm2015/classes/buffer.js.map +1 -1
  24. package/dist/esm2015/classes/datasource.js.map +1 -1
  25. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  26. package/dist/esm2015/classes/item.js.map +1 -1
  27. package/dist/esm2015/classes/logger.js.map +1 -1
  28. package/dist/esm2015/classes/paddings.js.map +1 -1
  29. package/dist/esm2015/classes/reactive.js.map +1 -1
  30. package/dist/esm2015/classes/settings.js.map +1 -1
  31. package/dist/esm2015/classes/state/clip.js.map +1 -1
  32. package/dist/esm2015/classes/state/cycle.js.map +1 -1
  33. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  34. package/dist/esm2015/classes/state/render.js.map +1 -1
  35. package/dist/esm2015/classes/state/scroll.js.map +1 -1
  36. package/dist/esm2015/classes/state.js +1 -1
  37. package/dist/esm2015/classes/state.js.map +1 -1
  38. package/dist/esm2015/classes/viewport.js.map +1 -1
  39. package/dist/esm2015/index.js.map +1 -1
  40. package/dist/esm2015/inputs/adapter.js.map +1 -1
  41. package/dist/esm2015/inputs/common.js.map +1 -1
  42. package/dist/esm2015/inputs/datasource.js.map +1 -1
  43. package/dist/esm2015/inputs/index.js.map +1 -1
  44. package/dist/esm2015/inputs/settings.js.map +1 -1
  45. package/dist/esm2015/inputs/validation.js.map +1 -1
  46. package/dist/esm2015/inputs/workflow.js.map +1 -1
  47. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  48. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  49. package/dist/esm2015/interfaces/index.js.map +1 -1
  50. package/dist/esm2015/interfaces/item.js.map +1 -1
  51. package/dist/esm2015/interfaces/process.js.map +1 -1
  52. package/dist/esm2015/interfaces/routines.js.map +1 -1
  53. package/dist/esm2015/interfaces/settings.js.map +1 -1
  54. package/dist/esm2015/interfaces/state.js.map +1 -1
  55. package/dist/esm2015/interfaces/validation.js.map +1 -1
  56. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  57. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  58. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  59. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  60. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  61. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  62. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  63. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  64. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  65. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  66. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  67. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  68. package/dist/esm2015/processes/adjust.js.map +1 -1
  69. package/dist/esm2015/processes/clip.js.map +1 -1
  70. package/dist/esm2015/processes/end.js.map +1 -1
  71. package/dist/esm2015/processes/fetch.js.map +1 -1
  72. package/dist/esm2015/processes/index.js.map +1 -1
  73. package/dist/esm2015/processes/init.js.map +1 -1
  74. package/dist/esm2015/processes/misc/base.js.map +1 -1
  75. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  76. package/dist/esm2015/processes/misc/index.js.map +1 -1
  77. package/dist/esm2015/processes/postFetch.js.map +1 -1
  78. package/dist/esm2015/processes/preClip.js.map +1 -1
  79. package/dist/esm2015/processes/preFetch.js.map +1 -1
  80. package/dist/esm2015/processes/render.js.map +1 -1
  81. package/dist/esm2015/processes/scroll.js.map +1 -1
  82. package/dist/esm2015/processes/start.js.map +1 -1
  83. package/dist/esm2015/scroller.js.map +1 -1
  84. package/dist/esm2015/version.js +1 -1
  85. package/dist/esm2015/version.js.map +1 -1
  86. package/dist/esm2015/workflow-transducer.js.map +1 -1
  87. package/dist/esm2015/workflow.js.map +1 -1
  88. package/dist/esm5/classes/adapter/context.js.map +1 -1
  89. package/dist/esm5/classes/adapter/props.js +1 -1
  90. package/dist/esm5/classes/adapter/props.js.map +1 -1
  91. package/dist/esm5/classes/adapter/wanted.js.map +1 -1
  92. package/dist/esm5/classes/adapter.js.map +1 -1
  93. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  94. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  95. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  96. package/dist/esm5/classes/buffer.js.map +1 -1
  97. package/dist/esm5/classes/datasource.js.map +1 -1
  98. package/dist/esm5/classes/domRoutines.js.map +1 -1
  99. package/dist/esm5/classes/item.js.map +1 -1
  100. package/dist/esm5/classes/logger.js.map +1 -1
  101. package/dist/esm5/classes/paddings.js.map +1 -1
  102. package/dist/esm5/classes/reactive.js.map +1 -1
  103. package/dist/esm5/classes/settings.js.map +1 -1
  104. package/dist/esm5/classes/state/clip.js.map +1 -1
  105. package/dist/esm5/classes/state/cycle.js.map +1 -1
  106. package/dist/esm5/classes/state/fetch.js.map +1 -1
  107. package/dist/esm5/classes/state/render.js.map +1 -1
  108. package/dist/esm5/classes/state/scroll.js.map +1 -1
  109. package/dist/esm5/classes/state.js +1 -1
  110. package/dist/esm5/classes/state.js.map +1 -1
  111. package/dist/esm5/classes/viewport.js.map +1 -1
  112. package/dist/esm5/index.js.map +1 -1
  113. package/dist/esm5/inputs/adapter.js.map +1 -1
  114. package/dist/esm5/inputs/common.js.map +1 -1
  115. package/dist/esm5/inputs/datasource.js.map +1 -1
  116. package/dist/esm5/inputs/index.js.map +1 -1
  117. package/dist/esm5/inputs/settings.js.map +1 -1
  118. package/dist/esm5/inputs/validation.js.map +1 -1
  119. package/dist/esm5/inputs/workflow.js.map +1 -1
  120. package/dist/esm5/interfaces/adapter.js.map +1 -1
  121. package/dist/esm5/interfaces/datasource.js.map +1 -1
  122. package/dist/esm5/interfaces/index.js.map +1 -1
  123. package/dist/esm5/interfaces/item.js.map +1 -1
  124. package/dist/esm5/interfaces/process.js.map +1 -1
  125. package/dist/esm5/interfaces/routines.js.map +1 -1
  126. package/dist/esm5/interfaces/settings.js.map +1 -1
  127. package/dist/esm5/interfaces/state.js.map +1 -1
  128. package/dist/esm5/interfaces/validation.js.map +1 -1
  129. package/dist/esm5/interfaces/workflow.js.map +1 -1
  130. package/dist/esm5/processes/adapter/append.js.map +1 -1
  131. package/dist/esm5/processes/adapter/check.js.map +1 -1
  132. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  133. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  134. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  135. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  136. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  137. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  138. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  139. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  140. package/dist/esm5/processes/adapter/update.js.map +1 -1
  141. package/dist/esm5/processes/adjust.js.map +1 -1
  142. package/dist/esm5/processes/clip.js.map +1 -1
  143. package/dist/esm5/processes/end.js.map +1 -1
  144. package/dist/esm5/processes/fetch.js.map +1 -1
  145. package/dist/esm5/processes/index.js.map +1 -1
  146. package/dist/esm5/processes/init.js.map +1 -1
  147. package/dist/esm5/processes/misc/base.js.map +1 -1
  148. package/dist/esm5/processes/misc/enums.js.map +1 -1
  149. package/dist/esm5/processes/misc/index.js.map +1 -1
  150. package/dist/esm5/processes/postFetch.js.map +1 -1
  151. package/dist/esm5/processes/preClip.js.map +1 -1
  152. package/dist/esm5/processes/preFetch.js.map +1 -1
  153. package/dist/esm5/processes/render.js.map +1 -1
  154. package/dist/esm5/processes/scroll.js.map +1 -1
  155. package/dist/esm5/processes/start.js.map +1 -1
  156. package/dist/esm5/scroller.js.map +1 -1
  157. package/dist/esm5/version.js +1 -1
  158. package/dist/esm5/version.js.map +1 -1
  159. package/dist/esm5/workflow-transducer.js.map +1 -1
  160. package/dist/esm5/workflow.js.map +1 -1
  161. package/dist/typings/index.d.ts +1 -1
  162. package/dist/typings/interfaces/index.d.ts +10 -10
  163. package/package.json +71 -72
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/processes/adapter/remove.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;IAAoC,0BAAgD;IAApF;;IA4HA,CAAC;IA3HQ,UAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAzC,CAA0C;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,MAA4B;QACtD,IAAA,KAAK,GAAK,QAAQ,CAAC,KAAK,MAAnB,CAAoB;QACjC,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC;QAC/B,IAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,IAAI,cAAc,EAAE,CAAC;YACnB,yCAAyC;YACzC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,CAAC;YACpE,CAAC;YACD,oCAAoC;YACpC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5C,IAAM,UAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC5D,IAAM,WAAS,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC9D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CACjC,UAAA,KAAK,IAAI,OAAA,KAAK,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAQ,CAAC,CAAC,CAAC,WAAS,CAAC,EAAnD,CAAmD,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,0BAAmB,GAA1B,UAA2B,QAAkB,EAAE,OAA6B;QAClE,IAAA,SAAS,GAAwB,OAAO,UAA/B,EAAE,OAAO,GAAe,OAAO,QAAtB,EAAE,QAAQ,GAAK,OAAO,SAAZ,CAAa;QACjD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAM,YAAY,GAAmB,UAAA,IAAI;YACvC,OAAA,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAA9E,CAA8E,CAAC;QAEjF,IAAM,eAAe,GAAa,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAC5D,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAK,GAAG,YAAE,IAAI,CAAC,MAAM,UAAE,CAAC,CAAC,GAAG,CAAC,EAAlD,CAAkD,EACjE,EAAc,CACf,CAAC;QACF,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAA,IAAI,IAAI,OAAA,CAAC,YAAY,CAAC,IAAI,CAAC,EAAnB,CAAmB;YACtC,QAAQ,EAAE,QAAQ;SACnB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,yBAAkB,GAAzB,UAA0B,QAAkB,EAAE,MAA4B;QAChE,IAAA,OAAO,GAAe,MAAM,QAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QACrC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACO,IAAA,MAAM,GAAsB,QAAQ,OAA9B,EAAE,QAAQ,GAAY,QAAQ,SAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QAE7C,sBAAsB;QACd,IAAA,iBAAiB,GAA+C,MAAM,kBAArD,EAAE,UAAU,GAAmC,MAAM,WAAzC,EAAE,iBAAiB,GAAgB,MAAM,kBAAtB,EAAE,SAAS,GAAK,MAAM,UAAX,CAAY;QAC/E,IAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;gBAC3E,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;YACpC,CAAC;iBAAM,IAAI,KAAK,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBAChF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;YACnC,CAAC;iBAAM,CAAC;gBACN,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iEAAiE;QACzD,IAAA,KAAK,GAAK,KAAK,MAAV,CAAW;QACxB,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAA,KAAkB,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAA7E,KAAK,WAAA,EAAE,IAAI,UAAkE,CAAC;YACtF,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAClE,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA,0BAAmB,QAAQ,CAAC,MAAM,uBAAoB,EAAtD,CAAsD,CAAC,CAAC;QAClF,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAsB,GAA7B,UACE,QAAkB,EAClB,YAAsB,EACtB,QAAiB;QAET,IAAA,YAAY,GAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,aAAzB,CAA0B;QAC9C,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAC/B,UAAC,GAAG,EAAE,KAAK;YACT,OAAA,GAAG;gBACH,CAAC,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;oBACpF,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC;QAHN,CAGM,EACR,CAAC,CACF,CAAC;QACF,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IACH,aAAC;AAAD,CAAC,AA5HD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GA4HnF","sourcesContent":["import { Scroller } from '../../scroller';\nimport Update from './update';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { Direction } from '../../inputs/index';\nimport { AdapterRemoveOptions, AdapterUpdateOptions, ItemsPredicate } from '../../interfaces/index';\n\nexport default class Remove extends BaseAdapterProcessFactory(AdapterProcess.remove) {\n static run(scroller: Scroller, options: AdapterRemoveOptions): void {\n const { params } = Remove.parseInput(scroller, options);\n if (!params) {\n return;\n }\n const shouldRemove = Remove.doRemove(scroller, params);\n\n scroller.workflow.call({\n process: Remove.process,\n status: shouldRemove ? ProcessStatus.next : ProcessStatus.done\n });\n }\n\n static doRemove(scroller: Scroller, params: AdapterRemoveOptions): boolean {\n const { fetch } = scroller.state;\n fetch.firstVisible.index = NaN;\n const removed = Remove.removeBufferedItems(scroller, params);\n const shouldBuffered = removed.length > 0;\n if (shouldBuffered) {\n // exclude just removed in-buffer indexes\n if (params.indexes && params.indexes.length) {\n params.indexes = params.indexes.filter(i => !removed.includes(i));\n }\n // shift virtual indexes that remain\n if (params.indexes && params.indexes.length) {\n const diffLeft = (params.increase ? 1 : 0) * removed.length;\n const diffRight = (params.increase ? 0 : -1) * removed.length;\n params.indexes = params.indexes.map(\n index => index + (index < removed[0] ? diffLeft : diffRight)\n );\n }\n }\n const shouldVirtual = Remove.removeVirtualItems(scroller, params);\n if (!shouldBuffered && !shouldVirtual) {\n return false;\n }\n scroller.logger.stat('after remove');\n return true;\n }\n\n static removeBufferedItems(scroller: Scroller, options: AdapterRemoveOptions): number[] {\n const { predicate, indexes, increase } = options;\n if (!predicate && !indexes) {\n return [];\n }\n const newPredicate: ItemsPredicate = item =>\n (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));\n\n const indexesToRemove: number[] = scroller.buffer.items.reduce(\n (acc, item) => (newPredicate(item) ? [...acc, item.$index] : acc),\n [] as number[]\n );\n const updateOptions: AdapterUpdateOptions = {\n predicate: item => !newPredicate(item),\n fixRight: increase\n };\n Update.doUpdate(scroller, updateOptions);\n return indexesToRemove;\n }\n\n static removeVirtualItems(scroller: Scroller, params: AdapterRemoveOptions): boolean {\n const { indexes, increase } = params;\n if (!indexes || !indexes.length) {\n return false;\n }\n const { buffer, viewport, state } = scroller;\n\n // get items to remove\n const { finiteAbsMinIndex, firstIndex, finiteAbsMaxIndex, lastIndex } = buffer;\n const toRemove = [];\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (index >= finiteAbsMinIndex && !isNaN(firstIndex) && index < firstIndex) {\n toRemove.push(index); // backward;\n } else if (index <= finiteAbsMaxIndex && !isNaN(lastIndex) && index > lastIndex) {\n toRemove.push(index); // forward;\n } else {\n continue;\n }\n }\n\n if (!toRemove.length) {\n return false;\n }\n\n // what should be shown after remove; Buffer removal has priority\n const { fetch } = state;\n if (isNaN(fetch.firstVisible.index)) {\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\n fetch.firstVisible.index = index;\n if (!isNaN(index)) {\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\n }\n }\n\n // virtual removal\n scroller.logger.log(() => `going to remove ${toRemove.length} item(s) virtually`);\n buffer.removeVirtually(toRemove, !!increase);\n buffer.checkDefaultSize();\n Remove.shiftFirstVisibleIndex(scroller, toRemove, !!increase);\n\n return true;\n }\n\n static shiftFirstVisibleIndex(\n scroller: Scroller,\n listToRemove: number[],\n increase: boolean\n ): void {\n const { firstVisible } = scroller.state.fetch;\n if (isNaN(firstVisible.index)) {\n return;\n }\n const shift = listToRemove.reduce(\n (acc, index) =>\n acc +\n ((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)\n ? 1\n : 0),\n 0\n );\n firstVisible.index = firstVisible.index + (increase ? shift : -shift);\n }\n}\n"]}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/processes/adapter/remove.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;IAAoC,0BAAgD;IAApF;;IA4HA,CAAC;IA3HQ,UAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAzC,CAA0C;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,MAA4B;QACtD,IAAA,KAAK,GAAK,QAAQ,CAAC,KAAK,MAAnB,CAAoB;QACjC,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC;QAC/B,IAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,IAAI,cAAc,EAAE,CAAC;YACnB,yCAAyC;YACzC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,CAAC;YACpE,CAAC;YACD,oCAAoC;YACpC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5C,IAAM,UAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC5D,IAAM,WAAS,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC9D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CACjC,UAAA,KAAK,IAAI,OAAA,KAAK,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAQ,CAAC,CAAC,CAAC,WAAS,CAAC,EAAnD,CAAmD,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,0BAAmB,GAA1B,UAA2B,QAAkB,EAAE,OAA6B;QAClE,IAAA,SAAS,GAAwB,OAAO,UAA/B,EAAE,OAAO,GAAe,OAAO,QAAtB,EAAE,QAAQ,GAAK,OAAO,SAAZ,CAAa;QACjD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAM,YAAY,GAAmB,UAAA,IAAI;YACvC,OAAA,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAA9E,CAA8E,CAAC;QAEjF,IAAM,eAAe,GAAa,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAC5D,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAK,GAAG,YAAE,IAAI,CAAC,MAAM,UAAE,CAAC,CAAC,GAAG,CAAC,EAAlD,CAAkD,EACjE,EAAc,CACf,CAAC;QACF,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAA,IAAI,IAAI,OAAA,CAAC,YAAY,CAAC,IAAI,CAAC,EAAnB,CAAmB;YACtC,QAAQ,EAAE,QAAQ;SACnB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,yBAAkB,GAAzB,UAA0B,QAAkB,EAAE,MAA4B;QAChE,IAAA,OAAO,GAAe,MAAM,QAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QACrC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACO,IAAA,MAAM,GAAsB,QAAQ,OAA9B,EAAE,QAAQ,GAAY,QAAQ,SAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QAE7C,sBAAsB;QACd,IAAA,iBAAiB,GAA+C,MAAM,kBAArD,EAAE,UAAU,GAAmC,MAAM,WAAzC,EAAE,iBAAiB,GAAgB,MAAM,kBAAtB,EAAE,SAAS,GAAK,MAAM,UAAX,CAAY;QAC/E,IAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;gBAC3E,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;YACpC,CAAC;iBAAM,IAAI,KAAK,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBAChF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;YACnC,CAAC;iBAAM,CAAC;gBACN,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iEAAiE;QACzD,IAAA,KAAK,GAAK,KAAK,MAAV,CAAW;QACxB,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAA,KAAkB,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAA7E,KAAK,WAAA,EAAE,IAAI,UAAkE,CAAC;YACtF,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAClE,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA,0BAAmB,QAAQ,CAAC,MAAM,uBAAoB,EAAtD,CAAsD,CAAC,CAAC;QAClF,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAsB,GAA7B,UACE,QAAkB,EAClB,YAAsB,EACtB,QAAiB;QAET,IAAA,YAAY,GAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,aAAzB,CAA0B;QAC9C,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAC/B,UAAC,GAAG,EAAE,KAAK;YACT,OAAA,GAAG;gBACH,CAAC,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;oBACpF,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC;QAHN,CAGM,EACR,CAAC,CACF,CAAC;QACF,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IACH,aAAC;AAAD,CAAC,AA5HD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GA4HnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterRemoveOptions, AdapterUpdateOptions, ItemsPredicate } from '../../interfaces/index';\r\n\r\nexport default class Remove extends BaseAdapterProcessFactory(AdapterProcess.remove) {\r\n static run(scroller: Scroller, options: AdapterRemoveOptions): void {\r\n const { params } = Remove.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldRemove = Remove.doRemove(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Remove.process,\r\n status: shouldRemove ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doRemove(scroller: Scroller, params: AdapterRemoveOptions): boolean {\r\n const { fetch } = scroller.state;\r\n fetch.firstVisible.index = NaN;\r\n const removed = Remove.removeBufferedItems(scroller, params);\r\n const shouldBuffered = removed.length > 0;\r\n if (shouldBuffered) {\r\n // exclude just removed in-buffer indexes\r\n if (params.indexes && params.indexes.length) {\r\n params.indexes = params.indexes.filter(i => !removed.includes(i));\r\n }\r\n // shift virtual indexes that remain\r\n if (params.indexes && params.indexes.length) {\r\n const diffLeft = (params.increase ? 1 : 0) * removed.length;\r\n const diffRight = (params.increase ? 0 : -1) * removed.length;\r\n params.indexes = params.indexes.map(\r\n index => index + (index < removed[0] ? diffLeft : diffRight)\r\n );\r\n }\r\n }\r\n const shouldVirtual = Remove.removeVirtualItems(scroller, params);\r\n if (!shouldBuffered && !shouldVirtual) {\r\n return false;\r\n }\r\n scroller.logger.stat('after remove');\r\n return true;\r\n }\r\n\r\n static removeBufferedItems(scroller: Scroller, options: AdapterRemoveOptions): number[] {\r\n const { predicate, indexes, increase } = options;\r\n if (!predicate && !indexes) {\r\n return [];\r\n }\r\n const newPredicate: ItemsPredicate = item =>\r\n (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));\r\n\r\n const indexesToRemove: number[] = scroller.buffer.items.reduce(\r\n (acc, item) => (newPredicate(item) ? [...acc, item.$index] : acc),\r\n [] as number[]\r\n );\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: item => !newPredicate(item),\r\n fixRight: increase\r\n };\r\n Update.doUpdate(scroller, updateOptions);\r\n return indexesToRemove;\r\n }\r\n\r\n static removeVirtualItems(scroller: Scroller, params: AdapterRemoveOptions): boolean {\r\n const { indexes, increase } = params;\r\n if (!indexes || !indexes.length) {\r\n return false;\r\n }\r\n const { buffer, viewport, state } = scroller;\r\n\r\n // get items to remove\r\n const { finiteAbsMinIndex, firstIndex, finiteAbsMaxIndex, lastIndex } = buffer;\r\n const toRemove = [];\r\n for (let i = 0, len = indexes.length; i < len; i++) {\r\n const index = indexes[i];\r\n if (index >= finiteAbsMinIndex && !isNaN(firstIndex) && index < firstIndex) {\r\n toRemove.push(index); // backward;\r\n } else if (index <= finiteAbsMaxIndex && !isNaN(lastIndex) && index > lastIndex) {\r\n toRemove.push(index); // forward;\r\n } else {\r\n continue;\r\n }\r\n }\r\n\r\n if (!toRemove.length) {\r\n return false;\r\n }\r\n\r\n // what should be shown after remove; Buffer removal has priority\r\n const { fetch } = state;\r\n if (isNaN(fetch.firstVisible.index)) {\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\r\n }\r\n }\r\n\r\n // virtual removal\r\n scroller.logger.log(() => `going to remove ${toRemove.length} item(s) virtually`);\r\n buffer.removeVirtually(toRemove, !!increase);\r\n buffer.checkDefaultSize();\r\n Remove.shiftFirstVisibleIndex(scroller, toRemove, !!increase);\r\n\r\n return true;\r\n }\r\n\r\n static shiftFirstVisibleIndex(\r\n scroller: Scroller,\r\n listToRemove: number[],\r\n increase: boolean\r\n ): void {\r\n const { firstVisible } = scroller.state.fetch;\r\n if (isNaN(firstVisible.index)) {\r\n return;\r\n }\r\n const shift = listToRemove.reduce(\r\n (acc, index) =>\r\n acc +\r\n ((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)\r\n ? 1\r\n : 0),\r\n 0\r\n );\r\n firstVisible.index = firstVisible.index + (increase ? shift : -shift);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../../../src/processes/adapter/replace.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAqC,2BAAiD;IAAtF;;IAyCA,CAAC;IAxCQ,WAAG,GAAV,UAAW,QAAkB,EAAE,OAA8B;QACnD,IAAA,MAAM,GAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAA1C,CAA2C;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE1D,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAChE,CAAC,CAAC;IACL,CAAC;IAEM,iBAAS,GAAhB,UAAiB,QAAkB,EAAE,MAA6B;QAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK;aACnC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC;aACtC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAC,EAAU;oBAAR,MAAM,YAAA;gBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,MAAM,CAAC,KAAK,CAAC;gBACtB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IACH,cAAC;AAAD,CAAC,AAzCD,CAAqC,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,GAyCrF","sourcesContent":["import { Scroller } from '../../scroller';\nimport Update from './update';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { AdapterReplaceOptions, AdapterUpdateOptions } from '../../interfaces/index';\n\nexport default class Replace extends BaseAdapterProcessFactory(AdapterProcess.replace) {\n static run(scroller: Scroller, options: AdapterReplaceOptions): void {\n const { params } = Replace.parseInput(scroller, options);\n if (!params) {\n return;\n }\n const shouldReplace = Replace.doReplace(scroller, params);\n\n scroller.workflow.call({\n process: Replace.process,\n status: shouldReplace ? ProcessStatus.next : ProcessStatus.done\n });\n }\n\n static doReplace(scroller: Scroller, params: AdapterReplaceOptions): boolean {\n const toRemove = scroller.buffer.items\n .filter(item => params.predicate(item))\n .map(item => item.$index);\n\n if (!toRemove.length) {\n scroller.logger.log('no items to be replaced');\n return false;\n }\n\n let injected = false;\n const updateOptions: AdapterUpdateOptions = {\n predicate: ({ $index }) => {\n if (!toRemove.includes($index)) {\n return true;\n }\n if (!injected) {\n injected = true;\n return params.items;\n }\n return false;\n },\n fixRight: params.fixRight\n };\n\n return Update.doUpdate(scroller, updateOptions);\n }\n}\n"]}
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../../../src/processes/adapter/replace.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAqC,2BAAiD;IAAtF;;IAyCA,CAAC;IAxCQ,WAAG,GAAV,UAAW,QAAkB,EAAE,OAA8B;QACnD,IAAA,MAAM,GAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAA1C,CAA2C;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE1D,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAChE,CAAC,CAAC;IACL,CAAC;IAEM,iBAAS,GAAhB,UAAiB,QAAkB,EAAE,MAA6B;QAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK;aACnC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC;aACtC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,UAAC,EAAU;oBAAR,MAAM,YAAA;gBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,MAAM,CAAC,KAAK,CAAC;gBACtB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IACH,cAAC;AAAD,CAAC,AAzCD,CAAqC,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,GAyCrF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterReplaceOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Replace extends BaseAdapterProcessFactory(AdapterProcess.replace) {\r\n static run(scroller: Scroller, options: AdapterReplaceOptions): void {\r\n const { params } = Replace.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldReplace = Replace.doReplace(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Replace.process,\r\n status: shouldReplace ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doReplace(scroller: Scroller, params: AdapterReplaceOptions): boolean {\r\n const toRemove = scroller.buffer.items\r\n .filter(item => params.predicate(item))\r\n .map(item => item.$index);\r\n\r\n if (!toRemove.length) {\r\n scroller.logger.log('no items to be replaced');\r\n return false;\r\n }\r\n\r\n let injected = false;\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index }) => {\r\n if (!toRemove.includes($index)) {\r\n return true;\r\n }\r\n if (!injected) {\r\n injected = true;\r\n return params.items;\r\n }\r\n return false;\r\n },\r\n fixRight: params.fixRight\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/processes/adapter/reset.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAmC,yBAA+C;IAAlF;;IAkCA,CAAC;IAjCQ,SAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,UAAU,GAA8B,QAAQ,WAAtC,EAAE,MAAM,GAAsB,QAAQ,OAA9B,EAAE,QAAQ,GAAY,QAAQ,SAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QACzD,IAAI,OAAO,EAAE,CAAC;YACJ,IAAA,MAAI,GAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAxC,CAAyC;YACrD,IAAI,CAAC,MAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAM,aAAW,GAAG,OAAO,YAAY,UAAU,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;gBACtC,IAAM,KAAK,GAAG,MAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAM,EAAE,GAAG,UAAmD,CAAC;gBAC/D,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,aAAW,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5C,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAElC,IAAM,OAAO,GAAmB,EAAE,UAAU,YAAA,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1C,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC,AAlCD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAkCjF","sourcesContent":["import { Scroller } from '../../scroller';\nimport { DatasourceProps } from '../../inputs/index';\nimport { Datasource } from '../../classes/datasource';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { IDatasourceOptional, ProcessPayload } from '../../interfaces/index';\n\nexport default class Reset extends BaseAdapterProcessFactory(AdapterProcess.reset) {\n static run(scroller: Scroller, options?: IDatasourceOptional): void {\n const { datasource, buffer, viewport, state } = scroller;\n if (options) {\n const { data } = Reset.parseInput(scroller, options);\n if (!data.isValid) {\n return;\n }\n const constructed = options instanceof Datasource;\n Object.keys(DatasourceProps).forEach(key => {\n const param = data.params[key];\n const ds = datasource as unknown as { [key: string]: unknown };\n if (param.isSet || (constructed && ds[key])) {\n ds[key] = param.value;\n }\n });\n }\n\n buffer.reset(true);\n viewport.paddings.backward.reset();\n viewport.paddings.forward.reset();\n\n const payload: ProcessPayload = { datasource };\n if (state.cycle.busy.get()) {\n payload.finalize = true;\n state.cycle.interrupter = Reset.process;\n }\n\n scroller.workflow.call({\n process: Reset.process,\n status: ProcessStatus.next,\n payload\n });\n }\n}\n"]}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/processes/adapter/reset.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGzF;IAAmC,yBAA+C;IAAlF;;IAkCA,CAAC;IAjCQ,SAAG,GAAV,UAAW,QAAkB,EAAE,OAA6B;QAClD,IAAA,UAAU,GAA8B,QAAQ,WAAtC,EAAE,MAAM,GAAsB,QAAQ,OAA9B,EAAE,QAAQ,GAAY,QAAQ,SAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QACzD,IAAI,OAAO,EAAE,CAAC;YACJ,IAAA,MAAI,GAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAxC,CAAyC;YACrD,IAAI,CAAC,MAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAM,aAAW,GAAG,OAAO,YAAY,UAAU,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;gBACtC,IAAM,KAAK,GAAG,MAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAM,EAAE,GAAG,UAAmD,CAAC;gBAC/D,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,aAAW,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5C,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAElC,IAAM,OAAO,GAAmB,EAAE,UAAU,YAAA,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1C,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC,AAlCD,CAAmC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAkCjF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { DatasourceProps } from '../../inputs/index';\r\nimport { Datasource } from '../../classes/datasource';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { IDatasourceOptional, ProcessPayload } from '../../interfaces/index';\r\n\r\nexport default class Reset extends BaseAdapterProcessFactory(AdapterProcess.reset) {\r\n static run(scroller: Scroller, options?: IDatasourceOptional): void {\r\n const { datasource, buffer, viewport, state } = scroller;\r\n if (options) {\r\n const { data } = Reset.parseInput(scroller, options);\r\n if (!data.isValid) {\r\n return;\r\n }\r\n const constructed = options instanceof Datasource;\r\n Object.keys(DatasourceProps).forEach(key => {\r\n const param = data.params[key];\r\n const ds = datasource as unknown as { [key: string]: unknown };\r\n if (param.isSet || (constructed && ds[key])) {\r\n ds[key] = param.value;\r\n }\r\n });\r\n }\r\n\r\n buffer.reset(true);\r\n viewport.paddings.backward.reset();\r\n viewport.paddings.forward.reset();\r\n\r\n const payload: ProcessPayload = { datasource };\r\n if (state.cycle.busy.get()) {\r\n payload.finalize = true;\r\n state.cycle.interrupter = Reset.process;\r\n }\r\n\r\n scroller.workflow.call({\r\n process: Reset.process,\r\n status: ProcessStatus.next,\r\n payload\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/processes/adapter/update.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { Item } from '../../classes/item';\nimport { Direction } from '../../inputs/index';\nimport { AdapterUpdateOptions } from '../../interfaces/index';\n\nexport default class Update extends BaseAdapterProcessFactory(AdapterProcess.update) {\n static run(scroller: Scroller, options: AdapterUpdateOptions): void {\n const { params } = Update.parseInput(scroller, options);\n if (!params) {\n return;\n }\n\n const shouldUpdate = Update.doUpdate(scroller, params);\n\n scroller.workflow.call({\n process: Update.process,\n status: shouldUpdate ? ProcessStatus.next : ProcessStatus.done\n });\n }\n\n static doUpdate(scroller: Scroller, params: AdapterUpdateOptions): boolean {\n const { buffer, viewport, state, routines, logger } = scroller;\n if (!buffer.items) {\n logger.log(() => 'no items in Buffer');\n return false;\n }\n const {\n item: firstItem,\n index: firstIndex,\n diff: firstItemDiff\n } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\n\n const { trackedIndex, toRemove } = buffer.updateItems(\n params.predicate,\n (index, data) => new Item(index, data, routines),\n firstIndex,\n !!params.fixRight\n );\n\n let delta = 0;\n const trackedItem = buffer.get(trackedIndex);\n if (firstItem && firstItem === trackedItem) {\n delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;\n }\n\n toRemove.forEach(item => item.hide());\n logger.log(() =>\n toRemove.length\n ? 'items to remove: [' + toRemove.map(({ $index }) => $index).join(',') + ']'\n : 'no items to remove'\n );\n if (toRemove.length) {\n // insertions will be processed on render\n buffer.checkDefaultSize();\n }\n\n const toRender = buffer.items.filter(({ toInsert }) => toInsert);\n logger.log(() =>\n toRender.length\n ? 'items to render: [' + toRender.map(({ $index }) => $index).join(',') + ']'\n : 'no items to render'\n );\n\n state.fetch.update(trackedIndex, delta, toRender, toRemove);\n return !!toRemove.length || !!toRender.length;\n }\n}\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/processes/adapter/update.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Update extends BaseAdapterProcessFactory(AdapterProcess.update) {\r\n static run(scroller: Scroller, options: AdapterUpdateOptions): void {\r\n const { params } = Update.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldUpdate = Update.doUpdate(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Update.process,\r\n status: shouldUpdate ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doUpdate(scroller: Scroller, params: AdapterUpdateOptions): boolean {\r\n const { buffer, viewport, state, routines, logger } = scroller;\r\n if (!buffer.items) {\r\n logger.log(() => 'no items in Buffer');\r\n return false;\r\n }\r\n const {\r\n item: firstItem,\r\n index: firstIndex,\r\n diff: firstItemDiff\r\n } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n\r\n const { trackedIndex, toRemove } = buffer.updateItems(\r\n params.predicate,\r\n (index, data) => new Item(index, data, routines),\r\n firstIndex,\r\n !!params.fixRight\r\n );\r\n\r\n let delta = 0;\r\n const trackedItem = buffer.get(trackedIndex);\r\n if (firstItem && firstItem === trackedItem) {\r\n delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;\r\n }\r\n\r\n toRemove.forEach(item => item.hide());\r\n logger.log(() =>\r\n toRemove.length\r\n ? 'items to remove: [' + toRemove.map(({ $index }) => $index).join(',') + ']'\r\n : 'no items to remove'\r\n );\r\n if (toRemove.length) {\r\n // insertions will be processed on render\r\n buffer.checkDefaultSize();\r\n }\r\n\r\n const toRender = buffer.items.filter(({ toInsert }) => toInsert);\r\n logger.log(() =>\r\n toRender.length\r\n ? 'items to render: [' + toRender.map(({ $index }) => $index).join(',') + ']'\r\n : 'no items to render'\r\n );\r\n\r\n state.fetch.update(trackedIndex, delta, toRender, toRemove);\r\n return !!toRemove.length || !!toRender.length;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"adjust.js","sourceRoot":"","sources":["../../../src/processes/adjust.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport End from './end';\n\nexport default class Adjust extends BaseProcessFactory(CommonProcess.adjust) {\n static run(scroller: Scroller): void {\n const { workflow, viewport, state } = scroller;\n\n state.scroll.positionBeforeAdjust = viewport.scrollPosition;\n Adjust.setPaddings(scroller);\n state.scroll.positionAfterAdjust = viewport.scrollPosition;\n\n // scroll position adjustments\n const position = Adjust.calculatePosition(scroller);\n\n // additional adjustment if the position can't be reached during the initial cycle\n Adjust.setAdditionalForwardPadding(scroller, position);\n\n // set new position using animation frame\n Adjust.setPosition(scroller, position, () =>\n workflow.call({\n process: Adjust.process,\n status: ProcessStatus.done\n })\n );\n }\n\n static setPaddings(scroller: Scroller): void {\n const { viewport, buffer, settings, state } = scroller;\n const firstItem = buffer.getFirstVisibleItem();\n const lastItem = buffer.getLastVisibleItem();\n let first, last;\n if (firstItem && lastItem) {\n first = firstItem.$index;\n last = lastItem.$index;\n } else {\n const { fetch } = state;\n first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;\n last = first - 1;\n }\n const { forward, backward } = viewport.paddings;\n let index,\n bwdSize = 0,\n fwdSize = 0;\n\n // new backward and forward paddings size\n for (index = buffer.finiteAbsMinIndex; index < first; index++) {\n bwdSize += buffer.getSizeByIndex(index);\n }\n for (index = last + 1; index <= buffer.finiteAbsMaxIndex; index++) {\n fwdSize += buffer.getSizeByIndex(index);\n }\n\n // lack of items case\n const bufferSize = viewport.getScrollableSize() - forward.size - backward.size;\n const scrollSize = bwdSize + bufferSize + fwdSize;\n const viewportSizeDiff = viewport.getSize() - scrollSize;\n if (viewportSizeDiff > 0) {\n if (settings.inverse) {\n bwdSize += viewportSizeDiff;\n } else {\n fwdSize += viewportSizeDiff;\n }\n scroller.logger.log(() =>\n settings.inverse\n ? 'backward'\n : 'forward' + ` padding will be increased by ${viewportSizeDiff} to fill the viewport`\n );\n }\n\n backward.size = bwdSize;\n forward.size = fwdSize;\n\n scroller.logger.stat('after paddings adjustments');\n }\n\n static calculatePosition(scroller: Scroller): number {\n const { viewport, buffer, state } = scroller;\n const { fetch, render, scroll } = state;\n let position = viewport.paddings.backward.size;\n\n // increase the position to meet the expectation of the first visible item\n if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {\n scroller.logger.log(\n `first index = ${fetch.firstVisible.index}, delta = ${fetch.firstVisible.delta}`\n );\n const shouldCheckPreSizeExpectation = fetch.shouldCheckPreSizeExpectation(buffer.lastIndex);\n buffer.items.forEach(item => {\n // 1) shift of the buffered items before the first visible item\n if (item.$index < fetch.firstVisible.index) {\n position += item.size;\n return;\n }\n // 2) delta of the first visible item\n if (item.$index === fetch.firstVisible.index && fetch.firstVisible.delta) {\n position -= fetch.firstVisible.delta;\n }\n // 3) difference between expected and real sizes of fetched items after the first visible\n if (shouldCheckPreSizeExpectation && item.preSize && fetch.items.includes(item)) {\n position += item.size - item.preSize;\n }\n });\n }\n\n // slow fetch/render case\n if (scroll.positionBeforeAsync !== null) {\n const diff = render.positionBefore - scroll.positionBeforeAsync;\n if (diff !== 0) {\n scroller.logger.log(`shift position due to fetch-render difference (${diff})`);\n position += diff;\n }\n }\n\n // increase the position due to viewport's offset\n if (viewport.offset > 0 && (position || fetch.positions.before)) {\n position += viewport.offset;\n }\n\n return Math.round(position);\n }\n\n static setAdditionalForwardPadding(scroller: Scroller, position: number): void {\n const { viewport, buffer, state } = scroller;\n if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {\n return;\n }\n const diff = position - viewport.getMaxScrollPosition();\n if (diff <= 0) {\n return;\n }\n const last = buffer.getLastVisibleItem();\n if (!last) {\n return;\n }\n let size = 0;\n let index = last.$index + 1;\n while (size <= diff && index <= buffer.absMaxIndex) {\n size += buffer.getSizeByIndex(index++);\n }\n const shift = Math.min(size, diff);\n if (shift) {\n viewport.paddings.forward.size += shift;\n scroller.logger.log(`increase fwd padding due to lack of items (${diff} -> ${shift})`);\n }\n }\n\n static setPosition(scroller: Scroller, position: number, done: () => void): void {\n const { state, viewport, routines } = scroller;\n const { scroll } = state;\n if (!scroll.hasPositionChanged(position)) {\n return done();\n }\n scroll.syntheticPosition = position;\n scroll.syntheticFulfill = false;\n\n scroll.cancelAnimation = routines.animate(() => {\n scroll.cancelAnimation = null;\n const inertiaDiff = (scroll.positionAfterAdjust as number) - viewport.scrollPosition;\n let diffLog = '';\n if (inertiaDiff > 0) {\n position -= inertiaDiff;\n scroll.syntheticPosition = position;\n diffLog = ` (-${inertiaDiff})`;\n }\n scroll.syntheticFulfill = true;\n viewport.scrollPosition = position;\n scroller.logger.stat('after scroll adjustment' + diffLog);\n done();\n });\n }\n}\n"]}
1
+ {"version":3,"file":"adjust.js","sourceRoot":"","sources":["../../../src/processes/adjust.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport End from './end';\r\n\r\nexport default class Adjust extends BaseProcessFactory(CommonProcess.adjust) {\r\n static run(scroller: Scroller): void {\r\n const { workflow, viewport, state } = scroller;\r\n\r\n state.scroll.positionBeforeAdjust = viewport.scrollPosition;\r\n Adjust.setPaddings(scroller);\r\n state.scroll.positionAfterAdjust = viewport.scrollPosition;\r\n\r\n // scroll position adjustments\r\n const position = Adjust.calculatePosition(scroller);\r\n\r\n // additional adjustment if the position can't be reached during the initial cycle\r\n Adjust.setAdditionalForwardPadding(scroller, position);\r\n\r\n // set new position using animation frame\r\n Adjust.setPosition(scroller, position, () =>\r\n workflow.call({\r\n process: Adjust.process,\r\n status: ProcessStatus.done\r\n })\r\n );\r\n }\r\n\r\n static setPaddings(scroller: Scroller): void {\r\n const { viewport, buffer, settings, state } = scroller;\r\n const firstItem = buffer.getFirstVisibleItem();\r\n const lastItem = buffer.getLastVisibleItem();\r\n let first, last;\r\n if (firstItem && lastItem) {\r\n first = firstItem.$index;\r\n last = lastItem.$index;\r\n } else {\r\n const { fetch } = state;\r\n first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;\r\n last = first - 1;\r\n }\r\n const { forward, backward } = viewport.paddings;\r\n let index,\r\n bwdSize = 0,\r\n fwdSize = 0;\r\n\r\n // new backward and forward paddings size\r\n for (index = buffer.finiteAbsMinIndex; index < first; index++) {\r\n bwdSize += buffer.getSizeByIndex(index);\r\n }\r\n for (index = last + 1; index <= buffer.finiteAbsMaxIndex; index++) {\r\n fwdSize += buffer.getSizeByIndex(index);\r\n }\r\n\r\n // lack of items case\r\n const bufferSize = viewport.getScrollableSize() - forward.size - backward.size;\r\n const scrollSize = bwdSize + bufferSize + fwdSize;\r\n const viewportSizeDiff = viewport.getSize() - scrollSize;\r\n if (viewportSizeDiff > 0) {\r\n if (settings.inverse) {\r\n bwdSize += viewportSizeDiff;\r\n } else {\r\n fwdSize += viewportSizeDiff;\r\n }\r\n scroller.logger.log(() =>\r\n settings.inverse\r\n ? 'backward'\r\n : 'forward' + ` padding will be increased by ${viewportSizeDiff} to fill the viewport`\r\n );\r\n }\r\n\r\n backward.size = bwdSize;\r\n forward.size = fwdSize;\r\n\r\n scroller.logger.stat('after paddings adjustments');\r\n }\r\n\r\n static calculatePosition(scroller: Scroller): number {\r\n const { viewport, buffer, state } = scroller;\r\n const { fetch, render, scroll } = state;\r\n let position = viewport.paddings.backward.size;\r\n\r\n // increase the position to meet the expectation of the first visible item\r\n if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {\r\n scroller.logger.log(\r\n `first index = ${fetch.firstVisible.index}, delta = ${fetch.firstVisible.delta}`\r\n );\r\n const shouldCheckPreSizeExpectation = fetch.shouldCheckPreSizeExpectation(buffer.lastIndex);\r\n buffer.items.forEach(item => {\r\n // 1) shift of the buffered items before the first visible item\r\n if (item.$index < fetch.firstVisible.index) {\r\n position += item.size;\r\n return;\r\n }\r\n // 2) delta of the first visible item\r\n if (item.$index === fetch.firstVisible.index && fetch.firstVisible.delta) {\r\n position -= fetch.firstVisible.delta;\r\n }\r\n // 3) difference between expected and real sizes of fetched items after the first visible\r\n if (shouldCheckPreSizeExpectation && item.preSize && fetch.items.includes(item)) {\r\n position += item.size - item.preSize;\r\n }\r\n });\r\n }\r\n\r\n // slow fetch/render case\r\n if (scroll.positionBeforeAsync !== null) {\r\n const diff = render.positionBefore - scroll.positionBeforeAsync;\r\n if (diff !== 0) {\r\n scroller.logger.log(`shift position due to fetch-render difference (${diff})`);\r\n position += diff;\r\n }\r\n }\r\n\r\n // increase the position due to viewport's offset\r\n if (viewport.offset > 0 && (position || fetch.positions.before)) {\r\n position += viewport.offset;\r\n }\r\n\r\n return Math.round(position);\r\n }\r\n\r\n static setAdditionalForwardPadding(scroller: Scroller, position: number): void {\r\n const { viewport, buffer, state } = scroller;\r\n if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {\r\n return;\r\n }\r\n const diff = position - viewport.getMaxScrollPosition();\r\n if (diff <= 0) {\r\n return;\r\n }\r\n const last = buffer.getLastVisibleItem();\r\n if (!last) {\r\n return;\r\n }\r\n let size = 0;\r\n let index = last.$index + 1;\r\n while (size <= diff && index <= buffer.absMaxIndex) {\r\n size += buffer.getSizeByIndex(index++);\r\n }\r\n const shift = Math.min(size, diff);\r\n if (shift) {\r\n viewport.paddings.forward.size += shift;\r\n scroller.logger.log(`increase fwd padding due to lack of items (${diff} -> ${shift})`);\r\n }\r\n }\r\n\r\n static setPosition(scroller: Scroller, position: number, done: () => void): void {\r\n const { state, viewport, routines } = scroller;\r\n const { scroll } = state;\r\n if (!scroll.hasPositionChanged(position)) {\r\n return done();\r\n }\r\n scroll.syntheticPosition = position;\r\n scroll.syntheticFulfill = false;\r\n\r\n scroll.cancelAnimation = routines.animate(() => {\r\n scroll.cancelAnimation = null;\r\n const inertiaDiff = (scroll.positionAfterAdjust as number) - viewport.scrollPosition;\r\n let diffLog = '';\r\n if (inertiaDiff > 0) {\r\n position -= inertiaDiff;\r\n scroll.syntheticPosition = position;\r\n diffLog = ` (-${inertiaDiff})`;\r\n }\r\n scroll.syntheticFulfill = true;\r\n viewport.scrollPosition = position;\r\n scroller.logger.stat('after scroll adjustment' + diffLog);\r\n done();\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../../src/processes/clip.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Direction } from '../inputs/index';\n\nexport default class Clip extends BaseProcessFactory(CommonProcess.clip) {\n static run(scroller: Scroller): void {\n const { workflow } = scroller;\n\n Clip.doClip(scroller);\n\n workflow.call({\n process: Clip.process,\n status: ProcessStatus.next\n });\n }\n\n static doClip(scroller: Scroller): void {\n const { buffer, viewport, state, logger } = scroller;\n const size = { [Direction.backward]: 0, [Direction.forward]: 0 };\n\n logger.stat(`before clip (${++state.clip.callCount})`);\n\n const itemsToRemove = buffer.items.filter(item => {\n if (!item.toRemove) {\n return false;\n }\n item.hide();\n size[item.removeDirection] += item.size;\n return true;\n });\n\n if (itemsToRemove.length) {\n if (size[Direction.backward]) {\n viewport.paddings.byDirection(Direction.backward).size += size[Direction.backward];\n }\n if (size[Direction.forward]) {\n viewport.paddings.byDirection(Direction.forward).size += size[Direction.forward];\n }\n if (scroller.settings.onBeforeClip) {\n scroller.settings.onBeforeClip(itemsToRemove.map(item => item.get()));\n }\n }\n\n buffer.clip();\n\n logger.log(() => {\n const list = itemsToRemove.map(({ $index }) => $index);\n return list.length\n ? [\n `clipped ${list.length} item(s) from Buffer` +\n (size.backward ? `, +${size.backward} fwd px` : '') +\n (size.forward ? `, +${size.forward} bwd px` : '') +\n `, range: [${list[0]}..${list[list.length - 1]}]`\n ]\n : 'clipped 0 items from Buffer';\n });\n\n logger.stat('after clip');\n }\n}\n"]}
1
+ {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../../src/processes/clip.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Direction } from '../inputs/index';\r\n\r\nexport default class Clip extends BaseProcessFactory(CommonProcess.clip) {\r\n static run(scroller: Scroller): void {\r\n const { workflow } = scroller;\r\n\r\n Clip.doClip(scroller);\r\n\r\n workflow.call({\r\n process: Clip.process,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n\r\n static doClip(scroller: Scroller): void {\r\n const { buffer, viewport, state, logger } = scroller;\r\n const size = { [Direction.backward]: 0, [Direction.forward]: 0 };\r\n\r\n logger.stat(`before clip (${++state.clip.callCount})`);\r\n\r\n const itemsToRemove = buffer.items.filter(item => {\r\n if (!item.toRemove) {\r\n return false;\r\n }\r\n item.hide();\r\n size[item.removeDirection] += item.size;\r\n return true;\r\n });\r\n\r\n if (itemsToRemove.length) {\r\n if (size[Direction.backward]) {\r\n viewport.paddings.byDirection(Direction.backward).size += size[Direction.backward];\r\n }\r\n if (size[Direction.forward]) {\r\n viewport.paddings.byDirection(Direction.forward).size += size[Direction.forward];\r\n }\r\n if (scroller.settings.onBeforeClip) {\r\n scroller.settings.onBeforeClip(itemsToRemove.map(item => item.get()));\r\n }\r\n }\r\n\r\n buffer.clip();\r\n\r\n logger.log(() => {\r\n const list = itemsToRemove.map(({ $index }) => $index);\r\n return list.length\r\n ? [\r\n `clipped ${list.length} item(s) from Buffer` +\r\n (size.backward ? `, +${size.backward} fwd px` : '') +\r\n (size.forward ? `, +${size.forward} bwd px` : '') +\r\n `, range: [${list[0]}..${list[list.length - 1]}]`\r\n ]\r\n : 'clipped 0 items from Buffer';\r\n });\r\n\r\n logger.stat('after clip');\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/processes/end.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { ScrollerWorkflow } from '../interfaces/index';\n\nconst isInterrupted = ({ call }: ScrollerWorkflow): boolean => !!call.interrupted;\n\nexport default class End extends BaseProcessFactory(CommonProcess.end) {\n static run(scroller: Scroller, { error }: { error?: unknown } = {}): void {\n const { workflow, state } = scroller;\n const { interrupter } = state.cycle;\n\n if (!error && !interrupter) {\n // set out params accessible via Adapter\n End.calculateParams(scroller);\n }\n\n // explicit interruption for we don't want to go through the inner loop finalizing\n if (isInterrupted(workflow)) {\n workflow.call({ process: End.process, status: ProcessStatus.done });\n return;\n }\n\n const next = End.shouldContinueRun(scroller, error);\n scroller.state.endInnerLoop();\n\n workflow.call({\n process: End.process,\n status: next ? ProcessStatus.next : ProcessStatus.done,\n payload: { ...(interrupter ? { process: interrupter } : {}) }\n });\n }\n\n static calculateParams(scroller: Scroller): void {\n const { adapter, workflow } = scroller;\n\n adapter.setFirstOrLastVisible({ first: true, workflow });\n adapter.setFirstOrLastVisible({ last: true, workflow });\n }\n\n static shouldContinueRun(scroller: Scroller, error: unknown): boolean {\n const { cycle, fetch, render } = scroller.state;\n // Adapter.reload or Adapter.reset\n if (cycle.interrupter) {\n return true;\n }\n // critical error\n if (error) {\n return false;\n }\n // Adapter.check\n if (fetch.simulate && fetch.isCheck && !render.noSize) {\n return true;\n }\n // Adapter.remove or Adapter.update with clip\n if (fetch.simulate && fetch.doRemove) {\n return true;\n }\n // common inner loop (App start, scroll, Adapter.clip) with full fetch\n if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {\n return true;\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/processes/end.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { ScrollerWorkflow } from '../interfaces/index';\r\n\r\nconst isInterrupted = ({ call }: ScrollerWorkflow): boolean => !!call.interrupted;\r\n\r\nexport default class End extends BaseProcessFactory(CommonProcess.end) {\r\n static run(scroller: Scroller, { error }: { error?: unknown } = {}): void {\r\n const { workflow, state } = scroller;\r\n const { interrupter } = state.cycle;\r\n\r\n if (!error && !interrupter) {\r\n // set out params accessible via Adapter\r\n End.calculateParams(scroller);\r\n }\r\n\r\n // explicit interruption for we don't want to go through the inner loop finalizing\r\n if (isInterrupted(workflow)) {\r\n workflow.call({ process: End.process, status: ProcessStatus.done });\r\n return;\r\n }\r\n\r\n const next = End.shouldContinueRun(scroller, error);\r\n scroller.state.endInnerLoop();\r\n\r\n workflow.call({\r\n process: End.process,\r\n status: next ? ProcessStatus.next : ProcessStatus.done,\r\n payload: { ...(interrupter ? { process: interrupter } : {}) }\r\n });\r\n }\r\n\r\n static calculateParams(scroller: Scroller): void {\r\n const { adapter, workflow } = scroller;\r\n\r\n adapter.setFirstOrLastVisible({ first: true, workflow });\r\n adapter.setFirstOrLastVisible({ last: true, workflow });\r\n }\r\n\r\n static shouldContinueRun(scroller: Scroller, error: unknown): boolean {\r\n const { cycle, fetch, render } = scroller.state;\r\n // Adapter.reload or Adapter.reset\r\n if (cycle.interrupter) {\r\n return true;\r\n }\r\n // critical error\r\n if (error) {\r\n return false;\r\n }\r\n // Adapter.check\r\n if (fetch.simulate && fetch.isCheck && !render.noSize) {\r\n return true;\r\n }\r\n // Adapter.remove or Adapter.update with clip\r\n if (fetch.simulate && fetch.doRemove) {\r\n return true;\r\n }\r\n // common inner loop (App start, scroll, Adapter.clip) with full fetch\r\n if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/processes/fetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { ObservableLike } from '../interfaces/index';\n\ninterface Immediate {\n data: unknown[] | null;\n error: unknown | null;\n isError: boolean;\n}\n\ntype FetchGetResult = Immediate | Promise<unknown>;\n\ninterface FetchBox {\n success: (value: unknown[]) => void;\n fail: (value: unknown) => void;\n}\n\nexport default class Fetch extends BaseProcessFactory(CommonProcess.fetch) {\n static run(scroller: Scroller): void {\n const { workflow } = scroller;\n\n const box = {\n success: (data: unknown[]) => {\n scroller.logger.log(\n () =>\n `resolved ${data.length} items ` +\n `(index = ${scroller.state.fetch.index}, count = ${scroller.state.fetch.count})`\n );\n scroller.state.fetch.newItemsData = data;\n workflow.call({\n process: Fetch.process,\n status: ProcessStatus.next\n });\n },\n fail: (error: unknown) =>\n workflow.call({\n process: Fetch.process,\n status: ProcessStatus.error,\n payload: { error }\n })\n };\n\n const result = Fetch.get(scroller);\n Fetch.complete(scroller, box, result);\n }\n\n static complete(scroller: Scroller, box: FetchBox, result: FetchGetResult): void {\n if (Object.prototype.hasOwnProperty.call(result, 'data')) {\n const { data, error, isError } = result as Immediate;\n if (!isError) {\n box.success(data || []);\n } else {\n box.fail(error);\n }\n } else {\n const { state, viewport } = scroller;\n const { scroll, fetch } = state;\n if (scroll.positionBeforeAsync === null) {\n scroll.positionBeforeAsync = viewport.scrollPosition;\n }\n fetch.cancel = () => {\n box.success = () => null;\n box.fail = () => null;\n };\n (result as Promise<unknown[]>).then(\n data => box.success(data),\n error => box.fail(error)\n );\n }\n }\n\n static get(scroller: Scroller): FetchGetResult {\n const _get = scroller.datasource.get;\n const { index, count } = scroller.state.fetch;\n\n let immediateData, immediateError;\n let resolve: (value: unknown) => void, reject: (value: unknown) => void;\n\n const done = (data: unknown[]) => {\n if (!resolve) {\n immediateData = data || null;\n return;\n }\n resolve(data);\n };\n const fail = (error: unknown) => {\n if (!reject) {\n immediateError = error || null;\n return;\n }\n reject(error);\n };\n\n const getResult = _get(index, count, done, fail);\n\n if (getResult && typeof getResult === 'object' && getResult !== null) {\n if (typeof (getResult as PromiseLike<unknown>).then === 'function') {\n return getResult as Promise<unknown>;\n } else if (typeof (getResult as ObservableLike).subscribe === 'function') {\n let sub: undefined | ReturnType<ObservableLike['subscribe']> = void 0;\n sub = (getResult as ObservableLike).subscribe(done, fail, () => {\n if (sub && typeof sub === 'object' && typeof sub.unsubscribe === 'function') {\n sub.unsubscribe();\n }\n });\n }\n }\n\n if (immediateData || immediateError) {\n // callback case or immediate observable\n return {\n data: immediateError ? null : immediateData || [],\n error: immediateError,\n isError: !!immediateError\n };\n }\n\n return new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n }\n}\n"]}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/processes/fetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { ObservableLike } from '../interfaces/index';\r\n\r\ninterface Immediate {\r\n data: unknown[] | null;\r\n error: unknown | null;\r\n isError: boolean;\r\n}\r\n\r\ntype FetchGetResult = Immediate | Promise<unknown>;\r\n\r\ninterface FetchBox {\r\n success: (value: unknown[]) => void;\r\n fail: (value: unknown) => void;\r\n}\r\n\r\nexport default class Fetch extends BaseProcessFactory(CommonProcess.fetch) {\r\n static run(scroller: Scroller): void {\r\n const { workflow } = scroller;\r\n\r\n const box = {\r\n success: (data: unknown[]) => {\r\n scroller.logger.log(\r\n () =>\r\n `resolved ${data.length} items ` +\r\n `(index = ${scroller.state.fetch.index}, count = ${scroller.state.fetch.count})`\r\n );\r\n scroller.state.fetch.newItemsData = data;\r\n workflow.call({\r\n process: Fetch.process,\r\n status: ProcessStatus.next\r\n });\r\n },\r\n fail: (error: unknown) =>\r\n workflow.call({\r\n process: Fetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error }\r\n })\r\n };\r\n\r\n const result = Fetch.get(scroller);\r\n Fetch.complete(scroller, box, result);\r\n }\r\n\r\n static complete(scroller: Scroller, box: FetchBox, result: FetchGetResult): void {\r\n if (Object.prototype.hasOwnProperty.call(result, 'data')) {\r\n const { data, error, isError } = result as Immediate;\r\n if (!isError) {\r\n box.success(data || []);\r\n } else {\r\n box.fail(error);\r\n }\r\n } else {\r\n const { state, viewport } = scroller;\r\n const { scroll, fetch } = state;\r\n if (scroll.positionBeforeAsync === null) {\r\n scroll.positionBeforeAsync = viewport.scrollPosition;\r\n }\r\n fetch.cancel = () => {\r\n box.success = () => null;\r\n box.fail = () => null;\r\n };\r\n (result as Promise<unknown[]>).then(\r\n data => box.success(data),\r\n error => box.fail(error)\r\n );\r\n }\r\n }\r\n\r\n static get(scroller: Scroller): FetchGetResult {\r\n const _get = scroller.datasource.get;\r\n const { index, count } = scroller.state.fetch;\r\n\r\n let immediateData, immediateError;\r\n let resolve: (value: unknown) => void, reject: (value: unknown) => void;\r\n\r\n const done = (data: unknown[]) => {\r\n if (!resolve) {\r\n immediateData = data || null;\r\n return;\r\n }\r\n resolve(data);\r\n };\r\n const fail = (error: unknown) => {\r\n if (!reject) {\r\n immediateError = error || null;\r\n return;\r\n }\r\n reject(error);\r\n };\r\n\r\n const getResult = _get(index, count, done, fail);\r\n\r\n if (getResult && typeof getResult === 'object' && getResult !== null) {\r\n if (typeof (getResult as PromiseLike<unknown>).then === 'function') {\r\n return getResult as Promise<unknown>;\r\n } else if (typeof (getResult as ObservableLike).subscribe === 'function') {\r\n let sub: undefined | ReturnType<ObservableLike['subscribe']> = void 0;\r\n sub = (getResult as ObservableLike).subscribe(done, fail, () => {\r\n if (sub && typeof sub === 'object' && typeof sub.unsubscribe === 'function') {\r\n sub.unsubscribe();\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (immediateData || immediateError) {\r\n // callback case or immediate observable\r\n return {\r\n data: immediateError ? null : immediateData || [],\r\n error: immediateError,\r\n isError: !!immediateError\r\n };\r\n }\r\n\r\n return new Promise((_resolve, _reject) => {\r\n resolve = _resolve;\r\n reject = _reject;\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/processes/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,GAAG,MAAM,eAAe,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,GAAG,EACH,aAAa,EACb,cAAc,EACd,aAAa,EACd,CAAC","sourcesContent":["import Init from './init';\nimport Scroll from './scroll';\nimport Reset from './adapter/reset';\nimport Reload from './adapter/reload';\nimport Append from './adapter/append';\nimport Check from './adapter/check';\nimport Remove from './adapter/remove';\nimport UserClip from './adapter/clip';\nimport Insert from './adapter/insert';\nimport Replace from './adapter/replace';\nimport Update from './adapter/update';\nimport Pause from './adapter/pause';\nimport Fix from './adapter/fix';\nimport Start from './start';\nimport PreFetch from './preFetch';\nimport Fetch from './fetch';\nimport PostFetch from './postFetch';\nimport Render from './render';\nimport Adjust from './adjust';\nimport PreClip from './preClip';\nimport Clip from './clip';\nimport End from './end';\n\nimport { CommonProcess, AdapterProcess, ProcessStatus } from './misc/enums';\n\nexport {\n Init,\n Scroll,\n Reset,\n Reload,\n Append,\n Check,\n Remove,\n UserClip,\n Insert,\n Replace,\n Update,\n Pause,\n Fix,\n Start,\n PreFetch,\n Fetch,\n PostFetch,\n Render,\n PreClip,\n Clip,\n Adjust,\n End,\n CommonProcess,\n AdapterProcess,\n ProcessStatus\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/processes/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,GAAG,MAAM,eAAe,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,GAAG,EACH,aAAa,EACb,cAAc,EACd,aAAa,EACd,CAAC","sourcesContent":["import Init from './init';\r\nimport Scroll from './scroll';\r\nimport Reset from './adapter/reset';\r\nimport Reload from './adapter/reload';\r\nimport Append from './adapter/append';\r\nimport Check from './adapter/check';\r\nimport Remove from './adapter/remove';\r\nimport UserClip from './adapter/clip';\r\nimport Insert from './adapter/insert';\r\nimport Replace from './adapter/replace';\r\nimport Update from './adapter/update';\r\nimport Pause from './adapter/pause';\r\nimport Fix from './adapter/fix';\r\nimport Start from './start';\r\nimport PreFetch from './preFetch';\r\nimport Fetch from './fetch';\r\nimport PostFetch from './postFetch';\r\nimport Render from './render';\r\nimport Adjust from './adjust';\r\nimport PreClip from './preClip';\r\nimport Clip from './clip';\r\nimport End from './end';\r\n\r\nimport { CommonProcess, AdapterProcess, ProcessStatus } from './misc/enums';\r\n\r\nexport {\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 CommonProcess,\r\n AdapterProcess,\r\n ProcessStatus\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/processes/init.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhG,IAAM,aAAa,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAExF;IAAkC,wBAAsC;IAAxE;;IAWA,CAAC;IAVQ,QAAG,GAAV,UAAW,QAAkB,EAAE,OAAoB;QACzC,IAAA,KAAK,GAAe,QAAQ,MAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAc;QACrC,IAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IACH,WAAC;AAAD,CAAC,AAXD,CAAkC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,GAWvE","sourcesContent":["import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { ProcessName } from '../interfaces/index';\n\nconst initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];\n\nexport default class Init extends BaseProcessFactory(CommonProcess.init) {\n static run(scroller: Scroller, process: ProcessName): void {\n const { state, workflow } = scroller;\n const isInitial = initProcesses.includes(process);\n scroller.logger.logCycle(true);\n state.startWorkflowCycle(isInitial, process);\n workflow.call({\n process: Init.process,\n status: ProcessStatus.next\n });\n }\n}\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/processes/init.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhG,IAAM,aAAa,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAExF;IAAkC,wBAAsC;IAAxE;;IAWA,CAAC;IAVQ,QAAG,GAAV,UAAW,QAAkB,EAAE,OAAoB;QACzC,IAAA,KAAK,GAAe,QAAQ,MAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAc;QACrC,IAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IACH,WAAC;AAAD,CAAC,AAXD,CAAkC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,GAWvE","sourcesContent":["import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { ProcessName } from '../interfaces/index';\r\n\r\nconst initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];\r\n\r\nexport default class Init extends BaseProcessFactory(CommonProcess.init) {\r\n static run(scroller: Scroller, process: ProcessName): void {\r\n const { state, workflow } = scroller;\r\n const isInitial = initProcesses.includes(process);\r\n scroller.logger.logCycle(true);\r\n state.startWorkflowCycle(isInitial, process);\r\n workflow.call({\r\n process: Init.process,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/processes/misc/base.ts"],"names":[],"mappings":";AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQ/D,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,OAAoB;QACrD;QAEA,CAAC;QAAD,kBAAC;IAAD,CAAC,AAFD;IACS,UAAO,GAAgB,OAAQ;SACvC,CAAC;AAEJ,MAAM,CAAC,IAAM,yBAAyB,GAAG,UAAC,OAAuB;QAC9B,sCAA6C;QAA9E;;QAkCA,CAAC;QA/BQ,6BAAU,GAAjB,UACE,QAAkB,EAClB,OAAU,EACV,YAAoB,EACpB,QAAyB;YADzB,6BAAA,EAAA,oBAAoB;YAGpB,IAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;aAC9D,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CACvD,UAAC,GAAG,EAAE,EAAgB;;wBAAhB,KAAA,aAAgB,EAAf,GAAG,QAAA,EAAI,KAAK,cAAA;oBAAQ,OAAA,uBACtB,GAAG,gBACL,GAAG,IAAG,KAAK,OACZ;gBAHyB,CAGzB,EACF,EAAO,CACR,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAxB,CAAwB,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACrB,OAAO,SAAA;wBACP,MAAM,EAAE,aAAa,CAAC,KAAK;wBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,kCAA0B,OAAO,mBAAe,EAAE;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACH,yBAAC;IAAD,CAAC,AAlCD,CAAkC,kBAAkB,CAAC,OAAO,CAAkB;IACrE,UAAO,GAAmB,OAAQ;SAiC1C,CAAC","sourcesContent":["import { AdapterProcess, ProcessStatus } from './enums';\nimport { Scroller } from '../../scroller';\nimport { ADAPTER_METHODS, validate } from '../../inputs/index';\nimport {\n ProcessName,\n IBaseProcess,\n IBaseAdapterProcess,\n IAdapterInput\n} from '../../interfaces/index';\n\nexport const BaseProcessFactory = (process: ProcessName): IBaseProcess =>\n class BaseProcess {\n static process: ProcessName = process;\n };\n\nexport const BaseAdapterProcessFactory = (process: AdapterProcess): IBaseAdapterProcess =>\n class BaseAdapterProcess extends (BaseProcessFactory(process) as IBaseProcess) {\n static process: AdapterProcess = process;\n\n static parseInput<T>(\n scroller: Scroller,\n options: T,\n ignoreErrors = false,\n _process?: AdapterProcess\n ): IAdapterInput<T> {\n const result: IAdapterInput<T> = {\n data: validate(options, ADAPTER_METHODS[_process || process])\n };\n\n if (result.data.isValid) {\n result.params = Object.entries(result.data.params).reduce(\n (acc, [key, { value }]) => ({\n ...acc,\n [key]: value\n }),\n {} as T\n );\n } else {\n scroller.logger.log(() => result.data.showErrors());\n if (!ignoreErrors) {\n scroller.workflow.call({\n process,\n status: ProcessStatus.error,\n payload: { error: `Wrong argument of the \"${process}\" method call` }\n });\n }\n }\n\n return result;\n }\n };\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/processes/misc/base.ts"],"names":[],"mappings":";AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQ/D,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,OAAoB;QACrD;QAEA,CAAC;QAAD,kBAAC;IAAD,CAAC,AAFD;IACS,UAAO,GAAgB,OAAQ;SACvC,CAAC;AAEJ,MAAM,CAAC,IAAM,yBAAyB,GAAG,UAAC,OAAuB;QAC9B,sCAA6C;QAA9E;;QAkCA,CAAC;QA/BQ,6BAAU,GAAjB,UACE,QAAkB,EAClB,OAAU,EACV,YAAoB,EACpB,QAAyB;YADzB,6BAAA,EAAA,oBAAoB;YAGpB,IAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;aAC9D,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CACvD,UAAC,GAAG,EAAE,EAAgB;;wBAAhB,KAAA,aAAgB,EAAf,GAAG,QAAA,EAAI,KAAK,cAAA;oBAAQ,OAAA,uBACtB,GAAG,gBACL,GAAG,IAAG,KAAK,OACZ;gBAHyB,CAGzB,EACF,EAAO,CACR,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAxB,CAAwB,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACrB,OAAO,SAAA;wBACP,MAAM,EAAE,aAAa,CAAC,KAAK;wBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,kCAA0B,OAAO,mBAAe,EAAE;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACH,yBAAC;IAAD,CAAC,AAlCD,CAAkC,kBAAkB,CAAC,OAAO,CAAkB;IACrE,UAAO,GAAmB,OAAQ;SAiC1C,CAAC","sourcesContent":["import { AdapterProcess, ProcessStatus } from './enums';\r\nimport { Scroller } from '../../scroller';\r\nimport { ADAPTER_METHODS, validate } from '../../inputs/index';\r\nimport {\r\n ProcessName,\r\n IBaseProcess,\r\n IBaseAdapterProcess,\r\n IAdapterInput\r\n} from '../../interfaces/index';\r\n\r\nexport const BaseProcessFactory = (process: ProcessName): IBaseProcess =>\r\n class BaseProcess {\r\n static process: ProcessName = process;\r\n };\r\n\r\nexport const BaseAdapterProcessFactory = (process: AdapterProcess): IBaseAdapterProcess =>\r\n class BaseAdapterProcess extends (BaseProcessFactory(process) as IBaseProcess) {\r\n static process: AdapterProcess = process;\r\n\r\n static parseInput<T>(\r\n scroller: Scroller,\r\n options: T,\r\n ignoreErrors = false,\r\n _process?: AdapterProcess\r\n ): IAdapterInput<T> {\r\n const result: IAdapterInput<T> = {\r\n data: validate(options, ADAPTER_METHODS[_process || process])\r\n };\r\n\r\n if (result.data.isValid) {\r\n result.params = Object.entries(result.data.params).reduce(\r\n (acc, [key, { value }]) => ({\r\n ...acc,\r\n [key]: value\r\n }),\r\n {} as T\r\n );\r\n } else {\r\n scroller.logger.log(() => result.data.showErrors());\r\n if (!ignoreErrors) {\r\n scroller.workflow.call({\r\n process,\r\n status: ProcessStatus.error,\r\n payload: { error: `Wrong argument of the \"${process}\" method call` }\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n };\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/processes/misc/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,4BAAW,CAAA;AACb,CAAC,EAZW,aAAa,KAAb,aAAa,QAYxB;AAED,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;AACrB,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB","sourcesContent":["export enum CommonProcess {\n init = 'init',\n scroll = 'scroll',\n start = 'start',\n preFetch = 'preFetch',\n fetch = 'fetch',\n postFetch = 'postFetch',\n render = 'render',\n preClip = 'preClip',\n clip = 'clip',\n adjust = 'adjust',\n end = 'end'\n}\n\nexport enum AdapterProcess {\n reset = 'adapter.reset',\n reload = 'adapter.reload',\n append = 'adapter.append',\n prepend = 'adapter.prepend',\n check = 'adapter.check',\n remove = 'adapter.remove',\n replace = 'adapter.replace',\n update = 'adapter.update',\n clip = 'adapter.clip',\n insert = 'adapter.insert',\n pause = 'adapter.pause',\n fix = 'adapter.fix'\n}\n\nexport enum ProcessStatus {\n start = 'start',\n next = 'next',\n done = 'done',\n error = 'error'\n}\n"]}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/processes/misc/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,4BAAW,CAAA;AACb,CAAC,EAZW,aAAa,KAAb,aAAa,QAYxB;AAED,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;AACrB,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB","sourcesContent":["export enum CommonProcess {\r\n init = 'init',\r\n scroll = 'scroll',\r\n start = 'start',\r\n preFetch = 'preFetch',\r\n fetch = 'fetch',\r\n postFetch = 'postFetch',\r\n render = 'render',\r\n preClip = 'preClip',\r\n clip = 'clip',\r\n adjust = 'adjust',\r\n end = 'end'\r\n}\r\n\r\nexport enum AdapterProcess {\r\n reset = 'adapter.reset',\r\n reload = 'adapter.reload',\r\n append = 'adapter.append',\r\n prepend = 'adapter.prepend',\r\n check = 'adapter.check',\r\n remove = 'adapter.remove',\r\n replace = 'adapter.replace',\r\n update = 'adapter.update',\r\n clip = 'adapter.clip',\r\n insert = 'adapter.insert',\r\n pause = 'adapter.pause',\r\n fix = 'adapter.fix'\r\n}\r\n\r\nexport enum ProcessStatus {\r\n start = 'start',\r\n next = 'next',\r\n done = 'done',\r\n error = 'error'\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/processes/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC","sourcesContent":["export { CommonProcess, AdapterProcess, ProcessStatus } from './enums';\nexport { BaseProcessFactory, BaseAdapterProcessFactory } from './base';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/processes/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC","sourcesContent":["export { CommonProcess, AdapterProcess, ProcessStatus } from './enums';\r\nexport { BaseProcessFactory, BaseAdapterProcessFactory } from './base';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"postFetch.js","sourceRoot":"","sources":["../../../src/processes/postFetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Item } from '../classes/item';\n\nexport default class PostFetch extends BaseProcessFactory(CommonProcess.postFetch) {\n static run(scroller: Scroller): void {\n const { workflow } = scroller;\n if (PostFetch.setItems(scroller)) {\n PostFetch.setBufferLimits(scroller);\n workflow.call({\n process: PostFetch.process,\n status: scroller.state.fetch.hasNewItems ? ProcessStatus.next : ProcessStatus.done\n });\n } else {\n workflow.call({\n process: PostFetch.process,\n status: ProcessStatus.error,\n payload: { error: 'Can not set buffer items' }\n });\n }\n }\n\n static setBufferLimits(scroller: Scroller): void {\n const { buffer, state } = scroller;\n const { fetch, cycle } = state;\n const { items, first, last } = fetch;\n if (!items.length) {\n if (last.index < buffer.minIndex || cycle.innerLoop.isInitial) {\n buffer.absMinIndex = buffer.minIndex;\n }\n if (first.index > buffer.maxIndex || cycle.innerLoop.isInitial) {\n buffer.absMaxIndex = buffer.maxIndex;\n }\n } else {\n const lastIndex = items.length - 1;\n if (first.index < items[0].$index) {\n buffer.absMinIndex = items[0].$index;\n }\n if (last.index > items[lastIndex].$index) {\n buffer.absMaxIndex = items[lastIndex].$index;\n }\n }\n }\n\n static setItems(scroller: Scroller): boolean {\n const { buffer, state } = scroller;\n const { fetch, cycle } = state;\n const items = fetch.newItemsData;\n if (!items || !items.length) {\n // empty result\n return true;\n }\n // eof/bof case, need to shift fetch index if bof\n let fetchIndex = fetch.index;\n if (items.length < fetch.count) {\n if (cycle.innerLoop.isInitial) {\n // let's treat initial poor fetch as startIndex-bof\n fetchIndex = buffer.startIndex;\n } else if (fetch.first.index < buffer.minIndex) {\n // normal bof\n fetchIndex = buffer.firstIndex - items.length;\n }\n }\n fetch.items = items.map(\n (item, index: number) => new Item(fetchIndex + index, item, scroller.routines)\n );\n return buffer.setItems(fetch.items);\n }\n}\n"]}
1
+ {"version":3,"file":"postFetch.js","sourceRoot":"","sources":["../../../src/processes/postFetch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;IAAuC,6BAA2C;IAAlF;;IAgEA,CAAC;IA/DQ,aAAG,GAAV,UAAW,QAAkB;QACnB,IAAA,QAAQ,GAAK,QAAQ,SAAb,CAAc;QAC9B,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;aACnF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,aAAa,CAAC,KAAK;gBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEM,yBAAe,GAAtB,UAAuB,QAAkB;QAC/B,IAAA,MAAM,GAAY,QAAQ,OAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QAC3B,IAAA,KAAK,GAAY,KAAK,MAAjB,EAAE,KAAK,GAAK,KAAK,MAAV,CAAW;QACvB,IAAA,KAAK,GAAkB,KAAK,MAAvB,EAAE,KAAK,GAAW,KAAK,MAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;QACrC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC9D,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;YACvC,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC/D,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAEM,kBAAQ,GAAf,UAAgB,QAAkB;QACxB,IAAA,MAAM,GAAY,QAAQ,OAApB,EAAE,KAAK,GAAK,QAAQ,MAAb,CAAc;QAC3B,IAAA,KAAK,GAAY,KAAK,MAAjB,EAAE,KAAK,GAAK,KAAK,MAAV,CAAW;QAC/B,IAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,eAAe;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iDAAiD;QACjD,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC9B,mDAAmD;gBACnD,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC/C,aAAa;gBACb,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAChD,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CACrB,UAAC,IAAI,EAAE,KAAa,IAAK,OAAA,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAArD,CAAqD,CAC/E,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACH,gBAAC;AAAD,CAAC,AAhED,CAAuC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,GAgEjF","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Item } from '../classes/item';\r\n\r\nexport default class PostFetch extends BaseProcessFactory(CommonProcess.postFetch) {\r\n static run(scroller: Scroller): void {\r\n const { workflow } = scroller;\r\n if (PostFetch.setItems(scroller)) {\r\n PostFetch.setBufferLimits(scroller);\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: scroller.state.fetch.hasNewItems ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n } else {\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error: 'Can not set buffer items' }\r\n });\r\n }\r\n }\r\n\r\n static setBufferLimits(scroller: Scroller): void {\r\n const { buffer, state } = scroller;\r\n const { fetch, cycle } = state;\r\n const { items, first, last } = fetch;\r\n if (!items.length) {\r\n if (last.index < buffer.minIndex || cycle.innerLoop.isInitial) {\r\n buffer.absMinIndex = buffer.minIndex;\r\n }\r\n if (first.index > buffer.maxIndex || cycle.innerLoop.isInitial) {\r\n buffer.absMaxIndex = buffer.maxIndex;\r\n }\r\n } else {\r\n const lastIndex = items.length - 1;\r\n if (first.index < items[0].$index) {\r\n buffer.absMinIndex = items[0].$index;\r\n }\r\n if (last.index > items[lastIndex].$index) {\r\n buffer.absMaxIndex = items[lastIndex].$index;\r\n }\r\n }\r\n }\r\n\r\n static setItems(scroller: Scroller): boolean {\r\n const { buffer, state } = scroller;\r\n const { fetch, cycle } = state;\r\n const items = fetch.newItemsData;\r\n if (!items || !items.length) {\r\n // empty result\r\n return true;\r\n }\r\n // eof/bof case, need to shift fetch index if bof\r\n let fetchIndex = fetch.index;\r\n if (items.length < fetch.count) {\r\n if (cycle.innerLoop.isInitial) {\r\n // let's treat initial poor fetch as startIndex-bof\r\n fetchIndex = buffer.startIndex;\r\n } else if (fetch.first.index < buffer.minIndex) {\r\n // normal bof\r\n fetchIndex = buffer.firstIndex - items.length;\r\n }\r\n }\r\n fetch.items = items.map(\r\n (item, index: number) => new Item(fetchIndex + index, item, scroller.routines)\r\n );\r\n return buffer.setItems(fetch.items);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"preClip.js","sourceRoot":"","sources":["../../../src/processes/preClip.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Direction } from '../inputs/index';\n\nexport default class PreClip extends BaseProcessFactory(CommonProcess.preClip) {\n static run(scroller: Scroller): void {\n PreClip.prepareClip(scroller);\n\n scroller.workflow.call({\n process: PreClip.process,\n status: ProcessStatus.next,\n payload: {\n doClip: scroller.state.clip.doClip\n }\n });\n }\n\n static prepareClip(scroller: Scroller): void {\n const { fetch, clip } = scroller.state;\n if (PreClip.shouldNotClip(scroller)) {\n return;\n }\n const firstIndex = fetch.first.indexBuffer;\n const lastIndex = fetch.last.indexBuffer;\n scroller.logger.log(\n () =>\n `looking for ${fetch.direction ? 'anti-' + fetch.direction + ' ' : ''}items ` +\n `that are out of [${firstIndex}..${lastIndex}] range`\n );\n if (PreClip.isBackward(scroller, firstIndex)) {\n PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);\n }\n if (PreClip.isForward(scroller, lastIndex)) {\n PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);\n }\n if (!clip.doClip) {\n scroller.logger.log('skipping clip [no items to clip]');\n }\n return;\n }\n\n static shouldNotClip(scroller: Scroller): boolean {\n const { settings, buffer, state } = scroller;\n if (settings.infinite && !state.clip.force) {\n scroller.logger.log('skipping clip [infinite mode]');\n return true;\n }\n if (!buffer.size) {\n scroller.logger.log('skipping clip [empty buffer]');\n return true;\n }\n if (state.cycle.isInitial) {\n scroller.logger.log('skipping clip [initial cycle]');\n return true;\n }\n return false;\n }\n\n static isBackward(scroller: Scroller, firstIndex: number): boolean {\n const { buffer, state } = scroller;\n const { clip, fetch } = state;\n if (clip.force) {\n return clip.forceBackward;\n }\n if (fetch.direction !== Direction.backward) {\n if (firstIndex - 1 >= buffer.absMinIndex) {\n return true;\n }\n }\n return false;\n }\n\n static isForward(scroller: Scroller, lastIndex: number): boolean {\n const { buffer, state } = scroller;\n const { clip, fetch } = state;\n if (clip.force) {\n return clip.forceForward;\n }\n if (fetch.direction !== Direction.forward) {\n if (lastIndex + 1 <= buffer.absMaxIndex) {\n return true;\n }\n }\n return false;\n }\n\n static prepareClipByDirection(scroller: Scroller, direction: Direction, edgeIndex: number): void {\n const forward = direction === Direction.forward;\n scroller.buffer.items.forEach(item => {\n if ((!forward && item.$index < edgeIndex) || (forward && item.$index > edgeIndex)) {\n item.toRemove = true;\n item.removeDirection = direction;\n scroller.state.clip.doClip = true;\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"preClip.js","sourceRoot":"","sources":["../../../src/processes/preClip.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Direction } from '../inputs/index';\r\n\r\nexport default class PreClip extends BaseProcessFactory(CommonProcess.preClip) {\r\n static run(scroller: Scroller): void {\r\n PreClip.prepareClip(scroller);\r\n\r\n scroller.workflow.call({\r\n process: PreClip.process,\r\n status: ProcessStatus.next,\r\n payload: {\r\n doClip: scroller.state.clip.doClip\r\n }\r\n });\r\n }\r\n\r\n static prepareClip(scroller: Scroller): void {\r\n const { fetch, clip } = scroller.state;\r\n if (PreClip.shouldNotClip(scroller)) {\r\n return;\r\n }\r\n const firstIndex = fetch.first.indexBuffer;\r\n const lastIndex = fetch.last.indexBuffer;\r\n scroller.logger.log(\r\n () =>\r\n `looking for ${fetch.direction ? 'anti-' + fetch.direction + ' ' : ''}items ` +\r\n `that are out of [${firstIndex}..${lastIndex}] range`\r\n );\r\n if (PreClip.isBackward(scroller, firstIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);\r\n }\r\n if (PreClip.isForward(scroller, lastIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);\r\n }\r\n if (!clip.doClip) {\r\n scroller.logger.log('skipping clip [no items to clip]');\r\n }\r\n return;\r\n }\r\n\r\n static shouldNotClip(scroller: Scroller): boolean {\r\n const { settings, buffer, state } = scroller;\r\n if (settings.infinite && !state.clip.force) {\r\n scroller.logger.log('skipping clip [infinite mode]');\r\n return true;\r\n }\r\n if (!buffer.size) {\r\n scroller.logger.log('skipping clip [empty buffer]');\r\n return true;\r\n }\r\n if (state.cycle.isInitial) {\r\n scroller.logger.log('skipping clip [initial cycle]');\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static isBackward(scroller: Scroller, firstIndex: number): boolean {\r\n const { buffer, state } = scroller;\r\n const { clip, fetch } = state;\r\n if (clip.force) {\r\n return clip.forceBackward;\r\n }\r\n if (fetch.direction !== Direction.backward) {\r\n if (firstIndex - 1 >= buffer.absMinIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static isForward(scroller: Scroller, lastIndex: number): boolean {\r\n const { buffer, state } = scroller;\r\n const { clip, fetch } = state;\r\n if (clip.force) {\r\n return clip.forceForward;\r\n }\r\n if (fetch.direction !== Direction.forward) {\r\n if (lastIndex + 1 <= buffer.absMaxIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static prepareClipByDirection(scroller: Scroller, direction: Direction, edgeIndex: number): void {\r\n const forward = direction === Direction.forward;\r\n scroller.buffer.items.forEach(item => {\r\n if ((!forward && item.$index < edgeIndex) || (forward && item.$index > edgeIndex)) {\r\n item.toRemove = true;\r\n item.removeDirection = direction;\r\n scroller.state.clip.doClip = true;\r\n }\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"preFetch.js","sourceRoot":"","sources":["../../../src/processes/preFetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Direction } from '../inputs/index';\n\nexport default class PreFetch extends BaseProcessFactory(CommonProcess.preFetch) {\n static run(scroller: Scroller): void {\n const { workflow, buffer, state } = scroller;\n const { fetch, cycle } = state;\n fetch.minIndex = buffer.minIndex;\n\n // set first and last indexes of items to fetch\n PreFetch.setPositionsAndIndexes(scroller);\n\n // skip indexes that are in buffer\n PreFetch.skipBufferedItems(scroller);\n\n if (scroller.settings.infinite) {\n // fill indexes to include buffer if no clip\n PreFetch.checkBufferGaps(scroller);\n }\n\n // add indexes if there are too few items to fetch (clip padding)\n PreFetch.checkFetchPackSize(scroller);\n\n // set fetch direction\n PreFetch.setFetchDirection(scroller);\n\n workflow.call({\n process: PreFetch.process,\n status: PreFetch.getStatus(scroller),\n payload: { process: cycle.initiator }\n });\n }\n\n static setPositionsAndIndexes(scroller: Scroller): void {\n PreFetch.setPositions(scroller);\n PreFetch.setFirstIndex(scroller);\n PreFetch.setLastIndex(scroller);\n scroller.logger.fetch();\n }\n\n static setPositions(scroller: Scroller): void {\n const { state, viewport } = scroller;\n const { positions } = state.fetch;\n const paddingDelta = viewport.getBufferPadding();\n positions.before = viewport.scrollPosition;\n positions.startDelta = PreFetch.getStartDelta(scroller);\n positions.relative = positions.before - positions.startDelta;\n positions.start = positions.relative - paddingDelta;\n positions.end = positions.relative + viewport.getSize() + paddingDelta;\n }\n\n static getStartDelta(scroller: Scroller): number {\n // calculate size before start index\n const { buffer, viewport } = scroller;\n const { offset } = viewport;\n let startDelta = 0;\n if (offset) {\n startDelta += offset;\n }\n if (!buffer.defaultSize) {\n return startDelta;\n }\n for (let index = buffer.finiteAbsMinIndex; index < buffer.startIndex; index++) {\n startDelta += buffer.getSizeByIndex(index);\n }\n scroller.logger.log(() => [\n `start delta is ${startDelta}`,\n ...(offset ? [` (+${offset} offset)`] : [])\n ]);\n return startDelta;\n }\n\n static setFirstIndex(scroller: Scroller): void {\n const { state, buffer } = scroller;\n const { positions, first } = state.fetch;\n const { start } = positions;\n let firstIndex = buffer.startIndex;\n let firstIndexPosition = 0;\n if (state.cycle.innerLoop.isInitial) {\n scroller.logger.log('skipping fetch backward direction [initial loop]');\n } else if (!buffer.defaultSize) {\n scroller.logger.log('skipping fetch backward direction [no item size]');\n } else {\n let position = firstIndexPosition;\n let index = firstIndex;\n while (true) {\n if (start >= 0) {\n const size = buffer.getSizeByIndex(index);\n const diff = position + size - start;\n if (diff > 0) {\n firstIndex = index;\n firstIndexPosition = position;\n break;\n }\n position += size;\n index++;\n if (index < buffer.absMinIndex) {\n break;\n }\n }\n if (start < 0) {\n index--;\n if (index < buffer.absMinIndex) {\n break;\n }\n position -= buffer.getSizeByIndex(index);\n const diff = position - start;\n firstIndex = index;\n firstIndexPosition = position;\n if (diff <= 0) {\n break;\n }\n }\n }\n }\n first.index = first.indexBuffer = Math.max(firstIndex, buffer.absMinIndex);\n first.position = firstIndexPosition;\n }\n\n static setLastIndex(scroller: Scroller): void {\n const { state, buffer, settings } = scroller;\n const { fetch, cycle } = state;\n const { firstVisible, positions, first, last } = fetch;\n const { relative, end } = positions;\n let lastIndex;\n if (!buffer.defaultSize) {\n // just to fetch forward bufferSize items if neither averageItemSize nor itemSize are present\n lastIndex = buffer.startIndex + settings.bufferSize - 1;\n scroller.logger.log('forcing fetch forward direction [no item size]');\n } else {\n let index = first.indexBuffer;\n let position = first.position;\n lastIndex = index;\n while (true) {\n lastIndex = index;\n const size = buffer.getSizeByIndex(index);\n position += size;\n if (isNaN(firstVisible.index) && position > relative) {\n firstVisible.index = index;\n if (!cycle.innerLoop.isInitial) {\n firstVisible.delta = position - size - relative;\n }\n }\n if (position >= end) {\n break;\n }\n if (index++ > buffer.absMaxIndex) {\n break;\n }\n }\n }\n last.index = last.indexBuffer = Math.min(lastIndex, buffer.absMaxIndex);\n }\n\n static skipBufferedItems(scroller: Scroller): void {\n const { buffer } = scroller;\n if (!buffer.size) {\n return;\n }\n const { fetch } = scroller.state;\n const firstIndex = fetch.first.index;\n const lastIndex = fetch.last.index;\n const packs: number[][] = [[]];\n let p = 0;\n for (let i = firstIndex; i <= lastIndex; i++) {\n if (!buffer.get(i)) {\n packs[p].push(i);\n } else if (packs[p].length) {\n packs[++p] = [];\n }\n }\n let pack = packs[0];\n if (packs[0].length && packs[1] && packs[1].length) {\n fetch.hasAnotherPack = true;\n // todo: need to look for biggest pack in visible area\n // todo: or think about merging two requests in a single Fetch process\n if (packs[1].length >= packs[0].length) {\n pack = packs[1];\n }\n }\n fetch.first.index = Math.max(pack[0], buffer.absMinIndex);\n fetch.last.index = Math.min(pack[pack.length - 1], buffer.absMaxIndex);\n if (fetch.first.index !== firstIndex || fetch.last.index !== lastIndex) {\n scroller.logger.fetch('after Buffer flushing');\n }\n }\n\n static checkBufferGaps(scroller: Scroller): void {\n const { buffer, state } = scroller;\n const { fetch } = state;\n if (!buffer.size) {\n return;\n }\n const fetchFirst = fetch.first.index;\n const bufferLast = buffer.lastIndex;\n if (fetchFirst > bufferLast) {\n fetch.first.index = fetch.first.indexBuffer = bufferLast + 1;\n }\n const bufferFirst = buffer.firstIndex;\n const fetchLast = fetch.last.index;\n if (fetchLast < bufferFirst) {\n fetch.last.index = fetch.last.indexBuffer = bufferFirst - 1;\n }\n if (fetch.first.index !== fetchFirst || fetch.last.index !== fetchLast) {\n scroller.logger.fetch('after Buffer filling (no clip case)');\n }\n }\n\n static checkFetchPackSize(scroller: Scroller): void {\n const { buffer, state } = scroller;\n const { fetch } = state;\n if (!fetch.shouldFetch) {\n return;\n }\n const firstIndex = fetch.first.index;\n const lastIndex = fetch.last.index;\n const diff = scroller.settings.bufferSize - (lastIndex - firstIndex + 1);\n if (diff <= 0) {\n return;\n }\n if (!buffer.size || lastIndex > buffer.items[0].$index) {\n // forward\n const newLastIndex = Math.min(lastIndex + diff, buffer.absMaxIndex);\n if (newLastIndex > lastIndex) {\n fetch.last.index = fetch.last.indexBuffer = newLastIndex;\n }\n } else {\n const newFirstIndex = Math.max(firstIndex - diff, buffer.absMinIndex);\n if (newFirstIndex < firstIndex) {\n fetch.first.index = fetch.first.indexBuffer = newFirstIndex;\n }\n }\n if (fetch.first.index !== firstIndex || fetch.last.index !== lastIndex) {\n scroller.logger.fetch('after bufferSize adjustment');\n PreFetch.skipBufferedItems(scroller);\n }\n }\n\n static setFetchDirection(scroller: Scroller): void {\n const { buffer, state } = scroller;\n const { fetch } = state;\n if (fetch.last.index) {\n let direction = Direction.forward;\n if (buffer.size) {\n direction =\n fetch.last.index < buffer.items[0].$index ? Direction.backward : Direction.forward;\n }\n fetch.direction = direction;\n scroller.logger.log(() => `fetch direction is \"${direction}\"`);\n }\n }\n\n static getStatus(scroller: Scroller): ProcessStatus {\n const { cycle, fetch } = scroller.state;\n if (cycle.initiator === AdapterProcess.clip) {\n scroller.logger.log(() => `going to skip fetch due to \"${AdapterProcess.clip}\" process`);\n return ProcessStatus.next;\n }\n if (fetch.shouldFetch) {\n scroller.logger.log(\n () => `going to fetch ${fetch.count} items started from index ${fetch.index}`\n );\n return ProcessStatus.next;\n }\n return ProcessStatus.done;\n }\n}\n"]}
1
+ {"version":3,"file":"preFetch.js","sourceRoot":"","sources":["../../../src/processes/preFetch.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, AdapterProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Direction } from '../inputs/index';\r\n\r\nexport default class PreFetch extends BaseProcessFactory(CommonProcess.preFetch) {\r\n static run(scroller: Scroller): void {\r\n const { workflow, buffer, state } = scroller;\r\n const { fetch, cycle } = state;\r\n fetch.minIndex = buffer.minIndex;\r\n\r\n // set first and last indexes of items to fetch\r\n PreFetch.setPositionsAndIndexes(scroller);\r\n\r\n // skip indexes that are in buffer\r\n PreFetch.skipBufferedItems(scroller);\r\n\r\n if (scroller.settings.infinite) {\r\n // fill indexes to include buffer if no clip\r\n PreFetch.checkBufferGaps(scroller);\r\n }\r\n\r\n // add indexes if there are too few items to fetch (clip padding)\r\n PreFetch.checkFetchPackSize(scroller);\r\n\r\n // set fetch direction\r\n PreFetch.setFetchDirection(scroller);\r\n\r\n workflow.call({\r\n process: PreFetch.process,\r\n status: PreFetch.getStatus(scroller),\r\n payload: { process: cycle.initiator }\r\n });\r\n }\r\n\r\n static setPositionsAndIndexes(scroller: Scroller): void {\r\n PreFetch.setPositions(scroller);\r\n PreFetch.setFirstIndex(scroller);\r\n PreFetch.setLastIndex(scroller);\r\n scroller.logger.fetch();\r\n }\r\n\r\n static setPositions(scroller: Scroller): void {\r\n const { state, viewport } = scroller;\r\n const { positions } = state.fetch;\r\n const paddingDelta = viewport.getBufferPadding();\r\n positions.before = viewport.scrollPosition;\r\n positions.startDelta = PreFetch.getStartDelta(scroller);\r\n positions.relative = positions.before - positions.startDelta;\r\n positions.start = positions.relative - paddingDelta;\r\n positions.end = positions.relative + viewport.getSize() + paddingDelta;\r\n }\r\n\r\n static getStartDelta(scroller: Scroller): number {\r\n // calculate size before start index\r\n const { buffer, viewport } = scroller;\r\n const { offset } = viewport;\r\n let startDelta = 0;\r\n if (offset) {\r\n startDelta += offset;\r\n }\r\n if (!buffer.defaultSize) {\r\n return startDelta;\r\n }\r\n for (let index = buffer.finiteAbsMinIndex; index < buffer.startIndex; index++) {\r\n startDelta += buffer.getSizeByIndex(index);\r\n }\r\n scroller.logger.log(() => [\r\n `start delta is ${startDelta}`,\r\n ...(offset ? [` (+${offset} offset)`] : [])\r\n ]);\r\n return startDelta;\r\n }\r\n\r\n static setFirstIndex(scroller: Scroller): void {\r\n const { state, buffer } = scroller;\r\n const { positions, first } = state.fetch;\r\n const { start } = positions;\r\n let firstIndex = buffer.startIndex;\r\n let firstIndexPosition = 0;\r\n if (state.cycle.innerLoop.isInitial) {\r\n scroller.logger.log('skipping fetch backward direction [initial loop]');\r\n } else if (!buffer.defaultSize) {\r\n scroller.logger.log('skipping fetch backward direction [no item size]');\r\n } else {\r\n let position = firstIndexPosition;\r\n let index = firstIndex;\r\n while (true) {\r\n if (start >= 0) {\r\n const size = buffer.getSizeByIndex(index);\r\n const diff = position + size - start;\r\n if (diff > 0) {\r\n firstIndex = index;\r\n firstIndexPosition = position;\r\n break;\r\n }\r\n position += size;\r\n index++;\r\n if (index < buffer.absMinIndex) {\r\n break;\r\n }\r\n }\r\n if (start < 0) {\r\n index--;\r\n if (index < buffer.absMinIndex) {\r\n break;\r\n }\r\n position -= buffer.getSizeByIndex(index);\r\n const diff = position - start;\r\n firstIndex = index;\r\n firstIndexPosition = position;\r\n if (diff <= 0) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n first.index = first.indexBuffer = Math.max(firstIndex, buffer.absMinIndex);\r\n first.position = firstIndexPosition;\r\n }\r\n\r\n static setLastIndex(scroller: Scroller): void {\r\n const { state, buffer, settings } = scroller;\r\n const { fetch, cycle } = state;\r\n const { firstVisible, positions, first, last } = fetch;\r\n const { relative, end } = positions;\r\n let lastIndex;\r\n if (!buffer.defaultSize) {\r\n // just to fetch forward bufferSize items if neither averageItemSize nor itemSize are present\r\n lastIndex = buffer.startIndex + settings.bufferSize - 1;\r\n scroller.logger.log('forcing fetch forward direction [no item size]');\r\n } else {\r\n let index = first.indexBuffer;\r\n let position = first.position;\r\n lastIndex = index;\r\n while (true) {\r\n lastIndex = index;\r\n const size = buffer.getSizeByIndex(index);\r\n position += size;\r\n if (isNaN(firstVisible.index) && position > relative) {\r\n firstVisible.index = index;\r\n if (!cycle.innerLoop.isInitial) {\r\n firstVisible.delta = position - size - relative;\r\n }\r\n }\r\n if (position >= end) {\r\n break;\r\n }\r\n if (index++ > buffer.absMaxIndex) {\r\n break;\r\n }\r\n }\r\n }\r\n last.index = last.indexBuffer = Math.min(lastIndex, buffer.absMaxIndex);\r\n }\r\n\r\n static skipBufferedItems(scroller: Scroller): void {\r\n const { buffer } = scroller;\r\n if (!buffer.size) {\r\n return;\r\n }\r\n const { fetch } = scroller.state;\r\n const firstIndex = fetch.first.index;\r\n const lastIndex = fetch.last.index;\r\n const packs: number[][] = [[]];\r\n let p = 0;\r\n for (let i = firstIndex; i <= lastIndex; i++) {\r\n if (!buffer.get(i)) {\r\n packs[p].push(i);\r\n } else if (packs[p].length) {\r\n packs[++p] = [];\r\n }\r\n }\r\n let pack = packs[0];\r\n if (packs[0].length && packs[1] && packs[1].length) {\r\n fetch.hasAnotherPack = true;\r\n // todo: need to look for biggest pack in visible area\r\n // todo: or think about merging two requests in a single Fetch process\r\n if (packs[1].length >= packs[0].length) {\r\n pack = packs[1];\r\n }\r\n }\r\n fetch.first.index = Math.max(pack[0], buffer.absMinIndex);\r\n fetch.last.index = Math.min(pack[pack.length - 1], buffer.absMaxIndex);\r\n if (fetch.first.index !== firstIndex || fetch.last.index !== lastIndex) {\r\n scroller.logger.fetch('after Buffer flushing');\r\n }\r\n }\r\n\r\n static checkBufferGaps(scroller: Scroller): void {\r\n const { buffer, state } = scroller;\r\n const { fetch } = state;\r\n if (!buffer.size) {\r\n return;\r\n }\r\n const fetchFirst = fetch.first.index;\r\n const bufferLast = buffer.lastIndex;\r\n if (fetchFirst > bufferLast) {\r\n fetch.first.index = fetch.first.indexBuffer = bufferLast + 1;\r\n }\r\n const bufferFirst = buffer.firstIndex;\r\n const fetchLast = fetch.last.index;\r\n if (fetchLast < bufferFirst) {\r\n fetch.last.index = fetch.last.indexBuffer = bufferFirst - 1;\r\n }\r\n if (fetch.first.index !== fetchFirst || fetch.last.index !== fetchLast) {\r\n scroller.logger.fetch('after Buffer filling (no clip case)');\r\n }\r\n }\r\n\r\n static checkFetchPackSize(scroller: Scroller): void {\r\n const { buffer, state } = scroller;\r\n const { fetch } = state;\r\n if (!fetch.shouldFetch) {\r\n return;\r\n }\r\n const firstIndex = fetch.first.index;\r\n const lastIndex = fetch.last.index;\r\n const diff = scroller.settings.bufferSize - (lastIndex - firstIndex + 1);\r\n if (diff <= 0) {\r\n return;\r\n }\r\n if (!buffer.size || lastIndex > buffer.items[0].$index) {\r\n // forward\r\n const newLastIndex = Math.min(lastIndex + diff, buffer.absMaxIndex);\r\n if (newLastIndex > lastIndex) {\r\n fetch.last.index = fetch.last.indexBuffer = newLastIndex;\r\n }\r\n } else {\r\n const newFirstIndex = Math.max(firstIndex - diff, buffer.absMinIndex);\r\n if (newFirstIndex < firstIndex) {\r\n fetch.first.index = fetch.first.indexBuffer = newFirstIndex;\r\n }\r\n }\r\n if (fetch.first.index !== firstIndex || fetch.last.index !== lastIndex) {\r\n scroller.logger.fetch('after bufferSize adjustment');\r\n PreFetch.skipBufferedItems(scroller);\r\n }\r\n }\r\n\r\n static setFetchDirection(scroller: Scroller): void {\r\n const { buffer, state } = scroller;\r\n const { fetch } = state;\r\n if (fetch.last.index) {\r\n let direction = Direction.forward;\r\n if (buffer.size) {\r\n direction =\r\n fetch.last.index < buffer.items[0].$index ? Direction.backward : Direction.forward;\r\n }\r\n fetch.direction = direction;\r\n scroller.logger.log(() => `fetch direction is \"${direction}\"`);\r\n }\r\n }\r\n\r\n static getStatus(scroller: Scroller): ProcessStatus {\r\n const { cycle, fetch } = scroller.state;\r\n if (cycle.initiator === AdapterProcess.clip) {\r\n scroller.logger.log(() => `going to skip fetch due to \"${AdapterProcess.clip}\" process`);\r\n return ProcessStatus.next;\r\n }\r\n if (fetch.shouldFetch) {\r\n scroller.logger.log(\r\n () => `going to fetch ${fetch.count} items started from index ${fetch.index}`\r\n );\r\n return ProcessStatus.next;\r\n }\r\n return ProcessStatus.done;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/processes/render.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Item } from '../classes/item';\n\nexport default class Render extends BaseProcessFactory(CommonProcess.render) {\n static run(scroller: Scroller): void {\n const { workflow, state, viewport, routines } = scroller;\n const { cycle, render, scroll, fetch } = state;\n scroller.logger.stat('before new items render');\n if (scroll.positionBeforeAsync === null) {\n scroll.positionBeforeAsync = viewport.scrollPosition;\n }\n render.cancel = routines.render(\n () => {\n render.cancel = null;\n if (Render.doRender(scroller)) {\n workflow.call({\n process: Render.process,\n status: render.noSize ? ProcessStatus.done : ProcessStatus.next,\n payload: { process: cycle.initiator }\n });\n } else {\n workflow.call({\n process: Render.process,\n status: ProcessStatus.error,\n payload: { error: 'Can not associate item with element' }\n });\n }\n },\n { items: fetch.items.map(i => i.get()) }\n );\n }\n\n static doRender(scroller: Scroller): boolean {\n const { state, viewport, buffer, logger } = scroller;\n const { fetch, render } = state;\n render.positionBefore = viewport.scrollPosition;\n if (!fetch.isCheck) {\n render.sizeBefore = viewport.getScrollableSize();\n if (!fetch.items.every(item => Render.processElement(scroller, item))) {\n return false;\n }\n }\n buffer.checkDefaultSize();\n render.sizeAfter = viewport.getScrollableSize();\n logger.stat('after new items render');\n logger.log(() => (render.noSize ? 'viewport size has not been changed' : void 0));\n return true;\n }\n\n static processElement(scroller: Scroller, item: Item): boolean {\n const { viewport, buffer } = scroller;\n const element = viewport.findItemElementById(item.nodeId);\n if (!element) {\n return false;\n }\n item.element = element as HTMLElement;\n item.makeVisible();\n item.setSize(buffer.getSizeByIndex(item.$index));\n buffer.cacheItem(item);\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/processes/render.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Item } from '../classes/item';\r\n\r\nexport default class Render extends BaseProcessFactory(CommonProcess.render) {\r\n static run(scroller: Scroller): void {\r\n const { workflow, state, viewport, routines } = scroller;\r\n const { cycle, render, scroll, fetch } = state;\r\n scroller.logger.stat('before new items render');\r\n if (scroll.positionBeforeAsync === null) {\r\n scroll.positionBeforeAsync = viewport.scrollPosition;\r\n }\r\n render.cancel = routines.render(\r\n () => {\r\n render.cancel = null;\r\n if (Render.doRender(scroller)) {\r\n workflow.call({\r\n process: Render.process,\r\n status: render.noSize ? ProcessStatus.done : ProcessStatus.next,\r\n payload: { process: cycle.initiator }\r\n });\r\n } else {\r\n workflow.call({\r\n process: Render.process,\r\n status: ProcessStatus.error,\r\n payload: { error: 'Can not associate item with element' }\r\n });\r\n }\r\n },\r\n { items: fetch.items.map(i => i.get()) }\r\n );\r\n }\r\n\r\n static doRender(scroller: Scroller): boolean {\r\n const { state, viewport, buffer, logger } = scroller;\r\n const { fetch, render } = state;\r\n render.positionBefore = viewport.scrollPosition;\r\n if (!fetch.isCheck) {\r\n render.sizeBefore = viewport.getScrollableSize();\r\n if (!fetch.items.every(item => Render.processElement(scroller, item))) {\r\n return false;\r\n }\r\n }\r\n buffer.checkDefaultSize();\r\n render.sizeAfter = viewport.getScrollableSize();\r\n logger.stat('after new items render');\r\n logger.log(() => (render.noSize ? 'viewport size has not been changed' : void 0));\r\n return true;\r\n }\r\n\r\n static processElement(scroller: Scroller, item: Item): boolean {\r\n const { viewport, buffer } = scroller;\r\n const element = viewport.findItemElementById(item.nodeId);\r\n if (!element) {\r\n return false;\r\n }\r\n item.element = element as HTMLElement;\r\n item.makeVisible();\r\n item.setSize(buffer.getSizeByIndex(item.$index));\r\n buffer.cacheItem(item);\r\n return true;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/processes/scroll.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Direction } from '../inputs/index';\nimport { ScrollEventData, ScrollerWorkflow } from '../interfaces/index';\n\nexport default class Scroll extends BaseProcessFactory(CommonProcess.scroll) {\n static run(scroller: Scroller, _payload?: { event?: Event }): void {\n const { workflow, viewport } = scroller;\n const position = viewport.scrollPosition;\n\n if (Scroll.onSynthetic(scroller, position)) {\n return;\n }\n\n Scroll.onThrottle(scroller, position, () => Scroll.onScroll(scroller, workflow));\n }\n\n static onSynthetic(scroller: Scroller, position: number): boolean {\n const { scroll } = scroller.state;\n const synthPos = scroll.syntheticPosition;\n if (synthPos !== null) {\n if (scroll.syntheticFulfill) {\n scroll.syntheticPosition = null;\n }\n if (!scroll.syntheticFulfill || synthPos === position) {\n scroller.logger.log(() => [\n 'skipping scroll',\n position,\n `[${scroll.syntheticFulfill ? '' : 'pre-'}synthetic]`\n ]);\n return true;\n }\n scroller.logger.log(() => [\n 'synthetic scroll has been fulfilled:',\n position,\n position < synthPos ? '<' : '>',\n synthPos\n ]);\n }\n return false;\n }\n\n static onThrottle(scroller: Scroller, position: number, done: () => void): void {\n const { state, settings, logger } = scroller;\n const { scroll } = state;\n scroll.current = Scroll.getScrollEvent(position, scroll.previous);\n const { direction, time } = scroll.current;\n const timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;\n const delta = settings.throttle - timeDiff;\n const shouldDelay = isFinite(delta) && delta > 0;\n const alreadyDelayed = !!scroll.scrollTimer;\n logger.log(() => [\n direction === Direction.backward ? '\\u2934' : '\\u2935',\n position,\n shouldDelay ? timeDiff + 'ms' : '0ms',\n shouldDelay ? (alreadyDelayed ? 'delayed' : `/ ${delta}ms delay`) : ''\n ]);\n if (!shouldDelay) {\n if (scroll.scrollTimer) {\n clearTimeout(scroll.scrollTimer);\n scroll.scrollTimer = null;\n }\n done();\n return;\n }\n if (!alreadyDelayed) {\n scroll.scrollTimer = setTimeout(() => {\n logger.log(() => {\n const curr = Scroll.getScrollEvent(scroller.viewport.scrollPosition, scroll.current);\n return [\n curr.direction === Direction.backward ? '\\u2934' : '\\u2935',\n curr.position,\n curr.time - time + 'ms',\n 'triggered by timer set on',\n position\n ];\n });\n scroll.scrollTimer = null;\n done();\n }, delta);\n }\n }\n\n static getScrollEvent(position: number, previous: ScrollEventData | null): ScrollEventData {\n const time = Number(new Date());\n let direction: Direction | null = Direction.forward;\n if (previous) {\n if (position === previous.position) {\n direction = previous.direction;\n } else if (position < previous.position) {\n direction = Direction.backward;\n }\n }\n return { position, direction, time };\n }\n\n static onScroll(scroller: Scroller, workflow: ScrollerWorkflow): void {\n const { scroll, cycle } = scroller.state;\n scroll.previous = { ...(scroll.current as ScrollEventData) };\n scroll.current = null;\n\n if (cycle.busy.get()) {\n scroller.logger.log(() => [\n 'skipping scroll',\n (scroll.previous as ScrollEventData).position,\n '[pending]'\n ]);\n return;\n }\n\n workflow.call({\n process: Scroll.process,\n status: ProcessStatus.next\n });\n }\n}\n"]}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/processes/scroll.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;IAAoC,0BAAwC;IAA5E;;IA8GA,CAAC;IA7GQ,UAAG,GAAV,UAAW,QAAkB,EAAE,QAA4B;QACjD,IAAA,QAAQ,GAAe,QAAQ,SAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAc;QACxC,IAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;QAEzC,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAnC,CAAmC,CAAC,CAAC;IACnF,CAAC;IAEM,kBAAW,GAAlB,UAAmB,QAAkB,EAAE,QAAgB;QAC7C,IAAA,MAAM,GAAK,QAAQ,CAAC,KAAK,OAAnB,CAAoB;QAClC,IAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACtD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA;oBACxB,iBAAiB;oBACjB,QAAQ;oBACR,WAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,eAAY;iBACtD,EAJyB,CAIzB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA;gBACxB,sCAAsC;gBACtC,QAAQ;gBACR,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBAC/B,QAAQ;aACT,EALyB,CAKzB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,iBAAU,GAAjB,UAAkB,QAAkB,EAAE,QAAgB,EAAE,IAAgB;QAC9D,IAAA,KAAK,GAAuB,QAAQ,MAA/B,EAAE,QAAQ,GAAa,QAAQ,SAArB,EAAE,MAAM,GAAK,QAAQ,OAAb,CAAc;QACrC,IAAA,MAAM,GAAK,KAAK,OAAV,CAAW;QACzB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAA,KAAsB,MAAM,CAAC,OAAO,EAAlC,SAAS,eAAA,EAAE,IAAI,UAAmB,CAAC;QAC3C,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1E,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3C,IAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACjD,IAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA;YACf,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACtD,QAAQ;YACR,WAAW,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK;YACrC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAK,KAAK,aAAU,CAAC,CAAC,CAAC,CAAC,EAAE;SACvE,EALgB,CAKhB,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACjC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC;YACD,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC;oBACT,IAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBACrF,OAAO;wBACL,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;wBAC3D,IAAI,CAAC,QAAQ;wBACb,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;wBACvB,2BAA2B;wBAC3B,QAAQ;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC1B,IAAI,EAAE,CAAC;YACT,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IAEM,qBAAc,GAArB,UAAsB,QAAgB,EAAE,QAAgC;QACtE,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAChC,IAAI,SAAS,GAAqB,SAAS,CAAC,OAAO,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACnC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YACjC,CAAC;iBAAM,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACxC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,UAAA,EAAE,SAAS,WAAA,EAAE,IAAI,MAAA,EAAE,CAAC;IACvC,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,QAA0B;QACtD,IAAA,KAAoB,QAAQ,CAAC,KAAK,EAAhC,MAAM,YAAA,EAAE,KAAK,WAAmB,CAAC;QACzC,MAAM,CAAC,QAAQ,gBAAS,MAAM,CAAC,OAA2B,CAAE,CAAC;QAC7D,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAEtB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA;gBACxB,iBAAiB;gBAChB,MAAM,CAAC,QAA4B,CAAC,QAAQ;gBAC7C,WAAW;aACZ,EAJyB,CAIzB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IACH,aAAC;AAAD,CAAC,AA9GD,CAAoC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,GA8G3E","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\nimport { Direction } from '../inputs/index';\r\nimport { ScrollEventData, ScrollerWorkflow } from '../interfaces/index';\r\n\r\nexport default class Scroll extends BaseProcessFactory(CommonProcess.scroll) {\r\n static run(scroller: Scroller, _payload?: { event?: Event }): void {\r\n const { workflow, viewport } = scroller;\r\n const position = viewport.scrollPosition;\r\n\r\n if (Scroll.onSynthetic(scroller, position)) {\r\n return;\r\n }\r\n\r\n Scroll.onThrottle(scroller, position, () => Scroll.onScroll(scroller, workflow));\r\n }\r\n\r\n static onSynthetic(scroller: Scroller, position: number): boolean {\r\n const { scroll } = scroller.state;\r\n const synthPos = scroll.syntheticPosition;\r\n if (synthPos !== null) {\r\n if (scroll.syntheticFulfill) {\r\n scroll.syntheticPosition = null;\r\n }\r\n if (!scroll.syntheticFulfill || synthPos === position) {\r\n scroller.logger.log(() => [\r\n 'skipping scroll',\r\n position,\r\n `[${scroll.syntheticFulfill ? '' : 'pre-'}synthetic]`\r\n ]);\r\n return true;\r\n }\r\n scroller.logger.log(() => [\r\n 'synthetic scroll has been fulfilled:',\r\n position,\r\n position < synthPos ? '<' : '>',\r\n synthPos\r\n ]);\r\n }\r\n return false;\r\n }\r\n\r\n static onThrottle(scroller: Scroller, position: number, done: () => void): void {\r\n const { state, settings, logger } = scroller;\r\n const { scroll } = state;\r\n scroll.current = Scroll.getScrollEvent(position, scroll.previous);\r\n const { direction, time } = scroll.current;\r\n const timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;\r\n const delta = settings.throttle - timeDiff;\r\n const shouldDelay = isFinite(delta) && delta > 0;\r\n const alreadyDelayed = !!scroll.scrollTimer;\r\n logger.log(() => [\r\n direction === Direction.backward ? '\\u2934' : '\\u2935',\r\n position,\r\n shouldDelay ? timeDiff + 'ms' : '0ms',\r\n shouldDelay ? (alreadyDelayed ? 'delayed' : `/ ${delta}ms delay`) : ''\r\n ]);\r\n if (!shouldDelay) {\r\n if (scroll.scrollTimer) {\r\n clearTimeout(scroll.scrollTimer);\r\n scroll.scrollTimer = null;\r\n }\r\n done();\r\n return;\r\n }\r\n if (!alreadyDelayed) {\r\n scroll.scrollTimer = setTimeout(() => {\r\n logger.log(() => {\r\n const curr = Scroll.getScrollEvent(scroller.viewport.scrollPosition, scroll.current);\r\n return [\r\n curr.direction === Direction.backward ? '\\u2934' : '\\u2935',\r\n curr.position,\r\n curr.time - time + 'ms',\r\n 'triggered by timer set on',\r\n position\r\n ];\r\n });\r\n scroll.scrollTimer = null;\r\n done();\r\n }, delta);\r\n }\r\n }\r\n\r\n static getScrollEvent(position: number, previous: ScrollEventData | null): ScrollEventData {\r\n const time = Number(new Date());\r\n let direction: Direction | null = Direction.forward;\r\n if (previous) {\r\n if (position === previous.position) {\r\n direction = previous.direction;\r\n } else if (position < previous.position) {\r\n direction = Direction.backward;\r\n }\r\n }\r\n return { position, direction, time };\r\n }\r\n\r\n static onScroll(scroller: Scroller, workflow: ScrollerWorkflow): void {\r\n const { scroll, cycle } = scroller.state;\r\n scroll.previous = { ...(scroll.current as ScrollEventData) };\r\n scroll.current = null;\r\n\r\n if (cycle.busy.get()) {\r\n scroller.logger.log(() => [\r\n 'skipping scroll',\r\n (scroll.previous as ScrollEventData).position,\r\n '[pending]'\r\n ]);\r\n return;\r\n }\r\n\r\n workflow.call({\r\n process: Scroll.process,\r\n status: ProcessStatus.next\r\n });\r\n }\r\n}\r\n"]}