@mintplayer/ng-bootstrap 13.1.14 → 13.1.15

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 (153) hide show
  1. package/_bootstrap.scss +9 -2
  2. package/esm2020/lib/components/accordion/accordion/accordion.component.mjs +2 -4
  3. package/esm2020/lib/components/accordion/accordion-tab/accordion-tab.component.mjs +1 -11
  4. package/esm2020/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.mjs +3 -8
  5. package/esm2020/lib/components/accordion/accordion.module.mjs +4 -8
  6. package/esm2020/lib/components/alert/alert/alert.component.mjs +2 -4
  7. package/esm2020/lib/components/alert/alert-close/alert-close.component.mjs +1 -3
  8. package/esm2020/lib/components/calendar/calendar.component.mjs +16 -15
  9. package/esm2020/lib/components/card/card/card.component.mjs +4 -10
  10. package/esm2020/lib/components/card/card-header/card-header.component.mjs +2 -6
  11. package/esm2020/lib/components/carousel/carousel/carousel.component.mjs +9 -7
  12. package/esm2020/lib/components/carousel/carousel-image/carousel-image.directive.mjs +1 -1
  13. package/esm2020/lib/components/code-snippet/code-snippet.component.mjs +28 -0
  14. package/esm2020/lib/components/code-snippet/code-snippet.module.mjs +34 -0
  15. package/esm2020/lib/components/code-snippet/index.mjs +3 -0
  16. package/esm2020/lib/components/context-menu/context-menu.directive.mjs +1 -1
  17. package/esm2020/lib/components/context-menu/context-menu.module.mjs +8 -4
  18. package/esm2020/lib/components/copy/copy.directive.mjs +45 -0
  19. package/esm2020/lib/components/copy/copy.module.mjs +26 -0
  20. package/esm2020/lib/components/copy/index.mjs +3 -0
  21. package/esm2020/lib/components/datatable/datatable/datatable.component.mjs +6 -8
  22. package/esm2020/lib/components/datatable/datatable-settings.mjs +1 -1
  23. package/esm2020/lib/components/datatable/datatable.module.mjs +1 -1
  24. package/esm2020/lib/components/datatable/row-template/row-template.directive.mjs +3 -3
  25. package/esm2020/lib/components/datepicker/datepicker.component.mjs +32 -7
  26. package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +1 -1
  27. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +12 -16
  28. package/esm2020/lib/components/for/for.directive.mjs +10 -4
  29. package/esm2020/lib/components/index.mjs +5 -1
  30. package/esm2020/lib/components/modal/component/index.mjs +3 -0
  31. package/esm2020/lib/components/modal/component/modal/modal.component.mjs +13 -0
  32. package/esm2020/lib/components/modal/component/modal-content/modal-content.component.mjs +27 -0
  33. package/esm2020/lib/components/modal/directives/index.mjs +4 -0
  34. package/esm2020/lib/components/modal/directives/modal-body/modal-body.directive.mjs +18 -0
  35. package/esm2020/lib/components/modal/directives/modal-footer/modal-footer.directive.mjs +18 -0
  36. package/esm2020/lib/components/modal/directives/modal-header/modal-header.directive.mjs +18 -0
  37. package/esm2020/lib/components/modal/index.mjs +5 -0
  38. package/esm2020/lib/components/modal/interfaces/index.mjs +2 -0
  39. package/esm2020/lib/components/modal/interfaces/modal-animation-meta.mjs +2 -0
  40. package/esm2020/lib/components/modal/modal.module.mjs +48 -0
  41. package/esm2020/lib/components/modal/providers/modal-content.provider.mjs +3 -0
  42. package/esm2020/lib/components/modal/service/modal.service.mjs +52 -0
  43. package/esm2020/lib/components/multiselect/component/multiselect.component.mjs +34 -0
  44. package/esm2020/lib/components/multiselect/directives/button-template/button-template.directive.mjs +18 -0
  45. package/esm2020/lib/components/multiselect/directives/footer-template/footer-template.directive.mjs +18 -0
  46. package/esm2020/lib/components/multiselect/directives/header-template/header-template.directive.mjs +18 -0
  47. package/esm2020/lib/components/multiselect/directives/index.mjs +4 -0
  48. package/esm2020/lib/components/multiselect/index.mjs +3 -2
  49. package/esm2020/lib/components/multiselect/multiselect.module.mjs +21 -6
  50. package/esm2020/lib/components/navbar/index.mjs +2 -1
  51. package/esm2020/lib/components/navbar/navbar/navbar.component.mjs +3 -3
  52. package/esm2020/lib/components/navbar/navbar-brand/navbar-brand.component.mjs +18 -0
  53. package/esm2020/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.mjs +7 -6
  54. package/esm2020/lib/components/navbar/navbar-item/navbar-item.component.mjs +16 -5
  55. package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +1 -1
  56. package/esm2020/lib/components/navbar/navbar.module.mjs +10 -5
  57. package/esm2020/lib/components/pagination/pagination/pagination.component.mjs +88 -71
  58. package/esm2020/lib/components/rating/index.mjs +3 -0
  59. package/esm2020/lib/components/rating/rating.component.mjs +72 -0
  60. package/esm2020/lib/components/rating/rating.module.mjs +26 -0
  61. package/esm2020/lib/components/select2/component/select2.component.mjs +7 -9
  62. package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +4 -3
  63. package/esm2020/lib/components/snackbar/snackbar.module.mjs +8 -4
  64. package/esm2020/lib/components/tab-control/tab-control/tab-control.component.mjs +8 -7
  65. package/esm2020/lib/components/tab-control/tab-page/tab-page.component.mjs +4 -6
  66. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +19 -15
  67. package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +4 -4
  68. package/esm2020/lib/components/tooltip/tooltip.module.mjs +8 -4
  69. package/esm2020/lib/interfaces/date-day-of-month.mjs +1 -1
  70. package/esm2020/lib/interfaces/index.mjs +2 -1
  71. package/esm2020/lib/interfaces/week.mjs +1 -1
  72. package/esm2020/lib/interfaces/weekday.mjs +2 -0
  73. package/esm2020/lib/pipes/format-bytes/index.mjs +3 -0
  74. package/esm2020/lib/pipes/index.mjs +2 -1
  75. package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +34 -18
  76. package/fesm2015/mintplayer-ng-bootstrap.mjs +874 -384
  77. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  78. package/fesm2020/mintplayer-ng-bootstrap.mjs +865 -381
  79. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  80. package/lib/components/accordion/accordion/accordion.component.d.ts +1 -4
  81. package/lib/components/accordion/accordion-tab/accordion-tab.component.d.ts +1 -4
  82. package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -4
  83. package/lib/components/accordion/accordion.module.d.ts +1 -2
  84. package/lib/components/alert/alert/alert.component.d.ts +1 -4
  85. package/lib/components/alert/alert-close/alert-close.component.d.ts +1 -3
  86. package/lib/components/calendar/calendar.component.d.ts +4 -5
  87. package/lib/components/card/card/card.component.d.ts +1 -6
  88. package/lib/components/card/card-header/card-header.component.d.ts +1 -4
  89. package/lib/components/carousel/carousel/carousel.component.d.ts +9 -9
  90. package/lib/components/code-snippet/code-snippet.component.d.ts +12 -0
  91. package/lib/components/code-snippet/code-snippet.module.d.ts +10 -0
  92. package/lib/components/code-snippet/index.d.ts +2 -0
  93. package/lib/components/context-menu/context-menu.directive.d.ts +2 -2
  94. package/lib/components/context-menu/context-menu.module.d.ts +2 -1
  95. package/lib/components/copy/copy.directive.d.ts +11 -0
  96. package/lib/components/copy/copy.module.d.ts +8 -0
  97. package/lib/components/copy/index.d.ts +2 -0
  98. package/lib/components/datatable/datatable/datatable.component.d.ts +4 -5
  99. package/lib/components/datatable/row-template/row-template.directive.d.ts +1 -1
  100. package/lib/components/datepicker/datepicker.component.d.ts +11 -7
  101. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +3 -3
  102. package/lib/components/for/for.directive.d.ts +1 -0
  103. package/lib/components/index.d.ts +4 -0
  104. package/lib/components/modal/component/index.d.ts +2 -0
  105. package/lib/components/modal/component/modal/modal.component.d.ts +10 -0
  106. package/lib/components/modal/component/modal-content/modal-content.component.d.ts +13 -0
  107. package/lib/components/modal/directives/index.d.ts +3 -0
  108. package/lib/components/modal/directives/modal-body/modal-body.directive.d.ts +8 -0
  109. package/lib/components/modal/directives/modal-footer/modal-footer.directive.d.ts +8 -0
  110. package/lib/components/modal/directives/modal-header/modal-header.directive.d.ts +8 -0
  111. package/lib/components/modal/index.d.ts +4 -0
  112. package/lib/components/modal/interfaces/index.d.ts +1 -0
  113. package/lib/components/modal/interfaces/modal-animation-meta.d.ts +7 -0
  114. package/lib/components/modal/modal.module.d.ts +13 -0
  115. package/lib/components/modal/providers/modal-content.provider.d.ts +2 -0
  116. package/lib/components/modal/service/modal.service.d.ts +14 -0
  117. package/lib/components/multiselect/{multiselect.component.d.ts → component/multiselect.component.d.ts} +7 -6
  118. package/lib/components/multiselect/directives/button-template/button-template.directive.d.ts +8 -0
  119. package/lib/components/multiselect/directives/footer-template/footer-template.directive.d.ts +8 -0
  120. package/lib/components/multiselect/directives/header-template/header-template.directive.d.ts +8 -0
  121. package/lib/components/multiselect/directives/index.d.ts +3 -0
  122. package/lib/components/multiselect/index.d.ts +2 -1
  123. package/lib/components/multiselect/multiselect.module.d.ts +8 -5
  124. package/lib/components/navbar/index.d.ts +1 -0
  125. package/lib/components/navbar/navbar/navbar.component.d.ts +1 -1
  126. package/lib/components/navbar/navbar-brand/navbar-brand.component.d.ts +6 -0
  127. package/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.d.ts +4 -4
  128. package/lib/components/navbar/navbar-item/navbar-item.component.d.ts +3 -4
  129. package/lib/components/navbar/navbar.module.d.ts +5 -4
  130. package/lib/components/pagination/pagination/pagination.component.d.ts +9 -10
  131. package/lib/components/rating/index.d.ts +2 -0
  132. package/lib/components/rating/rating.component.d.ts +22 -0
  133. package/lib/components/rating/rating.module.d.ts +8 -0
  134. package/lib/components/select2/component/select2.component.d.ts +4 -6
  135. package/lib/components/snackbar/snackbar.module.d.ts +2 -1
  136. package/lib/components/tab-control/tab-control/tab-control.component.d.ts +4 -6
  137. package/lib/components/tab-control/tab-page/tab-page.component.d.ts +3 -4
  138. package/lib/components/toggle-button/toggle-button.component.d.ts +5 -5
  139. package/lib/components/tooltip/directive/tooltip.directive.d.ts +1 -1
  140. package/lib/components/tooltip/tooltip.module.d.ts +2 -1
  141. package/lib/interfaces/date-day-of-month.d.ts +1 -0
  142. package/lib/interfaces/index.d.ts +1 -0
  143. package/lib/interfaces/week.d.ts +1 -1
  144. package/lib/interfaces/weekday.d.ts +4 -0
  145. package/lib/pipes/format-bytes/index.d.ts +2 -0
  146. package/lib/pipes/index.d.ts +1 -0
  147. package/lib/services/calendar-month/calendar-month.service.d.ts +2 -0
  148. package/package.json +3 -2
  149. package/src/styles/custom.scss +12 -0
  150. package/src/styles/ngx-highlight-themes/solarized-dark.scss +89 -0
  151. package/src/styles/utilities/cursor.scss +2 -6
  152. package/src/styles/utilities/white-space.scss +10 -0
  153. package/esm2020/lib/components/multiselect/multiselect.component.mjs +0 -36
@@ -1,36 +1,28 @@
1
1
  import * as i0 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';
