@mintplayer/ng-bootstrap 13.1.10 → 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 (178) hide show
  1. package/_bootstrap.scss +14 -0
  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 +34 -14
  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 +10 -3
  27. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +14 -16
  28. package/esm2020/lib/components/file-upload/component/file-upload.component.mjs +85 -0
  29. package/esm2020/lib/components/file-upload/directive/file-upload-template.directive.mjs +18 -0
  30. package/esm2020/lib/components/file-upload/file-upload.mjs +2 -0
  31. package/esm2020/lib/components/file-upload/file-upload.module.mjs +43 -0
  32. package/esm2020/lib/components/file-upload/index.mjs +5 -0
  33. package/esm2020/lib/components/for/for.directive.mjs +38 -0
  34. package/esm2020/lib/components/for/for.module.mjs +26 -0
  35. package/esm2020/lib/components/for/index.mjs +3 -0
  36. package/esm2020/lib/components/index.mjs +7 -1
  37. package/esm2020/lib/components/modal/component/index.mjs +3 -0
  38. package/esm2020/lib/components/modal/component/modal/modal.component.mjs +13 -0
  39. package/esm2020/lib/components/modal/component/modal-content/modal-content.component.mjs +27 -0
  40. package/esm2020/lib/components/modal/directives/index.mjs +4 -0
  41. package/esm2020/lib/components/modal/directives/modal-body/modal-body.directive.mjs +18 -0
  42. package/esm2020/lib/components/modal/directives/modal-footer/modal-footer.directive.mjs +18 -0
  43. package/esm2020/lib/components/modal/directives/modal-header/modal-header.directive.mjs +18 -0
  44. package/esm2020/lib/components/modal/index.mjs +5 -0
  45. package/esm2020/lib/components/modal/interfaces/index.mjs +2 -0
  46. package/esm2020/lib/components/modal/interfaces/modal-animation-meta.mjs +2 -0
  47. package/esm2020/lib/components/modal/modal.module.mjs +48 -0
  48. package/esm2020/lib/components/modal/providers/modal-content.provider.mjs +3 -0
  49. package/esm2020/lib/components/modal/service/modal.service.mjs +52 -0
  50. package/esm2020/lib/components/multiselect/component/multiselect.component.mjs +34 -0
  51. package/esm2020/lib/components/multiselect/directives/button-template/button-template.directive.mjs +18 -0
  52. package/esm2020/lib/components/multiselect/directives/footer-template/footer-template.directive.mjs +18 -0
  53. package/esm2020/lib/components/multiselect/directives/header-template/header-template.directive.mjs +18 -0
  54. package/esm2020/lib/components/multiselect/directives/index.mjs +4 -0
  55. package/esm2020/lib/components/multiselect/index.mjs +3 -2
  56. package/esm2020/lib/components/multiselect/multiselect.module.mjs +21 -6
  57. package/esm2020/lib/components/navbar/index.mjs +2 -1
  58. package/esm2020/lib/components/navbar/navbar/navbar.component.mjs +3 -3
  59. package/esm2020/lib/components/navbar/navbar-brand/navbar-brand.component.mjs +18 -0
  60. package/esm2020/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.mjs +7 -6
  61. package/esm2020/lib/components/navbar/navbar-item/navbar-item.component.mjs +16 -5
  62. package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +1 -1
  63. package/esm2020/lib/components/navbar/navbar.module.mjs +10 -5
  64. package/esm2020/lib/components/pagination/pagination/pagination.component.mjs +88 -71
  65. package/esm2020/lib/components/rating/index.mjs +3 -0
  66. package/esm2020/lib/components/rating/rating.component.mjs +72 -0
  67. package/esm2020/lib/components/rating/rating.module.mjs +26 -0
  68. package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +30 -6
  69. package/esm2020/lib/components/select2/component/select2.component.mjs +7 -9
  70. package/esm2020/lib/components/select2/directive/item-template.directive.mjs +1 -2
  71. package/esm2020/lib/components/snackbar/component/snackbar.component.mjs +1 -1
  72. package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +4 -4
  73. package/esm2020/lib/components/snackbar/snackbar.module.mjs +8 -4
  74. package/esm2020/lib/components/tab-control/tab-control/tab-control.component.mjs +8 -7
  75. package/esm2020/lib/components/tab-control/tab-page/tab-page.component.mjs +4 -6
  76. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +19 -15
  77. package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +9 -3
  78. package/esm2020/lib/components/tooltip/tooltip.module.mjs +8 -4
  79. package/esm2020/lib/interfaces/date-day-of-month.mjs +1 -1
  80. package/esm2020/lib/interfaces/index.mjs +2 -1
  81. package/esm2020/lib/interfaces/week.mjs +1 -1
  82. package/esm2020/lib/interfaces/weekday.mjs +2 -0
  83. package/esm2020/lib/pipes/format-bytes/format-bytes.module.mjs +26 -0
  84. package/esm2020/lib/pipes/format-bytes/format-bytes.pipe.mjs +23 -0
  85. package/esm2020/lib/pipes/format-bytes/index.mjs +3 -0
  86. package/esm2020/lib/pipes/index.mjs +2 -1
  87. package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +34 -18
  88. package/fesm2015/mintplayer-ng-bootstrap.mjs +1347 -579
  89. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  90. package/fesm2020/mintplayer-ng-bootstrap.mjs +1342 -580
  91. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  92. package/lib/components/accordion/accordion/accordion.component.d.ts +1 -4
  93. package/lib/components/accordion/accordion-tab/accordion-tab.component.d.ts +1 -4
  94. package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -4
  95. package/lib/components/accordion/accordion.module.d.ts +1 -2
  96. package/lib/components/alert/alert/alert.component.d.ts +1 -4
  97. package/lib/components/alert/alert-close/alert-close.component.d.ts +1 -3
  98. package/lib/components/calendar/calendar.component.d.ts +4 -5
  99. package/lib/components/card/card/card.component.d.ts +1 -6
  100. package/lib/components/card/card-header/card-header.component.d.ts +1 -4
  101. package/lib/components/carousel/carousel/carousel.component.d.ts +9 -9
  102. package/lib/components/code-snippet/code-snippet.component.d.ts +12 -0
  103. package/lib/components/code-snippet/code-snippet.module.d.ts +10 -0
  104. package/lib/components/code-snippet/index.d.ts +2 -0
  105. package/lib/components/context-menu/context-menu.directive.d.ts +4 -2
  106. package/lib/components/context-menu/context-menu.module.d.ts +2 -1
  107. package/lib/components/copy/copy.directive.d.ts +11 -0
  108. package/lib/components/copy/copy.module.d.ts +8 -0
  109. package/lib/components/copy/index.d.ts +2 -0
  110. package/lib/components/datatable/datatable/datatable.component.d.ts +4 -5
  111. package/lib/components/datatable/row-template/row-template.directive.d.ts +1 -1
  112. package/lib/components/datepicker/datepicker.component.d.ts +11 -7
  113. package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +1 -0
  114. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +3 -3
  115. package/lib/components/file-upload/component/file-upload.component.d.ts +19 -0
  116. package/lib/components/file-upload/directive/file-upload-template.directive.d.ts +8 -0
  117. package/lib/components/file-upload/file-upload.d.ts +4 -0
  118. package/lib/components/file-upload/file-upload.module.d.ts +12 -0
  119. package/lib/components/file-upload/index.d.ts +4 -0
  120. package/lib/components/for/for.directive.d.ts +8 -0
  121. package/lib/components/for/for.module.d.ts +8 -0
  122. package/lib/components/for/index.d.ts +2 -0
  123. package/lib/components/index.d.ts +6 -0
  124. package/lib/components/modal/component/index.d.ts +2 -0
  125. package/lib/components/modal/component/modal/modal.component.d.ts +10 -0
  126. package/lib/components/modal/component/modal-content/modal-content.component.d.ts +13 -0
  127. package/lib/components/modal/directives/index.d.ts +3 -0
  128. package/lib/components/modal/directives/modal-body/modal-body.directive.d.ts +8 -0
  129. package/lib/components/modal/directives/modal-footer/modal-footer.directive.d.ts +8 -0
  130. package/lib/components/modal/directives/modal-header/modal-header.directive.d.ts +8 -0
  131. package/lib/components/modal/index.d.ts +4 -0
  132. package/lib/components/modal/interfaces/index.d.ts +1 -0
  133. package/lib/components/modal/interfaces/modal-animation-meta.d.ts +7 -0
  134. package/lib/components/modal/modal.module.d.ts +13 -0
  135. package/lib/components/modal/providers/modal-content.provider.d.ts +2 -0
  136. package/lib/components/modal/service/modal.service.d.ts +14 -0
  137. package/lib/components/multiselect/{multiselect.component.d.ts → component/multiselect.component.d.ts} +7 -6
  138. package/lib/components/multiselect/directives/button-template/button-template.directive.d.ts +8 -0
  139. package/lib/components/multiselect/directives/footer-template/footer-template.directive.d.ts +8 -0
  140. package/lib/components/multiselect/directives/header-template/header-template.directive.d.ts +8 -0
  141. package/lib/components/multiselect/directives/index.d.ts +3 -0
  142. package/lib/components/multiselect/index.d.ts +2 -1
  143. package/lib/components/multiselect/multiselect.module.d.ts +8 -5
  144. package/lib/components/navbar/index.d.ts +1 -0
  145. package/lib/components/navbar/navbar/navbar.component.d.ts +1 -1
  146. package/lib/components/navbar/navbar-brand/navbar-brand.component.d.ts +6 -0
  147. package/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.d.ts +4 -4
  148. package/lib/components/navbar/navbar-item/navbar-item.component.d.ts +3 -4
  149. package/lib/components/navbar/navbar.module.d.ts +5 -4
  150. package/lib/components/pagination/pagination/pagination.component.d.ts +9 -10
  151. package/lib/components/rating/index.d.ts +2 -0
  152. package/lib/components/rating/rating.component.d.ts +22 -0
  153. package/lib/components/rating/rating.module.d.ts +8 -0
  154. package/lib/components/scrollspy/component/scrollspy.component.d.ts +11 -3
  155. package/lib/components/select2/component/select2.component.d.ts +4 -6
  156. package/lib/components/snackbar/component/snackbar.component.d.ts +1 -2
  157. package/lib/components/snackbar/snackbar.module.d.ts +2 -1
  158. package/lib/components/tab-control/tab-control/tab-control.component.d.ts +4 -6
  159. package/lib/components/tab-control/tab-page/tab-page.component.d.ts +3 -4
  160. package/lib/components/toggle-button/toggle-button.component.d.ts +5 -5
  161. package/lib/components/tooltip/directive/tooltip.directive.d.ts +1 -0
  162. package/lib/components/tooltip/tooltip.module.d.ts +2 -1
  163. package/lib/interfaces/date-day-of-month.d.ts +1 -0
  164. package/lib/interfaces/index.d.ts +1 -0
  165. package/lib/interfaces/week.d.ts +1 -1
  166. package/lib/interfaces/weekday.d.ts +4 -0
  167. package/lib/pipes/format-bytes/format-bytes.module.d.ts +8 -0
  168. package/lib/pipes/format-bytes/format-bytes.pipe.d.ts +7 -0
  169. package/lib/pipes/format-bytes/index.d.ts +2 -0
  170. package/lib/pipes/index.d.ts +1 -0
  171. package/lib/services/calendar-month/calendar-month.service.d.ts +2 -0
  172. package/package.json +3 -2
  173. package/src/assets/ic-upload-file.svg +7 -0
  174. package/src/styles/custom.scss +12 -0
  175. package/src/styles/ngx-highlight-themes/solarized-dark.scss +89 -0
  176. package/src/styles/utilities/cursor.scss +10 -0
  177. package/src/styles/utilities/white-space.scss +10 -0
  178. 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;
