@mintplayer/ng-bootstrap 13.1.4 → 13.1.9

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 (154) hide show
  1. package/esm2020/index.mjs +3 -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 +77 -34
  6. package/esm2020/lib/components/card/card/card.component.mjs +1 -2
  7. package/esm2020/lib/components/carousel/carousel/carousel.component.mjs +22 -8
  8. package/esm2020/lib/components/context-menu/context-menu.directive.mjs +57 -0
  9. package/esm2020/lib/components/context-menu/context-menu.module.mjs +26 -0
  10. package/esm2020/lib/components/context-menu/index.mjs +3 -0
  11. package/esm2020/lib/components/datatable/datatable/datatable.component.mjs +51 -0
  12. package/esm2020/lib/components/datatable/datatable-column/datatable-column-metadata.mjs +2 -0
  13. package/esm2020/lib/components/datatable/datatable-column/datatable-column.directive.mjs +19 -0
  14. package/esm2020/lib/components/datatable/datatable-settings.mjs +37 -0
  15. package/esm2020/lib/components/datatable/datatable.module.mjs +40 -0
  16. package/esm2020/lib/components/datatable/index.mjs +6 -0
  17. package/esm2020/lib/components/datatable/row-template/row-template.directive.mjs +19 -0
  18. package/esm2020/lib/components/datepicker/datepicker.component.mjs +22 -0
  19. package/esm2020/lib/components/datepicker/datepicker.module.mjs +34 -0
  20. package/esm2020/lib/components/datepicker/index.mjs +3 -0
  21. package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +51 -0
  22. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +91 -0
  23. package/esm2020/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.mjs +28 -0
  24. package/esm2020/lib/components/dropdown/dropdown.module.mjs +44 -0
  25. package/esm2020/lib/components/dropdown/index.mjs +5 -0
  26. package/esm2020/lib/components/index.mjs +16 -4
  27. package/esm2020/lib/components/multiselect/index.mjs +3 -0
  28. package/esm2020/lib/components/multiselect/multiselect.component.mjs +36 -0
  29. package/esm2020/lib/components/multiselect/multiselect.module.mjs +34 -0
  30. package/esm2020/lib/components/navbar/nav-link/nav-link.directive.mjs +1 -1
  31. package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +4 -3
  32. package/esm2020/lib/components/pagination/index.mjs +3 -0
  33. package/esm2020/lib/components/pagination/pagination/pagination.component.mjs +146 -0
  34. package/esm2020/lib/components/pagination/pagination.module.mjs +26 -0
  35. package/esm2020/lib/components/progress-bar/index.mjs +4 -0
  36. package/esm2020/lib/components/progress-bar/progress/progress.component.mjs +27 -0
  37. package/esm2020/lib/components/progress-bar/progress-bar/progress-bar.component.mjs +121 -0
  38. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +31 -0
  39. package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +28 -12
  40. package/esm2020/lib/components/select2/component/select2.component.mjs +96 -0
  41. package/esm2020/lib/components/select2/directive/item-template.directive.mjs +20 -0
  42. package/esm2020/lib/components/select2/index.mjs +4 -0
  43. package/esm2020/lib/components/select2/select2.module.mjs +43 -0
  44. package/esm2020/lib/components/snackbar/component/snackbar.component.mjs +35 -0
  45. package/esm2020/lib/components/snackbar/directives/index.mjs +2 -0
  46. package/esm2020/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.mjs +27 -0
  47. package/esm2020/lib/components/snackbar/index.mjs +6 -0
  48. package/esm2020/lib/components/snackbar/interfaces/index.mjs +2 -0
  49. package/esm2020/lib/components/snackbar/interfaces/snackbar-animation-meta.mjs +2 -0
  50. package/esm2020/lib/components/snackbar/providers/snackbar-content.provider.mjs +3 -0
  51. package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +50 -0
  52. package/esm2020/lib/components/snackbar/snackbar.module.mjs +38 -0
  53. package/esm2020/lib/components/toggle-button/index.mjs +3 -0
  54. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +42 -0
  55. package/esm2020/lib/components/toggle-button/toggle-button.module.mjs +26 -0
  56. package/esm2020/lib/components/tooltip/component/tooltip.component.mjs +25 -0
  57. package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +104 -0
  58. package/esm2020/lib/components/tooltip/index.mjs +4 -0
  59. package/esm2020/lib/components/tooltip/providers/tooltip-content.provider.mjs +3 -0
  60. package/esm2020/lib/components/tooltip/tooltip.module.mjs +29 -0
  61. package/esm2020/lib/components/typeahead/index.mjs +3 -0
  62. package/esm2020/lib/components/typeahead/typeahead.component.mjs +90 -0
  63. package/esm2020/lib/components/typeahead/typeahead.module.mjs +38 -0
  64. package/esm2020/lib/enums/index.mjs +2 -1
  65. package/esm2020/lib/enums/position.enum.mjs +8 -0
  66. package/esm2020/lib/interfaces/index.mjs +2 -0
  67. package/esm2020/lib/interfaces/page-with-selection.mjs +2 -0
  68. package/esm2020/lib/pipes/font-color/font-color.module.mjs +26 -0
  69. package/esm2020/lib/pipes/font-color/font-color.pipe.mjs +26 -0
  70. package/esm2020/lib/pipes/font-color/index.mjs +3 -0
  71. package/esm2020/lib/pipes/in-list/in-list.module.mjs +26 -0
  72. package/esm2020/lib/pipes/in-list/in-list.pipe.mjs +16 -0
  73. package/esm2020/lib/pipes/index.mjs +2 -0
  74. package/esm2020/lib/pipes/month-name/month-name.pipe.mjs +7 -2
  75. package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +12 -14
  76. package/esm2020/lib/services/scroll-offset/scroll-offset.service.mjs +31 -0
  77. package/esm2020/lib/types/page-number.type.mjs +2 -0
  78. package/fesm2015/mintplayer-ng-bootstrap.mjs +1912 -277
  79. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  80. package/fesm2020/mintplayer-ng-bootstrap.mjs +1897 -275
  81. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  82. package/index.d.ts +2 -0
  83. package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -0
  84. package/lib/components/calendar/calendar.component.d.ts +21 -13
  85. package/lib/components/carousel/carousel/carousel.component.d.ts +4 -1
  86. package/lib/components/context-menu/context-menu.directive.d.ts +16 -0
  87. package/lib/components/context-menu/context-menu.module.d.ts +8 -0
  88. package/lib/components/context-menu/index.d.ts +2 -0
  89. package/lib/components/datatable/datatable/datatable.component.d.ts +17 -0
  90. package/lib/components/datatable/datatable-column/datatable-column-metadata.d.ts +4 -0
  91. package/lib/components/datatable/datatable-column/datatable-column.directive.d.ts +10 -0
  92. package/lib/components/datatable/datatable-settings.d.ts +15 -0
  93. package/lib/components/datatable/datatable.module.d.ts +11 -0
  94. package/lib/components/datatable/index.d.ts +5 -0
  95. package/lib/components/datatable/row-template/row-template.directive.d.ts +9 -0
  96. package/lib/components/datepicker/datepicker.component.d.ts +10 -0
  97. package/lib/components/datepicker/datepicker.module.d.ts +10 -0
  98. package/lib/components/datepicker/index.d.ts +2 -0
  99. package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +20 -0
  100. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +20 -0
  101. package/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.d.ts +11 -0
  102. package/lib/components/dropdown/dropdown.module.d.ts +12 -0
  103. package/lib/components/dropdown/index.d.ts +4 -0
  104. package/lib/components/index.d.ts +15 -3
  105. package/lib/components/multiselect/index.d.ts +2 -0
  106. package/lib/components/multiselect/multiselect.component.d.ts +12 -0
  107. package/lib/components/multiselect/multiselect.module.d.ts +10 -0
  108. package/lib/components/pagination/index.d.ts +2 -0
  109. package/lib/components/pagination/pagination/pagination.component.d.ts +45 -0
  110. package/lib/components/pagination/pagination.module.d.ts +8 -0
  111. package/lib/components/progress-bar/index.d.ts +3 -0
  112. package/lib/components/progress-bar/progress/progress.component.d.ts +8 -0
  113. package/lib/components/progress-bar/progress-bar/progress-bar.component.d.ts +31 -0
  114. package/lib/components/progress-bar/progress-bar.module.d.ts +9 -0
  115. package/lib/components/scrollspy/component/scrollspy.component.d.ts +6 -4
  116. package/lib/components/select2/component/select2.component.d.ts +30 -0
  117. package/lib/components/select2/directive/item-template.directive.d.ts +9 -0
  118. package/lib/components/select2/index.d.ts +3 -0
  119. package/lib/components/select2/select2.module.d.ts +12 -0
  120. package/lib/components/snackbar/component/snackbar.component.d.ts +16 -0
  121. package/lib/components/snackbar/directives/index.d.ts +1 -0
  122. package/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.d.ts +11 -0
  123. package/lib/components/snackbar/index.d.ts +5 -0
  124. package/lib/components/snackbar/interfaces/index.d.ts +1 -0
  125. package/lib/components/snackbar/interfaces/snackbar-animation-meta.d.ts +7 -0
  126. package/lib/components/snackbar/providers/snackbar-content.provider.d.ts +2 -0
  127. package/lib/components/snackbar/service/snackbar.service.d.ts +14 -0
  128. package/lib/components/snackbar/snackbar.module.d.ts +9 -0
  129. package/lib/components/toggle-button/index.d.ts +2 -0
  130. package/lib/components/toggle-button/toggle-button.component.d.ts +15 -0
  131. package/lib/components/toggle-button/toggle-button.module.d.ts +8 -0
  132. package/lib/components/tooltip/component/tooltip.component.d.ts +11 -0
  133. package/lib/components/tooltip/directive/tooltip.directive.d.ts +19 -0
  134. package/lib/components/tooltip/index.d.ts +2 -0
  135. package/lib/components/tooltip/providers/tooltip-content.provider.d.ts +2 -0
  136. package/lib/components/tooltip/tooltip.module.d.ts +9 -0
  137. package/lib/components/typeahead/index.d.ts +2 -0
  138. package/lib/components/typeahead/typeahead.component.d.ts +29 -0
  139. package/lib/components/typeahead/typeahead.module.d.ts +11 -0
  140. package/lib/enums/index.d.ts +1 -0
  141. package/lib/enums/position.enum.d.ts +6 -0
  142. package/lib/interfaces/index.d.ts +1 -0
  143. package/lib/interfaces/page-with-selection.d.ts +5 -0
  144. package/lib/pipes/font-color/font-color.module.d.ts +8 -0
  145. package/lib/pipes/font-color/font-color.pipe.d.ts +7 -0
  146. package/lib/pipes/font-color/index.d.ts +2 -0
  147. package/lib/pipes/in-list/in-list.module.d.ts +8 -0
  148. package/lib/pipes/in-list/in-list.pipe.d.ts +7 -0
  149. package/lib/pipes/index.d.ts +1 -0
  150. package/lib/pipes/month-name/month-name.pipe.d.ts +1 -1
  151. package/lib/services/calendar-month/calendar-month.service.d.ts +0 -1
  152. package/lib/services/scroll-offset/scroll-offset.service.d.ts +9 -0
  153. package/lib/types/page-number.type.d.ts +1 -0
  154. package/package.json +6 -2
