@mintplayer/ng-bootstrap 13.1.7 → 13.1.13

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 (140) hide show
  1. package/esm2020/index.mjs +2 -1
  2. package/esm2020/lib/components/accordion/accordion-tab/accordion-tab.component.mjs +4 -3
  3. package/esm2020/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.mjs +7 -3
  4. package/esm2020/lib/components/alert/alert/alert.component.mjs +4 -4
  5. package/esm2020/lib/components/calendar/calendar.component.mjs +3 -3
  6. package/esm2020/lib/components/carousel/carousel/carousel.component.mjs +21 -7
  7. package/esm2020/lib/components/context-menu/context-menu.directive.mjs +77 -0
  8. package/esm2020/lib/components/context-menu/context-menu.module.mjs +26 -0
  9. package/esm2020/lib/components/context-menu/index.mjs +3 -0
  10. package/esm2020/lib/components/datepicker/datepicker.component.mjs +1 -1
  11. package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +33 -6
  12. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +42 -13
  13. package/esm2020/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.mjs +1 -2
  14. package/esm2020/lib/components/dropdown/dropdown.module.mjs +8 -4
  15. package/esm2020/lib/components/file-upload/component/file-upload.component.mjs +85 -0
  16. package/esm2020/lib/components/file-upload/directive/file-upload-template.directive.mjs +18 -0
  17. package/esm2020/lib/components/file-upload/file-upload.mjs +2 -0
  18. package/esm2020/lib/components/file-upload/file-upload.module.mjs +43 -0
  19. package/esm2020/lib/components/file-upload/index.mjs +5 -0
  20. package/esm2020/lib/components/for/for.directive.mjs +32 -0
  21. package/esm2020/lib/components/for/for.module.mjs +26 -0
  22. package/esm2020/lib/components/for/index.mjs +3 -0
  23. package/esm2020/lib/components/index.mjs +17 -7
  24. package/esm2020/lib/components/multiselect/multiselect.component.mjs +8 -5
  25. package/esm2020/lib/components/multiselect/multiselect.module.mjs +8 -4
  26. package/esm2020/lib/components/navbar/navbar/navbar.component.mjs +9 -6
  27. package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +47 -9
  28. package/esm2020/lib/components/pagination/index.mjs +3 -0
  29. package/esm2020/lib/components/progress-bar/index.mjs +4 -0
  30. package/esm2020/lib/components/progress-bar/progress/progress.component.mjs +27 -0
  31. package/esm2020/lib/components/progress-bar/progress-bar/progress-bar.component.mjs +121 -0
  32. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +31 -0
  33. package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +54 -14
  34. package/esm2020/lib/components/select2/component/select2.component.mjs +96 -0
  35. package/esm2020/lib/components/select2/directive/item-template.directive.mjs +19 -0
  36. package/esm2020/lib/components/select2/index.mjs +4 -0
  37. package/esm2020/lib/components/select2/select2.module.mjs +43 -0
  38. package/esm2020/lib/components/snackbar/component/snackbar.component.mjs +35 -0
  39. package/esm2020/lib/components/snackbar/directives/index.mjs +2 -0
  40. package/esm2020/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.mjs +27 -0
  41. package/esm2020/lib/components/snackbar/index.mjs +6 -0
  42. package/esm2020/lib/components/snackbar/interfaces/index.mjs +2 -0
  43. package/esm2020/lib/components/snackbar/interfaces/snackbar-animation-meta.mjs +2 -0
  44. package/esm2020/lib/components/snackbar/providers/snackbar-content.provider.mjs +3 -0
  45. package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +49 -0
  46. package/esm2020/lib/components/snackbar/snackbar.module.mjs +38 -0
  47. package/esm2020/lib/components/toggle-button/index.mjs +3 -0
  48. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +42 -0
  49. package/esm2020/lib/components/toggle-button/toggle-button.module.mjs +26 -0
  50. package/esm2020/lib/components/tooltip/component/tooltip.component.mjs +25 -0
  51. package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +110 -0
  52. package/esm2020/lib/components/tooltip/index.mjs +4 -0
  53. package/esm2020/lib/components/tooltip/providers/tooltip-content.provider.mjs +3 -0
  54. package/esm2020/lib/components/tooltip/tooltip.module.mjs +29 -0
  55. package/esm2020/lib/components/typeahead/index.mjs +3 -0
  56. package/esm2020/lib/components/typeahead/typeahead.component.mjs +90 -0
  57. package/esm2020/lib/components/typeahead/typeahead.module.mjs +38 -0
  58. package/esm2020/lib/enums/index.mjs +2 -1
  59. package/esm2020/lib/enums/position.enum.mjs +8 -0
  60. package/esm2020/lib/pipes/font-color/font-color.module.mjs +26 -0
  61. package/esm2020/lib/pipes/font-color/font-color.pipe.mjs +26 -0
  62. package/esm2020/lib/pipes/font-color/index.mjs +3 -0
  63. package/esm2020/lib/pipes/format-bytes/format-bytes.module.mjs +26 -0
  64. package/esm2020/lib/pipes/format-bytes/format-bytes.pipe.mjs +23 -0
  65. package/esm2020/lib/pipes/in-list/in-list.module.mjs +26 -0
  66. package/esm2020/lib/pipes/in-list/in-list.pipe.mjs +16 -0
  67. package/esm2020/lib/pipes/index.mjs +2 -0
  68. package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +12 -14
  69. package/esm2020/lib/services/scroll-offset/scroll-offset.service.mjs +31 -0
  70. package/fesm2015/mintplayer-ng-bootstrap.mjs +1868 -511
  71. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  72. package/fesm2020/mintplayer-ng-bootstrap.mjs +1860 -515
  73. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  74. package/index.d.ts +1 -0
  75. package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -0
  76. package/lib/components/carousel/carousel/carousel.component.d.ts +4 -1
  77. package/lib/components/context-menu/context-menu.directive.d.ts +18 -0
  78. package/lib/components/context-menu/context-menu.module.d.ts +8 -0
  79. package/lib/components/context-menu/index.d.ts +2 -0
  80. package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +10 -2
  81. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +6 -3
  82. package/lib/components/dropdown/dropdown.module.d.ts +2 -1
  83. package/lib/components/file-upload/component/file-upload.component.d.ts +19 -0
  84. package/lib/components/file-upload/directive/file-upload-template.directive.d.ts +8 -0
  85. package/lib/components/file-upload/file-upload.d.ts +4 -0
  86. package/lib/components/file-upload/file-upload.module.d.ts +12 -0
  87. package/lib/components/file-upload/index.d.ts +4 -0
  88. package/lib/components/for/for.directive.d.ts +7 -0
  89. package/lib/components/for/for.module.d.ts +8 -0
  90. package/lib/components/for/index.d.ts +2 -0
  91. package/lib/components/index.d.ts +16 -6
  92. package/lib/components/multiselect/multiselect.component.d.ts +3 -2
  93. package/lib/components/multiselect/multiselect.module.d.ts +2 -1
  94. package/lib/components/navbar/navbar/navbar.component.d.ts +3 -3
  95. package/lib/components/navbar/navbar-nav/navbar-nav.component.d.ts +10 -4
  96. package/lib/components/pagination/index.d.ts +2 -0
  97. package/lib/components/progress-bar/index.d.ts +3 -0
  98. package/lib/components/progress-bar/progress/progress.component.d.ts +8 -0
  99. package/lib/components/progress-bar/progress-bar/progress-bar.component.d.ts +31 -0
  100. package/lib/components/progress-bar/progress-bar.module.d.ts +9 -0
  101. package/lib/components/scrollspy/component/scrollspy.component.d.ts +14 -4
  102. package/lib/components/select2/component/select2.component.d.ts +30 -0
  103. package/lib/components/select2/directive/item-template.directive.d.ts +9 -0
  104. package/lib/components/select2/index.d.ts +3 -0
  105. package/lib/components/select2/select2.module.d.ts +12 -0
  106. package/lib/components/snackbar/component/snackbar.component.d.ts +15 -0
  107. package/lib/components/snackbar/directives/index.d.ts +1 -0
  108. package/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.d.ts +11 -0
  109. package/lib/components/snackbar/index.d.ts +5 -0
  110. package/lib/components/snackbar/interfaces/index.d.ts +1 -0
  111. package/lib/components/snackbar/interfaces/snackbar-animation-meta.d.ts +7 -0
  112. package/lib/components/snackbar/providers/snackbar-content.provider.d.ts +2 -0
  113. package/lib/components/snackbar/service/snackbar.service.d.ts +14 -0
  114. package/lib/components/snackbar/snackbar.module.d.ts +9 -0
  115. package/lib/components/toggle-button/index.d.ts +2 -0
  116. package/lib/components/toggle-button/toggle-button.component.d.ts +15 -0
  117. package/lib/components/toggle-button/toggle-button.module.d.ts +8 -0
  118. package/lib/components/tooltip/component/tooltip.component.d.ts +11 -0
  119. package/lib/components/tooltip/directive/tooltip.directive.d.ts +20 -0
  120. package/lib/components/tooltip/index.d.ts +2 -0
  121. package/lib/components/tooltip/providers/tooltip-content.provider.d.ts +2 -0
  122. package/lib/components/tooltip/tooltip.module.d.ts +9 -0
  123. package/lib/components/typeahead/index.d.ts +2 -0
  124. package/lib/components/typeahead/typeahead.component.d.ts +29 -0
  125. package/lib/components/typeahead/typeahead.module.d.ts +11 -0
  126. package/lib/enums/index.d.ts +1 -0
  127. package/lib/enums/position.enum.d.ts +6 -0
  128. package/lib/pipes/font-color/font-color.module.d.ts +8 -0
  129. package/lib/pipes/font-color/font-color.pipe.d.ts +7 -0
  130. package/lib/pipes/font-color/index.d.ts +2 -0
  131. package/lib/pipes/format-bytes/format-bytes.module.d.ts +8 -0
  132. package/lib/pipes/format-bytes/format-bytes.pipe.d.ts +7 -0
  133. package/lib/pipes/in-list/in-list.module.d.ts +8 -0
  134. package/lib/pipes/in-list/in-list.pipe.d.ts +7 -0
  135. package/lib/pipes/index.d.ts +1 -0
  136. package/lib/services/calendar-month/calendar-month.service.d.ts +0 -1
  137. package/lib/services/scroll-offset/scroll-offset.service.d.ts +9 -0
  138. package/package.json +4 -2
  139. package/src/assets/ic-upload-file.svg +7 -0
  140. package/src/styles/utilities/cursor.scss +14 -0
