ng-virtual-list 16.10.8 → 16.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +24 -79
  2. package/esm2022/lib/components/ng-list-item/base/base-virtual-list-item-component.mjs +207 -0
  3. package/esm2022/lib/components/ng-list-item/base/index.mjs +3 -0
  4. package/esm2022/lib/components/ng-list-item/const/index.mjs +30 -0
  5. package/esm2022/lib/components/ng-list-item/interfaces/index.mjs +2 -0
  6. package/esm2022/lib/components/ng-list-item/interfaces/template-context.mjs +2 -0
  7. package/esm2022/lib/components/ng-list-item/ng-virtual-list-item.component.mjs +212 -0
  8. package/esm2022/lib/components/{list-item → ng-list-item}/ng-virtual-list-item.module.mjs +1 -1
  9. package/esm2022/lib/components/ng-list-item/utils/create-display-id.mjs +4 -0
  10. package/esm2022/lib/components/ng-list-item/utils/get-element-by-index.mjs +6 -0
  11. package/esm2022/lib/components/ng-list-item/utils/index.mjs +4 -0
  12. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.mjs +269 -0
  13. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.module.mjs +21 -0
  14. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.mjs +78 -0
  15. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.mjs +20 -0
  16. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.mjs +140 -0
  17. package/esm2022/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.mjs +20 -0
  18. package/esm2022/lib/components/ng-prerender-container/core/index.mjs +3 -0
  19. package/esm2022/lib/components/ng-prerender-container/core/prerender-track-box.mjs +168 -0
  20. package/esm2022/lib/components/ng-prerender-container/events/index.mjs +6 -0
  21. package/esm2022/lib/components/ng-prerender-container/interfaces/index.mjs +2 -0
  22. package/esm2022/lib/components/ng-prerender-container/interfaces/refresh-params.mjs +2 -0
  23. package/esm2022/lib/components/ng-prerender-container/ng-prerender-container.component.mjs +92 -0
  24. package/esm2022/lib/components/ng-prerender-container/ng-prerender-container.module.mjs +20 -0
  25. package/esm2022/lib/components/ng-prerender-container/types/cache.mjs +2 -0
  26. package/esm2022/lib/components/ng-prerender-container/types/index.mjs +2 -0
  27. package/esm2022/lib/components/ng-scroll-bar/const/index.mjs +9 -2
  28. package/esm2022/lib/components/ng-scroll-bar/enums/index.mjs +3 -0
  29. package/esm2022/lib/components/ng-scroll-bar/enums/scrollbar-states.mjs +7 -0
  30. package/esm2022/lib/components/ng-scroll-bar/interfaces/index.mjs +1 -1
  31. package/esm2022/lib/components/ng-scroll-bar/interfaces/scroll-bar-template-context.mjs +2 -0
  32. package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.mjs +25 -0
  33. package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar.component.mjs +97 -84
  34. package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar.module.mjs +4 -5
  35. package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar.service.mjs +36 -0
  36. package/esm2022/lib/components/ng-scroll-bar/types/index.mjs +2 -0
  37. package/esm2022/lib/components/ng-scroll-bar/types/scrollbar-state.mjs +2 -0
  38. package/esm2022/lib/components/ng-scroll-view/base/base-scroll-view.component.mjs +44 -56
  39. package/esm2022/lib/components/ng-scroll-view/ng-scroll-view.component.mjs +26 -30
  40. package/esm2022/lib/components/ng-scroller/const/index.mjs +2 -0
  41. package/esm2022/lib/components/ng-scroller/enums/index.mjs +3 -0
  42. package/esm2022/lib/components/ng-scroller/enums/scroller-direction.mjs +6 -0
  43. package/esm2022/lib/components/ng-scroller/enums/scroller-directions.mjs +2 -0
  44. package/esm2022/lib/components/ng-scroller/ng-scroller.component.mjs +449 -0
  45. package/esm2022/lib/components/ng-scroller/ng-scroller.module.mjs +22 -0
  46. package/esm2022/lib/components/ng-scroller/utils/index.mjs +3 -0
  47. package/esm2022/lib/components/ng-scroller/utils/scroll-box.mjs +52 -0
  48. package/esm2022/lib/const/index.mjs +3 -14
  49. package/esm2022/lib/core/track-box.mjs +46 -16
  50. package/esm2022/lib/core/tracker.mjs +1 -1
  51. package/esm2022/lib/directives/locale-sensitive/locale-sensitive.directive.mjs +2 -2
  52. package/esm2022/lib/interfaces/scroll-params.mjs +1 -1
  53. package/esm2022/lib/interfaces/scroll-to-params.mjs +2 -0
  54. package/esm2022/lib/models/display-object-config.model.mjs +1 -1
  55. package/esm2022/lib/models/display-object-measures.model.mjs +1 -1
  56. package/esm2022/lib/models/render-item-measures.model.mjs +1 -1
  57. package/esm2022/lib/ng-virtual-list-public.service.mjs +121 -0
  58. package/esm2022/lib/ng-virtual-list.component.mjs +367 -333
  59. package/esm2022/lib/ng-virtual-list.module.mjs +7 -7
  60. package/esm2022/lib/ng-virtual-list.service.mjs +116 -33
  61. package/esm2022/lib/types/index.mjs +1 -1
  62. package/esm2022/lib/utils/debounce.mjs +28 -6
  63. package/esm2022/lib/utils/disposable-component.mjs +27 -0
  64. package/esm2022/lib/utils/list-validators.mjs +1 -1
  65. package/esm2022/public-api.mjs +8 -3
  66. package/fesm2022/ng-virtual-list.mjs +2268 -2358
  67. package/fesm2022/ng-virtual-list.mjs.map +1 -1
  68. package/lib/components/{list-item → ng-list-item}/base/base-virtual-list-item-component.d.ts +7 -6
  69. package/lib/components/ng-list-item/interfaces/template-context.d.ts +42 -0
  70. package/lib/components/{list-item → ng-list-item}/ng-virtual-list-item.component.d.ts +1 -4
  71. package/lib/components/{prerender-container/components/prerender-list/prerender-list.component.d.ts → ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.d.ts} +9 -14
  72. package/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.module.d.ts +10 -0
  73. package/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.d.ts +17 -0
  74. package/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.d.ts +9 -0
  75. package/lib/components/{prerender-container/components/prerender-scroller/prerender-scroller.component.d.ts → ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.d.ts} +9 -14
  76. package/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.d.ts +9 -0
  77. package/lib/components/{prerender-container → ng-prerender-container}/core/prerender-track-box.d.ts +2 -2
  78. package/lib/components/{prerender-container → ng-prerender-container}/interfaces/refresh-params.d.ts +1 -1
  79. package/lib/components/ng-prerender-container/ng-prerender-container.component.d.ts +39 -0
  80. package/lib/components/ng-prerender-container/ng-prerender-container.module.d.ts +9 -0
  81. package/lib/components/{prerender-container → ng-prerender-container}/types/cache.d.ts +1 -1
  82. package/lib/components/ng-scroll-bar/const/index.d.ts +3 -2
  83. package/lib/components/ng-scroll-bar/enums/index.d.ts +2 -0
  84. package/lib/components/ng-scroll-bar/enums/scrollbar-states.d.ts +5 -0
  85. package/lib/components/ng-scroll-bar/interfaces/index.d.ts +2 -1
  86. package/lib/components/ng-scroll-bar/interfaces/scroll-bar-template-context.d.ts +26 -0
  87. package/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.d.ts +16 -0
  88. package/lib/components/ng-scroll-bar/ng-scroll-bar.component.d.ts +31 -36
  89. package/lib/components/ng-scroll-bar/ng-scroll-bar.module.d.ts +1 -2
  90. package/lib/components/ng-scroll-bar/ng-scroll-bar.service.d.ts +22 -0
  91. package/lib/components/ng-scroll-bar/types/index.d.ts +2 -0
  92. package/lib/components/ng-scroll-bar/types/scrollbar-state.d.ts +2 -0
  93. package/lib/components/ng-scroll-view/base/base-scroll-view.component.d.ts +9 -10
  94. package/lib/components/{scroller → ng-scroller}/ng-scroller.component.d.ts +31 -10
  95. package/lib/components/{scroller → ng-scroller}/utils/scroll-box.d.ts +1 -1
  96. package/lib/const/index.d.ts +2 -2
  97. package/lib/core/track-box.d.ts +17 -11
  98. package/lib/core/tracker.d.ts +1 -1
  99. package/lib/directives/locale-sensitive/locale-sensitive.directive.d.ts +1 -1
  100. package/lib/interfaces/scroll-params.d.ts +1 -1
  101. package/lib/interfaces/scroll-to-params.d.ts +7 -0
  102. package/lib/models/display-object-config.model.d.ts +1 -15
  103. package/lib/models/display-object-measures.model.d.ts +0 -4
  104. package/lib/models/render-item-measures.model.d.ts +0 -4
  105. package/lib/ng-virtual-list-public.service.d.ts +93 -0
  106. package/lib/ng-virtual-list.component.d.ts +41 -23
  107. package/lib/ng-virtual-list.module.d.ts +4 -4
  108. package/lib/ng-virtual-list.service.d.ts +42 -7
  109. package/lib/types/index.d.ts +3 -4
  110. package/lib/utils/debounce.d.ts +5 -1
  111. package/lib/utils/disposable-component.d.ts +15 -0
  112. package/lib/utils/list-validators.d.ts +1 -1
  113. package/package.json +1 -1
  114. package/public-api.d.ts +7 -2
  115. package/esm2022/lib/components/list-item/base/base-virtual-list-item-component.mjs +0 -207
  116. package/esm2022/lib/components/list-item/base/index.mjs +0 -3
  117. package/esm2022/lib/components/list-item/const/index.mjs +0 -32
  118. package/esm2022/lib/components/list-item/interfaces/index.mjs +0 -2
  119. package/esm2022/lib/components/list-item/interfaces/template-context.mjs +0 -2
  120. package/esm2022/lib/components/list-item/ng-virtual-list-item.component.mjs +0 -246
  121. package/esm2022/lib/components/list-item/utils/create-display-id.mjs +0 -4
  122. package/esm2022/lib/components/list-item/utils/get-element-by-index.mjs +0 -6
  123. package/esm2022/lib/components/list-item/utils/index.mjs +0 -4
  124. package/esm2022/lib/components/prerender-container/components/prerender-list/prerender-list.component.mjs +0 -280
  125. package/esm2022/lib/components/prerender-container/components/prerender-list/prerender-list.module.mjs +0 -21
  126. package/esm2022/lib/components/prerender-container/components/prerender-list-item/prerender-list-item.component.mjs +0 -78
  127. package/esm2022/lib/components/prerender-container/components/prerender-list-item/prerender-list-item.module.mjs +0 -20
  128. package/esm2022/lib/components/prerender-container/components/prerender-scroller/prerender-scroller.component.mjs +0 -151
  129. package/esm2022/lib/components/prerender-container/components/prerender-scroller/prerender-scroller.module.mjs +0 -20
  130. package/esm2022/lib/components/prerender-container/core/index.mjs +0 -3
  131. package/esm2022/lib/components/prerender-container/core/prerender-track-box.mjs +0 -169
  132. package/esm2022/lib/components/prerender-container/events/index.mjs +0 -6
  133. package/esm2022/lib/components/prerender-container/interfaces/index.mjs +0 -2
  134. package/esm2022/lib/components/prerender-container/interfaces/refresh-params.mjs +0 -2
  135. package/esm2022/lib/components/prerender-container/prerender-container.component.mjs +0 -97
  136. package/esm2022/lib/components/prerender-container/prerender-container.module.mjs +0 -20
  137. package/esm2022/lib/components/prerender-container/types/cache.mjs +0 -2
  138. package/esm2022/lib/components/prerender-container/types/index.mjs +0 -2
  139. package/esm2022/lib/components/scroller/const/index.mjs +0 -2
  140. package/esm2022/lib/components/scroller/enums/index.mjs +0 -3
  141. package/esm2022/lib/components/scroller/enums/scroller-direction.mjs +0 -6
  142. package/esm2022/lib/components/scroller/enums/scroller-directions.mjs +0 -2
  143. package/esm2022/lib/components/scroller/ng-scroller.component.mjs +0 -410
  144. package/esm2022/lib/components/scroller/ng-scroller.module.mjs +0 -22
  145. package/esm2022/lib/components/scroller/utils/index.mjs +0 -3
  146. package/esm2022/lib/components/scroller/utils/scroll-box.mjs +0 -52
  147. package/esm2022/lib/components/substrate/const/index.mjs +0 -2
  148. package/esm2022/lib/components/substrate/enums/index.mjs +0 -4
  149. package/esm2022/lib/components/substrate/enums/substrate-modes.mjs +0 -16
  150. package/esm2022/lib/components/substrate/enums/substrate-styles.mjs +0 -15
  151. package/esm2022/lib/components/substrate/index.mjs +0 -5
  152. package/esm2022/lib/components/substrate/substrate.component.mjs +0 -354
  153. package/esm2022/lib/components/substrate/substrate.module.mjs +0 -19
  154. package/esm2022/lib/components/substrate/types/index.mjs +0 -2
  155. package/esm2022/lib/components/substrate/types/substrate-mode.mjs +0 -2
  156. package/esm2022/lib/components/substrate/types/substrate-style.mjs +0 -2
  157. package/esm2022/lib/components/substrate/utils/circle-path.mjs +0 -4
  158. package/esm2022/lib/components/substrate/utils/index.mjs +0 -4
  159. package/esm2022/lib/components/substrate/utils/rounded-rect-path.mjs +0 -20
  160. package/esm2022/lib/types/color.mjs +0 -2
  161. package/esm2022/lib/types/gradient-color.mjs +0 -2
  162. package/esm2022/lib/types/rounded-corner.mjs +0 -2
  163. package/esm2022/lib/types/scrollbar-theme.mjs +0 -2
  164. package/esm2022/lib/utils/get-shape-min-size.mjs +0 -13
  165. package/lib/components/list-item/interfaces/template-context.d.ts +0 -10
  166. package/lib/components/prerender-container/components/prerender-list/prerender-list.module.d.ts +0 -10
  167. package/lib/components/prerender-container/components/prerender-list-item/prerender-list-item.component.d.ts +0 -17
  168. package/lib/components/prerender-container/components/prerender-list-item/prerender-list-item.module.d.ts +0 -9
  169. package/lib/components/prerender-container/components/prerender-scroller/prerender-scroller.module.d.ts +0 -9
  170. package/lib/components/prerender-container/prerender-container.component.d.ts +0 -42
  171. package/lib/components/prerender-container/prerender-container.module.d.ts +0 -9
  172. package/lib/components/substrate/const/index.d.ts +0 -2
  173. package/lib/components/substrate/enums/index.d.ts +0 -3
  174. package/lib/components/substrate/enums/substrate-modes.d.ts +0 -13
  175. package/lib/components/substrate/enums/substrate-styles.d.ts +0 -12
  176. package/lib/components/substrate/index.d.ts +0 -7
  177. package/lib/components/substrate/substrate.component.d.ts +0 -91
  178. package/lib/components/substrate/substrate.module.d.ts +0 -8
  179. package/lib/components/substrate/types/index.d.ts +0 -3
  180. package/lib/components/substrate/types/substrate-mode.d.ts +0 -10
  181. package/lib/components/substrate/types/substrate-style.d.ts +0 -10
  182. package/lib/components/substrate/utils/circle-path.d.ts +0 -1
  183. package/lib/components/substrate/utils/index.d.ts +0 -3
  184. package/lib/components/substrate/utils/rounded-rect-path.d.ts +0 -1
  185. package/lib/types/color.d.ts +0 -7
  186. package/lib/types/gradient-color.d.ts +0 -8
  187. package/lib/types/rounded-corner.d.ts +0 -7
  188. package/lib/types/scrollbar-theme.d.ts +0 -47
  189. package/lib/utils/get-shape-min-size.d.ts +0 -8
  190. /package/lib/components/{list-item → ng-list-item}/base/index.d.ts +0 -0
  191. /package/lib/components/{list-item → ng-list-item}/const/index.d.ts +0 -0
  192. /package/lib/components/{list-item → ng-list-item}/interfaces/index.d.ts +0 -0
  193. /package/lib/components/{list-item → ng-list-item}/ng-virtual-list-item.module.d.ts +0 -0
  194. /package/lib/components/{list-item → ng-list-item}/utils/create-display-id.d.ts +0 -0
  195. /package/lib/components/{list-item → ng-list-item}/utils/get-element-by-index.d.ts +0 -0
  196. /package/lib/components/{list-item → ng-list-item}/utils/index.d.ts +0 -0
  197. /package/lib/components/{prerender-container → ng-prerender-container}/core/index.d.ts +0 -0
  198. /package/lib/components/{prerender-container → ng-prerender-container}/events/index.d.ts +0 -0
  199. /package/lib/components/{prerender-container → ng-prerender-container}/interfaces/index.d.ts +0 -0
  200. /package/lib/components/{prerender-container → ng-prerender-container}/types/index.d.ts +0 -0
  201. /package/lib/components/{scroller → ng-scroller}/const/index.d.ts +0 -0
  202. /package/lib/components/{scroller → ng-scroller}/enums/index.d.ts +0 -0
  203. /package/lib/components/{scroller → ng-scroller}/enums/scroller-direction.d.ts +0 -0
  204. /package/lib/components/{scroller → ng-scroller}/enums/scroller-directions.d.ts +0 -0
  205. /package/lib/components/{scroller → ng-scroller}/ng-scroller.module.d.ts +0 -0
  206. /package/lib/components/{scroller → ng-scroller}/utils/index.d.ts +0 -0
