@mintplayer/ng-bootstrap 13.1.7 → 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 (115) 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 +57 -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 +26 -6
  12. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +40 -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/index.mjs +15 -7
  16. package/esm2020/lib/components/multiselect/multiselect.component.mjs +8 -5
  17. package/esm2020/lib/components/multiselect/multiselect.module.mjs +8 -4
  18. package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +4 -3
  19. package/esm2020/lib/components/pagination/index.mjs +3 -0
  20. package/esm2020/lib/components/progress-bar/index.mjs +4 -0
  21. package/esm2020/lib/components/progress-bar/progress/progress.component.mjs +27 -0
  22. package/esm2020/lib/components/progress-bar/progress-bar/progress-bar.component.mjs +121 -0
  23. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +31 -0
  24. package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +28 -12
  25. package/esm2020/lib/components/select2/component/select2.component.mjs +96 -0
  26. package/esm2020/lib/components/select2/directive/item-template.directive.mjs +20 -0
  27. package/esm2020/lib/components/select2/index.mjs +4 -0
  28. package/esm2020/lib/components/select2/select2.module.mjs +43 -0
  29. package/esm2020/lib/components/snackbar/component/snackbar.component.mjs +35 -0
  30. package/esm2020/lib/components/snackbar/directives/index.mjs +2 -0
  31. package/esm2020/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.mjs +27 -0
  32. package/esm2020/lib/components/snackbar/index.mjs +6 -0
  33. package/esm2020/lib/components/snackbar/interfaces/index.mjs +2 -0
  34. package/esm2020/lib/components/snackbar/interfaces/snackbar-animation-meta.mjs +2 -0
  35. package/esm2020/lib/components/snackbar/providers/snackbar-content.provider.mjs +3 -0
  36. package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +50 -0
  37. package/esm2020/lib/components/snackbar/snackbar.module.mjs +38 -0
  38. package/esm2020/lib/components/toggle-button/index.mjs +3 -0
  39. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +42 -0
  40. package/esm2020/lib/components/toggle-button/toggle-button.module.mjs +26 -0
  41. package/esm2020/lib/components/tooltip/component/tooltip.component.mjs +25 -0
  42. package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +104 -0
  43. package/esm2020/lib/components/tooltip/index.mjs +4 -0
  44. package/esm2020/lib/components/tooltip/providers/tooltip-content.provider.mjs +3 -0
  45. package/esm2020/lib/components/tooltip/tooltip.module.mjs +29 -0
  46. package/esm2020/lib/components/typeahead/index.mjs +3 -0
  47. package/esm2020/lib/components/typeahead/typeahead.component.mjs +90 -0
  48. package/esm2020/lib/components/typeahead/typeahead.module.mjs +38 -0
  49. package/esm2020/lib/enums/index.mjs +2 -1
  50. package/esm2020/lib/enums/position.enum.mjs +8 -0
  51. package/esm2020/lib/pipes/font-color/font-color.module.mjs +26 -0
  52. package/esm2020/lib/pipes/font-color/font-color.pipe.mjs +26 -0
  53. package/esm2020/lib/pipes/font-color/index.mjs +3 -0
  54. package/esm2020/lib/pipes/in-list/in-list.module.mjs +26 -0
  55. package/esm2020/lib/pipes/in-list/in-list.pipe.mjs +16 -0
  56. package/esm2020/lib/pipes/index.mjs +2 -0
  57. package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +12 -14
  58. package/esm2020/lib/services/scroll-offset/scroll-offset.service.mjs +31 -0
  59. package/fesm2015/mintplayer-ng-bootstrap.mjs +1434 -393
  60. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  61. package/fesm2020/mintplayer-ng-bootstrap.mjs +1419 -390
  62. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  63. package/index.d.ts +1 -0
  64. package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -0
  65. package/lib/components/carousel/carousel/carousel.component.d.ts +4 -1
  66. package/lib/components/context-menu/context-menu.directive.d.ts +16 -0
  67. package/lib/components/context-menu/context-menu.module.d.ts +8 -0
  68. package/lib/components/context-menu/index.d.ts +2 -0
  69. package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +9 -2
  70. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +6 -3
  71. package/lib/components/dropdown/dropdown.module.d.ts +2 -1
  72. package/lib/components/index.d.ts +14 -6
  73. package/lib/components/multiselect/multiselect.component.d.ts +3 -2
  74. package/lib/components/multiselect/multiselect.module.d.ts +2 -1
  75. package/lib/components/pagination/index.d.ts +2 -0
  76. package/lib/components/progress-bar/index.d.ts +3 -0
  77. package/lib/components/progress-bar/progress/progress.component.d.ts +8 -0
  78. package/lib/components/progress-bar/progress-bar/progress-bar.component.d.ts +31 -0
  79. package/lib/components/progress-bar/progress-bar.module.d.ts +9 -0
  80. package/lib/components/scrollspy/component/scrollspy.component.d.ts +6 -4
  81. package/lib/components/select2/component/select2.component.d.ts +30 -0
  82. package/lib/components/select2/directive/item-template.directive.d.ts +9 -0
  83. package/lib/components/select2/index.d.ts +3 -0
  84. package/lib/components/select2/select2.module.d.ts +12 -0
  85. package/lib/components/snackbar/component/snackbar.component.d.ts +16 -0
  86. package/lib/components/snackbar/directives/index.d.ts +1 -0
  87. package/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.d.ts +11 -0
  88. package/lib/components/snackbar/index.d.ts +5 -0
  89. package/lib/components/snackbar/interfaces/index.d.ts +1 -0
  90. package/lib/components/snackbar/interfaces/snackbar-animation-meta.d.ts +7 -0
  91. package/lib/components/snackbar/providers/snackbar-content.provider.d.ts +2 -0
  92. package/lib/components/snackbar/service/snackbar.service.d.ts +14 -0
  93. package/lib/components/snackbar/snackbar.module.d.ts +9 -0
  94. package/lib/components/toggle-button/index.d.ts +2 -0
  95. package/lib/components/toggle-button/toggle-button.component.d.ts +15 -0
  96. package/lib/components/toggle-button/toggle-button.module.d.ts +8 -0
  97. package/lib/components/tooltip/component/tooltip.component.d.ts +11 -0
  98. package/lib/components/tooltip/directive/tooltip.directive.d.ts +19 -0
  99. package/lib/components/tooltip/index.d.ts +2 -0
  100. package/lib/components/tooltip/providers/tooltip-content.provider.d.ts +2 -0
  101. package/lib/components/tooltip/tooltip.module.d.ts +9 -0
  102. package/lib/components/typeahead/index.d.ts +2 -0
  103. package/lib/components/typeahead/typeahead.component.d.ts +29 -0
  104. package/lib/components/typeahead/typeahead.module.d.ts +11 -0
  105. package/lib/enums/index.d.ts +1 -0
  106. package/lib/enums/position.enum.d.ts +6 -0
  107. package/lib/pipes/font-color/font-color.module.d.ts +8 -0
  108. package/lib/pipes/font-color/font-color.pipe.d.ts +7 -0
  109. package/lib/pipes/font-color/index.d.ts +2 -0
  110. package/lib/pipes/in-list/in-list.module.d.ts +8 -0
  111. package/lib/pipes/in-list/in-list.pipe.d.ts +7 -0
  112. package/lib/pipes/index.d.ts +1 -0
  113. package/lib/services/calendar-month/calendar-month.service.d.ts +0 -1
  114. package/lib/services/scroll-offset/scroll-offset.service.d.ts +9 -0
  115. package/package.json +4 -2
@@ -1,17 +1,119 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, NgModule, Injectable, Pipe, EventEmitter, Output, Directive, ContentChildren, ViewChild, Optional, forwardRef, SkipSelf, Host, Inject, TemplateRef, ContentChild, HostListener } from '@angular/core';
2
+ import { Component, ContentChildren, NgModule, Input, Injectable, Pipe, EventEmitter, Output, Directive, HostBinding, Host, SkipSelf, HostListener, forwardRef, PLATFORM_ID, Inject, ContentChild, TemplateRef, ViewChild, Optional, ViewChildren, InjectionToken, Injector } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
- import { SlideUpDownAnimation, FadeInOutAnimation, CarouselSlideAnimation } from '@mintplayer/ng-animations';
5
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
+ import { SlideUpDownAnimation, FadeInOutAnimation, CarouselSlideAnimation, ColorTransitionAnimation } from '@mintplayer/ng-animations';
6
7
  import { Subject, BehaviorSubject, map, takeUntil, filter, take, Observable, combineLatest } from 'rxjs';
7
8
  import { map as map$1, takeUntil as takeUntil$1, take as take$1 } from 'rxjs/operators';
8
- import { RouterModule } from '@angular/router';
9
- import * as i1$1 from '@mintplayer/ng-click-outside';
10
- import { ClickOutsideModule } from '@mintplayer/ng-click-outside';
11
- import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
12
- import { TemplatePortal } from '@angular/cdk/portal';
13
- import * as i1$2 from '@angular/cdk/overlay';
9
+ import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
10
+ import * as i1$1 from '@angular/cdk/overlay';
14
11
  import { OverlayModule } from '@angular/cdk/overlay';
12
+ import * as i1$2 from '@mintplayer/ng-click-outside';
13
+ import { ClickOutsideDirective, ClickOutsideModule } from '@mintplayer/ng-click-outside';
14
+ import { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';
15
+ import { RouterModule, ROUTER_CONFIGURATION } from '@angular/router';
16
+ import * as i3 from '@angular/forms';
17
+ import { FormsModule } from '@angular/forms';
18
+
19
+ class BsAccordionTabComponent {
20
+ constructor(accordion) {
21
+ this.accordion = accordion;
22
+ }
23
+ ngOnInit() {
24
+ }
25
+ headerClicked(event) {
26
+ if (this.accordion.activeTab === this) {
27
+ this.accordion.activeTab = null;
28
+ }
29
+ else {
30
+ this.accordion.activeTab = this;
31
+ }
32
+ }
33
+ }
34
+ BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
35
+ BsAccordionTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionTabComponent, selector: "bs-accordion-tab", ngImport: i0, template: "<div class=\"card\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"card-block overflow-hidden\" [@slideUpDown] *ngIf=\"accordion.activeTab === this\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [SlideUpDownAnimation] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'bs-accordion-tab', animations: [SlideUpDownAnimation], template: "<div class=\"card\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"card-block overflow-hidden\" [@slideUpDown] *ngIf=\"accordion.activeTab === this\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"] }]
39
+ }], ctorParameters: function () { return [{ type: BsAccordionComponent }]; } });
40
+
41
+ class BsAccordionComponent {
42
+ constructor() {
43
+ this.activeTab = null;
44
+ }
45
+ ngOnInit() {
46
+ }
47
+ }
48
+ BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ BsAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionComponent, selector: "bs-accordion", queries: [{ propertyName: "tabPages", predicate: BsAccordionTabComponent }], ngImport: i0, template: "<ng-content></ng-content>", styles: [""] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'bs-accordion', template: "<ng-content></ng-content>", styles: [""] }]
53
+ }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
54
+ type: ContentChildren,
55
+ args: [BsAccordionTabComponent]
56
+ }] } });
57
+
58
+ class BsAccordionTabHeaderComponent {
59
+ constructor(accordionTab, accordion) {
60
+ this.accordionTab = accordionTab;
61
+ this.accordion = accordion;
62
+ }
63
+ ngOnInit() {
64
+ }
65
+ headerClicked(event) {
66
+ event.preventDefault();
67
+ if (this.accordion.activeTab === this.accordionTab) {
68
+ this.accordion.activeTab = null;
69
+ }
70
+ else {
71
+ this.accordion.activeTab = this.accordionTab;
72
+ }
73
+ }
74
+ foo(event) {
75
+ event.preventDefault();
76
+ }
77
+ }
78
+ BsAccordionTabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, deps: [{ token: BsAccordionTabComponent }, { token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
79
+ BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\" (contextmenu)=\"foo($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'bs-accordion-tab-header', template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\" (contextmenu)=\"foo($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
83
+ }], ctorParameters: function () { return [{ type: BsAccordionTabComponent }, { type: BsAccordionComponent }]; } });
84
+
85
+ class BsAccordionModule {
86
+ }
87
+ BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
88
+ BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
89
+ BsAccordionTabComponent,
90
+ BsAccordionTabHeaderComponent], imports: [CommonModule,
91
+ BrowserAnimationsModule], exports: [BsAccordionComponent,
92
+ BsAccordionTabComponent,
93
+ BsAccordionTabHeaderComponent] });
94
+ BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, imports: [[
95
+ CommonModule,
96
+ BrowserAnimationsModule
97
+ ]] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, decorators: [{
99
+ type: NgModule,
100
+ args: [{
101
+ declarations: [
102
+ BsAccordionComponent,
103
+ BsAccordionTabComponent,
104
+ BsAccordionTabHeaderComponent
105
+ ],
106
+ imports: [
107
+ CommonModule,
108
+ BrowserAnimationsModule
109
+ ],
110
+ exports: [
111
+ BsAccordionComponent,
112
+ BsAccordionTabComponent,
113
+ BsAccordionTabHeaderComponent
114
+ ]
115
+ }]
116
+ }] });
15
117
 
