vscroll 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/bundles/vscroll.esm5.js +3 -3
  2. package/dist/bundles/vscroll.esm5.js.map +1 -1
  3. package/dist/bundles/vscroll.esm5.min.js +2 -2
  4. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  5. package/dist/bundles/vscroll.esm6.js +3 -3
  6. package/dist/bundles/vscroll.esm6.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.min.js +2 -2
  8. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  9. package/dist/bundles/vscroll.umd.js +4 -4
  10. package/dist/bundles/vscroll.umd.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.min.js +2 -2
  12. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  13. package/dist/esm2015/classes/adapter/context.js.map +1 -1
  14. package/dist/esm2015/classes/adapter/props.js +1 -1
  15. package/dist/esm2015/classes/adapter/props.js.map +1 -1
  16. package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
  17. package/dist/esm2015/classes/adapter.js.map +1 -1
  18. package/dist/esm2015/classes/buffer/cache.js.map +1 -1
  19. package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
  20. package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
  21. package/dist/esm2015/classes/buffer.js.map +1 -1
  22. package/dist/esm2015/classes/datasource.js.map +1 -1
  23. package/dist/esm2015/classes/domRoutines.js.map +1 -1
  24. package/dist/esm2015/classes/item.js.map +1 -1
  25. package/dist/esm2015/classes/logger.js.map +1 -1
  26. package/dist/esm2015/classes/paddings.js.map +1 -1
  27. package/dist/esm2015/classes/reactive.js.map +1 -1
  28. package/dist/esm2015/classes/settings.js.map +1 -1
  29. package/dist/esm2015/classes/state/clip.js.map +1 -1
  30. package/dist/esm2015/classes/state/cycle.js.map +1 -1
  31. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  32. package/dist/esm2015/classes/state/render.js.map +1 -1
  33. package/dist/esm2015/classes/state/scroll.js.map +1 -1
  34. package/dist/esm2015/classes/state.js.map +1 -1
  35. package/dist/esm2015/classes/viewport.js.map +1 -1
  36. package/dist/esm2015/index.js.map +1 -1
  37. package/dist/esm2015/inputs/adapter.js.map +1 -1
  38. package/dist/esm2015/inputs/common.js.map +1 -1
  39. package/dist/esm2015/inputs/datasource.js.map +1 -1
  40. package/dist/esm2015/inputs/index.js.map +1 -1
  41. package/dist/esm2015/inputs/settings.js.map +1 -1
  42. package/dist/esm2015/inputs/validation.js.map +1 -1
  43. package/dist/esm2015/inputs/workflow.js.map +1 -1
  44. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  45. package/dist/esm2015/interfaces/datasource.js.map +1 -1
  46. package/dist/esm2015/interfaces/index.js.map +1 -1
  47. package/dist/esm2015/interfaces/item.js.map +1 -1
  48. package/dist/esm2015/interfaces/process.js.map +1 -1
  49. package/dist/esm2015/interfaces/routines.js.map +1 -1
  50. package/dist/esm2015/interfaces/settings.js.map +1 -1
  51. package/dist/esm2015/interfaces/state.js.map +1 -1
  52. package/dist/esm2015/interfaces/validation.js.map +1 -1
  53. package/dist/esm2015/interfaces/workflow.js.map +1 -1
  54. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  55. package/dist/esm2015/processes/adapter/check.js.map +1 -1
  56. package/dist/esm2015/processes/adapter/clip.js.map +1 -1
  57. package/dist/esm2015/processes/adapter/fix.js.map +1 -1
  58. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  59. package/dist/esm2015/processes/adapter/pause.js.map +1 -1
  60. package/dist/esm2015/processes/adapter/reload.js.map +1 -1
  61. package/dist/esm2015/processes/adapter/remove.js.map +1 -1
  62. package/dist/esm2015/processes/adapter/replace.js.map +1 -1
  63. package/dist/esm2015/processes/adapter/reset.js.map +1 -1
  64. package/dist/esm2015/processes/adapter/update.js.map +1 -1
  65. package/dist/esm2015/processes/adjust.js.map +1 -1
  66. package/dist/esm2015/processes/clip.js.map +1 -1
  67. package/dist/esm2015/processes/end.js.map +1 -1
  68. package/dist/esm2015/processes/fetch.js.map +1 -1
  69. package/dist/esm2015/processes/index.js.map +1 -1
  70. package/dist/esm2015/processes/init.js.map +1 -1
  71. package/dist/esm2015/processes/misc/base.js.map +1 -1
  72. package/dist/esm2015/processes/misc/enums.js.map +1 -1
  73. package/dist/esm2015/processes/misc/index.js.map +1 -1
  74. package/dist/esm2015/processes/postFetch.js.map +1 -1
  75. package/dist/esm2015/processes/preClip.js.map +1 -1
  76. package/dist/esm2015/processes/preFetch.js.map +1 -1
  77. package/dist/esm2015/processes/render.js.map +1 -1
  78. package/dist/esm2015/processes/scroll.js.map +1 -1
  79. package/dist/esm2015/processes/start.js.map +1 -1
  80. package/dist/esm2015/scroller.js.map +1 -1
  81. package/dist/esm2015/version.js +1 -1
  82. package/dist/esm2015/version.js.map +1 -1
  83. package/dist/esm2015/workflow-transducer.js.map +1 -1
  84. package/dist/esm2015/workflow.js.map +1 -1
  85. package/dist/esm5/classes/adapter/context.js.map +1 -1
  86. package/dist/esm5/classes/adapter/props.js +1 -1
  87. package/dist/esm5/classes/adapter/props.js.map +1 -1
  88. package/dist/esm5/classes/adapter/wanted.js.map +1 -1
  89. package/dist/esm5/classes/adapter.js.map +1 -1
  90. package/dist/esm5/classes/buffer/cache.js.map +1 -1
  91. package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
  92. package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
  93. package/dist/esm5/classes/buffer.js.map +1 -1
  94. package/dist/esm5/classes/datasource.js.map +1 -1
  95. package/dist/esm5/classes/domRoutines.js.map +1 -1
  96. package/dist/esm5/classes/item.js.map +1 -1
  97. package/dist/esm5/classes/logger.js.map +1 -1
  98. package/dist/esm5/classes/paddings.js.map +1 -1
  99. package/dist/esm5/classes/reactive.js.map +1 -1
  100. package/dist/esm5/classes/settings.js.map +1 -1
  101. package/dist/esm5/classes/state/clip.js.map +1 -1
  102. package/dist/esm5/classes/state/cycle.js.map +1 -1
  103. package/dist/esm5/classes/state/fetch.js.map +1 -1
  104. package/dist/esm5/classes/state/render.js.map +1 -1
  105. package/dist/esm5/classes/state/scroll.js.map +1 -1
  106. package/dist/esm5/classes/state.js.map +1 -1
  107. package/dist/esm5/classes/viewport.js.map +1 -1
  108. package/dist/esm5/index.js.map +1 -1
  109. package/dist/esm5/inputs/adapter.js.map +1 -1
  110. package/dist/esm5/inputs/common.js.map +1 -1
  111. package/dist/esm5/inputs/datasource.js.map +1 -1
  112. package/dist/esm5/inputs/index.js.map +1 -1
  113. package/dist/esm5/inputs/settings.js.map +1 -1
  114. package/dist/esm5/inputs/validation.js.map +1 -1
  115. package/dist/esm5/inputs/workflow.js.map +1 -1
  116. package/dist/esm5/interfaces/adapter.js.map +1 -1
  117. package/dist/esm5/interfaces/datasource.js.map +1 -1
  118. package/dist/esm5/interfaces/index.js.map +1 -1
  119. package/dist/esm5/interfaces/item.js.map +1 -1
  120. package/dist/esm5/interfaces/process.js.map +1 -1
  121. package/dist/esm5/interfaces/routines.js.map +1 -1
  122. package/dist/esm5/interfaces/settings.js.map +1 -1
  123. package/dist/esm5/interfaces/state.js.map +1 -1
  124. package/dist/esm5/interfaces/validation.js.map +1 -1
  125. package/dist/esm5/interfaces/workflow.js.map +1 -1
  126. package/dist/esm5/processes/adapter/append.js.map +1 -1
  127. package/dist/esm5/processes/adapter/check.js.map +1 -1
  128. package/dist/esm5/processes/adapter/clip.js.map +1 -1
  129. package/dist/esm5/processes/adapter/fix.js.map +1 -1
  130. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  131. package/dist/esm5/processes/adapter/pause.js.map +1 -1
  132. package/dist/esm5/processes/adapter/reload.js.map +1 -1
  133. package/dist/esm5/processes/adapter/remove.js.map +1 -1
  134. package/dist/esm5/processes/adapter/replace.js.map +1 -1
  135. package/dist/esm5/processes/adapter/reset.js.map +1 -1
  136. package/dist/esm5/processes/adapter/update.js.map +1 -1
  137. package/dist/esm5/processes/adjust.js.map +1 -1
  138. package/dist/esm5/processes/clip.js.map +1 -1
  139. package/dist/esm5/processes/end.js.map +1 -1
  140. package/dist/esm5/processes/fetch.js.map +1 -1
  141. package/dist/esm5/processes/index.js.map +1 -1
  142. package/dist/esm5/processes/init.js.map +1 -1
  143. package/dist/esm5/processes/misc/base.js.map +1 -1
  144. package/dist/esm5/processes/misc/enums.js.map +1 -1
  145. package/dist/esm5/processes/misc/index.js.map +1 -1
  146. package/dist/esm5/processes/postFetch.js.map +1 -1
  147. package/dist/esm5/processes/preClip.js.map +1 -1
  148. package/dist/esm5/processes/preFetch.js.map +1 -1
  149. package/dist/esm5/processes/render.js.map +1 -1
  150. package/dist/esm5/processes/scroll.js.map +1 -1
  151. package/dist/esm5/processes/start.js.map +1 -1
  152. package/dist/esm5/scroller.js.map +1 -1
  153. package/dist/esm5/version.js +1 -1
  154. package/dist/esm5/version.js.map +1 -1
  155. package/dist/esm5/workflow-transducer.js.map +1 -1
  156. package/dist/esm5/workflow.js.map +1 -1
  157. package/dist/typings/index.d.ts +1 -1
  158. package/dist/typings/interfaces/index.d.ts +10 -10
  159. package/package.json +71 -72
