ng-virtual-list 14.10.9 → 14.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 (205) hide show
  1. package/README.md +20 -78
  2. package/esm2020/lib/components/ng-list-item/base/base-virtual-list-item-component.mjs +203 -0
  3. package/esm2020/lib/components/ng-list-item/base/index.mjs +3 -0
  4. package/esm2020/lib/components/ng-list-item/const/index.mjs +30 -0
  5. package/esm2020/lib/components/ng-list-item/interfaces/index.mjs +2 -0
  6. package/esm2020/lib/components/ng-list-item/interfaces/template-context.mjs +2 -0
  7. package/esm2020/lib/components/ng-list-item/ng-virtual-list-item.component.mjs +212 -0
  8. package/esm2020/lib/components/{list-item → ng-list-item}/ng-virtual-list-item.module.mjs +1 -1
  9. package/esm2020/lib/components/ng-list-item/utils/create-display-id.mjs +4 -0
  10. package/esm2020/lib/components/ng-list-item/utils/get-element-by-index.mjs +6 -0
  11. package/esm2020/lib/components/ng-list-item/utils/index.mjs +4 -0
  12. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.mjs +268 -0
  13. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.module.mjs +21 -0
  14. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.mjs +78 -0
  15. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.mjs +20 -0
  16. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.mjs +139 -0
  17. package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.mjs +20 -0
  18. package/esm2020/lib/components/ng-prerender-container/core/index.mjs +3 -0
  19. package/esm2020/lib/components/ng-prerender-container/core/prerender-track-box.mjs +171 -0
  20. package/esm2020/lib/components/ng-prerender-container/events/index.mjs +6 -0
  21. package/esm2020/lib/components/ng-prerender-container/interfaces/index.mjs +2 -0
  22. package/esm2020/lib/components/ng-prerender-container/interfaces/refresh-params.mjs +2 -0
  23. package/esm2020/lib/components/ng-prerender-container/ng-prerender-container.component.mjs +89 -0
  24. package/esm2020/lib/components/ng-prerender-container/ng-prerender-container.module.mjs +20 -0
  25. package/esm2020/lib/components/ng-prerender-container/types/cache.mjs +2 -0
  26. package/esm2020/lib/components/ng-prerender-container/types/index.mjs +2 -0
  27. package/esm2020/lib/components/ng-scroll-bar/const/index.mjs +9 -2
  28. package/esm2020/lib/components/ng-scroll-bar/enums/index.mjs +3 -0
  29. package/esm2020/lib/components/ng-scroll-bar/enums/scrollbar-states.mjs +7 -0
  30. package/esm2020/lib/components/ng-scroll-bar/interfaces/index.mjs +1 -1
  31. package/esm2020/lib/components/ng-scroll-bar/interfaces/scroll-bar-template-context.mjs +2 -0
  32. package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.mjs +27 -0
  33. package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar.component.mjs +84 -71
  34. package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar.module.mjs +4 -5
  35. package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar.service.mjs +38 -0
  36. package/esm2020/lib/components/ng-scroll-bar/types/index.mjs +2 -0
  37. package/esm2020/lib/components/ng-scroll-bar/types/scrollbar-state.mjs +2 -0
  38. package/esm2020/lib/components/ng-scroll-view/base/base-scroll-view.component.mjs +39 -50
  39. package/esm2020/lib/components/ng-scroll-view/ng-scroll-view.component.mjs +13 -16
  40. package/esm2020/lib/components/ng-scroller/const/index.mjs +2 -0
  41. package/esm2020/lib/components/ng-scroller/enums/index.mjs +3 -0
  42. package/esm2020/lib/components/ng-scroller/enums/scroller-direction.mjs +6 -0
  43. package/esm2020/lib/components/ng-scroller/enums/scroller-directions.mjs +2 -0
  44. package/esm2020/lib/components/ng-scroller/ng-scroller.component.mjs +448 -0
  45. package/esm2020/lib/components/ng-scroller/ng-scroller.module.mjs +22 -0
  46. package/esm2020/lib/components/ng-scroller/utils/index.mjs +3 -0
  47. package/esm2020/lib/components/ng-scroller/utils/scroll-box.mjs +52 -0
  48. package/esm2020/lib/const/index.mjs +3 -14
  49. package/esm2020/lib/core/track-box.mjs +46 -16
  50. package/esm2020/lib/core/tracker.mjs +1 -1
  51. package/esm2020/lib/directives/locale-sensitive/locale-sensitive.directive.mjs +2 -2
  52. package/esm2020/lib/interfaces/scroll-params.mjs +1 -1
  53. package/esm2020/lib/interfaces/scroll-to-params.mjs +2 -0
  54. package/esm2020/lib/models/display-object-config.model.mjs +1 -1
  55. package/esm2020/lib/models/display-object-measures.model.mjs +1 -1
  56. package/esm2020/lib/models/render-item-measures.model.mjs +1 -1
  57. package/esm2020/lib/ng-virtual-list-public.service.mjs +123 -0
  58. package/esm2020/lib/ng-virtual-list.component.mjs +311 -280
  59. package/esm2020/lib/ng-virtual-list.module.mjs +7 -7
  60. package/esm2020/lib/ng-virtual-list.service.mjs +99 -22
  61. package/esm2020/lib/types/index.mjs +1 -1
  62. package/esm2020/lib/utils/debounce.mjs +28 -6
  63. package/esm2020/lib/utils/list-validators.mjs +1 -1
  64. package/esm2020/public-api.mjs +8 -3
  65. package/fesm2015/ng-virtual-list.mjs +3103 -3206
  66. package/fesm2015/ng-virtual-list.mjs.map +1 -1
  67. package/fesm2020/ng-virtual-list.mjs +3032 -3135
  68. package/fesm2020/ng-virtual-list.mjs.map +1 -1
  69. package/lib/components/{list-item → ng-list-item}/base/base-virtual-list-item-component.d.ts +4 -3
  70. package/lib/components/ng-list-item/interfaces/template-context.d.ts +42 -0
  71. package/lib/components/{list-item → ng-list-item}/ng-virtual-list-item.component.d.ts +1 -4
  72. 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} +7 -12
  73. package/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.module.d.ts +10 -0
  74. package/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.d.ts +17 -0
  75. package/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.d.ts +9 -0
  76. 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
  77. package/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.module.d.ts +9 -0
  78. package/lib/components/{prerender-container → ng-prerender-container}/core/prerender-track-box.d.ts +2 -2
  79. package/lib/components/{prerender-container → ng-prerender-container}/interfaces/refresh-params.d.ts +1 -1
  80. package/lib/components/{prerender-container/prerender-container.component.d.ts → ng-prerender-container/ng-prerender-container.component.d.ts} +6 -9
  81. package/lib/components/ng-prerender-container/ng-prerender-container.module.d.ts +9 -0
  82. package/lib/components/{prerender-container → ng-prerender-container}/types/cache.d.ts +1 -1
  83. package/lib/components/ng-scroll-bar/const/index.d.ts +3 -2
  84. package/lib/components/ng-scroll-bar/enums/index.d.ts +2 -0
  85. package/lib/components/ng-scroll-bar/enums/scrollbar-states.d.ts +5 -0
  86. package/lib/components/ng-scroll-bar/interfaces/index.d.ts +2 -1
  87. package/lib/components/ng-scroll-bar/interfaces/scroll-bar-template-context.d.ts +26 -0
  88. package/lib/components/ng-scroll-bar/ng-scroll-bar-public.service.d.ts +16 -0
  89. package/lib/components/ng-scroll-bar/ng-scroll-bar.component.d.ts +31 -36
  90. package/lib/components/ng-scroll-bar/ng-scroll-bar.module.d.ts +1 -2
  91. package/lib/components/ng-scroll-bar/ng-scroll-bar.service.d.ts +22 -0
  92. package/lib/components/ng-scroll-bar/types/index.d.ts +2 -0
  93. package/lib/components/ng-scroll-bar/types/scrollbar-state.d.ts +2 -0
  94. package/lib/components/ng-scroll-view/base/base-scroll-view.component.d.ts +8 -9
  95. package/lib/components/{scroller → ng-scroller}/ng-scroller.component.d.ts +31 -10
  96. package/lib/components/{scroller → ng-scroller}/utils/scroll-box.d.ts +1 -1
  97. package/lib/const/index.d.ts +2 -2
  98. package/lib/core/track-box.d.ts +17 -11
  99. package/lib/core/tracker.d.ts +1 -1
  100. package/lib/directives/locale-sensitive/locale-sensitive.directive.d.ts +1 -1
  101. package/lib/interfaces/scroll-params.d.ts +1 -1
  102. package/lib/interfaces/scroll-to-params.d.ts +7 -0
  103. package/lib/models/display-object-config.model.d.ts +1 -15
  104. package/lib/models/display-object-measures.model.d.ts +0 -4
  105. package/lib/models/render-item-measures.model.d.ts +0 -4
  106. package/lib/ng-virtual-list-public.service.d.ts +93 -0
  107. package/lib/ng-virtual-list.component.d.ts +39 -21
  108. package/lib/ng-virtual-list.module.d.ts +4 -4
  109. package/lib/ng-virtual-list.service.d.ts +39 -7
  110. package/lib/types/index.d.ts +3 -4
  111. package/lib/utils/debounce.d.ts +5 -1
  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/esm2020/lib/components/list-item/base/base-virtual-list-item-component.mjs +0 -203
  116. package/esm2020/lib/components/list-item/base/index.mjs +0 -3
  117. package/esm2020/lib/components/list-item/const/index.mjs +0 -32
  118. package/esm2020/lib/components/list-item/interfaces/index.mjs +0 -2
  119. package/esm2020/lib/components/list-item/interfaces/template-context.mjs +0 -2
  120. package/esm2020/lib/components/list-item/ng-virtual-list-item.component.mjs +0 -245
  121. package/esm2020/lib/components/list-item/utils/create-display-id.mjs +0 -4
  122. package/esm2020/lib/components/list-item/utils/get-element-by-index.mjs +0 -6
  123. package/esm2020/lib/components/list-item/utils/index.mjs +0 -4
  124. package/esm2020/lib/components/prerender-container/components/prerender-list/prerender-list.component.mjs +0 -280
  125. package/esm2020/lib/components/prerender-container/components/prerender-list/prerender-list.module.mjs +0 -21
  126. package/esm2020/lib/components/prerender-container/components/prerender-list-item/prerender-list-item.component.mjs +0 -78
  127. package/esm2020/lib/components/prerender-container/components/prerender-list-item/prerender-list-item.module.mjs +0 -20
  128. package/esm2020/lib/components/prerender-container/components/prerender-scroller/prerender-scroller.component.mjs +0 -149
  129. package/esm2020/lib/components/prerender-container/components/prerender-scroller/prerender-scroller.module.mjs +0 -20
  130. package/esm2020/lib/components/prerender-container/core/index.mjs +0 -3
  131. package/esm2020/lib/components/prerender-container/core/prerender-track-box.mjs +0 -172
  132. package/esm2020/lib/components/prerender-container/events/index.mjs +0 -6
  133. package/esm2020/lib/components/prerender-container/interfaces/index.mjs +0 -2
  134. package/esm2020/lib/components/prerender-container/interfaces/refresh-params.mjs +0 -2
  135. package/esm2020/lib/components/prerender-container/prerender-container.component.mjs +0 -95
  136. package/esm2020/lib/components/prerender-container/prerender-container.module.mjs +0 -20
  137. package/esm2020/lib/components/prerender-container/types/cache.mjs +0 -2
  138. package/esm2020/lib/components/prerender-container/types/index.mjs +0 -2
  139. package/esm2020/lib/components/scroller/const/index.mjs +0 -2
  140. package/esm2020/lib/components/scroller/enums/index.mjs +0 -3
  141. package/esm2020/lib/components/scroller/enums/scroller-direction.mjs +0 -6
  142. package/esm2020/lib/components/scroller/enums/scroller-directions.mjs +0 -2
  143. package/esm2020/lib/components/scroller/ng-scroller.component.mjs +0 -408
  144. package/esm2020/lib/components/scroller/ng-scroller.module.mjs +0 -22
  145. package/esm2020/lib/components/scroller/utils/index.mjs +0 -3
  146. package/esm2020/lib/components/scroller/utils/scroll-box.mjs +0 -52
  147. package/esm2020/lib/components/substrate/const/index.mjs +0 -2
  148. package/esm2020/lib/components/substrate/enums/index.mjs +0 -4
  149. package/esm2020/lib/components/substrate/enums/substrate-modes.mjs +0 -16
  150. package/esm2020/lib/components/substrate/enums/substrate-styles.mjs +0 -15
  151. package/esm2020/lib/components/substrate/index.mjs +0 -5
  152. package/esm2020/lib/components/substrate/substrate.component.mjs +0 -338
  153. package/esm2020/lib/components/substrate/substrate.module.mjs +0 -19
  154. package/esm2020/lib/components/substrate/types/index.mjs +0 -2
  155. package/esm2020/lib/components/substrate/types/substrate-mode.mjs +0 -2
  156. package/esm2020/lib/components/substrate/types/substrate-style.mjs +0 -2
  157. package/esm2020/lib/components/substrate/utils/circle-path.mjs +0 -4
  158. package/esm2020/lib/components/substrate/utils/index.mjs +0 -4
  159. package/esm2020/lib/components/substrate/utils/rounded-rect-path.mjs +0 -20
  160. package/esm2020/lib/types/color.mjs +0 -2
  161. package/esm2020/lib/types/gradient-color.mjs +0 -2
  162. package/esm2020/lib/types/rounded-corner.mjs +0 -2
  163. package/esm2020/lib/types/scrollbar-theme.mjs +0 -2
  164. package/esm2020/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.module.d.ts +0 -9
  171. package/lib/components/substrate/const/index.d.ts +0 -2
  172. package/lib/components/substrate/enums/index.d.ts +0 -3
  173. package/lib/components/substrate/enums/substrate-modes.d.ts +0 -13
  174. package/lib/components/substrate/enums/substrate-styles.d.ts +0 -12
  175. package/lib/components/substrate/index.d.ts +0 -7
  176. package/lib/components/substrate/substrate.component.d.ts +0 -91
  177. package/lib/components/substrate/substrate.module.d.ts +0 -8
  178. package/lib/components/substrate/types/index.d.ts +0 -3
  179. package/lib/components/substrate/types/substrate-mode.d.ts +0 -10
  180. package/lib/components/substrate/types/substrate-style.d.ts +0 -10
  181. package/lib/components/substrate/utils/circle-path.d.ts +0 -1
  182. package/lib/components/substrate/utils/index.d.ts +0 -3
  183. package/lib/components/substrate/utils/rounded-rect-path.d.ts +0 -1
  184. package/lib/types/color.d.ts +0 -7
  185. package/lib/types/gradient-color.d.ts +0 -8
  186. package/lib/types/rounded-corner.d.ts +0 -7
  187. package/lib/types/scrollbar-theme.d.ts +0 -47
  188. package/lib/utils/get-shape-min-size.d.ts +0 -8
  189. /package/lib/components/{list-item → ng-list-item}/base/index.d.ts +0 -0
  190. /package/lib/components/{list-item → ng-list-item}/const/index.d.ts +0 -0
  191. /package/lib/components/{list-item → ng-list-item}/interfaces/index.d.ts +0 -0
  192. /package/lib/components/{list-item → ng-list-item}/ng-virtual-list-item.module.d.ts +0 -0
  193. /package/lib/components/{list-item → ng-list-item}/utils/create-display-id.d.ts +0 -0
  194. /package/lib/components/{list-item → ng-list-item}/utils/get-element-by-index.d.ts +0 -0
  195. /package/lib/components/{list-item → ng-list-item}/utils/index.d.ts +0 -0
  196. /package/lib/components/{prerender-container → ng-prerender-container}/core/index.d.ts +0 -0
  197. /package/lib/components/{prerender-container → ng-prerender-container}/events/index.d.ts +0 -0
  198. /package/lib/components/{prerender-container → ng-prerender-container}/interfaces/index.d.ts +0 -0
  199. /package/lib/components/{prerender-container → ng-prerender-container}/types/index.d.ts +0 -0
  200. /package/lib/components/{scroller → ng-scroller}/const/index.d.ts +0 -0
  201. /package/lib/components/{scroller → ng-scroller}/enums/index.d.ts +0 -0
  202. /package/lib/components/{scroller → ng-scroller}/enums/scroller-direction.d.ts +0 -0
  203. /package/lib/components/{scroller → ng-scroller}/enums/scroller-directions.d.ts +0 -0
  204. /package/lib/components/{scroller → ng-scroller}/ng-scroller.module.d.ts +0 -0
  205. /package/lib/components/{scroller → ng-scroller}/utils/index.d.ts +0 -0