16
118
  var Color;
17
119
  (function (Color) {
@@ -28,6 +130,14 @@ var Color;
28
130
  Color[Color["transparent"] = 10] = "transparent";
29
131
  })(Color || (Color = {}));
30
132
 
133
+ var Position;
134
+ (function (Position) {
135
+ Position[Position["top"] = 0] = "top";
136
+ Position[Position["left"] = 1] = "left";
137
+ Position[Position["bottom"] = 2] = "bottom";
138
+ Position[Position["right"] = 3] = "right";
139
+ })(Position || (Position = {}));
140
+
31
141
  class BsAlertComponent {
32
142
  constructor() {
33
143
  this.type = Color.primary;
@@ -38,10 +148,10 @@ class BsAlertComponent {
38
148
  }
39
149
  }
40
150
  BsAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- BsAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAlertComponent, selector: "bs-alert", inputs: { type: "type" }, ngImport: i0, template: "<div class=\"mb-3 overflow-hidden\" *ngIf=\"isVisible\" [@fadeInOut]>\n <div class=\"alert mb-0\" [ngClass]=\"'alert-' + colors[type]\">\n <ng-content></ng-content>\n </div>\n</div>", styles: ["::ng-deep .alert .btn{bottom:0;display:inline-flex;align-items:center}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [SlideUpDownAnimation, FadeInOutAnimation] });
151
+ BsAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAlertComponent, selector: "bs-alert", inputs: { type: "type" }, ngImport: i0, template: "<div class=\"mb-3 overflow-hidden\" *ngIf=\"isVisible\" [@fadeInOut]>\n <div class=\"alert mb-0\" [ngClass]=\"'alert-' + colors[type]\">\n <ng-content></ng-content>\n </div>\n</div>", styles: ["::ng-deep .alert .btn{bottom:0;display:inline-flex;align-items:center}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [FadeInOutAnimation] });
42
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAlertComponent, decorators: [{
43
153
  type: Component,
44
- args: [{ selector: 'bs-alert', animations: [SlideUpDownAnimation, FadeInOutAnimation], template: "<div class=\"mb-3 overflow-hidden\" *ngIf=\"isVisible\" [@fadeInOut]>\n <div class=\"alert mb-0\" [ngClass]=\"'alert-' + colors[type]\">\n <ng-content></ng-content>\n </div>\n</div>", styles: ["::ng-deep .alert .btn{bottom:0;display:inline-flex;align-items:center}\n"] }]
154
+ args: [{ selector: 'bs-alert', animations: [FadeInOutAnimation], template: "<div class=\"mb-3 overflow-hidden\" *ngIf=\"isVisible\" [@fadeInOut]>\n <div class=\"alert mb-0\" [ngClass]=\"'alert-' + colors[type]\">\n <ng-content></ng-content>\n </div>\n</div>", styles: ["::ng-deep .alert .btn{bottom:0;display:inline-flex;align-items:center}\n"] }]
45
155
  }], ctorParameters: function () { return []; }, propDecorators: { type: [{
46
156
  type: Input
47
157
  }] } });
@@ -85,63 +195,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
85
195
  }]
86
196
  }] });
87
197
 
88
- class BsCardComponent {
89
- constructor() {
90
- }
91
- ngOnInit() {
92
- }
93
- ngAfterViewInit() {
94
- }
95
- }
96
- BsCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
- BsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCardComponent, selector: "bs-card", ngImport: i0, template: "<div class=\"card\" style=\"width: 18rem;\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-block\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card-block{margin:-1px}\n"] });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardComponent, decorators: [{
99
- type: Component,
100
- args: [{ selector: 'bs-card', template: "<div class=\"card\" style=\"width: 18rem;\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-block\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card-block{margin:-1px}\n"] }]
101
- }], ctorParameters: function () { return []; } });
102
-
103
- class BsCardHeaderComponent {
104
- constructor() {
105
- }
106
- ngOnInit() {
107
- }
108
- }
109
- BsCardHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
- BsCardHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCardHeaderComponent, selector: "bs-card-header", ngImport: i0, template: "<div class=\"card-header\">\n <ng-content></ng-content>\n</div>", styles: [""] });
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardHeaderComponent, decorators: [{
112
- type: Component,
113
- args: [{ selector: 'bs-card-header', template: "<div class=\"card-header\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
114
- }], ctorParameters: function () { return []; } });
115
-
116
- class BsCardModule {
117
- }
118
- BsCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
119
- BsCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, declarations: [BsCardComponent,
120
- BsCardHeaderComponent], imports: [CommonModule], exports: [BsCardComponent,
121
- BsCardHeaderComponent] });
122
- BsCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, imports: [[CommonModule]] });
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, decorators: [{
124
- type: NgModule,
125
- args: [{
126
- imports: [CommonModule],
127
- declarations: [
128
- BsCardComponent,
129
- BsCardHeaderComponent
130
- ],
131
- exports: [
132
- BsCardComponent,
133
- BsCardHeaderComponent
134
- ]
135
- }]
136
- }] });
137
-
138
198
  class BsCalendarMonthService {
139
- constructor() {
140
- }
141
199
  getWeeks(month) {
142
- let firstAndLast = this.getFirstAndLastDayOfMonth(month);
143
- let days = this.dateDiff(firstAndLast.first, firstAndLast.last) + 1;
144
- let allDays = [
200
+ const firstAndLast = this.getFirstAndLastDayOfMonth(month);
201
+ const days = this.dateDiff(firstAndLast.first, firstAndLast.last) + 1;
202
+ const allDays = [
145
203
  ...this.generateList(this.dayOfWeekMondayBased(firstAndLast.first)).map(d => null),
146
204
  ...this.generateList(days).map(d => {
147
205
  return {
@@ -151,8 +209,8 @@ class BsCalendarMonthService {
151
209
  }),
152
210
  ...this.generateList(6 - this.dayOfWeekMondayBased(firstAndLast.last)).map(d => null),
153
211
  ];
154
- let weeks = this.chunk(allDays, 7);
155
- let weeksMapped = weeks.map((w, i) => {
212
+ const weeks = this.chunk(allDays, 7);
213
+ const weeksMapped = weeks.map((w, i) => {
156
214
  var _a;
157
215
  return {
158
216
  number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), (_a = w.find(d => d !== null)) === null || _a === void 0 ? void 0 : _a.dayOfMonth)),
@@ -165,7 +223,7 @@ class BsCalendarMonthService {
165
223
  return [...Array(count).keys()];
166
224
  }
167
225
  dayOfWeekMondayBased(date) {
168
- let d = date.getDay() - 1;
226
+ const d = date.getDay() - 1;
169
227
  if (d < 0) {
170
228
  return 6;
171
229
  }
@@ -174,10 +232,10 @@ class BsCalendarMonthService {
174
232
  }
175
233
  }
176
234
  weekOfYear(date) {
177
- let dateClone = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
235
+ const dateClone = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
178
236
  dateClone.setUTCDate(dateClone.getUTCDate() + 4 - (dateClone.getUTCDay() || 7));
179
- let yearStart = new Date(Date.UTC(dateClone.getUTCFullYear(), 0, 1));
180
- let utcDiff = this.toUTC(dateClone) - this.toUTC(yearStart);
237
+ const yearStart = new Date(Date.UTC(dateClone.getUTCFullYear(), 0, 1));
238
+ const utcDiff = this.toUTC(dateClone) - this.toUTC(yearStart);
181
239
  return Math.ceil((utcDiff / (1000 * 60 * 60 * 24) + 1) / 7);
182
240
  }
183
241
  getFirstAndLastDayOfMonth(date) {
@@ -200,7 +258,7 @@ class BsCalendarMonthService {
200
258
  return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
201
259
  }
202
260
  chunk(items, size) {
203
- let result = [];
261
+ const result = [];
204
262
  for (let i = 0; i < items.length; i += size) {
205
263
  result.push(items.slice(i, i + size));
206
264
  }
@@ -214,7 +272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
214
272
  args: [{
215
273
  providedIn: 'root'
216
274
  }]
217
- }], ctorParameters: function () { return []; } });
275
+ }] });
218
276
 
219
277
  class UcFirstPipe {
220
278
  transform(value, ...args) {
@@ -456,6 +514,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
456
514
  }]
457
515
  }] });
458
516
 
517
+ class BsCardComponent {
518
+ constructor() {
519
+ }
520
+ ngOnInit() {
521
+ }
522
+ ngAfterViewInit() {
523
+ }
524
+ }
525
+ BsCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
526
+ BsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCardComponent, selector: "bs-card", ngImport: i0, template: "<div class=\"card\" style=\"width: 18rem;\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-block\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card-block{margin:-1px}\n"] });
527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardComponent, decorators: [{
528
+ type: Component,
529
+ args: [{ selector: 'bs-card', template: "<div class=\"card\" style=\"width: 18rem;\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-block\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card-block{margin:-1px}\n"] }]
530
+ }], ctorParameters: function () { return []; } });
531
+
532
+ class BsCardHeaderComponent {
533
+ constructor() {
534
+ }
535
+ ngOnInit() {
536
+ }
537
+ }
538
+ BsCardHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
539
+ BsCardHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCardHeaderComponent, selector: "bs-card-header", ngImport: i0, template: "<div class=\"card-header\">\n <ng-content></ng-content>\n</div>", styles: [""] });
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardHeaderComponent, decorators: [{
541
+ type: Component,
542
+ args: [{ selector: 'bs-card-header', template: "<div class=\"card-header\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
543
+ }], ctorParameters: function () { return []; } });
544
+
545
+ class BsCardModule {
546
+ }
547
+ BsCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
548
+ BsCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, declarations: [BsCardComponent,
549
+ BsCardHeaderComponent], imports: [CommonModule], exports: [BsCardComponent,
550
+ BsCardHeaderComponent] });
551
+ BsCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, imports: [[CommonModule]] });
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardModule, decorators: [{
553
+ type: NgModule,
554
+ args: [{
555
+ imports: [CommonModule],
556
+ declarations: [
557
+ BsCardComponent,
558
+ BsCardHeaderComponent
559
+ ],
560
+ exports: [
561
+ BsCardComponent,
562
+ BsCardHeaderComponent
563
+ ]
564
+ }]
565
+ }] });
566
+
459
567
  class BsCarouselImageDirective {
460
568
  constructor(templateRef) {
461
569
  this.templateRef = templateRef;
@@ -473,9 +581,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
473
581
 
474
582
  class BsCarouselComponent {
475
583
  constructor() {
476
- // @HostBinding('@.disabled')
477
- // public animationsDisabled = false;
478
- this.animation = 'slide';
584
+ this.animationsDisabled = false;
585
+ //#region Animation
586
+ this._animation = 'slide';
587
+ //#endregion
479
588
  this.destroyed$ = new Subject();
480
589
  this.currentImageCounter$ = new BehaviorSubject(-1);
481
590
  this.currentImageIndex$ = this.currentImageCounter$
@@ -500,6 +609,16 @@ class BsCarouselComponent {
500
609
  this.currentImageCounter$.next(-1);
501
610
  }
502
611
  }
612
+ set animation(value) {
613
+ this.animationsDisabled = true;
614
+ this._animation = value;
615
+ setTimeout(() => {
616
+ this.animationsDisabled = false;
617
+ }, 20);
618
+ }
619
+ get animation() {
620
+ return this._animation;
621
+ }
503
622
  previousImage() {
504
623
  this.currentImageCounter$
505
624
  .pipe(take$1(1))
@@ -523,11 +642,14 @@ class BsCarouselComponent {
523
642
  }
524
643
  }
525
644
  BsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
526
- BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCarouselComponent, selector: "bs-carousel", inputs: { animation: "animation" }, queries: [{ propertyName: "images", predicate: BsCarouselImageDirective }], ngImport: i0, template: "<div class=\"carousel slide\">\n <div class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n</div>", styles: [".carousel{min-height:100px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i1.AsyncPipe }, animations: [FadeInOutAnimation, CarouselSlideAnimation] });
645
+ BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCarouselComponent, selector: "bs-carousel", inputs: { animation: "animation" }, host: { properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "images", predicate: BsCarouselImageDirective }], ngImport: i0, template: "<div class=\"carousel slide\">\n <div class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n</div>", styles: [".carousel{min-height:100px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i1.AsyncPipe }, animations: [FadeInOutAnimation, CarouselSlideAnimation] });
527
646
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCarouselComponent, decorators: [{
528
647
  type: Component,
529
648
  args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation, CarouselSlideAnimation], template: "<div class=\"carousel slide\">\n <div class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n</div>", styles: [".carousel{min-height:100px}\n"] }]
530
- }], ctorParameters: function () { return []; }, propDecorators: { animation: [{
649
+ }], ctorParameters: function () { return []; }, propDecorators: { animationsDisabled: [{
650
+ type: HostBinding,
651
+ args: ['@.disabled']
652
+ }], animation: [{
531
653
  type: Input
532
654
  }], images: [{
533
655
  type: ContentChildren,
@@ -560,6 +682,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
560
682
  }]
561
683
  }] });