2
+ import { Component, ContentChildren, NgModule, Input, Injectable, Pipe, EventEmitter, Output, Directive, HostBinding, InjectionToken, Inject, HostListener, Injector, ViewChild, Host, SkipSelf, forwardRef, PLATFORM_ID, ContentChild, Optional, ViewChildren, TemplateRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
- import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
5
  import { SlideUpDownAnimation, FadeInOutAnimation, CarouselSlideAnimation, ColorTransitionAnimation } from '@mintplayer/ng-animations';
7
6
  import { Subject, BehaviorSubject, map, takeUntil, filter, take, Observable, combineLatest, debounceTime } from 'rxjs';
8
7
  import { map as map$1, takeUntil as takeUntil$1, take as take$1 } from 'rxjs/operators';
9
8
  import * as i1$1 from '@angular/cdk/overlay';
10
9
  import { OverlayModule } from '@angular/cdk/overlay';
11
- import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
10
+ import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
11
+ import * as i3 from 'ngx-highlightjs';
12
+ import { HighlightModule } from 'ngx-highlightjs';
12
13
  import '@mintplayer/ng-pagination';
13
14
  import * as i1$2 from '@mintplayer/ng-click-outside';
14
15
  import { ClickOutsideDirective, ClickOutsideModule } from '@mintplayer/ng-click-outside';
15
16
  import { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';
17
+ import * as i1$3 from '@angular/router';
16
18
  import { RouterModule, ROUTER_CONFIGURATION } from '@angular/router';
17
- import * as i3 from '@angular/forms';
19
+ import * as i3$1 from '@angular/forms';
18
20
  import { FormsModule } from '@angular/forms';
19
21
 
20
22
  class BsAccordionTabComponent {
21
23
  constructor(accordion) {
22
24
  this.accordion = accordion;
23
25
  }
24
- ngOnInit() {
25
- }
26
- headerClicked(event) {
27
- if (this.accordion.activeTab === this) {
28
- this.accordion.activeTab = null;
29
- }
30
- else {
31
- this.accordion.activeTab = this;
32
- }
33
- }
34
26
  }
35
27
  BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
36
28
  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] });
@@ -43,15 +35,13 @@ class BsAccordionComponent {
43
35
  constructor() {
44
36
  this.activeTab = null;
45
37
  }
46
- ngOnInit() {
47
- }
48
38
  }
49
39
  BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
40
  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: [""] });
51
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, decorators: [{
52
42
  type: Component,
53
43
  args: [{ selector: 'bs-accordion', template: "<ng-content></ng-content>", styles: [""] }]
54
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
44
+ }], propDecorators: { tabPages: [{
55
45
  type: ContentChildren,
56
46
  args: [BsAccordionTabComponent]
57
47
  }] } });
@@ -61,8 +51,6 @@ class BsAccordionTabHeaderComponent {
61
51
  this.accordionTab = accordionTab;
62
52
  this.accordion = accordion;
63
53
  }
64
- ngOnInit() {
65
- }
66
54
  headerClicked(event) {
67
55
  event.preventDefault();
68
56
  if (this.accordion.activeTab === this.accordionTab) {
@@ -72,15 +60,12 @@ class BsAccordionTabHeaderComponent {
72
60
  this.accordion.activeTab = this.accordionTab;
73
61
  }
74
62
  }
75
- foo(event) {
76
- event.preventDefault();
77
- }
78
63
  }
79
64
  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 });
80
- 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: [""] });
65
+ 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: [""] });
81
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
82
67
  type: Component,
83
- 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: [""] }]
68
+ args: [{ selector: 'bs-accordion-tab-header', template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
84
69
  }], ctorParameters: function () { return [{ type: BsAccordionTabComponent }, { type: BsAccordionComponent }]; } });
85
70
 
86
71
  class BsAccordionModule {
@@ -88,13 +73,11 @@ class BsAccordionModule {
88
73
  BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
89
74
  BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
90
75
  BsAccordionTabComponent,
91
- BsAccordionTabHeaderComponent], imports: [CommonModule,
92
- BrowserAnimationsModule], exports: [BsAccordionComponent,
76
+ BsAccordionTabHeaderComponent], imports: [CommonModule], exports: [BsAccordionComponent,
93
77
  BsAccordionTabComponent,
94
78
  BsAccordionTabHeaderComponent] });
95
79
  BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, imports: [[
96
- CommonModule,
97
- BrowserAnimationsModule
80
+ CommonModule
98
81
  ]] });
99
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, decorators: [{
100
83
  type: NgModule,
@@ -105,8 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
105
88
  BsAccordionTabHeaderComponent
106
89
  ],
107
90
  imports: [
108
- CommonModule,
109
- BrowserAnimationsModule
91
+ CommonModule
110
92
  ],
111
93
  exports: [
112
94
  BsAccordionComponent,
@@ -145,15 +127,13 @@ class BsAlertComponent {
145
127
  this.colors = Color;
146
128
  this.isVisible = true;
147
129
  }
148
- ngOnInit() {
149
- }
150
130
  }
151
131
  BsAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
152
132
  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] });
153
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAlertComponent, decorators: [{
154
134
  type: Component,
155
135
  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"] }]
156
- }], ctorParameters: function () { return []; }, propDecorators: { type: [{
136
+ }], propDecorators: { type: [{
157
137
  type: Input
158
138
  }] } });
159
139
 
@@ -161,8 +141,6 @@ class BsAlertCloseComponent {
161
141
  constructor(alert) {
162
142
  this.alert = alert;
163
143
  }
164
- ngOnInit() {
165
- }
166
144
  closeAlert() {
167
145
  this.alert.isVisible = false;
168
146
  }
@@ -199,22 +177,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
199
177
  class BsCalendarMonthService {
200
178
  getWeeks(month) {
201
179
  const firstAndLast = this.getFirstAndLastDayOfMonth(month);
202
- const days = this.dateDiff(firstAndLast.first, firstAndLast.last) + 1;
203
- const allDays = [
204
- ...this.generateList(this.dayOfWeekMondayBased(firstAndLast.first)).map(d => null),
205
- ...this.generateList(days).map(d => {
206
- return {
207
- date: new Date(firstAndLast.first.getFullYear(), firstAndLast.first.getMonth(), firstAndLast.first.getDate() + d),
208
- dayOfMonth: d + 1,
209
- };
210
- }),
211
- ...this.generateList(6 - this.dayOfWeekMondayBased(firstAndLast.last)).map(d => null),
212
- ];
180
+ const firstOfMonth = this.getMondayBefore(firstAndLast.first);
181
+ const lastOfMonth = this.getSundayAfter(firstAndLast.last);
182
+ const days = this.dateDiff(firstOfMonth, lastOfMonth) + 1;
183
+ const firstDayOffset = (firstAndLast.first.getDay() + 7 - 1) % 7;
184
+ const allDays = this.generateList(days).map(d => d - firstDayOffset).map(d => {
185
+ const wrongDate = new Date(firstAndLast.first.getFullYear(), firstAndLast.first.getMonth(), firstAndLast.first.getDate() + d);
186
+ const correctDate = new Date(wrongDate.getFullYear(), wrongDate.getMonth(), wrongDate.getDate());
187
+ return {
188
+ date: correctDate,
189
+ dayOfMonth: correctDate.getDate(),
190
+ isInMonth: (correctDate.getFullYear() === month.getFullYear()) && (correctDate.getMonth() === month.getMonth())
191
+ };
192
+ });
213
193
  const weeks = this.chunk(allDays, 7);
214
194
  const weeksMapped = weeks.map((w, i) => {
215
195
  return {
216
- number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), w.find(d => d !== null)?.dayOfMonth)),
217
- week: w
196
+ number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), w.find(d => d.isInMonth)?.dayOfMonth)),
197
+ days: w
218
198
  };
219
199
  });
220
200
  return weeksMapped;
@@ -239,10 +219,9 @@ class BsCalendarMonthService {
239
219
  return Math.ceil((utcDiff / (1000 * 60 * 60 * 24) + 1) / 7);
240
220
  }
241
221
  getFirstAndLastDayOfMonth(date) {
242
- return {
243
- first: new Date(date.getFullYear(), date.getMonth(), 1),
244
- last: new Date(date.getFullYear(), date.getMonth() + 1, 0)
245
- };
222
+ const first = new Date(date.getFullYear(), date.getMonth(), 1);
223
+ const last = new Date(date.getFullYear(), date.getMonth() + 1, 0);
224
+ return { first, last };
246
225
  }
247
226
  dateDiff(date1, date2) {
248
227
  const utc1 = this.toUTC(date1);
@@ -264,6 +243,21 @@ class BsCalendarMonthService {
264
243
  }
265
244
  return result;
266
245
  }
246
+ getMondayBefore(date) {
247
+ const day = date.getDay(), diff = date.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday
248
+ const monday = new Date(date);
249
+ monday.setDate(diff);
250
+ return monday;
251
+ }
252
+ getSundayAfter(date) {
253
+ const day = date.getDay();
254
+ const sunday = new Date(date);
255
+ if (day !== 0) {
256
+ const diff = date.getDate() + 7 - day;
257
+ sunday.setDate(diff);
258
+ }
259
+ return sunday;
260
+ }
267
261
  }
268
262
  BsCalendarMonthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarMonthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
269
263
  BsCalendarMonthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarMonthService, providedIn: 'root' });
@@ -308,9 +302,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
308
302
  }] });
309
303
 