@@ -693,33 +925,50 @@ class BsContextMenuDirective {
693
925
  this.element.nativeElement.oncontextmenu = (ev) => {
694
926
  ev.preventDefault();
695
927
  this.checkAndCloseExisting(ev);
928
+ console.log('d', element.nativeElement);
696
929
  this.overlayRef = this.overlay.create({
697
- scrollStrategy: this.overlay.scrollStrategies.noop(),
930
+ hasBackdrop: false,
931
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
698
932
  positionStrategy: this.overlay.position()
699
- .global()
700
- .left(ev.x + 'px')
701
- .bottom((window.innerHeight - ev.y) + 'px')
702
- .top(ev.y + 'px')
933
+ // .flexibleConnectedTo({ x: ev.x, y: ev.y })
934
+ .flexibleConnectedTo(this.element)
935
+ .withPositions([
936
+ // element: TopLeft - dropdown: TopLeft
937
+ { originX: "start", originY: "top", overlayX: "start", overlayY: "top", offsetX: ev.offsetX, offsetY: ev.offsetY },
938
+ // // element: TopLeft - dropdown: BottomLeft
939
+ // { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom", offsetX: ev.offsetX, offsetY: ev.offsetY },
940
+ // // element: TopLeft - dropdown: TopRight
941
+ // { originX: "start", originY: "top", overlayX: "end", overlayY: "top", offsetX: ev.offsetX, offsetY: ev.offsetY },
942
+ // // element: TopLeft - dropdown: BottomRight
943
+ // { originX: "start", originY: "top", overlayX: "end", overlayY: "bottom", offsetX: ev.offsetX, offsetY: ev.offsetY },
944
+ ])
703
945
  });
704
946
  this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
705
- this.overlayRef.attach(this.templatePortal);
947
+ const view = this.overlayRef.attach(this.templatePortal);
948
+ view.rootNodes.forEach(node => node.classList.add('position-static'));
706
949
  };
707
950
  }
708
951
  clickAnywhere(ev) {
709
952
  this.checkAndCloseExisting(ev);
710
953
  }
711
- checkAndCloseExisting(ev) {
954
+ onBlur() {
955
+ this.close();
956
+ }
957
+ close() {
712
958
  if (this.overlayRef) {
713
- if (!this.overlayRef.overlayElement.contains(ev.target)) {
714
- this.overlayRef.detach();
715
- this.overlayRef.dispose();
716
- this.overlayRef = null;
717
- }
959
+ this.overlayRef.detach();
960
+ this.overlayRef.dispose();
961
+ this.overlayRef = null;
962
+ }
963
+ }
964
+ checkAndCloseExisting(ev) {
965
+ if (this.overlayRef && !this.overlayRef.overlayElement.contains(ev.target)) {
966
+ this.close();
718
967
  }
719
968
  }
720
969
  }
721
970
  BsContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuDirective, deps: [{ token: i1$1.Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ElementRef, host: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
722
- BsContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsContextMenuDirective, selector: "[bsContextMenu]", host: { listeners: { "document:click": "clickAnywhere($event)" } }, ngImport: i0 });
971
+ BsContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsContextMenuDirective, selector: "[bsContextMenu]", host: { listeners: { "document:click": "clickAnywhere($event)", "window:blur": "onBlur()" } }, ngImport: i0 });
723
972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuDirective, decorators: [{
724
973
  type: Directive,
725
974
  args: [{
@@ -732,14 +981,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
732
981
  }] }]; }, propDecorators: { clickAnywhere: [{
733
982
  type: HostListener,
734
983
  args: ['document:click', ['$event']]
984
+ }], onBlur: [{
985
+ type: HostListener,
986
+ args: ['window:blur']
735
987
  }] } });
736
988
 
737
989
  class BsContextMenuModule {
738
990
  }
739
991
  BsContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
740
- 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] });
741
994
  BsContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, imports: [[
742
- CommonModule
995
+ CommonModule,
996
+ OverlayModule
743
997
  ]] });
744
998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, decorators: [{
745
999
  type: NgModule,
@@ -748,7 +1002,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
748
1002
  BsContextMenuDirective
749
1003
  ],
750
1004
  imports: [
751
- CommonModule
1005
+ CommonModule,
1006
+ OverlayModule
752
1007
  ],
753
1008
  exports: [
754
1009
  BsContextMenuDirective
@@ -827,85 +1082,80 @@ class BsPaginationComponent {
827
1082
  /** The number of boxes (excluding arrows) that's being shown on the pagination component. */
828
1083
  this.visibleNumberOfNumberBoxes$ = new Observable();
829
1084
  this._selectedPageNumber = 0;
830
- this.selectedPageNumberChange = new EventEmitter();
831
1085
  this._numberOfBoxes = 0;
832
1086
  this._pageNumbers = [];
833
1087
  this._showArrows = true;
1088
+ //#region SelectedPageNumber
1089
+ this.selectedPageNumberChange = new EventEmitter();
834
1090
  this.destroyed$ = new Subject();
835
- this.visibleNumberOfNumberBoxes$ =
836
- combineLatest([this.numberOfBoxes$, this.pageNumbers$, this.showArrows$])
837
- .pipe(takeUntil(this.destroyed$))
838
- .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
839
- if (numberOfBoxes <= 0) {
840
- return pageNumbers.length;
841
- }
842
- else if (!showArrows) {
843
- return Math.min(numberOfBoxes, pageNumbers.length);
844
- }
845
- else if (numberOfBoxes <= 2) {
846
- return Math.min(1, pageNumbers.length);
847
- }
848
- else {
849
- return Math.min(numberOfBoxes - 2, pageNumbers.length);
850
- }
851
- }));
852
- this.shownPageNumbers$ =
853
- combineLatest([this.pageNumbers$, this.selectedPageNumber$, this.visibleNumberOfNumberBoxes$])
854
- .pipe(takeUntil(this.destroyed$))
855
- .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
856
- let startIndex = 0;
857
- const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
858
- if (pageNumbers.indexOf(selectedPageNumber) < half) {
859
- startIndex = 0;
860
- }
861
- else if (pageNumbers.indexOf(selectedPageNumber) >= (pageNumbers.length - half)) {
862
- startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
863
- }
864
- else {
865
- startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
866
- }
867
- return [...Array(visibleNumberOfNumberBoxes).keys()]
868
- .map(p => p + startIndex)
869
- .map(p => ({
870
- page: pageNumbers[p],
871
- selected: pageNumbers[p] === selectedPageNumber
872
- }));
873
- }));
874
- this.isFirstPage$ =
875
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
876
- .pipe(takeUntil(this.destroyed$))
877
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
878
- return pageNumbers.indexOf(selectedPageNumber) === 0;
879
- }));
880
- this.isLastPage$ =
881
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
882
- .pipe(takeUntil(this.destroyed$))
883
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
884
- 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,
885
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
+ }));
886
1153
  this.selectedPageNumber$
887
1154
  .pipe(takeUntil(this.destroyed$))