@@ -1,20 +1,23 @@
1
1
  import { Component, ElementRef, ViewChild } from '@angular/core';
2
+ import { BehaviorSubject, take } from 'rxjs';
2
3
  import * as i0 from "@angular/core";
3
4
  export class BsNavbarComponent {
4
5
  constructor() {
5
- this.isExpanded = false;
6
+ this.isExpanded$ = new BehaviorSubject(false);
6
7
  }
7
8
  toggleExpanded() {
8
- this.isExpanded = !this.isExpanded;
9
+ this.isExpanded$.pipe(take(1)).subscribe((isExpanded) => {
10
+ this.isExpanded$.next(!isExpanded);
11
+ });
9
12
  }
10
13
  }
11
14
  BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\" data-toggle=\"collapse\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
15
+ BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
13
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
14
17
  type: Component,
15
- args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\" data-toggle=\"collapse\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] }]
16
- }], ctorParameters: function () { return []; }, propDecorators: { nav: [{
18
+ args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] }]
19
+ }], propDecorators: { nav: [{
17
20
  type: ViewChild,
18
21
  args: ['nav']
19
22
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPakUsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QjtRQUdBLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFGbkIsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDOzs4R0FSVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw2SUNQOUIsd2hCQVVNOzJGREhPLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXOzBFQWNILEdBQUc7c0JBQXBCLFNBQVM7dUJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW5hdmJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNOYXZiYXJDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgaXNFeHBhbmRlZCA9IGZhbHNlO1xuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnbmF2JykgbmF2ITogRWxlbWVudFJlZjtcbn1cbiIsIjxuYXYgI25hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLW1kIHBvc2l0aW9uLWZpeGVkIG5hdmJhci1kYXJrIGJnLWRhcmtcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDAgdy1tZC1hdXRvXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cIm5hdmJhci1icmFuZCBteC1hdXRvIG14LW1kLXVuc2V0XCIgaHJlZj1cIiNcIj5OYXZiYXIgMjwvYT5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIiBjbGFzcz1cIm5hdmJhci10b2dnbGVyIGFsaWduLXNlbGYtZW5kXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvbmF2PiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPN0MsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQVNFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7S0FPbkQ7SUFOQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQVRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDZJQ1I5QiwrZkFVTTsyRkRGTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzs4QkFNSCxHQUFHO3NCQUFwQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW5hdmJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNOYXZiYXJDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoJ25hdicpIG5hdiE6IEVsZW1lbnRSZWY7XG5cbiAgaXNFeHBhbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgdGhpcy5pc0V4cGFuZGVkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaXNFeHBhbmRlZCkgPT4ge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkJC5uZXh0KCFpc0V4cGFuZGVkKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8bmF2ICNuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBwb3NpdGlvbi1maXhlZCBuYXZiYXItZGFyayBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHctMTAwIHctbWQtYXV0b1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXZiYXItYnJhbmQgbXgtYXV0byBteC1tZC11bnNldFwiIGhyZWY9XCIjXCI+TmF2YmFyIDI8L2E+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCIgY2xhc3M9XCJuYXZiYXItdG9nZ2xlciBhbGlnbi1zZWxmLWVuZFwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvbmF2PiJdfQ==
@@ -1,29 +1,67 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, HostListener, Input } from '@angular/core';
2
2
  import { BsNavbarComponent } from '../navbar/navbar.component';
3
3
  import { SlideUpDownAnimation } from '@mintplayer/ng-animations';
4
+ import { BehaviorSubject, combineLatest, debounceTime, filter, map, Subject, takeUntil } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../navbar/navbar.component";
7
+ import * as i2 from "@angular/common";
6
8
  export class BsNavbarNavComponent {
7
9
  constructor(bsNavbar) {
8
- //#region collapse
9
- this._collapse = true;
10
+ this.collapse$ = new BehaviorSubject(true);
11
+ this.windowWidth$ = new BehaviorSubject(null);
12
+ this.isResizing$ = new BehaviorSubject(false);
13
+ this.destroyed$ = new Subject();
10
14
  this.bsNavbar = bsNavbar;
15
+ this.showNavs$ = combineLatest([this.bsNavbar.isExpanded$, this.windowWidth$])
16
+ .pipe(filter(([isExpanded, windowWidth]) => {
17
+ return windowWidth !== null;
18
+ }))
19
+ .pipe(map(([isExpanded, windowWidth]) => {
20
+ if (windowWidth === null) {
21
+ throw 'windowWidth should not be null here';
22
+ }
23
+ else if (windowWidth >= 768) {
24
+ return true;
25
+ }
26
+ else if (isExpanded) {
27
+ return true;
28
+ }
29
+ else {
30
+ return false;
31
+ }
32
+ }));
33
+ this.windowWidth$
34
+ .pipe(debounceTime(300), takeUntil(this.destroyed$))
35
+ .subscribe(() => {
36
+ this.isResizing$.next(false);
37
+ });
38
+ this.onWindowResize();
11
39
  }
12
- ngOnInit() {
40
+ ngOnDestroy() {
41
+ this.destroyed$.next(true);
13
42
  }
43
+ //#region collapse
14
44
  set collapse(value) {
15
- this._collapse = value;
45
+ this.collapse$.next(value);
16
46
  }
17
47
  get collapse() {
18
- return this._collapse;
48
+ return this.collapse$.value;
49
+ }
50
+ //#endregion
51
+ onWindowResize() {
52
+ this.isResizing$.next(true);
53
+ this.windowWidth$.next(window.innerWidth);
19
54
  }
20
55
  }
21
56
  BsNavbarNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarNavComponent, deps: [{ token: i1.BsNavbarComponent }], target: i0.ɵɵFactoryTarget.Component });
22
- BsNavbarNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarNavComponent, selector: "bs-navbar-nav", inputs: { collapse: "collapse" }, ngImport: i0, template: "<div class=\"navbar-collapse collapse w-100 show\" [@slideUpDown]=\"bsNavbar.isExpanded ? 'down' : 'up'\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"], animations: [SlideUpDownAnimation] });
57
+ BsNavbarNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarNavComponent, selector: "bs-navbar-nav", inputs: { collapse: "collapse" }, host: { listeners: { "window:resize": "onWindowResize()" } }, ngImport: i0, template: "<div class=\"navbar-collapse w-100 show\" [class.collapse]=\"collapse$ | async\" *ngIf=\"showNavs$ | async\" [@slideUpDown] [@.disabled]=\"isResizing$ | async\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, animations: [SlideUpDownAnimation] });
23
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarNavComponent, decorators: [{
24
59
  type: Component,
25
- args: [{ selector: 'bs-navbar-nav', animations: [SlideUpDownAnimation], template: "<div class=\"navbar-collapse collapse w-100 show\" [@slideUpDown]=\"bsNavbar.isExpanded ? 'down' : 'up'\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"] }]
60
+ args: [{ selector: 'bs-navbar-nav', animations: [SlideUpDownAnimation], template: "<div class=\"navbar-collapse w-100 show\" [class.collapse]=\"collapse$ | async\" *ngIf=\"showNavs$ | async\" [@slideUpDown] [@.disabled]=\"isResizing$ | async\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"] }]
26
61
  }], ctorParameters: function () { return [{ type: i1.BsNavbarComponent }]; }, propDecorators: { collapse: [{
27
62
  type: Input
63
+ }], onWindowResize: [{
64
+ type: HostListener,
65
+ args: ['window:resize']
28
66
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLW5hdi9uYXZiYXItbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXItbmF2L25hdmJhci1uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVFqRSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQVksUUFBMkI7UUFTdkMsa0JBQWtCO1FBQ1YsY0FBUyxHQUFZLElBQUksQ0FBQztRQVRoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFNRCxJQUFvQixRQUFRLENBQUMsS0FBYztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOztpSEFsQlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsdUZDVmpDLHlNQUlNLGlLRElRLENBQUMsb0JBQW9CLENBQUM7MkZBRXZCLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsQ0FBQyxvQkFBb0IsQ0FBQzt3R0FlZCxRQUFRO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc05hdmJhckNvbXBvbmVudCB9IGZyb20gJy4uL25hdmJhci9uYXZiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNsaWRlVXBEb3duQW5pbWF0aW9uIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW5hdmJhci1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdmJhci1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1NsaWRlVXBEb3duQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc05hdmJhck5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoYnNOYXZiYXI6IEJzTmF2YmFyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5ic05hdmJhciA9IGJzTmF2YmFyO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBic05hdmJhcjogQnNOYXZiYXJDb21wb25lbnQ7XG5cbiAgLy8jcmVnaW9uIGNvbGxhcHNlXG4gIHByaXZhdGUgX2NvbGxhcHNlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHNldCBjb2xsYXBzZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2NvbGxhcHNlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjb2xsYXBzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2U7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCI8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGNvbGxhcHNlIHctMTAwIHNob3dcIiBbQHNsaWRlVXBEb3duXT1cImJzTmF2YmFyLmlzRXhwYW5kZWQgPyAnZG93bicgOiAndXAnXCI+XG4gICAgPHVsIGNsYXNzPVwibmF2YmFyLW5hdiBtci1hdXRvXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3VsPlxuPC9kaXY+Il19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLW5hdi9uYXZiYXItbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXItbmF2L25hdmJhci1uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBYyxNQUFNLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFRN0gsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFZLFFBQTJCO1FBMkJ2QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFFeEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQTlCekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDekMsT0FBTyxXQUFXLEtBQUssSUFBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO2FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUN4QixNQUFNLHFDQUFxQyxDQUFDO2FBQzdDO2lCQUFNLElBQUksV0FBVyxJQUFJLEdBQUcsRUFBRTtnQkFDN0IsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTSxJQUFJLFVBQVUsRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ25ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBU0QsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBb0IsUUFBUSxDQUFDLEtBQWM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCxZQUFZO0lBR1osY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDOztpSEFwRFUsb0JBQW9CO3FHQUFwQixvQkFBb0IscUpDWGpDLGdRQUlNLGtTREtRLENBQUMsb0JBQW9CLENBQUM7MkZBRXZCLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsQ0FBQyxvQkFBb0IsQ0FBQzt3R0EwQ2QsUUFBUTtzQkFBM0IsS0FBSztnQkFTTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTmF2YmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xpZGVVcERvd25BbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBleGhhdXN0QWxsLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW5hdmJhci1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdmJhci1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1NsaWRlVXBEb3duQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc05hdmJhck5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoYnNOYXZiYXI6IEJzTmF2YmFyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5ic05hdmJhciA9IGJzTmF2YmFyO1xuICAgIHRoaXMuc2hvd05hdnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5ic05hdmJhci5pc0V4cGFuZGVkJCwgdGhpcy53aW5kb3dXaWR0aCRdKVxuICAgICAgLnBpcGUoZmlsdGVyKChbaXNFeHBhbmRlZCwgd2luZG93V2lkdGhdKSA9PiB7XG4gICAgICAgIHJldHVybiB3aW5kb3dXaWR0aCAhPT0gbnVsbDtcbiAgICAgIH0pKVxuICAgICAgLnBpcGUobWFwKChbaXNFeHBhbmRlZCwgd2luZG93V2lkdGhdKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3dXaWR0aCA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93ICd3aW5kb3dXaWR0aCBzaG91bGQgbm90IGJlIG51bGwgaGVyZSc7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93V2lkdGggPj0gNzY4KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuXG4gICAgdGhpcy53aW5kb3dXaWR0aCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzUmVzaXppbmckLm5leHQoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgdGhpcy5vbldpbmRvd1Jlc2l6ZSgpO1xuICB9XG4gIFxuICBic05hdmJhcjogQnNOYXZiYXJDb21wb25lbnQ7XG4gIGNvbGxhcHNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHdpbmRvd1dpZHRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHNob3dOYXZzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNSZXNpemluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuICBcbiAgLy8jcmVnaW9uIGNvbGxhcHNlXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgY29sbGFwc2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbGxhcHNlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbGxhcHNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbGxhcHNlJC52YWx1ZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy5pc1Jlc2l6aW5nJC5uZXh0KHRydWUpO1xuICAgIHRoaXMud2luZG93V2lkdGgkLm5leHQod2luZG93LmlubmVyV2lkdGgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIHctMTAwIHNob3dcIiBbY2xhc3MuY29sbGFwc2VdPVwiY29sbGFwc2UkIHwgYXN5bmNcIiAqbmdJZj1cInNob3dOYXZzJCB8IGFzeW5jXCIgW0BzbGlkZVVwRG93bl0gW0AuZGlzYWJsZWRdPVwiaXNSZXNpemluZyQgfCBhc3luY1wiPlxuICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXYgbXItYXV0b1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC91bD5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './pagination.module';
2
+ export * from './pagination/pagination.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JzsiXX0=
@@ -0,0 +1,4 @@
1
+ export * from './progress-bar.module';
2
+ export * from './progress/progress.component';
3
+ export * from './progress-bar/progress-bar.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb2dyZXNzLWJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7Il19
@@ -0,0 +1,27 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class BsProgressComponent {
5
+ constructor() {
6
+ this.progressClass = true;
7
+ this.height = null;
8
+ this.isIndeterminate = false;
9
+ }
10
+ }
11
+ BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ BsProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressComponent, selector: "bs-progress", inputs: { height: "height", isIndeterminate: "isIndeterminate" }, host: { properties: { "class.progress": "this.progressClass", "style.height.px": "this.height" } }, ngImport: i0, template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'bs-progress', template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"] }]
16
+ }], propDecorators: { progressClass: [{
17
+ type: HostBinding,
18
+ args: ['class.progress']
19
+ }], height: [{
20
+ type: Input
21
+ }, {
22
+ type: HostBinding,
23
+ args: ['style.height.px']
24
+ }], isIndeterminate: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU85RCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTXlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ1osV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDN0Qsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FDekM7O2dIQUpZLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlOQ1BoQywwTEFDMEg7MkZETTdHLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhOzhCQUtnQixhQUFhO3NCQUFuRCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDbUIsTUFBTTtzQkFBckQsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ3ZCLGVBQWU7c0JBQTlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1wcm9ncmVzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNQcm9ncmVzc0NvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MnKSBwcml2YXRlIHByb2dyZXNzQ2xhc3MgPSB0cnVlO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC5weCcpIHB1YmxpYyBoZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG59XG4iLCI8bmctY29udGVudCAqbmdJZj1cIiFpc0luZGV0ZXJtaW5hdGVcIj48L25nLWNvbnRlbnQ+XG48ZGl2ICpuZ0lmPVwiaXNJbmRldGVybWluYXRlXCIgY2xhc3M9XCJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWluZmluaXRlXCIgcm9sZT1cInByb2dyZXNzYmFyXCIgYXJpYS12YWx1ZW5vdz1cImluZmluaXRlXCI+PC9kaXY+Il19
@@ -0,0 +1,121 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { Color } from '../../../enums/color.enum';
3
+ import { BehaviorSubject, combineLatest, map, Subject, takeUntil } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class BsProgressBarComponent {
6
+ constructor() {
7
+ this.destroyed$ = new Subject();
8
+ this.minimum$ = new BehaviorSubject(0);
9
+ this.maximum$ = new BehaviorSubject(100);
10
+ this.value$ = new BehaviorSubject(50);
11
+ this.color$ = new BehaviorSubject(Color.primary);
12
+ this.striped = false;
13
+ this.animated = false;
14
+ this.progressBar = true;
15
+ this.colorClass = 'bg-primary';
16
+ this.widthStyle = '0';
17
+ this.role = 'progressbar';
18
+ this.valueNow = 50;
19
+ this.valueMin = 0;
20
+ this.valueMax = 100;
21
+ this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
22
+ .pipe(map(([minimum, maximum, value]) => {
23
+ return (value - minimum) / (maximum - minimum) * 100;
24
+ }));
25
+ this.width$ = this.percentage$
26
+ .pipe(map((width) => {
27
+ return String(width) + '%';
28
+ }));
29
+ this.colorClass$ = this.color$
30
+ .pipe(map((color) => {
31
+ const name = Color[color];
32
+ return `bg-${name}`;
33
+ }));
34
+ this.colorClass$
35
+ .pipe(takeUntil(this.destroyed$))
36
+ .subscribe((color) => {
37
+ this.colorClass = color;
38
+ });
39
+ this.width$
40
+ .pipe(takeUntil(this.destroyed$))
41
+ .subscribe((width) => {
42
+ this.widthStyle = width;
43
+ });
44
+ this.value$
45
+ .pipe(takeUntil(this.destroyed$))
46
+ .subscribe((value) => {
47
+ this.valueNow = value;
48
+ });
49
+ this.minimum$
50
+ .pipe(takeUntil(this.destroyed$))
51
+ .subscribe((value) => {
52
+ this.valueMin = value;
53
+ });
54
+ this.maximum$
55
+ .pipe(takeUntil(this.destroyed$))
56
+ .subscribe((value) => {
57
+ this.valueMax = value;
58
+ });
59
+ }
60
+ set minimum(value) {
61
+ this.minimum$.next(value);
62
+ }
63
+ set maximum(value) {
64
+ this.maximum$.next(value);
65
+ }
66
+ set value(value) {
67
+ this.value$.next(value);
68
+ }
69
+ set color(value) {
70
+ this.color$.next(value);
71
+ }
72
+ ngOnDestroy() {
73
+ this.destroyed$.next(true);
74
+ }
75
+ }
76
+ BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
+ BsProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: { minimum: "minimum", maximum: "maximum", value: "value", color: "color", striped: "striped", animated: "animated" }, host: { properties: { "class.progress-bar-striped": "this.striped", "class.progress-bar-animated": "this.animated", "class.progress-bar": "this.progressBar", "class": "this.colorClass", "style.width": "this.widthStyle", "attr.role": "this.role", "attr.aria-valuenow": "this.valueNow", "attr.aria-valuemin": "this.valueMin", "attr.aria-valuemax": "this.valueMax" } }, ngImport: i0, template: "", styles: [""] });
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
81
+ }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
82
+ type: Input
83
+ }], maximum: [{
84
+ type: Input
85
+ }], value: [{
86
+ type: Input
87
+ }], color: [{
88
+ type: Input
89
+ }], striped: [{
90
+ type: Input
91
+ }, {
92
+ type: HostBinding,
93
+ args: ['class.progress-bar-striped']
94
+ }], animated: [{
95
+ type: Input
96
+ }, {
97
+ type: HostBinding,
98
+ args: ['class.progress-bar-animated']
99
+ }], progressBar: [{
100
+ type: HostBinding,
101
+ args: ['class.progress-bar']
102
+ }], colorClass: [{
103
+ type: HostBinding,
104
+ args: ['class']
105
+ }], widthStyle: [{
106
+ type: HostBinding,
107
+ args: ['style.width']
108
+ }], role: [{
109
+ type: HostBinding,
110
+ args: ['attr.role']
111
+ }], valueNow: [{
112
+ type: HostBinding,
113
+ args: ['attr.aria-valuenow']
114
+ }], valueMin: [{
115
+ type: HostBinding,
116
+ args: ['attr.aria-valuemin']
117
+ }], valueMax: [{
118
+ type: HostBinding,
119
+ args: ['attr.aria-valuemax']
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTzNGLE1BQU0sT0FBTyxzQkFBc0I7SUFFakM7UUEwQ0EsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxHQUFHLENBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFHekMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQWVRLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxZQUFZLENBQUM7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SSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQW9CLEtBQUssQ0FBQyxLQUFZO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFZRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7bUhBOUVVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG9pQkNUbkMsRUFBQTsyRkRTYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCOzBFQXlEUCxPQUFPO3NCQUExQixLQUFLO2dCQUdjLE9BQU87c0JBQTFCLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsS0FBSztnQkFHYyxLQUFLO3NCQUF4QixLQUFLO2dCQUdxRCxPQUFPO3NCQUFqRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDVSxRQUFRO3NCQUFuRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDZCQUE2QjtnQkFFaEIsV0FBVztzQkFBN0MsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ1gsVUFBVTtzQkFBL0IsV0FBVzt1QkFBQyxPQUFPO2dCQUNRLFVBQVU7c0JBQXJDLFdBQVc7dUJBQUMsYUFBYTtnQkFDQSxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ1csUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2NvbG9yLmVudW0nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1wcm9ncmVzcy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNQcm9ncmVzc0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wZXJjZW50YWdlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubWluaW11bSQsIHRoaXMubWF4aW11bSQsIHRoaXMudmFsdWUkXSlcbiAgICAgIC5waXBlKG1hcCgoW21pbmltdW0sIG1heGltdW0sIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gKHZhbHVlIC0gbWluaW11bSkgLyAobWF4aW11bSAtIG1pbmltdW0pICogMTAwO1xuICAgICAgfSkpO1xuICAgIHRoaXMud2lkdGgkID0gdGhpcy5wZXJjZW50YWdlJFxuICAgICAgLnBpcGUobWFwKCh3aWR0aCkgPT4ge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHdpZHRoKSArICclJztcbiAgICAgIH0pKTtcbiAgICB0aGlzLmNvbG9yQ2xhc3MkID0gdGhpcy5jb2xvciRcbiAgICAgIC5waXBlKG1hcCgoY29sb3IpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IENvbG9yW2NvbG9yXTtcbiAgICAgICAgcmV0dXJuIGBiZy0ke25hbWV9YDtcbiAgICAgIH0pKTtcblxuICAgIHRoaXMuY29sb3JDbGFzcyRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoY29sb3IpID0+IHtcbiAgICAgICAgdGhpcy5jb2xvckNsYXNzID0gY29sb3I7XG4gICAgICB9KTtcbiAgICB0aGlzLndpZHRoJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCh3aWR0aCkgPT4ge1xuICAgICAgICB0aGlzLndpZHRoU3R5bGUgPSB3aWR0aDtcbiAgICAgIH0pO1xuICAgIHRoaXMudmFsdWUkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVOb3cgPSB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIHRoaXMubWluaW11bSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZU1pbiA9IHZhbHVlO1xuICAgICAgfSk7XG4gICAgdGhpcy5tYXhpbXVtJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlTWF4ID0gdmFsdWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpXG4gIG1pbmltdW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBtYXhpbXVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxMDApO1xuICB2YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNTApO1xuICBwZXJjZW50YWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICB3aWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgY29sb3IkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xvcj4oQ29sb3IucHJpbWFyeSk7XG4gIGNvbG9yQ2xhc3MkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgQElucHV0KCkgcHVibGljIHNldCBtaW5pbXVtKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm1pbmltdW0kLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbWF4aW11bSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5tYXhpbXVtJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGNvbG9yKHZhbHVlOiBDb2xvcikge1xuICAgIHRoaXMuY29sb3IkLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MtYmFyLXN0cmlwZWQnKSBwdWJsaWMgc3RyaXBlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLnByb2dyZXNzLWJhci1hbmltYXRlZCcpIHB1YmxpYyBhbmltYXRlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MtYmFyJykgcHJvZ3Jlc3NCYXIgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY29sb3JDbGFzcyA9ICdiZy1wcmltYXJ5JztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpIHdpZHRoU3R5bGUgPSAnMCc7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdwcm9ncmVzc2Jhcic7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JykgdmFsdWVOb3cgPSA1MDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWVtaW4nKSB2YWx1ZU1pbiA9IDA7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbWF4JykgdmFsdWVNYXggPSAxMDA7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxufVxuIiwiIl19
@@ -0,0 +1,31 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BsProgressComponent } from './progress/progress.component';
4
+ import { BsProgressBarComponent } from './progress-bar/progress-bar.component';
5
+ import * as i0 from "@angular/core";
6
+ export class BsProgressBarModule {
7
+ }
8
+ BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
10
+ BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
11
+ BsProgressComponent] });
12
+ BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
13
+ CommonModule
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [
19
+ BsProgressBarComponent,
20
+ BsProgressComponent
21
+ ],
22
+ imports: [
23
+ CommonModule
24
+ ],
25
+ exports: [
26
+ BsProgressBarComponent,
27
+ BsProgressComponent
28
+ ]
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWlCL0UsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVg1QixzQkFBc0I7UUFDdEIsbUJBQW1CLGFBR25CLFlBQVksYUFHWixzQkFBc0I7UUFDdEIsbUJBQW1CO2lIQUdWLG1CQUFtQixZQVJyQjtZQUNQLFlBQVk7U0FDYjsyRkFNVSxtQkFBbUI7a0JBYi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc1Byb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnNQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBCc1Byb2dyZXNzQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJzUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgQnNQcm9ncmVzc0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzUHJvZ3Jlc3NCYXJNb2R1bGUgeyB9XG4iXX0=
@@ -1,20 +1,44 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Component, ContentChildren, HostListener, Inject, QueryList } from '@angular/core';
2
+ import { Component, ContentChildren, HostListener, Inject, NgZone, QueryList, ViewChildren } from '@angular/core';
3
+ import { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';
4
+ import { BsScrollOffsetService } from '../../../services/scroll-offset/scroll-offset.service';
3
5
  import { BsScrollspyDirective } from '../directives/scrollspy.directive';
4
6
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
7
+ import * as i1 from "../../../services/scroll-offset/scroll-offset.service";
8
+ import * as i2 from "@angular/common";
6
9
  export class BsScrollspyComponent {
7
- constructor(document) {
10
+ constructor(scrollOffsetService, document, zone) {
11
+ this.scrollOffsetService = scrollOffsetService;
12
+ this.zone = zone;
13
+ this.destroyed$ = new Subject();
14
+ this.viewInit$ = new BehaviorSubject(false);
15
+ this.contentInit$ = new BehaviorSubject(false);
8
16
  this.activeDirective = null;
9
17
  this.doc = document;
10
- }
11
- ngOnInit() {
18
+ combineLatest([this.viewInit$, this.contentInit$])
19
+ .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))
20
+ .pipe(takeUntil(this.destroyed$))
21
+ .subscribe(() => {
22
+ // this.setActiveDirective();
23
+ this.scrollToCurrentInSpy();
24
+ });
12
25
  }
13
26
  ngAfterViewInit() {
14
- this.onWindowScroll();
27
+ this.viewInit$.next(true);
28
+ }
29
+ ngAfterContentInit() {
30
+ this.contentInit$.next(true);
31
+ }
32
+ ngOnDestroy() {
33
+ this.destroyed$.next(true);
15
34
  }
16
35
  onWindowScroll() {
17
- const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y <= 0);
36
+ this.setActiveDirective();
37
+ this.scrollToCurrentInSpy();
38
+ }
39
+ setActiveDirective() {
40
+ const offsetY = this.scrollOffsetService.getScrollOffset()[1];
41
+ const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
18
42
  if (this.directives.length === 0) {
19
43
  this.activeDirective = null;
20
44
  }
@@ -25,24 +49,40 @@ export class BsScrollspyComponent {
25
49
  this.activeDirective = dirs[dirs.length - 1];
26
50
  }
27
51
  }