310
304
  class BsCalendarComponent {
311
- constructor(calendarMonthService, ref) {
305
+ constructor(calendarMonthService) {
312
306
  this.calendarMonthService = calendarMonthService;
313
- this.ref = ref;
314
307
  this.destroyed$ = new Subject();
315
308
  //#region CurrentMonth
316
309
  this.currentMonth$ = new BehaviorSubject(new Date());
@@ -319,20 +312,21 @@ class BsCalendarComponent {
319
312
  //#region SelectedDate
320
313
  this.selectedDate$ = new BehaviorSubject(new Date());
321
314
  this.selectedDateChange = new EventEmitter();
322
- //#endregion
323
- this.daysOfWeek = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
324
315
  this.weeks$ = this.currentMonth$
325
316
  .pipe(map((month) => this.calendarMonthService.getWeeks(month)))
326
317
  .pipe(takeUntil(this.destroyed$));
327
318
  this.daysOfWeek$ = this.weeks$
328
319
  .pipe(filter((weeks) => weeks.length > 1))
329
- .pipe(map((weeks) => weeks[1].week))
330
- .pipe(map((week) => {
331
- const firstDay = week[0];
320
+ .pipe(map((weeks) => weeks[1].days))
321
+ .pipe(map((days) => {
322
+ const firstDay = days[0];
332
323
  if (firstDay) {
333
- return week.map((d) => {
324
+ return days.map((d) => {
334
325
  const date = new Date(firstDay.date.getFullYear(), firstDay.date.getMonth(), d?.dayOfMonth);
335
- return date.toLocaleString('default', { weekday: 'short' });
326
+ return {
327
+ short: date.toLocaleString('default', { weekday: 'short' }),
328
+ long: date.toLocaleString('default', { weekday: 'long' })
329
+ };
336
330
  });
337
331
  }
338
332
  else {
@@ -358,6 +352,7 @@ class BsCalendarComponent {
358
352
  set selectedDate(value) {
359
353
  this.selectedDate$.next(value);
360
354
  }
355
+ //#endregion
361
356
  ngOnDestroy() {
362
357
  this.destroyed$.next(true);
363
358
  }
@@ -388,12 +383,12 @@ class BsCalendarComponent {
388
383
  }
389
384
  }
390
385
  }
391
- BsCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarComponent, deps: [{ token: BsCalendarMonthService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
392
- BsCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCalendarComponent, selector: "bs-calendar", inputs: { currentMonth: "currentMonth", selectedDate: "selectedDate" }, outputs: { currentMonthChange: "currentMonthChange", selectedDateChange: "selectedDateChange" }, ngImport: i0, template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <i class=\"bi bi-chevron-left fw-bolder\"></i>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | ucFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <i class=\"bi bi-chevron-right fw-bolder\"></i>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n <th *ngFor=\"let dayOfWeek of daysOfWeek\">\n {{ dayOfWeek }}\n </th>\n </tr>\n <tr *ngFor=\"let week of (weeks$ | async)\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate$ | async, day.date)\" *ngFor=\"let day of week.week\" (click)=\"goto(day)\">\n <span *ngIf=\"day !== null\">{{ day.dayOfMonth }}</span>\n </td>\n </tr>\n</table>", styles: ["table{border-collapse:collapse;border:1px solid rgba(0,0,0,.125);background:#fff}table td,table th{width:40px;height:40px;text-align:center}table td span,table th span{cursor:pointer;white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid rgba(0,0,0,.125)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid rgba(0,0,0,.125)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid rgba(0,0,0,.125)}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "ucFirst": UcFirstPipe, "monthName": MonthNamePipe, "async": i1.AsyncPipe } });
386
+ BsCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarComponent, deps: [{ token: BsCalendarMonthService }], target: i0.ɵɵFactoryTarget.Component });
387
+ BsCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCalendarComponent, selector: "bs-calendar", inputs: { currentMonth: "currentMonth", selectedDate: "selectedDate" }, outputs: { currentMonthChange: "currentMonthChange", selectedDateChange: "selectedDateChange" }, ngImport: i0, template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <i class=\"bi bi-chevron-left fw-bolder\"></i>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | ucFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <i class=\"bi bi-chevron-right fw-bolder\"></i>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n <th *ngFor=\"let dayOfWeek of daysOfWeek$ | async\" [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n </tr>\n <tr *ngFor=\"let week of (weeks$ | async)\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate$ | async, day.date)\" *ngFor=\"let day of week.days\" (click)=\"goto(day)\">\n <span *ngIf=\"day !== null\" [class.text-muted]=\"!day.isInMonth\">{{ day.dayOfMonth }}</span>\n </td>\n </tr>\n</table>", styles: [".text-muted{color:#9ea7af!important}table{border-collapse:collapse;border:1px solid rgba(0,0,0,.125);background:#fff}table td,table th{width:40px;height:40px;text-align:center}table td span,table th span{cursor:pointer;white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid rgba(0,0,0,.125)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid rgba(0,0,0,.125)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid rgba(0,0,0,.125)}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "ucFirst": UcFirstPipe, "monthName": MonthNamePipe, "async": i1.AsyncPipe } });
393
388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarComponent, decorators: [{
394
389
  type: Component,
395
- args: [{ selector: 'bs-calendar', template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <i class=\"bi bi-chevron-left fw-bolder\"></i>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | ucFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <i class=\"bi bi-chevron-right fw-bolder\"></i>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n <th *ngFor=\"let dayOfWeek of daysOfWeek\">\n {{ dayOfWeek }}\n </th>\n </tr>\n <tr *ngFor=\"let week of (weeks$ | async)\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate$ | async, day.date)\" *ngFor=\"let day of week.week\" (click)=\"goto(day)\">\n <span *ngIf=\"day !== null\">{{ day.dayOfMonth }}</span>\n </td>\n </tr>\n</table>", styles: ["table{border-collapse:collapse;border:1px solid rgba(0,0,0,.125);background:#fff}table td,table th{width:40px;height:40px;text-align:center}table td span,table th span{cursor:pointer;white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid rgba(0,0,0,.125)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid rgba(0,0,0,.125)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid rgba(0,0,0,.125)}\n"] }]
396
- }], ctorParameters: function () { return [{ type: BsCalendarMonthService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { currentMonthChange: [{
390
+ args: [{ selector: 'bs-calendar', template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <i class=\"bi bi-chevron-left fw-bolder\"></i>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | ucFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <i class=\"bi bi-chevron-right fw-bolder\"></i>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n <th *ngFor=\"let dayOfWeek of daysOfWeek$ | async\" [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n </tr>\n <tr *ngFor=\"let week of (weeks$ | async)\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate$ | async, day.date)\" *ngFor=\"let day of week.days\" (click)=\"goto(day)\">\n <span *ngIf=\"day !== null\" [class.text-muted]=\"!day.isInMonth\">{{ day.dayOfMonth }}</span>\n </td>\n </tr>\n</table>", styles: [".text-muted{color:#9ea7af!important}table{border-collapse:collapse;border:1px solid rgba(0,0,0,.125);background:#fff}table td,table th{width:40px;height:40px;text-align:center}table td span,table th span{cursor:pointer;white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid rgba(0,0,0,.125)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid rgba(0,0,0,.125)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid rgba(0,0,0,.125)}\n"] }]
391
+ }], ctorParameters: function () { return [{ type: BsCalendarMonthService }]; }, propDecorators: { currentMonthChange: [{
397
392
  type: Output
398
393
  }], currentMonth: [{
399
394
  type: Input
@@ -515,32 +510,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
515
510
  }] });
516
511
 
517
512
  class BsCardComponent {
518
- constructor() {
519
- }
520
- ngOnInit() {
521
- }
522
- ngAfterViewInit() {
523
- }
524
513
  }
525
514
  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"] });
515
+ BsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCardComponent, selector: "bs-card", ngImport: i0, template: "<div class=\"card\">\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
516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardComponent, decorators: [{
528
517
  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 []; } });
518
+ args: [{ selector: 'bs-card', template: "<div class=\"card\">\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"] }]
519
+ }] });
531
520
 
532
521
  class BsCardHeaderComponent {
533
- constructor() {
534
- }
535
- ngOnInit() {
536
- }
537
522
  }
538
523
  BsCardHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
539
524
  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
525
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCardHeaderComponent, decorators: [{
541
526
  type: Component,
542
527
  args: [{ selector: 'bs-card-header', template: "<div class=\"card-header\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
543
- }], ctorParameters: function () { return []; } });
528
+ }] });
544
529
 
545
530
  class BsCardModule {
546
531
  }
@@ -582,9 +567,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
582
567
  class BsCarouselComponent {
583
568
  constructor() {
584
569
  this.animationsDisabled = false;
585
- //#region Animation
570
+ this.indicators = true;
586
571
  this._animation = 'slide';
587
- //#endregion
588
572
  this.destroyed$ = new Subject();
589
573
  this.currentImageCounter$ = new BehaviorSubject(-1);
590
574
  this.currentImageIndex$ = this.currentImageCounter$
@@ -597,7 +581,6 @@ class BsCarouselComponent {
597
581
  .pipe(map$1((index) => this.images.get(index)?.itemTemplate ?? null))
598
582
  .pipe(takeUntil$1(this.destroyed$));
599
583
  }
600
- ngOnInit() { }
601
584
  ngOnDestroy() {
602
585
  this.destroyed$.next(true);
603
586
  }
@@ -609,6 +592,7 @@ class BsCarouselComponent {
609
592
  this.currentImageCounter$.next(-1);
610
593
  }
611
594
  }
595
+ //#region Animation
612
596
  set animation(value) {
613
597
  this.animationsDisabled = true;
614
598
  this._animation = value;
@@ -619,6 +603,7 @@ class BsCarouselComponent {
619
603
  get animation() {
620
604
  return this._animation;
621
605
  }
606
+ //#endregion
622
607
  previousImage() {
623
608
  this.currentImageCounter$
624
609
  .pipe(take$1(1))
@@ -642,18 +627,20 @@ class BsCarouselComponent {
642
627
  }
643
628
  }
644
629
  BsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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] });
630
+ BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCarouselComponent, selector: "bs-carousel", inputs: { indicators: "indicators", animation: "animation" }, host: { properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "images", predicate: BsCarouselImageDirective }], ngImport: i0, template: "<div class=\"carousel slide\">\n <div *ngIf=\"indicators\" 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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i1.AsyncPipe }, animations: [FadeInOutAnimation, CarouselSlideAnimation] });
646
631
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCarouselComponent, decorators: [{
647
632
  type: Component,
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"] }]
633
+ args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation, CarouselSlideAnimation], template: "<div class=\"carousel slide\">\n <div *ngIf=\"indicators\" 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"] }]
649
634
  }], ctorParameters: function () { return []; }, propDecorators: { animationsDisabled: [{
650
635
  type: HostBinding,
651
636
  args: ['@.disabled']
652
- }], animation: [{
637
+ }], indicators: [{
653
638
  type: Input
654
639
  }], images: [{
655
640
  type: ContentChildren,
656
641
  args: [BsCarouselImageDirective]
642
+ }], animation: [{
643
+ type: Input
657
644
  }] } });
658
645
 
659
646
  class BsCarouselModule {
@@ -682,6 +669,251 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
682
669
  }]
683
670
  }] });
684
671
 