888
1155
  .subscribe((selectedPageNumber) => {
889
1156
  this.selectedPageNumberChange.emit(selectedPageNumber);
890
1157
  });
891
1158
  }
892
- ngOnInit() {
893
- }
894
- ngOnDestroy() {
895
- this.destroyed$.next(true);
896
- }
897
- onSelectPage(event, page) {
898
- this.selectedPageNumber$.next(page);
899
- return false;
900
- }
901
- onPrevious() {
902
- this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
903
- return false;
904
- }
905
- onNext() {
906
- this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
907
- return false;
908
- }
909
1159
  set selectedPageNumber(value) {
910
1160
  this._selectedPageNumber = value;
911
1161
  this.selectedPageNumber$.next(value);
@@ -913,6 +1163,8 @@ class BsPaginationComponent {
913
1163
  get selectedPageNumber() {
914
1164
  return this._selectedPageNumber;
915
1165
  }
1166
+ //#endregion
1167
+ //#region NumberOfBoxes
916
1168
  set numberOfBoxes(value) {
917
1169
  this._numberOfBoxes = value;
918
1170
  this.numberOfBoxes$.next(value);
@@ -920,6 +1172,8 @@ class BsPaginationComponent {
920
1172
  get numberOfBoxes() {
921
1173
  return this._numberOfBoxes;
922
1174
  }
1175
+ //#endregion
1176
+ //#region PageNumbers
923
1177
  set pageNumbers(value) {
924
1178
  this._pageNumbers = value;
925
1179
  this.pageNumbers$.next(value);
@@ -927,6 +1181,8 @@ class BsPaginationComponent {
927
1181
  get pageNumbers() {
928
1182
  return this._pageNumbers;
929
1183
  }
1184
+ //#endregion
1185
+ //#region ShowArrows
930
1186
  set showArrows(value) {
931
1187
  this._showArrows = value;
932
1188
  this.showArrows$.next(value);
@@ -934,6 +1190,22 @@ class BsPaginationComponent {
934
1190
  get showArrows() {
935
1191
  return this._showArrows;
936
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
+ }
937
1209
  }
938
1210
  BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
939
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 } });
@@ -955,7 +1227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
955
1227
  class BsDatatableComponent {
956
1228
  constructor() {
957
1229
  this.columns = [];
958
- this.onReloadData = new EventEmitter();
1230
+ this.reloadData = new EventEmitter();
959
1231
  this.settings = new DatatableSettings();
960
1232
  this.settings.sortProperty = '';
961
1233
  this.settings.sortDirection = 'ascending';
@@ -974,17 +1246,15 @@ class BsDatatableComponent {
974
1246
  else {
975
1247
  this.settings.sortDirection = 'descending';
976
1248
  }
977
- this.onReloadData.emit();
1249
+ this.reloadData.emit();
978
1250
  }
979
1251
  }
980
- ngOnInit() {
981
- }
982
1252
  }
983
1253
  BsDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
984
- 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"] }] });
985
1255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, decorators: [{
986
1256
  type: Component,
987
- 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"] }]
988
1258
  }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
989
1259
  type: ContentChildren,
990
1260
  args: [BsDatatableColumnDirective]
@@ -992,7 +1262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
992
1262
  type: Input
993
1263
  }], data: [{
994
1264
  type: Input
995
- }], onReloadData: [{
1265
+ }], reloadData: [{
996
1266
  type: Output
997
1267
  }] } });
998
1268
 
@@ -1003,11 +1273,11 @@ class BsRowTemplateDirective {
1003
1273
  }
1004
1274
  }
1005
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 });
1006
- 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 });
1007
1277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRowTemplateDirective, decorators: [{
1008
1278
  type: Directive,
1009
1279
  args: [{
1010
- selector: '[rowTemplate]'
1280
+ selector: '[bsRowTemplate]'
1011
1281
  }]
1012
1282
  }], ctorParameters: function () { return [{ type: BsDatatableComponent }, { type: i0.TemplateRef }]; } });
1013
1283
 
@@ -1067,7 +1337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1067
1337
  }] });
1068
1338
 
1069
1339
  class BsDropdownMenuDirective extends ClickOutsideDirective {
1070
- constructor(dropdown, document, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1340
+ constructor(dropdown, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1071
1341
  super(elementRef, zone, platformId);
1072
1342
  this.dropdown = dropdown;
1073
1343
  this.viewContainerRef = viewContainerRef;
@@ -1077,7 +1347,6 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1077
1347
  this.destroyed$ = new Subject();
1078
1348
  this.overlayRef = null;
1079
1349
  this.templatePortal = null;
1080
- this.document = document;
1081
1350
  this.dropdown.isOpen$
1082
1351
  .pipe(takeUntil(this.destroyed$))
1083
1352
  .subscribe((isOpen) => {
@@ -1090,7 +1359,9 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1090
1359
  positionStrategy: this.overlay.position()
1091
1360
  .flexibleConnectedTo(!this.dropdown.toggle ? dropdown.elementRef : this.dropdown.toggle.toggleButton)
1092
1361
  .withPositions([
1362
+ // element: BottomLeft - dropdown: TopLeft
1093
1363
  { originX: "start", originY: "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
1364
+ // element: TopLeft - dropdown: BottomLeft
1094
1365
  { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
1095
1366
  ]),
1096
1367
  });
@@ -1111,6 +1382,7 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1111
1382
  }
1112
1383
  });
1113
1384
  }
1385
+ get show() { return this.dropdown.isOpen; }
1114
1386
  clickedOutside(ev) {
1115
1387
  if (!this.wait) {
1116
1388
  if (!this.overlayRef?.overlayElement.contains(ev.target)) {
@@ -1123,26 +1395,23 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1123
1395
  }
1124
1396
  }
1125
1397
  }
1126
- 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 });
1127
- 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 });
1128
1400
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1129
1401
  type: Directive,
1130
1402
  args: [{
1131
- selector: '[bsDropdownMenu]',
1132
- host: {
1133
- '[class.show]': 'dropdown.isOpen',
1134
- },
1403
+ selector: '[bsDropdownMenu]'
1135
1404
  }]
1136
1405
  }], ctorParameters: function () { return [{ type: BsDropdownDirective, decorators: [{
1137
1406
  type: Inject,
1138
1407
  args: [forwardRef(() => BsDropdownDirective)]
1139
- }] }, { type: undefined, decorators: [{
1140
- type: Inject,
1141
- args: [DOCUMENT]
1142
- }] }, { 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: [{
1143
1409
  type: Inject,
1144
1410
  args: [PLATFORM_ID]
1145
- }] }]; }, propDecorators: { clickedOutside: [{
1411
+ }] }]; }, propDecorators: { show: [{
1412
+ type: HostBinding,
1413
+ args: ['class.show']
1414
+ }], clickedOutside: [{
1146
1415
  type: HostListener,
1147
1416
  args: ['clickOutside', ['$event']]
1148
1417
  }] } });
@@ -1190,9 +1459,13 @@ class BsDropdownDirective {
1190
1459
  this.isOpenChange.emit(value);
1191
1460
  }
1192
1461
  }
1462
+ //#endregion
1463
+ onBlur() {
1464
+ this.isOpen = false;
1465
+ }
1193
1466
  }
1194
1467
  BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1195
- BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", sameWidth: "sameWidth", closeOnClickOutside: "closeOnClickOutside", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1468
+ BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", sameWidth: "sameWidth", closeOnClickOutside: "closeOnClickOutside", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, host: { listeners: { "window:blur": "onBlur()" } }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1196
1469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, decorators: [{
1197
1470
  type: Directive,
1198
1471
  args: [{
@@ -1214,83 +1487,506 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1214
1487
  type: Output
1215
1488
  }], isOpen: [{
1216
1489
  type: Input
1490
+ }], onBlur: [{
1491
+ type: HostListener,
1492
+ args: ['window:blur']
1217
1493
  }] } });
1218
1494
 
1219
1495
  class BsDatepickerComponent {
1220
1496
  constructor() {
1221
- this.selectedDate = new Date();
1222
- 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();
1223
1504
  }
1224
- 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);
1225
1518
  }
1226
1519
  }
1227
1520
  BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1228
- 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 } });
1229
1522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1230
1523
  type: Component,
