ng-virtual-list 14.11.4 → 14.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/README.md +78 -40
  2. package/esm2022/lib/components/ng-list-item/base/base-virtual-list-item-component.mjs +315 -0
  3. package/{esm2020 → esm2022}/lib/components/ng-list-item/base/index.mjs +2 -2
  4. package/esm2022/lib/components/ng-list-item/const/index.mjs +41 -0
  5. package/{esm2020 → esm2022}/lib/components/ng-list-item/interfaces/index.mjs +1 -1
  6. package/{esm2020 → esm2022}/lib/components/ng-list-item/interfaces/template-context.mjs +1 -1
  7. package/esm2022/lib/components/ng-list-item/ng-virtual-list-item.component.mjs +200 -0
  8. package/esm2022/lib/components/ng-list-item/ng-virtual-list-item.module.mjs +20 -0
  9. package/esm2022/lib/components/ng-list-item/utils/create-display-id.mjs +10 -0
  10. package/esm2022/lib/components/ng-list-item/utils/get-element-by-index.mjs +20 -0
  11. package/esm2022/lib/components/ng-list-item/utils/index.mjs +5 -0
  12. package/esm2022/lib/components/ng-list-item/utils/matrix-3d.mjs +18 -0
  13. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.mjs +279 -0
  14. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.module.mjs +21 -21
  15. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.mjs +94 -0
  16. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.mjs +20 -0
  17. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.mjs +142 -0
  18. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.mjs +20 -0
  19. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/core/index.mjs +2 -2
  20. package/esm2022/lib/components/ng-prerender-container/core/prerender-track-box.mjs +198 -0
  21. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/events/index.mjs +5 -5
  22. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/interfaces/index.mjs +1 -1
  23. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/interfaces/refresh-params.mjs +2 -2
  24. package/esm2022/lib/components/ng-prerender-container/ng-prerender-container.component.mjs +93 -0
  25. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/ng-prerender-container.module.mjs +20 -20
  26. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/types/cache.mjs +2 -2
  27. package/{esm2020 → esm2022}/lib/components/ng-prerender-container/types/index.mjs +1 -1
  28. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/const/index.mjs +8 -8
  29. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/enums/index.mjs +2 -2
  30. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/enums/scrollbar-states.mjs +6 -6
  31. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/interfaces/index.mjs +1 -1
  32. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/interfaces/scroll-bar-template-context.mjs +2 -2
  33. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/interfaces/scrollbar-drag-data.mjs +1 -1
  34. package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.mjs +25 -0
  35. package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar.component.mjs +324 -0
  36. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/ng-scroll-bar.module.mjs +19 -19
  37. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/ng-scroll-bar.service.mjs +36 -38
  38. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/types/index.mjs +1 -1
  39. package/{esm2020 → esm2022}/lib/components/ng-scroll-bar/types/scrollbar-state.mjs +1 -1
  40. package/esm2022/lib/components/ng-scroll-view/base/base-scroll-view.component.mjs +262 -0
  41. package/esm2022/lib/components/ng-scroll-view/const/index.mjs +9 -0
  42. package/{esm2020 → esm2022}/lib/components/ng-scroll-view/enums/index.mjs +2 -2
  43. package/{esm2020 → esm2022}/lib/components/ng-scroll-view/enums/scroller-direction.mjs +11 -11
  44. package/{esm2020 → esm2022}/lib/components/ng-scroll-view/enums/scroller-directions.mjs +1 -1
  45. package/{esm2020 → esm2022}/lib/components/ng-scroll-view/index.mjs +3 -3
  46. package/{esm2020 → esm2022}/lib/components/ng-scroll-view/interfaces/index.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/components/ng-scroll-view/interfaces/scroll-to-params.mjs +2 -2
  48. package/esm2022/lib/components/ng-scroll-view/ng-scroll-view.component.mjs +859 -0
  49. package/esm2022/lib/components/ng-scroll-view/utils/calculate-direction.mjs +17 -0
  50. package/esm2022/lib/components/ng-scroll-view/utils/calculate-velocity.mjs +12 -0
  51. package/esm2022/lib/components/ng-scroll-view/utils/get-dir.mjs +10 -0
  52. package/esm2022/lib/components/ng-scroll-view/utils/index.mjs +6 -0
  53. package/esm2022/lib/components/ng-scroll-view/utils/matrix-3d.mjs +15 -0
  54. package/esm2022/lib/components/ng-scroll-view/utils/scroll-box.mjs +45 -0
  55. package/{esm2020 → esm2022}/lib/components/ng-scroller/enums/index.mjs +2 -2
  56. package/{esm2020 → esm2022}/lib/components/ng-scroller/enums/scroller-direction.mjs +5 -5
  57. package/{esm2020 → esm2022}/lib/components/ng-scroller/enums/scroller-directions.mjs +2 -2
  58. package/esm2022/lib/components/ng-scroller/ng-scroller.component.mjs +525 -0
  59. package/{esm2020 → esm2022}/lib/components/ng-scroller/ng-scroller.module.mjs +22 -22
  60. package/{esm2020 → esm2022}/lib/components/ng-scroller/utils/index.mjs +2 -2
  61. package/esm2022/lib/components/ng-scroller/utils/scroll-box.mjs +52 -0
  62. package/esm2022/lib/const/index.mjs +165 -0
  63. package/esm2022/lib/core/cache-map.mjs +101 -0
  64. package/esm2022/lib/core/const/index.mjs +3 -0
  65. package/esm2022/lib/core/enums/index.mjs +3 -0
  66. package/esm2022/lib/core/enums/item-display-methods.mjs +14 -0
  67. package/esm2022/lib/core/events/index.mjs +3 -0
  68. package/esm2022/lib/core/events/track-box-events.mjs +12 -0
  69. package/esm2022/lib/core/interfaces/get-item-position-options.mjs +2 -0
  70. package/esm2022/lib/core/interfaces/get-metrics-returns.mjs +2 -0
  71. package/esm2022/lib/core/interfaces/index.mjs +2 -0
  72. package/esm2022/lib/core/interfaces/item.mjs +2 -0
  73. package/esm2022/lib/core/interfaces/metrics.mjs +2 -0
  74. package/esm2022/lib/core/interfaces/recalculate-metrics-options.mjs +2 -0
  75. package/esm2022/lib/core/interfaces/update-collection-options.mjs +2 -0
  76. package/esm2022/lib/core/interfaces/update-collection-returns.mjs +2 -0
  77. package/esm2022/lib/core/track-box.mjs +1353 -0
  78. package/esm2022/lib/core/tracker.mjs +207 -0
  79. package/esm2022/lib/core/types/cache-map-events.mjs +2 -0
  80. package/esm2022/lib/core/types/cache-map-listeners.mjs +2 -0
  81. package/esm2022/lib/core/types/cache.mjs +2 -0
  82. package/esm2022/lib/core/types/index.mjs +2 -0
  83. package/esm2022/lib/core/types/on-change-event-listener.mjs +2 -0
  84. package/esm2022/lib/core/types/on-tick-event-listener.mjs +2 -0
  85. package/esm2022/lib/core/utils/get-service-id-prop.mjs +10 -0
  86. package/esm2022/lib/core/utils/index.mjs +3 -0
  87. package/esm2022/lib/directives/index.mjs +4 -0
  88. package/esm2022/lib/directives/locale-sensitive/locale-sensitive.directive.mjs +68 -0
  89. package/{esm2020 → esm2022}/lib/directives/locale-sensitive/locale-sensitive.module.mjs +19 -19
  90. package/esm2022/lib/directives/virtual-click/virtual-click.directive.mjs +67 -0
  91. package/esm2022/lib/directives/virtual-click/virtual-click.module.mjs +19 -0
  92. package/esm2022/lib/enums/alignments.mjs +12 -0
  93. package/esm2022/lib/enums/collapsing-modes.mjs +22 -0
  94. package/{esm2020 → esm2022}/lib/enums/collection-modes.mjs +17 -17
  95. package/{esm2020 → esm2022}/lib/enums/directions.mjs +17 -17
  96. package/{esm2020 → esm2022}/lib/enums/focus-alignments.mjs +13 -13
  97. package/esm2022/lib/enums/index.mjs +12 -0
  98. package/esm2022/lib/enums/selecting-modes-types.mjs +22 -0
  99. package/esm2022/lib/enums/selecting-modes.mjs +22 -0
  100. package/esm2022/lib/enums/snap-to-item-aligns.mjs +22 -0
  101. package/{esm2020 → esm2022}/lib/enums/snapping-methods.mjs +17 -17
  102. package/esm2022/lib/enums/spreading-modes.mjs +18 -0
  103. package/{esm2020 → esm2022}/lib/enums/text-directions.mjs +13 -13
  104. package/{esm2020 → esm2022}/lib/interfaces/animation-params.mjs +2 -2
  105. package/esm2022/lib/interfaces/base-virtual-list-item-component.mjs +2 -0
  106. package/esm2022/lib/interfaces/index.mjs +2 -0
  107. package/esm2022/lib/interfaces/item-transformation.mjs +2 -0
  108. package/esm2022/lib/interfaces/point.mjs +2 -0
  109. package/{esm2020 → esm2022}/lib/interfaces/rect.mjs +1 -1
  110. package/{esm2020 → esm2022}/lib/interfaces/render-stabilizer-options.mjs +1 -1
  111. package/{esm2020 → esm2022}/lib/interfaces/scroll-event.mjs +1 -1
  112. package/{esm2020 → esm2022}/lib/interfaces/scroll-options.mjs +2 -2
  113. package/esm2022/lib/interfaces/scroll-params.mjs +2 -0
  114. package/{esm2020 → esm2022}/lib/interfaces/scroll-to-params.mjs +1 -1
  115. package/{esm2020 → esm2022}/lib/interfaces/scrolling-settings.mjs +1 -1
  116. package/{esm2020 → esm2022}/lib/interfaces/size.mjs +1 -1
  117. package/{esm2020 → esm2022}/lib/models/collection.model.mjs +2 -2
  118. package/{esm2020 → esm2022}/lib/models/component.model.mjs +1 -1
  119. package/{esm2020 → esm2022}/lib/models/display-object-config.model.mjs +1 -1
  120. package/{esm2020 → esm2022}/lib/models/display-object-measures.model.mjs +1 -1
  121. package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
  122. package/{esm2020 → esm2022}/lib/models/item-config-map.model.mjs +2 -2
  123. package/{esm2020 → esm2022}/lib/models/item.model.mjs +2 -2
  124. package/{esm2020 → esm2022}/lib/models/render-collection.model.mjs +2 -2
  125. package/esm2022/lib/models/render-item-config.model.mjs +2 -0
  126. package/esm2022/lib/models/render-item-measures.model.mjs +3 -0
  127. package/{esm2020 → esm2022}/lib/models/render-item.model.mjs +2 -2
  128. package/esm2022/lib/ng-virtual-list-public.service.mjs +120 -0
  129. package/esm2022/lib/ng-virtual-list.component.mjs +3246 -0
  130. package/{esm2020 → esm2022}/lib/ng-virtual-list.module.mjs +23 -23
  131. package/esm2022/lib/ng-virtual-list.service.mjs +431 -0
  132. package/esm2022/lib/transformations/deck-of-cards-3d.mjs +57 -0
  133. package/esm2022/lib/transformations/deck-of-cards.mjs +54 -0
  134. package/esm2022/lib/transformations/event-horizon.mjs +47 -0
  135. package/esm2022/lib/transformations/index.mjs +13 -0
  136. package/esm2022/lib/transformations/linear.mjs +47 -0
  137. package/esm2022/lib/transformations/swipe-3d.mjs +51 -0
  138. package/esm2022/lib/types/alignment.mjs +2 -0
  139. package/esm2022/lib/types/arithmetic-expression.mjs +2 -0
  140. package/esm2022/lib/types/collapsing-mode.mjs +2 -0
  141. package/esm2022/lib/types/collection-mode.mjs +2 -0
  142. package/esm2022/lib/types/color.mjs +2 -0
  143. package/esm2022/lib/types/direction.mjs +2 -0
  144. package/esm2022/lib/types/float-or-persentage-value.mjs +2 -0
  145. package/{esm2020 → esm2022}/lib/types/focus-alignment.mjs +1 -1
  146. package/{esm2020 → esm2022}/lib/types/focus-item-params.mjs +2 -2
  147. package/{esm2020 → esm2022}/lib/types/gradient-color-position.mjs +2 -2
  148. package/{esm2020 → esm2022}/lib/types/gradient-color-positions.mjs +1 -1
  149. package/{esm2020 → esm2022}/lib/types/id.mjs +1 -1
  150. package/esm2022/lib/types/index.mjs +2 -0
  151. package/esm2022/lib/types/item-transform.mjs +2 -0
  152. package/{esm2020 → esm2022}/lib/types/scroll-direction.mjs +2 -2
  153. package/esm2022/lib/types/selecting-mode.mjs +2 -0
  154. package/esm2022/lib/types/snap-to-item-align.mjs +2 -0
  155. package/esm2022/lib/types/snapping-distance.mjs +2 -0
  156. package/esm2022/lib/types/snapping-method.mjs +2 -0
  157. package/esm2022/lib/types/spreading-mode.mjs +2 -0
  158. package/esm2022/lib/types/text-direction.mjs +2 -0
  159. package/esm2022/lib/utils/animator/animator.mjs +78 -0
  160. package/esm2022/lib/utils/animator/const/index.mjs +2 -0
  161. package/esm2022/lib/utils/animator/ease.mjs +7 -0
  162. package/esm2022/lib/utils/animator/index.mjs +5 -0
  163. package/esm2022/lib/utils/animator/interfaces/animator-params.mjs +2 -0
  164. package/esm2022/lib/utils/animator/interfaces/animator-update-data.mjs +2 -0
  165. package/esm2022/lib/utils/animator/interfaces/index.mjs +2 -0
  166. package/esm2022/lib/utils/animator/types/easing.mjs +2 -0
  167. package/{esm2020 → esm2022}/lib/utils/animator/types/index.mjs +1 -1
  168. package/esm2022/lib/utils/buffer-interpolation.mjs +29 -0
  169. package/esm2022/lib/utils/cmap.mjs +34 -0
  170. package/esm2022/lib/utils/debounce.mjs +61 -0
  171. package/esm2022/lib/utils/disposable-component.mjs +27 -0
  172. package/esm2022/lib/utils/event-emitter/event-emitter.mjs +105 -0
  173. package/{esm2020 → esm2022}/lib/utils/event-emitter/index.mjs +2 -2
  174. package/{esm2020 → esm2022}/lib/utils/event-emitter/interfaces/event-emitter.mjs +1 -1
  175. package/{esm2020 → esm2022}/lib/utils/event-emitter/interfaces/index.mjs +1 -1
  176. package/esm2022/lib/utils/get-scroll-state-version.mjs +12 -0
  177. package/{esm2020 → esm2022}/lib/utils/get-selector-by-item-id.mjs +4 -4
  178. package/{esm2020 → esm2022}/lib/utils/index.mjs +4 -4
  179. package/esm2022/lib/utils/is-collapse-mode.mjs +18 -0
  180. package/esm2022/lib/utils/is-collection-mode.mjs +15 -0
  181. package/esm2022/lib/utils/is-direction.mjs +15 -0
  182. package/esm2022/lib/utils/is-persentage-value.mjs +14 -0
  183. package/esm2022/lib/utils/is-select-mode.mjs +18 -0
  184. package/esm2022/lib/utils/is-spreading-mode.mjs +15 -0
  185. package/esm2022/lib/utils/list-validators.mjs +27 -0
  186. package/esm2022/lib/utils/normalize-collection.mjs +42 -0
  187. package/esm2022/lib/utils/object.mjs +28 -0
  188. package/esm2022/lib/utils/parse-arithmetic-expression.mjs +53 -0
  189. package/esm2022/lib/utils/parse-float-or-persentage-value.mjs +17 -0
  190. package/esm2022/lib/utils/screen-reader-formatter.mjs +43 -0
  191. package/esm2022/lib/utils/scroll-event.mjs +48 -0
  192. package/esm2022/lib/utils/scrolling-direction.mjs +29 -0
  193. package/esm2022/lib/utils/snapping-method.mjs +9 -0
  194. package/esm2022/lib/utils/toggle-class-name.mjs +15 -0
  195. package/{esm2020 → esm2022}/lib/utils/validation.mjs +55 -55
  196. package/{esm2020 → esm2022}/ng-virtual-list.mjs +4 -4
  197. package/esm2022/public-api.mjs +20 -0
  198. package/fesm2022/ng-virtual-list.mjs +10669 -0
  199. package/fesm2022/ng-virtual-list.mjs.map +1 -0
  200. package/index.d.ts +5 -5
  201. package/lib/components/ng-list-item/base/base-virtual-list-item-component.d.ts +83 -68
  202. package/lib/components/ng-list-item/base/index.d.ts +2 -2
  203. package/lib/components/ng-list-item/const/index.d.ts +3 -3
  204. package/lib/components/ng-list-item/interfaces/index.d.ts +2 -2
  205. package/lib/components/ng-list-item/interfaces/template-context.d.ts +42 -42
  206. package/lib/components/ng-list-item/ng-virtual-list-item.component.d.ts +30 -30
  207. package/lib/components/ng-list-item/ng-virtual-list-item.module.d.ts +9 -9
  208. package/lib/components/ng-list-item/utils/create-display-id.d.ts +7 -1
  209. package/lib/components/ng-list-item/utils/get-element-by-index.d.ts +15 -1
  210. package/lib/components/ng-list-item/utils/index.d.ts +4 -3
  211. package/lib/components/ng-list-item/utils/matrix-3d.d.ts +7 -0
  212. package/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.d.ts +104 -100
  213. package/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.module.d.ts +10 -10
  214. package/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.d.ts +17 -17
  215. package/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.d.ts +9 -9
  216. package/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.d.ts +62 -62
  217. package/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.d.ts +9 -9
  218. package/lib/components/ng-prerender-container/core/index.d.ts +2 -2
  219. package/lib/components/ng-prerender-container/core/prerender-track-box.d.ts +35 -35
  220. package/lib/components/ng-prerender-container/events/index.d.ts +6 -6
  221. package/lib/components/ng-prerender-container/interfaces/index.d.ts +2 -2
  222. package/lib/components/ng-prerender-container/interfaces/refresh-params.d.ts +17 -16
  223. package/lib/components/ng-prerender-container/ng-prerender-container.component.d.ts +40 -39
  224. package/lib/components/ng-prerender-container/ng-prerender-container.module.d.ts +9 -9
  225. package/lib/components/ng-prerender-container/types/cache.d.ts +13 -13
  226. package/lib/components/ng-prerender-container/types/index.d.ts +2 -2
  227. package/lib/components/ng-scroll-bar/const/index.d.ts +3 -3
  228. package/lib/components/ng-scroll-bar/enums/index.d.ts +2 -2
  229. package/lib/components/ng-scroll-bar/enums/scrollbar-states.d.ts +5 -5
  230. package/lib/components/ng-scroll-bar/interfaces/index.d.ts +3 -3
  231. package/lib/components/ng-scroll-bar/interfaces/scroll-bar-template-context.d.ts +26 -26
  232. package/lib/components/ng-scroll-bar/interfaces/scrollbar-drag-data.d.ts +13 -13
  233. package/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.d.ts +16 -16
  234. package/lib/components/ng-scroll-bar/ng-scroll-bar.component.d.ts +102 -97
  235. package/lib/components/ng-scroll-bar/ng-scroll-bar.module.d.ts +8 -8
  236. package/lib/components/ng-scroll-bar/ng-scroll-bar.service.d.ts +22 -22
  237. package/lib/components/ng-scroll-bar/types/index.d.ts +2 -2
  238. package/lib/components/ng-scroll-bar/types/scrollbar-state.d.ts +2 -2
  239. package/lib/components/ng-scroll-view/base/base-scroll-view.component.d.ts +89 -69
  240. package/lib/components/ng-scroll-view/const/index.d.ts +7 -5
  241. package/lib/components/ng-scroll-view/enums/index.d.ts +4 -4
  242. package/lib/components/ng-scroll-view/enums/scroller-direction.d.ts +10 -10
  243. package/lib/components/ng-scroll-view/enums/scroller-directions.d.ts +8 -8
  244. package/lib/components/ng-scroll-view/index.d.ts +5 -5
  245. package/lib/components/ng-scroll-view/interfaces/index.d.ts +2 -2
  246. package/lib/components/ng-scroll-view/interfaces/scroll-to-params.d.ts +22 -19
  247. package/lib/components/ng-scroll-view/ng-scroll-view.component.d.ts +124 -66
  248. package/lib/components/ng-scroll-view/utils/calculate-direction.d.ts +7 -4
  249. package/lib/components/ng-scroll-view/utils/calculate-velocity.d.ts +7 -0
  250. package/lib/components/ng-scroll-view/utils/get-dir.d.ts +7 -0
  251. package/lib/components/ng-scroll-view/utils/index.d.ts +5 -3
  252. package/lib/components/ng-scroll-view/utils/matrix-3d.d.ts +7 -0
  253. package/lib/components/ng-scroll-view/utils/scroll-box.d.ts +39 -39
  254. package/lib/components/ng-scroller/enums/index.d.ts +4 -4
  255. package/lib/components/ng-scroller/enums/scroller-direction.d.ts +4 -4
  256. package/lib/components/ng-scroller/enums/scroller-directions.d.ts +3 -2
  257. package/lib/components/ng-scroller/ng-scroller.component.d.ts +164 -150
  258. package/lib/components/ng-scroller/ng-scroller.module.d.ts +11 -11
  259. package/lib/components/ng-scroller/utils/index.d.ts +2 -2
  260. package/lib/components/ng-scroller/utils/scroll-box.d.ts +40 -40
  261. package/lib/const/index.d.ts +153 -112
  262. package/lib/core/cache-map.d.ts +46 -56
  263. package/lib/core/const/index.d.ts +1 -0
  264. package/lib/core/enums/index.d.ts +2 -0
  265. package/lib/core/enums/item-display-methods.d.ts +12 -0
  266. package/lib/core/events/index.d.ts +2 -0
  267. package/lib/core/events/track-box-events.d.ts +10 -0
  268. package/lib/core/interfaces/get-item-position-options.d.ts +10 -0
  269. package/lib/core/interfaces/get-metrics-returns.d.ts +11 -0
  270. package/lib/core/interfaces/index.d.ts +8 -0
  271. package/lib/core/interfaces/item.d.ts +9 -0
  272. package/lib/core/interfaces/metrics.d.ts +51 -0
  273. package/lib/core/interfaces/recalculate-metrics-options.d.ts +32 -0
  274. package/lib/core/interfaces/update-collection-options.d.ts +10 -0
  275. package/lib/core/interfaces/update-collection-returns.d.ts +14 -0
  276. package/lib/core/track-box.d.ts +153 -223
  277. package/lib/core/tracker.d.ts +55 -55
  278. package/lib/core/types/cache-map-events.d.ts +8 -0
  279. package/lib/core/types/cache-map-listeners.d.ts +9 -0
  280. package/lib/core/types/cache.d.ts +12 -0
  281. package/lib/core/types/index.d.ts +6 -0
  282. package/lib/core/types/on-change-event-listener.d.ts +7 -0
  283. package/lib/core/types/on-tick-event-listener.d.ts +7 -0
  284. package/lib/core/utils/get-service-id-prop.d.ts +7 -0
  285. package/lib/core/utils/index.d.ts +2 -0
  286. package/lib/directives/index.d.ts +3 -3
  287. package/lib/directives/locale-sensitive/locale-sensitive.directive.d.ts +29 -29
  288. package/lib/directives/locale-sensitive/locale-sensitive.module.d.ts +8 -8
  289. package/lib/directives/{item-click/item-click.directive.d.ts → virtual-click/virtual-click.directive.d.ts} +22 -22
  290. package/lib/directives/virtual-click/virtual-click.module.d.ts +8 -0
  291. package/lib/enums/alignments.d.ts +10 -0
  292. package/lib/enums/collapsing-modes.d.ts +20 -0
  293. package/lib/enums/collection-modes.d.ts +16 -16
  294. package/lib/enums/directions.d.ts +16 -16
  295. package/lib/enums/focus-alignments.d.ts +12 -12
  296. package/lib/enums/index.d.ts +11 -13
  297. package/lib/enums/{method-for-selecting-types.d.ts → selecting-modes-types.d.ts} +20 -20
  298. package/lib/enums/{methods-for-selecting.d.ts → selecting-modes.d.ts} +20 -20
  299. package/lib/enums/snap-to-item-aligns.d.ts +20 -0
  300. package/lib/enums/snapping-methods.d.ts +16 -16
  301. package/lib/enums/spreading-modes.d.ts +16 -0
  302. package/lib/enums/text-directions.d.ts +12 -12
  303. package/lib/interfaces/animation-params.d.ts +14 -13
  304. package/lib/interfaces/base-virtual-list-item-component.d.ts +23 -23
  305. package/lib/interfaces/index.d.ts +11 -10
  306. package/lib/interfaces/item-transformation.d.ts +22 -0
  307. package/lib/interfaces/point.d.ts +16 -0
  308. package/lib/interfaces/rect.d.ts +17 -17
  309. package/lib/interfaces/render-stabilizer-options.d.ts +12 -12
  310. package/lib/interfaces/scroll-event.d.ts +58 -58
  311. package/lib/interfaces/scroll-options.d.ts +28 -24
  312. package/lib/interfaces/scroll-params.d.ts +17 -16
  313. package/lib/interfaces/scroll-to-params.d.ts +7 -7
  314. package/lib/interfaces/scrolling-settings.d.ts +38 -38
  315. package/lib/interfaces/size.d.ts +16 -16
  316. package/lib/models/collection.model.d.ts +9 -9
  317. package/lib/models/component.model.d.ts +3 -3
  318. package/lib/models/display-object-config.model.d.ts +21 -21
  319. package/lib/models/display-object-measures.model.d.ts +45 -45
  320. package/lib/models/index.d.ts +9 -9
  321. package/lib/models/item-config-map.model.d.ts +35 -30
  322. package/lib/models/item.model.d.ts +17 -10
  323. package/lib/models/render-collection.model.d.ts +9 -9
  324. package/lib/models/render-item-config.model.d.ts +119 -69
  325. package/lib/models/render-item-measures.model.d.ts +116 -45
  326. package/lib/models/render-item.model.d.ts +40 -40
  327. package/lib/ng-virtual-list-public.service.d.ts +92 -93
  328. package/lib/ng-virtual-list.component.d.ts +770 -572
  329. package/lib/ng-virtual-list.module.d.ts +12 -12
  330. package/lib/ng-virtual-list.service.d.ts +153 -135
  331. package/lib/transformations/deck-of-cards-3d.d.ts +54 -0
  332. package/lib/transformations/deck-of-cards.d.ts +50 -0
  333. package/lib/transformations/event-horizon.d.ts +26 -0
  334. package/lib/transformations/index.d.ts +7 -0
  335. package/lib/transformations/linear.d.ts +26 -0
  336. package/lib/transformations/swipe-3d.d.ts +38 -0
  337. package/lib/types/alignment.d.ts +8 -0
  338. package/lib/types/arithmetic-expression.d.ts +10 -0
  339. package/lib/types/collapsing-mode.d.ts +8 -0
  340. package/lib/{enums → types}/collection-mode.d.ts +8 -8
  341. package/lib/types/color.d.ts +4 -0
  342. package/lib/{enums → types}/direction.d.ts +8 -8
  343. package/lib/types/float-or-persentage-value.d.ts +7 -0
  344. package/lib/types/focus-alignment.d.ts +8 -8
  345. package/lib/types/focus-item-params.d.ts +13 -7
  346. package/lib/types/gradient-color-position.d.ts +7 -7
  347. package/lib/types/gradient-color-positions.d.ts +8 -8
  348. package/lib/types/id.d.ts +7 -7
  349. package/lib/types/index.d.ts +20 -6
  350. package/lib/types/item-transform.d.ts +9 -0
  351. package/lib/types/scroll-direction.d.ts +8 -6
  352. package/lib/types/selecting-mode.d.ts +8 -0
  353. package/lib/types/snap-to-item-align.d.ts +8 -0
  354. package/lib/types/snapping-distance.d.ts +8 -0
  355. package/lib/{enums → types}/snapping-method.d.ts +10 -10
  356. package/lib/types/spreading-mode.d.ts +8 -0
  357. package/lib/{enums → types}/text-direction.d.ts +10 -10
  358. package/lib/utils/animator/animator.d.ts +16 -23
  359. package/lib/utils/animator/const/index.d.ts +1 -0
  360. package/lib/utils/animator/ease.d.ts +2 -14
  361. package/lib/utils/animator/index.d.ts +6 -5
  362. package/lib/utils/animator/interfaces/animator-params.d.ts +18 -0
  363. package/lib/utils/animator/interfaces/animator-update-data.d.ts +13 -0
  364. package/lib/utils/animator/interfaces/index.d.ts +3 -0
  365. package/lib/utils/animator/types/easing.d.ts +7 -7
  366. package/lib/utils/animator/types/index.d.ts +2 -2
  367. package/lib/utils/buffer-interpolation.d.ts +5 -5
  368. package/lib/utils/cmap.d.ts +16 -16
  369. package/lib/utils/debounce.d.ts +25 -25
  370. package/lib/utils/disposable-component.d.ts +15 -15
  371. package/lib/utils/event-emitter/event-emitter.d.ts +42 -42
  372. package/lib/utils/event-emitter/index.d.ts +4 -4
  373. package/lib/utils/event-emitter/interfaces/event-emitter.d.ts +37 -37
  374. package/lib/utils/event-emitter/interfaces/index.d.ts +2 -2
  375. package/lib/utils/get-scroll-state-version.d.ts +1 -0
  376. package/lib/utils/get-selector-by-item-id.d.ts +2 -2
  377. package/lib/utils/index.d.ts +6 -6
  378. package/lib/utils/is-collapse-mode.d.ts +8 -0
  379. package/lib/utils/is-collection-mode.d.ts +8 -8
  380. package/lib/utils/is-direction.d.ts +8 -8
  381. package/lib/utils/is-persentage-value.d.ts +7 -0
  382. package/lib/utils/is-select-mode.d.ts +8 -0
  383. package/lib/utils/is-spreading-mode.d.ts +8 -0
  384. package/lib/utils/list-validators.d.ts +2 -2
  385. package/lib/utils/normalize-collection.d.ts +8 -0
  386. package/lib/utils/object.d.ts +4 -4
  387. package/lib/utils/parse-arithmetic-expression.d.ts +8 -0
  388. package/lib/utils/parse-float-or-persentage-value.d.ts +7 -0
  389. package/lib/utils/screen-reader-formatter.d.ts +4 -7
  390. package/lib/utils/scroll-event.d.ts +48 -48
  391. package/lib/utils/scrolling-direction.d.ts +17 -0
  392. package/lib/utils/snapping-method.d.ts +3 -3
  393. package/lib/utils/toggle-class-name.d.ts +7 -7
  394. package/lib/utils/validation.d.ts +35 -35
  395. package/package.json +5 -11
  396. package/public-api.d.ts +16 -13
  397. package/esm2020/lib/components/ng-list-item/base/base-virtual-list-item-component.mjs +0 -209
  398. package/esm2020/lib/components/ng-list-item/const/index.mjs +0 -30
  399. package/esm2020/lib/components/ng-list-item/ng-virtual-list-item.component.mjs +0 -207
  400. package/esm2020/lib/components/ng-list-item/ng-virtual-list-item.module.mjs +0 -20
  401. package/esm2020/lib/components/ng-list-item/utils/create-display-id.mjs +0 -4
  402. package/esm2020/lib/components/ng-list-item/utils/get-element-by-index.mjs +0 -6
  403. package/esm2020/lib/components/ng-list-item/utils/index.mjs +0 -4
  404. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.mjs +0 -268
  405. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.mjs +0 -78
  406. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.mjs +0 -20
  407. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.mjs +0 -139
  408. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.mjs +0 -20
  409. package/esm2020/lib/components/ng-prerender-container/core/prerender-track-box.mjs +0 -171
  410. package/esm2020/lib/components/ng-prerender-container/ng-prerender-container.component.mjs +0 -89
  411. package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.mjs +0 -27
  412. package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar.component.mjs +0 -282
  413. package/esm2020/lib/components/ng-scroll-view/base/base-scroll-view.component.mjs +0 -173
  414. package/esm2020/lib/components/ng-scroll-view/const/index.mjs +0 -7
  415. package/esm2020/lib/components/ng-scroll-view/ng-scroll-view.component.mjs +0 -376
  416. package/esm2020/lib/components/ng-scroll-view/utils/calculate-direction.mjs +0 -11
  417. package/esm2020/lib/components/ng-scroll-view/utils/index.mjs +0 -4
  418. package/esm2020/lib/components/ng-scroll-view/utils/scroll-box.mjs +0 -45
  419. package/esm2020/lib/components/ng-scroller/const/index.mjs +0 -2
  420. package/esm2020/lib/components/ng-scroller/ng-scroller.component.mjs +0 -448
  421. package/esm2020/lib/components/ng-scroller/utils/scroll-box.mjs +0 -52
  422. package/esm2020/lib/const/index.mjs +0 -125
  423. package/esm2020/lib/core/cache-map.mjs +0 -153
  424. package/esm2020/lib/core/track-box.mjs +0 -937
  425. package/esm2020/lib/core/tracker.mjs +0 -200
  426. package/esm2020/lib/directives/index.mjs +0 -4
  427. package/esm2020/lib/directives/item-click/item-click.directive.mjs +0 -65
  428. package/esm2020/lib/directives/item-click/item-click.module.mjs +0 -19
  429. package/esm2020/lib/directives/locale-sensitive/locale-sensitive.directive.mjs +0 -66
  430. package/esm2020/lib/enums/collection-mode.mjs +0 -2
  431. package/esm2020/lib/enums/direction.mjs +0 -2
  432. package/esm2020/lib/enums/index.mjs +0 -8
  433. package/esm2020/lib/enums/method-for-selecting-types.mjs +0 -22
  434. package/esm2020/lib/enums/method-for-selecting.mjs +0 -2
  435. package/esm2020/lib/enums/methods-for-selecting.mjs +0 -22
  436. package/esm2020/lib/enums/snapping-method.mjs +0 -2
  437. package/esm2020/lib/enums/text-direction.mjs +0 -2
  438. package/esm2020/lib/interfaces/base-virtual-list-item-component.mjs +0 -9
  439. package/esm2020/lib/interfaces/index.mjs +0 -2
  440. package/esm2020/lib/interfaces/scroll-params.mjs +0 -2
  441. package/esm2020/lib/models/render-item-config.model.mjs +0 -2
  442. package/esm2020/lib/models/render-item-measures.model.mjs +0 -3
  443. package/esm2020/lib/ng-virtual-list-public.service.mjs +0 -123
  444. package/esm2020/lib/ng-virtual-list.component.mjs +0 -2535
  445. package/esm2020/lib/ng-virtual-list.service.mjs +0 -375
  446. package/esm2020/lib/types/index.mjs +0 -2
  447. package/esm2020/lib/utils/animator/animator.mjs +0 -60
  448. package/esm2020/lib/utils/animator/ease.mjs +0 -19
  449. package/esm2020/lib/utils/animator/index.mjs +0 -4
  450. package/esm2020/lib/utils/animator/types/easing.mjs +0 -2
  451. package/esm2020/lib/utils/buffer-interpolation.mjs +0 -29
  452. package/esm2020/lib/utils/cmap.mjs +0 -34
  453. package/esm2020/lib/utils/debounce.mjs +0 -61
  454. package/esm2020/lib/utils/disposable-component.mjs +0 -29
  455. package/esm2020/lib/utils/event-emitter/event-emitter.mjs +0 -106
  456. package/esm2020/lib/utils/is-collection-mode.mjs +0 -15
  457. package/esm2020/lib/utils/is-direction.mjs +0 -15
  458. package/esm2020/lib/utils/is-method-for-selecting.mjs +0 -18
  459. package/esm2020/lib/utils/list-validators.mjs +0 -27
  460. package/esm2020/lib/utils/object.mjs +0 -28
  461. package/esm2020/lib/utils/screen-reader-formatter.mjs +0 -43
  462. package/esm2020/lib/utils/scroll-event.mjs +0 -46
  463. package/esm2020/lib/utils/snapping-method.mjs +0 -9
  464. package/esm2020/lib/utils/toggle-class-name.mjs +0 -15
  465. package/esm2020/public-api.mjs +0 -17
  466. package/fesm2015/ng-virtual-list.mjs +0 -8048
  467. package/fesm2015/ng-virtual-list.mjs.map +0 -1
  468. package/fesm2020/ng-virtual-list.mjs +0 -8011
  469. package/fesm2020/ng-virtual-list.mjs.map +0 -1
  470. package/lib/components/ng-scroller/const/index.d.ts +0 -1
  471. package/lib/directives/item-click/item-click.module.d.ts +0 -8
  472. package/lib/enums/method-for-selecting.d.ts +0 -8
  473. package/lib/utils/is-method-for-selecting.d.ts +0 -8