562
684
 
685
+ class BsContextMenuDirective {
686
+ constructor(overlay, templateRef, viewContainerRef, element) {
687
+ this.overlay = overlay;
688
+ this.templateRef = templateRef;
689
+ this.viewContainerRef = viewContainerRef;
690
+ this.element = element;
691
+ this.overlayRef = null;
692
+ this.templatePortal = null;
693
+ this.element.nativeElement.oncontextmenu = (ev) => {
694
+ ev.preventDefault();
695
+ this.checkAndCloseExisting(ev);
696
+ this.overlayRef = this.overlay.create({
697
+ scrollStrategy: this.overlay.scrollStrategies.noop(),
698
+ positionStrategy: this.overlay.position()
699
+ .global()
700
+ .left(ev.x + 'px')
701
+ .bottom((window.innerHeight - ev.y) + 'px')
702
+ .top(ev.y + 'px')
703
+ });
704
+ this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
705
+ this.overlayRef.attach(this.templatePortal);
706
+ };
707
+ }
708
+ clickAnywhere(ev) {
709
+ this.checkAndCloseExisting(ev);
710
+ }
711
+ checkAndCloseExisting(ev) {
712
+ if (this.overlayRef) {
713
+ if (!this.overlayRef.overlayElement.contains(ev.target)) {
714
+ this.overlayRef.detach();
715
+ this.overlayRef.dispose();
716
+ this.overlayRef = null;
717
+ }
718
+ }
719
+ }
720
+ }
721
+ BsContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuDirective, deps: [{ token: i1$1.Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ElementRef, host: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
722
+ BsContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsContextMenuDirective, selector: "[bsContextMenu]", host: { listeners: { "document:click": "clickAnywhere($event)" } }, ngImport: i0 });
723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuDirective, decorators: [{
724
+ type: Directive,
725
+ args: [{
726
+ selector: '[bsContextMenu]'
727
+ }]
728
+ }], ctorParameters: function () {
729
+ return [{ type: i1$1.Overlay }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ElementRef, decorators: [{
730
+ type: Host
731
+ }, {
732
+ type: SkipSelf
733
+ }] }];
734
+ }, propDecorators: { clickAnywhere: [{
735
+ type: HostListener,
736
+ args: ['document:click', ['$event']]
737
+ }] } });
738
+
739
+ class BsContextMenuModule {
740
+ }
741
+ BsContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
742
+ BsContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, declarations: [BsContextMenuDirective], imports: [CommonModule], exports: [BsContextMenuDirective] });
743
+ BsContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, imports: [[
744
+ CommonModule
745
+ ]] });
746
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, decorators: [{
747
+ type: NgModule,
748
+ args: [{
749
+ declarations: [
750
+ BsContextMenuDirective
751
+ ],
752
+ imports: [
753
+ CommonModule
754
+ ],
755
+ exports: [
756
+ BsContextMenuDirective
757
+ ]
758
+ }]
759
+ }] });
760
+
563
761
  class BsDatatableColumnDirective {
564
762
  constructor(templateRef) {
565
763
  this.bsDatatableColumn = { name: '', sortable: true };
@@ -870,21 +1068,253 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
870
1068
  }]
871
1069
  }] });
872
1070
 
873
- class BsListGroupItemComponent {
874
- constructor() {
875
- }
876
- ngOnInit() {
877
- }
878
- }
879
- BsListGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsListGroupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
880
- BsListGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsListGroupItemComponent, selector: "bs-list-group-item", ngImport: i0, template: "<li class=\"list-group-item\">\n <ng-content></ng-content>\n</li>", styles: [".list-group-item{margin-bottom:-1px}\n"] });
881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsListGroupItemComponent, decorators: [{
882
- type: Component,
883
- args: [{ selector: 'bs-list-group-item', template: "<li class=\"list-group-item\">\n <ng-content></ng-content>\n</li>", styles: [".list-group-item{margin-bottom:-1px}\n"] }]
884
- }], ctorParameters: function () { return []; } });
885
-
886
- class BsListGroupComponent {
887
- constructor() {
1071
+ class BsDropdownMenuDirective extends ClickOutsideDirective {
1072
+ constructor(dropdown, document, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1073
+ super(elementRef, zone, platformId);
1074
+ this.dropdown = dropdown;
1075
+ this.viewContainerRef = viewContainerRef;
1076
+ this.templateRef = templateRef;
1077
+ this.overlay = overlay;
1078
+ this.wait = false;
1079
+ this.destroyed$ = new Subject();
1080
+ this.overlayRef = null;
1081
+ this.templatePortal = null;
1082
+ this.document = document;
1083
+ this.dropdown.isOpen$
1084
+ .pipe(takeUntil(this.destroyed$))
1085
+ .subscribe((isOpen) => {
1086
+ if (isOpen) {
1087
+ this.wait = true;
1088
+ setTimeout(() => this.wait = false, 100);
1089
+ this.overlayRef = this.overlay.create({
1090
+ hasBackdrop: this.dropdown.hasBackdrop,
1091
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
1092
+ positionStrategy: this.overlay.position()
1093
+ .flexibleConnectedTo(!this.dropdown.toggle ? dropdown.elementRef : this.dropdown.toggle.toggleButton)
1094
+ .withPositions([
1095
+ { originX: "start", originY: "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
1096
+ { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
1097
+ ]),
1098
+ });
1099
+ if (this.dropdown.hasBackdrop && this.dropdown.closeOnClickOutside) {
1100
+ this.overlayRef.backdropClick().subscribe(() => {
1101
+ this.dropdown.isOpen = false;
1102
+ });
1103
+ }
1104
+ this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
1105
+ this.overlayRef.attach(this.templatePortal);
1106
+ }
1107
+ else {
1108
+ if (this.overlayRef) {
1109
+ this.overlayRef.detach();
1110
+ this.overlayRef.dispose();
1111
+ this.overlayRef = null;
1112
+ }
1113
+ }
1114
+ });
1115
+ }
1116
+ clickedOutside(ev) {
1117
+ var _a;
1118
+ if (!this.wait) {
1119
+ if (!((_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.overlayElement.contains(ev.target))) {
1120
+ this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {
1121
+ if (isOpen && !this.dropdown.hasBackdrop && this.dropdown.closeOnClickOutside) {
1122
+ this.dropdown.isOpen = false;
1123
+ }
1124
+ });
1125
+ }
1126
+ }
1127
+ }
1128
+ }
1129
+ BsDropdownMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: forwardRef(() => BsDropdownDirective) }, { token: DOCUMENT }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
1130
+ BsDropdownMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]", host: { listeners: { "clickOutside": "clickedOutside($event)" }, properties: { "class.show": "dropdown.isOpen" } }, usesInheritance: true, ngImport: i0 });
1131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1132
+ type: Directive,
1133
+ args: [{
1134
+ selector: '[bsDropdownMenu]',
1135
+ host: {
1136
+ '[class.show]': 'dropdown.isOpen',
1137
+ },
1138
+ }]
1139
+ }], ctorParameters: function () {
1140
+ return [{ type: BsDropdownDirective, decorators: [{
1141
+ type: Inject,
1142
+ args: [forwardRef(() => BsDropdownDirective)]
1143
+ }] }, { type: undefined, decorators: [{
1144
+ type: Inject,
1145
+ args: [DOCUMENT]
1146
+ }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{
1147
+ type: Inject,
1148
+ args: [PLATFORM_ID]
1149
+ }] }];
1150
+ }, propDecorators: { clickedOutside: [{
1151
+ type: HostListener,
1152
+ args: ['clickOutside', ['$event']]
1153
+ }] } });
1154
+
1155
+ class BsDropdownToggleDirective {
1156
+ constructor(dropdown, toggleButton) {
1157
+ this.dropdown = dropdown;
1158
+ this.toggleButton = toggleButton;
1159
+ }
1160
+ onClick() {
1161
+ this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {
1162
+ this.dropdown.isOpen$.next(!isOpen);
1163
+ });
1164
+ }
1165
+ }
1166
+ BsDropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, deps: [{ token: BsDropdownDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1167
+ BsDropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
1168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, decorators: [{
1169
+ type: Directive,
1170
+ args: [{
1171
+ selector: '[bsDropdownToggle]'
1172
+ }]
1173
+ }], ctorParameters: function () { return [{ type: BsDropdownDirective }, { type: i0.ElementRef }]; }, propDecorators: { onClick: [{
1174
+ type: HostListener,
1175
+ args: ['click']
1176
+ }] } });
1177
+
1178
+ class BsDropdownDirective {
1179
+ constructor(elementRef) {
1180
+ this.isOpen$ = new BehaviorSubject(false);
1181
+ this.toggle = null;
1182
+ this.hasBackdrop = false;
1183
+ this.sameWidth = false;
1184
+ this.closeOnClickOutside = false;
1185
+ this.isOpenChange = new EventEmitter();
1186
+ this.elementRef = elementRef;
1187
+ }
1188
+ //#region IsOpen
1189
+ get isOpen() {
1190
+ return this.isOpen$.value;
1191
+ }
1192
+ set isOpen(value) {
1193
+ if (this.isOpen$.value !== value) {
1194
+ this.isOpen$.next(value);
1195
+ this.isOpenChange.emit(value);
1196
+ }
1197
+ }
1198
+ }
1199
+ BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1200
+ BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", sameWidth: "sameWidth", closeOnClickOutside: "closeOnClickOutside", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, decorators: [{
1202
+ type: Directive,
1203
+ args: [{
1204
+ selector: '[bsDropdown]'
1205
+ }]
1206
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { menu: [{
1207
+ type: ContentChild,
1208
+ args: [BsDropdownMenuDirective, { static: false }]
1209
+ }], toggle: [{
1210
+ type: ContentChild,
1211
+ args: [BsDropdownToggleDirective, { static: false }]
1212
+ }], hasBackdrop: [{
1213
+ type: Input
1214
+ }], sameWidth: [{
1215
+ type: Input
1216
+ }], closeOnClickOutside: [{
1217
+ type: Input
1218
+ }], isOpenChange: [{
1219
+ type: Output
1220
+ }], isOpen: [{
1221
+ type: Input
1222
+ }] } });
1223
+
1224
+ class BsDatepickerComponent {
1225
+ constructor() {
1226
+ this.selectedDate = new Date();
1227
+ this.currentMonth = new Date();
1228
+ }
1229
+ ngOnInit() {
1230
+ }
1231
+ }
1232
+ BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1233
+ BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatepickerComponent, selector: "bs-datepicker", ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""], components: [{ type: BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i1.DatePipe } });
1234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1235
+ type: Component,
1236
+ args: [{ selector: 'bs-datepicker', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""] }]
1237
+ }], ctorParameters: function () { return []; } });
1238
+
1239
+ class BsDropdownModule {
1240
+ }
1241
+ BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1242
+ BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1243
+ BsDropdownToggleDirective,
1244
+ BsDropdownMenuDirective], imports: [CommonModule,
1245
+ OverlayModule,
1246
+ ClickOutsideModule], exports: [BsDropdownDirective,
1247
+ BsDropdownToggleDirective,
1248
+ BsDropdownMenuDirective] });
1249
+ BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1250
+ CommonModule,
1251
+ OverlayModule,
1252
+ ClickOutsideModule
1253
+ ]] });
1254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
1255
+ type: NgModule,
1256
+ args: [{
1257
+ declarations: [
1258
+ BsDropdownDirective,
1259
+ BsDropdownToggleDirective,
1260
+ BsDropdownMenuDirective
1261
+ ],
1262
+ imports: [
1263
+ CommonModule,
1264
+ OverlayModule,
1265
+ ClickOutsideModule
1266
+ ],
1267
+ exports: [
1268
+ BsDropdownDirective,
1269
+ BsDropdownToggleDirective,
1270
+ BsDropdownMenuDirective
1271
+ ]
1272
+ }]
1273
+ }] });
1274
+
1275
+ class BsDatepickerModule {
1276
+ }
1277
+ BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1278
+ BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1279
+ BsCalendarModule,
1280
+ BsDropdownModule], exports: [BsDatepickerComponent] });
1281
+ BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1282
+ CommonModule,
1283
+ BsCalendarModule,
1284
+ BsDropdownModule
1285
+ ]] });
1286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
1287
+ type: NgModule,
1288
+ args: [{
1289
+ declarations: [
1290
+ BsDatepickerComponent
1291
+ ],
1292
+ imports: [
1293
+ CommonModule,
1294
+ BsCalendarModule,
1295
+ BsDropdownModule
1296
+ ],
1297
+ exports: [
1298
+ BsDatepickerComponent
1299
+ ]
1300
+ }]
1301
+ }] });
1302
+
1303
+ class BsListGroupItemComponent {
1304
+ constructor() {
1305
+ }
1306
+ ngOnInit() {
1307
+ }
1308
+ }
1309
+ BsListGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsListGroupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1310
+ BsListGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsListGroupItemComponent, selector: "bs-list-group-item", ngImport: i0, template: "<li class=\"list-group-item\">\n <ng-content></ng-content>\n</li>", styles: [".list-group-item{margin-bottom:-1px}\n"] });
1311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsListGroupItemComponent, decorators: [{
1312
+ type: Component,
1313
+ args: [{ selector: 'bs-list-group-item', template: "<li class=\"list-group-item\">\n <ng-content></ng-content>\n</li>", styles: [".list-group-item{margin-bottom:-1px}\n"] }]
1314
+ }], ctorParameters: function () { return []; } });
1315
+
1316
+ class BsListGroupComponent {
1317
+ constructor() {
888
1318
  }
889
1319
  ngOnInit() {
890
1320
  }
@@ -921,6 +1351,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
921
1351
  }]