1231
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: [""] }]
1232
- }], 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
+ }] } });
1534
+
1535
+ class BsDropdownModule {
1536
+ }
1537
+ BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1538
+ BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1539
+ BsDropdownToggleDirective,
1540
+ BsDropdownMenuDirective], imports: [CommonModule,
1541
+ OverlayModule,
1542
+ ClickOutsideModule], exports: [BsDropdownDirective,
1543
+ BsDropdownToggleDirective,
1544
+ BsDropdownMenuDirective] });
1545
+ BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1546
+ CommonModule,
1547
+ OverlayModule,
1548
+ ClickOutsideModule
1549
+ ]] });
1550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
1551
+ type: NgModule,
1552
+ args: [{
1553
+ declarations: [
1554
+ BsDropdownDirective,
1555
+ BsDropdownToggleDirective,
1556
+ BsDropdownMenuDirective
1557
+ ],
1558
+ imports: [
1559
+ CommonModule,
1560
+ OverlayModule,
1561
+ ClickOutsideModule
1562
+ ],
1563
+ exports: [
1564
+ BsDropdownDirective,
1565
+ BsDropdownToggleDirective,
1566
+ BsDropdownMenuDirective
1567
+ ]
1568
+ }]
1569
+ }] });
1570
+
1571
+ class BsDatepickerModule {
1572
+ }
1573
+ BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1574
+ BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1575
+ BsCalendarModule,
1576
+ BsDropdownModule], exports: [BsDatepickerComponent] });
1577
+ BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1578
+ CommonModule,
1579
+ BsCalendarModule,
1580
+ BsDropdownModule
1581
+ ]] });
1582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
1583
+ type: NgModule,
1584
+ args: [{
1585
+ declarations: [
1586
+ BsDatepickerComponent
1587
+ ],
1588
+ imports: [
1589
+ CommonModule,
1590
+ BsCalendarModule,
1591
+ BsDropdownModule
1592
+ ],
1593
+ exports: [
1594
+ BsDatepickerComponent
1595
+ ]
1596
+ }]
1597
+ }] });
1598
+
1599
+ class BsProgressComponent {
1600
+ constructor() {
1601
+ this.progressClass = true;
1602
+ this.height = null;
1603
+ this.isIndeterminate = false;
1604
+ }
1605
+ }
1606
+ BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1607
+ BsProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressComponent, selector: "bs-progress", inputs: { height: "height", isIndeterminate: "isIndeterminate" }, host: { properties: { "class.progress": "this.progressClass", "style.height.px": "this.height" } }, ngImport: i0, template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
1609
+ type: Component,
1610
+ args: [{ selector: 'bs-progress', template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"] }]
1611
+ }], propDecorators: { progressClass: [{
1612
+ type: HostBinding,
1613
+ args: ['class.progress']
1614
+ }], height: [{
1615
+ type: Input
1616
+ }, {
1617
+ type: HostBinding,
1618
+ args: ['style.height.px']
1619
+ }], isIndeterminate: [{
1620
+ type: Input
1621
+ }] } });
1622
+
1623
+ class BsProgressBarComponent {
1624
+ constructor() {
1625
+ this.destroyed$ = new Subject();
1626
+ this.minimum$ = new BehaviorSubject(0);
1627
+ this.maximum$ = new BehaviorSubject(100);
1628
+ this.value$ = new BehaviorSubject(50);
1629
+ this.color$ = new BehaviorSubject(Color.primary);
1630
+ this.striped = false;
1631
+ this.animated = false;
1632
+ this.progressBar = true;
1633
+ this.colorClass = 'bg-primary';
1634
+ this.widthStyle = '0';
1635
+ this.role = 'progressbar';
1636
+ this.valueNow = 50;
1637
+ this.valueMin = 0;
1638
+ this.valueMax = 100;
1639
+ this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
1640
+ .pipe(map(([minimum, maximum, value]) => {
1641
+ return (value - minimum) / (maximum - minimum) * 100;
1642
+ }));
1643
+ this.width$ = this.percentage$
1644
+ .pipe(map((width) => {
1645
+ return String(width) + '%';
1646
+ }));
1647
+ this.colorClass$ = this.color$
1648
+ .pipe(map((color) => {
1649
+ const name = Color[color];
1650
+ return `bg-${name}`;
1651
+ }));
1652
+ this.colorClass$
1653
+ .pipe(takeUntil(this.destroyed$))
1654
+ .subscribe((color) => {
1655
+ this.colorClass = color;
1656
+ });
1657
+ this.width$
1658
+ .pipe(takeUntil(this.destroyed$))
1659
+ .subscribe((width) => {
1660
+ this.widthStyle = width;
1661
+ });
1662
+ this.value$
1663
+ .pipe(takeUntil(this.destroyed$))
1664
+ .subscribe((value) => {
1665
+ this.valueNow = value;
1666
+ });
1667
+ this.minimum$
1668
+ .pipe(takeUntil(this.destroyed$))
1669
+ .subscribe((value) => {
1670
+ this.valueMin = value;
1671
+ });
1672
+ this.maximum$
1673
+ .pipe(takeUntil(this.destroyed$))
1674
+ .subscribe((value) => {
1675
+ this.valueMax = value;
1676
+ });
1677
+ }
1678
+ set minimum(value) {
1679
+ this.minimum$.next(value);
1680
+ }
1681
+ set maximum(value) {
1682
+ this.maximum$.next(value);
1683
+ }
1684
+ set value(value) {
1685
+ this.value$.next(value);
1686
+ }
1687
+ set color(value) {
1688
+ this.color$.next(value);
1689
+ }
1690
+ ngOnDestroy() {
1691
+ this.destroyed$.next(true);
1692
+ }
1693
+ }
1694
+ BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1695
+ BsProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: { minimum: "minimum", maximum: "maximum", value: "value", color: "color", striped: "striped", animated: "animated" }, host: { properties: { "class.progress-bar-striped": "this.striped", "class.progress-bar-animated": "this.animated", "class.progress-bar": "this.progressBar", "class": "this.colorClass", "style.width": "this.widthStyle", "attr.role": "this.role", "attr.aria-valuenow": "this.valueNow", "attr.aria-valuemin": "this.valueMin", "attr.aria-valuemax": "this.valueMax" } }, ngImport: i0, template: "", styles: [""] });
1696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
1697
+ type: Component,
1698
+ args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
1699
+ }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
1700
+ type: Input
1701
+ }], maximum: [{
1702
+ type: Input
1703
+ }], value: [{
1704
+ type: Input
1705
+ }], color: [{
1706
+ type: Input
1707
+ }], striped: [{
1708
+ type: Input
1709
+ }, {
1710
+ type: HostBinding,
1711
+ args: ['class.progress-bar-striped']
1712
+ }], animated: [{
1713
+ type: Input
1714
+ }, {
1715
+ type: HostBinding,
1716
+ args: ['class.progress-bar-animated']
1717
+ }], progressBar: [{
1718
+ type: HostBinding,
1719
+ args: ['class.progress-bar']
1720
+ }], colorClass: [{
1721
+ type: HostBinding,
1722
+ args: ['class']
1723
+ }], widthStyle: [{
1724
+ type: HostBinding,
1725
+ args: ['style.width']
1726
+ }], role: [{
1727
+ type: HostBinding,
1728
+ args: ['attr.role']
1729
+ }], valueNow: [{
1730
+ type: HostBinding,
1731
+ args: ['attr.aria-valuenow']
1732
+ }], valueMin: [{
1733
+ type: HostBinding,
1734
+ args: ['attr.aria-valuemin']
1735
+ }], valueMax: [{
1736
+ type: HostBinding,
1737
+ args: ['attr.aria-valuemax']
1738
+ }] } });
1739
+
1740
+ class BsForDirective {
1741
+ constructor() {
1742
+ this.defaultCursor = true;
1743
+ }
1744
+ onMouseClick() {
1745
+ if (!('tagName' in this.bsFor)) {
1746
+ this.bsFor.focus();
1747
+ }
1748
+ else if (this.bsFor.tagName.toLowerCase() !== 'input') {
1749
+ this.bsFor.focus();
1750
+ }
1751
+ else if (this.bsFor.type.toLowerCase() === 'file') {
1752
+ this.bsFor.click();
1753
+ }
1754
+ else {
1755
+ this.bsFor.focus();
1756
+ }
1757
+ }
1758
+ }
1759
+ BsForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
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 });
1761
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForDirective, decorators: [{
1762
+ type: Directive,
1763
+ args: [{
1764
+ selector: '[bsFor]'
1765
+ }]
1766
+ }], propDecorators: { defaultCursor: [{
1767
+ type: HostBinding,
1768
+ args: ['class.cursor-default']
1769
+ }], bsFor: [{
1770
+ type: Input
1771
+ }], onMouseClick: [{
1772
+ type: HostListener,
1773
+ args: ['click']
1774
+ }] } });
1775
+
1776
+ class BsFormatBytesPipe {
1777
+ transform(value, decimals = 2) {
1778
+ if (value === 0) {
1779
+ return "0 Bytes";
1780
+ }
1781
+ const k = 1024;
1782
+ const dm = decimals <= 0 ? 0 : decimals;
1783
+ const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
1784
+ const i = Math.floor(Math.log(value) / Math.log(k));
1785
+ return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
1786
+ }
1787
+ }
1788
+ BsFormatBytesPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1789
+ BsFormatBytesPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesPipe, name: "bsFormatBytes" });
1790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesPipe, decorators: [{
1791
+ type: Pipe,
1792
+ args: [{
1793
+ name: 'bsFormatBytes'
1794
+ }]
1795
+ }] });
1796
+
1797
+ class BsFileUploadComponent {
1798
+ constructor() {
1799
+ this.dropFilesCaption = 'Drop your files here';
1800
+ this.browseFilesCaption = 'Browse for files';
1801
+ this.placeholder = 'Drop files to upload';
1802
+ this.isDraggingFile = false;
1803
+ this.files = [];
1804
+ this.filesDropped = new EventEmitter();
1805
+ }
1806
+ onChange(event) {
1807
+ console.log('event', event);
1808
+ if (!event.target)
1809
+ return;
1810
+ if (!('files' in event.target))
1811
+ return;
1812
+ if (!event.target['files'])
1813
+ return;
1814
+ const files = event.target.files;
1815
+ if (!files)
1816
+ return;
1817
+ this.processDroppedFiles(files);
1818
+ }
1819
+ onDragOver(event) {
1820
+ event.preventDefault();
1821
+ event.stopPropagation();
1822
+ if (event.dataTransfer) {
1823
+ this.isDraggingFile = true;
1824
+ event.dataTransfer.effectAllowed = "copy";
1825
+ }
1826
+ }
1827
+ onDragLeave(event) {
1828
+ event.preventDefault();
1829
+ event.stopPropagation();
1830
+ this.isDraggingFile = false;
1831
+ }
1832
+ onDrop(event) {
1833
+ event.preventDefault();
1834
+ event.stopPropagation();
1835
+ this.isDraggingFile = false;
1836
+ if (event.dataTransfer && event.dataTransfer.files) {
1837
+ this.processDroppedFiles(event.dataTransfer.files);
1838
+ }
1839
+ }
1840
+ processDroppedFiles(fileList) {
1841
+ const newFiles = [...Array(fileList.length).keys()]
1842
+ .map(i => fileList.item(i))
1843
+ .filter(f => !!f)
1844
+ .map(f => ({ file: f, progress: 0 }));
1845
+ this.files.push(...newFiles);
1846
+ this.filesDropped.emit(newFiles);
1847
+ }
1848
+ }
1849
+ BsFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1850
+ BsFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsFileUploadComponent, selector: "bs-file-upload", inputs: { dropFilesCaption: "dropFilesCaption", browseFilesCaption: "browseFilesCaption", placeholder: "placeholder", files: "files" }, outputs: { filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<ul class=\"list-group files-list\">\n <li class=\"list-group-item\" *ngFor=\"let upload of files\">\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </li>\n</ul>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#DC88A8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"], components: [{ type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }], directives: [{ type: BsForDirective, selector: "[bsFor]", inputs: ["bsFor"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "bsFormatBytes": BsFormatBytesPipe } });
1851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadComponent, decorators: [{
1852
+ type: Component,
1853
+ args: [{ selector: 'bs-file-upload', template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<ul class=\"list-group files-list\">\n <li class=\"list-group-item\" *ngFor=\"let upload of files\">\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </li>\n</ul>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#DC88A8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"] }]
1854
+ }], propDecorators: { dropFilesCaption: [{
1855
+ type: Input
1856
+ }], browseFilesCaption: [{
1857
+ type: Input
1858
+ }], placeholder: [{
1859
+ type: Input
1860
+ }], files: [{
1861
+ type: Input
1862
+ }], filesDropped: [{
1863
+ type: Output
1864
+ }], onDragOver: [{
1865
+ type: HostListener,
1866
+ args: ['dragover', ['$event']]
1867
+ }], onDragLeave: [{
1868
+ type: HostListener,
1869
+ args: ['dragleave', ['$event']]
1870
+ }], onDrop: [{
1871
+ type: HostListener,
1872
+ args: ['drop', ['$event']]
1873
+ }] } });
1874
+
1875
+ class BsFileUploadTemplateDirective {
1876
+ constructor(fileUploadComponent, templateRef) {
1877
+ fileUploadComponent.fileTemplate = templateRef;
1878
+ }
1879
+ }
1880
+ BsFileUploadTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadTemplateDirective, deps: [{ token: BsFileUploadComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1881
+ BsFileUploadTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsFileUploadTemplateDirective, selector: "[bsFileUploadTemplate]", ngImport: i0 });
1882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadTemplateDirective, decorators: [{
1883
+ type: Directive,
1884
+ args: [{
1885
+ selector: '[bsFileUploadTemplate]'
1886
+ }]
1887
+ }], ctorParameters: function () { return [{ type: BsFileUploadComponent }, { type: i0.TemplateRef }]; } });
1888
+
1889
+ class BsForModule {
1890
+ }
1891
+ BsForModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1892
+ BsForModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, declarations: [BsForDirective], imports: [CommonModule], exports: [BsForDirective] });
1893
+ BsForModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, imports: [[
1894
+ CommonModule
1895
+ ]] });
1896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, decorators: [{
1897
+ type: NgModule,
1898
+ args: [{
1899
+ declarations: [
1900
+ BsForDirective
1901
+ ],
1902
+ imports: [
1903
+ CommonModule
1904
+ ],
1905
+ exports: [
1906
+ BsForDirective
1907
+ ]
1908
+ }]
1909
+ }] });
1910
+
1911
+ class BsProgressBarModule {
1912
+ }
1913
+ BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1914
+ BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
1915
+ BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
1916
+ BsProgressComponent] });
1917
+ BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
1918
+ CommonModule
1919
+ ]] });
1920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
1921
+ type: NgModule,
1922
+ args: [{
1923
+ declarations: [
1924
+ BsProgressBarComponent,
1925
+ BsProgressComponent
1926
+ ],
1927
+ imports: [
1928
+ CommonModule
1929
+ ],
1930
+ exports: [
1931
+ BsProgressBarComponent,
1932
+ BsProgressComponent
1933
+ ]
1934
+ }]
1935
+ }] });
1233
1936
 