package/README.md CHANGED
@@ -288,6 +288,7 @@ Template:
288
288
  <span>{{data.name}}</span>
289
289
  </div>
290
290
  </ng-container>
291
+ </ng-template>
291
292
  ```
292
293
 
293
294
  #### With snapping
@@ -478,94 +479,32 @@ export class AppComponent {
478
479
 
479
480
  ## 🖼️ Stylization
480
481
 
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
- ```
482
+ ### Scrollbar stylization
512
483
 
513
484
  ```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
- }
485
+ .list::part(scrollbar-thumb__shape) {
486
+ background-color: rgba(51, 0, 97, 1);
487
+ border-radius: 3px;
525
488
  }
526
489
  ```
527
490
 
528
491
  ```html
529
- <ng-virtual-list class="list" [scrollbarTheme]="scrollbarTheme" [items]="items" [itemRenderer]="itemRenderer"></ng-virtual-list>
492
+ <ng-virtual-list class="list" [scrollbarThickness]="12" [items]="items" [itemRenderer]="itemRenderer"></ng-virtual-list>
530
493
 
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>
494
+ <ng-template #itemRenderer let-data="data" let-config="config">
495
+ <span>{{data.name}}</span>
535
496
  </ng-template>
536
497
  ```
537
498
 
499
+ ### Scrollbar castomization
500
+
501
+ [Examples](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/src/app/app.component.html)
502
+ [CustomScrollbarComponent](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/src/app/components/custom-scrollbar/custom-scrollbar.component.ts)
503
+
538
504
  List items are encapsulated in shadowDOM, so to override default styles you need to use ::part access