@@ -1,20 +1,22 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Component, ContentChildren, HostListener, Inject, QueryList } from '@angular/core';
2
+ import { Component, ContentChildren, HostListener, Inject, QueryList, ViewChildren } from '@angular/core';
3
+ import { BsScrollOffsetService } from '../../../services/scroll-offset/scroll-offset.service';
3
4
  import { BsScrollspyDirective } from '../directives/scrollspy.directive';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
+ import * as i1 from "../../../services/scroll-offset/scroll-offset.service";
7
+ import * as i2 from "@angular/common";
6
8
  export class BsScrollspyComponent {
7
- constructor(document) {
9
+ constructor(scrollOffsetService, document) {
10
+ this.scrollOffsetService = scrollOffsetService;
8
11
  this.activeDirective = null;
9
12
  this.doc = document;
10
13
  }
11
- ngOnInit() {
12
- }
13
14
  ngAfterViewInit() {
14
15
  this.onWindowScroll();
15
16
  }
16
17
  onWindowScroll() {
17
- const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y <= 0);
18
+ const offsetY = this.scrollOffsetService.getScrollOffset()[1];
19
+ const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
18
20
  if (this.directives.length === 0) {
19
21
  this.activeDirective = null;
20
22
  }
@@ -24,25 +26,39 @@ export class BsScrollspyComponent {
24
26
  else {
25
27
  this.activeDirective = dirs[dirs.length - 1];
26
28
  }
29
+ if (window && (window.innerWidth >= 768)) {
30
+ if (this.activeDirective) {
31
+ const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
32
+ const anchor = this.anchors.get(index);
33
+ if (anchor && anchor.nativeElement.parentElement) {
34
+ anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });
35
+ }
36
+ }
37
+ }
27
38
  }
28
39
  scrollToHeader(directive) {
29
40
  const header = directive.element.nativeElement;
30
- header.scrollIntoView();
41
+ const offsetY = this.scrollOffsetService.getScrollOffset()[1];
42
+ const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;
43
+ window.scrollTo({ top: y, behavior: 'smooth' });
31
44
  }