1234
- class BsDropdownModule {
1937
+ class BsFormatBytesModule {
1235
1938
  }
1236
- BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1237
- BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1238
- BsDropdownToggleDirective,
1239
- BsDropdownMenuDirective], imports: [CommonModule,
1240
- OverlayModule,
1241
- ClickOutsideModule], exports: [BsDropdownDirective,
1242
- BsDropdownToggleDirective,
1243
- BsDropdownMenuDirective] });
1244
- BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1245
- CommonModule,
1246
- OverlayModule,
1247
- ClickOutsideModule
1939
+ BsFormatBytesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1940
+ BsFormatBytesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, declarations: [BsFormatBytesPipe], imports: [CommonModule], exports: [BsFormatBytesPipe] });
1941
+ BsFormatBytesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, imports: [[
1942
+ CommonModule
1248
1943
  ]] });
1249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
1944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, decorators: [{
1250
1945
  type: NgModule,
1251
1946
  args: [{
1252
1947
  declarations: [
1253
- BsDropdownDirective,
1254
- BsDropdownToggleDirective,
1255
- BsDropdownMenuDirective
1948
+ BsFormatBytesPipe
1256
1949
  ],
1257
1950
  imports: [
1258
- CommonModule,
1259
- OverlayModule,
1260
- ClickOutsideModule
1951
+ CommonModule
1261
1952
  ],
1262
1953
  exports: [
1263
- BsDropdownDirective,
1264
- BsDropdownToggleDirective,
1265
- BsDropdownMenuDirective
1954
+ BsFormatBytesPipe
1266
1955
  ]
1267
1956
  }]
1268
1957
  }] });
1269
1958
 
1270
- class BsDatepickerModule {
1959
+ class BsFileUploadModule {
1271
1960
  }
1272
- BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1273
- BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1274
- BsCalendarModule,
1275
- BsDropdownModule], exports: [BsDatepickerComponent] });
1276
- BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1961
+ BsFileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1962
+ BsFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, declarations: [BsFileUploadComponent,
1963
+ BsFileUploadTemplateDirective], imports: [CommonModule,
1964
+ BsForModule,
1965
+ BsFormatBytesModule,
1966
+ BsProgressBarModule], exports: [BsFileUploadComponent,
1967
+ BsFileUploadTemplateDirective] });
1968
+ BsFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, imports: [[
1277
1969
  CommonModule,
1278
- BsCalendarModule,
1279
- BsDropdownModule
1970
+ BsForModule,
1971
+ BsFormatBytesModule,
1972
+ BsProgressBarModule
1280
1973
  ]] });
1281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
1974
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, decorators: [{
1282
1975
  type: NgModule,
1283
1976
  args: [{
1284
1977
  declarations: [
1285
- BsDatepickerComponent
1978
+ BsFileUploadComponent,
1979
+ BsFileUploadTemplateDirective
1286
1980
  ],
1287
1981
  imports: [
1288
1982
  CommonModule,
1289
- BsCalendarModule,
1290
- BsDropdownModule
1983
+ BsForModule,
1984
+ BsFormatBytesModule,
1985
+ BsProgressBarModule
1291
1986
  ],
1292
1987
  exports: [
1293
- BsDatepickerComponent
1988
+ BsFileUploadComponent,
1989
+ BsFileUploadTemplateDirective
1294
1990
  ]
1295
1991
  }]
1296
1992
  }] });
@@ -1346,42 +2042,246 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1346
2042
  }]
1347
2043
  }] });
1348
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 }]; } });
2202
+
1349
2203
  class BsMultiselectComponent {
1350
2204
  constructor() {
1351
2205
  this.items = [];
1352
2206
  this.selectedItems = [];
1353
2207
  }
1354
2208
  itemChange(item, event) {
1355
- if (!!event.target.checked) {
2209
+ if (event.target.checked) {
1356
2210
  this.selectedItems.push(item);
1357
2211
  }
1358
2212
  else {
1359
2213
  this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
1360
2214
  }
1361
2215
  }
1362
- ngOnInit() {
1363
- }
1364
2216
  }
1365
2217
  BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1366
- 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"] }] });
1367
2219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
1368
2220
  type: Component,
1369
- 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"] }]
1370
- }], ctorParameters: function () { return []; }, propDecorators: { template: [{
1371
- type: ContentChild,
1372
- args: [TemplateRef]
1373
- }], 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: [{
1374
2223
  type: Input
1375
2224
  }], selectedItems: [{
1376
2225
  type: Input
2226
+ }], defaultButtonTemplate: [{
2227
+ type: ViewChild,
2228
+ args: ['defaultButtonTemplate']
1377
2229
  }] } });