package/README.md CHANGED
@@ -16,9 +16,12 @@ Works correctly in all browsers and platforms.
16
16
  ![npm downloads](https://img.shields.io/npm/dm/ng-virtual-list)
17
17
  ![npm total downloads](https://img.shields.io/npm/dt/ng-virtual-list)
18
18
 
19
- [Live Demo](https://chat-demo.eugene-grebennikov.pro/)
19
+ [Chat Demo](https://chat-demo.eugene-grebennikov.pro/)
20
20
  [(Code)](https://github.com/DjonnyX/ng-virtual-list-chat-demo)
21
21
 
22
+ [News Feed Demo](https://news-feed-demo.eugene-grebennikov.pro/)
23
+ [(Code)](https://github.com/DjonnyX/ng-virtual-list-news-feed-demo)
24
+
22
25
  [Live Examples (Storybook)](https://ng-virtual-list-examples.eugene-grebennikov.pro/)
23
26
 
24
27
  [Examples](https://ng-virtual-list.eugene-grebennikov.pro/)
@@ -288,6 +291,7 @@ Template:
288
291
  <span>{{data.name}}</span>
289
292
  </div>
290
293
  </ng-container>
294
+ </ng-template>
291
295
  ```
292
296
 
293
297
  #### With snapping
@@ -478,94 +482,32 @@ export class AppComponent {
478
482
 
479
483
  ## 🖼️ Stylization
480
484
 
481
- - Scrollbar theme
482
- ```ts
483
- import { NgVirtualListComponent, GradientColor, RoundedCorner, ScrollBarTheme } from 'ng-virtual-list';
484
-
485
- const X_LITE_BLUE_PLASMA_GRADIENT: GradientColor = ["rgba(133, 142, 255, 0)", "rgb(0, 133, 160)"],
486
- ROUND_CORNER: RoundedCorner = [3, 3, 3, 3],
487
- SCROLLBAR_GRADIENT: ScrollBarTheme = {
488
- fill: "rgba(51, 0, 97, 1)",
489
- hoverFill: "rgba(73, 6, 133, 1)",
490
- pressedFill: "rgba(73, 6, 150, 1)",
491
- strokeGradientColor: X_LITE_BLUE_PLASMA_GRADIENT,
492
- strokeAnimationDuration: 1000,
493
- thickness: 6,
494
- roundCorner: ROUND_CORNER,
495
- rippleColor: 'rgba(255,255,255,0.5)',
496
- rippleEnabled: true,
497
- };
498
-
499
- @Component({
500
- selector: 'app-root',
501
- imports: [FormsModule, NgVirtualListComponent],
502
- templateUrl: './app.component.html',
503
- styleUrl: './app.component.scss'
504
- })
505
- export class AppComponent {
506
- scrollbarTheme = SCROLLBAR_GRADIENT;
507
-
508
- items = Array.from({ length: 100000 }, (_, i) => ({ id: i, name: `Item #${i}` }));
509
- }
510
-
511
- ```
485
+ ### Scrollbar stylization
512
486
 
513
487
  ```scss
514
-
515
- .list {
516
- &::part(scrollbar-track) {
517
- margin-right: 2px;
518
- overflow: initial;
519
- }
520
-
521
- &::part(scrollbar-thumb) {
522
- border: 1px solid #8738c3;
523
- border-radius: 4px;
524
- }
488
+ .list::part(scrollbar-thumb__shape) {
489
+ background-color: rgba(51, 0, 97, 1);
490
+ border-radius: 3px;
525
491
  }
526
492
  ```
527
493
 
528
494
  ```html
529
- <ng-virtual-list class="list" [scrollbarTheme]="scrollbarTheme" [items]="items" [itemRenderer]="itemRenderer"></ng-virtual-list>
495
+ <ng-virtual-list class="list" [scrollbarThickness]="12" [items]="items" [itemRenderer]="itemRenderer"></ng-virtual-list>
530
496
 
531
- <ng-template #horizontalItemRenderer let-data="data" let-config="config">
532
- <div *ngIf="data" [ngClass]="{'list__h-container': true, 'selected': config.selected}">
533
- <span>{{data.name}}</span>
534
- </div>
497
+ <ng-template #itemRenderer let-data="data" let-config="config">
498
+ <span>{{data.name}}</span>
535
499
  </ng-template>
536
500
  ```
537
501
 
502
+ ### Scrollbar castomization
503
+
504
+ [Examples](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/src/app/app.component.html)
505
+ [CustomScrollbarComponent](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/src/app/components/custom-scrollbar/custom-scrollbar.component.ts)
506
+
538
507
  List items are encapsulated in shadowDOM, so to override default styles you need to use ::part access
539
508
 
540
509
  - Customize a scroll area of list
541
510
  ```css
542
- .list::part(scroller) {
543
- scroll-behavior: auto;
544
-
545
- /* custom scrollbar */
546
- &::-webkit-scrollbar {
547
- width: 16px;
548
- height: 16px;
549
- }
550
-
551
- &::-webkit-scrollbar-track {
552
- background-color: #ffffff;
553
- }
554
-
555
- &::-webkit-scrollbar-thumb {
556
- background-color: #d6dee1;
557
- border-radius: 20px;
558
- border: 6px solid transparent;
559
- background-clip: content-box;
560
- min-width: 60px;
561
- min-height: 60px;
562
- }
563
-
564
- &::-webkit-scrollbar-thumb:hover {
565
- background-color: #a8bbbf;
566
- }
567
- }
568
-
569
511
  .list {
570
512
  border-radius: 3px;
571
513
  box-shadow: 1px 2px 8px 4px rgba(0, 0, 0, 0.075);
@@ -597,7 +539,7 @@ List items are encapsulated in shadowDOM, so to override default styles you need
597
539
  Selecting even elements:
598
540
 
599
541
  ```html
600
- <ng-virtual-list class="list" direction="horizontal" [items]="horizontalItems" [bufferSize]="1"
542
+ <ng-virtual-list class="list" direction="horizontal" [items]="horizontalItems" [bufferSize]="1" [maxBufferSize]="5"
601
543
  [itemRenderer]="horizontalItemRenderer" [itemSize]="54"></ng-virtual-list>
602
544
 
603
545
  <ng-template #horizontalItemRenderer let-data="data" let-config="config">
@@ -647,7 +589,6 @@ Inputs
647
589
  | snap | boolean? = false | Determines whether elements will snap. Default value is "false". |
648
590
  | selectedIds | Array<[Id](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/id.ts)> \| [Id](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/id.ts) \| null | Sets the selected items. |
649
591
  | screenReaderMessage | string? = "Showing items $1 to $2" | Message for screen reader. The message format is: "some text `$1` some text `$2`", where `$1` is the number of the first element of the screen collection, `$2` is the number of the last element of the screen collection. |
650
- | scrollbarTheme | [ScrollBarTheme?](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/scrollbar-theme.ts) | Scrollbar theme. |
651
592
  | clickDistance | number? = 40 | The maximum scroll distance at which a click event is triggered. |
652
593
  | waitForPreparation | boolean? = true | If true, it will wait until the list items are fully prepared before displaying them.. The default value is `true`. |
653
594
  | scrollStartOffset | number? = 0 | Sets the scroll start offset value; Default value is "0". |
@@ -656,9 +597,12 @@ Inputs
656
597
  | snapScrollToStart | boolean? = true | Determines whether the scroll will be anchored to the start of the list. Default value is "true". This property takes precedence over the snapScrollToEnd property. That is, if snapScrollToStart and snapScrollToEnd are enabled, the list will initially snap to the beginning; if you move the scroll bar to the end, the list will snap to the end. If snapScrollToStart is disabled and snapScrollToEnd is enabled, the list will snap to the end; if you move the scroll bar to the beginning, the list will snap to the beginning. If both snapScrollToStart and snapScrollToEnd are disabled, the list will never snap to the beginning or end. |
657
598
  | snapScrollToEnd | boolean? = true | Determines whether the scroll will be anchored to the утв of the list. Default value is "true". That is, if snapScrollToStart and snapScrollToEnd are enabled, the list will initially snap to the beginning; if you move the scroll bar to the end, the list will snap to the end. If snapScrollToStart is disabled and snapScrollToEnd is enabled, the list will snap to the end; if you move the scroll bar to the beginning, the list will snap to the beginning. If both snapScrollToStart and snapScrollToEnd are disabled, the list will never snap to the beginning or end. |
658
599
  | snapToEndTransitionInstantOffset | number? = 0 | Sets the offset value; if the scroll area value is exceeded, the scroll animation will be disabled. Default value is "0". |
659
- | scrollbarMinSize | number? = 80 | Minimum scrollbar size. |
660
600
  | scrollbarEnabled | boolean? = true | Determines whether the scrollbar is shown or not. The default value is "true". |
661
601
  | scrollbarInteractive | boolean? = true | Determines whether scrolling using the scrollbar will be possible. The default value is "true". |
602
+ | scrollbarMinSize | number? = 80 | Minimum scrollbar size. |
603
+ | scrollbarThickness | number? = 6 | Scrollbar thickness. |
604
+ | scrollbarThumbRenderer | TemplateRef<any> \| null = null | Scrollbar customization template. |
605
+ | scrollbarThumbParams | {[propName: string]: any;} \| null | Additional options for the scrollbar. |
662
606
  | scrollBehavior | ScrollBehavior? = 'smooth' | Defines the scrolling behavior for any element on the page. The default value is "smooth". |
663
607
  | trackBy | string? = 'id' | The name of the property by which tracking is performed. |
664
608
 
@@ -695,7 +639,7 @@ Methods
695
639
  ### Template API
696
640
 
697
641
  ```html
698
- <ng-template #itemRenderer let-data="data" let-config="config" let-measures="measures">
642
+ <ng-template #itemRenderer let-data="data" let-config="config" let-measures="measures" let-api="api">
699
643
  <!-- content -->
700
644
  </ng-template>
701
645
  ```
@@ -704,6 +648,7 @@ Properties
704
648
 
705
649
  | Property | Type | Description |
706
650
  |--|--|--|
651
+ | api | [NgVirtualListPublicService](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/ng-virtual-list-public.service.ts) | List API Provider. |
707
652
  | data | {\[id: [Id](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/id.ts) \], [otherProps: string]: any;} | Collection item data. |
708
653
  | config | [IDisplayObjectConfig](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/models/display-object-config.model.ts) | Display object configuration. A set of `select`, `collapse`, and `focus` methods are also provided. |
709
654
  | measures | [IDisplayObjectMeasures](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/models/display-object-measures.model.ts) \| null | Display object metrics. |
@@ -0,0 +1,207 @@
1
+ import { ChangeDetectorRef, ElementRef, inject } from '@angular/core';
2
+ import { DEFAULT_ZINDEX, DISPLAY_BLOCK, DISPLAY_NONE, HIDDEN_ZINDEX, PART_DEFAULT_ITEM, PART_ITEM_COLLAPSED, PART_ITEM_EVEN, PART_ITEM_FOCUSED, PART_ITEM_NEW, PART_ITEM_ODD, PART_ITEM_SELECTED, PART_ITEM_SNAPPED, POSITION_ABSOLUTE, PX, SIZE_100_PERSENT, SIZE_AUTO, TRANSLATE_3D, VISIBILITY_HIDDEN, VISIBILITY_VISIBLE, } from '../../../const';
3
+ import { CLASS_NAME_FOCUS, CLASS_NAME_SNAPPED, CLASS_NAME_SNAPPED_OUT, DEFAULT_TEMPLATE_CONTEXT, ID, ITEM_ID, POSITION, POSITION_ZERO, TRANSLATE_3D_HIDDEN, } from '../const';
4
+ import { TextDirections } from '../../../enums';
5
+ import { NgVirtualListPublicService } from '../../../ng-virtual-list-public.service';
6
+ import { BehaviorSubject, combineLatest, takeUntil, tap } from 'rxjs';
7
+ import { DisposableComponent } from '../../../utils/disposable-component';
8
+ /**
9
+ * BaseVirtualListItemComponent
10
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/components/list-item/base/base-virtual-list-item-component.ts
11
+ * @author Evgenii Alexandrovich Grebennikov
12
+ * @email djonnyx@gmail.com
13
+ */
14
+ export class BaseVirtualListItemComponent extends DisposableComponent {
15
+ _apiService = inject(NgVirtualListPublicService);
16
+ _cdr = inject(ChangeDetectorRef);
17
+ _id;
18
+ get id() {
19
+ return this._id;
20
+ }
21
+ _listId;
22
+ get listId() {
23
+ return this._listId;
24
+ }
25
+ _displayId;
26
+ get displayId() {
27
+ return this._displayId;
28
+ }
29
+ _isSelected = false;
30
+ _isCollapsed = false;
31
+ _$config = new BehaviorSubject({});
32
+ $config = this._$config.asObservable();
33
+ _$measures = new BehaviorSubject(null);
34
+ $measures = this._$measures.asObservable();
35
+ _$focused = new BehaviorSubject(false);
36
+ $focused = this._$focused.asObservable();
37
+ _$part = new BehaviorSubject(PART_DEFAULT_ITEM);
38
+ $part = this._$part.asObservable();
39
+ _data = null;
40
+ get data() { return this._data; }
41
+ _$data = new BehaviorSubject(this._data);
42
+ $data = this._$data.asObservable();
43
+ set item(v) {
44
+ if (this._data === v || this._data?.id === -1 || !v) {
45
+ return;
46
+ }
47
+ this._data = v;
48
+ this.updatePartStr(v, this._isSelected, this._isCollapsed);
49
+ this.updateConfig(v);
50
+ this.updateMeasures(v);
51
+ this.update();
52
+ this._$data.next(v);
53
+ }
54
+ _$classes = new BehaviorSubject({});
55
+ $classes = this._$classes.asObservable();
56
+ _$index = new BehaviorSubject(-1);
57
+ $index = this._$index.asObservable();
58
+ _$templateContext = new BehaviorSubject(DEFAULT_TEMPLATE_CONTEXT);
59
+ $templateContext = this._$templateContext.asObservable();
60
+ regular = false;
61
+ _scrollBarSize = 0;
62
+ _langTextDir = TextDirections.LTR;
63
+ _regularLength = SIZE_100_PERSENT;
64
+ set regularLength(v) {
65
+ if (this._regularLength === v) {
66
+ return;
67
+ }
68
+ this._regularLength = v;
69
+ this.update();
70
+ }
71
+ get item() {
72
+ return this._data;
73
+ }
74
+ get itemId() {
75
+ return this._data?.id;
76
+ }
77
+ itemRenderer;
78
+ set renderer(v) {
79
+ if (this.itemRenderer === v) {
80
+ return;
81
+ }
82
+ this.itemRenderer = v;
83
+ this._cdr.markForCheck();
84
+ }
85
+ _elementRef = inject(ElementRef);
86
+ get element() {
87
+ return this._elementRef.nativeElement;
88
+ }
89
+ constructor() {
90
+ super();
91
+ const $data = this.$data, $config = this.$config, $measures = this.$measures, $focused = this.$focused;
92
+ combineLatest([$data, $focused]).pipe(takeUntil(this._$unsubscribe), tap(([data, focused]) => {
93
+ this._$classes.next({
94
+ [CLASS_NAME_SNAPPED]: data?.config?.snapped ?? false, [CLASS_NAME_SNAPPED_OUT]: data?.config?.snappedOut ?? false,
95
+ [CLASS_NAME_FOCUS]: focused,
96
+ });
97
+ })).subscribe();
98
+ $config.pipe(takeUntil(this._$unsubscribe), tap(config => {
99
+ this._$index.next(config?.tabIndex ?? -1);
100
+ })).subscribe();
101
+ combineLatest([$data, $config, $measures]).pipe(takeUntil(this._$unsubscribe), tap(([data, config, measures]) => {
102
+ this._$templateContext.next({
103
+ data: data?.data, prevData: data?.previouseData, nextData: data?.nextData, measures,
104
+ config, reseted: false, index: data?.index ?? -1, api: this._apiService,
105
+ });
106
+ })).subscribe();
107
+ }
108
+ updateMeasures(v) {
109
+ this._$measures.next(v?.measures ? { ...v.measures } : null);
110
+ }
111
+ updateConfig(v) {
112
+ this._$config.next({
113
+ ...v?.config || {}, selected: this._isSelected, collapsed: this._isCollapsed, focused: this._$focused.getValue(),
114
+ });
115
+ }
116
+ update() {
117
+ const data = this._data, regular = this.regular, length = this._regularLength, el = this._elementRef.nativeElement;
118
+ if (data) {
119
+ el.setAttribute(ITEM_ID, `${data.id}`);
120
+ const styles = el.style;
121
+ styles.zIndex = data.config.zIndex;
122
+ styles.position = POSITION_ABSOLUTE;
123
+ if (data.config.isStub === true) {
124
+ el.style.visibility = VISIBILITY_HIDDEN;
125
+ }
126
+ if (regular) {
127
+ el.setAttribute(POSITION, POSITION_ZERO);
128
+ styles.transform = `${TRANSLATE_3D}(${data.config.isVertical ? (this._langTextDir === TextDirections.RTL ? this._scrollBarSize : 0) : data.measures.delta}${PX}, ${data.config.isVertical ? data.measures.delta : 0}${PX}, ${POSITION_ZERO})`;
129
+ }
130
+ else {
131
+ el.setAttribute(POSITION, `${data.config.isVertical ? data.measures.y : data.measures.x}`);
132
+ styles.transform = `${TRANSLATE_3D}(${data.config.isVertical ? 0 : data.measures.x}${PX}, ${data.config.isVertical ? data.measures.y : 0}${PX}, ${POSITION_ZERO})`;
133
+ }
134
+ styles.height = data.config.isVertical ? data.config.dynamic ? SIZE_AUTO : `${data.measures.height}${PX}` : regular ? length : SIZE_100_PERSENT;
135
+ styles.width = data.config.isVertical ? regular ? length : SIZE_100_PERSENT : data.config.dynamic ? SIZE_AUTO : `${data.measures.width}${PX}`;
136
+ }
137
+ else {
138
+ el.removeAttribute(ID);
139
+ }
140
+ }
141
+ updatePartStr(v, isSelected, isCollapsed) {
142
+ let odd = false;
143
+ if (v?.index !== undefined) {
144
+ odd = v.index % 2 === 0;
145
+ }
146
+ let part = PART_DEFAULT_ITEM;
147
+ part += odd ? PART_ITEM_ODD : PART_ITEM_EVEN;
148
+ if (v ? v.config.snapped : false) {
149
+ part += PART_ITEM_SNAPPED;
150
+ }
151
+ if (isSelected) {
152
+ part += PART_ITEM_SELECTED;
153
+ }
154
+ if (isCollapsed) {
155
+ part += PART_ITEM_COLLAPSED;
156
+ }
157
+ if (v ? v.config.new : false) {
158
+ part += PART_ITEM_NEW;
159
+ }
160
+ if (this._$focused.getValue()) {
161
+ part += PART_ITEM_FOCUSED;
162
+ }
163
+ this._$part.next(part);
164
+ }
165
+ getBounds() {
166
+ const el = this._elementRef.nativeElement, { width, height } = el.getBoundingClientRect();
167
+ return { width: width > 0 ? width : 1, height: height > 0 ? height : 1, };
168
+ }
169
+ show() {
170
+ const el = this._elementRef.nativeElement, styles = el.style;
171
+ styles.zIndex = this._data?.config?.zIndex ?? DEFAULT_ZINDEX;
172
+ if (this.regular) {
173
+ if (styles.display === DISPLAY_BLOCK) {
174
+ return;
175
+ }
176
+ styles.display = DISPLAY_BLOCK;
177
+ }
178
+ else {
179
+ const isStub = this._data?.config?.isStub ?? false;
180
+ if (!isStub) {
181
+ if (styles.visibility === VISIBILITY_VISIBLE) {
182
+ return;
183
+ }
184
+ styles.visibility = VISIBILITY_VISIBLE;
185
+ }
186
+ }
187
+ }
188
+ hide() {
189
+ const el = this._elementRef.nativeElement, styles = el.style;
190
+ styles.position = POSITION_ABSOLUTE;
191
+ styles.transform = TRANSLATE_3D_HIDDEN;
192
+ styles.zIndex = HIDDEN_ZINDEX;
193
+ if (this.regular) {
194
+ if (styles.display === DISPLAY_NONE) {
195
+ return;
196
+ }
197
+ styles.display = DISPLAY_NONE;
198
+ }
199
+ else {
200
+ if (styles.visibility === VISIBILITY_HIDDEN) {
201
+ return;
202
+ }
203
+ styles.visibility = VISIBILITY_HIDDEN;
204
+ }
205
+ }
206
+ }
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12aXJ0dWFsLWxpc3QtaXRlbS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLWxpc3QtaXRlbS9iYXNlL2Jhc2UtdmlydHVhbC1saXN0LWl0ZW0tY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSW5GLE9BQU8sRUFDTCxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUNsSCxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFDL0gsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsR0FDL0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixHQUNsSixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQWlCLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUU7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsbUJBQW1CO0lBQzNELFdBQVcsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUUvQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFakMsR0FBRyxDQUFVO0lBQ3ZCLElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRVMsT0FBTyxDQUFVO0lBQzNCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRVMsVUFBVSxDQUFVO0lBQzlCLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRVMsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUU3QixZQUFZLEdBQVksS0FBSyxDQUFDO0lBRTlCLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsRUFBMEIsQ0FBQyxDQUFDO0lBQzNGLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTdCLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsSUFBSSxDQUFDLENBQUM7SUFDaEYsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFakMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzFELFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRS9CLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXpCLEtBQUssR0FBa0MsSUFBSSxDQUFDO0lBQ3RELElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDZCxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQWdDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV0RCxJQUFJLElBQUksQ0FBQyxDQUFnQztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ25ELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWpDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTdCLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFtQix3QkFBd0IsQ0FBQyxDQUFDO0lBQzVGLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVsRCxPQUFPLEdBQVksS0FBSyxDQUFDO0lBRXRCLGNBQWMsR0FBVyxDQUFDLENBQUM7SUFFM0IsWUFBWSxHQUFrQixjQUFjLENBQUMsR0FBRyxDQUFDO0lBRWpELGNBQWMsR0FBVyxnQkFBZ0IsQ0FBQztJQUNwRCxJQUFJLGFBQWEsQ0FBQyxDQUFTO1FBQ3pCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLFlBQVksQ0FBK0I7SUFFckQsSUFBSSxRQUFRLENBQUMsQ0FBK0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxXQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztJQUNwRSxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRVIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFDdEIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQ3RCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUMxQixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUUzQixhQUFhLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxJQUFJLEtBQUs7Z0JBQ2pILENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPO2FBQzVCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxFQUFFLENBQUM7UUFFZCxPQUFPLENBQUMsSUFBSSxDQUNWLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWQsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0MsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDMUIsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUTtnQkFDbkYsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQ3pFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVTLGNBQWMsQ0FBQyxDQUFxQztRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBRVMsWUFBWSxDQUFDLENBQXFDO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sSUFBSSxFQUEwQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtTQUN6SSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsTUFBTTtRQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQ25ILElBQUksSUFBSSxFQUFFO1lBQ1IsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDbkMsTUFBTSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDL0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUM7YUFDekM7WUFDRCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDekMsTUFBTSxDQUFDLFNBQVMsR0FBRyxHQUFHLFlBQVksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLGFBQWEsR0FBRyxDQUFDO2FBQy9PO2lCQUFNO2dCQUNMLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsR0FBRyxZQUFZLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxhQUFhLEdBQUcsQ0FBQzthQUNwSztZQUNELE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoSixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUM7U0FDL0k7YUFBTTtZQUNMLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRVMsYUFBYSxDQUFDLENBQWdDLEVBQUUsVUFBbUIsRUFBRSxXQUFvQjtRQUNqRyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDaEIsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMxQixHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDN0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxJQUFJLGlCQUFpQixDQUFDO1NBQzNCO1FBQ0QsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLElBQUksa0JBQWtCLENBQUM7U0FDNUI7UUFDRCxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksSUFBSSxtQkFBbUIsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQzVCLElBQUksSUFBSSxhQUFhLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxJQUFJLGlCQUFpQixDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLEVBQUUsR0FBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ3BELEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUk7UUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQTRCLEVBQ3RELE1BQU0sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLGFBQWEsRUFBRTtnQkFDcEMsT0FBTzthQUNSO1lBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUM7U0FDaEM7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUM7WUFDbkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssa0JBQWtCLEVBQUU7b0JBQzVDLE9BQU87aUJBQ1I7Z0JBQ0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQzthQUN4QztTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDdkMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztRQUNwQyxNQUFNLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssWUFBWSxFQUFFO2dCQUNuQyxPQUFPO2FBQ1I7WUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLGlCQUFpQixFQUFFO2dCQUMzQyxPQUFPO2FBQ1I7WUFFRCxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSVNpemUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZW5kZXItaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IElEaXNwbGF5T2JqZWN0Q29uZmlnLCBJRGlzcGxheU9iamVjdE1lYXN1cmVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBERUZBVUxUX1pJTkRFWCwgRElTUExBWV9CTE9DSywgRElTUExBWV9OT05FLCBISURERU5fWklOREVYLCBQQVJUX0RFRkFVTFRfSVRFTSwgUEFSVF9JVEVNX0NPTExBUFNFRCwgUEFSVF9JVEVNX0VWRU4sXHJcbiAgUEFSVF9JVEVNX0ZPQ1VTRUQsIFBBUlRfSVRFTV9ORVcsIFBBUlRfSVRFTV9PREQsIFBBUlRfSVRFTV9TRUxFQ1RFRCwgUEFSVF9JVEVNX1NOQVBQRUQsIFBPU0lUSU9OX0FCU09MVVRFLCBQWCwgU0laRV8xMDBfUEVSU0VOVCxcclxuICBTSVpFX0FVVE8sIFRSQU5TTEFURV8zRCwgVklTSUJJTElUWV9ISURERU4sIFZJU0lCSUxJVFlfVklTSUJMRSxcclxufSBmcm9tICcuLi8uLi8uLi9jb25zdCc7XHJcbmltcG9ydCB7IElUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBDTEFTU19OQU1FX0ZPQ1VTLCBDTEFTU19OQU1FX1NOQVBQRUQsIENMQVNTX05BTUVfU05BUFBFRF9PVVQsIERFRkFVTFRfVEVNUExBVEVfQ09OVEVYVCwgSUQsIElURU1fSUQsIFBPU0lUSU9OLCBQT1NJVElPTl9aRVJPLCBUUkFOU0xBVEVfM0RfSElEREVOLFxyXG59IGZyb20gJy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVGV4dERpcmVjdGlvbiwgVGV4dERpcmVjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IE5nVmlydHVhbExpc3RQdWJsaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vbmctdmlydHVhbC1saXN0LXB1YmxpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTYueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL2xpc3QtaXRlbS9iYXNlL2Jhc2UtdmlydHVhbC1saXN0LWl0ZW0tY29tcG9uZW50LnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBBbGV4YW5kcm92aWNoIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcclxuICBwcml2YXRlIF9hcGlTZXJ2aWNlID0gaW5qZWN0KE5nVmlydHVhbExpc3RQdWJsaWNTZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICBwcm90ZWN0ZWQgX2lkITogbnVtYmVyO1xyXG4gIGdldCBpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfbGlzdElkITogbnVtYmVyO1xyXG4gIGdldCBsaXN0SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdElkO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9kaXNwbGF5SWQhOiBzdHJpbmc7XHJcbiAgZ2V0IGRpc3BsYXlJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SWQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2lzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJvdGVjdGVkIF9pc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcm90ZWN0ZWQgXyRjb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEaXNwbGF5T2JqZWN0Q29uZmlnPih7fSBhcyBJRGlzcGxheU9iamVjdENvbmZpZyk7XHJcbiAgJGNvbmZpZyA9IHRoaXMuXyRjb25maWcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByb3RlY3RlZCBfJG1lYXN1cmVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRGlzcGxheU9iamVjdE1lYXN1cmVzIHwgbnVsbD4obnVsbCk7XHJcbiAgJG1lYXN1cmVzID0gdGhpcy5fJG1lYXN1cmVzLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcm90ZWN0ZWQgXyRmb2N1c2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgJGZvY3VzZWQgPSB0aGlzLl8kZm9jdXNlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJvdGVjdGVkIF8kcGFydCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihQQVJUX0RFRkFVTFRfSVRFTSk7XHJcbiAgJHBhcnQgPSB0aGlzLl8kcGFydC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9kYXRhOiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF8kZGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IG51bGw+KHRoaXMuX2RhdGEpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSAkZGF0YSA9IHRoaXMuXyRkYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBzZXQgaXRlbSh2OiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgbnVsbCkge1xyXG4gICAgaWYgKHRoaXMuX2RhdGEgPT09IHYgfHwgdGhpcy5fZGF0YT8uaWQgPT09IC0xIHx8ICF2KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kYXRhID0gdjtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVBhcnRTdHIodiwgdGhpcy5faXNTZWxlY3RlZCwgdGhpcy5faXNDb2xsYXBzZWQpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlQ29uZmlnKHYpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlTWVhc3VyZXModik7XHJcblxyXG4gICAgdGhpcy51cGRhdGUoKTtcclxuXHJcbiAgICB0aGlzLl8kZGF0YS5uZXh0KHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfJGNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2NOYW1lOiBzdHJpbmddOiBib29sZWFuOyB9Pih7fSk7XHJcbiAgJGNsYXNzZXMgPSB0aGlzLl8kY2xhc3Nlcy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfJGluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KC0xKTtcclxuICAkaW5kZXggPSB0aGlzLl8kaW5kZXguYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgXyR0ZW1wbGF0ZUNvbnRleHQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUZW1wbGF0ZUNvbnRleHQ+KERFRkFVTFRfVEVNUExBVEVfQ09OVEVYVCk7XHJcbiAgJHRlbXBsYXRlQ29udGV4dCA9IHRoaXMuXyR0ZW1wbGF0ZUNvbnRleHQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHB1YmxpYyByZWd1bGFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByb3RlY3RlZCBfc2Nyb2xsQmFyU2l6ZTogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJvdGVjdGVkIF9sYW5nVGV4dERpcjogVGV4dERpcmVjdGlvbiA9IFRleHREaXJlY3Rpb25zLkxUUjtcclxuXHJcbiAgcHJvdGVjdGVkIF9yZWd1bGFyTGVuZ3RoOiBzdHJpbmcgPSBTSVpFXzEwMF9QRVJTRU5UO1xyXG4gIHNldCByZWd1bGFyTGVuZ3RoKHY6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuX3JlZ3VsYXJMZW5ndGggPT09IHYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3JlZ3VsYXJMZW5ndGggPSB2O1xyXG5cclxuICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXRlbSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGl0ZW1JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhPy5pZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBpdGVtUmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHNldCByZW5kZXJlcih2OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5pdGVtUmVuZGVyZXIgPT09IHYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXRlbVJlbmRlcmVyID0gdjtcclxuXHJcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xyXG4gIGdldCBlbGVtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICBjb25zdCAkZGF0YSA9IHRoaXMuJGRhdGEsXHJcbiAgICAgICRjb25maWcgPSB0aGlzLiRjb25maWcsXHJcbiAgICAgICRtZWFzdXJlcyA9IHRoaXMuJG1lYXN1cmVzLFxyXG4gICAgICAkZm9jdXNlZCA9IHRoaXMuJGZvY3VzZWQ7XHJcblxyXG4gICAgY29tYmluZUxhdGVzdChbJGRhdGEsICRmb2N1c2VkXSkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgIHRhcCgoW2RhdGEsIGZvY3VzZWRdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fJGNsYXNzZXMubmV4dCh7XHJcbiAgICAgICAgICBbQ0xBU1NfTkFNRV9TTkFQUEVEXTogZGF0YT8uY29uZmlnPy5zbmFwcGVkID8/IGZhbHNlLCBbQ0xBU1NfTkFNRV9TTkFQUEVEX09VVF06IGRhdGE/LmNvbmZpZz8uc25hcHBlZE91dCA/PyBmYWxzZSxcclxuICAgICAgICAgIFtDTEFTU19OQU1FX0ZPQ1VTXTogZm9jdXNlZCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSksXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICRjb25maWcucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgIHRhcChjb25maWcgPT4ge1xyXG4gICAgICAgIHRoaXMuXyRpbmRleC5uZXh0KGNvbmZpZz8udGFiSW5kZXggPz8gLTEpO1xyXG4gICAgICB9KSxcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgY29tYmluZUxhdGVzdChbJGRhdGEsICRjb25maWcsICRtZWFzdXJlc10pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICB0YXAoKFtkYXRhLCBjb25maWcsIG1lYXN1cmVzXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuXyR0ZW1wbGF0ZUNvbnRleHQubmV4dCh7XHJcbiAgICAgICAgICBkYXRhOiBkYXRhPy5kYXRhLCBwcmV2RGF0YTogZGF0YT8ucHJldmlvdXNlRGF0YSwgbmV4dERhdGE6IGRhdGE/Lm5leHREYXRhLCBtZWFzdXJlcyxcclxuICAgICAgICAgIGNvbmZpZywgcmVzZXRlZDogZmFsc2UsIGluZGV4OiBkYXRhPy5pbmRleCA/PyAtIDEsIGFwaTogdGhpcy5fYXBpU2VydmljZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSksXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHVwZGF0ZU1lYXN1cmVzKHY6IElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW08YW55PiB8IG51bGwpIHtcclxuICAgIHRoaXMuXyRtZWFzdXJlcy5uZXh0KHY/Lm1lYXN1cmVzID8geyAuLi52Lm1lYXN1cmVzIH0gOiBudWxsKVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHVwZGF0ZUNvbmZpZyh2OiBJUmVuZGVyVmlydHVhbExpc3RJdGVtPGFueT4gfCBudWxsKSB7XHJcbiAgICB0aGlzLl8kY29uZmlnLm5leHQoe1xyXG4gICAgICAuLi52Py5jb25maWcgfHwge30gYXMgSURpc3BsYXlPYmplY3RDb25maWcsIHNlbGVjdGVkOiB0aGlzLl9pc1NlbGVjdGVkLCBjb2xsYXBzZWQ6IHRoaXMuX2lzQ29sbGFwc2VkLCBmb2N1c2VkOiB0aGlzLl8kZm9jdXNlZC5nZXRWYWx1ZSgpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdXBkYXRlKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2RhdGEsIHJlZ3VsYXIgPSB0aGlzLnJlZ3VsYXIsIGxlbmd0aCA9IHRoaXMuX3JlZ3VsYXJMZW5ndGgsIGVsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgZWwuc2V0QXR0cmlidXRlKElURU1fSUQsIGAke2RhdGEuaWR9YCk7XHJcbiAgICAgIGNvbnN0IHN0eWxlcyA9IGVsLnN0eWxlO1xyXG4gICAgICBzdHlsZXMuekluZGV4ID0gZGF0YS5jb25maWcuekluZGV4O1xyXG4gICAgICBzdHlsZXMucG9zaXRpb24gPSBQT1NJVElPTl9BQlNPTFVURTtcclxuICAgICAgaWYgKGRhdGEuY29uZmlnLmlzU3R1YiA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSBWSVNJQklMSVRZX0hJRERFTjtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVndWxhcikge1xyXG4gICAgICAgIGVsLnNldEF0dHJpYnV0ZShQT1NJVElPTiwgUE9TSVRJT05fWkVSTyk7XHJcbiAgICAgICAgc3R5bGVzLnRyYW5zZm9ybSA9IGAke1RSQU5TTEFURV8zRH0oJHtkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gKHRoaXMuX2xhbmdUZXh0RGlyID09PSBUZXh0RGlyZWN0aW9ucy5SVEwgPyB0aGlzLl9zY3JvbGxCYXJTaXplIDogMCkgOiBkYXRhLm1lYXN1cmVzLmRlbHRhfSR7UFh9LCAke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLm1lYXN1cmVzLmRlbHRhIDogMH0ke1BYfSwgJHtQT1NJVElPTl9aRVJPfSlgO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVsLnNldEF0dHJpYnV0ZShQT1NJVElPTiwgYCR7ZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IGRhdGEubWVhc3VyZXMueSA6IGRhdGEubWVhc3VyZXMueH1gKTtcclxuICAgICAgICBzdHlsZXMudHJhbnNmb3JtID0gYCR7VFJBTlNMQVRFXzNEfSgke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyAwIDogZGF0YS5tZWFzdXJlcy54fSR7UFh9LCAke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLm1lYXN1cmVzLnkgOiAwfSR7UFh9LCAke1BPU0lUSU9OX1pFUk99KWA7XHJcbiAgICAgIH1cclxuICAgICAgc3R5bGVzLmhlaWdodCA9IGRhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLmNvbmZpZy5keW5hbWljID8gU0laRV9BVVRPIDogYCR7ZGF0YS5tZWFzdXJlcy5oZWlnaHR9JHtQWH1gIDogcmVndWxhciA/IGxlbmd0aCA6IFNJWkVfMTAwX1BFUlNFTlQ7XHJcbiAgICAgIHN0eWxlcy53aWR0aCA9IGRhdGEuY29uZmlnLmlzVmVydGljYWwgPyByZWd1bGFyID8gbGVuZ3RoIDogU0laRV8xMDBfUEVSU0VOVCA6IGRhdGEuY29uZmlnLmR5bmFtaWMgPyBTSVpFX0FVVE8gOiBgJHtkYXRhLm1lYXN1cmVzLndpZHRofSR7UFh9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShJRCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdXBkYXRlUGFydFN0cih2OiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgbnVsbCwgaXNTZWxlY3RlZDogYm9vbGVhbiwgaXNDb2xsYXBzZWQ6IGJvb2xlYW4pIHtcclxuICAgIGxldCBvZGQgPSBmYWxzZTtcclxuICAgIGlmICh2Py5pbmRleCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG9kZCA9IHYuaW5kZXggJSAyID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBwYXJ0ID0gUEFSVF9ERUZBVUxUX0lURU07XHJcbiAgICBwYXJ0ICs9IG9kZCA/IFBBUlRfSVRFTV9PREQgOiBQQVJUX0lURU1fRVZFTjtcclxuICAgIGlmICh2ID8gdi5jb25maWcuc25hcHBlZCA6IGZhbHNlKSB7XHJcbiAgICAgIHBhcnQgKz0gUEFSVF9JVEVNX1NOQVBQRUQ7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNTZWxlY3RlZCkge1xyXG4gICAgICBwYXJ0ICs9IFBBUlRfSVRFTV9TRUxFQ1RFRDtcclxuICAgIH1cclxuICAgIGlmIChpc0NvbGxhcHNlZCkge1xyXG4gICAgICBwYXJ0ICs9IFBBUlRfSVRFTV9DT0xMQVBTRUQ7XHJcbiAgICB9XHJcbiAgICBpZiAodiA/IHYuY29uZmlnLm5ldyA6IGZhbHNlKSB7XHJcbiAgICAgIHBhcnQgKz0gUEFSVF9JVEVNX05FVztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl8kZm9jdXNlZC5nZXRWYWx1ZSgpKSB7XHJcbiAgICAgIHBhcnQgKz0gUEFSVF9JVEVNX0ZPQ1VTRUQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLl8kcGFydC5uZXh0KHBhcnQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Qm91bmRzKCk6IElTaXplIHtcclxuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgeyB3aWR0aCwgaGVpZ2h0IH0gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybiB7IHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDEsIGhlaWdodDogaGVpZ2h0ID4gMCA/IGhlaWdodCA6IDEsIH07XHJcbiAgfVxyXG5cclxuICBzaG93KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsXHJcbiAgICAgIHN0eWxlcyA9IGVsLnN0eWxlO1xyXG4gICAgc3R5bGVzLnpJbmRleCA9IHRoaXMuX2RhdGE/LmNvbmZpZz8uekluZGV4ID8/IERFRkFVTFRfWklOREVYO1xyXG4gICAgaWYgKHRoaXMucmVndWxhcikge1xyXG4gICAgICBpZiAoc3R5bGVzLmRpc3BsYXkgPT09IERJU1BMQVlfQkxPQ0spIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0eWxlcy5kaXNwbGF5ID0gRElTUExBWV9CTE9DSztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGlzU3R1YiA9IHRoaXMuX2RhdGE/LmNvbmZpZz8uaXNTdHViID8/IGZhbHNlO1xyXG4gICAgICBpZiAoIWlzU3R1Yikge1xyXG4gICAgICAgIGlmIChzdHlsZXMudmlzaWJpbGl0eSA9PT0gVklTSUJJTElUWV9WSVNJQkxFKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0eWxlcy52aXNpYmlsaXR5ID0gVklTSUJJTElUWV9WSVNJQkxFO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlKCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHN0eWxlcyA9IGVsLnN0eWxlO1xyXG4gICAgc3R5bGVzLnBvc2l0aW9uID0gUE9TSVRJT05fQUJTT0xVVEU7XHJcbiAgICBzdHlsZXMudHJhbnNmb3JtID0gVFJBTlNMQVRFXzNEX0hJRERFTjtcclxuICAgIHN0eWxlcy56SW5kZXggPSBISURERU5fWklOREVYO1xyXG4gICAgaWYgKHRoaXMucmVndWxhcikge1xyXG4gICAgICBpZiAoc3R5bGVzLmRpc3BsYXkgPT09IERJU1BMQVlfTk9ORSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3R5bGVzLmRpc3BsYXkgPSBESVNQTEFZX05PTkU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc3R5bGVzLnZpc2liaWxpdHkgPT09IFZJU0lCSUxJVFlfSElEREVOKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZXMudmlzaWJpbGl0eSA9IFZJU0lCSUxJVFlfSElEREVOO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { BaseVirtualListItemComponent } from './base-virtual-list-item-component';
2
+ export { BaseVirtualListItemComponent, };
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLWxpc3QtaXRlbS9iYXNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxGLE9BQU8sRUFDSCw0QkFBNEIsR0FDL0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Jhc2UtdmlydHVhbC1saXN0LWl0ZW0tY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBCYXNlVmlydHVhbExpc3RJdGVtQ29tcG9uZW50LFxyXG59XHJcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ export const ID = 'id', TRANSLATE_3D_HIDDEN = 'translate3d(-1000px,-1000px,0)', ATTR_AREA_SELECTED = 'area-selected', POSITION = 'position', POSITION_ZERO = '0', ITEM_ID = 'item-id', KEY_SPACE = ' ', KEY_ARR_LEFT = 'ArrowLeft', KEY_ARR_UP = 'ArrowUp', KEY_ARR_RIGHT = 'ArrowRight', KEY_ARR_DOWN = 'ArrowDown', EVENT_FOCUS_IN = 'focusin', EVENT_FOCUS_OUT = 'focusout', EVENT_KEY_DOWN = 'keydown', CLASS_NAME_SNAPPED = 'snapped', CLASS_NAME_SNAPPED_OUT = 'snapped-out', CLASS_NAME_FOCUS = 'focus';
2
+ export const DEFAULT_TEMPLATE_CONTEXT = {
3
+ data: undefined,
4
+ prevData: undefined,
5
+ nextData: undefined,
6
+ measures: null,
7
+ config: {
8
+ focused: false,
9
+ selected: false,
10
+ collapsed: false,
11
+ new: false,
12
+ odd: false,
13
+ even: false,
14
+ collapsable: false,
15
+ sticky: 0,
16
+ selectable: false,
17
+ snap: false,
18
+ snapped: false,
19
+ snappedOut: false,
20
+ isVertical: false,
21
+ dynamic: false,
22
+ isSnappingMethodAdvanced: false,
23
+ tabIndex: 0,
24
+ zIndex: '0',
25
+ },
26
+ reseted: false,
27
+ index: -1,
28
+ api: null,
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLWxpc3QtaXRlbS9jb25zdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUNsQixtQkFBbUIsR0FBRyxnQ0FBZ0MsRUFDdEQsa0JBQWtCLEdBQUcsZUFBZSxFQUNwQyxRQUFRLEdBQUcsVUFBVSxFQUNyQixhQUFhLEdBQUcsR0FBRyxFQUNuQixPQUFPLEdBQUcsU0FBUyxFQUNuQixTQUFTLEdBQUcsR0FBRyxFQUNmLFlBQVksR0FBRyxXQUFXLEVBQzFCLFVBQVUsR0FBRyxTQUFTLEVBQ3RCLGFBQWEsR0FBRyxZQUFZLEVBQzVCLFlBQVksR0FBRyxXQUFXLEVBQzFCLGNBQWMsR0FBRyxTQUFTLEVBQzFCLGVBQWUsR0FBRyxVQUFVLEVBQzVCLGNBQWMsR0FBRyxTQUFTLEVBQzFCLGtCQUFrQixHQUFHLFNBQVMsRUFDOUIsc0JBQXNCLEdBQUcsYUFBYSxFQUN0QyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7QUFHM0IsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXFCO0lBQ3RELElBQUksRUFBRSxTQUFTO0lBQ2YsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUU7UUFDSixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLEtBQUs7UUFDaEIsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLElBQUksRUFBRSxLQUFLO1FBQ1gsV0FBVyxFQUFFLEtBQUs7UUFDbEIsTUFBTSxFQUFFLENBQUM7UUFDVCxVQUFVLEVBQUUsS0FBSztRQUNqQixJQUFJLEVBQUUsS0FBSztRQUNYLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLEtBQUs7UUFDakIsVUFBVSxFQUFFLEtBQUs7UUFDakIsT0FBTyxFQUFFLEtBQUs7UUFDZCx3QkFBd0IsRUFBRSxLQUFLO1FBQy9CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsTUFBTSxFQUFFLEdBQUc7S0FDZDtJQUNELE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNULEdBQUcsRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUZW1wbGF0ZUNvbnRleHQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IElEID0gJ2lkJyxcclxuICAgIFRSQU5TTEFURV8zRF9ISURERU4gPSAndHJhbnNsYXRlM2QoLTEwMDBweCwtMTAwMHB4LDApJyxcclxuICAgIEFUVFJfQVJFQV9TRUxFQ1RFRCA9ICdhcmVhLXNlbGVjdGVkJyxcclxuICAgIFBPU0lUSU9OID0gJ3Bvc2l0aW9uJyxcclxuICAgIFBPU0lUSU9OX1pFUk8gPSAnMCcsXHJcbiAgICBJVEVNX0lEID0gJ2l0ZW0taWQnLFxyXG4gICAgS0VZX1NQQUNFID0gJyAnLFxyXG4gICAgS0VZX0FSUl9MRUZUID0gJ0Fycm93TGVmdCcsXHJcbiAgICBLRVlfQVJSX1VQID0gJ0Fycm93VXAnLFxyXG4gICAgS0VZX0FSUl9SSUdIVCA9ICdBcnJvd1JpZ2h0JyxcclxuICAgIEtFWV9BUlJfRE9XTiA9ICdBcnJvd0Rvd24nLFxyXG4gICAgRVZFTlRfRk9DVVNfSU4gPSAnZm9jdXNpbicsXHJcbiAgICBFVkVOVF9GT0NVU19PVVQgPSAnZm9jdXNvdXQnLFxyXG4gICAgRVZFTlRfS0VZX0RPV04gPSAna2V5ZG93bicsXHJcbiAgICBDTEFTU19OQU1FX1NOQVBQRUQgPSAnc25hcHBlZCcsXHJcbiAgICBDTEFTU19OQU1FX1NOQVBQRURfT1VUID0gJ3NuYXBwZWQtb3V0JyxcclxuICAgIENMQVNTX05BTUVfRk9DVVMgPSAnZm9jdXMnO1xyXG5cclxuXHJcbiAgICBleHBvcnQgY29uc3QgREVGQVVMVF9URU1QTEFURV9DT05URVhUOiBJVGVtcGxhdGVDb250ZXh0ID0ge1xyXG4gICAgICAgIGRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmV2RGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgIG5leHREYXRhOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbWVhc3VyZXM6IG51bGwsXHJcbiAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgIGZvY3VzZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG5ldzogZmFsc2UsXHJcbiAgICAgICAgICAgIG9kZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGV2ZW46IGZhbHNlLFxyXG4gICAgICAgICAgICBjb2xsYXBzYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHN0aWNreTogMCxcclxuICAgICAgICAgICAgc2VsZWN0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHNuYXA6IGZhbHNlLFxyXG4gICAgICAgICAgICBzbmFwcGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgc25hcHBlZE91dDogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzVmVydGljYWw6IGZhbHNlLFxyXG4gICAgICAgICAgICBkeW5hbWljOiBmYWxzZSxcclxuICAgICAgICAgICAgaXNTbmFwcGluZ01ldGhvZEFkdmFuY2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgdGFiSW5kZXg6IDAsXHJcbiAgICAgICAgICAgIHpJbmRleDogJzAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzZXRlZDogZmFsc2UsXHJcbiAgICAgICAgaW5kZXg6IC0xLFxyXG4gICAgICAgIGFwaTogbnVsbCxcclxuICAgIH07XHJcbiAgICAiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLWxpc3QtaXRlbS9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGVtcGxhdGVDb250ZXh0IH0gZnJvbSAnLi90ZW1wbGF0ZS1jb250ZXh0JztcclxuXHJcbmV4cG9ydCB0eXBlIHtcclxuICAgIElUZW1wbGF0ZUNvbnRleHQsXHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL2NvbXBvbmVudHMvbmctbGlzdC1pdGVtL2ludGVyZmFjZXMvdGVtcGxhdGUtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURpc3BsYXlPYmplY3RDb25maWcsIElEaXNwbGF5T2JqZWN0TWVhc3VyZXMgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IE5nVmlydHVhbExpc3RQdWJsaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL25nLXZpcnR1YWwtbGlzdC1wdWJsaWMuc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTYueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL2xpc3QtaXRlbS9pbnRlcmZhY2VzL3RlbXBsYXRlLWNvbnRleHQudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEFsZXhhbmRyb3ZpY2ggR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElUZW1wbGF0ZUNvbnRleHQ8RCA9IGFueT4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBBUEkgcHJvdmlkZXIuXHJcbiAgICAgKi9cclxuICAgIGFwaTogTmdWaXJ0dWFsTGlzdFB1YmxpY1NlcnZpY2UgfCBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IGl0ZW0gZGF0YS5cclxuICAgICAqL1xyXG4gICAgZGF0YTogRDtcclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBvZiB0aGUgcHJldmlvdXMgbGlzdCBpdGVtLlxyXG4gICAgICovXHJcbiAgICBwcmV2RGF0YTogRDtcclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBvZiB0aGUgbmV4dCBsaXN0IGl0ZW0uXHJcbiAgICAgKi9cclxuICAgIG5leHREYXRhOiBEO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IGl0ZW0gbWVhc3VyZW1lbnQgZGF0YS5cclxuICAgICAqL1xyXG4gICAgbWVhc3VyZXM6IElEaXNwbGF5T2JqZWN0TWVhc3VyZXMgfCBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IGl0ZW0gY29uZmlndXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgY29uZmlnOiBJRGlzcGxheU9iamVjdENvbmZpZztcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGEgcmVzZXQgc3RhdGUuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0ZWQ6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIExpc3QgaXRlbSBpbmRleC5cclxuICAgICAqL1xyXG4gICAgaW5kZXg6IG51bWJlcjtcclxufSJdfQ==