922
1352
  }] });
923
1353
 
1354
+ class BsMultiselectComponent {
1355
+ constructor() {
1356
+ this.items = [];
1357
+ this.selectedItems = [];
1358
+ }
1359
+ itemChange(item, event) {
1360
+ if (!!event.target.checked) {
1361
+ this.selectedItems.push(item);
1362
+ }
1363
+ else {
1364
+ this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
1365
+ }
1366
+ }
1367
+ ngOnInit() {
1368
+ }
1369
+ }
1370
+ BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1371
+ BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <hr class=\"my-2\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [".mw-250px{min-width:250px}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
1373
+ type: Component,
1374
+ args: [{ selector: 'bs-multiselect', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <hr class=\"my-2\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [".mw-250px{min-width:250px}\n"] }]
1375
+ }], ctorParameters: function () { return []; }, propDecorators: { template: [{
1376
+ type: ContentChild,
1377
+ args: [TemplateRef]
1378
+ }], items: [{
1379
+ type: Input
1380
+ }], selectedItems: [{
1381
+ type: Input
1382
+ }] } });
1383
+
1384
+ class BsMultiselectModule {
1385
+ }
1386
+ BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1387
+ BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent], imports: [CommonModule,
1388
+ BsDropdownModule,
1389
+ FocusOnLoadModule], exports: [BsMultiselectComponent] });
1390
+ BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
1391
+ CommonModule,
1392
+ BsDropdownModule,
1393
+ FocusOnLoadModule,
1394
+ ]] });
1395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, decorators: [{
1396
+ type: NgModule,
1397
+ args: [{
1398
+ declarations: [
1399
+ BsMultiselectComponent
1400
+ ],
1401
+ imports: [
1402
+ CommonModule,
1403
+ BsDropdownModule,
1404
+ FocusOnLoadModule,
1405
+ ],
1406
+ exports: [
1407
+ BsMultiselectComponent
1408
+ ]
1409
+ }]
1410
+ }] });
1411
+
924
1412
  class BsNavbarComponent {
925
1413
  constructor() {
926
1414
  this.isExpanded = false;
@@ -955,10 +1443,10 @@ class BsNavbarNavComponent {
955
1443
  }
956
1444
  }
957
1445
  BsNavbarNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarNavComponent, deps: [{ token: BsNavbarComponent }], target: i0.ɵɵFactoryTarget.Component });
958
- 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] });
1446
+ 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\" *ngIf=\"bsNavbar.isExpanded\" [@slideUpDown]>\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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [SlideUpDownAnimation] });
959
1447
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarNavComponent, decorators: [{
960
1448
  type: Component,
961
- 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"] }]
1449
+ args: [{ selector: 'bs-navbar-nav', animations: [SlideUpDownAnimation], template: "<div class=\"navbar-collapse collapse w-100 show\" *ngIf=\"bsNavbar.isExpanded\" [@slideUpDown]>\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"] }]
962
1450
  }], ctorParameters: function () { return [{ type: BsNavbarComponent }]; }, propDecorators: { collapse: [{
963
1451
  type: Input
964
1452
  }] } });
@@ -1021,7 +1509,7 @@ class BsNavbarDropdownComponent {
1021
1509
  }
1022
1510
  }
1023
1511
  BsNavbarDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarDropdownComponent, deps: [{ token: BsNavbarDropdownComponent, host: true, optional: true, skipSelf: true }, { token: forwardRef(() => BsNavbarItemComponent), host: true }], target: i0.ɵɵFactoryTarget.Component });
1024
- BsNavbarDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarDropdownComponent, selector: "bs-navbar-dropdown", queries: [{ propertyName: "childDropdowns", predicate: i0.forwardRef(function () { return BsNavbarDropdownComponent; }), descendants: true }], ngImport: i0, template: "<ul class=\"dropdown-menu\" [class.show]=\"isVisible\" [class.submenu]=\"!!parentDropdown\" (clickOutside)=\"isVisible = false\" [exclude]=\"elementsToExclude\" aria-labelledby=\"navbarDropdown\">\n <ng-content></ng-content>\n</ul>", styles: ["@media (max-width: 767px){.submenu{margin-left:.5rem;margin-right:.5rem}}@media (min-width: 768px){.submenu{position:absolute;left:100%;top:-1px}}\n"], directives: [{ type: i1$1.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
1512
+ BsNavbarDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarDropdownComponent, selector: "bs-navbar-dropdown", queries: [{ propertyName: "childDropdowns", predicate: i0.forwardRef(function () { return BsNavbarDropdownComponent; }), descendants: true }], ngImport: i0, template: "<ul class=\"dropdown-menu\" [class.show]=\"isVisible\" [class.submenu]=\"!!parentDropdown\" (clickOutside)=\"isVisible = false\" [exclude]=\"elementsToExclude\" aria-labelledby=\"navbarDropdown\">\n <ng-content></ng-content>\n</ul>", styles: ["@media (max-width: 767px){.submenu{margin-left:.5rem;margin-right:.5rem}}@media (min-width: 768px){.submenu{position:absolute;left:100%;top:-1px}}\n"], directives: [{ type: i1$2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
1025
1513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarDropdownComponent, decorators: [{
1026
1514
  type: Component,
1027
1515
  args: [{ selector: 'bs-navbar-dropdown', template: "<ul class=\"dropdown-menu\" [class.show]=\"isVisible\" [class.submenu]=\"!!parentDropdown\" (clickOutside)=\"isVisible = false\" [exclude]=\"elementsToExclude\" aria-labelledby=\"navbarDropdown\">\n <ng-content></ng-content>\n</ul>", styles: ["@media (max-width: 767px){.submenu{margin-left:.5rem;margin-right:.5rem}}@media (min-width: 768px){.submenu{position:absolute;left:100%;top:-1px}}\n"] }]
@@ -1186,166 +1674,169 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1186
1674
  }]
1187
1675
  }] });
1188
1676
 
1189
- class BsAccordionTabComponent {
1190
- constructor(accordion) {
1191
- this.accordion = accordion;
1192
- }
1193
- ngOnInit() {
1194
- }
1195
- headerClicked(event) {
1196
- if (this.accordion.activeTab === this) {
1197
- this.accordion.activeTab = null;
1198
- }
1199
- else {
1200
- this.accordion.activeTab = this;
1201
- }
1677
+ class BsProgressComponent {
1678
+ constructor() {
1679
+ this.progressClass = true;
1680
+ this.height = null;
1681
+ this.isIndeterminate = false;
1202
1682
  }
1203
1683
  }
1204
- BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
1205
- BsAccordionTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionTabComponent, selector: "bs-accordion-tab", ngImport: i0, template: "<div class=\"card\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"card-block overflow-hidden\" [@slideUpDown]=\"(accordion.activeTab === this) ? 'down' : 'up'\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"], animations: [SlideUpDownAnimation] });
1206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabComponent, decorators: [{
1684
+ BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1685
+ 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"] }] });
1686
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
1207
1687
  type: Component,
1208
- args: [{ selector: 'bs-accordion-tab', animations: [SlideUpDownAnimation], template: "<div class=\"card\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"card-block overflow-hidden\" [@slideUpDown]=\"(accordion.activeTab === this) ? 'down' : 'up'\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"] }]
1209
- }], ctorParameters: function () { return [{ type: BsAccordionComponent }]; } });
1688
+ 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"] }]
1689
+ }], propDecorators: { progressClass: [{
1690
+ type: HostBinding,
1691
+ args: ['class.progress']
1692
+ }], height: [{
1693
+ type: Input
1694
+ }, {
1695
+ type: HostBinding,
1696
+ args: ['style.height.px']
1697
+ }], isIndeterminate: [{
1698
+ type: Input
1699
+ }] } });
1210
1700
 