672
+ const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
673
+
674
+ class BsSnackbarComponent {
675
+ constructor(content) {
676
+ this.displayBlock = true;
677
+ this.width100 = true;
678
+ this.instance = null;
679
+ //#region Monitor @slideUpDown hooks
680
+ this.animationState = '';
681
+ this.animationStateChanged = new EventEmitter();
682
+ this.content = content;
683
+ }
684
+ onAnimationChanged(event) {
685
+ this.animationStateChanged.emit(event);
686
+ }
687
+ }
688
+ BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
689
+ 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] });
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
691
+ type: Component,
692
+ 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"] }]
693
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
694
+ type: Inject,
695
+ args: [SNACKBAR_CONTENT]
696
+ }] }]; }, propDecorators: { displayBlock: [{
697
+ type: HostBinding,
698
+ args: ['class.d-block']
699
+ }], width100: [{
700
+ type: HostBinding,
701
+ args: ['class.w-100']
702
+ }] } });
703
+
704
+ class BsSnackbarCloseDirective {
705
+ constructor(snackbarService) {
706
+ this.snackbarService = snackbarService;
707
+ }
708
+ onClick() {
709
+ this.snackbarService.hide(this.bsSnackbarClose);
710
+ }
711
+ }
712
+ BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
713
+ 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 });
714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
715
+ type: Directive,
716
+ args: [{
717
+ selector: '[bsSnackbarClose]'
718
+ }]
719
+ }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
720
+ type: Input
721
+ }], onClick: [{
722
+ type: HostListener,
723
+ args: ['click']
724
+ }] } });
725
+
726
+ class BsSnackbarModule {
727
+ }
728
+ BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
729
+ BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
730
+ BsSnackbarCloseDirective], imports: [CommonModule,
731
+ OverlayModule], exports: [BsSnackbarComponent,
732
+ BsSnackbarCloseDirective] });
733
+ BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
734
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
735
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
736
+ ], imports: [[
737
+ CommonModule,
738
+ OverlayModule
739
+ ]] });
740
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
741
+ type: NgModule,
742
+ args: [{
743
+ declarations: [
744
+ BsSnackbarComponent,
745
+ BsSnackbarCloseDirective
746
+ ],
747
+ imports: [
748
+ CommonModule,
749
+ OverlayModule
750
+ ],
751
+ exports: [
752
+ BsSnackbarComponent,
753
+ BsSnackbarCloseDirective
754
+ ],
755
+ providers: [
756
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
757
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
758
+ ]
759
+ }]
760
+ }] });
761
+
762
+ class BsSnackbarService {
763
+ constructor(overlay, parentInjector, componentFactoryResolver) {
764
+ this.overlay = overlay;
765
+ this.parentInjector = parentInjector;
766
+ this.componentFactoryResolver = componentFactoryResolver;
767
+ }
768
+ show(template) {
769
+ const injector = Injector.create({
770
+ providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
771
+ parent: this.parentInjector
772
+ });
773
+ const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
774
+ const overlayRef = this.overlay.create({
775
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
776
+ positionStrategy: this.overlay.position()
777
+ .global().centerHorizontally().bottom('0'),
778
+ width: '100%'
779
+ });
780
+ const componentInstance = overlayRef.attach(portal);
781
+ componentInstance.instance['instance'] = {
782
+ component: componentInstance,
783
+ overlay: overlayRef
784
+ };
785
+ return componentInstance.instance;
786
+ }
787
+ hide(snackbar) {
788
+ snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
789
+ snackbar['instance']?.overlay.dispose();
790
+ });
791
+ snackbar.animationState = 'void';
792
+ }
793
+ }
794
+ 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 });
795
+ BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: BsSnackbarModule });
796
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
797
+ type: Injectable,
798
+ args: [{
799
+ providedIn: BsSnackbarModule
800
+ }]
801
+ }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
802
+
803
+ class BsCopyDirective {
804
+ constructor(doc) {
805
+ this.bsCopy = null;
806
+ this.bsCopied = new EventEmitter();
807
+ this.doc = doc;
808
+ }
809
+ click(event) {
810
+ event.preventDefault();
811
+ const listener = (e) => {
812
+ if (!!this.bsCopy && !!window) {
813
+ const clipboard = e.clipboardData || window['clipboardData'] || null;
814
+ if (clipboard) {
815
+ clipboard.setData('text', this.bsCopy?.toString());
816
+ e.preventDefault();
817
+ this.bsCopied.emit(this.bsCopy);
818
+ }
819
+ }
820
+ };
821
+ this.doc.addEventListener('copy', listener, false);
822
+ this.doc.execCommand('copy');
823
+ this.doc.removeEventListener('copy', listener, false);
824
+ }
825
+ }
826
+ BsCopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyDirective, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
827
+ BsCopyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsCopyDirective, selector: "[bsCopy]", inputs: { bsCopy: "bsCopy" }, outputs: { bsCopied: "bsCopied" }, host: { listeners: { "click": "click($event)" } }, ngImport: i0 });
828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyDirective, decorators: [{
829
+ type: Directive,
830
+ args: [{
831
+ selector: '[bsCopy]',
832
+ }]
833
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
834
+ type: Inject,
835
+ args: [DOCUMENT]
836
+ }] }]; }, propDecorators: { bsCopy: [{
837
+ type: Input
838
+ }], bsCopied: [{
839
+ type: Output
840
+ }], click: [{
841
+ type: HostListener,
842
+ args: ['click', ['$event']]
843
+ }] } });
844
+
845
+ class BsCodeSnippetComponent {
846
+ constructor(snackbarService) {
847
+ this.snackbarService = snackbarService;
848
+ this.htmlToCopy = '';
849
+ }
850
+ copiedHtml() {
851
+ const snackbar = this.snackbarService.show(this.copiedTemplate);
852
+ setTimeout(() => this.snackbarService.hide(snackbar), 3000);
853
+ }
854
+ }
855
+ BsCodeSnippetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetComponent, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Component });
856
+ BsCodeSnippetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCodeSnippetComponent, selector: "bs-code-snippet", inputs: { htmlToCopy: "htmlToCopy" }, viewQueries: [{ propertyName: "copiedTemplate", first: true, predicate: ["copiedTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"position-relative\">\n <button #copyBtn [bsCopy]=\"htmlToCopy\" (bsCopied)=\"copiedHtml()\" class=\"btn btn-link rounded-0 text-light position-absolute copy-btn\">\n Copy html\n </button>\n <pre class=\"white-space-normal\">\n <code class=\"d-block white-space-pre\" [highlight]=\"htmlToCopy\"></code>\n </pre>\n <ng-template #copiedTemplate>\n <div class=\"p-3\">Copied!</div>\n </ng-template>\n</div>", styles: [".copy-btn{right:0}\n"], directives: [{ type: BsCopyDirective, selector: "[bsCopy]", inputs: ["bsCopy"], outputs: ["bsCopied"] }, { type: i3.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }] });
857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetComponent, decorators: [{
858
+ type: Component,
859
+ args: [{ selector: 'bs-code-snippet', template: "<div class=\"position-relative\">\n <button #copyBtn [bsCopy]=\"htmlToCopy\" (bsCopied)=\"copiedHtml()\" class=\"btn btn-link rounded-0 text-light position-absolute copy-btn\">\n Copy html\n </button>\n <pre class=\"white-space-normal\">\n <code class=\"d-block white-space-pre\" [highlight]=\"htmlToCopy\"></code>\n </pre>\n <ng-template #copiedTemplate>\n <div class=\"p-3\">Copied!</div>\n </ng-template>\n</div>", styles: [".copy-btn{right:0}\n"] }]
860
+ }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { htmlToCopy: [{
861
+ type: Input
862
+ }], copiedTemplate: [{
863
+ type: ViewChild,
864
+ args: ['copiedTemplate']
865
+ }] } });
866
+
867
+ class BsCopyModule {
868
+ }
869
+ BsCopyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
870
+ BsCopyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, declarations: [BsCopyDirective], imports: [CommonModule], exports: [BsCopyDirective] });
871
+ BsCopyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, imports: [[
872
+ CommonModule
873
+ ]] });
874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, decorators: [{
875
+ type: NgModule,
876
+ args: [{
877
+ declarations: [
878
+ BsCopyDirective
879
+ ],
880
+ imports: [
881
+ CommonModule
882
+ ],
883
+ exports: [
884
+ BsCopyDirective
885
+ ]
886
+ }]
887
+ }] });
888
+
889
+ class BsCodeSnippetModule {
890
+ }
891
+ BsCodeSnippetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
892
+ BsCodeSnippetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, declarations: [BsCodeSnippetComponent], imports: [CommonModule,
893
+ BsCopyModule,
894
+ HighlightModule], exports: [BsCodeSnippetComponent] });
895
+ BsCodeSnippetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, imports: [[
896
+ CommonModule,
897
+ BsCopyModule,
898
+ HighlightModule
899
+ ]] });
900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, decorators: [{
901
+ type: NgModule,
902
+ args: [{
903
+ declarations: [
904
+ BsCodeSnippetComponent
905
+ ],
906
+ imports: [
907
+ CommonModule,
908
+ BsCopyModule,
909
+ HighlightModule
910
+ ],
911
+ exports: [
912
+ BsCodeSnippetComponent
913
+ ]
914
+ }]
915
+ }] });
916
+
685
917
  class BsContextMenuDirective {
686
918
  constructor(overlay, templateRef, viewContainerRef, element) {
687
919
  this.overlay = overlay;
@@ -757,9 +989,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
757
989
  class BsContextMenuModule {
758
990
  }
759
991
  BsContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
760
- BsContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, declarations: [BsContextMenuDirective], imports: [CommonModule], exports: [BsContextMenuDirective] });
992
+ BsContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, declarations: [BsContextMenuDirective], imports: [CommonModule,
993
+ OverlayModule], exports: [BsContextMenuDirective] });
761
994
  BsContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, imports: [[
762
- CommonModule
995
+ CommonModule,
996
+ OverlayModule
763
997
  ]] });
764
998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, decorators: [{
765
999
  type: NgModule,
@@ -768,7 +1002,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
768
1002
  BsContextMenuDirective
769
1003
  ],
770
1004
  imports: [
771
- CommonModule
1005
+ CommonModule,
1006
+ OverlayModule
772
1007
  ],
773
1008
  exports: [
774
1009
  BsContextMenuDirective
@@ -847,85 +1082,80 @@ class BsPaginationComponent {
847
1082
  /** The number of boxes (excluding arrows) that's being shown on the pagination component. */
848
1083
  this.visibleNumberOfNumberBoxes$ = new Observable();
849
1084
  this._selectedPageNumber = 0;
850
- this.selectedPageNumberChange = new EventEmitter();
851
1085
  this._numberOfBoxes = 0;
852
1086
  this._pageNumbers = [];
853
1087
  this._showArrows = true;
1088
+ //#region SelectedPageNumber
1089
+ this.selectedPageNumberChange = new EventEmitter();
854
1090
  this.destroyed$ = new Subject();
855
- this.visibleNumberOfNumberBoxes$ =
856
- combineLatest([this.numberOfBoxes$, this.pageNumbers$, this.showArrows$])
857
- .pipe(takeUntil(this.destroyed$))
858
- .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
859
- if (numberOfBoxes <= 0) {
860
- return pageNumbers.length;
861
- }
862
- else if (!showArrows) {
863
- return Math.min(numberOfBoxes, pageNumbers.length);
864
- }
865
- else if (numberOfBoxes <= 2) {
866
- return Math.min(1, pageNumbers.length);
867
- }
868
- else {
869
- return Math.min(numberOfBoxes - 2, pageNumbers.length);
870
- }
871
- }));
872
- this.shownPageNumbers$ =
873
- combineLatest([this.pageNumbers$, this.selectedPageNumber$, this.visibleNumberOfNumberBoxes$])
874
- .pipe(takeUntil(this.destroyed$))
875
- .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
876
- let startIndex = 0;
877
- const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
878
- if (pageNumbers.indexOf(selectedPageNumber) < half) {
879
- startIndex = 0;
880
- }
881
- else if (pageNumbers.indexOf(selectedPageNumber) >= (pageNumbers.length - half)) {
882
- startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
883
- }
884
- else {
885
- startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
886
- }
887
- return [...Array(visibleNumberOfNumberBoxes).keys()]
888
- .map(p => p + startIndex)
889
- .map(p => ({
890
- page: pageNumbers[p],
891
- selected: pageNumbers[p] === selectedPageNumber
892
- }));
893
- }));
894
- this.isFirstPage$ =
895
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
896
- .pipe(takeUntil(this.destroyed$))
897
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
898
- return pageNumbers.indexOf(selectedPageNumber) === 0;
899
- }));
900
- this.isLastPage$ =
901
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
902
- .pipe(takeUntil(this.destroyed$))
903
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
904
- return pageNumbers.indexOf(selectedPageNumber) === (pageNumbers.length - 1);
1091
+ this.visibleNumberOfNumberBoxes$ = combineLatest([
1092
+ this.numberOfBoxes$,
1093
+ this.pageNumbers$,
1094
+ this.showArrows$,
1095
+ ])
1096
+ .pipe(takeUntil(this.destroyed$))
1097
+ .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
1098
+ if (numberOfBoxes <= 0) {
1099
+ return pageNumbers.length;
1100
+ }
1101
+ else if (!showArrows) {
1102
+ return Math.min(numberOfBoxes, pageNumbers.length);
1103
+ }
1104
+ else if (numberOfBoxes <= 2) {
1105
+ return Math.min(1, pageNumbers.length);
1106
+ }
1107
+ else {
1108
+ return Math.min(numberOfBoxes - 2, pageNumbers.length);
1109
+ }
1110
+ }));
1111
+ this.shownPageNumbers$ = combineLatest([
1112
+ this.pageNumbers$,
1113
+ this.selectedPageNumber$,
1114
+ this.visibleNumberOfNumberBoxes$,
1115
+ ])
1116
+ .pipe(takeUntil(this.destroyed$))
1117
+ .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
1118
+ let startIndex = 0;
1119
+ const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
1120
+ if (pageNumbers.indexOf(selectedPageNumber) < half) {
1121
+ startIndex = 0;
1122
+ }
1123
+ else if (pageNumbers.indexOf(selectedPageNumber) >=
1124
+ pageNumbers.length - half) {
1125
+ startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
1126
+ }
1127
+ else {
1128
+ startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
1129
+ }
1130
+ return [...Array(visibleNumberOfNumberBoxes).keys()]
1131
+ .map((p) => p + startIndex)
1132
+ .map((p) => ({
1133
+ page: pageNumbers[p],
1134
+ selected: pageNumbers[p] === selectedPageNumber,
905
1135
  }));
1136
+ }));
1137
+ this.isFirstPage$ = combineLatest([
1138
+ this.pageNumbers$,
1139
+ this.selectedPageNumber$,
1140
+ ])
1141
+ .pipe(takeUntil(this.destroyed$))
1142
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
1143
+ return pageNumbers.indexOf(selectedPageNumber) === 0;
1144
+ }));
1145
+ this.isLastPage$ = combineLatest([
1146
+ this.pageNumbers$,
1147
+ this.selectedPageNumber$,
1148
+ ])
1149
+ .pipe(takeUntil(this.destroyed$))
1150
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
1151
+ return (pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1);
1152
+ }));
906
1153
  this.selectedPageNumber$
907
1154
  .pipe(takeUntil(this.destroyed$))
908
1155
  .subscribe((selectedPageNumber) => {
909
1156
  this.selectedPageNumberChange.emit(selectedPageNumber);
910
1157
  });
911
1158
  }