32
45
  }
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}@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(100% - 60rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.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"] }] });
46
+ BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: i1.BsScrollOffsetService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
47
+ 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
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
36
49
  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}@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(100% - 60rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
38
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
50
+ 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"] }]
51
+ }], ctorParameters: function () { return [{ type: i1.BsScrollOffsetService }, { type: undefined, decorators: [{
39
52
  type: Inject,
40
53
  args: [DOCUMENT]
41
54
  }] }]; }, propDecorators: { directives: [{
42
55
  type: ContentChildren,
43
56
  args: [BsScrollspyDirective, { descendants: true }]
57
+ }], anchors: [{
58
+ type: ViewChildren,
59
+ args: ['anchor']
44
60
  }], onWindowScroll: [{
45
61
  type: HostListener,
46
62
  args: ['window:scroll', ['$event']]
47
63
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU96RSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQThCLFFBQWE7UUFRM0Msb0JBQWUsR0FBZ0MsSUFBSSxDQUFDO1FBUGxELElBQUksQ0FBQyxHQUFHLEdBQWEsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFRRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELGNBQWM7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUErQjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7aUhBbENVLG9CQUFvQixrQkFFWCxRQUFRO3FHQUZqQixvQkFBb0IsbUpBTWQsb0JBQW9CLGdEQ2Z2QywyZ0JBV007MkZERk8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQU1YLE1BQU07MkJBQUMsUUFBUTs0Q0FLNUIsVUFBVTtzQkFEVCxlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFjNUQsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzU2Nyb2xsc3B5RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zY3JvbGxzcHkuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtc2Nyb2xsc3B5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbHNweS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Njcm9sbHNweS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzU2Nyb2xsc3B5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgdGhpcy5kb2MgPSA8RG9jdW1lbnQ+ZG9jdW1lbnQ7XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKEJzU2Nyb2xsc3B5RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGRpcmVjdGl2ZXMhOiBRdWVyeUxpc3Q8QnNTY3JvbGxzcHlEaXJlY3RpdmU+O1xuXG4gIGRvYzogRG9jdW1lbnQ7XG4gIGFjdGl2ZURpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm9uV2luZG93U2Nyb2xsKCk7XG4gIH1cbiAgXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICBjb25zdCBkaXJzID0gdGhpcy5kaXJlY3RpdmVzLmZpbHRlcigoZCkgPT4gZC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSA8PSAwKTtcbiAgICBpZiAodGhpcy5kaXJlY3RpdmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoZGlycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gdGhpcy5kaXJlY3RpdmVzLmdldCgwKSA/PyBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IGRpcnNbZGlycy5sZW5ndGggLSAxXTtcbiAgICB9XG4gIH1cbiAgXG4gIHNjcm9sbFRvSGVhZGVyKGRpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUpIHtcbiAgICBjb25zdCBoZWFkZXIgPSBkaXJlY3RpdmUuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGhlYWRlci5zY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzcHlcIj5cbiAgICA8dWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGlyIG9mIGRpcmVjdGl2ZXNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCInbmF2JyArIGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZVwiIFtjbGFzcy5mdy1ib2xkXT1cImFjdGl2ZURpcmVjdGl2ZT8uZWxlbWVudCA9PT0gZGlyLmVsZW1lbnRcIiAoY2xpY2spPVwic2Nyb2xsVG9IZWFkZXIoZGlyKVwiIFt0aXRsZV09XCJkaXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50XCI+XG4gICAgICAgICAgICAgICAge3sgZGlyLmVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBT3pFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxtQkFBMEMsRUFDaEMsUUFBYTtRQUR2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBU3BELG9CQUFlLEdBQWdDLElBQUksQ0FBQztRQVBsRCxJQUFJLENBQUMsR0FBRyxHQUFhLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBUUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QsY0FBYztRQUNaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDeEcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN4RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUU7b0JBQ2hELE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztpQkFDOUU7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUErQjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOztpSEE5Q1Usb0JBQW9CLHVEQUlyQixRQUFRO3FHQUpQLG9CQUFvQixtSkFRZCxvQkFBb0Isc0lDbEJ2QywwakJBV007MkZERE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQVFyQixNQUFNOzJCQUFDLFFBQVE7NENBSTRDLFVBQVU7c0JBQXZFLGVBQWU7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUNwQyxPQUFPO3NCQUE5QixZQUFZO3VCQUFDLFFBQVE7Z0JBVXRCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc1Njcm9sbE9mZnNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JvbGwtb2Zmc2V0L3Njcm9sbC1vZmZzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBCc1Njcm9sbHNweURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2Nyb2xsc3B5LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXNjcm9sbHNweScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxzcHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGxzcHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1Njcm9sbHNweUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2Nyb2xsT2Zmc2V0U2VydmljZTogQnNTY3JvbGxPZmZzZXRTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnkpIHtcbiAgICB0aGlzLmRvYyA9IDxEb2N1bWVudD5kb2N1bWVudDtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oQnNTY3JvbGxzcHlEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgZGlyZWN0aXZlcyE6IFF1ZXJ5TGlzdDxCc1Njcm9sbHNweURpcmVjdGl2ZT47XG4gIEBWaWV3Q2hpbGRyZW4oJ2FuY2hvcicpIGFuY2hvcnMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PjtcblxuICBkb2M6IERvY3VtZW50O1xuICBhY3RpdmVEaXJlY3RpdmU6IEJzU2Nyb2xsc3B5RGlyZWN0aXZlIHwgbnVsbCA9IG51bGw7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub25XaW5kb3dTY3JvbGwoKTtcbiAgfVxuICBcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIGNvbnN0IG9mZnNldFkgPSB0aGlzLnNjcm9sbE9mZnNldFNlcnZpY2UuZ2V0U2Nyb2xsT2Zmc2V0KClbMV07XG4gICAgY29uc3QgZGlycyA9IHRoaXMuZGlyZWN0aXZlcy5maWx0ZXIoKGQpID0+IGQuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgPCBvZmZzZXRZKTtcbiAgICBpZiAodGhpcy5kaXJlY3RpdmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoZGlycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gdGhpcy5kaXJlY3RpdmVzLmdldCgwKSA/PyBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IGRpcnNbZGlycy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBpZiAod2luZG93ICYmICh3aW5kb3cuaW5uZXJXaWR0aCA+PSA3NjgpKSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVEaXJlY3RpdmUpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRpcmVjdGl2ZXMudG9BcnJheSgpLmZpbmRJbmRleCgodiwgaSkgPT4gdiA9PT0gdGhpcy5hY3RpdmVEaXJlY3RpdmUpO1xuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLmFuY2hvcnMuZ2V0KGluZGV4KTtcbiAgICAgICAgaWYgKGFuY2hvciAmJiBhbmNob3IubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgYW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnLCBpbmxpbmU6ICduZWFyZXN0JyB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgc2Nyb2xsVG9IZWFkZXIoZGlyZWN0aXZlOiBCc1Njcm9sbHNweURpcmVjdGl2ZSkge1xuICAgIGNvbnN0IGhlYWRlciA9IGRpcmVjdGl2ZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgb2Zmc2V0WSA9IHRoaXMuc2Nyb2xsT2Zmc2V0U2VydmljZS5nZXRTY3JvbGxPZmZzZXQoKVsxXTtcbiAgICBjb25zdCB5ID0gaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZIC0gb2Zmc2V0WSArIDE7XG4gICAgd2luZG93LnNjcm9sbFRvKHt0b3A6IHksIGJlaGF2aW9yOiAnc21vb3RoJ30pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzcHlcIj5cbiAgICA8dWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGlyIG9mIGRpcmVjdGl2ZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxzcGFuIFthdHRyLmRhdGEtaW5kZXhdPVwiaVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCInbmF2JyArIGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZVwiIFtjbGFzcy5mdy1ib2xkXT1cImFjdGl2ZURpcmVjdGl2ZT8uZWxlbWVudCA9PT0gZGlyLmVsZW1lbnRcIiAoY2xpY2spPVwic2Nyb2xsVG9IZWFkZXIoZGlyKVwiIFt0aXRsZV09XCJkaXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50XCIgI2FuY2hvcj5cbiAgICAgICAgICAgICAgICB7eyBkaXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=
@@ -0,0 +1,96 @@
1
+ import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../dropdown/dropdown/dropdown.directive";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "../../dropdown/dropdown-menu/dropdown-menu.directive";
8
+ import * as i5 from "../../../pipes/in-list/in-list.pipe";
9
+ export class BsSelect2Component {
10
+ constructor() {
11
+ this.isOpen = false;
12
+ this.suggestions$ = new BehaviorSubject([]);
13
+ this.isLoading$ = new BehaviorSubject(false);
14
+ this.hostWidth$ = new BehaviorSubject(200);
15
+ this.searchterm = '';
16
+ this.suggestions = [];
17
+ this.provideSuggestions = new EventEmitter();
18
+ this.selectedItems = [];
19
+ this.isFocused = false;
20
+ this.charWidth = 10;
21
+ this.searchWidth = 20;
22
+ }
23
+ ngAfterViewInit() {
24
+ this.onResize();
25
+ }
26
+ onProvideSuggestions(value) {
27
+ this.searchWidth = this.charWidth * (this.searchterm.length + 2);
28
+ if (value === '') {
29
+ this.isOpen = false;
30
+ this.suggestions$.next([]);
31
+ }
32
+ else {
33
+ this.isLoading$.next(true);
34
+ this.isOpen = true;
35
+ this.provideSuggestions.emit(value);
36
+ }
37
+ }
38
+ onSuggestionClicked(suggestion) {
39
+ this.searchterm = '';
40
+ this.isOpen = false;
41
+ const existing = this.selectedItems.find((value, index) => value.id === suggestion.id);
42
+ if (existing === undefined) {
43
+ this.selectedItems.push(suggestion);
44
+ }
45
+ else {
46
+ this.selectedItems.splice(this.selectedItems.indexOf(existing), 1);
47
+ }
48
+ this.searchBox.nativeElement.focus();
49
+ }
50
+ onRemoveItem(item, event) {
51
+ event.stopPropagation();
52
+ this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
53
+ this.focus();
54
+ }
55
+ ngOnInit() {
56
+ }
57
+ onResize() {
58
+ this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);
59
+ }
60
+ focus() {
61
+ this.searchBox.nativeElement.focus();
62
+ }
63
+ }
64
+ BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
+ BsSelect2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "window:resize": "onResize()", "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }, { propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n", styles: [".items-box{display:block;position:relative;width:100%;min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"], directives: [{ type: i1.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "async": i2.AsyncPipe, "inList": i5.BsInListPipe } });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, decorators: [{
67
+ type: Component,
68
+ args: [{ selector: 'bs-select2', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n", styles: [".items-box{display:block;position:relative;width:100%;min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"] }]
69
+ }], ctorParameters: function () { return []; }, propDecorators: { searchBox: [{
70
+ type: ViewChild,
71
+ args: ['searchBox']
72
+ }], itemsBox: [{
73
+ type: ViewChild,
74
+ args: ['itemsBox']
75
+ }], searchterm: [{
76
+ type: Input
77
+ }], suggestions: [{
78
+ type: Input
79
+ }], provideSuggestions: [{
80
+ type: Output
81
+ }], selectedItems: [{
82
+ type: Input
83
+ }], isFocused: [{
84
+ type: HostBinding,
85
+ args: ['class.focus']
86
+ }], onResize: [{
87
+ type: HostListener,
88
+ args: ['window:resize']
89
+ }], focus: [{
90
+ type: HostListener,
91
+ args: ['click']
92
+ }], defaultItemTemplate: [{
93
+ type: ViewChild,
94
+ args: ['defaultItemTemplate', { static: true }]
95
+ }] } });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QyL2NvbXBvbmVudC9zZWxlY3QyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdDIvY29tcG9uZW50L3NlbGVjdDIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBT3ZDLE1BQU0sT0FBTyxrQkFBa0I7SUFtQjdCO1FBakJBLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsR0FBRyxDQUFDLENBQUM7UUFJckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNULGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEQsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDUCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXRDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFFRCxDQUFDO0lBRWpCLGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUNELG1CQUFtQixDQUFDLFVBQWU7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RixJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFTLEVBQUUsS0FBaUI7UUFDdkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR00sS0FBSztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7OytHQWxFVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrb0JDUi9CLHFzQ0F5QkE7MkZEakJhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxZQUFZOzBFQVlFLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDQyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ1osVUFBVTtzQkFBbEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNXLGtCQUFrQjtzQkFBbEMsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLO2dCQUNzQixTQUFTO3NCQUFwQyxXQUFXO3VCQUFDLGFBQWE7Z0JBNkMxQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZTtnQkFNdEIsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU87Z0JBSytCLG1CQUFtQjtzQkFBdEUsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtc2VsZWN0MicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0Mi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzU2VsZWN0MkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG4gIFxuICBzdWdnZXN0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaG9zdFdpZHRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigyMDApO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaEJveCcpIHNlYXJjaEJveCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2l0ZW1zQm94JykgaXRlbXNCb3ghOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQElucHV0KCkgc2VhcmNodGVybSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc3VnZ2VzdGlvbnM6IGFueVtdID0gW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgcHJvdmlkZVN1Z2dlc3Rpb25zID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZm9jdXMnKSBpc0ZvY3VzZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGNoYXJXaWR0aCA9IDEwO1xuICBzZWFyY2hXaWR0aCA9IDIwO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub25SZXNpemUoKTtcbiAgfVxuICBcbiAgb25Qcm92aWRlU3VnZ2VzdGlvbnModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoV2lkdGggPSB0aGlzLmNoYXJXaWR0aCAqICh0aGlzLnNlYXJjaHRlcm0ubGVuZ3RoICsgMik7XG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnMkLm5leHQoW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMucHJvdmlkZVN1Z2dlc3Rpb25zLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuICBvblN1Z2dlc3Rpb25DbGlja2VkKHN1Z2dlc3Rpb246IGFueSkge1xuICAgIHRoaXMuc2VhcmNodGVybSA9ICcnO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kKCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlLmlkID09PSBzdWdnZXN0aW9uLmlkKTtcbiAgICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goc3VnZ2VzdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoZXhpc3RpbmcpLCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbiAgb25SZW1vdmVJdGVtKGl0ZW06IGFueSwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKHRoaXMuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLmhvc3RXaWR0aCQubmV4dCh0aGlzLml0ZW1zQm94Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG4gIFxuICBAVmlld0NoaWxkKCdkZWZhdWx0SXRlbVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgZGVmYXVsdEl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cblxufVxuIiwiPGRpdiBic0Ryb3Bkb3duIFsoaXNPcGVuKV09XCJpc09wZW5cIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIiBbY2xvc2VPbkNsaWNrT3V0c2lkZV09XCJ0cnVlXCIgI2l0ZW1zQm94IGNsYXNzPVwiaXRlbXMtYm94XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGUgPz8gZGVmYXVsdEl0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyBpdGVtOiBpdGVtLCBzZWxlY3QyOiB0aGlzIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNodGVybVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUHJvdmlkZVN1Z2dlc3Rpb25zKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwiaXNGb2N1c2VkPXRydWVcIlxuICAgICAgICAoYmx1cik9XCJpc0ZvY3VzZWQ9ZmFsc2VcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwic2VhcmNoV2lkdGhcIlxuICAgICAgICAjc2VhcmNoQm94IC8+XG4gICAgPGRpdiAqYnNEcm9wZG93bk1lbnU+XG4gICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZC1ibG9jayBwb3NpdGlvbi1zdGF0aWMgcC0wXCIgW3N0eWxlLndpZHRoLnB4XT1cImhvc3RXaWR0aCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIHN1Z2dlc3Rpb25zXCIgKGNsaWNrKT1cIm9uU3VnZ2VzdGlvbkNsaWNrZWQoc3VnZ2VzdGlvbilcIiBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWRJdGVtcyB8IGluTGlzdDpzdWdnZXN0aW9uLmlkXCI+e3sgc3VnZ2VzdGlvbi50ZXh0IH19PC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LXNlbGVjdDI9XCJzZWxlY3QyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzZWxlY3QyLWl0ZW1cIj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInNlbGVjdDIub25SZW1vdmVJdGVtKGl0ZW0sJGV2ZW50KVwiPsOXPC9zcGFuPlxuICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,20 @@
1
+ import { Directive, TemplateRef } from '@angular/core';
2
+ import { BsSelect2Component } from '../component/select2.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../component/select2.component";
5
+ export class BsItemTemplateDirective {
6
+ constructor(select2component, templateRef) {
7
+ this.select2component = select2component;
8
+ console.log('template', templateRef);
9
+ this.select2component.itemTemplate = templateRef;
10
+ }
11
+ }
12
+ BsItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsItemTemplateDirective, deps: [{ token: i1.BsSelect2Component }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
13
+ BsItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsItemTemplateDirective, selector: "[bsItemTemplate]", ngImport: i0 });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsItemTemplateDirective, decorators: [{
15
+ type: Directive,
16
+ args: [{
17
+ selector: '[bsItemTemplate]'
18
+ }]
19
+ }], ctorParameters: function () { return [{ type: i1.BsSelect2Component }, { type: i0.TemplateRef }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QyL2RpcmVjdGl2ZS9pdGVtLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBS3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFBb0IsZ0JBQW9DLEVBQUUsV0FBNkI7UUFBbkUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNuRCxDQUFDOztvSEFMVSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNTZWxlY3QyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3NlbGVjdDIuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2JzSXRlbVRlbXBsYXRlXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNJdGVtVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VsZWN0MmNvbXBvbmVudDogQnNTZWxlY3QyQ29tcG9uZW50LCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIGNvbnNvbGUubG9nKCd0ZW1wbGF0ZScsIHRlbXBsYXRlUmVmKTtcbiAgICB0aGlzLnNlbGVjdDJjb21wb25lbnQuaXRlbVRlbXBsYXRlID0gdGVtcGxhdGVSZWY7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './component/select2.component';
2
+ export * from './directive/item-template.directive';
3
+ export * from './select2.module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQvc2VsZWN0Mi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmUvaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QyLm1vZHVsZSc7Il19
@@ -0,0 +1,43 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { BsDropdownModule } from '../dropdown/dropdown.module';
5
+ import { BsItemTemplateDirective } from './directive/item-template.directive';
6
+ import { BsSelect2Component } from './component/select2.component';
7
+ import { BsInListModule } from '../../pipes/in-list/in-list.module';
8
+ import * as i0 from "@angular/core";
9
+ export class BsSelect2Module {
10
+ }
11
+ BsSelect2Module.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ BsSelect2Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, declarations: [BsSelect2Component,
13
+ BsItemTemplateDirective], imports: [CommonModule,
14
+ FormsModule,
15
+ BsDropdownModule,
16
+ BsInListModule], exports: [BsSelect2Component,
17
+ BsItemTemplateDirective] });
18
+ BsSelect2Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, imports: [[
19
+ CommonModule,
20
+ FormsModule,
21
+ BsDropdownModule,
22
+ BsInListModule
23
+ ]] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ declarations: [
28
+ BsSelect2Component,
29
+ BsItemTemplateDirective
30
+ ],
31
+ imports: [
32
+ CommonModule,
33
+ FormsModule,
34
+ BsDropdownModule,
35
+ BsInListModule
36
+ ],
37
+ exports: [
38
+ BsSelect2Component,
39
+ BsItemTemplateDirective
40
+ ]
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Mi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QyL3NlbGVjdDIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBa0JwRSxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQWR4QixrQkFBa0I7UUFDbEIsdUJBQXVCLGFBR3ZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLGNBQWMsYUFHZCxrQkFBa0I7UUFDbEIsdUJBQXVCOzZHQUdkLGVBQWUsWUFYakI7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQjtZQUNoQixjQUFjO1NBQ2Y7MkZBTVUsZUFBZTtrQkFoQjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5tb2R1bGUnO1xuaW1wb3J0IHsgQnNJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9pdGVtLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCc1NlbGVjdDJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC9zZWxlY3QyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0luTGlzdE1vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzL2luLWxpc3QvaW4tbGlzdC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCc1NlbGVjdDJDb21wb25lbnQsXG4gICAgQnNJdGVtVGVtcGxhdGVEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIEJzSW5MaXN0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc1NlbGVjdDJDb21wb25lbnQsXG4gICAgQnNJdGVtVGVtcGxhdGVEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCc1NlbGVjdDJNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Component, EventEmitter, HostBinding, Inject, TemplateRef } from '@angular/core';
2
+ import { SlideUpDownAnimation } from '@mintplayer/ng-animations';
3
+ import { SNACKBAR_CONTENT } from '../providers/snackbar-content.provider';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class BsSnackbarComponent {
7
+ constructor(content) {
8
+ this.displayBlock = true;
9
+ this.width100 = true;
10
+ this.instance = null;
11
+ //#region Monitor @slideUpDown hooks
12
+ this.animationState = '';
13
+ this.animationStateChanged = new EventEmitter();
14
+ this.content = content;
15
+ }
16
+ onAnimationChanged(event) {
17
+ this.animationStateChanged.emit(event);
18
+ }
19
+ }
20
+ BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
21
+ BsSnackbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsSnackbarComponent, selector: "bs-snackbar", host: { properties: { "class.d-block": "this.displayBlock", "class.w-100": "this.width100" } }, ngImport: i0, template: "<div [@slideUpDown]=\"animationState\"\n (@slideUpDown.start)=\"onAnimationChanged($event)\"\n (@slideUpDown.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n</div>", styles: [":host{background:#232323;color:rgba(var(--bs-light-rgb))}\n"], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [SlideUpDownAnimation] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'bs-snackbar', animations: [SlideUpDownAnimation], template: "<div [@slideUpDown]=\"animationState\"\n (@slideUpDown.start)=\"onAnimationChanged($event)\"\n (@slideUpDown.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n</div>", styles: [":host{background:#232323;color:rgba(var(--bs-light-rgb))}\n"] }]
25
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
26
+ type: Inject,
27
+ args: [SNACKBAR_CONTENT]
28
+ }] }]; }, propDecorators: { displayBlock: [{
29
+ type: HostBinding,
30
+ args: ['class.d-block']
31
+ }], width100: [{
32
+ type: HostBinding,
33
+ args: ['class.w-100']
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvY29tcG9uZW50L3NuYWNrYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3NuYWNrYmFyL2NvbXBvbmVudC9zbmFja2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUErQixZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBcUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFRMUUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUFzQyxPQUF5QjtRQUlqQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUN0QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2xDLGFBQVEsR0FBaUMsSUFBSSxDQUFDO1FBRXhELG9DQUFvQztRQUNwQyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQiwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQVh6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBV0Qsa0JBQWtCLENBQUMsS0FBcUI7UUFDdEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOztnSEFqQlUsbUJBQW1CLGtCQUVWLGdCQUFnQjtvR0FGekIsbUJBQW1CLG1KQ2JoQyxzUUFLTSw2TkRNUSxDQUFDLG9CQUFvQixDQUFDOzJGQUV2QixtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUdYLENBQUMsb0JBQW9CLENBQUM7OzBCQUlyQixNQUFNOzJCQUFDLGdCQUFnQjs0Q0FJTixZQUFZO3NCQUF6QyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ0EsUUFBUTtzQkFBbkMsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2xpZGVVcERvd25BbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcbmltcG9ydCB7IFNuYWNrYmFyQW5pbWF0aW9uTWV0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc25hY2tiYXItYW5pbWF0aW9uLW1ldGEnO1xuaW1wb3J0IHsgQnNTbmFja2JhckNsb3NlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zbmFja2Jhci1jbG9zZS9zbmFja2Jhci1jbG9zZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU05BQ0tCQVJfQ09OVEVOVCB9IGZyb20gJy4uL3Byb3ZpZGVycy9zbmFja2Jhci1jb250ZW50LnByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtc25hY2tiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbmFja2Jhci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbU2xpZGVVcERvd25BbmltYXRpb25dXG59KVxuZXhwb3J0IGNsYXNzIEJzU25hY2tiYXJDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoU05BQ0tCQVJfQ09OVEVOVCkgY29udGVudDogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cbiAgXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZC1ibG9jaycpIGRpc3BsYXlCbG9jayA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mudy0xMDAnKSB3aWR0aDEwMCA9IHRydWU7XG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJvdGVjdGVkIGluc3RhbmNlOiBTbmFja2JhckFuaW1hdGlvbk1ldGEgfCBudWxsID0gbnVsbDtcblxuICAvLyNyZWdpb24gTW9uaXRvciBAc2xpZGVVcERvd24gaG9va3NcbiAgYW5pbWF0aW9uU3RhdGUgPSAnJztcbiAgYW5pbWF0aW9uU3RhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb25FdmVudD4oKTtcbiAgb25BbmltYXRpb25DaGFuZ2VkKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG59XG4iLCI8ZGl2IFtAc2xpZGVVcERvd25dPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgICAoQHNsaWRlVXBEb3duLnN0YXJ0KT1cIm9uQW5pbWF0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgKEBzbGlkZVVwRG93bi5kb25lKT1cIm9uQW5pbWF0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHRoaXMgfVwiID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './snackbar-close/snackbar-close.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NuYWNrYmFyLWNsb3NlL3NuYWNrYmFyLWNsb3NlLmRpcmVjdGl2ZSc7Il19
@@ -0,0 +1,27 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import { BsSnackbarService } from '../../service/snackbar.service';
3
+ import { BsSnackbarComponent } from '../../component/snackbar.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../service/snackbar.service";
6
+ export class BsSnackbarCloseDirective {
7
+ constructor(snackbarService) {
8
+ this.snackbarService = snackbarService;
9
+ }
10
+ onClick() {
11
+ this.snackbarService.hide(this.bsSnackbarClose);
12
+ }
13
+ }
14
+ BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: i1.BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
15
+ BsSnackbarCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsSnackbarCloseDirective, selector: "[bsSnackbarClose]", inputs: { bsSnackbarClose: "bsSnackbarClose" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ selector: '[bsSnackbarClose]'
20
+ }]
21
+ }], ctorParameters: function () { return [{ type: i1.BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
22
+ type: Input
23
+ }], onClick: [{
24
+ type: HostListener,
25
+ args: ['click']
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItY2xvc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvZGlyZWN0aXZlcy9zbmFja2Jhci1jbG9zZS9zbmFja2Jhci1jbG9zZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFLekUsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFvQixlQUFrQztRQUFsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7SUFBSSxDQUFDO0lBSXBDLE9BQU87UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7O3FIQVBVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7d0dBSWlCLGVBQWU7c0JBQTlCLEtBQUs7Z0JBRWlCLE9BQU87c0JBQTdCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3NuYWNrYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnNTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC9zbmFja2Jhci5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNTbmFja2JhckNsb3NlXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNTbmFja2JhckNsb3NlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja2JhclNlcnZpY2U6IEJzU25hY2tiYXJTZXJ2aWNlKSB7IH1cblxuICBASW5wdXQoKSBwdWJsaWMgYnNTbmFja2JhckNsb3NlITogQnNTbmFja2JhckNvbXBvbmVudDtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5zbmFja2JhclNlcnZpY2UuaGlkZSh0aGlzLmJzU25hY2tiYXJDbG9zZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './snackbar.module';
2
+ export * from './component/snackbar.component';
3
+ export * from './service/snackbar.service';
4
+ export * from './interfaces';
5
+ export * from './directives';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc25hY2tiYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50L3NuYWNrYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2Uvc25hY2tiYXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJzsiXX0=
@@ -0,0 +1,2 @@
1
+ export * from './snackbar-animation-meta';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NuYWNrYmFyLWFuaW1hdGlvbi1tZXRhJzsiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItYW5pbWF0aW9uLW1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9pbnRlcmZhY2VzL3NuYWNrYmFyLWFuaW1hdGlvbi1tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQnNTbmFja2JhckNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnQvc25hY2tiYXIuY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU25hY2tiYXJBbmltYXRpb25NZXRhIHtcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxCc1NuYWNrYmFyQ29tcG9uZW50PjtcbiAgICBvdmVybGF5OiBPdmVybGF5UmVmO1xufSJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItY29udGVudC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3NuYWNrYmFyL3Byb3ZpZGVycy9zbmFja2Jhci1jb250ZW50LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQW1CLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgU05BQ0tCQVJfQ09OVEVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUZW1wbGF0ZVJlZjxhbnk+PignU25hY2tiYXJDb250ZW50Jyk7Il19
@@ -0,0 +1,50 @@
1
+ import { Overlay } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { ComponentFactoryResolver, Injectable, Injector } from '@angular/core';
4
+ import { filter, take } from 'rxjs';
5
+ import { BsSnackbarComponent } from '../component/snackbar.component';
6
+ import { SNACKBAR_CONTENT } from '../providers/snackbar-content.provider';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/cdk/overlay";
9
+ export class BsSnackbarService {
10
+ constructor(overlay, parentInjector, componentFactoryResolver) {
11
+ this.overlay = overlay;
12
+ this.parentInjector = parentInjector;
13
+ this.componentFactoryResolver = componentFactoryResolver;
14
+ }
15
+ show(template) {
16
+ const injector = Injector.create({
17
+ providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
18
+ parent: this.parentInjector
19
+ });
20
+ const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
21
+ const overlayRef = this.overlay.create({
22
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
23
+ positionStrategy: this.overlay.position()
24
+ .global().centerHorizontally().bottom('0'),
25
+ width: '100%'
26
+ });
27
+ const componentInstance = overlayRef.attach(portal);
28
+ // componentInstance.
29
+ componentInstance.instance['instance'] = {
30
+ component: componentInstance,
31
+ overlay: overlayRef
32
+ };
33
+ return componentInstance.instance;
34
+ }
35
+ hide(snackbar) {
36
+ snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
37
+ snackbar['instance']?.overlay.dispose();
38
+ });
39
+ snackbar.animationState = 'void';
40
+ }
41
+ }
42
+ BsSnackbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root'
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3NuYWNrYmFyL3NlcnZpY2Uvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFLMUUsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUNVLE9BQWdCLEVBQ2hCLGNBQXdCLEVBQ3hCLHdCQUFrRDtRQUZsRCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFVO1FBQ3hCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFDeEQsQ0FBQztJQUVFLElBQUksQ0FBQyxRQUEwQjtRQUNwQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUM5RCxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUV2RyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDMUQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7aUJBQ3RDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUM1QyxLQUFLLEVBQUUsTUFBTTtTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBc0IsTUFBTSxDQUFDLENBQUM7UUFFekUscUJBQXFCO1FBRXJCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBMEI7WUFDOUQsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDO1FBRUYsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLElBQUksQ0FBQyxRQUE2QjtRQUN2QyxRQUFRLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUNqQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxFQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxFQUM5RCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2YsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ25DLENBQUM7OzhHQTNDVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1NuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3NuYWNrYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbmFja2JhckFuaW1hdGlvbk1ldGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NuYWNrYmFyLWFuaW1hdGlvbi1tZXRhJztcbmltcG9ydCB7IFNOQUNLQkFSX0NPTlRFTlQgfSBmcm9tICcuLi9wcm92aWRlcnMvc25hY2tiYXItY29udGVudC5wcm92aWRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJzU25hY2tiYXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBwYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgKSB7IH1cblxuICBwdWJsaWMgc2hvdyh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU05BQ0tCQVJfQ09OVEVOVCwgdXNlVmFsdWU6IHRlbXBsYXRlIH1dLFxuICAgICAgcGFyZW50OiB0aGlzLnBhcmVudEluamVjdG9yXG4gICAgfSk7XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChCc1NuYWNrYmFyQ29tcG9uZW50LCBudWxsLCBpbmplY3RvciwgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgIC5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5ib3R0b20oJzAnKSxcbiAgICAgIHdpZHRoOiAnMTAwJSdcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gb3ZlcmxheVJlZi5hdHRhY2g8QnNTbmFja2JhckNvbXBvbmVudD4ocG9ydGFsKTtcbiAgICBcbiAgICAvLyBjb21wb25lbnRJbnN0YW5jZS5cbiAgICBcbiAgICBjb21wb25lbnRJbnN0YW5jZS5pbnN0YW5jZVsnaW5zdGFuY2UnXSA9IDxTbmFja2JhckFuaW1hdGlvbk1ldGE+e1xuICAgICAgY29tcG9uZW50OiBjb21wb25lbnRJbnN0YW5jZSxcbiAgICAgIG92ZXJsYXk6IG92ZXJsYXlSZWZcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudEluc3RhbmNlLmluc3RhbmNlO1xuICB9XG5cbiAgcHVibGljIGhpZGUoc25hY2tiYXI6IEJzU25hY2tiYXJDb21wb25lbnQpIHtcbiAgICBzbmFja2Jhci5hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShcbiAgICAgIGZpbHRlcihldiA9PiBldi5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldi50b1N0YXRlID09PSAndm9pZCcpLFxuICAgICAgdGFrZSgxKVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHNuYWNrYmFyWydpbnN0YW5jZSddPy5vdmVybGF5LmRpc3Bvc2UoKVxuICAgIH0pO1xuXG4gICAgc25hY2tiYXIuYW5pbWF0aW9uU3RhdGUgPSAndm9pZCc7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BsSnackbarComponent } from './component/snackbar.component';
4
+ import { BsSnackbarCloseDirective } from './directives/snackbar-close/snackbar-close.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class BsSnackbarModule {
7
+ }
8
+ BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
10
+ BsSnackbarCloseDirective], imports: [CommonModule], exports: [BsSnackbarComponent,
11
+ BsSnackbarCloseDirective] });
12
+ BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
13
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
14
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
15
+ ], imports: [[
16
+ CommonModule
17
+ ]] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ declarations: [
22
+ BsSnackbarComponent,
23
+ BsSnackbarCloseDirective
24
+ ],
25
+ imports: [
26
+ CommonModule
27
+ ],
28
+ exports: [
29
+ BsSnackbarComponent,
30
+ BsSnackbarCloseDirective
31
+ ],
32
+ providers: [
33
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
34
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
35
+ ]
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOztBQW1CaEcsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQWZ6QixtQkFBbUI7UUFDbkIsd0JBQXdCLGFBR3hCLFlBQVksYUFHWixtQkFBbUI7UUFDbkIsd0JBQXdCOzhHQU9mLGdCQUFnQixhQUxoQjtJQUNULHVGQUF1RjtJQUN2RixrRUFBa0U7S0FDbkUsWUFWUTtZQUNQLFlBQVk7U0FDYjsyRkFVVSxnQkFBZ0I7a0JBakI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QjtvQkFDRCxTQUFTLEVBQUU7b0JBQ1QsdUZBQXVGO29CQUN2RixrRUFBa0U7cUJBQ25FO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc1NuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvc25hY2tiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJzU25hY2tiYXJDbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zbmFja2Jhci1jbG9zZS9zbmFja2Jhci1jbG9zZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCc1NuYWNrYmFyQ29tcG9uZW50LFxuICAgIEJzU25hY2tiYXJDbG9zZURpcmVjdGl2ZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc1NuYWNrYmFyQ29tcG9uZW50LFxuICAgIEJzU25hY2tiYXJDbG9zZURpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICAvLyB7IHByb3ZpZGU6IEJzU25hY2tiYXJDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJzU25hY2tiYXJDb21wb25lbnQpIH1cbiAgICAvLyB7IHByb3ZpZGU6IEJzU25hY2tiYXJDb21wb25lbnQsIHVzZUNsYXNzOiBCc1NuYWNrYmFyQ29tcG9uZW50IH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCc1NuYWNrYmFyTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './toggle-button.component';
2
+ export * from './toggle-button.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90b2dnbGUtYnV0dG9uLm1vZHVsZSc7Il19
@@ -0,0 +1,42 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ColorTransitionAnimation } from '@mintplayer/ng-animations';
3
+ import * as i0 from "@angular/core";
4
+ export class BsToggleButtonComponent {
5
+ constructor() {
6
+ this.disableAnimations = true;
7
+ //#region isToggled
8
+ this._isToggled = false;
9
+ this.isToggledChange = new EventEmitter();
10
+ //#endregion
11
+ this.offColor = '#CCCCCC';
12
+ this.onColor = '#2196F3';
13
+ this.round = true;
14
+ }
15
+ ngAfterViewInit() {
16
+ this.disableAnimations = false;
17
+ }
18
+ get isToggled() {
19
+ return this._isToggled;
20
+ }
21
+ set isToggled(value) {
22
+ this._isToggled = value;
23
+ this.isToggledChange.emit(this._isToggled);
24
+ }
25
+ }
26
+ BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ BsToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: { isToggled: "isToggled", offColor: "offColor", onColor: "onColor", round: "round" }, outputs: { isToggledChange: "isToggledChange" }, ngImport: i0, template: "<label (click)=\"isToggled = !isToggled\" class=\"switch\" [class.checked]=\"isToggled\">\n <span class=\"slider\" [class.round]=\"round\" [@colorTransition]=\"{ value: isToggled ? 'color2' : 'color1', params: { color1: offColor, color2: onColor, 'duration': '.4s' } }\"></span>\n</label>", styles: [".switch{position:relative;display:inline-block;width:30px;height:17px}.switch>.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:transform .4s}.switch>.slider.round{border-radius:8.5px}.switch>.slider.round:before{border-radius:50%}.switch>.slider:before{position:absolute;content:\"\";height:13px;width:13px;left:2px;top:0;bottom:0;margin:auto 0;background-color:#fff;transition:transform .4s}.switch.checked .slider:before{transform:translate(13px)}\n"], animations: [ColorTransitionAnimation] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'bs-toggle-button', animations: [ColorTransitionAnimation], template: "<label (click)=\"isToggled = !isToggled\" class=\"switch\" [class.checked]=\"isToggled\">\n <span class=\"slider\" [class.round]=\"round\" [@colorTransition]=\"{ value: isToggled ? 'color2' : 'color1', params: { color1: offColor, color2: onColor, 'duration': '.4s' } }\"></span>\n</label>", styles: [".switch{position:relative;display:inline-block;width:30px;height:17px}.switch>.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:transform .4s}.switch>.slider.round{border-radius:8.5px}.switch>.slider.round:before{border-radius:50%}.switch>.slider:before{position:absolute;content:\"\";height:13px;width:13px;left:2px;top:0;bottom:0;margin:auto 0;background-color:#fff;transition:transform .4s}.switch.checked .slider:before{transform:translate(13px)}\n"] }]
31
+ }], propDecorators: { isToggledChange: [{
32
+ type: Output
33
+ }], isToggled: [{
34
+ type: Input
35
+ }], offColor: [{
36
+ type: Input
37
+ }], onColor: [{
38
+ type: Input
39
+ }], round: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL3RvZ2dsZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvdG9nZ2xlLWJ1dHRvbi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQVFyRSxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBUUUsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBS3pCLG1CQUFtQjtRQUNuQixlQUFVLEdBQW1CLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBUXRFLFlBQVk7UUFFSSxhQUFRLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxTQUFTLENBQUM7UUFDcEIsVUFBSyxHQUFHLElBQUksQ0FBQztLQUU5QjtJQXBCQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBS0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBb0IsU0FBUyxDQUFDLEtBQXFCO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDOztvSEFoQlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsdU1DVHBDLHFTQUVRLGdnQkRLTSxDQUFFLHdCQUF3QixDQUFFOzJGQUU3Qix1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLENBQUUsd0JBQXdCLENBQUU7OEJBV3ZCLGVBQWU7c0JBQS9CLE1BQU07Z0JBSWEsU0FBUztzQkFBNUIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvclRyYW5zaXRpb25BbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtdG9nZ2xlLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbIENvbG9yVHJhbnNpdGlvbkFuaW1hdGlvbiBdXG59KVxuZXhwb3J0IGNsYXNzIEJzVG9nZ2xlQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgZGlzYWJsZUFuaW1hdGlvbnMgPSB0cnVlO1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5kaXNhYmxlQW5pbWF0aW9ucyA9IGZhbHNlO1xuICB9XG5cbiAgLy8jcmVnaW9uIGlzVG9nZ2xlZFxuICBfaXNUb2dnbGVkOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcHVibGljIGlzVG9nZ2xlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbiB8IG51bGw+KCk7XG4gIHB1YmxpYyBnZXQgaXNUb2dnbGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RvZ2dsZWQ7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBpc1RvZ2dsZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgdGhpcy5faXNUb2dnbGVkID0gdmFsdWU7XG4gICAgdGhpcy5pc1RvZ2dsZWRDaGFuZ2UuZW1pdCh0aGlzLl9pc1RvZ2dsZWQpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBJbnB1dCgpIHB1YmxpYyBvZmZDb2xvciA9ICcjQ0NDQ0NDJztcbiAgQElucHV0KCkgcHVibGljIG9uQ29sb3IgPSAnIzIxOTZGMyc7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3VuZCA9IHRydWU7XG5cbn1cbiIsIjxsYWJlbCAoY2xpY2spPVwiaXNUb2dnbGVkID0gIWlzVG9nZ2xlZFwiIGNsYXNzPVwic3dpdGNoXCIgW2NsYXNzLmNoZWNrZWRdPVwiaXNUb2dnbGVkXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzbGlkZXJcIiBbY2xhc3Mucm91bmRdPVwicm91bmRcIiBbQGNvbG9yVHJhbnNpdGlvbl09XCJ7IHZhbHVlOiBpc1RvZ2dsZWQgPyAnY29sb3IyJyA6ICdjb2xvcjEnLCBwYXJhbXM6IHsgY29sb3IxOiBvZmZDb2xvciwgY29sb3IyOiBvbkNvbG9yLCAnZHVyYXRpb24nOiAnLjRzJyB9IH1cIj48L3NwYW4+XG48L2xhYmVsPiJdfQ==