1211
- class BsAccordionComponent {
1701
+ class BsProgressBarComponent {
1212
1702
  constructor() {
1213
- this.activeTab = null;
1214
- }
1215
- ngOnInit() {
1703
+ this.destroyed$ = new Subject();
1704
+ this.minimum$ = new BehaviorSubject(0);
1705
+ this.maximum$ = new BehaviorSubject(100);
1706
+ this.value$ = new BehaviorSubject(50);
1707
+ this.color$ = new BehaviorSubject(Color.primary);
1708
+ this.striped = false;
1709
+ this.animated = false;
1710
+ this.progressBar = true;
1711
+ this.colorClass = 'bg-primary';
1712
+ this.widthStyle = '0';
1713
+ this.role = 'progressbar';
1714
+ this.valueNow = 50;
1715
+ this.valueMin = 0;
1716
+ this.valueMax = 100;
1717
+ this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
1718
+ .pipe(map(([minimum, maximum, value]) => {
1719
+ return (value - minimum) / (maximum - minimum) * 100;
1720
+ }));
1721
+ this.width$ = this.percentage$
1722
+ .pipe(map((width) => {
1723
+ return String(width) + '%';
1724
+ }));
1725
+ this.colorClass$ = this.color$
1726
+ .pipe(map((color) => {
1727
+ const name = Color[color];
1728
+ return `bg-${name}`;
1729
+ }));
1730
+ this.colorClass$
1731
+ .pipe(takeUntil(this.destroyed$))
1732
+ .subscribe((color) => {
1733
+ this.colorClass = color;
1734
+ });
1735
+ this.width$
1736
+ .pipe(takeUntil(this.destroyed$))
1737
+ .subscribe((width) => {
1738
+ this.widthStyle = width;
1739
+ });
1740
+ this.value$
1741
+ .pipe(takeUntil(this.destroyed$))
1742
+ .subscribe((value) => {
1743
+ this.valueNow = value;
1744
+ });
1745
+ this.minimum$
1746
+ .pipe(takeUntil(this.destroyed$))
1747
+ .subscribe((value) => {
1748
+ this.valueMin = value;
1749
+ });
1750
+ this.maximum$
1751
+ .pipe(takeUntil(this.destroyed$))
1752
+ .subscribe((value) => {
1753
+ this.valueMax = value;
1754
+ });
1216
1755
  }
1217
- }
1218
- BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1219
- BsAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionComponent, selector: "bs-accordion", queries: [{ propertyName: "tabPages", predicate: BsAccordionTabComponent }], ngImport: i0, template: "<ng-content></ng-content>", styles: [""] });
1220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, decorators: [{
1221
- type: Component,
1222
- args: [{ selector: 'bs-accordion', template: "<ng-content></ng-content>", styles: [""] }]
1223
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
1224
- type: ContentChildren,
1225
- args: [BsAccordionTabComponent]
1226
- }] } });
1227
-
1228
- class BsAccordionTabHeaderComponent {
1229
- constructor(accordionTab, accordion) {
1230
- this.accordionTab = accordionTab;
1231
- this.accordion = accordion;
1756
+ set minimum(value) {
1757
+ this.minimum$.next(value);
1232
1758
  }
1233
- ngOnInit() {
1759
+ set maximum(value) {
1760
+ this.maximum$.next(value);
1234
1761
  }
1235
- headerClicked(event) {
1236
- if (this.accordion.activeTab === this.accordionTab) {
1237
- this.accordion.activeTab = null;
1238
- }
1239
- else {
1240
- this.accordion.activeTab = this.accordionTab;
1241
- }
1762
+ set value(value) {
1763
+ this.value$.next(value);
1242
1764
  }
1243
- }
1244
- BsAccordionTabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, deps: [{ token: BsAccordionTabComponent }, { token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
1245
- BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] });
1246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
1247
- type: Component,
1248
- args: [{ selector: 'bs-accordion-tab-header', template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
1249
- }], ctorParameters: function () { return [{ type: BsAccordionTabComponent }, { type: BsAccordionComponent }]; } });
1250
-
1251
- class BsAccordionModule {
1252
- }
1253
- BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1254
- BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
1255
- BsAccordionTabComponent,
1256
- BsAccordionTabHeaderComponent], imports: [CommonModule,
1257
- BrowserAnimationsModule], exports: [BsAccordionComponent,
1258
- BsAccordionTabComponent,
1259
- BsAccordionTabHeaderComponent] });
1260
- BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, imports: [[
1261
- CommonModule,
1262
- BrowserAnimationsModule
1263
- ]] });
1264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, decorators: [{
1265
- type: NgModule,
1266
- args: [{
1267
- declarations: [
1268
- BsAccordionComponent,
1269
- BsAccordionTabComponent,
1270
- BsAccordionTabHeaderComponent
1271
- ],
1272
- imports: [
1273
- CommonModule,
1274
- BrowserAnimationsModule
1275
- ],
1276
- exports: [
1277
- BsAccordionComponent,
1278
- BsAccordionTabComponent,
1279
- BsAccordionTabHeaderComponent
1280
- ]
1281
- }]
1282
- }] });
1283
-
1284
- class BsTabPageComponent {
1285
- constructor(tabControl) {
1286
- this.disabled = false;
1287
- this.tabControl = tabControl;
1765
+ set color(value) {
1766
+ this.color$.next(value);
1288
1767
  }
1289
- ngOnInit() {
1768
+ ngOnDestroy() {
1769
+ this.destroyed$.next(true);
1290
1770
  }
1291
1771
  }
1292
- BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
1293
- BsTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTabPageComponent, selector: "bs-tab-page", inputs: { disabled: "disabled" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
1772
+ BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1773
+ 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: [""] });
1774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
1295
1775
  type: Component,
1296
- args: [{ selector: 'bs-tab-page', template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""] }]
1297
- }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { headerTemplate: [{
1298
- type: ContentChild,
1299
- args: [TemplateRef]
1300
- }], disabled: [{
1776
+ args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
1777
+ }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
1301
1778
  type: Input
1779
+ }], maximum: [{
1780
+ type: Input
1781
+ }], value: [{
1782
+ type: Input
1783
+ }], color: [{
1784
+ type: Input
1785
+ }], striped: [{
1786
+ type: Input
1787
+ }, {
1788
+ type: HostBinding,
1789
+ args: ['class.progress-bar-striped']
1790
+ }], animated: [{
1791
+ type: Input
1792
+ }, {
1793
+ type: HostBinding,
1794
+ args: ['class.progress-bar-animated']
1795
+ }], progressBar: [{
1796
+ type: HostBinding,
1797
+ args: ['class.progress-bar']
1798
+ }], colorClass: [{
1799
+ type: HostBinding,
1800
+ args: ['class']
1801
+ }], widthStyle: [{
1802
+ type: HostBinding,
1803
+ args: ['style.width']
1804
+ }], role: [{
1805
+ type: HostBinding,
1806
+ args: ['attr.role']
1807
+ }], valueNow: [{
1808
+ type: HostBinding,
1809
+ args: ['attr.aria-valuenow']
1810
+ }], valueMin: [{
1811
+ type: HostBinding,
1812
+ args: ['attr.aria-valuemin']
1813
+ }], valueMax: [{
1814
+ type: HostBinding,
1815
+ args: ['attr.aria-valuemax']
1302
1816
  }] } });
1303
1817
 
1304
- class BsTabControlComponent {
1305
- constructor() {
1306
- this.activeTab = null;
1307
- }
1308
- ngOnInit() {
1309
- }
1310
- setActiveTab(tab) {
1311
- if (!tab.disabled) {
1312
- this.activeTab = tab;
1313
- }
1314
- return false;
1315
- }
1316
- }
1317
- BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1318
- BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTabControlComponent, selector: "bs-tab-control", queries: [{ propertyName: "tabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<ul class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let tab of tabPages\">\n <li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n <a class=\"nav-link\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\" href=\"\">\n <ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n </a>\n </li>\n </ng-container>\n</ul>\n<!-- <div class=\"container\"> -->\n <ng-content></ng-content>\n<!-- </div> -->", styles: [""], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
1320
- type: Component,
1321
- args: [{ selector: 'bs-tab-control', template: "<ul class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let tab of tabPages\">\n <li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n <a class=\"nav-link\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\" href=\"\">\n <ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n </a>\n </li>\n </ng-container>\n</ul>\n<!-- <div class=\"container\"> -->\n <ng-content></ng-content>\n<!-- </div> -->", styles: [""] }]
1322
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
1323
- type: ContentChildren,
1324
- args: [BsTabPageComponent]
1325
- }] } });
1326
-
1327
- class BsTabControlModule {
1818
+ class BsProgressBarModule {
1328
1819
  }
1329
- BsTabControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1330
- BsTabControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, declarations: [BsTabControlComponent,
1331
- BsTabPageComponent], imports: [CommonModule], exports: [BsTabControlComponent,
1332
- BsTabPageComponent] });
1333
- BsTabControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, imports: [[
1820
+ BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1821
+ BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
1822
+ BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
1823
+ BsProgressComponent] });
1824
+ BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
1334
1825
  CommonModule
1335
1826
  ]] });
1336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, decorators: [{
1827
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
1337
1828
  type: NgModule,
1338
1829
  args: [{
1339
1830
  declarations: [
1340
- BsTabControlComponent,
1341
- BsTabPageComponent,
1831
+ BsProgressBarComponent,
1832
+ BsProgressComponent
1342
1833
  ],
1343
1834
  imports: [
1344
1835
  CommonModule
1345
1836
  ],
1346
1837
  exports: [
1347
- BsTabControlComponent,
1348
- BsTabPageComponent,
1838
+ BsProgressBarComponent,
1839
+ BsProgressComponent
1349
1840
  ]
1350
1841
  }]
1351
1842
  }] });
@@ -1364,19 +1855,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1364
1855
  }]
1365
1856
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
1366
1857
 
1858
+ class BsScrollOffsetService {
1859
+ constructor(routerConfig) {
1860
+ this.routerConfig = routerConfig;
1861
+ }
1862
+ getScrollOffset() {
1863
+ if (!this.routerConfig.scrollOffset) {
1864
+ return [0, 0];
1865
+ }
1866
+ else if (Array.isArray(this.routerConfig.scrollOffset)) {
1867
+ return this.routerConfig.scrollOffset;
1868
+ }
1869
+ else {
1870
+ return this.routerConfig.scrollOffset();
1871
+ }
1872
+ }
1873
+ }
1874
+ BsScrollOffsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollOffsetService, deps: [{ token: ROUTER_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
1875
+ BsScrollOffsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' });
1876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollOffsetService, decorators: [{
1877
+ type: Injectable,
1878
+ args: [{
1879
+ providedIn: 'root'
1880
+ }]
1881
+ }], ctorParameters: function () {
1882
+ return [{ type: undefined, decorators: [{
1883
+ type: Inject,
1884
+ args: [ROUTER_CONFIGURATION]
1885
+ }] }];
1886
+ } });
1887
+
1367
1888
  class BsScrollspyComponent {
1368
- constructor(document) {
1889
+ constructor(scrollOffsetService, document) {
1890
+ this.scrollOffsetService = scrollOffsetService;
1369
1891
  this.activeDirective = null;
1370
1892
  this.doc = document;
1371
1893
  }
1372
- ngOnInit() {
1373
- }
1374
1894
  ngAfterViewInit() {
1375
1895
  this.onWindowScroll();
1376
1896
  }
1377
1897
  onWindowScroll() {
1378
1898
  var _a;
1379
- const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y <= 0);
1899
+ const offsetY = this.scrollOffsetService.getScrollOffset()[1];
1900
+ const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
1380
1901
  if (this.directives.length === 0) {
1381
1902
  this.activeDirective = null;
1382
1903
  }
@@ -1386,25 +1907,39 @@ class BsScrollspyComponent {
1386
1907
  else {
1387
1908
  this.activeDirective = dirs[dirs.length - 1];
1388
1909
  }
1910
+ if (window && (window.innerWidth >= 768)) {
1911
+ if (this.activeDirective) {
1912
+ const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
1913
+ const anchor = this.anchors.get(index);
1914
+ if (anchor && anchor.nativeElement.parentElement) {
1915
+ anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1916
+ }
1917
+ }
1918
+ }
1389
1919
  }
1390
1920
  scrollToHeader(directive) {
1391
1921
  const header = directive.element.nativeElement;
1392
- header.scrollIntoView();
1922
+ const offsetY = this.scrollOffsetService.getScrollOffset()[1];
1923
+ const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;
1924
+ window.scrollTo({ top: y, behavior: 'smooth' });
1393
1925
  }
1394
1926
  }
1395
- BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
1396
- 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"] }] });
1927
+ BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
1928
+ 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1397
1929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
1398
1930
  type: Component,
1399
- 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"] }]
1931
+ 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"] }]
1400
1932
  }], ctorParameters: function () {
1401
- return [{ type: undefined, decorators: [{
1933
+ return [{ type: BsScrollOffsetService }, { type: undefined, decorators: [{
1402
1934
  type: Inject,
1403
1935
  args: [DOCUMENT]
1404
1936
  }] }];
1405
1937
  }, propDecorators: { directives: [{
1406
1938
  type: ContentChildren,
1407
1939
  args: [BsScrollspyDirective, { descendants: true }]
1940
+ }], anchors: [{
1941
+ type: ViewChildren,
1942
+ args: ['anchor']
1408
1943
  }], onWindowScroll: [{
1409
1944
  type: HostListener,
1410
1945
  args: ['window:scroll', ['$event']]
@@ -1436,237 +1971,743 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1436
1971
  }]
1437
1972
  }] });
1438
1973
 
1439
- class BsDropdownMenuDirective {
1440
- constructor(dropdown, document, viewContainerRef, templateRef, overlay) {
1441
- this.dropdown = dropdown;
1442
- this.viewContainerRef = viewContainerRef;
1443
- this.templateRef = templateRef;
1444
- this.overlay = overlay;
1445
- this.destroyed$ = new Subject();
1446
- this.overlayRef = null;
1447
- this.templatePortal = null;
1448
- this.document = document;
1449
- this.dropdown.isOpen$
1450
- .pipe(takeUntil(this.destroyed$))
1451
- .subscribe((isOpen) => {
1452
- if (isOpen) {
1453
- this.overlayRef = this.overlay.create({
1454
- hasBackdrop: this.dropdown.hasBackdrop,
1455
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
1456
- positionStrategy: this.overlay.position()
1457
- .flexibleConnectedTo(this.dropdown.toggle.toggleButton)
1458
- .withPositions([
1459
- { originX: "start", "originY": "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
1460
- { originX: "start", "originY": "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
1461
- ]),
1462
- });
1463
- this.overlayRef.backdropClick().subscribe(() => this.dropdown.isOpen$.next(false));
1464
- this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
1465
- this.overlayRef.attach(this.templatePortal);
1466
- }
1467
- else {
1468
- if (this.overlayRef) {
1469
- this.overlayRef.detach();
1470
- this.overlayRef.dispose();
1471
- }
1472
- }
1473
- });
1974
+ class BsInListPipe {
1975
+ transform(items, parameter) {
1976
+ return items.some(item => item.id === parameter);
1474
1977
  }
1475
1978
  }
1476
- BsDropdownMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: forwardRef(() => BsDropdownDirective) }, { token: DOCUMENT }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1$2.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
1477
- BsDropdownMenuDirectivedir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]", host: { properties: { "class.show": "dropdown.isOpen" } }, ngImport: i0 });
1478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1479
- type: Directive,
1979
+ BsInListPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1980
+ BsInListPipepipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListPipe, name: "inList" });
1981
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListPipe, decorators: [{
1982
+ type: Pipe,
1480
1983
  args: [{
1481
- selector: '[bsDropdownMenu]',
1482
- host: {
1483
- '[class.show]': 'dropdown.isOpen',
1484
- },
1984
+ name: 'inList'
1485
1985
  }]
1486
- }], ctorParameters: function () {
1487
- return [{ type: BsDropdownDirective, decorators: [{
1488
- type: Inject,
1489
- args: [forwardRef(() => BsDropdownDirective)]
1490
- }] }, { type: undefined, decorators: [{
1491
- type: Inject,
1492
- args: [DOCUMENT]
1493
- }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$2.Overlay }];
1494
- } });
1986
+ }] });
1495
1987
 