539
505
 
540
506
  - Customize a scroll area of list
541
507
  ```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
508
  .list {
570
509
  border-radius: 3px;
571
510
  box-shadow: 1px 2px 8px 4px rgba(0, 0, 0, 0.075);
@@ -597,7 +536,7 @@ List items are encapsulated in shadowDOM, so to override default styles you need
597
536
  Selecting even elements:
598
537
 
599
538
  ```html
600
- <ng-virtual-list class="list" direction="horizontal" [items]="horizontalItems" [bufferSize]="1"
539
+ <ng-virtual-list class="list" direction="horizontal" [items]="horizontalItems" [bufferSize]="1" [maxBufferSize]="5"
601
540
  [itemRenderer]="horizontalItemRenderer" [itemSize]="54"></ng-virtual-list>
602
541
 
603
542
  <ng-template #horizontalItemRenderer let-data="data" let-config="config">
@@ -647,7 +586,6 @@ Inputs
647
586
  | snap | boolean? = false | Determines whether elements will snap. Default value is "false". |
648
587
  | selectedIds | Array<[Id](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/types/id.ts)> \| [Id](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/types/id.ts) \| null | Sets the selected items. |
649
588
  | 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/14.x/projects/ng-virtual-list/src/lib/types/scrollbar-theme.ts) | Scrollbar theme. |