1378
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
+
1379
2273
  class BsMultiselectModule {
1380
2274
  }
1381
2275
  BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1382
- 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,
1383
2280
  BsDropdownModule,
1384
- FocusOnLoadModule], exports: [BsMultiselectComponent] });
2281
+ FocusOnLoadModule], exports: [BsMultiselectComponent,
2282
+ BsHeaderTemplateDirective,
2283
+ BsFooterTemplateDirective,
2284
+ BsButtonTemplateDirective] });
1385
2285
  BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
1386
2286
  CommonModule,
1387
2287
  BsDropdownModule,
@@ -1391,7 +2291,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1391
2291
  type: NgModule,
1392
2292
  args: [{
1393
2293
  declarations: [
1394
- BsMultiselectComponent
2294
+ BsMultiselectComponent,
2295
+ BsHeaderTemplateDirective,
2296
+ BsFooterTemplateDirective,
2297
+ BsButtonTemplateDirective
1395
2298
  ],
1396
2299
  imports: [
1397
2300
  CommonModule,
@@ -1399,7 +2302,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1399
2302
  FocusOnLoadModule,
1400
2303
  ],
1401
2304
  exports: [
1402
- BsMultiselectComponent
2305
+ BsMultiselectComponent,
2306
+ BsHeaderTemplateDirective,
2307
+ BsFooterTemplateDirective,
2308
+ BsButtonTemplateDirective
1403
2309
  ]
1404
2310
  }]
1405
2311
  }] });
@@ -1415,10 +2321,10 @@ class BsNavbarComponent {
1415
2321
  }
1416
2322
  }
1417
2323
  BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1418
- 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"] });
1419
2325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
1420
2326
  type: Component,
1421
- 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"] }]
1422
2328
  }], propDecorators: { nav: [{
1423
2329
  type: ViewChild,
1424
2330
  args: ['nav']
@@ -1491,12 +2397,9 @@ class BsNavbarItemComponent {
1491
2397
  this.anchorTag = null;
1492
2398
  this.parentDropdown = parentDropdown;
1493
2399
  }
1494
- ngOnInit() {
1495
- }
1496
2400
  ngAfterContentChecked() {
2401
+ this.anchorTag = this.element.nativeElement.querySelector('li a');
1497
2402
  if (this.hasDropdown) {
1498
- window.element = this.element.nativeElement;
1499
- this.anchorTag = this.element.nativeElement.querySelector('li a');
1500
2403
  (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
1501
2404
  if (this.anchorTag && !this.anchorTag.onclick) {
1502
2405
  this.anchorTag.onclick = (ev) => {
@@ -1513,6 +2416,20 @@ class BsNavbarItemComponent {
1513
2416
  };
1514
2417
  }
1515
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
+ }
1516
2433
  }
1517
2434
  }
1518
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 });
@@ -1529,6 +2446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1529
2446
 
1530
2447
  class BsNavbarDropdownComponent {
1531
2448
  constructor(parentDropdown, navbarItem) {
2449
+ this.autoclose = true;
1532
2450
  this.isVisible = false;
1533
2451
  this.parentDropdown = parentDropdown;
1534
2452
  this.navbarItem = navbarItem;
@@ -1536,11 +2454,9 @@ class BsNavbarDropdownComponent {
1536
2454
  get elementsToExclude() {
1537
2455
  return [this.navbarItem.anchorTag].filter((a) => a).map((a) => a);
1538
2456
  }
1539
- ngOnInit() {
1540
- }
1541
2457
  }
1542
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 });
1543
- 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"] }] });
1544
2460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarDropdownComponent, decorators: [{
1545
2461
  type: Component,
1546
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"] }]
@@ -1555,7 +2471,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1555
2471
  }, {
1556
2472
  type: Inject,
1557
2473
  args: [forwardRef(() => BsNavbarItemComponent)]
1558
- }] }]; }, propDecorators: { childDropdowns: [{
2474
+ }] }]; }, propDecorators: { autoclose: [{
2475
+ type: Input
2476
+ }], childDropdowns: [{
1559
2477
  type: ContentChildren,
1560
2478
  args: [forwardRef(() => BsNavbarDropdownComponent), { descendants: true }]
1561
2479
  }] } });
@@ -1647,6 +2565,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1647
2565
  args: ['navbarContent']
1648
2566
  }] } });
1649
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
+
1650
2582
  class BsNavbarModule {
1651
2583
  }
1652
2584
  BsNavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1656,7 +2588,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1656
2588
  BsNavbarItemComponent,
1657
2589
  DropdownToggleDirective,
1658
2590
  NavLinkDirective,
1659
- NavbarContentDirective], imports: [CommonModule,
2591
+ NavbarContentDirective,
2592
+ BsNavbarBrandComponent], imports: [CommonModule,
1660
2593
  RouterModule,
1661
2594
  ClickOutsideModule], exports: [BsNavbarComponent,
1662
2595
  BsNavbarNavComponent,
@@ -1664,7 +2597,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1664
2597
  BsNavbarItemComponent,
1665
2598
  DropdownToggleDirective,
1666
2599
  NavLinkDirective,
1667
- NavbarContentDirective] });
2600
+ NavbarContentDirective,
2601
+ BsNavbarBrandComponent] });
1668
2602
  BsNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, imports: [[
1669
2603
  CommonModule,
1670
2604
  RouterModule,
@@ -1680,188 +2614,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1680
2614
  BsNavbarItemComponent,
1681
2615
  DropdownToggleDirective,
1682
2616
  NavLinkDirective,
1683
- NavbarContentDirective
2617
+ NavbarContentDirective,
2618
+ BsNavbarBrandComponent
1684
2619
  ],
1685
2620
  imports: [
1686
- CommonModule,
1687
- RouterModule,
1688
- ClickOutsideModule
1689
- ],
1690
- exports: [
1691
- BsNavbarComponent,
1692
- BsNavbarNavComponent,
1693
- BsNavbarDropdownComponent,
1694
- BsNavbarItemComponent,
1695
- DropdownToggleDirective,
1696
- NavLinkDirective,
1697
- NavbarContentDirective
1698
- ]
1699
- }]
1700
- }] });
1701
-
1702
- class BsProgressComponent {
1703
- constructor() {
1704
- this.progressClass = true;
1705
- this.height = null;
1706
- this.isIndeterminate = false;
1707
- }
1708
- }
1709
- BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1710
- BsProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressComponent, selector: "bs-progress", inputs: { height: "height", isIndeterminate: "isIndeterminate" }, host: { properties: { "class.progress": "this.progressClass", "style.height.px": "this.height" } }, ngImport: i0, template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1711
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
1712
- type: Component,
1713
- args: [{ selector: 'bs-progress', template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"] }]
1714
- }], propDecorators: { progressClass: [{
1715
- type: HostBinding,
1716
- args: ['class.progress']
1717
- }], height: [{
1718
- type: Input
1719
- }, {
1720
- type: HostBinding,
1721
- args: ['style.height.px']
1722
- }], isIndeterminate: [{
1723
- type: Input
1724
- }] } });
1725
-
1726
- class BsProgressBarComponent {
1727
- constructor() {
1728
- this.destroyed$ = new Subject();
1729
- this.minimum$ = new BehaviorSubject(0);
1730
- this.maximum$ = new BehaviorSubject(100);
1731
- this.value$ = new BehaviorSubject(50);
1732
- this.color$ = new BehaviorSubject(Color.primary);
1733
- this.striped = false;
1734
- this.animated = false;
1735
- this.progressBar = true;
1736
- this.colorClass = 'bg-primary';
1737
- this.widthStyle = '0';
1738
- this.role = 'progressbar';
1739
- this.valueNow = 50;
1740
- this.valueMin = 0;
1741
- this.valueMax = 100;
1742
- this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
1743
- .pipe(map(([minimum, maximum, value]) => {
1744
- return (value - minimum) / (maximum - minimum) * 100;
1745
- }));
1746
- this.width$ = this.percentage$
1747
- .pipe(map((width) => {
1748
- return String(width) + '%';
1749
- }));
1750
- this.colorClass$ = this.color$
1751
- .pipe(map((color) => {
1752
- const name = Color[color];
1753
- return `bg-${name}`;
1754
- }));
1755
- this.colorClass$
1756
- .pipe(takeUntil(this.destroyed$))
1757
- .subscribe((color) => {
1758
- this.colorClass = color;
1759
- });
1760
- this.width$
1761
- .pipe(takeUntil(this.destroyed$))
1762
- .subscribe((width) => {
1763
- this.widthStyle = width;
1764
- });
1765
- this.value$
1766
- .pipe(takeUntil(this.destroyed$))
1767
- .subscribe((value) => {
1768
- this.valueNow = value;
1769
- });
1770
- this.minimum$
1771
- .pipe(takeUntil(this.destroyed$))
1772
- .subscribe((value) => {
1773
- this.valueMin = value;
1774
- });
1775
- this.maximum$
2621
+ CommonModule,
2622
+ RouterModule,
2623
+ ClickOutsideModule
2624
+ ],
2625
+ exports: [
2626
+ BsNavbarComponent,
2627
+ BsNavbarNavComponent,
2628
+ BsNavbarDropdownComponent,
2629
+ BsNavbarItemComponent,
2630
+ DropdownToggleDirective,
2631
+ NavLinkDirective,
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$])
1776
2657
  .pipe(takeUntil(this.destroyed$))