912
- ngOnInit() {
913
- }
914
- ngOnDestroy() {
915
- this.destroyed$.next(true);
916
- }
917
- onSelectPage(event, page) {
918
- this.selectedPageNumber$.next(page);
919
- return false;
920
- }
921
- onPrevious() {
922
- this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
923
- return false;
924
- }
925
- onNext() {
926
- this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
927
- return false;
928
- }
929
1159
  set selectedPageNumber(value) {
930
1160
  this._selectedPageNumber = value;
931
1161
  this.selectedPageNumber$.next(value);
@@ -933,6 +1163,8 @@ class BsPaginationComponent {
933
1163
  get selectedPageNumber() {
934
1164
  return this._selectedPageNumber;
935
1165
  }
1166
+ //#endregion
1167
+ //#region NumberOfBoxes
936
1168
  set numberOfBoxes(value) {
937
1169
  this._numberOfBoxes = value;
938
1170
  this.numberOfBoxes$.next(value);
@@ -940,6 +1172,8 @@ class BsPaginationComponent {
940
1172
  get numberOfBoxes() {
941
1173
  return this._numberOfBoxes;
942
1174
  }
1175
+ //#endregion
1176
+ //#region PageNumbers
943
1177
  set pageNumbers(value) {
944
1178
  this._pageNumbers = value;
945
1179
  this.pageNumbers$.next(value);
@@ -947,6 +1181,8 @@ class BsPaginationComponent {
947
1181
  get pageNumbers() {
948
1182
  return this._pageNumbers;
949
1183
  }
1184
+ //#endregion
1185
+ //#region ShowArrows
950
1186
  set showArrows(value) {
951
1187
  this._showArrows = value;
952
1188
  this.showArrows$.next(value);
@@ -954,6 +1190,22 @@ class BsPaginationComponent {
954
1190
  get showArrows() {
955
1191
  return this._showArrows;
956
1192
  }
1193
+ //#endregion
1194
+ ngOnDestroy() {
1195
+ this.destroyed$.next(true);
1196
+ }
1197
+ onSelectPage(event, page) {
1198
+ this.selectedPageNumber$.next(page);
1199
+ return false;
1200
+ }
1201
+ onPrevious() {
1202
+ this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
1203
+ return false;
1204
+ }
1205
+ onNext() {
1206
+ this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
1207
+ return false;
1208
+ }
957
1209
  }
958
1210
  BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
959
1211
  BsPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsPaginationComponent, selector: "bs-pagination", inputs: { selectedPageNumber: "selectedPageNumber", numberOfBoxes: "numberOfBoxes", pageNumbers: "pageNumbers", showArrows: "showArrows" }, outputs: { selectedPageNumberChange: "selectedPageNumberChange" }, ngImport: i0, template: "<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\" [class.disabled]=\"isFirstPage$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async)\" class=\"page-item\"\n [ngClass]=\"{ 'active': pageNumber.selected }\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\" [class.disabled]=\"isLastPage$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>", styles: [":host{display:inline-block}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1.AsyncPipe } });
@@ -975,7 +1227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
975
1227
  class BsDatatableComponent {
976
1228
  constructor() {
977
1229
  this.columns = [];
978
- this.onReloadData = new EventEmitter();
1230
+ this.reloadData = new EventEmitter();
979
1231
  this.settings = new DatatableSettings();
980
1232
  this.settings.sortProperty = '';
981
1233
  this.settings.sortDirection = 'ascending';
@@ -994,17 +1246,15 @@ class BsDatatableComponent {
994
1246
  else {
995
1247
  this.settings.sortDirection = 'descending';
996
1248
  }
997
- this.onReloadData.emit();
1249
+ this.reloadData.emit();
998
1250
  }
999
1251
  }
1000
- ngOnInit() {
1001
- }
1002
1252
  }
1003
1253
  BsDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1004
- BsDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatatableComponent, selector: "bs-datatable", inputs: { settings: "settings", data: "data" }, outputs: { onReloadData: "onReloadData" }, queries: [{ propertyName: "columns", predicate: BsDatatableColumnDirective }], ngImport: i0, template: "<div class=\"table-responsive overflow-y-hidden mb-3\">\n <table class=\"table table-striped table-hover w-100 mb-0\" cellspacing=\"0\" role=\"grid\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" class=\"text-nowrap\"\n [class.sort]=\"column.bsDatatableColumn.sortable\"\n [class.sort-asc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!!data && !!rowTemplate\">\n <ng-container *ngFor=\"let item of data.data\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"onReloadData.emit()\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"onReloadData.emit()\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n</div>", styles: ["@charset \"UTF-8\";.overflow-y-hidden{overflow-y:hidden}.table thead th.sort{position:relative;cursor:pointer}.table thead th.sort:before,.table thead th.sort:after{position:absolute;display:block;opacity:.3;bottom:.5em}.table thead th.sort:before{content:\"\\2191\";right:1em}.table thead th.sort:after{content:\"\\2193\";right:.5em}.table thead th.sort.sort-asc:after{opacity:1}.table thead th.sort.sort-desc:before{opacity:1}\n"], components: [{ type: BsPaginationComponent, selector: "bs-pagination", inputs: ["selectedPageNumber", "numberOfBoxes", "pageNumbers", "showArrows"], outputs: ["selectedPageNumberChange"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1254
+ BsDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatatableComponent, selector: "bs-datatable", inputs: { settings: "settings", data: "data" }, outputs: { reloadData: "reloadData" }, queries: [{ propertyName: "columns", predicate: BsDatatableColumnDirective }], ngImport: i0, template: "<div class=\"table-responsive overflow-y-hidden mb-3\">\n <table class=\"table table-striped table-hover w-100 mb-0\" cellspacing=\"0\" role=\"grid\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" class=\"text-nowrap\"\n [class.sort]=\"column.bsDatatableColumn.sortable\"\n [class.sort-asc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!!data && !!rowTemplate\">\n <ng-container *ngFor=\"let item of data.data\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n</div>", styles: ["@charset \"UTF-8\";.overflow-y-hidden{overflow-y:hidden}.table thead th.sort{position:relative;cursor:pointer}.table thead th.sort:before,.table thead th.sort:after{position:absolute;display:block;opacity:.3;bottom:.5em}.table thead th.sort:before{content:\"\\2191\";right:1em}.table thead th.sort:after{content:\"\\2193\";right:.5em}.table thead th.sort.sort-asc:after{opacity:1}.table thead th.sort.sort-desc:before{opacity:1}\n"], components: [{ type: BsPaginationComponent, selector: "bs-pagination", inputs: ["selectedPageNumber", "numberOfBoxes", "pageNumbers", "showArrows"], outputs: ["selectedPageNumberChange"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1005
1255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, decorators: [{
1006
1256
  type: Component,
1007
- args: [{ selector: 'bs-datatable', template: "<div class=\"table-responsive overflow-y-hidden mb-3\">\n <table class=\"table table-striped table-hover w-100 mb-0\" cellspacing=\"0\" role=\"grid\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" class=\"text-nowrap\"\n [class.sort]=\"column.bsDatatableColumn.sortable\"\n [class.sort-asc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!!data && !!rowTemplate\">\n <ng-container *ngFor=\"let item of data.data\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"onReloadData.emit()\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"onReloadData.emit()\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n</div>", styles: ["@charset \"UTF-8\";.overflow-y-hidden{overflow-y:hidden}.table thead th.sort{position:relative;cursor:pointer}.table thead th.sort:before,.table thead th.sort:after{position:absolute;display:block;opacity:.3;bottom:.5em}.table thead th.sort:before{content:\"\\2191\";right:1em}.table thead th.sort:after{content:\"\\2193\";right:.5em}.table thead th.sort.sort-asc:after{opacity:1}.table thead th.sort.sort-desc:before{opacity:1}\n"] }]
1257
+ args: [{ selector: 'bs-datatable', template: "<div class=\"table-responsive overflow-y-hidden mb-3\">\n <table class=\"table table-striped table-hover w-100 mb-0\" cellspacing=\"0\" role=\"grid\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" class=\"text-nowrap\"\n [class.sort]=\"column.bsDatatableColumn.sortable\"\n [class.sort-asc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!!data && !!rowTemplate\">\n <ng-container *ngFor=\"let item of data.data\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n</div>", styles: ["@charset \"UTF-8\";.overflow-y-hidden{overflow-y:hidden}.table thead th.sort{position:relative;cursor:pointer}.table thead th.sort:before,.table thead th.sort:after{position:absolute;display:block;opacity:.3;bottom:.5em}.table thead th.sort:before{content:\"\\2191\";right:1em}.table thead th.sort:after{content:\"\\2193\";right:.5em}.table thead th.sort.sort-asc:after{opacity:1}.table thead th.sort.sort-desc:before{opacity:1}\n"] }]
1008
1258
  }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
1009
1259
  type: ContentChildren,
1010
1260
  args: [BsDatatableColumnDirective]
@@ -1012,7 +1262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1012
1262
  type: Input
1013
1263
  }], data: [{
1014
1264
  type: Input
1015
- }], onReloadData: [{
1265
+ }], reloadData: [{
1016
1266
  type: Output
1017
1267
  }] } });
1018
1268
 
@@ -1023,11 +1273,11 @@ class BsRowTemplateDirective {
1023
1273
  }
1024
1274
  }
1025
1275
  BsRowTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRowTemplateDirective, deps: [{ token: BsDatatableComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1026
- BsRowTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsRowTemplateDirective, selector: "[rowTemplate]", ngImport: i0 });
1276
+ BsRowTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsRowTemplateDirective, selector: "[bsRowTemplate]", ngImport: i0 });
1027
1277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRowTemplateDirective, decorators: [{
1028
1278
  type: Directive,
1029
1279
  args: [{
1030
- selector: '[rowTemplate]'
1280
+ selector: '[bsRowTemplate]'
1031
1281
  }]
1032
1282
  }], ctorParameters: function () { return [{ type: BsDatatableComponent }, { type: i0.TemplateRef }]; } });
1033
1283
 
@@ -1087,7 +1337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1087
1337
  }] });
1088
1338
 
1089
1339
  class BsDropdownMenuDirective extends ClickOutsideDirective {
1090
- constructor(dropdown, document, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1340
+ constructor(dropdown, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1091
1341
  super(elementRef, zone, platformId);
1092
1342
  this.dropdown = dropdown;
1093
1343
  this.viewContainerRef = viewContainerRef;
@@ -1097,7 +1347,6 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1097
1347
  this.destroyed$ = new Subject();
1098
1348
  this.overlayRef = null;
1099
1349
  this.templatePortal = null;
1100
- this.document = document;
1101
1350
  this.dropdown.isOpen$
1102
1351
  .pipe(takeUntil(this.destroyed$))
1103
1352
  .subscribe((isOpen) => {
@@ -1133,6 +1382,7 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1133
1382
  }
1134
1383
  });
1135
1384
  }
1385
+ get show() { return this.dropdown.isOpen; }
1136
1386
  clickedOutside(ev) {
1137
1387
  if (!this.wait) {
1138
1388
  if (!this.overlayRef?.overlayElement.contains(ev.target)) {
@@ -1145,26 +1395,23 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1145
1395
  }
1146
1396
  }
1147
1397
  }
1148
- 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 });
1149
- 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 });
1398
+ BsDropdownMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: forwardRef(() => BsDropdownDirective) }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
1399
+ BsDropdownMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]", host: { listeners: { "clickOutside": "clickedOutside($event)" }, properties: { "class.show": "this.show" } }, usesInheritance: true, ngImport: i0 });
1150
1400
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1151
1401
  type: Directive,
1152
1402
  args: [{
1153
- selector: '[bsDropdownMenu]',
1154
- host: {
1155
- '[class.show]': 'dropdown.isOpen',
1156
- },
1403
+ selector: '[bsDropdownMenu]'
1157
1404
  }]
1158
1405
  }], ctorParameters: function () { return [{ type: BsDropdownDirective, decorators: [{
1159
1406
  type: Inject,
1160
1407
  args: [forwardRef(() => BsDropdownDirective)]
1161
- }] }, { type: undefined, decorators: [{
1162
- type: Inject,
1163
- args: [DOCUMENT]
1164
- }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{
1408
+ }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
1165
1409
  type: Inject,
1166
1410
  args: [PLATFORM_ID]
1167
- }] }]; }, propDecorators: { clickedOutside: [{
1411
+ }] }]; }, propDecorators: { show: [{
1412
+ type: HostBinding,
1413
+ args: ['class.show']
1414
+ }], clickedOutside: [{
1168
1415
  type: HostListener,
1169
1416
  args: ['clickOutside', ['$event']]
1170
1417
  }] } });
@@ -1247,18 +1494,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1247
1494
 
1248
1495
  class BsDatepickerComponent {
1249
1496
  constructor() {
1250
- this.selectedDate = new Date();
1251
- this.currentMonth = new Date();
1497
+ //#region SelectedDate
1498
+ this._selectedDate = new Date();
1499
+ this.selectedDateChange = new EventEmitter();
1500
+ //#endregion
1501
+ //#region CurrentMonth
1502
+ this._currentMonth = new Date();
1503
+ this.currentMonthChange = new EventEmitter();
1252
1504
  }
1253
- ngOnInit() {
1505
+ get selectedDate() {
1506
+ return this._selectedDate;
1507
+ }
1508
+ set selectedDate(value) {
1509
+ this._selectedDate = value;
1510
+ this.selectedDateChange.emit(value);
1511
+ }
1512
+ get currentMonth() {
1513
+ return this._currentMonth;
1514
+ }
1515
+ set currentMonth(value) {
1516
+ this._currentMonth = value;
1517
+ this.currentMonthChange.emit(value);
1254
1518
  }
1255
1519
  }
1256
1520
  BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1257
- 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 } });
1521
+ BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatepickerComponent, selector: "bs-datepicker", inputs: { selectedDate: "selectedDate", currentMonth: "currentMonth" }, outputs: { selectedDateChange: "selectedDateChange", currentMonthChange: "currentMonthChange" }, 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 } });
1258
1522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1259
1523
  type: Component,