@@ -0,0 +1,279 @@
1
+ import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, ViewChild, ViewContainerRef, ViewEncapsulation, } from "@angular/core";
2
+ import { BehaviorSubject, combineLatest, filter, Subject, takeUntil, tap } from "rxjs";
3
+ import { toggleClassName } from "../../../../utils";
4
+ import { CLASS_LIST_HORIZONTAL, CLASS_LIST_VERTICAL, DEFAULT_DIRECTION, DEFAULT_DIVIDES, DEFAULT_DYNAMIC_SIZE, DEFAULT_ITEM_SIZE, DEFAULT_SCROLLBAR_ENABLED, PX, TRACK_BY_PROPERTY_NAME, } from "../../../../const";
5
+ import { PrerenderTrackBox } from "../../core";
6
+ import { PrerenderTrackBoxEvents } from "../../events";
7
+ import { NgPrerenderVirtualListItemComponent } from "../ng-prerender-list-item/ng-prerender-list-item.component";
8
+ import { DisposableComponent } from "../../../../utils/disposable-component";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../ng-prerender-scroller/ng-prerender-scroller.component";
11
+ import * as i2 from "@angular/common";
12
+ /**
13
+ * NgPrerenderList
14
+ * Maximum performance for extremely large lists.
15
+ * It is based on algorithms for virtualization of screen objects.
16
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.ts
17
+ * @author Evgenii Alexandrovich Grebennikov
18
+ * @email djonnyx@gmail.com
19
+ */
20
+ export class NgPrerenderList extends DisposableComponent {
21
+ _listContainerRef;
22
+ _$enabled = new BehaviorSubject(false);
23
+ $enabled = this._$enabled.asObservable();
24
+ set enabled(v) {
25
+ if (this._$enabled.getValue() !== v) {
26
+ this._$enabled.next(v);
27
+ }
28
+ }
29
+ get enabled() { return this._$enabled.getValue(); }
30
+ _$direction = new BehaviorSubject(DEFAULT_DIRECTION);
31
+ $direction = this._$direction.asObservable();
32
+ set direction(v) {
33
+ if (this._$direction.getValue() !== v) {
34
+ this._$direction.next(v);
35
+ }
36
+ }
37
+ get direction() { return this._$direction.getValue(); }
38
+ _$isVertical = new BehaviorSubject(true);
39
+ $isVertical = this._$isVertical.asObservable();
40
+ set isVertical(v) {
41
+ if (this._$isVertical.getValue() !== v) {
42
+ this._$isVertical.next(v);
43
+ }
44
+ }
45
+ get isVertical() { return this._$isVertical.getValue(); }
46
+ _$scrollbarEnabled = new BehaviorSubject(DEFAULT_SCROLLBAR_ENABLED);
47
+ $scrollbarEnabled = this._$scrollbarEnabled.asObservable();
48
+ set scrollbarEnabled(v) {
49
+ if (this._$scrollbarEnabled.getValue() !== v) {
50
+ this._$scrollbarEnabled.next(v);
51
+ }
52
+ }
53
+ get scrollbarEnabled() { return this._$scrollbarEnabled.getValue(); }
54
+ _$startOffset = new BehaviorSubject(0);
55
+ $startOffset = this._$startOffset.asObservable();
56
+ set startOffset(v) {
57
+ if (this._$startOffset.getValue() !== v) {
58
+ this._$startOffset.next(v);
59
+ }
60
+ }
61
+ get startOffset() { return this._$startOffset.getValue(); }
62
+ _$endOffset = new BehaviorSubject(0);
63
+ $endOffset = this._$endOffset.asObservable();
64
+ set endOffset(v) {
65
+ if (this._$endOffset.getValue() !== v) {
66
+ this._$endOffset.next(v);
67
+ }
68
+ }
69
+ get endOffset() { return this._$endOffset.getValue(); }
70
+ _$bounds = new BehaviorSubject({ width: 0, height: 0 });
71
+ $bounds = this._$bounds.asObservable();
72
+ set bounds(v) {
73
+ if (this._$bounds.getValue() !== v) {
74
+ this._$bounds.next(v);
75
+ }
76
+ }
77
+ get bounds() { return this._$bounds.getValue(); }
78
+ _$dynamic = new BehaviorSubject(DEFAULT_DYNAMIC_SIZE);
79
+ $dynamic = this._$dynamic.asObservable();
80
+ set dynamic(v) {
81
+ if (this._$dynamic.getValue() !== v) {
82
+ this._$dynamic.next(v);
83
+ }
84
+ }
85
+ get dynamic() { return this._$dynamic.getValue(); }
86
+ _$itemSize = new BehaviorSubject(DEFAULT_ITEM_SIZE);
87
+ $itemSize = this._$itemSize.asObservable();
88
+ set itemSize(v) {
89
+ if (this._$itemSize.getValue() !== v) {
90
+ this._$itemSize.next(v);
91
+ }
92
+ }
93
+ get itemSize() { return this._$itemSize.getValue(); }
94
+ _$trackBy = new BehaviorSubject(TRACK_BY_PROPERTY_NAME);
95
+ $trackBy = this._$trackBy.asObservable();
96
+ set trackBy(v) {
97
+ if (this._$trackBy.getValue() !== v) {
98
+ this._$trackBy.next(v);
99
+ }
100
+ }
101
+ get trackBy() { return this._$trackBy.getValue(); }
102
+ _$divides = new BehaviorSubject(DEFAULT_DIVIDES);
103
+ $divides = this._$divides.asObservable();
104
+ set divides(v) {
105
+ if (this._$divides.getValue() !== v) {
106
+ this._$divides.next(v);
107
+ }
108
+ }
109
+ get divides() { return this._$divides.getValue(); }
110
+ _$items = new BehaviorSubject([]);
111
+ $items = this._$items.asObservable();
112
+ set items(v) {
113
+ if (this._$items.getValue() !== v) {
114
+ this._$items.next(v);
115
+ }
116
+ }
117
+ get items() { return this._$items.getValue(); }
118
+ _$itemRenderer = new BehaviorSubject(null);
119
+ $itemRenderer = this._$itemRenderer.asObservable();
120
+ set itemRenderer(v) {
121
+ if (this._$itemRenderer.getValue() !== v) {
122
+ this._$itemRenderer.next(v);
123
+ }
124
+ }
125
+ get itemRenderer() { return this._$itemRenderer.getValue(); }
126
+ _$itemComponentClass = new BehaviorSubject(NgPrerenderVirtualListItemComponent);
127
+ $itemComponentClass = this._$itemComponentClass.asObservable();
128
+ set itemComponentClass(v) {
129
+ if (this._$itemComponentClass.getValue() !== v) {
130
+ this._$itemComponentClass.next(v);
131
+ }
132
+ }
133
+ get itemComponentClass() { return this._$itemComponentClass.getValue(); }
134
+ _$classes = new BehaviorSubject({ prepared: true });
135
+ $classes = this._$classes.asObservable();
136
+ _$render = new Subject();
137
+ $render = this._$render.asObservable();
138
+ _$componentResize = new Subject();
139
+ $componentResize = this._$componentResize.asObservable();
140
+ _trackBox = new PrerenderTrackBox();
141
+ _onTrackBoxResizeHandler = (cache) => {
142
+ this._$componentResize.next(cache);
143
+ };
144
+ _elementRef = inject(ElementRef);
145
+ get active() { return this._trackBox?.active ?? false; }
146
+ _activated = false;
147
+ _subscriptions = new Array();
148
+ constructor() {
149
+ super();
150
+ const $enabled = this.$enabled;
151
+ $enabled.pipe(takeUntil(this._$unsubscribe), tap(enabled => {
152
+ if (enabled) {
153
+ this.activate();
154
+ }
155
+ else {
156
+ this.deactivate();
157
+ }
158
+ })).subscribe();
159
+ }
160
+ activate() {
161
+ if (this._activated) {
162
+ return;
163
+ }
164
+ this._activated = true;
165
+ this._trackBox.addEventListener(PrerenderTrackBoxEvents.RESIZE, this._onTrackBoxResizeHandler);
166
+ this._subscriptions.push(this.$isVertical.pipe(takeUntil(this._$unsubscribe), tap(v => {
167
+ const el = this._elementRef.nativeElement;
168
+ toggleClassName(el, v ? CLASS_LIST_VERTICAL : CLASS_LIST_HORIZONTAL, v ? CLASS_LIST_HORIZONTAL : CLASS_LIST_VERTICAL);
169
+ })).subscribe());
170
+ this._subscriptions.push(this.$bounds.pipe(takeUntil(this._$unsubscribe), filter(v => !!v), tap(bounds => {
171
+ const { width, height } = bounds, el = this._elementRef.nativeElement;
172
+ el.style.width = `${width}${PX}`;
173
+ el.style.height = `${height}${PX}`;
174
+ })).subscribe());
175
+ this._subscriptions.push(combineLatest([this.$bounds, this.$items]).pipe(takeUntil(this._$unsubscribe), filter(([b, i]) => !!b && !!i), tap(([bounds, items]) => {
176
+ if (this.active && !!this._trackBox) {
177
+ this._trackBox.reset(this._$itemComponentClass.getValue(), items, this._$bounds.getValue(), {
178
+ itemRenderer: this._$itemRenderer.getValue(),
179
+ dynamic: this._$dynamic.getValue(),
180
+ divides: this._$divides.getValue(),
181
+ itemSize: this._$itemSize.getValue(),
182
+ isVertical: this._$isVertical.getValue(),
183
+ trackBy: this._$trackBy.getValue(),
184
+ });
185
+ }
186
+ })).subscribe());
187
+ const $componentResize = this.$componentResize;
188
+ this._subscriptions.push($componentResize.pipe(takeUntil(this._$unsubscribe), tap(cache => {
189
+ this._$render.next(cache);
190
+ })).subscribe());
191
+ }
192
+ deactivate() {
193
+ if (!this._activated) {
194
+ return;
195
+ }
196
+ this._activated = false;
197
+ this.off();
198
+ if (!!this._trackBox) {
199
+ this._trackBox.removeEventListener(PrerenderTrackBoxEvents.RESIZE, this._onTrackBoxResizeHandler);
200
+ }
201
+ const subscriptions = this._subscriptions;
202
+ for (const subscr of subscriptions) {
203
+ if (!subscr.closed) {
204
+ subscr.unsubscribe();
205
+ }
206
+ }
207
+ this._subscriptions = [];
208
+ }
209
+ clear() {
210
+ if (!!this._trackBox) {
211
+ this._trackBox.clear();
212
+ }
213
+ }
214
+ on(items = null) {
215
+ if (!!this._trackBox) {
216
+ this._trackBox.on();
217
+ this._$items.next(items ?? []);
218
+ }
219
+ }
220
+ off() {
221
+ if (!!this._trackBox) {
222
+ this._trackBox.off();
223
+ }
224
+ }
225
+ ngAfterViewInit() {
226
+ this._trackBox.create(this._listContainerRef);
227
+ }
228
+ ngOnDestroy() {
229
+ super.ngOnDestroy();
230
+ this.dispose();
231
+ }
232
+ dispose() {
233
+ this._subscriptions = [];
234
+ if (!!this._trackBox) {
235
+ this._trackBox.dispose();
236
+ this._trackBox = null;
237
+ }
238
+ }
239
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderList, deps: [], target: i0.ɵɵFactoryTarget.Component });
240
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NgPrerenderList, selector: "ng-prerender-list", inputs: { enabled: "enabled", direction: "direction", isVertical: "isVertical", scrollbarEnabled: "scrollbarEnabled", startOffset: "startOffset", endOffset: "endOffset", bounds: "bounds", dynamic: "dynamic", itemSize: "itemSize", trackBy: "trackBy", divides: "divides", items: "items", itemRenderer: "itemRenderer", itemComponentClass: "itemComponentClass" }, host: { styleAttribute: "position: relative;" }, viewQueries: [{ propertyName: "_listContainerRef", first: true, predicate: ["renderersContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<ng-prerender-scroller #scroller class=\"ngvl__list-scroller\" [classes]=\"($classes | async)!\"\r\n [direction]=\"($direction | async)!\" [scrollbarEnabled]=\"($scrollbarEnabled | async)!\"\r\n [startOffset]=\"($startOffset | async)!\" [endOffset]=\"($endOffset | async)!\">\r\n <ng-container #renderersContainer></ng-container>\r\n</ng-prerender-scroller>", styles: [":host{position:relative;display:block;width:400px;overflow:hidden}:host(.horizontal){height:48px}:host(.vertical){height:320px}.ngvl__snapped-container{position:relative;width:100%;opacity:0}.ngvl__snapped-container.prepared{opacity:1}.ngvl__list-snapper{-webkit-tap-highlight-color:transparent;position:absolute;list-style:none;left:0;top:0;z-index:1}.ngvl__list-scroller{-webkit-tap-highlight-color:transparent;position:absolute;left:0;top:0;width:100%;height:100%;z-index:0}.ngvl__screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n", ":host{width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: i1.NgPrerenderScrollerComponent, selector: "ng-prerender-scroller", inputs: ["scrollbarEnabled", "classes"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom });
241
+ }
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderList, decorators: [{
243
+ type: Component,
244
+ args: [{ selector: 'ng-prerender-list', host: {
245
+ 'style': 'position: relative;'
246
+ }, standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.ShadowDom, template: "<ng-prerender-scroller #scroller class=\"ngvl__list-scroller\" [classes]=\"($classes | async)!\"\r\n [direction]=\"($direction | async)!\" [scrollbarEnabled]=\"($scrollbarEnabled | async)!\"\r\n [startOffset]=\"($startOffset | async)!\" [endOffset]=\"($endOffset | async)!\">\r\n <ng-container #renderersContainer></ng-container>\r\n</ng-prerender-scroller>", styles: [":host{position:relative;display:block;width:400px;overflow:hidden}:host(.horizontal){height:48px}:host(.vertical){height:320px}.ngvl__snapped-container{position:relative;width:100%;opacity:0}.ngvl__snapped-container.prepared{opacity:1}.ngvl__list-snapper{-webkit-tap-highlight-color:transparent;position:absolute;list-style:none;left:0;top:0;z-index:1}.ngvl__list-scroller{-webkit-tap-highlight-color:transparent;position:absolute;left:0;top:0;width:100%;height:100%;z-index:0}.ngvl__screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n", ":host{width:100%;height:100%}\n"] }]
247
+ }], ctorParameters: () => [], propDecorators: { _listContainerRef: [{
248
+ type: ViewChild,
249
+ args: ['renderersContainer', { read: ViewContainerRef }]
250
+ }], enabled: [{
251
+ type: Input
252
+ }], direction: [{
253
+ type: Input
254
+ }], isVertical: [{
255
+ type: Input
256
+ }], scrollbarEnabled: [{
257
+ type: Input
258
+ }], startOffset: [{
259
+ type: Input
260
+ }], endOffset: [{
261
+ type: Input
262
+ }], bounds: [{
263
+ type: Input
264
+ }], dynamic: [{
265
+ type: Input
266
+ }], itemSize: [{
267
+ type: Input
268
+ }], trackBy: [{
269
+ type: Input
270
+ }], divides: [{
271
+ type: Input
272
+ }], items: [{
273
+ type: Input
274
+ }], itemRenderer: [{
275
+ type: Input
276
+ }], itemComponentClass: [{
277
+ type: Input
278
+ }] } });
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJlcmVuZGVyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItY29udGFpbmVyL2NvbXBvbmVudHMvbmctcHJlcmVuZGVyLWxpc3QvbmctcHJlcmVuZGVyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItY29udGFpbmVyL2NvbXBvbmVudHMvbmctcHJlcmVuZGVyLWxpc3QvbmctcHJlcmVuZGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBMEIsU0FBUyxFQUNoRyxnQkFBZ0IsRUFBRSxpQkFBaUIsR0FDdEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNILHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFDdkgseUJBQXlCLEVBQUUsRUFBRSxFQUFFLHNCQUFzQixHQUN4RCxNQUFNLG1CQUFtQixDQUFDO0FBTTNCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFakgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFFN0U7Ozs7Ozs7R0FPRztBQVlILE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUU1QyxpQkFBaUIsQ0FBK0I7SUFFOUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pELFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELElBQ0ksT0FBTyxDQUFDLENBQVU7UUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6QyxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQVksaUJBQWlCLENBQUMsQ0FBQztJQUNqRSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0RCxJQUNJLFNBQVMsQ0FBQyxDQUFZO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFN0MsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ25ELFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELElBQ0ksVUFBVSxDQUFDLENBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUvQyxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzlFLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRSxJQUNJLGdCQUFnQixDQUFDLENBQVU7UUFDM0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksZ0JBQWdCLEtBQUssT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNELGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxJQUNJLFdBQVcsQ0FBQyxDQUFTO1FBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFakQsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELElBQ0ksU0FBUyxDQUFDLENBQVM7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU3QyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELElBQ0ksTUFBTSxDQUFDLENBQWU7UUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV2QyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsb0JBQW9CLENBQUMsQ0FBQztJQUNoRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxJQUNJLE9BQU8sQ0FBQyxDQUFVO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFekMsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFTLGlCQUFpQixDQUFDLENBQUM7SUFDN0QsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsSUFDSSxRQUFRLENBQUMsQ0FBUztRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNDLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2pFLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELElBQ0ksT0FBTyxDQUFDLENBQVM7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6QyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVMsZUFBZSxDQUFDLENBQUM7SUFDMUQsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsSUFDSSxPQUFPLENBQUMsQ0FBUztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsRUFBRSxDQUFDLENBQUM7SUFDM0QsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsSUFDSSxLQUFLLENBQUMsQ0FBeUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVyQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQTBCLElBQUksQ0FBQyxDQUFDO0lBQ3JFLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVELElBQ0ksWUFBWSxDQUFDLENBQTBCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbkQsb0JBQW9CLEdBQUcsSUFBSSxlQUFlLENBQTRDLG1DQUFtQyxDQUFDLENBQUM7SUFDNUgsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hFLElBQ0ksa0JBQWtCLENBQUMsQ0FBNEM7UUFDL0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksa0JBQWtCLEtBQUssT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRS9ELFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRixRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUxQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFDakQsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFL0IsaUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFDaEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTNELFNBQVMsR0FBNkIsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBRTlELHdCQUF3QixHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0lBRU0sV0FBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7SUFFbEUsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRWhELFVBQVUsR0FBWSxLQUFLLENBQUM7SUFFNUIsY0FBYyxHQUFHLElBQUksS0FBSyxFQUFnQixDQUFDO0lBRW5EO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFFUixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQ1QsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsSUFBSSxDQUFDLFNBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFaEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNKLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQzFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxSCxDQUFDLENBQUMsQ0FDTCxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU8sRUFDN0IsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNMLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUcsRUFBRTtvQkFDekYsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFHO29CQUM3QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7b0JBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtvQkFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNwQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7b0JBQ3hDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtpQkFDckMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVmLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDMUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVYLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBVSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxLQUFLLE1BQU0sTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRCxFQUFFLENBQUMsUUFBdUMsSUFBSTtRQUMxQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHO1FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFNBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFrQixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDO3dHQXJTUSxlQUFlOzRGQUFmLGVBQWUsc2pCQUNpQixnQkFBZ0Isb0RDekM3RCwwV0FJd0I7OzRGRG9DWCxlQUFlO2tCQVgzQixTQUFTOytCQUNJLG1CQUFtQixRQUd2Qjt3QkFDRixPQUFPLEVBQUUscUJBQXFCO3FCQUNqQyxjQUNXLEtBQUssbUJBQ0EsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsU0FBUzt3REFJbEMsaUJBQWlCO3NCQUR4QixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQU12RCxPQUFPO3NCQURWLEtBQUs7Z0JBV0YsU0FBUztzQkFEWixLQUFLO2dCQVdGLFVBQVU7c0JBRGIsS0FBSztnQkFXRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBV0YsV0FBVztzQkFEZCxLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSztnQkFXRixNQUFNO3NCQURULEtBQUs7Z0JBV0YsT0FBTztzQkFEVixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixPQUFPO3NCQURWLEtBQUs7Z0JBV0YsT0FBTztzQkFEVixLQUFLO2dCQVdGLEtBQUs7c0JBRFIsS0FBSztnQkFXRixZQUFZO3NCQURmLEtBQUs7Z0JBV0Ysa0JBQWtCO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdG9nZ2xlQ2xhc3NOYW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgICBDTEFTU19MSVNUX0hPUklaT05UQUwsIENMQVNTX0xJU1RfVkVSVElDQUwsIERFRkFVTFRfRElSRUNUSU9OLCBERUZBVUxUX0RJVklERVMsIERFRkFVTFRfRFlOQU1JQ19TSVpFLCBERUZBVUxUX0lURU1fU0laRSxcclxuICAgIERFRkFVTFRfU0NST0xMQkFSX0VOQUJMRUQsIFBYLCBUUkFDS19CWV9QUk9QRVJUWV9OQU1FLFxyXG59IGZyb20gXCIuLi8uLi8uLi8uLi9jb25zdFwiO1xyXG5pbXBvcnQgeyBJU2l6ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBJVmlydHVhbExpc3RDb2xsZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBQcmVyZW5kZXJDYWNoZSB9IGZyb20gXCIuLi8uLi90eXBlcy9jYWNoZVwiO1xyXG5pbXBvcnQgeyBCYXNlVmlydHVhbExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL25nLWxpc3QtaXRlbS9iYXNlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCQxIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVscy9jb21wb25lbnQubW9kZWxcIjtcclxuaW1wb3J0IHsgUHJlcmVuZGVyVHJhY2tCb3ggfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xyXG5pbXBvcnQgeyBQcmVyZW5kZXJUcmFja0JveEV2ZW50cyB9IGZyb20gXCIuLi8uLi9ldmVudHNcIjtcclxuaW1wb3J0IHsgTmdQcmVyZW5kZXJWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi4vbmctcHJlcmVuZGVyLWxpc3QtaXRlbS9uZy1wcmVyZW5kZXItbGlzdC1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vdHlwZXNcIjtcclxuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9kaXNwb3NhYmxlLWNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIE5nUHJlcmVuZGVyTGlzdFxyXG4gKiBNYXhpbXVtIHBlcmZvcm1hbmNlIGZvciBleHRyZW1lbHkgbGFyZ2UgbGlzdHMuXHJcbiAqIEl0IGlzIGJhc2VkIG9uIGFsZ29yaXRobXMgZm9yIHZpcnR1YWxpemF0aW9uIG9mIHNjcmVlbiBvYmplY3RzLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xNC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL2NvbXBvbmVudHMvbmctcHJlcmVuZGVyLWNvbnRhaW5lci9jb21wb25lbnRzL25nLXByZXJlbmRlci1saXN0L25nLXByZXJlbmRlci1saXN0LmNvbXBvbmVudC50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgQWxleGFuZHJvdmljaCBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICduZy1wcmVyZW5kZXItbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmctcHJlcmVuZGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uLy4uLy4uLy4uL25nLXZpcnR1YWwtbGlzdC5jb21wb25lbnQuc2NzcycsICcuL25nLXByZXJlbmRlci1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJ3N0eWxlJzogJ3Bvc2l0aW9uOiByZWxhdGl2ZTsnXHJcbiAgICB9LFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nUHJlcmVuZGVyTGlzdCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgncmVuZGVyZXJzQ29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgICBwcml2YXRlIF9saXN0Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIHByb3RlY3RlZCBfJGVuYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHJlYWRvbmx5ICRlbmFibGVkID0gdGhpcy5fJGVuYWJsZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGVuYWJsZWQodjogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kZW5hYmxlZC5nZXRWYWx1ZSgpICE9PSB2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRlbmFibGVkLm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IGVuYWJsZWQoKSB7IHJldHVybiB0aGlzLl8kZW5hYmxlZC5nZXRWYWx1ZSgpOyB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kZGlyZWN0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaXJlY3Rpb24+KERFRkFVTFRfRElSRUNUSU9OKTtcclxuICAgIHJlYWRvbmx5ICRkaXJlY3Rpb24gPSB0aGlzLl8kZGlyZWN0aW9uLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkaXJlY3Rpb24odjogRGlyZWN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRkaXJlY3Rpb24uZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kZGlyZWN0aW9uLm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IGRpcmVjdGlvbigpIHsgcmV0dXJuIHRoaXMuXyRkaXJlY3Rpb24uZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJGlzVmVydGljYWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcmVhZG9ubHkgJGlzVmVydGljYWwgPSB0aGlzLl8kaXNWZXJ0aWNhbC5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgaXNWZXJ0aWNhbCh2OiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRpc1ZlcnRpY2FsLmdldFZhbHVlKCkgIT09IHYpIHtcclxuICAgICAgICAgICAgdGhpcy5fJGlzVmVydGljYWwubmV4dCh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXQgaXNWZXJ0aWNhbCgpIHsgcmV0dXJuIHRoaXMuXyRpc1ZlcnRpY2FsLmdldFZhbHVlKCk7IH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgXyRzY3JvbGxiYXJFbmFibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihERUZBVUxUX1NDUk9MTEJBUl9FTkFCTEVEKTtcclxuICAgIHJlYWRvbmx5ICRzY3JvbGxiYXJFbmFibGVkID0gdGhpcy5fJHNjcm9sbGJhckVuYWJsZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHNjcm9sbGJhckVuYWJsZWQodjogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kc2Nyb2xsYmFyRW5hYmxlZC5nZXRWYWx1ZSgpICE9PSB2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRzY3JvbGxiYXJFbmFibGVkLm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IHNjcm9sbGJhckVuYWJsZWQoKSB7IHJldHVybiB0aGlzLl8kc2Nyb2xsYmFyRW5hYmxlZC5nZXRWYWx1ZSgpOyB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kc3RhcnRPZmZzZXQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgICByZWFkb25seSAkc3RhcnRPZmZzZXQgPSB0aGlzLl8kc3RhcnRPZmZzZXQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHN0YXJ0T2Zmc2V0KHY6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kc3RhcnRPZmZzZXQuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kc3RhcnRPZmZzZXQubmV4dCh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXQgc3RhcnRPZmZzZXQoKSB7IHJldHVybiB0aGlzLl8kc3RhcnRPZmZzZXQuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJGVuZE9mZnNldCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICAgIHJlYWRvbmx5ICRlbmRPZmZzZXQgPSB0aGlzLl8kZW5kT2Zmc2V0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBlbmRPZmZzZXQodjogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRlbmRPZmZzZXQuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kZW5kT2Zmc2V0Lm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IGVuZE9mZnNldCgpIHsgcmV0dXJuIHRoaXMuXyRlbmRPZmZzZXQuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJGJvdW5kcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVNpemUgfCBudWxsPih7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSk7XHJcbiAgICByZWFkb25seSAkYm91bmRzID0gdGhpcy5fJGJvdW5kcy5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgYm91bmRzKHY6IElTaXplIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLl8kYm91bmRzLmdldFZhbHVlKCkgIT09IHYpIHtcclxuICAgICAgICAgICAgdGhpcy5fJGJvdW5kcy5uZXh0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldCBib3VuZHMoKSB7IHJldHVybiB0aGlzLl8kYm91bmRzLmdldFZhbHVlKCk7IH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgXyRkeW5hbWljID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihERUZBVUxUX0RZTkFNSUNfU0laRSk7XHJcbiAgICByZWFkb25seSAkZHluYW1pYyA9IHRoaXMuXyRkeW5hbWljLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkeW5hbWljKHY6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAodGhpcy5fJGR5bmFtaWMuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kZHluYW1pYy5uZXh0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldCBkeW5hbWljKCkgeyByZXR1cm4gdGhpcy5fJGR5bmFtaWMuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJGl0ZW1TaXplID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KERFRkFVTFRfSVRFTV9TSVpFKTtcclxuICAgIHJlYWRvbmx5ICRpdGVtU2l6ZSA9IHRoaXMuXyRpdGVtU2l6ZS5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgaXRlbVNpemUodjogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRpdGVtU2l6ZS5nZXRWYWx1ZSgpICE9PSB2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRpdGVtU2l6ZS5uZXh0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldCBpdGVtU2l6ZSgpIHsgcmV0dXJuIHRoaXMuXyRpdGVtU2l6ZS5nZXRWYWx1ZSgpOyB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kdHJhY2tCeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihUUkFDS19CWV9QUk9QRVJUWV9OQU1FKTtcclxuICAgIHJlYWRvbmx5ICR0cmFja0J5ID0gdGhpcy5fJHRyYWNrQnkuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHRyYWNrQnkodjogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyR0cmFja0J5LmdldFZhbHVlKCkgIT09IHYpIHtcclxuICAgICAgICAgICAgdGhpcy5fJHRyYWNrQnkubmV4dCh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXQgdHJhY2tCeSgpIHsgcmV0dXJuIHRoaXMuXyR0cmFja0J5LmdldFZhbHVlKCk7IH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgXyRkaXZpZGVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KERFRkFVTFRfRElWSURFUyk7XHJcbiAgICByZWFkb25seSAkZGl2aWRlcyA9IHRoaXMuXyRkaXZpZGVzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkaXZpZGVzKHY6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kZGl2aWRlcy5nZXRWYWx1ZSgpICE9PSB2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRkaXZpZGVzLm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IGRpdmlkZXMoKSB7IHJldHVybiB0aGlzLl8kZGl2aWRlcy5nZXRWYWx1ZSgpOyB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElWaXJ0dWFsTGlzdENvbGxlY3Rpb24+KFtdKTtcclxuICAgIHJlYWRvbmx5ICRpdGVtcyA9IHRoaXMuXyRpdGVtcy5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgaXRlbXModjogSVZpcnR1YWxMaXN0Q29sbGVjdGlvbikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kaXRlbXMuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kaXRlbXMubmV4dCh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXQgaXRlbXMoKSB7IHJldHVybiB0aGlzLl8kaXRlbXMuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJGl0ZW1SZW5kZXJlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+KG51bGwpO1xyXG4gICAgcmVhZG9ubHkgJGl0ZW1SZW5kZXJlciA9IHRoaXMuXyRpdGVtUmVuZGVyZXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGl0ZW1SZW5kZXJlcih2OiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLl8kaXRlbVJlbmRlcmVyLmdldFZhbHVlKCkgIT09IHYpIHtcclxuICAgICAgICAgICAgdGhpcy5fJGl0ZW1SZW5kZXJlci5uZXh0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldCBpdGVtUmVuZGVyZXIoKSB7IHJldHVybiB0aGlzLl8kaXRlbVJlbmRlcmVyLmdldFZhbHVlKCk7IH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgXyRpdGVtQ29tcG9uZW50Q2xhc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbXBvbmVudCQxPEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQ+PihOZ1ByZXJlbmRlclZpcnR1YWxMaXN0SXRlbUNvbXBvbmVudCk7XHJcbiAgICByZWFkb25seSAkaXRlbUNvbXBvbmVudENsYXNzID0gdGhpcy5fJGl0ZW1Db21wb25lbnRDbGFzcy5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgaXRlbUNvbXBvbmVudENsYXNzKHY6IENvbXBvbmVudCQxPEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQ+KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRpdGVtQ29tcG9uZW50Q2xhc3MuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kaXRlbUNvbXBvbmVudENsYXNzLm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IGl0ZW1Db21wb25lbnRDbGFzcygpIHsgcmV0dXJuIHRoaXMuXyRpdGVtQ29tcG9uZW50Q2xhc3MuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJGNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0+KHsgcHJlcGFyZWQ6IHRydWUgfSk7XHJcbiAgICByZWFkb25seSAkY2xhc3NlcyA9IHRoaXMuXyRjbGFzc2VzLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgXyRyZW5kZXIgPSBuZXcgU3ViamVjdDxQcmVyZW5kZXJDYWNoZT4oKTtcclxuICAgICRyZW5kZXIgPSB0aGlzLl8kcmVuZGVyLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgXyRjb21wb25lbnRSZXNpemUgPSBuZXcgU3ViamVjdDxQcmVyZW5kZXJDYWNoZT4oKTtcclxuICAgIHByb3RlY3RlZCAkY29tcG9uZW50UmVzaXplID0gdGhpcy5fJGNvbXBvbmVudFJlc2l6ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBwcml2YXRlIF90cmFja0JveDogUHJlcmVuZGVyVHJhY2tCb3ggfCBudWxsID0gbmV3IFByZXJlbmRlclRyYWNrQm94KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfb25UcmFja0JveFJlc2l6ZUhhbmRsZXIgPSAoY2FjaGU6IFByZXJlbmRlckNhY2hlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fJGNvbXBvbmVudFJlc2l6ZS5uZXh0KGNhY2hlKTtcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XHJcblxyXG4gICAgZ2V0IGFjdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX3RyYWNrQm94Py5hY3RpdmUgPz8gZmFsc2U7IH1cclxuXHJcbiAgICBwcml2YXRlIF9hY3RpdmF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IEFycmF5PFN1YnNjcmlwdGlvbj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICBjb25zdCAkZW5hYmxlZCA9IHRoaXMuJGVuYWJsZWQ7XHJcbiAgICAgICAgJGVuYWJsZWQucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgIHRhcChlbmFibGVkID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhY3RpdmF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYWN0aXZhdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fdHJhY2tCb3ghLmFkZEV2ZW50TGlzdGVuZXIoUHJlcmVuZGVyVHJhY2tCb3hFdmVudHMuUkVTSVpFLCB0aGlzLl9vblRyYWNrQm94UmVzaXplSGFuZGxlcik7XHJcblxyXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0aGlzLiRpc1ZlcnRpY2FsLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzTmFtZShlbCwgdiA/IENMQVNTX0xJU1RfVkVSVElDQUwgOiBDTEFTU19MSVNUX0hPUklaT05UQUwsIHYgPyBDTEFTU19MSVNUX0hPUklaT05UQUwgOiBDTEFTU19MSVNUX1ZFUlRJQ0FMKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0aGlzLiRib3VuZHMucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgIGZpbHRlcih2ID0+ICEhdiksXHJcbiAgICAgICAgICAgIHRhcChib3VuZHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBib3VuZHMhLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgZWwuc3R5bGUud2lkdGggPSBgJHt3aWR0aH0ke1BYfWA7XHJcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9JHtQWH1gO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApLnN1YnNjcmliZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKGNvbWJpbmVMYXRlc3QoW3RoaXMuJGJvdW5kcywgdGhpcy4kaXRlbXNdKS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgZmlsdGVyKChbYiwgaV0pID0+ICEhYiAmJiAhIWkpLFxyXG4gICAgICAgICAgICB0YXAoKFtib3VuZHMsIGl0ZW1zXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlICYmICEhdGhpcy5fdHJhY2tCb3gpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmFja0JveC5yZXNldCh0aGlzLl8kaXRlbUNvbXBvbmVudENsYXNzLmdldFZhbHVlKCksIGl0ZW1zLCB0aGlzLl8kYm91bmRzLmdldFZhbHVlKCkhLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXJlcjogdGhpcy5fJGl0ZW1SZW5kZXJlci5nZXRWYWx1ZSgpISxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pYzogdGhpcy5fJGR5bmFtaWMuZ2V0VmFsdWUoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGl2aWRlczogdGhpcy5fJGRpdmlkZXMuZ2V0VmFsdWUoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNpemU6IHRoaXMuXyRpdGVtU2l6ZS5nZXRWYWx1ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1ZlcnRpY2FsOiB0aGlzLl8kaXNWZXJ0aWNhbC5nZXRWYWx1ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0aGlzLl8kdHJhY2tCeS5nZXRWYWx1ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApLnN1YnNjcmliZSgpKTtcclxuXHJcbiAgICAgICAgY29uc3QgJGNvbXBvbmVudFJlc2l6ZSA9IHRoaXMuJGNvbXBvbmVudFJlc2l6ZTtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goJGNvbXBvbmVudFJlc2l6ZS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgdGFwKGNhY2hlID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRyZW5kZXIubmV4dChjYWNoZSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICkuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlYWN0aXZhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmF0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9hY3RpdmF0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5vZmYoKTtcclxuXHJcbiAgICAgICAgaWYgKCEhdGhpcy5fdHJhY2tCb3gpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhY2tCb3ghLnJlbW92ZUV2ZW50TGlzdGVuZXIoUHJlcmVuZGVyVHJhY2tCb3hFdmVudHMuUkVTSVpFLCB0aGlzLl9vblRyYWNrQm94UmVzaXplSGFuZGxlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gdGhpcy5fc3Vic2NyaXB0aW9ucztcclxuICAgICAgICBmb3IgKGNvbnN0IHN1YnNjciBvZiBzdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmICghc3Vic2NyLmNsb3NlZCkge1xyXG4gICAgICAgICAgICAgICAgc3Vic2NyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyKCkge1xyXG4gICAgICAgIGlmICghIXRoaXMuX3RyYWNrQm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYWNrQm94LmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uKGl0ZW1zOiBJVmlydHVhbExpc3RDb2xsZWN0aW9uIHwgbnVsbCA9IG51bGwpIHtcclxuICAgICAgICBpZiAoISF0aGlzLl90cmFja0JveCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFja0JveC5vbigpO1xyXG4gICAgICAgICAgICB0aGlzLl8kaXRlbXMubmV4dChpdGVtcyA/PyBbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9mZigpIHtcclxuICAgICAgICBpZiAoISF0aGlzLl90cmFja0JveCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFja0JveC5vZmYoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuX3RyYWNrQm94IS5jcmVhdGUodGhpcy5fbGlzdENvbnRhaW5lclJlZiEpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzcG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3Bvc2UoKSB7XHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoISF0aGlzLl90cmFja0JveCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFja0JveC5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYWNrQm94ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCI8bmctcHJlcmVuZGVyLXNjcm9sbGVyICNzY3JvbGxlciBjbGFzcz1cIm5ndmxfX2xpc3Qtc2Nyb2xsZXJcIiBbY2xhc3Nlc109XCIoJGNsYXNzZXMgfCBhc3luYykhXCJcclxuICBbZGlyZWN0aW9uXT1cIigkZGlyZWN0aW9uIHwgYXN5bmMpIVwiIFtzY3JvbGxiYXJFbmFibGVkXT1cIigkc2Nyb2xsYmFyRW5hYmxlZCB8IGFzeW5jKSFcIlxyXG4gIFtzdGFydE9mZnNldF09XCIoJHN0YXJ0T2Zmc2V0IHwgYXN5bmMpIVwiIFtlbmRPZmZzZXRdPVwiKCRlbmRPZmZzZXQgfCBhc3luYykhXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAjcmVuZGVyZXJzQ29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG48L25nLXByZXJlbmRlci1zY3JvbGxlcj4iXX0=
@@ -1,21 +1,21 @@
1
- import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { NgPrerenderVirtualListItemModule } from '../ng-prerender-list-item/ng-prerender-list-item.module';
4
- import { NgPrerenderScrollerModule } from '../ng-prerender-scroller/ng-prerender-scroller.module';
5
- import { NgPrerenderList } from './ng-prerender-list.component';
6
- import * as i0 from "@angular/core";
7
- export class NgPrerenderListModule {
8
- }
9
- NgPrerenderListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgPrerenderListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- NgPrerenderListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NgPrerenderListModule, declarations: [NgPrerenderList], imports: [CommonModule, NgPrerenderVirtualListItemModule, NgPrerenderScrollerModule], exports: [NgPrerenderList] });
11
- NgPrerenderListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgPrerenderListModule, imports: [CommonModule, NgPrerenderVirtualListItemModule, NgPrerenderScrollerModule] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgPrerenderListModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- declarations: [NgPrerenderList],
16
- exports: [NgPrerenderList],
17
- imports: [CommonModule, NgPrerenderVirtualListItemModule, NgPrerenderScrollerModule],
18
- schemas: [NO_ERRORS_SCHEMA],
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJlcmVuZGVyLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItY29udGFpbmVyL2NvbXBvbmVudHMvbmctcHJlcmVuZGVyLWxpc3QvbmctcHJlcmVuZGVyLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFRaEUsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjttSEFBckIscUJBQXFCLGlCQUxmLGVBQWUsYUFFcEIsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLHlCQUF5QixhQUR6RSxlQUFlO21IQUloQixxQkFBcUIsWUFIcEIsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLHlCQUF5QjsyRkFHMUUscUJBQXFCO2tCQU5qQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUseUJBQXlCLENBQUM7b0JBQ3BGLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyVmlydHVhbExpc3RJdGVtTW9kdWxlIH0gZnJvbSAnLi4vbmctcHJlcmVuZGVyLWxpc3QtaXRlbS9uZy1wcmVyZW5kZXItbGlzdC1pdGVtLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyU2Nyb2xsZXJNb2R1bGUgfSBmcm9tICcuLi9uZy1wcmVyZW5kZXItc2Nyb2xsZXIvbmctcHJlcmVuZGVyLXNjcm9sbGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyTGlzdCB9IGZyb20gJy4vbmctcHJlcmVuZGVyLWxpc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ1ByZXJlbmRlckxpc3RdLFxyXG4gICAgZXhwb3J0czogW05nUHJlcmVuZGVyTGlzdF0sXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ1ByZXJlbmRlclZpcnR1YWxMaXN0SXRlbU1vZHVsZSwgTmdQcmVyZW5kZXJTY3JvbGxlck1vZHVsZV0sXHJcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1ByZXJlbmRlckxpc3RNb2R1bGUgeyB9XHJcbiJdfQ==
1
+ import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgPrerenderVirtualListItemModule } from '../ng-prerender-list-item/ng-prerender-list-item.module';
4
+ import { NgPrerenderScrollerModule } from '../ng-prerender-scroller/ng-prerender-scroller.module';
5
+ import { NgPrerenderList } from './ng-prerender-list.component';
6
+ import * as i0 from "@angular/core";
7
+ export class NgPrerenderListModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderListModule, declarations: [NgPrerenderList], imports: [CommonModule, NgPrerenderVirtualListItemModule, NgPrerenderScrollerModule], exports: [NgPrerenderList] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderListModule, imports: [CommonModule, NgPrerenderVirtualListItemModule, NgPrerenderScrollerModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderListModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [NgPrerenderList],
16
+ exports: [NgPrerenderList],
17
+ imports: [CommonModule, NgPrerenderVirtualListItemModule, NgPrerenderScrollerModule],
18
+ schemas: [NO_ERRORS_SCHEMA],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJlcmVuZGVyLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItY29udGFpbmVyL2NvbXBvbmVudHMvbmctcHJlcmVuZGVyLWxpc3QvbmctcHJlcmVuZGVyLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFRaEUsTUFBTSxPQUFPLHFCQUFxQjt3R0FBckIscUJBQXFCO3lHQUFyQixxQkFBcUIsaUJBTGYsZUFBZSxhQUVwQixZQUFZLEVBQUUsZ0NBQWdDLEVBQUUseUJBQXlCLGFBRHpFLGVBQWU7eUdBSWhCLHFCQUFxQixZQUhwQixZQUFZLEVBQUUsZ0NBQWdDLEVBQUUseUJBQXlCOzs0RkFHMUUscUJBQXFCO2tCQU5qQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUseUJBQXlCLENBQUM7b0JBQ3BGLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyVmlydHVhbExpc3RJdGVtTW9kdWxlIH0gZnJvbSAnLi4vbmctcHJlcmVuZGVyLWxpc3QtaXRlbS9uZy1wcmVyZW5kZXItbGlzdC1pdGVtLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyU2Nyb2xsZXJNb2R1bGUgfSBmcm9tICcuLi9uZy1wcmVyZW5kZXItc2Nyb2xsZXIvbmctcHJlcmVuZGVyLXNjcm9sbGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyTGlzdCB9IGZyb20gJy4vbmctcHJlcmVuZGVyLWxpc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ1ByZXJlbmRlckxpc3RdLFxyXG4gICAgZXhwb3J0czogW05nUHJlcmVuZGVyTGlzdF0sXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ1ByZXJlbmRlclZpcnR1YWxMaXN0SXRlbU1vZHVsZSwgTmdQcmVyZW5kZXJTY3JvbGxlck1vZHVsZV0sXHJcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1ByZXJlbmRlckxpc3RNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,94 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { NgVirtualListItemComponent } from '../../../ng-list-item/ng-virtual-list-item.component';
3
+ import { DEFAULT_ZINDEX, DISPLAY_BLOCK, DISPLAY_NONE, HIDDEN_ZINDEX, PX, SIZE_AUTO, VISIBILITY_HIDDEN, VISIBILITY_VISIBLE, } from '../../../../const';
4
+ import { ID, POSITION, POSITION_ZERO } from '../../../ng-list-item/const';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../../../../directives/virtual-click/virtual-click.directive";
8
+ /**
9
+ * NgPrerenderVirtualListItemComponent
10
+ * Maximum performance for extremely large lists.
11
+ * It is based on algorithms for virtualization of screen objects.
12
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.ts
13
+ * @author Evgenii Alexandrovich Grebennikov
14
+ * @email djonnyx@gmail.com
15
+ */
16
+ export class NgPrerenderVirtualListItemComponent extends NgVirtualListItemComponent {
17
+ update() {
18
+ const data = this._data, regular = this.regular, length = this._regularLength, el = this._elementRef.nativeElement, itemElement = this._item?.nativeElement, containerElement = this._container?.nativeElement;
19
+ if (!!data && !!el && !!itemElement && !!containerElement) {
20
+ const styles = el.style, itemElementStyles = itemElement.style;
21
+ el.setAttribute(ID, `${data.id}`);
22
+ styles.zIndex = data.config.zIndex;
23
+ if (regular) {
24
+ el.setAttribute(POSITION, POSITION_ZERO);
25
+ }
26
+ else {
27
+ el.setAttribute(POSITION, `${data.config.isVertical ? data.measures.y : data.measures.x}`);
28
+ }
29
+ if (data.config.divides > 1) {
30
+ styles.height = data.config.isVertical ? `${data.measures.row.size}${PX}` : `${data.measures.height}${PX}`;
31
+ styles.width = data.config.isVertical ? `${data.measures.width}${PX}` : `${data.measures.row.size}${PX}`;
32
+ itemElementStyles.minWidth = styles.minWidth = `${data.measures.minWidth}${PX}`;
33
+ itemElementStyles.maxWidth = styles.maxWidth = `${data.measures.maxWidth}${PX}`;
34
+ itemElementStyles.minHeight = styles.minHeight = `${data.measures.minHeight}${PX}`;
35
+ itemElementStyles.maxHeight = styles.maxHeight = `${data.measures.maxHeight}${PX}`;
36
+ itemElementStyles.height = data.config.isVertical ? data.config.dynamic ? SIZE_AUTO : `${data.measures.height}${PX}` : regular ? length : `${data.measures.height}${PX}`;
37
+ itemElementStyles.width = data.config.isVertical ? regular ? length : `${data.measures.width}${PX}` : data.config.dynamic ? SIZE_AUTO : `${data.measures.width}${PX}`;
38
+ }
39
+ else {
40
+ styles.height = data.config.isVertical ? data.config.dynamic ? SIZE_AUTO : `${data.measures.height}${PX}` : regular ? length : `${data.measures.height}${PX}`;
41
+ styles.width = data.config.isVertical ? regular ? length : `${data.measures.width}${PX}` : data.config.dynamic ? SIZE_AUTO : `${data.measures.width}${PX}`;
42
+ styles.minWidth = `${data.measures.minWidth}${PX}`;
43
+ styles.maxWidth = `${data.measures.maxWidth}${PX}`;
44
+ styles.minHeight = `${data.measures.minHeight}${PX}`;
45
+ styles.maxHeight = `${data.measures.maxHeight}${PX}`;
46
+ }
47
+ }
48
+ else {
49
+ el.removeAttribute(ID);
50
+ }
51
+ }
52
+ show() {
53
+ const el = this._elementRef.nativeElement, styles = el.style;
54
+ styles.zIndex = this._data?.config?.zIndex ?? DEFAULT_ZINDEX;
55
+ if (this.regular) {
56
+ if (styles.display === DISPLAY_BLOCK) {
57
+ return;
58
+ }
59
+ styles.display = DISPLAY_BLOCK;
60
+ }
61
+ else {
62
+ if (styles.visibility === VISIBILITY_VISIBLE) {
63
+ return;
64
+ }
65
+ styles.visibility = VISIBILITY_VISIBLE;
66
+ }
67
+ }
68
+ hide() {
69
+ const el = this._elementRef.nativeElement, styles = el.style;
70
+ styles.zIndex = HIDDEN_ZINDEX;
71
+ if (this.regular) {
72
+ if (styles.display === DISPLAY_NONE) {
73
+ return;
74
+ }
75
+ styles.display = DISPLAY_NONE;
76
+ }
77
+ else {
78
+ if (styles.visibility === VISIBILITY_HIDDEN) {
79
+ return;
80
+ }
81
+ styles.visibility = VISIBILITY_HIDDEN;
82
+ }
83
+ }
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderVirtualListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NgPrerenderVirtualListItemComponent, selector: "ng-prerender-virtual-list-item", host: { attributes: { "role": "listitem" }, classAttribute: "ngvl__item" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"($data | async) as data\">\r\n <div #item class=\"ngvl-item\" [ngClass]=\"($classes | async)!\" [part]=\"($part | async)!\" [attr.ngvl-index]=\"($index | async)!\"\r\n [attr.ngvl-visibility]=\"visibility\" tabindex=\"-1\">\r\n <div *ngIf=\"_blendColor\" class=\"ngvl-item__blend-color\" [style.--blend-color]=\"_blendColor\"></div>\r\n <div #container virtualClick [part]=\"$fxPart | async\" [maxClickDistance]=\"$maxClickDistance | async\"\r\n class=\"ngvl-item__container\" [ngClass]=\"($classes | async)!\" (onVirtualClick)=\"onClickHandler()\">\r\n <ng-container [ngTemplateOutlet]=\"itemRenderer ?? null\"\r\n [ngTemplateOutletContext]=\"$templateContext | async\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-moz-user-drag:none;text-rendering:optimizeSpeed;image-rendering:auto}.ngvl-item{position:relative;margin:0;padding:0;overflow:hidden;outline:none;width:inherit;height:inherit;box-sizing:border-box}.ngvl-item__blend-color{position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--blend-color);z-index:-1}.ngvl-item__container{margin:0;padding:0;width:100%;height:100%;box-sizing:border-box}\n", ":host{display:block;position:absolute!important;left:0;top:0;box-sizing:border-box;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-moz-user-drag:none;pointer-events:none;-webkit-user-select:none;user-select:none;text-rendering:optimizeSpeed;image-rendering:pixelated}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.VirtualClickDirective, selector: "[virtualClick]", inputs: ["maxClickDistance"], outputs: ["onVirtualClick"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderVirtualListItemComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'ng-prerender-virtual-list-item', host: {
90
+ 'class': 'ngvl__item',
91
+ 'role': 'listitem',
92
+ }, standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"($data | async) as data\">\r\n <div #item class=\"ngvl-item\" [ngClass]=\"($classes | async)!\" [part]=\"($part | async)!\" [attr.ngvl-index]=\"($index | async)!\"\r\n [attr.ngvl-visibility]=\"visibility\" tabindex=\"-1\">\r\n <div *ngIf=\"_blendColor\" class=\"ngvl-item__blend-color\" [style.--blend-color]=\"_blendColor\"></div>\r\n <div #container virtualClick [part]=\"$fxPart | async\" [maxClickDistance]=\"$maxClickDistance | async\"\r\n class=\"ngvl-item__container\" [ngClass]=\"($classes | async)!\" (onVirtualClick)=\"onClickHandler()\">\r\n <ng-container [ngTemplateOutlet]=\"itemRenderer ?? null\"\r\n [ngTemplateOutletContext]=\"$templateContext | async\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-moz-user-drag:none;text-rendering:optimizeSpeed;image-rendering:auto}.ngvl-item{position:relative;margin:0;padding:0;overflow:hidden;outline:none;width:inherit;height:inherit;box-sizing:border-box}.ngvl-item__blend-color{position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--blend-color);z-index:-1}.ngvl-item__container{margin:0;padding:0;width:100%;height:100%;box-sizing:border-box}\n", ":host{display:block;position:absolute!important;left:0;top:0;box-sizing:border-box;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-moz-user-drag:none;pointer-events:none;-webkit-user-select:none;user-select:none;text-rendering:optimizeSpeed;image-rendering:pixelated}\n"] }]
93
+ }] });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJlcmVuZGVyLWxpc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLXByZXJlbmRlci1jb250YWluZXIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItbGlzdC1pdGVtL25nLXByZXJlbmRlci1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1saXN0LWl0ZW0vbmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQ0gsY0FBYyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEdBQ25ILE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFFMUU7Ozs7Ozs7R0FPRztBQVlILE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSwwQkFBMEI7SUFDNUQsTUFBTTtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUcsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO1FBQy9GLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQy9ELEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzdDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDM0csTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ3pHLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ2hGLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ2hGLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ25GLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBRW5GLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ3pLLGlCQUFpQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMs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QztZQUNmLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxZQUFZLEVBQUUsQ0FBQztnQkFDbEMsT0FBTztZQUNYLENBQUM7WUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMxQyxPQUFPO1lBQ1gsQ0FBQztZQUVELE1BQU0sQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7d0dBeEVRLG1DQUFtQzs0RkFBbkMsbUNBQW1DLHlLQzFCaEQscXpCQVVlOzs0RkRnQkYsbUNBQW1DO2tCQVgvQyxTQUFTOytCQUNJLGdDQUFnQyxRQUdwQzt3QkFDRixPQUFPLEVBQUUsWUFBWTt3QkFDckIsTUFBTSxFQUFFLFVBQVU7cUJBQ3JCLGNBQ1csS0FBSyxtQkFDQSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ1ZpcnR1YWxMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL25nLWxpc3QtaXRlbS9uZy12aXJ0dWFsLWxpc3QtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gICAgREVGQVVMVF9aSU5ERVgsIERJU1BMQVlfQkxPQ0ssIERJU1BMQVlfTk9ORSwgSElEREVOX1pJTkRFWCwgUFgsIFNJWkVfQVVUTywgVklTSUJJTElUWV9ISURERU4sIFZJU0lCSUxJVFlfVklTSUJMRSxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdCc7XHJcbmltcG9ydCB7IElELCBQT1NJVElPTiwgUE9TSVRJT05fWkVSTyB9IGZyb20gJy4uLy4uLy4uL25nLWxpc3QtaXRlbS9jb25zdCc7XHJcblxyXG4vKipcclxuICogTmdQcmVyZW5kZXJWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRcclxuICogTWF4aW11bSBwZXJmb3JtYW5jZSBmb3IgZXh0cmVtZWx5IGxhcmdlIGxpc3RzLlxyXG4gKiBJdCBpcyBiYXNlZCBvbiBhbGdvcml0aG1zIGZvciB2aXJ0dWFsaXphdGlvbiBvZiBzY3JlZW4gb2JqZWN0cy5cclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTQueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLXByZXJlbmRlci1jb250YWluZXIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItbGlzdC1pdGVtL25nLXByZXJlbmRlci1saXN0LWl0ZW0uY29tcG9uZW50LnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBBbGV4YW5kcm92aWNoIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25nLXByZXJlbmRlci12aXJ0dWFsLWxpc3QtaXRlbScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4uLy4uLy4uL25nLWxpc3QtaXRlbS9uZy12aXJ0dWFsLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi4vLi4vLi4vbmctbGlzdC1pdGVtL25nLXZpcnR1YWwtbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJywgJy4vbmctcHJlcmVuZGVyLWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdjbGFzcyc6ICduZ3ZsX19pdGVtJyxcclxuICAgICAgICAncm9sZSc6ICdsaXN0aXRlbScsXHJcbiAgICB9LFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nUHJlcmVuZGVyVmlydHVhbExpc3RJdGVtQ29tcG9uZW50IGV4dGVuZHMgTmdWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQge1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZSgpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fZGF0YSwgcmVndWxhciA9IHRoaXMucmVndWxhciwgbGVuZ3RoID0gdGhpcy5fcmVndWxhckxlbmd0aCwgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIGl0ZW1FbGVtZW50ID0gdGhpcy5faXRlbT8ubmF0aXZlRWxlbWVudCwgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuX2NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBpZiAoISFkYXRhICYmICEhZWwgJiYgISFpdGVtRWxlbWVudCAmJiAhIWNvbnRhaW5lckVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3R5bGVzID0gZWwuc3R5bGUsIGl0ZW1FbGVtZW50U3R5bGVzID0gaXRlbUVsZW1lbnQuc3R5bGU7XHJcbiAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZShJRCwgYCR7ZGF0YS5pZH1gKTtcclxuICAgICAgICAgICAgc3R5bGVzLnpJbmRleCA9IGRhdGEuY29uZmlnLnpJbmRleDtcclxuICAgICAgICAgICAgaWYgKHJlZ3VsYXIpIHtcclxuICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZShQT1NJVElPTiwgUE9TSVRJT05fWkVSTyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoUE9TSVRJT04sIGAke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLm1lYXN1cmVzLnkgOiBkYXRhLm1lYXN1cmVzLnh9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRhdGEuY29uZmlnLmRpdmlkZXMgPiAxKSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZXMuaGVpZ2h0ID0gZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IGAke2RhdGEubWVhc3VyZXMucm93LnNpemV9JHtQWH1gIDogYCR7ZGF0YS5tZWFzdXJlcy5oZWlnaHR9JHtQWH1gO1xyXG4gICAgICAgICAgICAgICAgc3R5bGVzLndpZHRoID0gZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IGAke2RhdGEubWVhc3VyZXMud2lkdGh9JHtQWH1gIDogYCR7ZGF0YS5tZWFzdXJlcy5yb3cuc2l6ZX0ke1BYfWA7XHJcbiAgICAgICAgICAgICAgICBpdGVtRWxlbWVudFN0eWxlcy5taW5XaWR0aCA9IHN0eWxlcy5taW5XaWR0aCA9IGAke2RhdGEubWVhc3VyZXMubWluV2lkdGh9JHtQWH1gO1xyXG4gICAgICAgICAgICAgICAgaXRlbUVsZW1lbnRTdHlsZXMubWF4V2lkdGggPSBzdHlsZXMubWF4V2lkdGggPSBgJHtkYXRhLm1lYXN1cmVzLm1heFdpZHRofSR7UFh9YDtcclxuICAgICAgICAgICAgICAgIGl0ZW1FbGVtZW50U3R5bGVzLm1pbkhlaWdodCA9IHN0eWxlcy5taW5IZWlnaHQgPSBgJHtkYXRhLm1lYXN1cmVzLm1pbkhlaWdodH0ke1BYfWA7XHJcbiAgICAgICAgICAgICAgICBpdGVtRWxlbWVudFN0eWxlcy5tYXhIZWlnaHQgPSBzdHlsZXMubWF4SGVpZ2h0ID0gYCR7ZGF0YS5tZWFzdXJlcy5tYXhIZWlnaHR9JHtQWH1gO1xyXG5cclxuICAgICAgICAgICAgICAgIGl0ZW1FbGVtZW50U3R5bGVzLmhlaWdodCA9IGRhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLmNvbmZpZy5keW5hbWljID8gU0laRV9BVVRPIDogYCR7ZGF0YS5tZWFzdXJlcy5oZWlnaHR9JHtQWH1gIDogcmVndWxhciA/IGxlbmd0aCA6IGAke2RhdGEubWVhc3VyZXMuaGVpZ2h0fSR7UFh9YDtcclxuICAgICAgICAgICAgICAgIGl0ZW1FbGVtZW50U3R5bGVzLndpZHRoID0gZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IHJlZ3VsYXIgPyBsZW5ndGggOiBgJHtkYXRhLm1lYXN1cmVzLndpZHRofSR7UFh9YCA6IGRhdGEuY29uZmlnLmR5bmFtaWMgPyBTSVpFX0FVVE8gOiBgJHtkYXRhLm1lYXN1cmVzLndpZHRofSR7UFh9YDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHN0eWxlcy5oZWlnaHQgPSBkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gZGF0YS5jb25maWcuZHluYW1pYyA/IFNJWkVfQVVUTyA6IGAke2RhdGEubWVhc3VyZXMuaGVpZ2h0fSR7UFh9YCA6IHJlZ3VsYXIgPyBsZW5ndGggOiBgJHtkYXRhLm1lYXN1cmVzLmhlaWdodH0ke1BYfWA7XHJcbiAgICAgICAgICAgICAgICBzdHlsZXMud2lkdGggPSBkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gcmVndWxhciA/IGxlbmd0aCA6IGAke2RhdGEubWVhc3VyZXMud2lkdGh9JHtQWH1gIDogZGF0YS5jb25maWcuZHluYW1pYyA/IFNJWkVfQVVUTyA6IGAke2RhdGEubWVhc3VyZXMud2lkdGh9JHtQWH1gO1xyXG4gICAgICAgICAgICAgICAgc3R5bGVzLm1pbldpZHRoID0gYCR7ZGF0YS5tZWFzdXJlcy5taW5XaWR0aH0ke1BYfWA7XHJcbiAgICAgICAgICAgICAgICBzdHlsZXMubWF4V2lkdGggPSBgJHtkYXRhLm1lYXN1cmVzLm1heFdpZHRofSR7UFh9YDtcclxuICAgICAgICAgICAgICAgIHN0eWxlcy5taW5IZWlnaHQgPSBgJHtkYXRhLm1lYXN1cmVzLm1pbkhlaWdodH0ke1BYfWA7XHJcbiAgICAgICAgICAgICAgICBzdHlsZXMubWF4SGVpZ2h0ID0gYCR7ZGF0YS5tZWFzdXJlcy5tYXhIZWlnaHR9JHtQWH1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKElEKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgc2hvdygpIHtcclxuICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCxcclxuICAgICAgICAgICAgc3R5bGVzID0gZWwuc3R5bGU7XHJcbiAgICAgICAgc3R5bGVzLnpJbmRleCA9IHRoaXMuX2RhdGE/LmNvbmZpZz8uekluZGV4ID8/IERFRkFVTFRfWklOREVYO1xyXG4gICAgICAgIGlmICh0aGlzLnJlZ3VsYXIpIHtcclxuICAgICAgICAgICAgaWYgKHN0eWxlcy5kaXNwbGF5ID09PSBESVNQTEFZX0JMT0NLKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN0eWxlcy5kaXNwbGF5ID0gRElTUExBWV9CTE9DSztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoc3R5bGVzLnZpc2liaWxpdHkgPT09IFZJU0lCSUxJVFlfVklTSUJMRSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzdHlsZXMudmlzaWJpbGl0eSA9IFZJU0lCSUxJVFlfVklTSUJMRTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgaGlkZSgpIHtcclxuICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgc3R5bGVzID0gZWwuc3R5bGU7XHJcbiAgICAgICAgc3R5bGVzLnpJbmRleCA9IEhJRERFTl9aSU5ERVg7XHJcbiAgICAgICAgaWYgKHRoaXMucmVndWxhcikge1xyXG4gICAgICAgICAgICBpZiAoc3R5bGVzLmRpc3BsYXkgPT09IERJU1BMQVlfTk9ORSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzdHlsZXMuZGlzcGxheSA9IERJU1BMQVlfTk9ORTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoc3R5bGVzLnZpc2liaWxpdHkgPT09IFZJU0lCSUxJVFlfSElEREVOKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN0eWxlcy52aXNpYmlsaXR5ID0gVklTSUJJTElUWV9ISURERU47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIigkZGF0YSB8IGFzeW5jKSBhcyBkYXRhXCI+XHJcbiAgICA8ZGl2ICNpdGVtIGNsYXNzPVwibmd2bC1pdGVtXCIgW25nQ2xhc3NdPVwiKCRjbGFzc2VzIHwgYXN5bmMpIVwiIFtwYXJ0XT1cIigkcGFydCB8IGFzeW5jKSFcIiBbYXR0ci5uZ3ZsLWluZGV4XT1cIigkaW5kZXggfCBhc3luYykhXCJcclxuICAgICAgICBbYXR0ci5uZ3ZsLXZpc2liaWxpdHldPVwidmlzaWJpbGl0eVwiIHRhYmluZGV4PVwiLTFcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiX2JsZW5kQ29sb3JcIiBjbGFzcz1cIm5ndmwtaXRlbV9fYmxlbmQtY29sb3JcIiBbc3R5bGUuLS1ibGVuZC1jb2xvcl09XCJfYmxlbmRDb2xvclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgI2NvbnRhaW5lciB2aXJ0dWFsQ2xpY2sgW3BhcnRdPVwiJGZ4UGFydCB8IGFzeW5jXCIgW21heENsaWNrRGlzdGFuY2VdPVwiJG1heENsaWNrRGlzdGFuY2UgfCBhc3luY1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibmd2bC1pdGVtX19jb250YWluZXJcIiBbbmdDbGFzc109XCIoJGNsYXNzZXMgfCBhc3luYykhXCIgKG9uVmlydHVhbENsaWNrKT1cIm9uQ2xpY2tIYW5kbGVyKClcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtUmVuZGVyZXIgPz8gbnVsbFwiXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiJHRlbXBsYXRlQ29udGV4dCB8IGFzeW5jXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+Il19
@@ -0,0 +1,20 @@
1
+ import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { VirtualClickModule } from '../../../../directives';
4
+ import { NgPrerenderVirtualListItemComponent } from './ng-prerender-list-item.component';
5
+ import * as i0 from "@angular/core";
6
+ export class NgPrerenderVirtualListItemModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderVirtualListItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderVirtualListItemModule, declarations: [NgPrerenderVirtualListItemComponent], imports: [CommonModule, VirtualClickModule], exports: [NgPrerenderVirtualListItemComponent] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderVirtualListItemModule, imports: [CommonModule, VirtualClickModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgPrerenderVirtualListItemModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [NgPrerenderVirtualListItemComponent],
15
+ exports: [NgPrerenderVirtualListItemComponent],
16
+ imports: [CommonModule, VirtualClickModule],
17
+ schemas: [NO_ERRORS_SCHEMA],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJlcmVuZGVyLWxpc3QtaXRlbS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLXByZXJlbmRlci1jb250YWluZXIvY29tcG9uZW50cy9uZy1wcmVyZW5kZXItbGlzdC1pdGVtL25nLXByZXJlbmRlci1saXN0LWl0ZW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVF6RixNQUFNLE9BQU8sZ0NBQWdDO3dHQUFoQyxnQ0FBZ0M7eUdBQWhDLGdDQUFnQyxpQkFMNUIsbUNBQW1DLGFBRXhDLFlBQVksRUFBRSxrQkFBa0IsYUFEaEMsbUNBQW1DO3lHQUlsQyxnQ0FBZ0MsWUFIakMsWUFBWSxFQUFFLGtCQUFrQjs7NEZBRy9CLGdDQUFnQztrQkFONUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDbkQsT0FBTyxFQUFFLENBQUMsbUNBQW1DLENBQUM7b0JBQzlDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE5PX0VSUk9SU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVmlydHVhbENsaWNrTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IE5nUHJlcmVuZGVyVmlydHVhbExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1wcmVyZW5kZXItbGlzdC1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW05nUHJlcmVuZGVyVmlydHVhbExpc3RJdGVtQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbTmdQcmVyZW5kZXJWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFZpcnR1YWxDbGlja01vZHVsZV0sXHJcbiAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdQcmVyZW5kZXJWaXJ0dWFsTGlzdEl0ZW1Nb2R1bGUgeyB9XHJcbiJdfQ==