651
589
  | clickDistance | number? = 40 | The maximum scroll distance at which a click event is triggered. |
652
590
  | waitForPreparation | boolean? = true | If true, it will wait until the list items are fully prepared before displaying them.. The default value is `true`. |
653
591
  | scrollStartOffset | number? = 0 | Sets the scroll start offset value; Default value is "0". |
@@ -656,9 +594,12 @@ Inputs
656
594
  | 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
595
  | 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
596
  | 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
597
  | scrollbarEnabled | boolean? = true | Determines whether the scrollbar is shown or not. The default value is "true". |
661
598
  | scrollbarInteractive | boolean? = true | Determines whether scrolling using the scrollbar will be possible. The default value is "true". |
599
+ | scrollbarMinSize | number? = 80 | Minimum scrollbar size. |
600
+ | scrollbarThickness | number? = 6 | Scrollbar thickness. |
601
+ | scrollbarThumbRenderer | TemplateRef<any> \| null = null | Scrollbar customization template. |
602
+ | scrollbarThumbParams | {[propName: string]: any;} \| null | Additional options for the scrollbar. |
662
603
  | scrollBehavior | ScrollBehavior? = 'smooth' | Defines the scrolling behavior for any element on the page. The default value is "smooth". |
663
604
  | trackBy | string? = 'id' | The name of the property by which tracking is performed. |