@@ -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":"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","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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/processes/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,GAAG,CAAC,QAAkB;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEhD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\n\nexport default class Start extends BaseProcessFactory(CommonProcess.start) {\n static run(scroller: Scroller): void {\n const payload = scroller.state.startInnerLoop();\n\n scroller.workflow.call({\n process: Start.process,\n status: ProcessStatus.next,\n payload\n });\n }\n}\n"]}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/processes/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,GAAG,CAAC,QAAkB;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEhD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\r\nimport { Scroller } from '../scroller';\r\n\r\nexport default class Start extends BaseProcessFactory(CommonProcess.start) {\r\n static run(scroller: Scroller): void {\r\n const payload = scroller.state.startInnerLoop();\r\n\r\n scroller.workflow.call({\r\n process: Start.process,\r\n status: ProcessStatus.next,\r\n payload\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scroller.js","sourceRoot":"","sources":["../../src/scroller.ts"],"names":[],"mappings":"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","sourcesContent":["import { DatasourceGeneric, makeDatasource } from './classes/datasource';\nimport { Settings } from './classes/settings';\nimport { Logger } from './classes/logger';\nimport { Routines } from './classes/domRoutines';\nimport { Viewport } from './classes/viewport';\nimport { Buffer } from './classes/buffer';\nimport { State } from './classes/state';\nimport { Adapter } from './classes/adapter';\nimport { Reactive } from './classes/reactive';\nimport { validate, DATASOURCE } from './inputs/index';\nimport core from './version';\nimport {\n ScrollerWorkflow,\n IDatasource,\n IDatasourceConstructed,\n ScrollerParams,\n IPackages,\n ProcessSubject\n} from './interfaces/index';\n\nexport const INVALID_DATASOURCE_PREFIX = 'Invalid datasource:';\n\nlet instanceCount = 0;\n\nexport class Scroller<Data = unknown> {\n public datasource: IDatasourceConstructed<Data>;\n public workflow: ScrollerWorkflow<Data>;\n\n public settings: Settings<Data>;\n public logger: Logger;\n public routines: Routines;\n public viewport: Viewport;\n public buffer: Buffer<Data>;\n public state: State;\n public adapter: Adapter<Data>;\n\n constructor({\n datasource,\n consumer,\n element,\n workflow,\n Routines: CustomRoutines,\n scroller\n }: ScrollerParams<Data>) {\n const { get } = validate(datasource, DATASOURCE).params;\n if (!get.isValid) {\n throw new Error(`${INVALID_DATASOURCE_PREFIX} ${get.errors[0]}`);\n }\n\n const packageInfo = scroller ? scroller.state.packageInfo : ({ consumer, core } as IPackages);\n element = scroller ? scroller.routines.element : (element as HTMLElement);\n workflow = scroller ? scroller.workflow : (workflow as ScrollerWorkflow<Data>);\n\n // In general, custom Routines must extend the original Routines. If not, we provide implicit extending.\n // This is undocumented feature. It should be removed in vscroll v2.\n if (CustomRoutines && !(CustomRoutines.prototype instanceof Routines)) {\n class __Routines extends Routines {}\n Object.getOwnPropertyNames(CustomRoutines.prototype)\n .filter(method => method !== 'constructor')\n .forEach(\n method =>\n ((__Routines.prototype as unknown as Record<string, unknown>)[method] =\n CustomRoutines?.prototype[method])\n );\n CustomRoutines = __Routines;\n }\n\n this.workflow = workflow;\n this.settings = new Settings<Data>(\n datasource.settings,\n datasource.devSettings,\n ++instanceCount\n );\n this.logger = new Logger(this as Scroller, packageInfo, datasource.adapter);\n this.routines = new (CustomRoutines || Routines)(element, this.settings);\n this.state = new State(packageInfo, this.settings, scroller ? scroller.state : void 0);\n this.buffer = new Buffer<Data>(this.settings, workflow.onDataChanged, this.logger);\n this.viewport = new Viewport(this.settings, this.routines, this.state, this.logger);\n this.logger.object('vscroll settings object', this.settings, true);\n\n this.initDatasource(datasource, scroller);\n }\n\n initDatasource(datasource: IDatasource<Data>, scroller?: Scroller<Data>): void {\n if (scroller) {\n // scroller re-instantiating case\n this.datasource = datasource as IDatasourceConstructed<Data>;\n this.adapter = scroller.adapter;\n // todo: what about (this.settings.adapter !== scroller.setting.adapter) case?\n return;\n }\n // scroller is being instantiated for the first time\n const constructed = datasource instanceof DatasourceGeneric;\n const mockAdapter = !constructed && !this.settings.adapter;\n if (constructed) {\n // datasource is already instantiated\n this.datasource = datasource as IDatasourceConstructed<Data>;\n } else {\n // datasource as POJO\n const DS = makeDatasource(() => ({ mock: mockAdapter }));\n this.datasource = new DS<Data>(datasource);\n if (this.settings.adapter) {\n datasource.adapter = this.datasource.adapter;\n }\n }\n const publicContext = !mockAdapter ? this.datasource.adapter : null;\n this.adapter = new Adapter<Data>(publicContext, () => this.workflow, this.logger);\n }\n\n init(adapterRun$?: Reactive<ProcessSubject>): void {\n this.viewport.reset(this.buffer.startIndex);\n this.logger.stat('initialization');\n this.adapter.initialize({\n buffer: this.buffer,\n state: this.state,\n viewport: this.viewport,\n logger: this.logger,\n adapterRun$,\n getWorkflow: () => this.workflow\n });\n }\n\n dispose(forever?: boolean): void {\n this.logger.log(() => 'disposing scroller' + (forever ? ' (forever)' : ''));\n if (forever) {\n // Adapter is not re-instantiated on reset\n this.adapter.dispose();\n }\n this.buffer.dispose();\n this.state.dispose();\n }\n\n finalize(): void {}\n}\n"]}
1
+ {"version":3,"file":"scroller.js","sourceRoot":"","sources":["../../src/scroller.ts"],"names":[],"mappings":"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","sourcesContent":["import { DatasourceGeneric, makeDatasource } from './classes/datasource';\r\nimport { Settings } from './classes/settings';\r\nimport { Logger } from './classes/logger';\r\nimport { Routines } from './classes/domRoutines';\r\nimport { Viewport } from './classes/viewport';\r\nimport { Buffer } from './classes/buffer';\r\nimport { State } from './classes/state';\r\nimport { Adapter } from './classes/adapter';\r\nimport { Reactive } from './classes/reactive';\r\nimport { validate, DATASOURCE } from './inputs/index';\r\nimport core from './version';\r\nimport {\r\n ScrollerWorkflow,\r\n IDatasource,\r\n IDatasourceConstructed,\r\n ScrollerParams,\r\n IPackages,\r\n ProcessSubject\r\n} from './interfaces/index';\r\n\r\nexport const INVALID_DATASOURCE_PREFIX = 'Invalid datasource:';\r\n\r\nlet instanceCount = 0;\r\n\r\nexport class Scroller<Data = unknown> {\r\n public datasource: IDatasourceConstructed<Data>;\r\n public workflow: ScrollerWorkflow<Data>;\r\n\r\n public settings: Settings<Data>;\r\n public logger: Logger;\r\n public routines: Routines;\r\n public viewport: Viewport;\r\n public buffer: Buffer<Data>;\r\n public state: State;\r\n public adapter: Adapter<Data>;\r\n\r\n constructor({\r\n datasource,\r\n consumer,\r\n element,\r\n workflow,\r\n Routines: CustomRoutines,\r\n scroller\r\n }: ScrollerParams<Data>) {\r\n const { get } = validate(datasource, DATASOURCE).params;\r\n if (!get.isValid) {\r\n throw new Error(`${INVALID_DATASOURCE_PREFIX} ${get.errors[0]}`);\r\n }\r\n\r\n const packageInfo = scroller ? scroller.state.packageInfo : ({ consumer, core } as IPackages);\r\n element = scroller ? scroller.routines.element : (element as HTMLElement);\r\n workflow = scroller ? scroller.workflow : (workflow as ScrollerWorkflow<Data>);\r\n\r\n // In general, custom Routines must extend the original Routines. If not, we provide implicit extending.\r\n // This is undocumented feature. It should be removed in vscroll v2.\r\n if (CustomRoutines && !(CustomRoutines.prototype instanceof Routines)) {\r\n class __Routines extends Routines {}\r\n Object.getOwnPropertyNames(CustomRoutines.prototype)\r\n .filter(method => method !== 'constructor')\r\n .forEach(\r\n method =>\r\n ((__Routines.prototype as unknown as Record<string, unknown>)[method] =\r\n CustomRoutines?.prototype[method])\r\n );\r\n CustomRoutines = __Routines;\r\n }\r\n\r\n this.workflow = workflow;\r\n this.settings = new Settings<Data>(\r\n datasource.settings,\r\n datasource.devSettings,\r\n ++instanceCount\r\n );\r\n this.logger = new Logger(this as Scroller, packageInfo, datasource.adapter);\r\n this.routines = new (CustomRoutines || Routines)(element, this.settings);\r\n this.state = new State(packageInfo, this.settings, scroller ? scroller.state : void 0);\r\n this.buffer = new Buffer<Data>(this.settings, workflow.onDataChanged, this.logger);\r\n this.viewport = new Viewport(this.settings, this.routines, this.state, this.logger);\r\n this.logger.object('vscroll settings object', this.settings, true);\r\n\r\n this.initDatasource(datasource, scroller);\r\n }\r\n\r\n initDatasource(datasource: IDatasource<Data>, scroller?: Scroller<Data>): void {\r\n if (scroller) {\r\n // scroller re-instantiating case\r\n this.datasource = datasource as IDatasourceConstructed<Data>;\r\n this.adapter = scroller.adapter;\r\n // todo: what about (this.settings.adapter !== scroller.setting.adapter) case?\r\n return;\r\n }\r\n // scroller is being instantiated for the first time\r\n const constructed = datasource instanceof DatasourceGeneric;\r\n const mockAdapter = !constructed && !this.settings.adapter;\r\n if (constructed) {\r\n // datasource is already instantiated\r\n this.datasource = datasource as IDatasourceConstructed<Data>;\r\n } else {\r\n // datasource as POJO\r\n const DS = makeDatasource(() => ({ mock: mockAdapter }));\r\n this.datasource = new DS<Data>(datasource);\r\n if (this.settings.adapter) {\r\n datasource.adapter = this.datasource.adapter;\r\n }\r\n }\r\n const publicContext = !mockAdapter ? this.datasource.adapter : null;\r\n this.adapter = new Adapter<Data>(publicContext, () => this.workflow, this.logger);\r\n }\r\n\r\n init(adapterRun$?: Reactive<ProcessSubject>): void {\r\n this.viewport.reset(this.buffer.startIndex);\r\n this.logger.stat('initialization');\r\n this.adapter.initialize({\r\n buffer: this.buffer,\r\n state: this.state,\r\n viewport: this.viewport,\r\n logger: this.logger,\r\n adapterRun$,\r\n getWorkflow: () => this.workflow\r\n });\r\n }\r\n\r\n dispose(forever?: boolean): void {\r\n this.logger.log(() => 'disposing scroller' + (forever ? ' (forever)' : ''));\r\n if (forever) {\r\n // Adapter is not re-instantiated on reset\r\n this.adapter.dispose();\r\n }\r\n this.buffer.dispose();\r\n this.state.dispose();\r\n }\r\n\r\n finalize(): void {}\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  name: 'vscroll',
3
- version: '1.8.0'
3
+ version: '1.8.1'
4
4
  };
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.8.0'\n};\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.8.1'\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-transducer.js","sourceRoot":"","sources":["../../src/workflow-transducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CommonProcess,\n AdapterProcess,\n ProcessStatus as Status,\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} from './processes/index';\n\nimport { StateMachineParams } from './interfaces/index';\n\nexport const runStateMachine = ({\n input: { process, status, payload = {} },\n methods: { run, interrupt, done, onError }\n}: StateMachineParams): void => {\n if (status === Status.error) {\n onError(process, payload);\n if (!process.startsWith('adapter')) {\n run(End)(payload);\n }\n return;\n }\n const { options } = payload;\n switch (process) {\n case CommonProcess.init:\n if (status === Status.start) {\n // App start\n run(Init)(process);\n }\n if (status === Status.next) {\n run(Start)();\n }\n break;\n case CommonProcess.scroll:\n if (status === Status.start) {\n run(Scroll)(payload);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.reset:\n case AdapterProcess.reload:\n if (status === Status.start) {\n if (process === AdapterProcess.reset) {\n run(Reset)(options);\n } else {\n run(Reload)(options);\n }\n }\n if (status === Status.next) {\n interrupt({ process, ...payload });\n if (payload.finalize) {\n run(End)();\n } else {\n run(Init)(process);\n }\n }\n break;\n case AdapterProcess.append:\n case AdapterProcess.prepend:\n if (status === Status.start) {\n run(Append)({ process, options });\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.check:\n if (status === Status.start) {\n run(Check)();\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.remove:\n if (status === Status.start) {\n run(Remove)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.clip:\n if (status === Status.start) {\n run(UserClip)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.insert:\n if (status === Status.start) {\n run(Insert)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.replace:\n if (status === Status.start) {\n run(Replace)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.update:\n if (status === Status.start) {\n run(Update)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.pause:\n if (status === Status.start) {\n run(Pause)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case AdapterProcess.fix:\n if (status === Status.start) {\n run(Fix)(options);\n }\n if (status === Status.next) {\n run(Init)(process);\n }\n break;\n case CommonProcess.start:\n switch (payload.process) {\n case AdapterProcess.append:\n case AdapterProcess.insert:\n case AdapterProcess.replace:\n case AdapterProcess.update:\n if (payload.doRender) {\n run(Render)();\n } else {\n run(Adjust)();\n }\n break;\n case AdapterProcess.check:\n run(Render)();\n break;\n case AdapterProcess.remove:\n run(Adjust)();\n break;\n default:\n run(PreFetch)();\n }\n break;\n case CommonProcess.preFetch:\n if (status === Status.next) {\n switch (payload.process) {\n case AdapterProcess.clip:\n run(PreClip)();\n break;\n default:\n run(Fetch)();\n }\n }\n if (status === Status.done) {\n run(End)();\n }\n break;\n case CommonProcess.fetch:\n run(PostFetch)();\n break;\n case CommonProcess.postFetch:\n if (status === Status.next) {\n run(Render)();\n }\n if (status === Status.done) {\n run(End)();\n }\n break;\n case CommonProcess.render:\n if (status === Status.next) {\n switch (payload.process) {\n case AdapterProcess.append:\n case AdapterProcess.check:\n case AdapterProcess.insert:\n case AdapterProcess.replace:\n case AdapterProcess.update:\n run(Adjust)();\n break;\n default:\n run(PreClip)();\n }\n }\n if (status === Status.done) {\n run(End)();\n }\n break;\n case CommonProcess.preClip:\n if (payload.doClip) {\n run(Clip)();\n } else {\n run(Adjust)();\n }\n break;\n case CommonProcess.clip:\n run(Adjust)();\n break;\n case CommonProcess.adjust:\n run(End)();\n break;\n case CommonProcess.end:\n if (status === Status.next) {\n switch (payload.process) {\n case AdapterProcess.reset:\n case AdapterProcess.reload:\n done();\n run(Init)(payload.process);\n break;\n default:\n run(Start)();\n }\n }\n if (status === Status.done) {\n done();\n }\n break;\n }\n};\n"]}
1
+ {"version":3,"file":"workflow-transducer.js","sourceRoot":"","sources":["../../src/workflow-transducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n CommonProcess,\r\n AdapterProcess,\r\n ProcessStatus as Status,\r\n Init,\r\n Scroll,\r\n Reset,\r\n Reload,\r\n Append,\r\n Check,\r\n Remove,\r\n UserClip,\r\n Insert,\r\n Replace,\r\n Update,\r\n Pause,\r\n Fix,\r\n Start,\r\n PreFetch,\r\n Fetch,\r\n PostFetch,\r\n Render,\r\n PreClip,\r\n Clip,\r\n Adjust,\r\n End\r\n} from './processes/index';\r\n\r\nimport { StateMachineParams } from './interfaces/index';\r\n\r\nexport const runStateMachine = ({\r\n input: { process, status, payload = {} },\r\n methods: { run, interrupt, done, onError }\r\n}: StateMachineParams): void => {\r\n if (status === Status.error) {\r\n onError(process, payload);\r\n if (!process.startsWith('adapter')) {\r\n run(End)(payload);\r\n }\r\n return;\r\n }\r\n const { options } = payload;\r\n switch (process) {\r\n case CommonProcess.init:\r\n if (status === Status.start) {\r\n // App start\r\n run(Init)(process);\r\n }\r\n if (status === Status.next) {\r\n run(Start)();\r\n }\r\n break;\r\n case CommonProcess.scroll:\r\n if (status === Status.start) {\r\n run(Scroll)(payload);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n if (status === Status.start) {\r\n if (process === AdapterProcess.reset) {\r\n run(Reset)(options);\r\n } else {\r\n run(Reload)(options);\r\n }\r\n }\r\n if (status === Status.next) {\r\n interrupt({ process, ...payload });\r\n if (payload.finalize) {\r\n run(End)();\r\n } else {\r\n run(Init)(process);\r\n }\r\n }\r\n break;\r\n case AdapterProcess.append:\r\n case AdapterProcess.prepend:\r\n if (status === Status.start) {\r\n run(Append)({ process, options });\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n if (status === Status.start) {\r\n run(Check)();\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.remove:\r\n if (status === Status.start) {\r\n run(Remove)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.clip:\r\n if (status === Status.start) {\r\n run(UserClip)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.insert:\r\n if (status === Status.start) {\r\n run(Insert)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.replace:\r\n if (status === Status.start) {\r\n run(Replace)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.update:\r\n if (status === Status.start) {\r\n run(Update)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.pause:\r\n if (status === Status.start) {\r\n run(Pause)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.fix:\r\n if (status === Status.start) {\r\n run(Fix)(options);\r\n }\r\n if (status === Status.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case CommonProcess.start:\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n if (payload.doRender) {\r\n run(Render)();\r\n } else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n run(Render)();\r\n break;\r\n case AdapterProcess.remove:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreFetch)();\r\n }\r\n break;\r\n case CommonProcess.preFetch:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.clip:\r\n run(PreClip)();\r\n break;\r\n default:\r\n run(Fetch)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.fetch:\r\n run(PostFetch)();\r\n break;\r\n case CommonProcess.postFetch:\r\n if (status === Status.next) {\r\n run(Render)();\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.render:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.check:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreClip)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.preClip:\r\n if (payload.doClip) {\r\n run(Clip)();\r\n } else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case CommonProcess.clip:\r\n run(Adjust)();\r\n break;\r\n case CommonProcess.adjust:\r\n run(End)();\r\n break;\r\n case CommonProcess.end:\r\n if (status === Status.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n done();\r\n run(Init)(payload.process);\r\n break;\r\n default:\r\n run(Start)();\r\n }\r\n }\r\n if (status === Status.done) {\r\n done();\r\n }\r\n break;\r\n }\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from './scroller';\nimport { runStateMachine } from './workflow-transducer';\nimport { Reactive } from './classes/reactive';\nimport { Item } from './classes/item';\nimport { AdapterProcess, CommonProcess, ProcessStatus as Status } from './processes/index';\nimport { WORKFLOW, validate } from './inputs/index';\nimport {\n WorkflowParams,\n ProcessName,\n ProcessPayload,\n ProcessClass,\n ProcessSubject,\n WorkflowError,\n InterruptParams,\n StateMachineMethods,\n ScrollerWorkflow\n} from './interfaces/index';\n\nexport class Workflow<ItemData = unknown> {\n isInitialized: boolean;\n disposed: boolean;\n initTimer: ReturnType<typeof setTimeout> | null;\n adapterRun$: Reactive<ProcessSubject>;\n cyclesDone: number;\n cyclesDone$: Reactive<number>;\n interruptionCount: number;\n errors: WorkflowError[];\n\n private offScroll: () => void;\n readonly propagateChanges: WorkflowParams<ItemData>['run'];\n readonly stateMachineMethods: StateMachineMethods<ItemData>;\n\n scroller: Scroller<ItemData>;\n\n constructor(params: WorkflowParams<ItemData>) {\n const { element, datasource, consumer, run, Routines } = params;\n\n const validationResult = validate(params, WORKFLOW);\n if (!validationResult.isValid) {\n throw new Error(`Invalid Workflow params: ${validationResult.errors.join(', ')}.`);\n }\n\n this.isInitialized = false;\n this.disposed = false;\n this.initTimer = null;\n this.adapterRun$ = new Reactive();\n this.cyclesDone = 0;\n this.cyclesDone$ = new Reactive<number>(0);\n this.interruptionCount = 0;\n this.errors = [];\n this.offScroll = () => null;\n this.propagateChanges = run;\n this.stateMachineMethods = {\n run: this.runProcess(),\n interrupt: this.interrupt.bind(this),\n done: this.done.bind(this),\n onError: this.onError.bind(this)\n };\n\n this.scroller = new Scroller<ItemData>({\n element,\n datasource,\n consumer,\n workflow: this.getUpdater(),\n Routines\n });\n\n if (this.scroller.settings.initializeDelay) {\n this.initTimer = setTimeout(() => {\n this.initTimer = null;\n this.init();\n }, this.scroller.settings.initializeDelay);\n } else {\n this.init();\n }\n }\n\n init(): void {\n this.scroller.init(this.adapterRun$);\n\n // set up scroll event listener\n const { routines } = this.scroller;\n const onScrollHandler: EventListener = event =>\n this.callWorkflow({\n process: CommonProcess.scroll,\n status: Status.start,\n payload: { event }\n });\n this.offScroll = routines.onScroll(onScrollHandler);\n\n // run the Workflow\n this.isInitialized = true;\n this.callWorkflow({\n process: CommonProcess.init,\n status: Status.start\n });\n }\n\n changeItems(items: Item<ItemData>[]): void {\n this.propagateChanges(items);\n }\n\n callWorkflow(processSubject: ProcessSubject): void {\n if (!this.isInitialized) {\n return;\n }\n const { process, status } = processSubject;\n // if the scroller is paused, any process other than \"pause\" and \"reset\" should be blocked\n if (this.scroller.state.paused.get()) {\n if (![AdapterProcess.pause, AdapterProcess.reset].includes(process as AdapterProcess)) {\n this.scroller.logger.log('scroller is paused: ' + process + ' process is ignored');\n return;\n }\n }\n if (process && process.startsWith('adapter') && status !== Status.next) {\n this.adapterRun$.set(processSubject);\n }\n this.process(processSubject);\n }\n\n getUpdater(): ScrollerWorkflow<ItemData> {\n return {\n call: this.callWorkflow.bind(this),\n onDataChanged: this.changeItems.bind(this)\n };\n }\n\n process(data: ProcessSubject): void {\n const { status, process, payload } = data;\n if (this.scroller.settings.logProcessRun) {\n this.scroller.logger.log(() => {\n const _fire = this.scroller.settings.logColor\n ? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']\n : ['fire'];\n return [..._fire, process, `\"${status}\"`, ...(payload !== void 0 ? [payload] : [])];\n });\n }\n this.scroller.logger.logProcess(data);\n\n if (process === CommonProcess.end) {\n this.scroller.finalize();\n }\n runStateMachine({\n input: data,\n methods: this.stateMachineMethods as StateMachineMethods<unknown>\n });\n }\n\n runProcess() {\n return ({ run, process, name }: ProcessClass) =>\n (...args: unknown[]): void => {\n if (this.scroller.settings.logProcessRun) {\n this.scroller.logger.log(() => {\n const _run = this.scroller.settings.logColor\n ? ['%crun%c', 'color: #333399;', 'color: #000000;']\n : ['run'];\n return [..._run, process || name, ...args];\n });\n }\n run(this.scroller as Scroller, ...args);\n };\n }\n\n onError(process: ProcessName, payload?: ProcessPayload): void {\n const message: string = (payload && String(payload.error)) || '';\n const { time, cycle } = this.scroller.state;\n this.errors.push({\n process,\n message,\n time,\n loop: cycle.loopIdNext\n });\n this.scroller.logger.logError(message);\n }\n\n interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void {\n if (finalize) {\n const { workflow, logger } = this.scroller;\n // we are going to create a new reference for the scroller.workflow object\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\n workflow.call = (_: ProcessSubject) => logger.log('[skip wf call]');\n workflow.call.interrupted = true;\n this.scroller.workflow = this.getUpdater();\n this.interruptionCount++;\n logger.log(\n () => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`\n );\n }\n if (datasource) {\n // Scroller re-initialization case\n const reInit = () => {\n this.scroller.logger.log('new Scroller instantiation');\n const scroller = new Scroller<ItemData>({ datasource, scroller: this.scroller });\n this.scroller.dispose();\n this.scroller = scroller;\n this.scroller.init();\n };\n if (this.scroller.state.cycle.busy.get()) {\n // todo: think about immediate re-initialization even is there are pending processes\n this.scroller.adapter.relax(reInit.bind(this));\n } else {\n reInit();\n }\n }\n }\n\n done(): void {\n const { state, logger } = this.scroller;\n this.cyclesDone++;\n this.cyclesDone$.set(this.cyclesDone);\n logger.logCycle(false);\n state.endWorkflowCycle(this.cyclesDone + 1);\n this.finalize();\n }\n\n dispose(): void {\n this.scroller.logger.log(() => 'disposing workflow');\n if (this.initTimer) {\n clearTimeout(this.initTimer);\n }\n this.offScroll();\n this.adapterRun$.dispose();\n this.cyclesDone$.dispose();\n this.scroller.dispose(true);\n Object.getOwnPropertyNames(this).forEach(prop => {\n delete (this as Record<string, unknown>)[prop];\n });\n this.isInitialized = false;\n this.disposed = true;\n }\n\n finalize(): void {}\n}\n"]}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from './scroller';\r\nimport { runStateMachine } from './workflow-transducer';\r\nimport { Reactive } from './classes/reactive';\r\nimport { Item } from './classes/item';\r\nimport { AdapterProcess, CommonProcess, ProcessStatus as Status } from './processes/index';\r\nimport { WORKFLOW, validate } from './inputs/index';\r\nimport {\r\n WorkflowParams,\r\n ProcessName,\r\n ProcessPayload,\r\n ProcessClass,\r\n ProcessSubject,\r\n WorkflowError,\r\n InterruptParams,\r\n StateMachineMethods,\r\n ScrollerWorkflow\r\n} from './interfaces/index';\r\n\r\nexport class Workflow<ItemData = unknown> {\r\n isInitialized: boolean;\r\n disposed: boolean;\r\n initTimer: ReturnType<typeof setTimeout> | null;\r\n adapterRun$: Reactive<ProcessSubject>;\r\n cyclesDone: number;\r\n cyclesDone$: Reactive<number>;\r\n interruptionCount: number;\r\n errors: WorkflowError[];\r\n\r\n private offScroll: () => void;\r\n readonly propagateChanges: WorkflowParams<ItemData>['run'];\r\n readonly stateMachineMethods: StateMachineMethods<ItemData>;\r\n\r\n scroller: Scroller<ItemData>;\r\n\r\n constructor(params: WorkflowParams<ItemData>) {\r\n const { element, datasource, consumer, run, Routines } = params;\r\n\r\n const validationResult = validate(params, WORKFLOW);\r\n if (!validationResult.isValid) {\r\n throw new Error(`Invalid Workflow params: ${validationResult.errors.join(', ')}.`);\r\n }\r\n\r\n this.isInitialized = false;\r\n this.disposed = false;\r\n this.initTimer = null;\r\n this.adapterRun$ = new Reactive();\r\n this.cyclesDone = 0;\r\n this.cyclesDone$ = new Reactive<number>(0);\r\n this.interruptionCount = 0;\r\n this.errors = [];\r\n this.offScroll = () => null;\r\n this.propagateChanges = run;\r\n this.stateMachineMethods = {\r\n run: this.runProcess(),\r\n interrupt: this.interrupt.bind(this),\r\n done: this.done.bind(this),\r\n onError: this.onError.bind(this)\r\n };\r\n\r\n this.scroller = new Scroller<ItemData>({\r\n element,\r\n datasource,\r\n consumer,\r\n workflow: this.getUpdater(),\r\n Routines\r\n });\r\n\r\n if (this.scroller.settings.initializeDelay) {\r\n this.initTimer = setTimeout(() => {\r\n this.initTimer = null;\r\n this.init();\r\n }, this.scroller.settings.initializeDelay);\r\n } else {\r\n this.init();\r\n }\r\n }\r\n\r\n init(): void {\r\n this.scroller.init(this.adapterRun$);\r\n\r\n // set up scroll event listener\r\n const { routines } = this.scroller;\r\n const onScrollHandler: EventListener = event =>\r\n this.callWorkflow({\r\n process: CommonProcess.scroll,\r\n status: Status.start,\r\n payload: { event }\r\n });\r\n this.offScroll = routines.onScroll(onScrollHandler);\r\n\r\n // run the Workflow\r\n this.isInitialized = true;\r\n this.callWorkflow({\r\n process: CommonProcess.init,\r\n status: Status.start\r\n });\r\n }\r\n\r\n changeItems(items: Item<ItemData>[]): void {\r\n this.propagateChanges(items);\r\n }\r\n\r\n callWorkflow(processSubject: ProcessSubject): void {\r\n if (!this.isInitialized) {\r\n return;\r\n }\r\n const { process, status } = processSubject;\r\n // if the scroller is paused, any process other than \"pause\" and \"reset\" should be blocked\r\n if (this.scroller.state.paused.get()) {\r\n if (![AdapterProcess.pause, AdapterProcess.reset].includes(process as AdapterProcess)) {\r\n this.scroller.logger.log('scroller is paused: ' + process + ' process is ignored');\r\n return;\r\n }\r\n }\r\n if (process && process.startsWith('adapter') && status !== Status.next) {\r\n this.adapterRun$.set(processSubject);\r\n }\r\n this.process(processSubject);\r\n }\r\n\r\n getUpdater(): ScrollerWorkflow<ItemData> {\r\n return {\r\n call: this.callWorkflow.bind(this),\r\n onDataChanged: this.changeItems.bind(this)\r\n };\r\n }\r\n\r\n process(data: ProcessSubject): void {\r\n const { status, process, payload } = data;\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(() => {\r\n const _fire = this.scroller.settings.logColor\r\n ? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']\r\n : ['fire'];\r\n return [..._fire, process, `\"${status}\"`, ...(payload !== void 0 ? [payload] : [])];\r\n });\r\n }\r\n this.scroller.logger.logProcess(data);\r\n\r\n if (process === CommonProcess.end) {\r\n this.scroller.finalize();\r\n }\r\n runStateMachine({\r\n input: data,\r\n methods: this.stateMachineMethods as StateMachineMethods<unknown>\r\n });\r\n }\r\n\r\n runProcess() {\r\n return ({ run, process, name }: ProcessClass) =>\r\n (...args: unknown[]): void => {\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(() => {\r\n const _run = this.scroller.settings.logColor\r\n ? ['%crun%c', 'color: #333399;', 'color: #000000;']\r\n : ['run'];\r\n return [..._run, process || name, ...args];\r\n });\r\n }\r\n run(this.scroller as Scroller, ...args);\r\n };\r\n }\r\n\r\n onError(process: ProcessName, payload?: ProcessPayload): void {\r\n const message: string = (payload && String(payload.error)) || '';\r\n const { time, cycle } = this.scroller.state;\r\n this.errors.push({\r\n process,\r\n message,\r\n time,\r\n loop: cycle.loopIdNext\r\n });\r\n this.scroller.logger.logError(message);\r\n }\r\n\r\n interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void {\r\n if (finalize) {\r\n const { workflow, logger } = this.scroller;\r\n // we are going to create a new reference for the scroller.workflow object\r\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\r\n workflow.call = (_: ProcessSubject) => logger.log('[skip wf call]');\r\n workflow.call.interrupted = true;\r\n this.scroller.workflow = this.getUpdater();\r\n this.interruptionCount++;\r\n logger.log(\r\n () => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`\r\n );\r\n }\r\n if (datasource) {\r\n // Scroller re-initialization case\r\n const reInit = () => {\r\n this.scroller.logger.log('new Scroller instantiation');\r\n const scroller = new Scroller<ItemData>({ datasource, scroller: this.scroller });\r\n this.scroller.dispose();\r\n this.scroller = scroller;\r\n this.scroller.init();\r\n };\r\n if (this.scroller.state.cycle.busy.get()) {\r\n // todo: think about immediate re-initialization even is there are pending processes\r\n this.scroller.adapter.relax(reInit.bind(this));\r\n } else {\r\n reInit();\r\n }\r\n }\r\n }\r\n\r\n done(): void {\r\n const { state, logger } = this.scroller;\r\n this.cyclesDone++;\r\n this.cyclesDone$.set(this.cyclesDone);\r\n logger.logCycle(false);\r\n state.endWorkflowCycle(this.cyclesDone + 1);\r\n this.finalize();\r\n }\r\n\r\n dispose(): void {\r\n this.scroller.logger.log(() => 'disposing workflow');\r\n if (this.initTimer) {\r\n clearTimeout(this.initTimer);\r\n }\r\n this.offScroll();\r\n this.adapterRun$.dispose();\r\n this.cyclesDone$.dispose();\r\n this.scroller.dispose(true);\r\n Object.getOwnPropertyNames(this).forEach(prop => {\r\n delete (this as Record<string, unknown>)[prop];\r\n });\r\n this.isInitialized = false;\r\n this.disposed = true;\r\n }\r\n\r\n finalize(): void {}\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/classes/adapter/context.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,eAAe,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGtD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;IACE,wBAAY,MAAsB;QAAlC,iBA+CC;QA9CS,IAAA,IAAI,GAAe,MAAM,KAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QAClC,IAAM,EAAE,GAAG,EAAE,aAAa,CAAC;QAC3B,IAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACpC,IAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,yBAAyB;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,aAAI,GAAG,EAAE,cAAM,OAAA,EAAE,EAAF,CAAE,IAAK,IAAI,EAAG,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,IAAK,IAAI,EAAG,CAAC;QAChF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,aAAI,GAAG,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK,IAAK,IAAI,EAAG,CAAC;QACtF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,IAAK,IAAI,EAAG,CAAC;QAE3F,iFAAiF;QACjF,sBAAsB,EAAE;aACrB,MAAM,CAAC,UAAC,EAAa;gBAAX,SAAS,eAAA;YAAO,OAAA,CAAC,SAAS;QAAV,CAAU,CAAC;aACrC,OAAO,CAAC,UAAA,IAAI;YACL,IAAA,KAAK,GAAK,IAAI,MAAT,CAAU;YAErB,+DAA+D;YAC/D,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACvD,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACV,8EAA8E;oBAC9E,yEAAyE;oBACzE,kFAAkF;oBAClF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,yBACxB,KAAK,KACR,OAAO,EAAE,KAA0B,CAAC,8CAA8C;uBACnF,CAAC;oBACF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,0DAA0D;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,IAAI,CAAC,IAAI,aACnC,GAAG,EAAE;oBACH,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7B,OAAO,KAAK,CAAC;gBACf,CAAC,IACE,IAAI,EACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,IAAI,QAAQ,EAAE,CAAC;YACb,+DAA+D;YAC/D,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjDD,IAiDC","sourcesContent":["import {\n AdapterPropName,\n AdapterPropType,\n getDefaultAdapterProps,\n reactiveConfigStorage\n} from './props';\nimport core from '../../version';\nimport { Reactive } from '../reactive';\nimport { wantedStorage, wantedUtils } from './wanted';\nimport { IReactivePropsStore, IAdapterConfig } from '../../interfaces/index';\n\nlet instanceCount = 0;\n\nexport class AdapterContext {\n constructor(config: IAdapterConfig) {\n const { mock, reactive } = config;\n const id = ++instanceCount;\n const conf = { configurable: true };\n const reactivePropsStore: IReactivePropsStore = {};\n wantedStorage.set(id, { box: {}, block: false });\n\n // set up permanent props\n Object.defineProperty(this, AdapterPropName.id, { get: () => id, ...conf });\n Object.defineProperty(this, AdapterPropName.mock, { get: () => mock, ...conf });\n Object.defineProperty(this, AdapterPropName.augmented, { get: () => false, ...conf });\n Object.defineProperty(this, AdapterPropName.version, { get: () => core.version, ...conf });\n\n // set up default props, they will be reassigned during the Adapter instantiation\n getDefaultAdapterProps()\n .filter(({ permanent }) => !permanent)\n .forEach(prop => {\n let { value } = prop;\n\n // reactive props might be reconfigured by the vscroll consumer\n if (reactive && prop.type === AdapterPropType.Reactive) {\n const react = reactive[prop.name];\n if (react) {\n // here we have a configured reactive property that came from the outer config\n // this prop must be exposed via Adapter, but at the same time we need to\n // persist the original default value as it will be used by the Adapter internally\n reactivePropsStore[prop.name] = {\n ...react,\n default: value as Reactive<unknown> // persisting the default native Reactive prop\n };\n value = react.source; // exposing the configured prop instead of the default one\n }\n }\n\n Object.defineProperty(this, prop.name, {\n get: () => {\n wantedUtils.setBox(prop, id);\n return value;\n },\n ...conf\n });\n });\n\n if (reactive) {\n // save both configured and default reactive props in the store\n reactiveConfigStorage.set(id, reactivePropsStore);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/classes/adapter/context.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,eAAe,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGtD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;IACE,wBAAY,MAAsB;QAAlC,iBA+CC;QA9CS,IAAA,IAAI,GAAe,MAAM,KAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QAClC,IAAM,EAAE,GAAG,EAAE,aAAa,CAAC;QAC3B,IAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACpC,IAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,yBAAyB;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,aAAI,GAAG,EAAE,cAAM,OAAA,EAAE,EAAF,CAAE,IAAK,IAAI,EAAG,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,IAAK,IAAI,EAAG,CAAC;QAChF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,aAAI,GAAG,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK,IAAK,IAAI,EAAG,CAAC;QACtF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,aAAI,GAAG,EAAE,cAAM,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,IAAK,IAAI,EAAG,CAAC;QAE3F,iFAAiF;QACjF,sBAAsB,EAAE;aACrB,MAAM,CAAC,UAAC,EAAa;gBAAX,SAAS,eAAA;YAAO,OAAA,CAAC,SAAS;QAAV,CAAU,CAAC;aACrC,OAAO,CAAC,UAAA,IAAI;YACL,IAAA,KAAK,GAAK,IAAI,MAAT,CAAU;YAErB,+DAA+D;YAC/D,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACvD,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACV,8EAA8E;oBAC9E,yEAAyE;oBACzE,kFAAkF;oBAClF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,yBACxB,KAAK,KACR,OAAO,EAAE,KAA0B,CAAC,8CAA8C;uBACnF,CAAC;oBACF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,0DAA0D;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,IAAI,CAAC,IAAI,aACnC,GAAG,EAAE;oBACH,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7B,OAAO,KAAK,CAAC;gBACf,CAAC,IACE,IAAI,EACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,IAAI,QAAQ,EAAE,CAAC;YACb,+DAA+D;YAC/D,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjDD,IAiDC","sourcesContent":["import {\r\n AdapterPropName,\r\n AdapterPropType,\r\n getDefaultAdapterProps,\r\n reactiveConfigStorage\r\n} from './props';\r\nimport core from '../../version';\r\nimport { Reactive } from '../reactive';\r\nimport { wantedStorage, wantedUtils } from './wanted';\r\nimport { IReactivePropsStore, IAdapterConfig } from '../../interfaces/index';\r\n\r\nlet instanceCount = 0;\r\n\r\nexport class AdapterContext {\r\n constructor(config: IAdapterConfig) {\r\n const { mock, reactive } = config;\r\n const id = ++instanceCount;\r\n const conf = { configurable: true };\r\n const reactivePropsStore: IReactivePropsStore = {};\r\n wantedStorage.set(id, { box: {}, block: false });\r\n\r\n // set up permanent props\r\n Object.defineProperty(this, AdapterPropName.id, { get: () => id, ...conf });\r\n Object.defineProperty(this, AdapterPropName.mock, { get: () => mock, ...conf });\r\n Object.defineProperty(this, AdapterPropName.augmented, { get: () => false, ...conf });\r\n Object.defineProperty(this, AdapterPropName.version, { get: () => core.version, ...conf });\r\n\r\n // set up default props, they will be reassigned during the Adapter instantiation\r\n getDefaultAdapterProps()\r\n .filter(({ permanent }) => !permanent)\r\n .forEach(prop => {\r\n let { value } = prop;\r\n\r\n // reactive props might be reconfigured by the vscroll consumer\r\n if (reactive && prop.type === AdapterPropType.Reactive) {\r\n const react = reactive[prop.name];\r\n if (react) {\r\n // here we have a configured reactive property that came from the outer config\r\n // this prop must be exposed via Adapter, but at the same time we need to\r\n // persist the original default value as it will be used by the Adapter internally\r\n reactivePropsStore[prop.name] = {\r\n ...react,\r\n default: value as Reactive<unknown> // persisting the default native Reactive prop\r\n };\r\n value = react.source; // exposing the configured prop instead of the default one\r\n }\r\n }\r\n\r\n Object.defineProperty(this, prop.name, {\r\n get: () => {\r\n wantedUtils.setBox(prop, id);\r\n return value;\r\n },\r\n ...conf\r\n });\r\n });\r\n\r\n if (reactive) {\r\n // save both configured and default reactive props in the store\r\n reactiveConfigStorage.set(id, reactivePropsStore);\r\n }\r\n }\r\n}\r\n"]}
@@ -247,7 +247,7 @@ export var getDefaultAdapterProps = function () { return [
247
247
  {
248
248
  type: Type.Function,
249
249
  name: Name.relax,
250
- value: noop
250
+ value: noopWF
251
251
  },
252
252
  {
253
253
  type: Type.Function,
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../src/classes/adapter/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { Reactive } from '../reactive';\nimport {\n IAdapterProp,\n IBufferInfo,\n ItemAdapter,\n IPackages,\n AdapterMethodResult,\n IReactivePropsStore\n} from '../../interfaces/index';\n\nexport enum AdapterPropName {\n id = 'id',\n mock = 'mock',\n augmented = 'augmented',\n version = 'version',\n init = 'init',\n init$ = 'init$',\n packageInfo = 'packageInfo',\n itemsCount = 'itemsCount',\n bufferInfo = 'bufferInfo',\n isLoading = 'isLoading',\n isLoading$ = 'isLoading$',\n loopPending = 'loopPending',\n loopPending$ = 'loopPending$',\n firstVisible = 'firstVisible',\n firstVisible$ = 'firstVisible$',\n lastVisible = 'lastVisible',\n lastVisible$ = 'lastVisible$',\n bof = 'bof',\n bof$ = 'bof$',\n eof = 'eof',\n eof$ = 'eof$',\n paused = 'paused',\n paused$ = 'paused$',\n reset = 'reset',\n reload = 'reload',\n append = 'append',\n prepend = 'prepend',\n check = 'check',\n remove = 'remove',\n clip = 'clip',\n insert = 'insert',\n replace = 'replace',\n update = 'update',\n pause = 'pause',\n resume = 'resume',\n fix = 'fix',\n relax = 'relax',\n showLog = 'showLog'\n}\n\nexport enum AdapterPropType {\n Scalar,\n Reactive,\n WorkflowRunner,\n Function\n}\n\nconst Name = AdapterPropName;\nconst Type = AdapterPropType;\n\nconst noop = () => null;\n\nexport const methodPreResult: AdapterMethodResult = {\n immediate: true,\n success: true,\n details: 'Adapter is not initialized'\n};\n\nexport const methodPausedResult: AdapterMethodResult = {\n immediate: true,\n success: true,\n details: 'Scroller is paused'\n};\n\nconst noopWF = () => Promise.resolve(methodPreResult);\n\nconst emptyPackageInfo: IPackages = {\n core: {\n name: '',\n version: ''\n },\n consumer: {\n name: '',\n version: ''\n }\n};\n\nconst bufferInfoDefault: IBufferInfo = {\n firstIndex: NaN,\n lastIndex: NaN,\n minIndex: NaN,\n maxIndex: NaN,\n absMinIndex: -Infinity,\n absMaxIndex: +Infinity,\n defaultSize: NaN\n};\n\nexport const EMPTY_ITEM = {\n data: {},\n element: {}\n} as ItemAdapter;\n\nexport const getDefaultAdapterProps = (): IAdapterProp[] => [\n {\n type: Type.Scalar,\n name: Name.id,\n value: 0,\n permanent: true\n },\n {\n type: Type.Scalar,\n name: Name.mock,\n value: true,\n permanent: true\n },\n {\n type: Type.Scalar,\n name: Name.augmented,\n value: false,\n permanent: true\n },\n {\n type: Type.Scalar,\n name: Name.version,\n value: '',\n permanent: true\n },\n {\n type: Type.Scalar,\n name: Name.init,\n value: false,\n reactive: Name.init$\n },\n {\n type: Type.Scalar,\n name: Name.packageInfo,\n value: emptyPackageInfo,\n onDemand: true\n },\n {\n type: Type.Scalar,\n name: Name.itemsCount,\n value: 0,\n onDemand: true\n },\n {\n type: Type.Scalar,\n name: Name.bufferInfo,\n value: bufferInfoDefault,\n onDemand: true\n },\n {\n type: Type.Scalar,\n name: Name.isLoading,\n value: false,\n reactive: Name.isLoading$\n },\n {\n type: Type.Scalar,\n name: Name.loopPending,\n value: false,\n reactive: Name.loopPending$\n },\n {\n type: Type.Scalar,\n name: Name.firstVisible,\n value: EMPTY_ITEM,\n reactive: Name.firstVisible$,\n wanted: true\n },\n {\n type: Type.Scalar,\n name: Name.lastVisible,\n value: EMPTY_ITEM,\n reactive: Name.lastVisible$,\n wanted: true\n },\n {\n type: Type.Scalar,\n name: Name.bof,\n value: false,\n reactive: Name.bof$\n },\n {\n type: Type.Scalar,\n name: Name.eof,\n value: false,\n reactive: Name.eof$\n },\n {\n type: Type.Scalar,\n name: Name.paused,\n value: false,\n reactive: Name.paused$\n },\n {\n type: Type.WorkflowRunner,\n name: Name.reset,\n value: noopWF,\n allowedWhenPaused: true\n },\n {\n type: Type.WorkflowRunner,\n name: Name.reload,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.append,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.prepend,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.check,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.remove,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.clip,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.insert,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.replace,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.update,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.pause,\n value: noopWF\n },\n {\n type: Type.WorkflowRunner,\n name: Name.resume,\n value: noopWF,\n allowedWhenPaused: true\n },\n {\n type: Type.WorkflowRunner,\n name: Name.fix,\n value: noopWF\n },\n {\n type: Type.Function,\n name: Name.relax,\n value: noop\n },\n {\n type: Type.Function,\n name: Name.showLog,\n value: noop\n },\n {\n type: Type.Reactive,\n name: Name.init$,\n value: new Reactive<boolean>()\n },\n {\n type: Type.Reactive,\n name: Name.isLoading$,\n value: new Reactive<boolean>()\n },\n {\n type: Type.Reactive,\n name: Name.loopPending$,\n value: new Reactive<boolean>()\n },\n {\n type: Type.Reactive,\n name: Name.firstVisible$,\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\n wanted: true\n },\n {\n type: Type.Reactive,\n name: Name.lastVisible$,\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\n wanted: true\n },\n {\n type: Type.Reactive,\n name: Name.bof$,\n value: new Reactive<boolean>()\n },\n {\n type: Type.Reactive,\n name: Name.eof$,\n value: new Reactive<boolean>()\n },\n {\n type: Type.Reactive,\n name: Name.paused$,\n value: new Reactive<boolean>()\n }\n];\n\nexport const reactiveConfigStorage = new Map<number, IReactivePropsStore>();\n"]}
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../src/classes/adapter/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { Reactive } from '../reactive';\r\nimport {\r\n IAdapterProp,\r\n IBufferInfo,\r\n ItemAdapter,\r\n IPackages,\r\n AdapterMethodResult,\r\n IReactivePropsStore\r\n} from '../../interfaces/index';\r\n\r\nexport enum AdapterPropName {\r\n id = 'id',\r\n mock = 'mock',\r\n augmented = 'augmented',\r\n version = 'version',\r\n init = 'init',\r\n init$ = 'init$',\r\n packageInfo = 'packageInfo',\r\n itemsCount = 'itemsCount',\r\n bufferInfo = 'bufferInfo',\r\n isLoading = 'isLoading',\r\n isLoading$ = 'isLoading$',\r\n loopPending = 'loopPending',\r\n loopPending$ = 'loopPending$',\r\n firstVisible = 'firstVisible',\r\n firstVisible$ = 'firstVisible$',\r\n lastVisible = 'lastVisible',\r\n lastVisible$ = 'lastVisible$',\r\n bof = 'bof',\r\n bof$ = 'bof$',\r\n eof = 'eof',\r\n eof$ = 'eof$',\r\n paused = 'paused',\r\n paused$ = 'paused$',\r\n reset = 'reset',\r\n reload = 'reload',\r\n append = 'append',\r\n prepend = 'prepend',\r\n check = 'check',\r\n remove = 'remove',\r\n clip = 'clip',\r\n insert = 'insert',\r\n replace = 'replace',\r\n update = 'update',\r\n pause = 'pause',\r\n resume = 'resume',\r\n fix = 'fix',\r\n relax = 'relax',\r\n showLog = 'showLog'\r\n}\r\n\r\nexport enum AdapterPropType {\r\n Scalar,\r\n Reactive,\r\n WorkflowRunner,\r\n Function\r\n}\r\n\r\nconst Name = AdapterPropName;\r\nconst Type = AdapterPropType;\r\n\r\nconst noop = () => null;\r\n\r\nexport const methodPreResult: AdapterMethodResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Adapter is not initialized'\r\n};\r\n\r\nexport const methodPausedResult: AdapterMethodResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Scroller is paused'\r\n};\r\n\r\nconst noopWF = () => Promise.resolve(methodPreResult);\r\n\r\nconst emptyPackageInfo: IPackages = {\r\n core: {\r\n name: '',\r\n version: ''\r\n },\r\n consumer: {\r\n name: '',\r\n version: ''\r\n }\r\n};\r\n\r\nconst bufferInfoDefault: IBufferInfo = {\r\n firstIndex: NaN,\r\n lastIndex: NaN,\r\n minIndex: NaN,\r\n maxIndex: NaN,\r\n absMinIndex: -Infinity,\r\n absMaxIndex: +Infinity,\r\n defaultSize: NaN\r\n};\r\n\r\nexport const EMPTY_ITEM = {\r\n data: {},\r\n element: {}\r\n} as ItemAdapter;\r\n\r\nexport const getDefaultAdapterProps = (): IAdapterProp[] => [\r\n {\r\n type: Type.Scalar,\r\n name: Name.id,\r\n value: 0,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.mock,\r\n value: true,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.augmented,\r\n value: false,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.version,\r\n value: '',\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.init,\r\n value: false,\r\n reactive: Name.init$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.packageInfo,\r\n value: emptyPackageInfo,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.itemsCount,\r\n value: 0,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bufferInfo,\r\n value: bufferInfoDefault,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.isLoading,\r\n value: false,\r\n reactive: Name.isLoading$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.loopPending,\r\n value: false,\r\n reactive: Name.loopPending$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.firstVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.firstVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.lastVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.lastVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bof,\r\n value: false,\r\n reactive: Name.bof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.eof,\r\n value: false,\r\n reactive: Name.eof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.paused,\r\n value: false,\r\n reactive: Name.paused$\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reset,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reload,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.append,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.prepend,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.check,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.remove,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.clip,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.insert,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.replace,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.update,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.pause,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.resume,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.fix,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.relax,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.showLog,\r\n value: noop\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.init$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.isLoading$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.loopPending$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.firstVisible$,\r\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.lastVisible$,\r\n value: new Reactive<ItemAdapter>(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.bof$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.eof$,\r\n value: new Reactive<boolean>()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.paused$,\r\n value: new Reactive<boolean>()\r\n }\r\n];\r\n\r\nexport const reactiveConfigStorage = new Map<number, IReactivePropsStore>();\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wanted.js","sourceRoot":"","sources":["../../../../src/classes/adapter/wanted.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAO1C,IAAM,MAAM,GAAG,UAAC,EAAW;;IACzB,OAAO,MAAA,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;AAC1C,CAAC,CAAC;AAEF,IAAM,MAAM,GAAG,UAAC,EAA8B,EAAE,EAAW;QAAzC,IAAI,UAAA,EAAE,MAAM,YAAA;IAC5B,IAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,IAAc,CAAC,GAAwB,eAAe,aAAvC,EAAiB,EAAE,GAAK,eAAe,cAApB,CAAqB;QACvD,IAAa,CAAC,GAAuB,eAAe,YAAtC,EAAgB,EAAE,GAAK,eAAe,aAApB,CAAqB;QAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,EAAV,CAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,EAAV,CAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,KAAc,EAAE,EAAW;IAC3C,IAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,MAAM,QAAA;IACN,MAAM,QAAA;IACN,QAAQ,UAAA;CACT,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC","sourcesContent":["import { IAdapterProp } from '../../interfaces/index';\nimport { AdapterPropName } from './props';\n\ninterface IWanted {\n box: { [key: string]: boolean };\n block: boolean;\n}\n\nconst getBox = (id?: number): IWanted['box'] | undefined => {\n return wantedStorage.get(id || -1)?.box;\n};\n\nconst setBox = ({ name, wanted }: IAdapterProp, id?: number): boolean => {\n const Wanted = wantedStorage.get(id || -1);\n if (wanted && Wanted && !Wanted.box[name] && !Wanted.block) {\n const { firstVisible: a, firstVisible$: a$ } = AdapterPropName;\n const { lastVisible: b, lastVisible$: b$ } = AdapterPropName;\n Wanted.box[a] = Wanted.box[a$] = [a, a$].some(n => n === name) || Wanted.box[a];\n Wanted.box[b] = Wanted.box[b$] = [b, b$].some(n => n === name) || Wanted.box[b];\n return true;\n }\n return false;\n};\n\nconst setBlock = (value: boolean, id?: number): void => {\n const Wanted = wantedStorage.get(id || -1);\n if (Wanted) {\n Wanted.block = value;\n }\n};\n\nexport const wantedUtils = {\n getBox,\n setBox,\n setBlock\n};\n\nexport const wantedStorage = new Map<number, IWanted>();\n"]}
1
+ {"version":3,"file":"wanted.js","sourceRoot":"","sources":["../../../../src/classes/adapter/wanted.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAO1C,IAAM,MAAM,GAAG,UAAC,EAAW;;IACzB,OAAO,MAAA,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;AAC1C,CAAC,CAAC;AAEF,IAAM,MAAM,GAAG,UAAC,EAA8B,EAAE,EAAW;QAAzC,IAAI,UAAA,EAAE,MAAM,YAAA;IAC5B,IAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,IAAc,CAAC,GAAwB,eAAe,aAAvC,EAAiB,EAAE,GAAK,eAAe,cAApB,CAAqB;QACvD,IAAa,CAAC,GAAuB,eAAe,YAAtC,EAAgB,EAAE,GAAK,eAAe,aAApB,CAAqB;QAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,EAAV,CAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,EAAV,CAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,KAAc,EAAE,EAAW;IAC3C,IAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,MAAM,QAAA;IACN,MAAM,QAAA;IACN,QAAQ,UAAA;CACT,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC","sourcesContent":["import { IAdapterProp } from '../../interfaces/index';\r\nimport { AdapterPropName } from './props';\r\n\r\ninterface IWanted {\r\n box: { [key: string]: boolean };\r\n block: boolean;\r\n}\r\n\r\nconst getBox = (id?: number): IWanted['box'] | undefined => {\r\n return wantedStorage.get(id || -1)?.box;\r\n};\r\n\r\nconst setBox = ({ name, wanted }: IAdapterProp, id?: number): boolean => {\r\n const Wanted = wantedStorage.get(id || -1);\r\n if (wanted && Wanted && !Wanted.box[name] && !Wanted.block) {\r\n const { firstVisible: a, firstVisible$: a$ } = AdapterPropName;\r\n const { lastVisible: b, lastVisible$: b$ } = AdapterPropName;\r\n Wanted.box[a] = Wanted.box[a$] = [a, a$].some(n => n === name) || Wanted.box[a];\r\n Wanted.box[b] = Wanted.box[b$] = [b, b$].some(n => n === name) || Wanted.box[b];\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst setBlock = (value: boolean, id?: number): void => {\r\n const Wanted = wantedStorage.get(id || -1);\r\n if (Wanted) {\r\n Wanted.block = value;\r\n }\r\n};\r\n\r\nexport const wantedUtils = {\r\n getBox,\r\n setBox,\r\n setBlock\r\n};\r\n\r\nexport const wantedStorage = new Map<number, IWanted>();\r\n"]}