1777
- .subscribe((value) => {
1778
- this.valueMax = value;
2658
+ .subscribe(([previewValue, value]) => {
2659
+ const v = previewValue ?? value;
2660
+ this.starsChange.emit(v);
1779
2661
  });
1780
2662
  }
1781
- set minimum(value) {
1782
- this.minimum$.next(value);
1783
- }
2663
+ //#region Maximum
1784
2664
  set maximum(value) {
1785
2665
  this.maximum$.next(value);
1786
2666
  }
2667
+ get value() {
2668
+ return this.value$.value;
2669
+ }
1787
2670
  set value(value) {
1788
2671
  this.value$.next(value);
2672
+ this.valueChange.emit(value);
1789
2673
  }
1790
- set color(value) {
1791
- this.color$.next(value);
1792
- }
2674
+ //#endregion
1793
2675
  ngOnDestroy() {
1794
2676
  this.destroyed$.next(true);
1795
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
+ }
1796
2687
  }
1797
- BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1798
- BsProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: { minimum: "minimum", maximum: "maximum", value: "value", color: "color", striped: "striped", animated: "animated" }, host: { properties: { "class.progress-bar-striped": "this.striped", "class.progress-bar-animated": "this.animated", "class.progress-bar": "this.progressBar", "class": "this.colorClass", "style.width": "this.widthStyle", "attr.role": "this.role", "attr.aria-valuenow": "this.valueNow", "attr.aria-valuemin": "this.valueMin", "attr.aria-valuemax": "this.valueMax" } }, ngImport: i0, template: "", styles: [""] });
1799
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
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: [{
1800
2691
  type: Component,
1801
- args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
1802
- }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
1803
- type: Input
1804
- }], maximum: [{
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: [{
1805
2694
  type: Input
2695
+ }], valueChange: [{
2696
+ type: Output
2697
+ }], starsChange: [{
2698
+ type: Output
1806
2699
  }], value: [{
1807
2700
  type: Input
1808
- }], color: [{
1809
- type: Input
1810
- }], striped: [{
1811
- type: Input
1812
- }, {
1813
- type: HostBinding,
1814
- args: ['class.progress-bar-striped']
1815
- }], animated: [{
1816
- type: Input
1817
- }, {
1818
- type: HostBinding,
1819
- args: ['class.progress-bar-animated']
1820
- }], progressBar: [{
1821
- type: HostBinding,
1822
- args: ['class.progress-bar']
1823
- }], colorClass: [{
1824
- type: HostBinding,
1825
- args: ['class']
1826
- }], widthStyle: [{
1827
- type: HostBinding,
1828
- args: ['style.width']
1829
- }], role: [{
1830
- type: HostBinding,
1831
- args: ['attr.role']
1832
- }], valueNow: [{
1833
- type: HostBinding,
1834
- args: ['attr.aria-valuenow']
1835
- }], valueMin: [{
1836
- type: HostBinding,
1837
- args: ['attr.aria-valuemin']
1838
- }], valueMax: [{
1839
- type: HostBinding,
1840
- args: ['attr.aria-valuemax']
2701
+ }], onMouseLeave: [{
2702
+ type: HostListener,
2703
+ args: ['mouseleave']
1841
2704
  }] } });
1842
2705
 
1843
- class BsProgressBarModule {
2706
+ class BsRatingModule {
1844
2707
  }
1845
- BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1846
- BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
1847
- BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
1848
- BsProgressComponent] });
1849
- BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
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: [[
1850
2711
  CommonModule
1851
2712
  ]] });
1852
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
2713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, decorators: [{
1853
2714
  type: NgModule,
1854
2715
  args: [{
1855
2716
  declarations: [
1856
- BsProgressBarComponent,
1857
- BsProgressComponent
2717
+ BsRatingComponent
1858
2718
  ],
1859
2719
  imports: [
1860
2720
  CommonModule
1861
2721
  ],
1862
2722
  exports: [
1863
- BsProgressBarComponent,
1864
- BsProgressComponent
2723
+ BsRatingComponent
1865
2724
  ]
1866
2725
  }]
1867
2726
  }] });
@@ -1909,15 +2768,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1909
2768
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
1910
2769
 
1911
2770
  class BsScrollspyComponent {
1912
- constructor(scrollOffsetService, document) {
2771
+ constructor(scrollOffsetService, document, zone) {
1913
2772
  this.scrollOffsetService = scrollOffsetService;
2773
+ this.zone = zone;
2774
+ this.destroyed$ = new Subject();
2775
+ this.viewInit$ = new BehaviorSubject(false);
2776
+ this.contentInit$ = new BehaviorSubject(false);
1914
2777
  this.activeDirective = null;
1915
2778
  this.doc = document;
2779
+ combineLatest([this.viewInit$, this.contentInit$])
2780
+ .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))
2781
+ .pipe(takeUntil(this.destroyed$))
2782
+ .subscribe(() => {
2783
+ // this.setActiveDirective();
2784
+ this.scrollToCurrentInSpy();
2785
+ });
1916
2786
  }
1917
2787
  ngAfterViewInit() {
1918
- this.onWindowScroll();
2788
+ this.viewInit$.next(true);
2789
+ }
2790
+ ngAfterContentInit() {
2791
+ this.contentInit$.next(true);
2792
+ }
2793
+ ngOnDestroy() {
2794
+ this.destroyed$.next(true);
1919
2795
  }
1920
2796
  onWindowScroll() {
2797
+ this.setActiveDirective();
2798
+ this.scrollToCurrentInSpy();
2799
+ }
2800
+ setActiveDirective() {
1921
2801
  const offsetY = this.scrollOffsetService.getScrollOffset()[1];
1922
2802
  const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
1923
2803
  if (this.directives.length === 0) {
@@ -1929,6 +2809,8 @@ class BsScrollspyComponent {
1929
2809
  else {
1930
2810
  this.activeDirective = dirs[dirs.length - 1];
1931
2811
  }
2812
+ }
2813
+ scrollToCurrentInSpy() {
1932
2814
  if (window && (window.innerWidth >= 768)) {
1933
2815
  if (this.activeDirective) {
1934
2816
  const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
@@ -1946,7 +2828,7 @@ class BsScrollspyComponent {
1946
2828
  window.scrollTo({ top: y, behavior: 'smooth' });
1947
2829
  }
1948
2830
  }
1949
- BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
2831
+ BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1950
2832
  BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1951
2833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
1952
2834
  type: Component,
@@ -1954,7 +2836,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1954
2836
  }], ctorParameters: function () { return [{ type: BsScrollOffsetService }, { type: undefined, decorators: [{
1955
2837
  type: Inject,
1956
2838
  args: [DOCUMENT]
1957
- }] }]; }, propDecorators: { directives: [{
2839
+ }] }, { type: i0.NgZone }]; }, propDecorators: { directives: [{
1958
2840
  type: ContentChildren,
1959
2841
  args: [BsScrollspyDirective, { descendants: true }]
1960
2842
  }], anchors: [{
@@ -2051,8 +2933,6 @@ class BsSelect2Component {
2051
2933
  this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
2052
2934
  this.focus();
2053
2935
  }
2054
- ngOnInit() {
2055
- }
2056
2936
  onResize() {
2057
2937
  this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);
2058
2938
  }
@@ -2061,11 +2941,14 @@ class BsSelect2Component {
2061
2941
  }
2062
2942
  }
2063
2943
  BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
2064
- 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 } });
2065
2945
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, decorators: [{
2066
2946
  type: Component,
2067
- 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"] }]
2068
- }], 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: [{
2069
2952
  type: ViewChild,
2070
2953
  args: ['searchBox']
2071
2954
  }], itemsBox: [{
@@ -2088,15 +2971,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2088
2971
  }], focus: [{
2089
2972
  type: HostListener,
2090
2973
  args: ['click']
2091
- }], defaultItemTemplate: [{
2092
- type: ViewChild,
2093
- args: ['defaultItemTemplate', { static: true }]
2094
2974
  }] } });
2095
2975
 
2096
2976
  class BsItemTemplateDirective {
2097
2977
  constructor(select2component, templateRef) {
2098
2978
  this.select2component = select2component;
2099
- console.log('template', templateRef);
2100
2979
  this.select2component.itemTemplate = templateRef;
2101
2980
  }
2102
2981
  }
@@ -2166,161 +3045,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2166
3045
  }]
2167
3046
  }] });
2168
3047
 