1496
- class BsDropdownToggleDirective {
1497
- constructor(dropdown, toggleButton) {
1498
- this.dropdown = dropdown;
1499
- this.toggleButton = toggleButton;
1988
+ class BsSelect2Component {
1989
+ constructor() {
1990
+ this.isOpen = false;
1991
+ this.suggestions$ = new BehaviorSubject([]);
1992
+ this.isLoading$ = new BehaviorSubject(false);
1993
+ this.hostWidth$ = new BehaviorSubject(200);
1994
+ this.searchterm = '';
1995
+ this.suggestions = [];
1996
+ this.provideSuggestions = new EventEmitter();
1997
+ this.selectedItems = [];
1998
+ this.isFocused = false;
1999
+ this.charWidth = 10;
2000
+ this.searchWidth = 20;
1500
2001
  }
1501
- onClick() {
1502
- console.log('clicked');
1503
- this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {
1504
- this.dropdown.isOpen$.next(!isOpen);
1505
- });
2002
+ ngAfterViewInit() {
2003
+ this.onResize();
2004
+ }
2005
+ onProvideSuggestions(value) {
2006
+ this.searchWidth = this.charWidth * (this.searchterm.length + 2);
2007
+ if (value === '') {
2008
+ this.isOpen = false;
2009
+ this.suggestions$.next([]);
2010
+ }
2011
+ else {
2012
+ this.isLoading$.next(true);
2013
+ this.isOpen = true;
2014
+ this.provideSuggestions.emit(value);
2015
+ }
2016
+ }
2017
+ onSuggestionClicked(suggestion) {
2018
+ this.searchterm = '';
2019
+ this.isOpen = false;
2020
+ const existing = this.selectedItems.find((value, index) => value.id === suggestion.id);
2021
+ if (existing === undefined) {
2022
+ this.selectedItems.push(suggestion);
2023
+ }
2024
+ else {
2025
+ this.selectedItems.splice(this.selectedItems.indexOf(existing), 1);
2026
+ }
2027
+ this.searchBox.nativeElement.focus();
2028
+ }
2029
+ onRemoveItem(item, event) {
2030
+ event.stopPropagation();
2031
+ this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
2032
+ this.focus();
2033
+ }
2034
+ ngOnInit() {
2035
+ }
2036
+ onResize() {
2037
+ this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);
2038
+ }
2039
+ focus() {
2040
+ this.searchBox.nativeElement.focus();
1506
2041
  }
1507
2042
  }
1508
- BsDropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, deps: [{ token: BsDropdownDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1509
- BsDropdownToggleDirectivedir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
1510
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, decorators: [{
1511
- type: Directive,
1512
- args: [{
1513
- selector: '[bsDropdownToggle]'
1514
- }]
1515
- }], ctorParameters: function () { return [{ type: BsDropdownDirective }, { type: i0.ElementRef }]; }, propDecorators: { onClick: [{
2043
+ BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
2044
+ BsSelect2Componentcmp = 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: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.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: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "async": i1.AsyncPipe, "inList": BsInListPipe } });
2045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, decorators: [{
2046
+ type: Component,
2047
+ 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"] }]
2048
+ }], ctorParameters: function () { return []; }, propDecorators: { searchBox: [{
2049
+ type: ViewChild,
2050
+ args: ['searchBox']
2051
+ }], itemsBox: [{
2052
+ type: ViewChild,
2053
+ args: ['itemsBox']
2054
+ }], searchterm: [{
2055
+ type: Input
2056
+ }], suggestions: [{
2057
+ type: Input
2058
+ }], provideSuggestions: [{
2059
+ type: Output
2060
+ }], selectedItems: [{
2061
+ type: Input
2062
+ }], isFocused: [{
2063
+ type: HostBinding,
2064
+ args: ['class.focus']
2065
+ }], onResize: [{
2066
+ type: HostListener,
2067
+ args: ['window:resize']
2068
+ }], focus: [{
1516
2069
  type: HostListener,
1517
2070
  args: ['click']
2071
+ }], defaultItemTemplate: [{
2072
+ type: ViewChild,
2073
+ args: ['defaultItemTemplate', { static: true }]
1518
2074
  }] } });
1519
2075
 
1520
- class BsDropdownDirective {
1521
- constructor() {
1522
- this.isOpen$ = new BehaviorSubject(false);
1523
- this.hasBackdrop = false;
1524
- this.closeOnClickOutside = false;
2076
+ class BsItemTemplateDirective {
2077
+ constructor(select2component, templateRef) {
2078
+ this.select2component = select2component;
2079
+ console.log('template', templateRef);
2080
+ this.select2component.itemTemplate = templateRef;
1525
2081
  }
1526
2082
  }
1527
- BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1528
- BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", closeOnClickOutside: "closeOnClickOutside" }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, decorators: [{
2083
+ BsItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsItemTemplateDirective, deps: [{ token: BsSelect2Component }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
2084
+ BsItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsItemTemplateDirective, selector: "[bsItemTemplate]", ngImport: i0 });
2085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsItemTemplateDirective, decorators: [{
1530
2086
  type: Directive,
1531
2087
  args: [{
1532
- selector: '[bsDropdown]'
2088
+ selector: '[bsItemTemplate]'
1533
2089
  }]
1534
- }], propDecorators: { menu: [{
1535
- type: ContentChild,
1536
- args: [BsDropdownMenuDirective, { static: false }]
1537
- }], toggle: [{
1538
- type: ContentChild,
1539
- args: [BsDropdownToggleDirective, { static: false }]
1540
- }], hasBackdrop: [{
1541
- type: Input
1542
- }], closeOnClickOutside: [{
1543
- type: Input
1544
- }] } });
2090
+ }], ctorParameters: function () { return [{ type: BsSelect2Component }, { type: i0.TemplateRef }]; } });
1545
2091
 
1546
- class BsDropdownModule {
2092
+ class BsInListModule {
1547
2093
  }
1548
- BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1549
- BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1550
- BsDropdownToggleDirective,
1551
- BsDropdownMenuDirective], imports: [CommonModule,
1552
- OverlayModule], exports: [BsDropdownDirective,
1553
- BsDropdownToggleDirective,
1554
- BsDropdownMenuDirective] });
1555
- BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
2094
+ BsInListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2095
+ BsInListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListModule, declarations: [BsInListPipe], imports: [CommonModule], exports: [BsInListPipe] });
2096
+ BsInListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListModule, imports: [[
2097
+ CommonModule
2098
+ ]] });
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsInListModule, decorators: [{
2100
+ type: NgModule,
2101
+ args: [{
2102
+ declarations: [
2103
+ BsInListPipe
2104
+ ],
2105
+ imports: [
2106
+ CommonModule
2107
+ ],
2108
+ exports: [
2109
+ BsInListPipe
2110
+ ]
2111
+ }]
2112
+ }] });
2113
+
2114
+ class BsSelect2Module {
2115
+ }
2116
+ BsSelect2Module.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2117
+ BsSelect2Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, declarations: [BsSelect2Component,
2118
+ BsItemTemplateDirective], imports: [CommonModule,
2119
+ FormsModule,
2120
+ BsDropdownModule,
2121
+ BsInListModule], exports: [BsSelect2Component,
2122
+ BsItemTemplateDirective] });
2123
+ BsSelect2Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, imports: [[
1556
2124
  CommonModule,
1557
- OverlayModule
2125
+ FormsModule,
2126
+ BsDropdownModule,
2127
+ BsInListModule
1558
2128
  ]] });
1559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
2129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Module, decorators: [{
1560
2130
  type: NgModule,
1561
2131
  args: [{
1562
2132
  declarations: [
1563
- BsDropdownDirective,
1564
- BsDropdownToggleDirective,
1565
- BsDropdownMenuDirective
2133
+ BsSelect2Component,
2134
+ BsItemTemplateDirective
1566
2135
  ],
1567
2136
  imports: [
1568
2137
  CommonModule,
1569
- OverlayModule
2138
+ FormsModule,
2139
+ BsDropdownModule,
2140
+ BsInListModule
1570
2141
  ],
1571
2142
  exports: [
1572
- BsDropdownDirective,
1573
- BsDropdownToggleDirective,
1574
- BsDropdownMenuDirective
2143
+ BsSelect2Component,
2144
+ BsItemTemplateDirective
1575
2145
  ]
1576
2146
  }]
1577
2147
  }] });
1578
2148
 