1260
1524
  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: [""] }]
1261
- }], ctorParameters: function () { return []; } });
1525
+ }], propDecorators: { selectedDateChange: [{
1526
+ type: Output
1527
+ }], selectedDate: [{
1528
+ type: Input
1529
+ }], currentMonthChange: [{
1530
+ type: Output
1531
+ }], currentMonth: [{
1532
+ type: Input
1533
+ }] } });
1262
1534
 
1263
1535
  class BsDropdownModule {
1264
1536
  }
@@ -1466,6 +1738,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1466
1738
  }] } });
1467
1739
 
1468
1740
  class BsForDirective {
1741
+ constructor() {
1742
+ this.defaultCursor = true;
1743
+ }
1469
1744
  onMouseClick() {
1470
1745
  if (!('tagName' in this.bsFor)) {
1471
1746
  this.bsFor.focus();
@@ -1482,13 +1757,16 @@ class BsForDirective {
1482
1757
  }
1483
1758
  }
1484
1759
  BsForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1485
- BsForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsForDirective, selector: "[bsFor]", inputs: { bsFor: "bsFor" }, host: { listeners: { "click": "onMouseClick()" } }, ngImport: i0 });
1760
+ BsForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsForDirective, selector: "[bsFor]", inputs: { bsFor: "bsFor" }, host: { listeners: { "click": "onMouseClick()" }, properties: { "class.cursor-default": "this.defaultCursor" } }, ngImport: i0 });
1486
1761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForDirective, decorators: [{
1487
1762
  type: Directive,
1488
1763
  args: [{
1489
1764
  selector: '[bsFor]'
1490
1765
  }]
1491
- }], propDecorators: { bsFor: [{
1766
+ }], propDecorators: { defaultCursor: [{
1767
+ type: HostBinding,
1768
+ args: ['class.cursor-default']
1769
+ }], bsFor: [{
1492
1770
  type: Input
1493
1771
  }], onMouseClick: [{
1494
1772
  type: HostListener,
@@ -1762,7 +2040,165 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1762
2040
  BsListGroupItemComponent
1763
2041
  ]
1764
2042
  }]
1765
- }] });
2043
+ }] });
2044
+
2045
+ class BsModalComponent {
2046
+ constructor() { }
2047
+ }
2048
+ BsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2049
+ BsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsModalComponent, selector: "bs-modal", ngImport: i0, template: "<div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n <div class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </div>\n</div>", styles: [""], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2050
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalComponent, decorators: [{
2051
+ type: Component,
2052
+ args: [{ selector: 'bs-modal', template: "<div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n <div class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </div>\n</div>", styles: [""] }]
2053
+ }], ctorParameters: function () { return []; } });
2054
+
2055
+ const MODAL_CONTENT = new InjectionToken('ModalContent');
2056
+
2057
+ class BsModalContentComponent {
2058
+ constructor(content) {
2059
+ this.instance = null;
2060
+ //#region Monitor @slideUpDown hooks
2061
+ this.animationState = '';
2062
+ this.animationStateChanged = new EventEmitter();
2063
+ this.content = content;
2064
+ }
2065
+ onAnimationChanged(event) {
2066
+ this.animationStateChanged.emit(event);
2067
+ }
2068
+ }
2069
+ BsModalContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalContentComponent, deps: [{ token: MODAL_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2070
+ BsModalContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsModalContentComponent, selector: "bs-modal-content", ngImport: i0, template: "<div class=\"modal d-block\" tabindex=\"-1\"\n [@fadeInOut]=\"animationState\"\n (@fadeInOut.start)=\"onAnimationChanged($event)\"\n (@fadeInOut.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n\n</div>", styles: [""], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [FadeInOutAnimation] });
2071
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalContentComponent, decorators: [{
2072
+ type: Component,
2073
+ args: [{ selector: 'bs-modal-content', animations: [FadeInOutAnimation], template: "<div class=\"modal d-block\" tabindex=\"-1\"\n [@fadeInOut]=\"animationState\"\n (@fadeInOut.start)=\"onAnimationChanged($event)\"\n (@fadeInOut.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n\n</div>", styles: [""] }]
2074
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
2075
+ type: Inject,
2076
+ args: [MODAL_CONTENT]
2077
+ }] }]; } });
2078
+
2079
+ class BsModalHeaderDirective {
2080
+ constructor(modal, template) {
2081
+ modal.header = template;
2082
+ }
2083
+ }
2084
+ BsModalHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalHeaderDirective, deps: [{ token: BsModalComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
2085
+ BsModalHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsModalHeaderDirective, selector: "[bsModalHeader]", ngImport: i0 });
2086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalHeaderDirective, decorators: [{
2087
+ type: Directive,
2088
+ args: [{
2089
+ selector: '[bsModalHeader]'
2090
+ }]
2091
+ }], ctorParameters: function () { return [{ type: BsModalComponent }, { type: i0.TemplateRef }]; } });
2092
+
2093
+ class BsModalBodyDirective {
2094
+ constructor(modal, template) {
2095
+ modal.body = template;
2096
+ }
2097
+ }
2098
+ BsModalBodyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalBodyDirective, deps: [{ token: BsModalComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
2099
+ BsModalBodyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsModalBodyDirective, selector: "[bsModalBody]", ngImport: i0 });
2100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalBodyDirective, decorators: [{
2101
+ type: Directive,
2102
+ args: [{
2103
+ selector: '[bsModalBody]'
2104
+ }]
2105
+ }], ctorParameters: function () { return [{ type: BsModalComponent }, { type: i0.TemplateRef }]; } });
2106
+
2107
+ class BsModalFooterDirective {
2108
+ constructor(modal, template) {
2109
+ modal.footer = template;
2110
+ }
2111
+ }
2112
+ BsModalFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalFooterDirective, deps: [{ token: BsModalComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
2113
+ BsModalFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsModalFooterDirective, selector: "[bsModalFooter]", ngImport: i0 });
2114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalFooterDirective, decorators: [{
2115
+ type: Directive,
2116
+ args: [{
2117
+ selector: '[bsModalFooter]'
2118
+ }]
2119
+ }], ctorParameters: function () { return [{ type: BsModalComponent }, { type: i0.TemplateRef }]; } });
2120
+
2121
+ class BsModalModule {
2122
+ }
2123
+ BsModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2124
+ BsModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, declarations: [BsModalHeaderDirective,
2125
+ BsModalBodyDirective,
2126
+ BsModalFooterDirective,
2127
+ BsModalComponent,
2128
+ BsModalContentComponent], imports: [CommonModule,
2129
+ OverlayModule], exports: [BsModalHeaderDirective,
2130
+ BsModalBodyDirective,
2131
+ BsModalFooterDirective,
2132
+ BsModalComponent] });
2133
+ BsModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, imports: [[
2134
+ CommonModule,
2135
+ OverlayModule
2136
+ ]] });
2137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, decorators: [{
2138
+ type: NgModule,
2139
+ args: [{
2140
+ declarations: [
2141
+ BsModalHeaderDirective,
2142
+ BsModalBodyDirective,
2143
+ BsModalFooterDirective,
2144
+ BsModalComponent,
2145
+ BsModalContentComponent
2146
+ ],
2147
+ imports: [
2148
+ CommonModule,
2149
+ OverlayModule
2150
+ ],
2151
+ exports: [
2152
+ BsModalHeaderDirective,
2153
+ BsModalBodyDirective,
2154
+ BsModalFooterDirective,
2155
+ BsModalComponent
2156
+ ]
2157
+ }]
2158
+ }] });
2159
+
2160
+ class BsModalService {
2161
+ constructor(overlay, parentInjector, componentFactoryResolver) {
2162
+ this.overlay = overlay;
2163
+ this.parentInjector = parentInjector;
2164
+ this.componentFactoryResolver = componentFactoryResolver;
2165
+ }
2166
+ show(template) {
2167
+ const injector = Injector.create({
2168
+ providers: [{ provide: MODAL_CONTENT, useValue: template }],
2169
+ parent: this.parentInjector
2170
+ });
2171
+ const portal = new ComponentPortal(BsModalContentComponent, null, injector, this.componentFactoryResolver);
2172
+ const overlayRef = this.overlay.create({
2173
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
2174
+ positionStrategy: this.overlay.position()
2175
+ .global().centerHorizontally().bottom('0').top('0').left('0').right('0'),
2176
+ width: '100%',
2177
+ hasBackdrop: true
2178
+ });
2179
+ const componentInstance = overlayRef.attach(portal);
2180
+ console.log('instance', componentInstance);
2181
+ componentInstance.instance['instance'] = {
2182
+ component: componentInstance,
2183
+ overlay: overlayRef
2184
+ };
2185
+ return componentInstance.instance;
2186
+ }
2187
+ hide(modal) {
2188
+ modal.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2189
+ modal['instance']?.overlay.dispose();
2190
+ });
2191
+ modal.animationState = 'void';
2192
+ }
2193
+ }
2194
+ BsModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalService, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
2195
+ BsModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalService, providedIn: BsModalModule });
2196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalService, decorators: [{
2197
+ type: Injectable,
2198
+ args: [{
2199
+ providedIn: BsModalModule
2200
+ }]
2201
+ }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
1766
2202
 
1767
2203
  class BsMultiselectComponent {
1768
2204
  constructor() {
@@ -1770,36 +2206,82 @@ class BsMultiselectComponent {
1770
2206
  this.selectedItems = [];
1771
2207
  }
1772
2208
  itemChange(item, event) {
1773
- if (!!event.target.checked) {
2209
+ if (event.target.checked) {
1774
2210
  this.selectedItems.push(item);
1775
2211
  }
1776
2212
  else {
1777
2213
  this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
1778
2214
  }
1779
2215
  }
1780
- ngOnInit() {
1781
- }
1782
2216
  }
1783
2217
  BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1784
- 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"] }] });
2218
+ BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true }], ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\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 <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>", styles: [".mw-250px{min-width:250px}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1785
2219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
1786
2220
  type: Component,
1787
- 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"] }]
1788
- }], ctorParameters: function () { return []; }, propDecorators: { template: [{
1789
- type: ContentChild,
1790
- args: [TemplateRef]
1791
- }], items: [{
2221
+ args: [{ selector: 'bs-multiselect', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\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 <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>", styles: [".mw-250px{min-width:250px}\n"] }]
2222
+ }], propDecorators: { items: [{
1792
2223
  type: Input
1793
2224
  }], selectedItems: [{
1794
2225
  type: Input
2226
+ }], defaultButtonTemplate: [{
2227
+ type: ViewChild,
2228
+ args: ['defaultButtonTemplate']
1795
2229
  }] } });
1796
2230
 
2231
+ class BsHeaderTemplateDirective {
2232
+ constructor(template, multiselect) {
2233
+ multiselect.headerTemplate = template;
2234
+ }
2235
+ }
2236
+ BsHeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: BsMultiselectComponent }], target: i0.ɵɵFactoryTarget.Directive });
2237
+ BsHeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsHeaderTemplateDirective, selector: "[bsHeaderTemplate]", ngImport: i0 });
2238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsHeaderTemplateDirective, decorators: [{
2239
+ type: Directive,
2240
+ args: [{
2241
+ selector: '[bsHeaderTemplate]'
2242
+ }]
2243
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsMultiselectComponent }]; } });
2244
+
2245
+ class BsFooterTemplateDirective {
2246
+ constructor(template, multiselect) {
2247
+ multiselect.footerTemplate = template;
2248
+ }
2249
+ }
2250
+ BsFooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFooterTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: BsMultiselectComponent }], target: i0.ɵɵFactoryTarget.Directive });
2251
+ BsFooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsFooterTemplateDirective, selector: "[bsFooterTemplate]", ngImport: i0 });
2252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFooterTemplateDirective, decorators: [{
2253
+ type: Directive,
2254
+ args: [{
2255
+ selector: '[bsFooterTemplate]'
2256
+ }]
2257
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsMultiselectComponent }]; } });
2258
+
2259
+ class BsButtonTemplateDirective {
2260
+ constructor(template, multiselect) {
2261
+ multiselect.buttonTemplate = template;
2262
+ }
2263
+ }
2264
+ BsButtonTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsButtonTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: BsMultiselectComponent }], target: i0.ɵɵFactoryTarget.Directive });
2265
+ BsButtonTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsButtonTemplateDirective, selector: "[bsButtonTemplate]", ngImport: i0 });
2266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsButtonTemplateDirective, decorators: [{
2267
+ type: Directive,
2268
+ args: [{
2269
+ selector: '[bsButtonTemplate]'
2270
+ }]
2271
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsMultiselectComponent }]; } });
2272
+
1797
2273
  class BsMultiselectModule {
1798
2274
  }