2169
- const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
2170
-
2171
- class BsSnackbarComponent {
2172
- constructor(content) {
2173
- this.displayBlock = true;
2174
- this.width100 = true;
2175
- this.instance = null;
2176
- //#region Monitor @slideUpDown hooks
2177
- this.animationState = '';
2178
- this.animationStateChanged = new EventEmitter();
2179
- this.content = content;
2180
- }
2181
- onAnimationChanged(event) {
2182
- this.animationStateChanged.emit(event);
2183
- }
2184
- }
2185
- BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2186
- 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] });
2187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
2188
- type: Component,
2189
- 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"] }]
2190
- }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
2191
- type: Inject,
2192
- args: [SNACKBAR_CONTENT]
2193
- }] }]; }, propDecorators: { displayBlock: [{
2194
- type: HostBinding,
2195
- args: ['class.d-block']
2196
- }], width100: [{
2197
- type: HostBinding,
2198
- args: ['class.w-100']
2199
- }] } });
2200
-
2201
- class BsSnackbarService {
2202
- constructor(overlay, parentInjector, componentFactoryResolver) {
2203
- this.overlay = overlay;
2204
- this.parentInjector = parentInjector;
2205
- this.componentFactoryResolver = componentFactoryResolver;
2206
- }
2207
- show(template) {
2208
- const injector = Injector.create({
2209
- providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
2210
- parent: this.parentInjector
2211
- });
2212
- const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
2213
- const overlayRef = this.overlay.create({
2214
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
2215
- positionStrategy: this.overlay.position()
2216
- .global().centerHorizontally().bottom('0'),
2217
- width: '100%'
2218
- });
2219
- const componentInstance = overlayRef.attach(portal);
2220
- // componentInstance.
2221
- componentInstance.instance['instance'] = {
2222
- component: componentInstance,
2223
- overlay: overlayRef
2224
- };
2225
- return componentInstance.instance;
2226
- }
2227
- hide(snackbar) {
2228
- snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2229
- snackbar['instance']?.overlay.dispose();
2230
- });
2231
- snackbar.animationState = 'void';
2232
- }
2233
- }
2234
- 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 });
2235
- BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: 'root' });
2236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
2237
- type: Injectable,
2238
- args: [{
2239
- providedIn: 'root'
2240
- }]
2241
- }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
2242
-
2243
- class BsSnackbarCloseDirective {
2244
- constructor(snackbarService) {
2245
- this.snackbarService = snackbarService;
2246
- }
2247
- onClick() {
2248
- this.snackbarService.hide(this.bsSnackbarClose);
2249
- }
2250
- }
2251
- BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
2252
- 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 });
2253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
2254
- type: Directive,
2255
- args: [{
2256
- selector: '[bsSnackbarClose]'
2257
- }]
2258
- }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
2259
- type: Input
2260
- }], onClick: [{
2261
- type: HostListener,
2262
- args: ['click']
2263
- }] } });
2264
-
2265
- class BsSnackbarModule {
2266
- }
2267
- BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2268
- BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
2269
- BsSnackbarCloseDirective], imports: [CommonModule], exports: [BsSnackbarComponent,
2270
- BsSnackbarCloseDirective] });
2271
- BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
2272
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2273
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2274
- ], imports: [[
2275
- CommonModule
2276
- ]] });
2277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
2278
- type: NgModule,
2279
- args: [{
2280
- declarations: [
2281
- BsSnackbarComponent,
2282
- BsSnackbarCloseDirective
2283
- ],
2284
- imports: [
2285
- CommonModule
2286
- ],
2287
- exports: [
2288
- BsSnackbarComponent,
2289
- BsSnackbarCloseDirective
2290
- ],
2291
- providers: [
2292
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2293
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2294
- ]
2295
- }]
2296
- }] });
2297
-
2298
3048
  class BsTabPageComponent {
2299
3049
  constructor(tabControl) {
2300
3050
  this.disabled = false;
2301
3051
  this.tabControl = tabControl;
2302
3052
  }
2303
- ngOnInit() {
2304
- }
2305
3053
  }
2306
3054
  BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
2307
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"] }] });
2308
3056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
2309
3057
  type: Component,
2310
3058
  args: [{ selector: 'bs-tab-page', template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""] }]
2311
- }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { headerTemplate: [{
3059
+ }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { disabled: [{
3060
+ type: Input
3061
+ }], headerTemplate: [{
2312
3062
  type: ContentChild,
2313
3063
  args: [TemplateRef]
2314
- }], disabled: [{
2315
- type: Input
2316
3064
  }] } });
2317
3065
 
2318
3066
  class BsTabControlComponent {
2319
3067
  constructor() {
3068
+ this.border = true;
2320
3069
  this.activeTab = null;
2321
3070
  }
2322
- ngOnInit() {
2323
- }
2324
3071
  setActiveTab(tab) {
2325
3072
  if (!tab.disabled) {
2326
3073
  this.activeTab = tab;
@@ -2329,13 +3076,15 @@ class BsTabControlComponent {
2329
3076
  }
2330
3077
  }
2331
3078
  BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2332
- 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"] }] });
2333
3080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
2334
3081
  type: Component,
2335
- 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: [""] }]
2336
- }], 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: [{
2337
3084
  type: ContentChildren,
2338
3085
  args: [BsTabPageComponent]
3086
+ }], border: [{
3087
+ type: Input
2339
3088
  }] } });
2340
3089
 
2341
3090
  class BsTabControlModule {
@@ -2369,14 +3118,11 @@ class BsToggleButtonComponent {
2369
3118
  this.disableAnimations = true;
2370
3119
  //#region isToggled
2371
3120
  this._isToggled = false;
3121
+ this.change = new EventEmitter();
2372
3122
  this.isToggledChange = new EventEmitter();
2373
3123
  //#endregion
2374
- this.offColor = '#CCCCCC';
2375
- this.onColor = '#2196F3';
2376
- this.round = true;
2377
- }
2378
- ngAfterViewInit() {
2379
- this.disableAnimations = false;
3124
+ //#region disabled
3125
+ this.disabled = false;
2380
3126
  }
2381
3127
  get isToggled() {
2382
3128
  return this._isToggled;
@@ -2385,21 +3131,28 @@ class BsToggleButtonComponent {
2385
3131
  this._isToggled = value;
2386
3132
  this.isToggledChange.emit(this._isToggled);
2387
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
+ }
2388
3143
  }
2389
3144
  BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2390
- 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] });
2391
3146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
2392
3147
  type: Component,
2393
- 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"] }]
2394
- }], 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: [{
2395
3152
  type: Output
2396
3153
  }], isToggled: [{
2397
3154
  type: Input
2398
- }], offColor: [{
2399
- type: Input
2400
- }], onColor: [{
2401
- type: Input
2402
- }], round: [{
3155
+ }], disabled: [{
2403
3156
  type: Input
2404
3157
  }] } });
2405
3158
 
@@ -2466,6 +3219,9 @@ class BsTooltipDirective {
2466
3219
  this.hideTooltip();
2467
3220
  };
2468
3221
  }
3222
+ onBlur() {
3223
+ this.hideTooltip();
3224
+ }
2469
3225
  showTooltip() {
2470
3226
  const positions = [];
2471
3227
  switch (this.bsTooltip) {
@@ -2528,7 +3284,7 @@ class BsTooltipDirective {
2528
3284
  }
2529
3285
  }
2530
3286
  BsTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipDirective, deps: [{ token: i1$1.Overlay }, { token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ElementRef, host: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
2531
- BsTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsTooltipDirective, selector: "*[bsTooltip]", inputs: { bsTooltip: "bsTooltip" }, ngImport: i0 });
3287
+ BsTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsTooltipDirective, selector: "*[bsTooltip]", inputs: { bsTooltip: "bsTooltip" }, host: { listeners: { "window:blur": "onBlur()" } }, ngImport: i0 });
2532
3288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipDirective, decorators: [{
2533
3289
  type: Directive,
2534
3290
  args: [{
@@ -2540,15 +3296,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2540
3296
  type: SkipSelf
2541
3297
  }] }]; }, propDecorators: { bsTooltip: [{
2542
3298
  type: Input
3299
+ }], onBlur: [{
3300
+ type: HostListener,
3301
+ args: ['window:blur']
2543
3302
  }] } });
2544
3303
 
2545
3304
  class BsTooltipModule {
2546
3305
  }
2547
3306
  BsTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2548
3307
  BsTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, declarations: [BsTooltipDirective,
2549
- BsTooltipComponent], imports: [CommonModule], exports: [BsTooltipDirective] });
3308
+ BsTooltipComponent], imports: [CommonModule,
3309
+ OverlayModule], exports: [BsTooltipDirective] });
2550
3310
  BsTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, imports: [[
2551
- CommonModule
3311
+ CommonModule,
3312
+ OverlayModule
2552
3313
  ]] });
2553
3314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, decorators: [{
2554
3315
  type: NgModule,
@@ -2558,7 +3319,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2558
3319
  BsTooltipComponent
2559
3320
  ],
2560
3321
  imports: [
2561
- CommonModule
3322
+ CommonModule,
3323
+ OverlayModule
2562
3324
  ],
2563
3325
  exports: [
2564
3326
  BsTooltipDirective
@@ -2620,7 +3382,7 @@ class BsTypeaheadComponent {
2620
3382
  }
2621
3383
  }
2622
3384
  BsTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2623
- 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 } });
2624
3386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, decorators: [{
2625
3387
  type: Component,
2626
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"] }]
@@ -2729,5 +3491,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2729
3491
  * Generated bundle index. Do not edit.
2730
3492
  */
2731
3493
 
2732
- export { BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsContextMenuDirective, BsContextMenuModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsFontColorPipe, BsFontColorPipeModule, BsItemTemplateDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsMultiselectComponent, BsMultiselectModule, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsPaginationComponent, BsPaginationModule, BsProgressBarComponent, BsProgressBarModule, BsProgressComponent, BsRowTemplateDirective, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsSelect2Component, BsSelect2Module, BsSnackbarCloseDirective, BsSnackbarComponent, BsSnackbarModule, BsSnackbarService, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, BsToggleButtonComponent, BsToggleButtonModule, BsTooltipDirective, BsTooltipModule, BsTypeaheadComponent, BsTypeaheadModule, Color, DatatableSettings, DropdownToggleDirective, NavLinkDirective, NavbarContentDirective, Position };
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 };
2733
3495
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map