1579
- class BsDatepickerComponent {
2149
+ const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
2150
+
2151
+ class BsSnackbarComponent {
2152
+ constructor(content) {
2153
+ this.displayBlock = true;
2154
+ this.width100 = true;
2155
+ this.instance = null;
2156
+ //#region Monitor @slideUpDown hooks
2157
+ this.animationState = '';
2158
+ this.animationStateChanged = new EventEmitter();
2159
+ this.content = content;
2160
+ }
2161
+ onAnimationChanged(event) {
2162
+ this.animationStateChanged.emit(event);
2163
+ }
2164
+ }
2165
+ BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2166
+ 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] });
2167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
2168
+ type: Component,
2169
+ 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"] }]
2170
+ }], ctorParameters: function () {
2171
+ return [{ type: i0.TemplateRef, decorators: [{
2172
+ type: Inject,
2173
+ args: [SNACKBAR_CONTENT]
2174
+ }] }];
2175
+ }, propDecorators: { displayBlock: [{
2176
+ type: HostBinding,
2177
+ args: ['class.d-block']
2178
+ }], width100: [{
2179
+ type: HostBinding,
2180
+ args: ['class.w-100']
2181
+ }] } });
2182
+
2183
+ class BsSnackbarService {
2184
+ constructor(overlay, parentInjector, componentFactoryResolver) {
2185
+ this.overlay = overlay;
2186
+ this.parentInjector = parentInjector;
2187
+ this.componentFactoryResolver = componentFactoryResolver;
2188
+ }
2189
+ show(template) {
2190
+ const injector = Injector.create({
2191
+ providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
2192
+ parent: this.parentInjector
2193
+ });
2194
+ const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
2195
+ const overlayRef = this.overlay.create({
2196
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
2197
+ positionStrategy: this.overlay.position()
2198
+ .global().centerHorizontally().bottom('0'),
2199
+ width: '100%'
2200
+ });
2201
+ const componentInstance = overlayRef.attach(portal);
2202
+ // componentInstance.
2203
+ componentInstance.instance['instance'] = {
2204
+ component: componentInstance,
2205
+ overlay: overlayRef
2206
+ };
2207
+ return componentInstance.instance;
2208
+ }
2209
+ hide(snackbar) {
2210
+ snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2211
+ var _a;
2212
+ (_a = snackbar['instance']) === null || _a === void 0 ? void 0 : _a.overlay.dispose();
2213
+ });
2214
+ snackbar.animationState = 'void';
2215
+ }
2216
+ }
2217
+ BsSnackbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
2218
+ BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: 'root' });
2219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
2220
+ type: Injectable,
2221
+ args: [{
2222
+ providedIn: 'root'
2223
+ }]
2224
+ }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
2225
+
2226
+ class BsSnackbarCloseDirective {
2227
+ constructor(snackbarService) {
2228
+ this.snackbarService = snackbarService;
2229
+ }
2230
+ onClick() {
2231
+ this.snackbarService.hide(this.bsSnackbarClose);
2232
+ }
2233
+ }
2234
+ BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
2235
+ 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 });
2236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
2237
+ type: Directive,
2238
+ args: [{
2239
+ selector: '[bsSnackbarClose]'
2240
+ }]
2241
+ }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
2242
+ type: Input
2243
+ }], onClick: [{
2244
+ type: HostListener,
2245
+ args: ['click']
2246
+ }] } });
2247
+
2248
+ class BsSnackbarModule {
2249
+ }
2250
+ BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2251
+ BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
2252
+ BsSnackbarCloseDirective], imports: [CommonModule], exports: [BsSnackbarComponent,
2253
+ BsSnackbarCloseDirective] });
2254
+ BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
2255
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2256
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2257
+ ], imports: [[
2258
+ CommonModule
2259
+ ]] });
2260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
2261
+ type: NgModule,
2262
+ args: [{
2263
+ declarations: [
2264
+ BsSnackbarComponent,
2265
+ BsSnackbarCloseDirective
2266
+ ],
2267
+ imports: [
2268
+ CommonModule
2269
+ ],
2270
+ exports: [
2271
+ BsSnackbarComponent,
2272
+ BsSnackbarCloseDirective
2273
+ ],
2274
+ providers: [
2275
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2276
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2277
+ ]
2278
+ }]
2279
+ }] });
2280
+
2281
+ class BsTabPageComponent {
2282
+ constructor(tabControl) {
2283
+ this.disabled = false;
2284
+ this.tabControl = tabControl;
2285
+ }
2286
+ ngOnInit() {
2287
+ }
2288
+ }
2289
+ BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
2290
+ BsTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTabPageComponent, selector: "bs-tab-page", inputs: { disabled: "disabled" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
2292
+ type: Component,
2293
+ args: [{ selector: 'bs-tab-page', template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""] }]
2294
+ }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { headerTemplate: [{
2295
+ type: ContentChild,
2296
+ args: [TemplateRef]
2297
+ }], disabled: [{
2298
+ type: Input
2299
+ }] } });
2300
+
2301
+ class BsTabControlComponent {
1580
2302
  constructor() {
1581
- this.selectedDate = new Date();
1582
- this.currentMonth = new Date();
2303
+ this.activeTab = null;
1583
2304
  }
1584
2305
  ngOnInit() {
1585
2306
  }
2307
+ setActiveTab(tab) {
2308
+ if (!tab.disabled) {
2309
+ this.activeTab = tab;
2310
+ }
2311
+ return false;
2312
+ }
1586
2313
  }
1587
- BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1588
- BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatepickerComponent, selector: "bs-datepicker", ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""], components: [{ type: BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "closeOnClickOutside"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i1.DatePipe } });
1589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
2314
+ BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2315
+ BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTabControlComponent, selector: "bs-tab-control", queries: [{ propertyName: "tabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<ul class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let tab of tabPages\">\n <li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n <a class=\"nav-link\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\" href=\"\">\n <ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n </a>\n </li>\n </ng-container>\n</ul>\n<!-- <div class=\"container\"> -->\n <ng-content></ng-content>\n<!-- </div> -->", styles: [""], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
1590
2317
  type: Component,
1591
- args: [{ selector: 'bs-datepicker', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""] }]
1592
- }], ctorParameters: function () { return []; } });
2318
+ args: [{ selector: 'bs-tab-control', template: "<ul class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let tab of tabPages\">\n <li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n <a class=\"nav-link\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\" href=\"\">\n <ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n </a>\n </li>\n </ng-container>\n</ul>\n<!-- <div class=\"container\"> -->\n <ng-content></ng-content>\n<!-- </div> -->", styles: [""] }]
2319
+ }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
2320
+ type: ContentChildren,
2321
+ args: [BsTabPageComponent]
2322
+ }] } });
1593
2323
 
1594
- class BsDatepickerModule {
2324
+ class BsTabControlModule {
1595
2325
  }
1596
- BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1597
- BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1598
- BsCalendarModule,
1599
- BsDropdownModule], exports: [BsDatepickerComponent] });
1600
- BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1601
- CommonModule,
1602
- BsCalendarModule,
1603
- BsDropdownModule
2326
+ BsTabControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2327
+ BsTabControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, declarations: [BsTabControlComponent,
2328
+ BsTabPageComponent], imports: [CommonModule], exports: [BsTabControlComponent,
2329
+ BsTabPageComponent] });
2330
+ BsTabControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, imports: [[
2331
+ CommonModule
1604
2332
  ]] });
1605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
2333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlModule, decorators: [{
1606
2334
  type: NgModule,
1607
2335
  args: [{
1608
2336
  declarations: [
1609
- BsDatepickerComponent
2337
+ BsTabControlComponent,
2338
+ BsTabPageComponent,
1610
2339
  ],
1611
2340
  imports: [
1612
- CommonModule,
1613
- BsCalendarModule,
1614
- BsDropdownModule
2341
+ CommonModule
1615
2342
  ],
1616
2343
  exports: [
1617
- BsDatepickerComponent
2344
+ BsTabControlComponent,
2345
+ BsTabPageComponent,
1618
2346
  ]
1619
2347
  }]
1620
2348
  }] });
1621
2349
 