1799
2275
  BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1800
- BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent], imports: [CommonModule,
2276
+ BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent,
2277
+ BsHeaderTemplateDirective,
2278
+ BsFooterTemplateDirective,
2279
+ BsButtonTemplateDirective], imports: [CommonModule,
1801
2280
  BsDropdownModule,
1802
- FocusOnLoadModule], exports: [BsMultiselectComponent] });
2281
+ FocusOnLoadModule], exports: [BsMultiselectComponent,
2282
+ BsHeaderTemplateDirective,
2283
+ BsFooterTemplateDirective,
2284
+ BsButtonTemplateDirective] });
1803
2285
  BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
1804
2286
  CommonModule,
1805
2287
  BsDropdownModule,
@@ -1809,7 +2291,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1809
2291
  type: NgModule,
1810
2292
  args: [{
1811
2293
  declarations: [
1812
- BsMultiselectComponent
2294
+ BsMultiselectComponent,
2295
+ BsHeaderTemplateDirective,
2296
+ BsFooterTemplateDirective,
2297
+ BsButtonTemplateDirective
1813
2298
  ],
1814
2299
  imports: [
1815
2300
  CommonModule,
@@ -1817,7 +2302,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1817
2302
  FocusOnLoadModule,
1818
2303
  ],
1819
2304
  exports: [
1820
- BsMultiselectComponent
2305
+ BsMultiselectComponent,
2306
+ BsHeaderTemplateDirective,
2307
+ BsFooterTemplateDirective,
2308
+ BsButtonTemplateDirective
1821
2309
  ]
1822
2310
  }]
1823
2311
  }] });
@@ -1833,10 +2321,10 @@ class BsNavbarComponent {
1833
2321
  }
1834
2322
  }
1835
2323
  BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1836
- BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
2324
+ BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
1837
2325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
1838
2326
  type: Component,
1839
- args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] }]
2327
+ args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] }]
1840
2328
  }], propDecorators: { nav: [{
1841
2329
  type: ViewChild,
1842
2330
  args: ['nav']
@@ -1909,12 +2397,9 @@ class BsNavbarItemComponent {
1909
2397
  this.anchorTag = null;
1910
2398
  this.parentDropdown = parentDropdown;
1911
2399
  }
1912
- ngOnInit() {
1913
- }
1914
2400
  ngAfterContentChecked() {
2401
+ this.anchorTag = this.element.nativeElement.querySelector('li a');
1915
2402
  if (this.hasDropdown) {
1916
- window.element = this.element.nativeElement;
1917
- this.anchorTag = this.element.nativeElement.querySelector('li a');
1918
2403
  (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
1919
2404
  if (this.anchorTag && !this.anchorTag.onclick) {
1920
2405
  this.anchorTag.onclick = (ev) => {
@@ -1931,6 +2416,20 @@ class BsNavbarItemComponent {
1931
2416
  };
1932
2417
  }
1933
2418
  }
2419
+ else {
2420
+ // Close if this is a link
2421
+ if (this.parentDropdown && this.dropdowns.length === 0) {
2422
+ if (this.anchorTag && !this.anchorTag.onclick) {
2423
+ this.anchorTag.onclick = (ev) => {
2424
+ let d = this.parentDropdown;
2425
+ while (d && d.autoclose) {
2426
+ d.isVisible = false;
2427
+ d = d.parentDropdown;
2428
+ }
2429
+ };
2430
+ }
2431
+ }
2432
+ }
1934
2433
  }
1935
2434
  }
1936
2435
  BsNavbarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarItemComponent, deps: [{ token: BsNavbarDropdownComponent, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
@@ -1947,6 +2446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1947
2446
 
1948
2447
  class BsNavbarDropdownComponent {
1949
2448
  constructor(parentDropdown, navbarItem) {
2449
+ this.autoclose = true;
1950
2450
  this.isVisible = false;
1951
2451
  this.parentDropdown = parentDropdown;
1952
2452
  this.navbarItem = navbarItem;
@@ -1954,11 +2454,9 @@ class BsNavbarDropdownComponent {
1954
2454
  get elementsToExclude() {
1955
2455
  return [this.navbarItem.anchorTag].filter((a) => a).map((a) => a);
1956
2456
  }
1957
- ngOnInit() {
1958
- }
1959
2457
  }
1960
2458
  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 });
1961
- 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"] }] });
2459
+ BsNavbarDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarDropdownComponent, selector: "bs-navbar-dropdown", inputs: { autoclose: "autoclose" }, 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"] }] });
1962
2460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarDropdownComponent, decorators: [{
1963
2461
  type: Component,
1964
2462
  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"] }]
@@ -1973,7 +2471,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1973
2471
  }, {
1974
2472
  type: Inject,
1975
2473
  args: [forwardRef(() => BsNavbarItemComponent)]
1976
- }] }]; }, propDecorators: { childDropdowns: [{
2474
+ }] }]; }, propDecorators: { autoclose: [{
2475
+ type: Input
2476
+ }], childDropdowns: [{
1977
2477
  type: ContentChildren,
1978
2478
  args: [forwardRef(() => BsNavbarDropdownComponent), { descendants: true }]
1979
2479
  }] } });
@@ -2065,6 +2565,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2065
2565
  args: ['navbarContent']
2066
2566
  }] } });
2067
2567
 
2568
+ class BsNavbarBrandComponent {
2569
+ constructor() {
2570
+ this.routerLink = [];
2571
+ }
2572
+ }
2573
+ BsNavbarBrandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarBrandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2574
+ BsNavbarBrandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarBrandComponent, selector: "bs-navbar-brand", inputs: { routerLink: "routerLink" }, ngImport: i0, template: "<a class=\"navbar-brand mx-auto mx-md-unset\" [routerLink]=\"routerLink\">\n <ng-content></ng-content>\n</a>", styles: [""], directives: [{ type: i1$3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: NavLinkDirective, selector: "bs-navbar-item > a[routerLink]" }] });
2575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarBrandComponent, decorators: [{
2576
+ type: Component,
2577
+ args: [{ selector: 'bs-navbar-brand', template: "<a class=\"navbar-brand mx-auto mx-md-unset\" [routerLink]=\"routerLink\">\n <ng-content></ng-content>\n</a>", styles: [""] }]
2578
+ }], propDecorators: { routerLink: [{
2579
+ type: Input
2580
+ }] } });
2581
+
2068
2582
  class BsNavbarModule {
2069
2583
  }
2070
2584
  BsNavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -2074,7 +2588,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
2074
2588
  BsNavbarItemComponent,
2075
2589
  DropdownToggleDirective,
2076
2590
  NavLinkDirective,
2077
- NavbarContentDirective], imports: [CommonModule,
2591
+ NavbarContentDirective,
2592
+ BsNavbarBrandComponent], imports: [CommonModule,
2078
2593
  RouterModule,
2079
2594
  ClickOutsideModule], exports: [BsNavbarComponent,
2080
2595
  BsNavbarNavComponent,
@@ -2082,7 +2597,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
2082
2597
  BsNavbarItemComponent,
2083
2598
  DropdownToggleDirective,
2084
2599
  NavLinkDirective,
2085
- NavbarContentDirective] });
2600
+ NavbarContentDirective,
2601
+ BsNavbarBrandComponent] });
2086
2602
  BsNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, imports: [[
2087
2603
  CommonModule,
2088
2604
  RouterModule,
@@ -2098,7 +2614,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2098
2614
  BsNavbarItemComponent,
2099
2615
  DropdownToggleDirective,
2100
2616
  NavLinkDirective,
2101
- NavbarContentDirective
2617
+ NavbarContentDirective,
2618
+ BsNavbarBrandComponent
2102
2619
  ],
2103
2620
  imports: [
2104
2621
  CommonModule,
@@ -2112,7 +2629,98 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2112
2629
  BsNavbarItemComponent,
2113
2630
  DropdownToggleDirective,
2114
2631
  NavLinkDirective,
2115
- NavbarContentDirective
2632
+ NavbarContentDirective,
2633
+ BsNavbarBrandComponent
2634
+ ]
2635
+ }]
2636
+ }] });
2637
+
2638
+ class BsRatingComponent {
2639
+ constructor() {
2640
+ this.destroyed$ = new Subject();
2641
+ this.maximum$ = new BehaviorSubject(5);
2642
+ this.value$ = new BehaviorSubject(3);
2643
+ this.previewValue$ = new BehaviorSubject(null);
2644
+ //#endregion
2645
+ //#region Value
2646
+ this.valueChange = new EventEmitter();
2647
+ this.starsChange = new EventEmitter();
2648
+ this.stars$ = combineLatest([this.maximum$, this.previewValue$, this.value$])
2649
+ .pipe(map(([maximum, previewValue, value]) => {
2650
+ const v = previewValue ?? value;
2651
+ return [
2652
+ ...[...Array(v).keys()].map(i => true),
2653
+ ...[...Array(maximum - v).keys()].map(i => false)
2654
+ ];
2655
+ }));
2656
+ combineLatest([this.previewValue$, this.value$])
2657
+ .pipe(takeUntil(this.destroyed$))
2658
+ .subscribe(([previewValue, value]) => {
2659
+ const v = previewValue ?? value;
2660
+ this.starsChange.emit(v);
2661
+ });
2662
+ }
2663
+ //#region Maximum
2664
+ set maximum(value) {
2665
+ this.maximum$.next(value);
2666
+ }
2667
+ get value() {
2668
+ return this.value$.value;
2669
+ }
2670
+ set value(value) {
2671
+ this.value$.next(value);
2672
+ this.valueChange.emit(value);
2673
+ }
2674
+ //#endregion
2675
+ ngOnDestroy() {
2676
+ this.destroyed$.next(true);
2677
+ }
2678
+ hoverValue(index) {
2679
+ this.previewValue$.next(index + 1);
2680
+ }
2681
+ selectValue(index) {
2682
+ this.value = index + 1;
2683
+ }
2684
+ onMouseLeave() {
2685
+ this.previewValue$.next(null);
2686
+ }
2687
+ }
2688
+ BsRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2689
+ BsRatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsRatingComponent, selector: "bs-rating", inputs: { maximum: "maximum", value: "value" }, outputs: { valueChange: "valueChange", starsChange: "starsChange" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, ngImport: i0, template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>", styles: [""], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe } });
2690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, decorators: [{
2691
+ type: Component,
2692
+ args: [{ selector: 'bs-rating', template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>", styles: [""] }]
2693
+ }], ctorParameters: function () { return []; }, propDecorators: { maximum: [{
2694
+ type: Input
2695
+ }], valueChange: [{
2696
+ type: Output
2697
+ }], starsChange: [{
2698
+ type: Output
2699
+ }], value: [{
2700
+ type: Input
2701
+ }], onMouseLeave: [{
2702
+ type: HostListener,
2703
+ args: ['mouseleave']
2704
+ }] } });
2705
+
2706
+ class BsRatingModule {
2707
+ }
2708
+ BsRatingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2709
+ BsRatingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, declarations: [BsRatingComponent], imports: [CommonModule], exports: [BsRatingComponent] });
2710
+ BsRatingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, imports: [[
2711
+ CommonModule
2712
+ ]] });
2713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, decorators: [{
2714
+ type: NgModule,
2715
+ args: [{
2716
+ declarations: [
2717
+ BsRatingComponent
2718
+ ],
2719
+ imports: [
2720
+ CommonModule
2721
+ ],
2722
+ exports: [
2723
+ BsRatingComponent
2116
2724
  ]
2117
2725
  }]
2118
2726
  }] });
@@ -2325,8 +2933,6 @@ class BsSelect2Component {
2325
2933
  this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
2326
2934
  this.focus();
2327
2935
  }
2328
- ngOnInit() {
2329
- }
2330
2936
  onResize() {
2331
2937
  this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);
2332
2938
  }
@@ -2335,11 +2941,14 @@ class BsSelect2Component {
2335
2941
  }
2336
2942
  }
2337
2943
  BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