52
+ scrollToCurrentInSpy() {
53
+ if (window && (window.innerWidth >= 768)) {
54
+ if (this.activeDirective) {
55
+ const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
56
+ const anchor = this.anchors.get(index);
57
+ if (anchor && anchor.nativeElement.parentElement) {
58
+ anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });
59
+ }
60
+ }
61
+ }
62
+ }
28
63
  scrollToHeader(directive) {
29
64
  const header = directive.element.nativeElement;
30
- header.scrollIntoView();
65
+ const offsetY = this.scrollOffsetService.getScrollOffset()[1];
66
+ const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;
67
+ window.scrollTo({ top: y, behavior: 'smooth' });
31
68
  }
32
69
  }
33
- BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
34
- BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
70
+ BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: i1.BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
71
+ BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
35
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
36
73
  type: Component,
37
- args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
38
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
74
+ args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
75
+ }], ctorParameters: function () { return [{ type: i1.BsScrollOffsetService }, { type: undefined, decorators: [{
39
76
  type: Inject,
40
77
  args: [DOCUMENT]
41
- }] }]; }, propDecorators: { directives: [{
78
+ }] }, { type: i0.NgZone }]; }, propDecorators: { directives: [{
42
79
  type: ContentChildren,
43
80
  args: [BsScrollspyDirective, { descendants: true }]
81
+ }], anchors: [{
82
+ type: ViewChildren,
83
+ args: ['anchor']
44
84
  }], onWindowScroll: [{
45
85
  type: HostListener,
46
86
  args: ['window:scroll', ['$event']]
47
87
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU96RSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQThCLFFBQWE7UUFRM0Msb0JBQWUsR0FBZ0MsSUFBSSxDQUFDO1FBUGxELElBQUksQ0FBQyxHQUFHLEdBQWEsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFRRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELGNBQWM7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUErQjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7aUhBbENVLG9CQUFvQixrQkFFWCxRQUFRO3FHQUZqQixvQkFBb0IsbUpBTWQsb0JBQW9CLGdEQ2Z2QywyZ0JBV007MkZERk8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQU1YLE1BQU07MkJBQUMsUUFBUTs0Q0FLNUIsVUFBVTtzQkFEVCxlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFjNUQsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzU2Nyb2xsc3B5RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zY3JvbGxzcHkuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtc2Nyb2xsc3B5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbHNweS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Njcm9sbHNweS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzU2Nyb2xsc3B5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgdGhpcy5kb2MgPSA8RG9jdW1lbnQ+ZG9jdW1lbnQ7XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKEJzU2Nyb2xsc3B5RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGRpcmVjdGl2ZXMhOiBRdWVyeUxpc3Q8QnNTY3JvbGxzcHlEaXJlY3RpdmU+O1xuXG4gIGRvYzogRG9jdW1lbnQ7XG4gIGFjdGl2ZURpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm9uV2luZG93U2Nyb2xsKCk7XG4gIH1cbiAgXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICBjb25zdCBkaXJzID0gdGhpcy5kaXJlY3RpdmVzLmZpbHRlcigoZCkgPT4gZC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSA8PSAwKTtcbiAgICBpZiAodGhpcy5kaXJlY3RpdmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoZGlycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gdGhpcy5kaXJlY3RpdmVzLmdldCgwKSA/PyBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IGRpcnNbZGlycy5sZW5ndGggLSAxXTtcbiAgICB9XG4gIH1cbiAgXG4gIHNjcm9sbFRvSGVhZGVyKGRpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUpIHtcbiAgICBjb25zdCBoZWFkZXIgPSBkaXJlY3RpdmUuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGhlYWRlci5zY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzcHlcIj5cbiAgICA8dWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGlyIG9mIGRpcmVjdGl2ZXNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCInbmF2JyArIGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZVwiIFtjbGFzcy5mdy1ib2xkXT1cImFjdGl2ZURpcmVjdGl2ZT8uZWxlbWVudCA9PT0gZGlyLmVsZW1lbnRcIiAoY2xpY2spPVwic2Nyb2xsVG9IZWFkZXIoZGlyKVwiIFt0aXRsZV09XCJkaXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50XCI+XG4gICAgICAgICAgICAgICAge3sgZGlyLmVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQW1DLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLG1CQUEwQyxFQUNoQyxRQUFhLEVBQ3ZCLElBQVk7UUFGWix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBRTFDLFNBQUksR0FBSixJQUFJLENBQVE7UUFXZCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENB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YUFBYSxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O2lIQTFFVSxvQkFBb0IsdURBSXJCLFFBQVE7cUdBSlAsb0JBQW9CLG1KQW9CZCxvQkFBb0Isc0lDL0J2QywwakJBV007MkZEQU8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQVFyQixNQUFNOzJCQUFDLFFBQVE7aUVBZ0I0QyxVQUFVO3NCQUF2RSxlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDcEMsT0FBTztzQkFBOUIsWUFBWTt1QkFBQyxRQUFRO2dCQWtCdEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgTmdab25lLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1Njcm9sbE9mZnNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JvbGwtb2Zmc2V0L3Njcm9sbC1vZmZzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBCc1Njcm9sbHNweURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2Nyb2xsc3B5LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXNjcm9sbHNweScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxzcHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGxzcHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1Njcm9sbHNweUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY3JvbGxPZmZzZXRTZXJ2aWNlOiBCc1Njcm9sbE9mZnNldFNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuZG9jID0gPERvY3VtZW50PmRvY3VtZW50O1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmlld0luaXQkLCB0aGlzLmNvbnRlbnRJbml0JF0pXG4gICAgICAucGlwZShmaWx0ZXIoKFt2aWV3SW5pdCwgY29udGVudEluaXRdKSA9PiB2aWV3SW5pdCAmJiBjb250ZW50SW5pdCksIHRha2UoMSkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyB0aGlzLnNldEFjdGl2ZURpcmVjdGl2ZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQ3VycmVudEluU3B5KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgdmlld0luaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgY29udGVudEluaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihCc1Njcm9sbHNweURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBkaXJlY3RpdmVzITogUXVlcnlMaXN0PEJzU2Nyb2xsc3B5RGlyZWN0aXZlPjtcbiAgQFZpZXdDaGlsZHJlbignYW5jaG9yJykgYW5jaG9ycyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4+O1xuXG4gIGRvYzogRG9jdW1lbnQ7XG4gIGFjdGl2ZURpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52aWV3SW5pdCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmNvbnRlbnRJbml0JC5uZXh0KHRydWUpO1xuICB9XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuICBcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIHRoaXMuc2V0QWN0aXZlRGlyZWN0aXZlKCk7XG4gICAgdGhpcy5zY3JvbGxUb0N1cnJlbnRJblNweSgpO1xuICB9XG5cbiAgc2V0QWN0aXZlRGlyZWN0aXZlKCkge1xuICAgIGNvbnN0IG9mZnNldFkgPSB0aGlzLnNjcm9sbE9mZnNldFNlcnZpY2UuZ2V0U2Nyb2xsT2Zmc2V0KClbMV07XG4gICAgY29uc3QgZGlycyA9IHRoaXMuZGlyZWN0aXZlcy5maWx0ZXIoKGQpID0+IGQuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgPCBvZmZzZXRZKTtcblxuICAgIGlmICh0aGlzLmRpcmVjdGl2ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChkaXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSB0aGlzLmRpcmVjdGl2ZXMuZ2V0KDApID8/IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gZGlyc1tkaXJzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbFRvQ3VycmVudEluU3B5KCkge1xuICAgIGlmICh3aW5kb3cgJiYgKHdpbmRvdy5pbm5lcldpZHRoID49IDc2OCkpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZURpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZGlyZWN0aXZlcy50b0FycmF5KCkuZmluZEluZGV4KCh2LCBpKSA9PiB2ID09PSB0aGlzLmFjdGl2ZURpcmVjdGl2ZSk7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuYW5jaG9ycy5nZXQoaW5kZXgpO1xuICAgICAgICBpZiAoYW5jaG9yICYmIGFuY2hvci5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICBhbmNob3IubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ25lYXJlc3QnIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBzY3JvbGxUb0hlYWRlcihkaXJlY3RpdmU6IEJzU2Nyb2xsc3B5RGlyZWN0aXZlKSB7XG4gICAgY29uc3QgaGVhZGVyID0gZGlyZWN0aXZlLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5zY3JvbGxPZmZzZXRTZXJ2aWNlLmdldFNjcm9sbE9mZnNldCgpWzFdO1xuICAgIGNvbnN0IHkgPSBoZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFkgLSBvZmZzZXRZICsgMTtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oe3RvcDogeSwgYmVoYXZpb3I6ICdzbW9vdGgnfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNweVwiPlxuICAgIDx1bCBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBkaXIgb2YgZGlyZWN0aXZlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPHNwYW4gW2F0dHIuZGF0YS1pbmRleF09XCJpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cIiduYXYnICsgZGlyLmVsZW1lbnQubmF0aXZlRWxlbWVudC50YWdOYW1lXCIgW2NsYXNzLmZ3LWJvbGRdPVwiYWN0aXZlRGlyZWN0aXZlPy5lbGVtZW50ID09PSBkaXIuZWxlbWVudFwiIChjbGljayk9XCJzY3JvbGxUb0hlYWRlcihkaXIpXCIgW3RpdGxlXT1cImRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnRcIiAjYW5jaG9yPlxuICAgICAgICAgICAgICAgIHt7IGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==