1622
- class BsMultiselectComponent {
2350
+ class BsToggleButtonComponent {
1623
2351
  constructor() {
1624
- this.items = [];
1625
- this.selectedItems = [];
2352
+ this.disableAnimations = true;
2353
+ //#region isToggled
2354
+ this._isToggled = false;
2355
+ this.isToggledChange = new EventEmitter();
2356
+ //#endregion
2357
+ this.offColor = '#CCCCCC';
2358
+ this.onColor = '#2196F3';
2359
+ this.round = true;
1626
2360
  }
1627
- itemChange(item, event) {
1628
- if (!!event.target.checked) {
1629
- this.selectedItems.push(item);
2361
+ ngAfterViewInit() {
2362
+ this.disableAnimations = false;
2363
+ }
2364
+ get isToggled() {
2365
+ return this._isToggled;
2366
+ }
2367
+ set isToggled(value) {
2368
+ this._isToggled = value;
2369
+ this.isToggledChange.emit(this._isToggled);
2370
+ }
2371
+ }
2372
+ BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2373
+ 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] });
2374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
2375
+ type: Component,
2376
+ 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"] }]
2377
+ }], propDecorators: { isToggledChange: [{
2378
+ type: Output
2379
+ }], isToggled: [{
2380
+ type: Input
2381
+ }], offColor: [{
2382
+ type: Input
2383
+ }], onColor: [{
2384
+ type: Input
2385
+ }], round: [{
2386
+ type: Input
2387
+ }] } });
2388
+
2389
+ class BsToggleButtonModule {
2390
+ }
2391
+ BsToggleButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2392
+ BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent], imports: [CommonModule], exports: [BsToggleButtonComponent] });
2393
+ BsToggleButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonModule, imports: [[
2394
+ CommonModule
2395
+ ]] });
2396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonModule, decorators: [{
2397
+ type: NgModule,
2398
+ args: [{
2399
+ declarations: [
2400
+ BsToggleButtonComponent
2401
+ ],
2402
+ imports: [
2403
+ CommonModule
2404
+ ],
2405
+ exports: [
2406
+ BsToggleButtonComponent
2407
+ ]
2408
+ }]
2409
+ }] });
2410
+
2411
+ const TOOLTIP_CONTENT = new InjectionToken('TooltipContent');
2412
+
2413
+ class BsTooltipComponent {
2414
+ constructor(content) {
2415
+ this.positions = Position;
2416
+ this.position = Position.bottom;
2417
+ this.template = content;
2418
+ }
2419
+ }
2420
+ BsTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipComponent, deps: [{ token: TOOLTIP_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2421
+ BsTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTooltipComponent, selector: "bs-tooltip", inputs: { position: "position" }, ngImport: i0, template: "<div [@fadeInOut] class=\"tooltip position-relative show\"\n [class.bs-tooltip-bottom]=\"position === positions.bottom\"\n [class.bs-tooltip-top]=\"position === positions.top\"\n [class.bs-tooltip-start]=\"position === positions.left\"\n [class.bs-tooltip-end]=\"position === positions.right\">\n <div class=\"tooltip-arrow\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n", styles: [".tooltip.bs-tooltip-bottom .tooltip-arrow,.tooltip.bs-tooltip-top .tooltip-arrow{left:50%;transform:translate(-50%)}.tooltip.bs-tooltip-start .tooltip-arrow,.tooltip.bs-tooltip-end .tooltip-arrow{top:50%;transform:translateY(-50%)}\n"], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [FadeInOutAnimation] });
2422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipComponent, decorators: [{
2423
+ type: Component,
2424
+ args: [{ selector: 'bs-tooltip', animations: [FadeInOutAnimation], template: "<div [@fadeInOut] class=\"tooltip position-relative show\"\n [class.bs-tooltip-bottom]=\"position === positions.bottom\"\n [class.bs-tooltip-top]=\"position === positions.top\"\n [class.bs-tooltip-start]=\"position === positions.left\"\n [class.bs-tooltip-end]=\"position === positions.right\">\n <div class=\"tooltip-arrow\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n", styles: [".tooltip.bs-tooltip-bottom .tooltip-arrow,.tooltip.bs-tooltip-top .tooltip-arrow{left:50%;transform:translate(-50%)}.tooltip.bs-tooltip-start .tooltip-arrow,.tooltip.bs-tooltip-end .tooltip-arrow{top:50%;transform:translateY(-50%)}\n"] }]
2425
+ }], ctorParameters: function () {
2426
+ return [{ type: i0.TemplateRef, decorators: [{
2427
+ type: Inject,
2428
+ args: [TOOLTIP_CONTENT]
2429
+ }] }];
2430
+ }, propDecorators: { position: [{
2431
+ type: Input
2432
+ }] } });
2433
+
2434
+ class BsTooltipDirective {
2435
+ constructor(overlay, templateRef, componentFactoryResolver, parentInjector, parent) {
2436
+ this.overlay = overlay;
2437
+ this.templateRef = templateRef;
2438
+ this.parentInjector = parentInjector;
2439
+ this.parent = parent;
2440
+ this.bsTooltip = Position.bottom;
2441
+ this.overlayRef = null;
2442
+ this.injector = Injector.create({
2443
+ providers: [{ provide: TOOLTIP_CONTENT, useValue: this.templateRef }],
2444
+ parent: this.parentInjector
2445
+ });
2446
+ this.portal = new ComponentPortal(BsTooltipComponent, null, this.injector, componentFactoryResolver);
2447
+ parent.nativeElement.onmouseenter = () => {
2448
+ this.showTooltip();
2449
+ };
2450
+ parent.nativeElement.onmouseleave = () => {
2451
+ this.hideTooltip();
2452
+ };
2453
+ }
2454
+ showTooltip() {
2455
+ const positions = [];
2456
+ switch (this.bsTooltip) {
2457
+ case Position.bottom:
2458
+ {
2459
+ positions.push({
2460
+ originX: "center",
2461
+ originY: "bottom",
2462
+ overlayX: "center",
2463
+ overlayY: "top"
2464
+ });
2465
+ }
2466
+ break;
2467
+ case Position.top:
2468
+ {
2469
+ positions.push({
2470
+ originX: "center",
2471
+ originY: "top",
2472
+ overlayX: "center",
2473
+ overlayY: "bottom"
2474
+ });
2475
+ }
2476
+ break;
2477
+ case Position.left:
2478
+ {
2479
+ positions.push({
2480
+ originX: "start",
2481
+ originY: "center",
2482
+ overlayX: "end",
2483
+ overlayY: "center",
2484
+ });
2485
+ }
2486
+ break;
2487
+ case Position.right:
2488
+ {
2489
+ positions.push({
2490
+ originX: "end",
2491
+ originY: "center",
2492
+ overlayX: "start",
2493
+ overlayY: "center"
2494
+ });
2495
+ }
2496
+ break;
2497
+ }
2498
+ this.overlayRef = this.overlay.create({
2499
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
2500
+ positionStrategy: this.overlay.position()
2501
+ .flexibleConnectedTo(this.parent)
2502
+ .withPositions(positions),
2503
+ });
2504
+ const component = this.overlayRef.attach(this.portal);
2505
+ component.instance.position = this.bsTooltip;
2506
+ }
2507
+ hideTooltip() {
2508
+ if (this.overlayRef) {
2509
+ this.overlayRef.detach();
2510
+ this.overlayRef.dispose();
2511
+ this.overlayRef = null;
2512
+ }
2513
+ }
2514
+ }
2515
+ BsTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipDirective, deps: [{ token: i1$1.Overlay }, { token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ElementRef, host: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
2516
+ BsTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsTooltipDirective, selector: "*[bsTooltip]", inputs: { bsTooltip: "bsTooltip" }, ngImport: i0 });
2517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipDirective, decorators: [{
2518
+ type: Directive,
2519
+ args: [{
2520
+ selector: '*[bsTooltip]'
2521
+ }]
2522
+ }], ctorParameters: function () {
2523
+ return [{ type: i1$1.Overlay }, { type: i0.TemplateRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ElementRef, decorators: [{
2524
+ type: Host
2525
+ }, {
2526
+ type: SkipSelf
2527
+ }] }];
2528
+ }, propDecorators: { bsTooltip: [{
2529
+ type: Input
2530
+ }] } });
2531
+
2532
+ class BsTooltipModule {
2533
+ }
2534
+ BsTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2535
+ BsTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, declarations: [BsTooltipDirective,
2536
+ BsTooltipComponent], imports: [CommonModule], exports: [BsTooltipDirective] });
2537
+ BsTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, imports: [[
2538
+ CommonModule
2539
+ ]] });
2540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, decorators: [{
2541
+ type: NgModule,
2542
+ args: [{
2543
+ declarations: [
2544
+ BsTooltipDirective,
2545
+ BsTooltipComponent
2546
+ ],
2547
+ imports: [
2548
+ CommonModule
2549
+ ],
2550
+ exports: [
2551
+ BsTooltipDirective
2552
+ ]
2553
+ }]
2554
+ }] });
2555
+
2556
+ class BsTypeaheadComponent {
2557
+ constructor() {
2558
+ this.isOpen = false;
2559
+ this.suggestions$ = new BehaviorSubject([]);
2560
+ this.isLoading$ = new BehaviorSubject(false);
2561
+ this.hostWidth$ = new BehaviorSubject(200);
2562
+ this.destroyed$ = new Subject();
2563
+ this.searchterm = '';
2564
+ this.isLoadingText = 'Loading...';
2565
+ this.noSuggestionsText = 'No suggestions found';
2566
+ this.provideSuggestions = new EventEmitter();
2567
+ this.suggestionSelected = new EventEmitter();
2568
+ this.searchtermChange = new EventEmitter();
2569
+ this.submitted = new EventEmitter();
2570
+ this.showNoSuggestions$ = this.suggestions$
2571
+ .pipe(map(suggestions => suggestions.length === 0));
2572
+ }
2573
+ ngAfterViewInit() {
2574
+ this.onResize();
2575
+ }
2576
+ onProvideSuggestions(value) {
2577
+ this.searchtermChange.emit(value);
2578
+ if (value === '') {
2579
+ this.isOpen = false;
2580
+ this.suggestions$.next([]);
1630
2581
  }
1631
2582
  else {
1632
- this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
2583
+ this.isLoading$.next(true);
2584
+ this.isOpen = true;
2585
+ this.provideSuggestions.emit(value);
1633
2586
  }
1634
2587
  }
1635
- ngOnInit() {
2588
+ set suggestions(value) {
2589
+ this.isLoading$.next(false);
2590
+ this.suggestions$.next(value);
2591
+ }
2592
+ suggestionClicked(suggestion) {
2593
+ this.searchterm = suggestion.text;
2594
+ this.searchtermChange.emit(this.searchterm);
2595
+ this.isOpen = false;
2596
+ this.suggestionSelected.emit(suggestion);
2597
+ }
2598
+ onSubmit() {
2599
+ this.isOpen = false;
2600
+ this.submitted.emit(this.searchterm);
2601
+ }
2602
+ focus() {
2603
+ this.textbox.nativeElement.focus();
2604
+ }
2605
+ onResize() {
2606
+ this.hostWidth$.next(this.textbox.nativeElement.offsetWidth);
1636
2607
  }
1637
2608
  }
1638
- BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1639
- BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white p-3 border shadow\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [""], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "closeOnClickOutside"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1640
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
2609
+ BsTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2610
+ BsTypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTypeaheadComponent, selector: "bs-typeahead", inputs: { searchterm: "searchterm", isLoadingText: "isLoadingText", noSuggestionsText: "noSuggestionsText", suggestions: "suggestions" }, outputs: { provideSuggestions: "provideSuggestions", suggestionSelected: "suggestionSelected", searchtermChange: "searchtermChange", submitted: "submitted" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>", styles: ["bs-progress{margin-top:-8px;margin-bottom:6px}\n"], components: [{ type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { 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: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe } });
2611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, decorators: [{
1641
2612
  type: Component,
1642
- args: [{ selector: 'bs-multiselect', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white p-3 border shadow\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [""] }]
1643
- }], ctorParameters: function () { return []; }, propDecorators: { items: [{
2613
+ args: [{ selector: 'bs-typeahead', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>", styles: ["bs-progress{margin-top:-8px;margin-bottom:6px}\n"] }]
2614
+ }], ctorParameters: function () { return []; }, propDecorators: { textbox: [{
2615
+ type: ViewChild,
2616
+ args: ['textbox']
2617
+ }], searchterm: [{
1644
2618
  type: Input
1645
- }], selectedItems: [{
2619
+ }], isLoadingText: [{
1646
2620
  type: Input
2621
+ }], noSuggestionsText: [{
2622
+ type: Input
2623
+ }], provideSuggestions: [{
2624
+ type: Output
2625
+ }], suggestionSelected: [{
2626
+ type: Output
2627
+ }], searchtermChange: [{
2628
+ type: Output
2629
+ }], submitted: [{
2630
+ type: Output
2631
+ }], suggestions: [{
2632
+ type: Input
2633
+ }], onResize: [{
2634
+ type: HostListener,
2635
+ args: ['window:resize']
1647
2636
  }] } });
1648
2637
 
1649
- class BsMultiselectModule {
2638
+ class BsTypeaheadModule {
1650
2639
  }
1651
- BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1652
- BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent], imports: [CommonModule,
1653
- BsDropdownModule], exports: [BsMultiselectComponent] });
1654
- BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
2640
+ BsTypeaheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2641
+ BsTypeaheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadModule, declarations: [BsTypeaheadComponent], imports: [CommonModule,
2642
+ FormsModule,
2643
+ BsDropdownModule,
2644
+ BsProgressBarModule], exports: [BsTypeaheadComponent] });
2645
+ BsTypeaheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadModule, imports: [[
1655
2646
  CommonModule,
1656
- BsDropdownModule
2647
+ FormsModule,
2648
+ BsDropdownModule,
2649
+ BsProgressBarModule
1657
2650
  ]] });
1658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, decorators: [{
2651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadModule, decorators: [{
1659
2652
  type: NgModule,
1660
2653
  args: [{
1661
2654
  declarations: [
1662
- BsMultiselectComponent
2655
+ BsTypeaheadComponent
1663
2656
  ],
1664
2657
  imports: [
1665
2658
  CommonModule,
1666
- BsDropdownModule
2659
+ FormsModule,
2660
+ BsDropdownModule,
2661
+ BsProgressBarModule
1667
2662
  ],
1668
2663
  exports: [
1669
- BsMultiselectComponent
2664
+ BsTypeaheadComponent
2665
+ ]
2666
+ }]
2667
+ }] });
2668
+
2669
+ class BsFontColorPipe {
2670
+ transform(color_hex) {
2671
+ if (color_hex === undefined || color_hex === null || color_hex.length < 7 || typeof (color_hex) !== 'string') {
2672
+ return '#FFFFFF';
2673
+ }
2674
+ const R_HEX = color_hex.substr(1, 2);
2675
+ const G_HEX = color_hex.substr(3, 2);
2676
+ const B_HEX = color_hex.substr(5, 2);
2677
+ const R_DEC = parseInt(R_HEX, 16);
2678
+ const G_DEC = parseInt(G_HEX, 16);
2679
+ const B_DEC = parseInt(B_HEX, 16);
2680
+ const CONTRAST_HEX = R_DEC * 0.299 + G_DEC * 0.587 + B_DEC * 0.114 > 186 ? '#000000' : '#FFFFFF';
2681
+ return CONTRAST_HEX;
2682
+ }
2683
+ }
2684
+ BsFontColorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2685
+ BsFontColorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipe, name: "bsFontColor" });
2686
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipe, decorators: [{
2687
+ type: Pipe,
2688
+ args: [{
2689
+ name: 'bsFontColor'
2690
+ }]
2691
+ }] });
2692
+
2693
+ class BsFontColorPipeModule {
2694
+ }
2695
+ BsFontColorPipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2696
+ BsFontColorPipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipeModule, declarations: [BsFontColorPipe], imports: [CommonModule], exports: [BsFontColorPipe] });
2697
+ BsFontColorPipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipeModule, imports: [[
2698
+ CommonModule
2699
+ ]] });
2700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFontColorPipeModule, decorators: [{
2701
+ type: NgModule,
2702
+ args: [{
2703
+ declarations: [
2704
+ BsFontColorPipe
2705
+ ],
2706
+ imports: [
2707
+ CommonModule
2708
+ ],
2709
+ exports: [
2710
+ BsFontColorPipe
1670
2711
  ]
1671
2712
  }]
1672
2713
  }] });
@@ -1675,5 +2716,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1675
2716
  * Generated bundle index. Do not edit.
1676
2717
  */
1677
2718
 
1678
- export { BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsMultiselectComponent, BsMultiselectModule, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsRowTemplateDirective, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, Color, DatatableSettings, DropdownToggleDirective, NavLinkDirective, NavbarContentDirective };
2719
+ export { BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsContextMenuDirective, BsContextMenuModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsFontColorPipe, BsFontColorPipeModule, BsItemTemplateDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsMultiselectComponent, BsMultiselectModule, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsPaginationComponent, BsPaginationModule, BsProgressBarComponent, BsProgressBarModule, BsProgressComponent, BsRowTemplateDirective, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsSelect2Component, BsSelect2Module, BsSnackbarCloseDirective, BsSnackbarComponent, BsSnackbarModule, BsSnackbarService, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, BsToggleButtonComponent, BsToggleButtonModule, BsTooltipDirective, BsTooltipModule, BsTypeaheadComponent, BsTypeaheadModule, Color, DatatableSettings, DropdownToggleDirective, NavLinkDirective, NavbarContentDirective, Position };
1679
2720
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map