2338
- BsSelect2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "window:resize": "onResize()", "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }, { propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n", styles: [".items-box{display:block;position:relative;width:100%;min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"], directives: [{ type: 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 } });
2944
+ BsSelect2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "window:resize": "onResize()", "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.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 } });
2339
2945
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, decorators: [{
2340
2946
  type: Component,
2341
- 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"] }]
2342
- }], ctorParameters: function () { return []; }, propDecorators: { searchBox: [{
2947
+ args: [{ selector: 'bs-select2', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\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"] }]
2948
+ }], propDecorators: { defaultItemTemplate: [{
2949
+ type: ViewChild,
2950
+ args: ['defaultItemTemplate', { static: true }]
2951
+ }], searchBox: [{
2343
2952
  type: ViewChild,
2344
2953
  args: ['searchBox']
2345
2954
  }], itemsBox: [{
@@ -2362,9 +2971,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2362
2971
  }], focus: [{
2363
2972
  type: HostListener,
2364
2973
  args: ['click']
2365
- }], defaultItemTemplate: [{
2366
- type: ViewChild,
2367
- args: ['defaultItemTemplate', { static: true }]
2368
2974
  }] } });
2369
2975
 
2370
2976
  class BsItemTemplateDirective {
@@ -2439,160 +3045,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2439
3045
  }]
2440
3046
  }] });
2441
3047
 
2442
- const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
2443
-
2444
- class BsSnackbarComponent {
2445
- constructor(content) {
2446
- this.displayBlock = true;
2447
- this.width100 = true;
2448
- this.instance = null;
2449
- //#region Monitor @slideUpDown hooks
2450
- this.animationState = '';
2451
- this.animationStateChanged = new EventEmitter();
2452
- this.content = content;
2453
- }
2454
- onAnimationChanged(event) {
2455
- this.animationStateChanged.emit(event);
2456
- }
2457
- }
2458
- BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2459
- 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] });
2460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
2461
- type: Component,
2462
- 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"] }]
2463
- }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
2464
- type: Inject,
2465
- args: [SNACKBAR_CONTENT]
2466
- }] }]; }, propDecorators: { displayBlock: [{
2467
- type: HostBinding,
2468
- args: ['class.d-block']
2469
- }], width100: [{
2470
- type: HostBinding,
2471
- args: ['class.w-100']
2472
- }] } });
2473
-
2474
- class BsSnackbarService {
2475
- constructor(overlay, parentInjector, componentFactoryResolver) {
2476
- this.overlay = overlay;
2477
- this.parentInjector = parentInjector;
2478
- this.componentFactoryResolver = componentFactoryResolver;
2479
- }
2480
- show(template) {
2481
- const injector = Injector.create({
2482
- providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
2483
- parent: this.parentInjector
2484
- });
2485
- const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
2486
- const overlayRef = this.overlay.create({
2487
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
2488
- positionStrategy: this.overlay.position()
2489
- .global().centerHorizontally().bottom('0'),
2490
- width: '100%'
2491
- });
2492
- const componentInstance = overlayRef.attach(portal);
2493
- componentInstance.instance['instance'] = {
2494
- component: componentInstance,
2495
- overlay: overlayRef
2496
- };
2497
- return componentInstance.instance;
2498
- }
2499
- hide(snackbar) {
2500
- snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2501
- snackbar['instance']?.overlay.dispose();
2502
- });
2503
- snackbar.animationState = 'void';
2504
- }
2505
- }
2506
- 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 });
2507
- BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: 'root' });
2508
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
2509
- type: Injectable,
2510
- args: [{
2511
- providedIn: 'root'
2512
- }]
2513
- }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
2514
-
2515
- class BsSnackbarCloseDirective {
2516
- constructor(snackbarService) {
2517
- this.snackbarService = snackbarService;
2518
- }
2519
- onClick() {
2520
- this.snackbarService.hide(this.bsSnackbarClose);
2521
- }
2522
- }
2523
- BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
2524
- 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 });
2525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
2526
- type: Directive,
2527
- args: [{
2528
- selector: '[bsSnackbarClose]'
2529
- }]
2530
- }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
2531
- type: Input
2532
- }], onClick: [{
2533
- type: HostListener,
2534
- args: ['click']
2535
- }] } });
2536
-
2537
- class BsSnackbarModule {
2538
- }
2539
- BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2540
- BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
2541
- BsSnackbarCloseDirective], imports: [CommonModule], exports: [BsSnackbarComponent,
2542
- BsSnackbarCloseDirective] });
2543
- BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
2544
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2545
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2546
- ], imports: [[
2547
- CommonModule
2548
- ]] });
2549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
2550
- type: NgModule,
2551
- args: [{
2552
- declarations: [
2553
- BsSnackbarComponent,
2554
- BsSnackbarCloseDirective
2555
- ],
2556
- imports: [
2557
- CommonModule
2558
- ],
2559
- exports: [
2560
- BsSnackbarComponent,
2561
- BsSnackbarCloseDirective
2562
- ],
2563
- providers: [
2564
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2565
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2566
- ]
2567
- }]
2568
- }] });
2569
-
2570
3048
  class BsTabPageComponent {
2571
3049
  constructor(tabControl) {
2572
3050
  this.disabled = false;
2573
3051
  this.tabControl = tabControl;
2574
3052
  }
2575
- ngOnInit() {
2576
- }
2577
3053
  }
2578
3054
  BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
2579
3055
  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"] }] });
2580
3056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
2581
3057
  type: Component,
2582
3058
  args: [{ selector: 'bs-tab-page', template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""] }]
2583
- }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { headerTemplate: [{
3059
+ }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { disabled: [{
3060
+ type: Input
3061
+ }], headerTemplate: [{
2584
3062
  type: ContentChild,
2585
3063
  args: [TemplateRef]
2586
- }], disabled: [{
2587
- type: Input
2588
3064
  }] } });
2589
3065
 
2590
3066
  class BsTabControlComponent {
2591
3067
  constructor() {
3068
+ this.border = true;
2592
3069
  this.activeTab = null;
2593
3070
  }
2594
- ngOnInit() {
2595
- }
2596
3071
  setActiveTab(tab) {
2597
3072
  if (!tab.disabled) {
2598
3073
  this.activeTab = tab;
@@ -2601,13 +3076,15 @@ class BsTabControlComponent {
2601
3076
  }
2602
3077
  }
2603
3078
  BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2604
- 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"] }] });
3079
+ BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border" }, 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=\"tab-content\" [class.border]=\"border && activeTab\">\n <ng-content></ng-content>\n</div>", styles: [".tab-content{margin-top:-1px}\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"] }] });
2605
3080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
2606
3081
  type: Component,
2607
- 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: [""] }]
2608
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
3082
+ 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=\"tab-content\" [class.border]=\"border && activeTab\">\n <ng-content></ng-content>\n</div>", styles: [".tab-content{margin-top:-1px}\n"] }]
3083
+ }], propDecorators: { tabPages: [{
2609
3084
  type: ContentChildren,
2610
3085
  args: [BsTabPageComponent]
3086
+ }], border: [{
3087
+ type: Input
2611
3088
  }] } });
2612
3089
 
2613
3090
  class BsTabControlModule {
@@ -2641,14 +3118,11 @@ class BsToggleButtonComponent {
2641
3118
  this.disableAnimations = true;
2642
3119
  //#region isToggled
2643
3120
  this._isToggled = false;
3121
+ this.change = new EventEmitter();
2644
3122
  this.isToggledChange = new EventEmitter();
2645
3123
  //#endregion
2646
- this.offColor = '#CCCCCC';
2647
- this.onColor = '#2196F3';
2648
- this.round = true;
2649
- }
2650
- ngAfterViewInit() {
2651
- this.disableAnimations = false;
3124
+ //#region disabled
3125
+ this.disabled = false;
2652
3126
  }
2653
3127
  get isToggled() {
2654
3128
  return this._isToggled;
@@ -2657,21 +3131,28 @@ class BsToggleButtonComponent {
2657
3131
  this._isToggled = value;
2658
3132
  this.isToggledChange.emit(this._isToggled);
2659
3133
  }
3134
+ //#endregion
3135
+ onChange(event) {
3136
+ const val = event.target.checked;
3137
+ this.isToggled = val;
3138
+ this.change.emit(val);
3139
+ }
3140
+ ngAfterViewInit() {
3141
+ this.disableAnimations = false;
3142
+ }
2660
3143
  }
2661
3144
  BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2662
- 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] });
3145
+ BsToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: { isToggled: "isToggled", disabled: "disabled" }, outputs: { change: "change", isToggledChange: "isToggledChange" }, ngImport: i0, template: "<label class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"isToggled\" (change)=\"onChange($event)\" [disabled]=\"disabled\">\n <span class=\"form-check-label\">\n <ng-content></ng-content>\n </span>\n</label>", styles: [""], animations: [ColorTransitionAnimation] });
2663
3146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
2664
3147
  type: Component,
2665
- 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"] }]
2666
- }], propDecorators: { isToggledChange: [{
3148
+ args: [{ selector: 'bs-toggle-button', animations: [ColorTransitionAnimation], template: "<label class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"isToggled\" (change)=\"onChange($event)\" [disabled]=\"disabled\">\n <span class=\"form-check-label\">\n <ng-content></ng-content>\n </span>\n</label>", styles: [""] }]
3149
+ }], propDecorators: { change: [{
3150
+ type: Output
3151
+ }], isToggledChange: [{
2667
3152
  type: Output
2668
3153
  }], isToggled: [{
2669
3154
  type: Input
2670
- }], offColor: [{
2671
- type: Input
2672
- }], onColor: [{
2673
- type: Input
2674
- }], round: [{
3155
+ }], disabled: [{
2675
3156
  type: Input
2676
3157
  }] } });
2677
3158
 
@@ -2813,20 +3294,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2813
3294
  type: Host
2814
3295
  }, {
2815
3296
  type: SkipSelf
2816
- }] }]; }, propDecorators: { onBlur: [{
3297
+ }] }]; }, propDecorators: { bsTooltip: [{
3298
+ type: Input
3299
+ }], onBlur: [{
2817
3300
  type: HostListener,
2818
3301
  args: ['window:blur']
2819
- }], bsTooltip: [{
2820
- type: Input
2821
3302
  }] } });
2822
3303
 
2823
3304
  class BsTooltipModule {
2824
3305
  }
2825
3306
  BsTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2826
3307
  BsTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, declarations: [BsTooltipDirective,
2827
- BsTooltipComponent], imports: [CommonModule], exports: [BsTooltipDirective] });
3308
+ BsTooltipComponent], imports: [CommonModule,
3309
+ OverlayModule], exports: [BsTooltipDirective] });
2828
3310
  BsTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, imports: [[
2829
- CommonModule
3311
+ CommonModule,
3312
+ OverlayModule
2830
3313
  ]] });
2831
3314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, decorators: [{
2832
3315
  type: NgModule,
@@ -2836,7 +3319,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2836
3319
  BsTooltipComponent
2837
3320
  ],
2838
3321
  imports: [
2839
- CommonModule
3322
+ CommonModule,
3323
+ OverlayModule
2840
3324
  ],
2841
3325
  exports: [
2842
3326
  BsTooltipDirective
@@ -2898,7 +3382,7 @@ class BsTypeaheadComponent {
2898
3382
  }
2899
3383
  }
2900
3384
  BsTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2901
- 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 } });
3385
+ 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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.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 } });
2902
3386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, decorators: [{
2903
3387
  type: Component,
2904
3388
  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"] }]
@@ -3007,5 +3491,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
3007
3491
  * Generated bundle index. Do not edit.
3008
3492
  */
3009
3493
 
3010
- 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, BsFileUploadComponent, BsFileUploadModule, BsFileUploadTemplateDirective, BsFontColorPipe, BsFontColorPipeModule, BsForDirective, BsForModule, 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 };
3494
+ export { BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsButtonTemplateDirective, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsCodeSnippetComponent, BsCodeSnippetModule, BsContextMenuDirective, BsContextMenuModule, BsCopyDirective, BsCopyModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsFileUploadComponent, BsFileUploadModule, BsFileUploadTemplateDirective, BsFontColorPipe, BsFontColorPipeModule, BsFooterTemplateDirective, BsForDirective, BsForModule, BsFormatBytesModule, BsFormatBytesPipe, BsHeaderTemplateDirective, BsItemTemplateDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsModalBodyDirective, BsModalComponent, BsModalContentComponent, BsModalFooterDirective, BsModalHeaderDirective, BsModalModule, BsModalService, BsMultiselectComponent, BsMultiselectModule, BsNavbarBrandComponent, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsPaginationComponent, BsPaginationModule, BsProgressBarComponent, BsProgressBarModule, BsProgressComponent, BsRatingComponent, BsRatingModule, 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 };
3011
3495
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map