664
605
 
@@ -695,7 +636,7 @@ Methods
695
636
  ### Template API
696
637
 
697
638
  ```html
698
- <ng-template #itemRenderer let-data="data" let-config="config" let-measures="measures">
639
+ <ng-template #itemRenderer let-data="data" let-config="config" let-measures="measures" let-api="api">
699
640
  <!-- content -->
700
641
  </ng-template>
701
642
  ```
@@ -704,6 +645,7 @@ Properties
704
645
 
705
646
  | Property | Type | Description |
706
647
  |--|--|--|
648
+ | api | [NgVirtualListPublicService](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/ng-virtual-list-public.service.ts) | List API Provider. |
707
649
  | data | {\[id: [Id](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/types/id.ts) \], [otherProps: string]: any;} | Collection item data. |
708
650
  | config | [IDisplayObjectConfig](https://github.com/DjonnyX/ng-virtual-list/blob/14.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
651
  | measures | [IDisplayObjectMeasures](https://github.com/DjonnyX/ng-virtual-list/blob/14.x/projects/ng-virtual-list/src/lib/models/display-object-measures.model.ts) \| null | Display object metrics. |
@@ -0,0 +1,203 @@
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/14.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
+ constructor() {
16
+ super();
17
+ this._apiService = inject(NgVirtualListPublicService);
18
+ this._cdr = inject(ChangeDetectorRef);
19
+ this._isSelected = false;
20
+ this._isCollapsed = false;
21
+ this._$config = new BehaviorSubject({});
22
+ this.$config = this._$config.asObservable();
23
+ this._$measures = new BehaviorSubject(null);
24
+ this.$measures = this._$measures.asObservable();
25
+ this._$focused = new BehaviorSubject(false);
26
+ this.$focused = this._$focused.asObservable();
27
+ this._$part = new BehaviorSubject(PART_DEFAULT_ITEM);
28
+ this.$part = this._$part.asObservable();
29
+ this._data = null;
30
+ this._$data = new BehaviorSubject(this._data);
31
+ this.$data = this._$data.asObservable();
32
+ this._$classes = new BehaviorSubject({});
33
+ this.$classes = this._$classes.asObservable();
34
+ this._$index = new BehaviorSubject(-1);
35
+ this.$index = this._$index.asObservable();
36
+ this._$templateContext = new BehaviorSubject(DEFAULT_TEMPLATE_CONTEXT);
37
+ this.$templateContext = this._$templateContext.asObservable();
38
+ this.regular = false;
39
+ this._scrollBarSize = 0;
40
+ this._langTextDir = TextDirections.LTR;
41
+ this._regularLength = SIZE_100_PERSENT;
42
+ this._elementRef = inject(ElementRef);
43
+ const $data = this.$data, $config = this.$config, $measures = this.$measures, $focused = this.$focused;
44
+ combineLatest([$data, $focused]).pipe(takeUntil(this._$unsubscribe), tap(([data, focused]) => {
45
+ this._$classes.next({
46
+ [CLASS_NAME_SNAPPED]: data?.config?.snapped ?? false, [CLASS_NAME_SNAPPED_OUT]: data?.config?.snappedOut ?? false,
47
+ [CLASS_NAME_FOCUS]: focused,
48
+ });
49
+ })).subscribe();
50
+ $config.pipe(takeUntil(this._$unsubscribe), tap(config => {
51
+ this._$index.next(config?.tabIndex ?? -1);
52
+ })).subscribe();
53
+ combineLatest([$data, $config, $measures]).pipe(takeUntil(this._$unsubscribe), tap(([data, config, measures]) => {
54
+ this._$templateContext.next({
55
+ data: data?.data, prevData: data?.previouseData, nextData: data?.nextData, measures,
56
+ config, reseted: false, index: data?.index ?? -1, api: this._apiService,
57
+ });
58
+ })).subscribe();
59
+ }
60
+ get id() {
61
+ return this._id;
62
+ }
63
+ get listId() {
64
+ return this._listId;
65
+ }
66
+ get displayId() {
67
+ return this._displayId;
68
+ }
69
+ get data() { return this._data; }
70
+ set item(v) {
71
+ if (this._data === v || this._data?.id === -1 || !v) {
72
+ return;
73
+ }
74
+ this._data = v;
75
+ this.updatePartStr(v, this._isSelected, this._isCollapsed);
76
+ this.updateConfig(v);
77
+ this.updateMeasures(v);
78
+ this.update();
79
+ this._$data.next(v);
80
+ }
81
+ set regularLength(v) {
82
+ if (this._regularLength === v) {
83
+ return;
84
+ }
85
+ this._regularLength = v;
86
+ this.update();
87
+ }
88
+ get item() {
89
+ return this._data;
90
+ }
91
+ get itemId() {
92
+ return this._data?.id;
93
+ }
94
+ set renderer(v) {
95
+ if (this.itemRenderer === v) {
96
+ return;
97
+ }
98
+ this.itemRenderer = v;
99
+ this._cdr.markForCheck();
100
+ }
101
+ get element() {
102
+ return this._elementRef.nativeElement;
103
+ }
104
+ updateMeasures(v) {
105
+ this._$measures.next(v?.measures ? { ...v.measures } : null);
106
+ }
107
+ updateConfig(v) {
108
+ this._$config.next({
109
+ ...v?.config || {}, selected: this._isSelected, collapsed: this._isCollapsed, focused: this._$focused.getValue(),
110
+ });
111
+ }
112
+ update() {
113
+ const data = this._data, regular = this.regular, length = this._regularLength, el = this._elementRef.nativeElement;
114
+ if (data) {
115
+ el.setAttribute(ITEM_ID, `${data.id}`);
116
+ const styles = el.style;
117
+ styles.zIndex = data.config.zIndex;
118
+ styles.position = POSITION_ABSOLUTE;
119
+ if (data.config.isStub === true) {
120
+ el.style.visibility = VISIBILITY_HIDDEN;
121
+ }
122
+ if (regular) {
123
+ el.setAttribute(POSITION, POSITION_ZERO);
124
+ 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})`;
125
+ }
126
+ else {
127
+ el.setAttribute(POSITION, `${data.config.isVertical ? data.measures.y : data.measures.x}`);
128
+ styles.transform = `${TRANSLATE_3D}(${data.config.isVertical ? 0 : data.measures.x}${PX}, ${data.config.isVertical ? data.measures.y : 0}${PX}, ${POSITION_ZERO})`;
129
+ }
130
+ styles.height = data.config.isVertical ? data.config.dynamic ? SIZE_AUTO : `${data.measures.height}${PX}` : regular ? length : SIZE_100_PERSENT;
131
+ styles.width = data.config.isVertical ? regular ? length : SIZE_100_PERSENT : data.config.dynamic ? SIZE_AUTO : `${data.measures.width}${PX}`;
132
+ }
133
+ else {
134
+ el.removeAttribute(ID);
135
+ }
136
+ }
137
+ updatePartStr(v, isSelected, isCollapsed) {
138
+ let odd = false;
139
+ if (v?.index !== undefined) {
140
+ odd = v.index % 2 === 0;
141
+ }
142
+ let part = PART_DEFAULT_ITEM;
143
+ part += odd ? PART_ITEM_ODD : PART_ITEM_EVEN;
144
+ if (v ? v.config.snapped : false) {
145
+ part += PART_ITEM_SNAPPED;
146
+ }
147
+ if (isSelected) {
148
+ part += PART_ITEM_SELECTED;
149
+ }
150
+ if (isCollapsed) {
151
+ part += PART_ITEM_COLLAPSED;
152
+ }
153
+ if (v ? v.config.new : false) {
154
+ part += PART_ITEM_NEW;
155
+ }
156
+ if (this._$focused.getValue()) {
157
+ part += PART_ITEM_FOCUSED;
158
+ }
159
+ this._$part.next(part);
160
+ }
161
+ getBounds() {
162
+ const el = this._elementRef.nativeElement, { width, height } = el.getBoundingClientRect();
163
+ return { width: width > 0 ? width : 1, height: height > 0 ? height : 1, };
164
+ }
165
+ show() {
166
+ const el = this._elementRef.nativeElement, styles = el.style;
167
+ styles.zIndex = this._data?.config?.zIndex ?? DEFAULT_ZINDEX;
168
+ if (this.regular) {
169
+ if (styles.display === DISPLAY_BLOCK) {
170
+ return;
171
+ }
172
+ styles.display = DISPLAY_BLOCK;
173
+ }
174
+ else {
175
+ const isStub = this._data?.config?.isStub ?? false;
176
+ if (!isStub) {
177
+ if (styles.visibility === VISIBILITY_VISIBLE) {
178
+ return;
179
+ }
180
+ styles.visibility = VISIBILITY_VISIBLE;
181
+ }
182
+ }
183
+ }
184
+ hide() {
185
+ const el = this._elementRef.nativeElement, styles = el.style;
186
+ styles.position = POSITION_ABSOLUTE;
187
+ styles.transform = TRANSLATE_3D_HIDDEN;
188
+ styles.zIndex = HIDDEN_ZINDEX;
189
+ if (this.regular) {
190
+ if (styles.display === DISPLAY_NONE) {
191
+ return;
192
+ }
193
+ styles.display = DISPLAY_NONE;
194
+ }
195
+ else {
196
+ if (styles.visibility === VISIBILITY_HIDDEN) {
197
+ return;
198
+ }
199
+ styles.visibility = VISIBILITY_HIDDEN;
200
+ }
201
+ }
202
+ }
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12aXJ0dWFsLWxpc3QtaXRlbS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLWxpc3QtaXRlbS9iYXNlL2Jhc2UtdmlydHVhbC1saXN0LWl0ZW0tY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSW5GLE9BQU8sRUFDTCxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUNsSCxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFDL0gsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsR0FDL0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixHQUNsSixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQWlCLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUU7Ozs7O0dBS0c7QUFDSCxNQUFNLE9B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TSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUM7WUFDbkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssa0JBQWtCLEVBQUU7b0JBQzVDLE9BQU87aUJBQ1I7Z0JBQ0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQzthQUN4QztTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDdkMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztRQUNwQyxNQUFNLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssWUFBWSxFQUFFO2dCQUNuQyxPQUFPO2FBQ1I7WUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLGlCQUFpQixFQUFFO2dCQUMzQyxPQUFPO2FBQ1I7WUFFRCxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSVNpemUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZW5kZXItaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IElEaXNwbGF5T2JqZWN0Q29uZmlnLCBJRGlzcGxheU9iamVjdE1lYXN1cmVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBERUZBVUxUX1pJTkRFWCwgRElTUExBWV9CTE9DSywgRElTUExBWV9OT05FLCBISURERU5fWklOREVYLCBQQVJUX0RFRkFVTFRfSVRFTSwgUEFSVF9JVEVNX0NPTExBUFNFRCwgUEFSVF9JVEVNX0VWRU4sXHJcbiAgUEFSVF9JVEVNX0ZPQ1VTRUQsIFBBUlRfSVRFTV9ORVcsIFBBUlRfSVRFTV9PREQsIFBBUlRfSVRFTV9TRUxFQ1RFRCwgUEFSVF9JVEVNX1NOQVBQRUQsIFBPU0lUSU9OX0FCU09MVVRFLCBQWCwgU0laRV8xMDBfUEVSU0VOVCxcclxuICBTSVpFX0FVVE8sIFRSQU5TTEFURV8zRCwgVklTSUJJTElUWV9ISURERU4sIFZJU0lCSUxJVFlfVklTSUJMRSxcclxufSBmcm9tICcuLi8uLi8uLi9jb25zdCc7XHJcbmltcG9ydCB7IElUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBDTEFTU19OQU1FX0ZPQ1VTLCBDTEFTU19OQU1FX1NOQVBQRUQsIENMQVNTX05BTUVfU05BUFBFRF9PVVQsIERFRkFVTFRfVEVNUExBVEVfQ09OVEVYVCwgSUQsIElURU1fSUQsIFBPU0lUSU9OLCBQT1NJVElPTl9aRVJPLCBUUkFOU0xBVEVfM0RfSElEREVOLFxyXG59IGZyb20gJy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVGV4dERpcmVjdGlvbiwgVGV4dERpcmVjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IE5nVmlydHVhbExpc3RQdWJsaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vbmctdmlydHVhbC1saXN0LXB1YmxpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTQueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL2xpc3QtaXRlbS9iYXNlL2Jhc2UtdmlydHVhbC1saXN0LWl0ZW0tY29tcG9uZW50LnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBBbGV4YW5kcm92aWNoIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcclxuICBwcml2YXRlIF9hcGlTZXJ2aWNlID0gaW5qZWN0KE5nVmlydHVhbExpc3RQdWJsaWNTZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICBwcm90ZWN0ZWQgX2lkITogbnVtYmVyO1xyXG4gIGdldCBpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfbGlzdElkITogbnVtYmVyO1xyXG4gIGdldCBsaXN0SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdElkO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9kaXNwbGF5SWQhOiBzdHJpbmc7XHJcbiAgZ2V0IGRpc3BsYXlJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SWQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2lzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJvdGVjdGVkIF9pc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcm90ZWN0ZWQgXyRjb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEaXNwbGF5T2JqZWN0Q29uZmlnPih7fSBhcyBJRGlzcGxheU9iamVjdENvbmZpZyk7XHJcbiAgJGNvbmZpZyA9IHRoaXMuXyRjb25maWcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByb3RlY3RlZCBfJG1lYXN1cmVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRGlzcGxheU9iamVjdE1lYXN1cmVzIHwgbnVsbD4obnVsbCk7XHJcbiAgJG1lYXN1cmVzID0gdGhpcy5fJG1lYXN1cmVzLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcm90ZWN0ZWQgXyRmb2N1c2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgJGZvY3VzZWQgPSB0aGlzLl8kZm9jdXNlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJvdGVjdGVkIF8kcGFydCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihQQVJUX0RFRkFVTFRfSVRFTSk7XHJcbiAgJHBhcnQgPSB0aGlzLl8kcGFydC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9kYXRhOiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF8kZGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IG51bGw+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL2NvbXBvbmVudHMvbmctbGlzdC1pdGVtL2ludGVyZmFjZXMvdGVtcGxhdGUtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURpc3BsYXlPYmplY3RDb25maWcsIElEaXNwbGF5T2JqZWN0TWVhc3VyZXMgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IE5nVmlydHVhbExpc3RQdWJsaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL25nLXZpcnR1YWwtbGlzdC1wdWJsaWMuc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTQueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL2xpc3QtaXRlbS9pbnRlcmZhY2VzL3RlbXBsYXRlLWNvbnRleHQudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEFsZXhhbmRyb3ZpY2ggR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElUZW1wbGF0ZUNvbnRleHQ8RCA9IGFueT4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBBUEkgcHJvdmlkZXIuXHJcbiAgICAgKi9cclxuICAgIGFwaTogTmdWaXJ0dWFsTGlzdFB1YmxpY1NlcnZpY2UgfCBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IGl0ZW0gZGF0YS5cclxuICAgICAqL1xyXG4gICAgZGF0YTogRDtcclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBvZiB0aGUgcHJldmlvdXMgbGlzdCBpdGVtLlxyXG4gICAgICovXHJcbiAgICBwcmV2RGF0YTogRDtcclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBvZiB0aGUgbmV4dCBsaXN0IGl0ZW0uXHJcbiAgICAgKi9cclxuICAgIG5leHREYXRhOiBEO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IGl0ZW0gbWVhc3VyZW1lbnQgZGF0YS5cclxuICAgICAqL1xyXG4gICAgbWVhc3VyZXM6IElEaXNwbGF5T2JqZWN0TWVhc3VyZXMgfCBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IGl0ZW0gY29uZmlndXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgY29uZmlnOiBJRGlzcGxheU9iamVjdENvbmZpZztcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGEgcmVzZXQgc3RhdGUuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0ZWQ6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIExpc3QgaXRlbSBpbmRleC5cclxuICAgICAqL1xyXG4gICAgaW5kZXg6IG51bWJlcjtcclxufSJdfQ==