@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,35 +1,27 @@
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
- import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
8
+ import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
10
9
  import * as i1$1 from '@angular/cdk/overlay';
11
10
  import { OverlayModule } from '@angular/cdk/overlay';
11
+ import * as i3 from 'ngx-highlightjs';
12
+ import { HighlightModule } from 'ngx-highlightjs';
12
13
  import * as i1$2 from '@mintplayer/ng-click-outside';
13
14
  import { ClickOutsideDirective, ClickOutsideModule } from '@mintplayer/ng-click-outside';
14
15
  import { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';
16
+ import * as i1$3 from '@angular/router';
15
17
  import { RouterModule, ROUTER_CONFIGURATION } from '@angular/router';
16
- import * as i3 from '@angular/forms';
18
+ import * as i3$1 from '@angular/forms';
17
19
  import { FormsModule } from '@angular/forms';
18
20
 
19
21
  class BsAccordionTabComponent {
20
22
  constructor(accordion) {
21
23
  this.accordion = accordion;
22
24
  }
23
- ngOnInit() {
24
- }
25
- headerClicked(event) {
26
- if (this.accordion.activeTab === this) {
27
- this.accordion.activeTab = null;
28
- }
29
- else {
30
- this.accordion.activeTab = this;
31
- }
32
- }
33
25
  }
34
26
  BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
35
27
  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] });
@@ -42,15 +34,13 @@ class BsAccordionComponent {
42
34
  constructor() {
43
35
  this.activeTab = null;
44
36
  }
45
- ngOnInit() {
46
- }
47
37
  }
48
38
  BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
39
  BsAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionComponent, selector: "bs-accordion", queries: [{ propertyName: "tabPages", predicate: BsAccordionTabComponent }], ngImport: i0, template: "<ng-content></ng-content>", styles: [""] });
50
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionComponent, decorators: [{
51
41
  type: Component,
52
42
  args: [{ selector: 'bs-accordion', template: "<ng-content></ng-content>", styles: [""] }]
53
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
43
+ }], propDecorators: { tabPages: [{
54
44
  type: ContentChildren,
55
45
  args: [BsAccordionTabComponent]
56
46
  }] } });
@@ -60,8 +50,6 @@ class BsAccordionTabHeaderComponent {
60
50
  this.accordionTab = accordionTab;
61
51
  this.accordion = accordion;
62
52
  }
63
- ngOnInit() {
64
- }
65
53
  headerClicked(event) {
66
54
  event.preventDefault();
67
55
  if (this.accordion.activeTab === this.accordionTab) {
@@ -71,15 +59,12 @@ class BsAccordionTabHeaderComponent {
71
59
  this.accordion.activeTab = this.accordionTab;
72
60
  }
73
61
  }
74
- foo(event) {
75
- event.preventDefault();
76
- }
77
62
  }
78
63
  BsAccordionTabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, deps: [{ token: BsAccordionTabComponent }, { token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
79
- BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\" (contextmenu)=\"foo($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] });
64
+ 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: [""] });
80
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
81
66
  type: Component,
82
- args: [{ selector: 'bs-accordion-tab-header', template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\" (contextmenu)=\"foo($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
67
+ args: [{ selector: 'bs-accordion-tab-header', template: "<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <ng-content></ng-content>\n</div>", styles: [""] }]
83
68
  }], ctorParameters: function () { return [{ type: BsAccordionTabComponent }, { type: BsAccordionComponent }]; } });
84
69
 
85
70
  class BsAccordionModule {
@@ -87,13 +72,11 @@ class BsAccordionModule {
87
72
  BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
88
73
  BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
89
74
  BsAccordionTabComponent,
90
- BsAccordionTabHeaderComponent], imports: [CommonModule,
91
- BrowserAnimationsModule], exports: [BsAccordionComponent,
75
+ BsAccordionTabHeaderComponent], imports: [CommonModule], exports: [BsAccordionComponent,
92
76
  BsAccordionTabComponent,
93
77
  BsAccordionTabHeaderComponent] });
94
78
  BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, imports: [[
95
- CommonModule,
96
- BrowserAnimationsModule
79
+ CommonModule
97
80
  ]] });
98
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAccordionModule, decorators: [{
99
82
  type: NgModule,
@@ -104,8 +87,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
104
87
  BsAccordionTabHeaderComponent
105
88
  ],
106
89
  imports: [
107
- CommonModule,
108
- BrowserAnimationsModule
90
+ CommonModule
109
91
  ],
110
92
  exports: [
111
93
  BsAccordionComponent,
@@ -144,15 +126,13 @@ class BsAlertComponent {
144
126
  this.colors = Color;
145
127
  this.isVisible = true;
146
128
  }
147
- ngOnInit() {
148
- }
149
129
  }
150
130
  BsAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
151
131
  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] });
152
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsAlertComponent, decorators: [{
153
133
  type: Component,
154
134
  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"] }]
155
- }], ctorParameters: function () { return []; }, propDecorators: { type: [{
135
+ }], propDecorators: { type: [{
156
136
  type: Input
157
137
  }] } });
158
138
 
@@ -160,8 +140,6 @@ class BsAlertCloseComponent {
160
140
  constructor(alert) {
161
141
  this.alert = alert;
162
142
  }
163
- ngOnInit() {
164
- }
165
143
  closeAlert() {
166
144
  this.alert.isVisible = false;
167
145
  }
@@ -198,23 +176,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
198
176
  class BsCalendarMonthService {
199
177
  getWeeks(month) {
200
178
  const firstAndLast = this.getFirstAndLastDayOfMonth(month);
201
- const days = this.dateDiff(firstAndLast.first, firstAndLast.last) + 1;
202
- const allDays = [
203
- ...this.generateList(this.dayOfWeekMondayBased(firstAndLast.first)).map(d => null),
204
- ...this.generateList(days).map(d => {
205
- return {
206
- date: new Date(firstAndLast.first.getFullYear(), firstAndLast.first.getMonth(), firstAndLast.first.getDate() + d),
207
- dayOfMonth: d + 1,
208
- };
209
- }),
210
- ...this.generateList(6 - this.dayOfWeekMondayBased(firstAndLast.last)).map(d => null),
211
- ];
179
+ const firstOfMonth = this.getMondayBefore(firstAndLast.first);
180
+ const lastOfMonth = this.getSundayAfter(firstAndLast.last);
181
+ const days = this.dateDiff(firstOfMonth, lastOfMonth) + 1;
182
+ const firstDayOffset = (firstAndLast.first.getDay() + 7 - 1) % 7;
183
+ const allDays = this.generateList(days).map(d => d - firstDayOffset).map(d => {
184
+ const wrongDate = new Date(firstAndLast.first.getFullYear(), firstAndLast.first.getMonth(), firstAndLast.first.getDate() + d);
185
+ const correctDate = new Date(wrongDate.getFullYear(), wrongDate.getMonth(), wrongDate.getDate());
186
+ return {
187
+ date: correctDate,
188
+ dayOfMonth: correctDate.getDate(),
189
+ isInMonth: (correctDate.getFullYear() === month.getFullYear()) && (correctDate.getMonth() === month.getMonth())
190
+ };
191
+ });
212
192
  const weeks = this.chunk(allDays, 7);
213
193
  const weeksMapped = weeks.map((w, i) => {
214
194
  var _a;
215
195
  return {
216
- number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), (_a = w.find(d => d !== null)) === null || _a === void 0 ? void 0 : _a.dayOfMonth)),
217
- week: w
196
+ number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), (_a = w.find(d => d.isInMonth)) === null || _a === void 0 ? void 0 : _a.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 === null || d === void 0 ? void 0 : 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) => { var _a, _b; return (_b = (_a = this.images.get(index)) === null || _a === void 0 ? void 0 : _a.itemTemplate) !== null && _b !== void 0 ? _b : 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,257 @@ 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 () {
694
+ return [{ type: i0.TemplateRef, decorators: [{
695
+ type: Inject,
696
+ args: [SNACKBAR_CONTENT]
697
+ }] }];
698
+ }, propDecorators: { displayBlock: [{
699
+ type: HostBinding,
700
+ args: ['class.d-block']
701
+ }], width100: [{
702
+ type: HostBinding,
703
+ args: ['class.w-100']
704
+ }] } });
705
+
706
+ class BsSnackbarCloseDirective {
707
+ constructor(snackbarService) {
708
+ this.snackbarService = snackbarService;
709
+ }
710
+ onClick() {
711
+ this.snackbarService.hide(this.bsSnackbarClose);
712
+ }
713
+ }
714
+ BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
715
+ 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 });
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
717
+ type: Directive,
718
+ args: [{
719
+ selector: '[bsSnackbarClose]'
720
+ }]
721
+ }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
722
+ type: Input
723
+ }], onClick: [{
724
+ type: HostListener,
725
+ args: ['click']
726
+ }] } });
727
+
728
+ class BsSnackbarModule {
729
+ }
730
+ BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
731
+ BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
732
+ BsSnackbarCloseDirective], imports: [CommonModule,
733
+ OverlayModule], exports: [BsSnackbarComponent,
734
+ BsSnackbarCloseDirective] });
735
+ BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
736
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
737
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
738
+ ], imports: [[
739
+ CommonModule,
740
+ OverlayModule
741
+ ]] });
742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
743
+ type: NgModule,
744
+ args: [{
745
+ declarations: [
746
+ BsSnackbarComponent,
747
+ BsSnackbarCloseDirective
748
+ ],
749
+ imports: [
750
+ CommonModule,
751
+ OverlayModule
752
+ ],
753
+ exports: [
754
+ BsSnackbarComponent,
755
+ BsSnackbarCloseDirective
756
+ ],
757
+ providers: [
758
+ // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
759
+ // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
760
+ ]
761
+ }]
762
+ }] });
763
+
764
+ class BsSnackbarService {
765
+ constructor(overlay, parentInjector, componentFactoryResolver) {
766
+ this.overlay = overlay;
767
+ this.parentInjector = parentInjector;
768
+ this.componentFactoryResolver = componentFactoryResolver;
769
+ }
770
+ show(template) {
771
+ const injector = Injector.create({
772
+ providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
773
+ parent: this.parentInjector
774
+ });
775
+ const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
776
+ const overlayRef = this.overlay.create({
777
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
778
+ positionStrategy: this.overlay.position()
779
+ .global().centerHorizontally().bottom('0'),
780
+ width: '100%'
781
+ });
782
+ const componentInstance = overlayRef.attach(portal);
783
+ componentInstance.instance['instance'] = {
784
+ component: componentInstance,
785
+ overlay: overlayRef
786
+ };
787
+ return componentInstance.instance;
788
+ }
789
+ hide(snackbar) {
790
+ snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
791
+ var _a;
792
+ (_a = snackbar['instance']) === null || _a === void 0 ? void 0 : _a.overlay.dispose();
793
+ });
794
+ snackbar.animationState = 'void';
795
+ }
796
+ }
797
+ 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 });
798
+ BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: BsSnackbarModule });
799
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
800
+ type: Injectable,
801
+ args: [{
802
+ providedIn: BsSnackbarModule
803
+ }]
804
+ }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
805
+
806
+ class BsCopyDirective {
807
+ constructor(doc) {
808
+ this.bsCopy = null;
809
+ this.bsCopied = new EventEmitter();
810
+ this.doc = doc;
811
+ }
812
+ click(event) {
813
+ event.preventDefault();
814
+ const listener = (e) => {
815
+ var _a;
816
+ if (!!this.bsCopy && !!window) {
817
+ const clipboard = e.clipboardData || window['clipboardData'] || null;
818
+ if (clipboard) {
819
+ clipboard.setData('text', (_a = this.bsCopy) === null || _a === void 0 ? void 0 : _a.toString());
820
+ e.preventDefault();
821
+ this.bsCopied.emit(this.bsCopy);
822
+ }
823
+ }
824
+ };
825
+ this.doc.addEventListener('copy', listener, false);
826
+ this.doc.execCommand('copy');
827
+ this.doc.removeEventListener('copy', listener, false);
828
+ }
829
+ }
830
+ BsCopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyDirective, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
831
+ 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 });
832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyDirective, decorators: [{
833
+ type: Directive,
834
+ args: [{
835
+ selector: '[bsCopy]',
836
+ }]
837
+ }], ctorParameters: function () {
838
+ return [{ type: undefined, decorators: [{
839
+ type: Inject,
840
+ args: [DOCUMENT]
841
+ }] }];
842
+ }, propDecorators: { bsCopy: [{
843
+ type: Input
844
+ }], bsCopied: [{
845
+ type: Output
846
+ }], click: [{
847
+ type: HostListener,
848
+ args: ['click', ['$event']]
849
+ }] } });
850
+
851
+ class BsCodeSnippetComponent {
852
+ constructor(snackbarService) {
853
+ this.snackbarService = snackbarService;
854
+ this.htmlToCopy = '';
855
+ }
856
+ copiedHtml() {
857
+ const snackbar = this.snackbarService.show(this.copiedTemplate);
858
+ setTimeout(() => this.snackbarService.hide(snackbar), 3000);
859
+ }
860
+ }
861
+ BsCodeSnippetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetComponent, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Component });
862
+ 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"] }] });
863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetComponent, decorators: [{
864
+ type: Component,
865
+ 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"] }]
866
+ }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { htmlToCopy: [{
867
+ type: Input
868
+ }], copiedTemplate: [{
869
+ type: ViewChild,
870
+ args: ['copiedTemplate']
871
+ }] } });
872
+
873
+ class BsCopyModule {
874
+ }
875
+ BsCopyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
876
+ BsCopyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, declarations: [BsCopyDirective], imports: [CommonModule], exports: [BsCopyDirective] });
877
+ BsCopyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, imports: [[
878
+ CommonModule
879
+ ]] });
880
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCopyModule, decorators: [{
881
+ type: NgModule,
882
+ args: [{
883
+ declarations: [
884
+ BsCopyDirective
885
+ ],
886
+ imports: [
887
+ CommonModule
888
+ ],
889
+ exports: [
890
+ BsCopyDirective
891
+ ]
892
+ }]
893
+ }] });
894
+
895
+ class BsCodeSnippetModule {
896
+ }
897
+ BsCodeSnippetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
898
+ BsCodeSnippetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, declarations: [BsCodeSnippetComponent], imports: [CommonModule,
899
+ BsCopyModule,
900
+ HighlightModule], exports: [BsCodeSnippetComponent] });
901
+ BsCodeSnippetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, imports: [[
902
+ CommonModule,
903
+ BsCopyModule,
904
+ HighlightModule
905
+ ]] });
906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCodeSnippetModule, decorators: [{
907
+ type: NgModule,
908
+ args: [{
909
+ declarations: [
910
+ BsCodeSnippetComponent
911
+ ],
912
+ imports: [
913
+ CommonModule,
914
+ BsCopyModule,
915
+ HighlightModule
916
+ ],
917
+ exports: [
918
+ BsCodeSnippetComponent
919
+ ]
920
+ }]
921
+ }] });
922
+
685
923
  class BsContextMenuDirective {
686
924
  constructor(overlay, templateRef, viewContainerRef, element) {
687
925
  this.overlay = overlay;
@@ -693,33 +931,50 @@ class BsContextMenuDirective {
693
931
  this.element.nativeElement.oncontextmenu = (ev) => {
694
932
  ev.preventDefault();
695
933
  this.checkAndCloseExisting(ev);
934
+ console.log('d', element.nativeElement);
696
935
  this.overlayRef = this.overlay.create({
697
- scrollStrategy: this.overlay.scrollStrategies.noop(),
936
+ hasBackdrop: false,
937
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
698
938
  positionStrategy: this.overlay.position()
699
- .global()
700
- .left(ev.x + 'px')
701
- .bottom((window.innerHeight - ev.y) + 'px')
702
- .top(ev.y + 'px')
939
+ // .flexibleConnectedTo({ x: ev.x, y: ev.y })
940
+ .flexibleConnectedTo(this.element)
941
+ .withPositions([
942
+ // element: TopLeft - dropdown: TopLeft
943
+ { originX: "start", originY: "top", overlayX: "start", overlayY: "top", offsetX: ev.offsetX, offsetY: ev.offsetY },
944
+ // // element: TopLeft - dropdown: BottomLeft
945
+ // { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom", offsetX: ev.offsetX, offsetY: ev.offsetY },
946
+ // // element: TopLeft - dropdown: TopRight
947
+ // { originX: "start", originY: "top", overlayX: "end", overlayY: "top", offsetX: ev.offsetX, offsetY: ev.offsetY },
948
+ // // element: TopLeft - dropdown: BottomRight
949
+ // { originX: "start", originY: "top", overlayX: "end", overlayY: "bottom", offsetX: ev.offsetX, offsetY: ev.offsetY },
950
+ ])
703
951
  });
704
952
  this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
705
- this.overlayRef.attach(this.templatePortal);
953
+ const view = this.overlayRef.attach(this.templatePortal);
954
+ view.rootNodes.forEach(node => node.classList.add('position-static'));
706
955
  };
707
956
  }
708
957
  clickAnywhere(ev) {
709
958
  this.checkAndCloseExisting(ev);
710
959
  }
711
- checkAndCloseExisting(ev) {
960
+ onBlur() {
961
+ this.close();
962
+ }
963
+ close() {
712
964
  if (this.overlayRef) {
713
- if (!this.overlayRef.overlayElement.contains(ev.target)) {
714
- this.overlayRef.detach();
715
- this.overlayRef.dispose();
716
- this.overlayRef = null;
717
- }
965
+ this.overlayRef.detach();
966
+ this.overlayRef.dispose();
967
+ this.overlayRef = null;
968
+ }
969
+ }
970
+ checkAndCloseExisting(ev) {
971
+ if (this.overlayRef && !this.overlayRef.overlayElement.contains(ev.target)) {
972
+ this.close();
718
973
  }
719
974
  }
720
975
  }
721
976
  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 });
977
+ 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
978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuDirective, decorators: [{
724
979
  type: Directive,
725
980
  args: [{
@@ -734,14 +989,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
734
989
  }, propDecorators: { clickAnywhere: [{
735
990
  type: HostListener,
736
991
  args: ['document:click', ['$event']]
992
+ }], onBlur: [{
993
+ type: HostListener,
994
+ args: ['window:blur']
737
995
  }] } });
738
996
 
739
997
  class BsContextMenuModule {
740
998
  }
741
999
  BsContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
742
- BsContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, declarations: [BsContextMenuDirective], imports: [CommonModule], exports: [BsContextMenuDirective] });
1000
+ BsContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, declarations: [BsContextMenuDirective], imports: [CommonModule,
1001
+ OverlayModule], exports: [BsContextMenuDirective] });
743
1002
  BsContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, imports: [[
744
- CommonModule
1003
+ CommonModule,
1004
+ OverlayModule
745
1005
  ]] });
746
1006
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, decorators: [{
747
1007
  type: NgModule,
@@ -750,7 +1010,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
750
1010
  BsContextMenuDirective
751
1011
  ],
752
1012
  imports: [
753
- CommonModule
1013
+ CommonModule,
1014
+ OverlayModule
754
1015
  ],
755
1016
  exports: [
756
1017
  BsContextMenuDirective
@@ -829,85 +1090,80 @@ class BsPaginationComponent {
829
1090
  /** The number of boxes (excluding arrows) that's being shown on the pagination component. */
830
1091
  this.visibleNumberOfNumberBoxes$ = new Observable();
831
1092
  this._selectedPageNumber = 0;
832
- this.selectedPageNumberChange = new EventEmitter();
833
1093
  this._numberOfBoxes = 0;
834
1094
  this._pageNumbers = [];
835
1095
  this._showArrows = true;
1096
+ //#region SelectedPageNumber
1097
+ this.selectedPageNumberChange = new EventEmitter();
836
1098
  this.destroyed$ = new Subject();
837
- this.visibleNumberOfNumberBoxes$ =
838
- combineLatest([this.numberOfBoxes$, this.pageNumbers$, this.showArrows$])
839
- .pipe(takeUntil(this.destroyed$))
840
- .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
841
- if (numberOfBoxes <= 0) {
842
- return pageNumbers.length;
843
- }
844
- else if (!showArrows) {
845
- return Math.min(numberOfBoxes, pageNumbers.length);
846
- }
847
- else if (numberOfBoxes <= 2) {
848
- return Math.min(1, pageNumbers.length);
849
- }
850
- else {
851
- return Math.min(numberOfBoxes - 2, pageNumbers.length);
852
- }
853
- }));
854
- this.shownPageNumbers$ =
855
- combineLatest([this.pageNumbers$, this.selectedPageNumber$, this.visibleNumberOfNumberBoxes$])
856
- .pipe(takeUntil(this.destroyed$))
857
- .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
858
- let startIndex = 0;
859
- const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
860
- if (pageNumbers.indexOf(selectedPageNumber) < half) {
861
- startIndex = 0;
862
- }
863
- else if (pageNumbers.indexOf(selectedPageNumber) >= (pageNumbers.length - half)) {
864
- startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
865
- }
866
- else {
867
- startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
868
- }
869
- return [...Array(visibleNumberOfNumberBoxes).keys()]
870
- .map(p => p + startIndex)
871
- .map(p => ({
872
- page: pageNumbers[p],
873
- selected: pageNumbers[p] === selectedPageNumber
874
- }));
875
- }));
876
- this.isFirstPage$ =
877
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
878
- .pipe(takeUntil(this.destroyed$))
879
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
880
- return pageNumbers.indexOf(selectedPageNumber) === 0;
881
- }));
882
- this.isLastPage$ =
883
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
884
- .pipe(takeUntil(this.destroyed$))
885
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
886
- return pageNumbers.indexOf(selectedPageNumber) === (pageNumbers.length - 1);
1099
+ this.visibleNumberOfNumberBoxes$ = combineLatest([
1100
+ this.numberOfBoxes$,
1101
+ this.pageNumbers$,
1102
+ this.showArrows$,
1103
+ ])
1104
+ .pipe(takeUntil(this.destroyed$))
1105
+ .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
1106
+ if (numberOfBoxes <= 0) {
1107
+ return pageNumbers.length;
1108
+ }
1109
+ else if (!showArrows) {
1110
+ return Math.min(numberOfBoxes, pageNumbers.length);
1111
+ }
1112
+ else if (numberOfBoxes <= 2) {
1113
+ return Math.min(1, pageNumbers.length);
1114
+ }
1115
+ else {
1116
+ return Math.min(numberOfBoxes - 2, pageNumbers.length);
1117
+ }
1118
+ }));
1119
+ this.shownPageNumbers$ = combineLatest([
1120
+ this.pageNumbers$,
1121
+ this.selectedPageNumber$,
1122
+ this.visibleNumberOfNumberBoxes$,
1123
+ ])
1124
+ .pipe(takeUntil(this.destroyed$))
1125
+ .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
1126
+ let startIndex = 0;
1127
+ const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
1128
+ if (pageNumbers.indexOf(selectedPageNumber) < half) {
1129
+ startIndex = 0;
1130
+ }
1131
+ else if (pageNumbers.indexOf(selectedPageNumber) >=
1132
+ pageNumbers.length - half) {
1133
+ startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
1134
+ }
1135
+ else {
1136
+ startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
1137
+ }
1138
+ return [...Array(visibleNumberOfNumberBoxes).keys()]
1139
+ .map((p) => p + startIndex)
1140
+ .map((p) => ({
1141
+ page: pageNumbers[p],
1142
+ selected: pageNumbers[p] === selectedPageNumber,
887
1143
  }));
1144
+ }));
1145
+ this.isFirstPage$ = combineLatest([
1146
+ this.pageNumbers$,
1147
+ this.selectedPageNumber$,
1148
+ ])
1149
+ .pipe(takeUntil(this.destroyed$))
1150
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
1151
+ return pageNumbers.indexOf(selectedPageNumber) === 0;
1152
+ }));
1153
+ this.isLastPage$ = combineLatest([
1154
+ this.pageNumbers$,
1155
+ this.selectedPageNumber$,
1156
+ ])
1157
+ .pipe(takeUntil(this.destroyed$))
1158
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
1159
+ return (pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1);
1160
+ }));
888
1161
  this.selectedPageNumber$
889
1162
  .pipe(takeUntil(this.destroyed$))
890
1163
  .subscribe((selectedPageNumber) => {
891
1164
  this.selectedPageNumberChange.emit(selectedPageNumber);
892
1165
  });
893
1166
  }
894
- ngOnInit() {
895
- }
896
- ngOnDestroy() {
897
- this.destroyed$.next(true);
898
- }
899
- onSelectPage(event, page) {
900
- this.selectedPageNumber$.next(page);
901
- return false;
902
- }
903
- onPrevious() {
904
- this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
905
- return false;
906
- }
907
- onNext() {
908
- this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
909
- return false;
910
- }
911
1167
  set selectedPageNumber(value) {
912
1168
  this._selectedPageNumber = value;
913
1169
  this.selectedPageNumber$.next(value);
@@ -915,6 +1171,8 @@ class BsPaginationComponent {
915
1171
  get selectedPageNumber() {
916
1172
  return this._selectedPageNumber;
917
1173
  }
1174
+ //#endregion
1175
+ //#region NumberOfBoxes
918
1176
  set numberOfBoxes(value) {
919
1177
  this._numberOfBoxes = value;
920
1178
  this.numberOfBoxes$.next(value);
@@ -922,6 +1180,8 @@ class BsPaginationComponent {
922
1180
  get numberOfBoxes() {
923
1181
  return this._numberOfBoxes;
924
1182
  }
1183
+ //#endregion
1184
+ //#region PageNumbers
925
1185
  set pageNumbers(value) {
926
1186
  this._pageNumbers = value;
927
1187
  this.pageNumbers$.next(value);
@@ -929,6 +1189,8 @@ class BsPaginationComponent {
929
1189
  get pageNumbers() {
930
1190
  return this._pageNumbers;
931
1191
  }
1192
+ //#endregion
1193
+ //#region ShowArrows
932
1194
  set showArrows(value) {
933
1195
  this._showArrows = value;
934
1196
  this.showArrows$.next(value);
@@ -936,6 +1198,22 @@ class BsPaginationComponent {
936
1198
  get showArrows() {
937
1199
  return this._showArrows;
938
1200
  }
1201
+ //#endregion
1202
+ ngOnDestroy() {
1203
+ this.destroyed$.next(true);
1204
+ }
1205
+ onSelectPage(event, page) {
1206
+ this.selectedPageNumber$.next(page);
1207
+ return false;
1208
+ }
1209
+ onPrevious() {
1210
+ this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
1211
+ return false;
1212
+ }
1213
+ onNext() {
1214
+ this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
1215
+ return false;
1216
+ }
939
1217
  }
940
1218
  BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
941
1219
  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 } });
@@ -957,7 +1235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
957
1235
  class BsDatatableComponent {
958
1236
  constructor() {
959
1237
  this.columns = [];
960
- this.onReloadData = new EventEmitter();
1238
+ this.reloadData = new EventEmitter();
961
1239
  this.settings = new DatatableSettings();
962
1240
  this.settings.sortProperty = '';
963
1241
  this.settings.sortDirection = 'ascending';
@@ -976,17 +1254,15 @@ class BsDatatableComponent {
976
1254
  else {
977
1255
  this.settings.sortDirection = 'descending';
978
1256
  }
979
- this.onReloadData.emit();
1257
+ this.reloadData.emit();
980
1258
  }
981
1259
  }
982
- ngOnInit() {
983
- }
984
1260
  }
985
1261
  BsDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
986
- 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"] }] });
1262
+ 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"] }] });
987
1263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, decorators: [{
988
1264
  type: Component,
989
- 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"] }]
1265
+ 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"] }]
990
1266
  }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
991
1267
  type: ContentChildren,
992
1268
  args: [BsDatatableColumnDirective]
@@ -994,7 +1270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
994
1270
  type: Input
995
1271
  }], data: [{
996
1272
  type: Input
997
- }], onReloadData: [{
1273
+ }], reloadData: [{
998
1274
  type: Output
999
1275
  }] } });
1000
1276
 
@@ -1005,11 +1281,11 @@ class BsRowTemplateDirective {
1005
1281
  }
1006
1282
  }
1007
1283
  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 });
1008
- BsRowTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsRowTemplateDirective, selector: "[rowTemplate]", ngImport: i0 });
1284
+ BsRowTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsRowTemplateDirective, selector: "[bsRowTemplate]", ngImport: i0 });
1009
1285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRowTemplateDirective, decorators: [{
1010
1286
  type: Directive,
1011
1287
  args: [{
1012
- selector: '[rowTemplate]'
1288
+ selector: '[bsRowTemplate]'
1013
1289
  }]
1014
1290
  }], ctorParameters: function () { return [{ type: BsDatatableComponent }, { type: i0.TemplateRef }]; } });
1015
1291
 
@@ -1069,7 +1345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1069
1345
  }] });
1070
1346
 
1071
1347
  class BsDropdownMenuDirective extends ClickOutsideDirective {
1072
- constructor(dropdown, document, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1348
+ constructor(dropdown, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1073
1349
  super(elementRef, zone, platformId);
1074
1350
  this.dropdown = dropdown;
1075
1351
  this.viewContainerRef = viewContainerRef;
@@ -1079,7 +1355,6 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1079
1355
  this.destroyed$ = new Subject();
1080
1356
  this.overlayRef = null;
1081
1357
  this.templatePortal = null;
1082
- this.document = document;
1083
1358
  this.dropdown.isOpen$
1084
1359
  .pipe(takeUntil(this.destroyed$))
1085
1360
  .subscribe((isOpen) => {
@@ -1092,7 +1367,9 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1092
1367
  positionStrategy: this.overlay.position()
1093
1368
  .flexibleConnectedTo(!this.dropdown.toggle ? dropdown.elementRef : this.dropdown.toggle.toggleButton)
1094
1369
  .withPositions([
1370
+ // element: BottomLeft - dropdown: TopLeft
1095
1371
  { originX: "start", originY: "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
1372
+ // element: TopLeft - dropdown: BottomLeft
1096
1373
  { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
1097
1374
  ]),
1098
1375
  });
@@ -1113,6 +1390,7 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1113
1390
  }
1114
1391
  });
1115
1392
  }
1393
+ get show() { return this.dropdown.isOpen; }
1116
1394
  clickedOutside(ev) {
1117
1395
  var _a;
1118
1396
  if (!this.wait) {
@@ -1126,28 +1404,25 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1126
1404
  }
1127
1405
  }
1128
1406
  }
1129
- BsDropdownMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: forwardRef(() => BsDropdownDirective) }, { token: DOCUMENT }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
1130
- BsDropdownMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]", host: { listeners: { "clickOutside": "clickedOutside($event)" }, properties: { "class.show": "dropdown.isOpen" } }, usesInheritance: true, ngImport: i0 });
1407
+ 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 });
1408
+ 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 });
1131
1409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1132
1410
  type: Directive,
1133
1411
  args: [{
1134
- selector: '[bsDropdownMenu]',
1135
- host: {
1136
- '[class.show]': 'dropdown.isOpen',
1137
- },
1412
+ selector: '[bsDropdownMenu]'
1138
1413
  }]
1139
1414
  }], ctorParameters: function () {
1140
1415
  return [{ type: BsDropdownDirective, decorators: [{
1141
1416
  type: Inject,
1142
1417
  args: [forwardRef(() => BsDropdownDirective)]
1143
- }] }, { type: undefined, decorators: [{
1144
- type: Inject,
1145
- args: [DOCUMENT]
1146
- }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{
1418
+ }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
1147
1419
  type: Inject,
1148
1420
  args: [PLATFORM_ID]
1149
1421
  }] }];
1150
- }, propDecorators: { clickedOutside: [{
1422
+ }, propDecorators: { show: [{
1423
+ type: HostBinding,
1424
+ args: ['class.show']
1425
+ }], clickedOutside: [{
1151
1426
  type: HostListener,
1152
1427
  args: ['clickOutside', ['$event']]
1153
1428
  }] } });
@@ -1195,9 +1470,13 @@ class BsDropdownDirective {
1195
1470
  this.isOpenChange.emit(value);
1196
1471
  }
1197
1472
  }
1473
+ //#endregion
1474
+ onBlur() {
1475
+ this.isOpen = false;
1476
+ }
1198
1477
  }
1199
1478
  BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1200
- BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", sameWidth: "sameWidth", closeOnClickOutside: "closeOnClickOutside", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1479
+ 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 });
1201
1480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, decorators: [{
1202
1481
  type: Directive,
1203
1482
  args: [{
@@ -1219,83 +1498,506 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1219
1498
  type: Output
1220
1499
  }], isOpen: [{
1221
1500
  type: Input
1501
+ }], onBlur: [{
1502
+ type: HostListener,
1503
+ args: ['window:blur']
1222
1504
  }] } });
1223
1505
 
1224
1506
  class BsDatepickerComponent {
1225
1507
  constructor() {
1226
- this.selectedDate = new Date();
1227
- this.currentMonth = new Date();
1508
+ //#region SelectedDate
1509
+ this._selectedDate = new Date();
1510
+ this.selectedDateChange = new EventEmitter();
1511
+ //#endregion
1512
+ //#region CurrentMonth
1513
+ this._currentMonth = new Date();
1514
+ this.currentMonthChange = new EventEmitter();
1228
1515
  }
1229
- ngOnInit() {
1516
+ get selectedDate() {
1517
+ return this._selectedDate;
1518
+ }
1519
+ set selectedDate(value) {
1520
+ this._selectedDate = value;
1521
+ this.selectedDateChange.emit(value);
1522
+ }
1523
+ get currentMonth() {
1524
+ return this._currentMonth;
1525
+ }
1526
+ set currentMonth(value) {
1527
+ this._currentMonth = value;
1528
+ this.currentMonthChange.emit(value);
1230
1529
  }
1231
1530
  }
1232
1531
  BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1233
- BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatepickerComponent, selector: "bs-datepicker", ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""], components: [{ type: BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i1.DatePipe } });
1532
+ 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 } });
1234
1533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1235
1534
  type: Component,
1236
1535
  args: [{ selector: 'bs-datepicker', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""] }]
1237
- }], ctorParameters: function () { return []; } });
1536
+ }], propDecorators: { selectedDateChange: [{
1537
+ type: Output
1538
+ }], selectedDate: [{
1539
+ type: Input
1540
+ }], currentMonthChange: [{
1541
+ type: Output
1542
+ }], currentMonth: [{
1543
+ type: Input
1544
+ }] } });
1545
+
1546
+ class BsDropdownModule {
1547
+ }
1548
+ BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1549
+ BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1550
+ BsDropdownToggleDirective,
1551
+ BsDropdownMenuDirective], imports: [CommonModule,
1552
+ OverlayModule,
1553
+ ClickOutsideModule], exports: [BsDropdownDirective,
1554
+ BsDropdownToggleDirective,
1555
+ BsDropdownMenuDirective] });
1556
+ BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1557
+ CommonModule,
1558
+ OverlayModule,
1559
+ ClickOutsideModule
1560
+ ]] });
1561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
1562
+ type: NgModule,
1563
+ args: [{
1564
+ declarations: [
1565
+ BsDropdownDirective,
1566
+ BsDropdownToggleDirective,
1567
+ BsDropdownMenuDirective
1568
+ ],
1569
+ imports: [
1570
+ CommonModule,
1571
+ OverlayModule,
1572
+ ClickOutsideModule
1573
+ ],
1574
+ exports: [
1575
+ BsDropdownDirective,
1576
+ BsDropdownToggleDirective,
1577
+ BsDropdownMenuDirective
1578
+ ]
1579
+ }]
1580
+ }] });
1581
+
1582
+ class BsDatepickerModule {
1583
+ }
1584
+ BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1585
+ BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1586
+ BsCalendarModule,
1587
+ BsDropdownModule], exports: [BsDatepickerComponent] });
1588
+ BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1589
+ CommonModule,
1590
+ BsCalendarModule,
1591
+ BsDropdownModule
1592
+ ]] });
1593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
1594
+ type: NgModule,
1595
+ args: [{
1596
+ declarations: [
1597
+ BsDatepickerComponent
1598
+ ],
1599
+ imports: [
1600
+ CommonModule,
1601
+ BsCalendarModule,
1602
+ BsDropdownModule
1603
+ ],
1604
+ exports: [
1605
+ BsDatepickerComponent
1606
+ ]
1607
+ }]
1608
+ }] });
1609
+
1610
+ class BsProgressComponent {
1611
+ constructor() {
1612
+ this.progressClass = true;
1613
+ this.height = null;
1614
+ this.isIndeterminate = false;
1615
+ }
1616
+ }
1617
+ BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1618
+ 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"] }] });
1619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
1620
+ type: Component,
1621
+ 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"] }]
1622
+ }], propDecorators: { progressClass: [{
1623
+ type: HostBinding,
1624
+ args: ['class.progress']
1625
+ }], height: [{
1626
+ type: Input
1627
+ }, {
1628
+ type: HostBinding,
1629
+ args: ['style.height.px']
1630
+ }], isIndeterminate: [{
1631
+ type: Input
1632
+ }] } });
1633
+
1634
+ class BsProgressBarComponent {
1635
+ constructor() {
1636
+ this.destroyed$ = new Subject();
1637
+ this.minimum$ = new BehaviorSubject(0);
1638
+ this.maximum$ = new BehaviorSubject(100);
1639
+ this.value$ = new BehaviorSubject(50);
1640
+ this.color$ = new BehaviorSubject(Color.primary);
1641
+ this.striped = false;
1642
+ this.animated = false;
1643
+ this.progressBar = true;
1644
+ this.colorClass = 'bg-primary';
1645
+ this.widthStyle = '0';
1646
+ this.role = 'progressbar';
1647
+ this.valueNow = 50;
1648
+ this.valueMin = 0;
1649
+ this.valueMax = 100;
1650
+ this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
1651
+ .pipe(map(([minimum, maximum, value]) => {
1652
+ return (value - minimum) / (maximum - minimum) * 100;
1653
+ }));
1654
+ this.width$ = this.percentage$
1655
+ .pipe(map((width) => {
1656
+ return String(width) + '%';
1657
+ }));
1658
+ this.colorClass$ = this.color$
1659
+ .pipe(map((color) => {
1660
+ const name = Color[color];
1661
+ return `bg-${name}`;
1662
+ }));
1663
+ this.colorClass$
1664
+ .pipe(takeUntil(this.destroyed$))
1665
+ .subscribe((color) => {
1666
+ this.colorClass = color;
1667
+ });
1668
+ this.width$
1669
+ .pipe(takeUntil(this.destroyed$))
1670
+ .subscribe((width) => {
1671
+ this.widthStyle = width;
1672
+ });
1673
+ this.value$
1674
+ .pipe(takeUntil(this.destroyed$))
1675
+ .subscribe((value) => {
1676
+ this.valueNow = value;
1677
+ });
1678
+ this.minimum$
1679
+ .pipe(takeUntil(this.destroyed$))
1680
+ .subscribe((value) => {
1681
+ this.valueMin = value;
1682
+ });
1683
+ this.maximum$
1684
+ .pipe(takeUntil(this.destroyed$))
1685
+ .subscribe((value) => {
1686
+ this.valueMax = value;
1687
+ });
1688
+ }
1689
+ set minimum(value) {
1690
+ this.minimum$.next(value);
1691
+ }
1692
+ set maximum(value) {
1693
+ this.maximum$.next(value);
1694
+ }
1695
+ set value(value) {
1696
+ this.value$.next(value);
1697
+ }
1698
+ set color(value) {
1699
+ this.color$.next(value);
1700
+ }
1701
+ ngOnDestroy() {
1702
+ this.destroyed$.next(true);
1703
+ }
1704
+ }
1705
+ BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1706
+ 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: [""] });
1707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
1708
+ type: Component,
1709
+ args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
1710
+ }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
1711
+ type: Input
1712
+ }], maximum: [{
1713
+ type: Input
1714
+ }], value: [{
1715
+ type: Input
1716
+ }], color: [{
1717
+ type: Input
1718
+ }], striped: [{
1719
+ type: Input
1720
+ }, {
1721
+ type: HostBinding,
1722
+ args: ['class.progress-bar-striped']
1723
+ }], animated: [{
1724
+ type: Input
1725
+ }, {
1726
+ type: HostBinding,
1727
+ args: ['class.progress-bar-animated']
1728
+ }], progressBar: [{
1729
+ type: HostBinding,
1730
+ args: ['class.progress-bar']
1731
+ }], colorClass: [{
1732
+ type: HostBinding,
1733
+ args: ['class']
1734
+ }], widthStyle: [{
1735
+ type: HostBinding,
1736
+ args: ['style.width']
1737
+ }], role: [{
1738
+ type: HostBinding,
1739
+ args: ['attr.role']
1740
+ }], valueNow: [{
1741
+ type: HostBinding,
1742
+ args: ['attr.aria-valuenow']
1743
+ }], valueMin: [{
1744
+ type: HostBinding,
1745
+ args: ['attr.aria-valuemin']
1746
+ }], valueMax: [{
1747
+ type: HostBinding,
1748
+ args: ['attr.aria-valuemax']
1749
+ }] } });
1750
+
1751
+ class BsForDirective {
1752
+ constructor() {
1753
+ this.defaultCursor = true;
1754
+ }
1755
+ onMouseClick() {
1756
+ if (!('tagName' in this.bsFor)) {
1757
+ this.bsFor.focus();
1758
+ }
1759
+ else if (this.bsFor.tagName.toLowerCase() !== 'input') {
1760
+ this.bsFor.focus();
1761
+ }
1762
+ else if (this.bsFor.type.toLowerCase() === 'file') {
1763
+ this.bsFor.click();
1764
+ }
1765
+ else {
1766
+ this.bsFor.focus();
1767
+ }
1768
+ }
1769
+ }
1770
+ BsForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1771
+ 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 });
1772
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForDirective, decorators: [{
1773
+ type: Directive,
1774
+ args: [{
1775
+ selector: '[bsFor]'
1776
+ }]
1777
+ }], propDecorators: { defaultCursor: [{
1778
+ type: HostBinding,
1779
+ args: ['class.cursor-default']
1780
+ }], bsFor: [{
1781
+ type: Input
1782
+ }], onMouseClick: [{
1783
+ type: HostListener,
1784
+ args: ['click']
1785
+ }] } });
1786
+
1787
+ class BsFormatBytesPipe {
1788
+ transform(value, decimals = 2) {
1789
+ if (value === 0) {
1790
+ return "0 Bytes";
1791
+ }
1792
+ const k = 1024;
1793
+ const dm = decimals <= 0 ? 0 : decimals;
1794
+ const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
1795
+ const i = Math.floor(Math.log(value) / Math.log(k));
1796
+ return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
1797
+ }
1798
+ }
1799
+ BsFormatBytesPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1800
+ BsFormatBytesPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesPipe, name: "bsFormatBytes" });
1801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesPipe, decorators: [{
1802
+ type: Pipe,
1803
+ args: [{
1804
+ name: 'bsFormatBytes'
1805
+ }]
1806
+ }] });
1807
+
1808
+ class BsFileUploadComponent {
1809
+ constructor() {
1810
+ this.dropFilesCaption = 'Drop your files here';
1811
+ this.browseFilesCaption = 'Browse for files';
1812
+ this.placeholder = 'Drop files to upload';
1813
+ this.isDraggingFile = false;
1814
+ this.files = [];
1815
+ this.filesDropped = new EventEmitter();
1816
+ }
1817
+ onChange(event) {
1818
+ console.log('event', event);
1819
+ if (!event.target)
1820
+ return;
1821
+ if (!('files' in event.target))
1822
+ return;
1823
+ if (!event.target['files'])
1824
+ return;
1825
+ const files = event.target.files;
1826
+ if (!files)
1827
+ return;
1828
+ this.processDroppedFiles(files);
1829
+ }
1830
+ onDragOver(event) {
1831
+ event.preventDefault();
1832
+ event.stopPropagation();
1833
+ if (event.dataTransfer) {
1834
+ this.isDraggingFile = true;
1835
+ event.dataTransfer.effectAllowed = "copy";
1836
+ }
1837
+ }
1838
+ onDragLeave(event) {
1839
+ event.preventDefault();
1840
+ event.stopPropagation();
1841
+ this.isDraggingFile = false;
1842
+ }
1843
+ onDrop(event) {
1844
+ event.preventDefault();
1845
+ event.stopPropagation();
1846
+ this.isDraggingFile = false;
1847
+ if (event.dataTransfer && event.dataTransfer.files) {
1848
+ this.processDroppedFiles(event.dataTransfer.files);
1849
+ }
1850
+ }
1851
+ processDroppedFiles(fileList) {
1852
+ const newFiles = [...Array(fileList.length).keys()]
1853
+ .map(i => fileList.item(i))
1854
+ .filter(f => !!f)
1855
+ .map(f => ({ file: f, progress: 0 }));
1856
+ this.files.push(...newFiles);
1857
+ this.filesDropped.emit(newFiles);
1858
+ }
1859
+ }
1860
+ BsFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1861
+ 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 } });
1862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadComponent, decorators: [{
1863
+ type: Component,
1864
+ 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"] }]
1865
+ }], propDecorators: { dropFilesCaption: [{
1866
+ type: Input
1867
+ }], browseFilesCaption: [{
1868
+ type: Input
1869
+ }], placeholder: [{
1870
+ type: Input
1871
+ }], files: [{
1872
+ type: Input
1873
+ }], filesDropped: [{
1874
+ type: Output
1875
+ }], onDragOver: [{
1876
+ type: HostListener,
1877
+ args: ['dragover', ['$event']]
1878
+ }], onDragLeave: [{
1879
+ type: HostListener,
1880
+ args: ['dragleave', ['$event']]
1881
+ }], onDrop: [{
1882
+ type: HostListener,
1883
+ args: ['drop', ['$event']]
1884
+ }] } });
1885
+
1886
+ class BsFileUploadTemplateDirective {
1887
+ constructor(fileUploadComponent, templateRef) {
1888
+ fileUploadComponent.fileTemplate = templateRef;
1889
+ }
1890
+ }
1891
+ 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 });
1892
+ BsFileUploadTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsFileUploadTemplateDirective, selector: "[bsFileUploadTemplate]", ngImport: i0 });
1893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadTemplateDirective, decorators: [{
1894
+ type: Directive,
1895
+ args: [{
1896
+ selector: '[bsFileUploadTemplate]'
1897
+ }]
1898
+ }], ctorParameters: function () { return [{ type: BsFileUploadComponent }, { type: i0.TemplateRef }]; } });
1899
+
1900
+ class BsForModule {
1901
+ }
1902
+ BsForModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1903
+ BsForModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, declarations: [BsForDirective], imports: [CommonModule], exports: [BsForDirective] });
1904
+ BsForModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, imports: [[
1905
+ CommonModule
1906
+ ]] });
1907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsForModule, decorators: [{
1908
+ type: NgModule,
1909
+ args: [{
1910
+ declarations: [
1911
+ BsForDirective
1912
+ ],
1913
+ imports: [
1914
+ CommonModule
1915
+ ],
1916
+ exports: [
1917
+ BsForDirective
1918
+ ]
1919
+ }]
1920
+ }] });
1921
+
1922
+ class BsProgressBarModule {
1923
+ }
1924
+ BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1925
+ BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
1926
+ BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
1927
+ BsProgressComponent] });
1928
+ BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
1929
+ CommonModule
1930
+ ]] });
1931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
1932
+ type: NgModule,
1933
+ args: [{
1934
+ declarations: [
1935
+ BsProgressBarComponent,
1936
+ BsProgressComponent
1937
+ ],
1938
+ imports: [
1939
+ CommonModule
1940
+ ],
1941
+ exports: [
1942
+ BsProgressBarComponent,
1943
+ BsProgressComponent
1944
+ ]
1945
+ }]
1946
+ }] });
1238
1947
 
1239
- class BsDropdownModule {
1948
+ class BsFormatBytesModule {
1240
1949
  }
1241
- BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1242
- BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1243
- BsDropdownToggleDirective,
1244
- BsDropdownMenuDirective], imports: [CommonModule,
1245
- OverlayModule,
1246
- ClickOutsideModule], exports: [BsDropdownDirective,
1247
- BsDropdownToggleDirective,
1248
- BsDropdownMenuDirective] });
1249
- BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1250
- CommonModule,
1251
- OverlayModule,
1252
- ClickOutsideModule
1950
+ BsFormatBytesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1951
+ BsFormatBytesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, declarations: [BsFormatBytesPipe], imports: [CommonModule], exports: [BsFormatBytesPipe] });
1952
+ BsFormatBytesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, imports: [[
1953
+ CommonModule
1253
1954
  ]] });
1254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
1955
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFormatBytesModule, decorators: [{
1255
1956
  type: NgModule,
1256
1957
  args: [{
1257
1958
  declarations: [
1258
- BsDropdownDirective,
1259
- BsDropdownToggleDirective,
1260
- BsDropdownMenuDirective
1959
+ BsFormatBytesPipe
1261
1960
  ],
1262
1961
  imports: [
1263
- CommonModule,
1264
- OverlayModule,
1265
- ClickOutsideModule
1962
+ CommonModule
1266
1963
  ],
1267
1964
  exports: [
1268
- BsDropdownDirective,
1269
- BsDropdownToggleDirective,
1270
- BsDropdownMenuDirective
1965
+ BsFormatBytesPipe
1271
1966
  ]
1272
1967
  }]
1273
1968
  }] });
1274
1969
 
1275
- class BsDatepickerModule {
1970
+ class BsFileUploadModule {
1276
1971
  }
1277
- BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1278
- BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1279
- BsCalendarModule,
1280
- BsDropdownModule], exports: [BsDatepickerComponent] });
1281
- BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1972
+ BsFileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1973
+ BsFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, declarations: [BsFileUploadComponent,
1974
+ BsFileUploadTemplateDirective], imports: [CommonModule,
1975
+ BsForModule,
1976
+ BsFormatBytesModule,
1977
+ BsProgressBarModule], exports: [BsFileUploadComponent,
1978
+ BsFileUploadTemplateDirective] });
1979
+ BsFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, imports: [[
1282
1980
  CommonModule,
1283
- BsCalendarModule,
1284
- BsDropdownModule
1981
+ BsForModule,
1982
+ BsFormatBytesModule,
1983
+ BsProgressBarModule
1285
1984
  ]] });
1286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
1985
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFileUploadModule, decorators: [{
1287
1986
  type: NgModule,
1288
1987
  args: [{
1289
1988
  declarations: [
1290
- BsDatepickerComponent
1989
+ BsFileUploadComponent,
1990
+ BsFileUploadTemplateDirective
1291
1991
  ],
1292
1992
  imports: [
1293
1993
  CommonModule,
1294
- BsCalendarModule,
1295
- BsDropdownModule
1994
+ BsForModule,
1995
+ BsFormatBytesModule,
1996
+ BsProgressBarModule
1296
1997
  ],
1297
1998
  exports: [
1298
- BsDatepickerComponent
1999
+ BsFileUploadComponent,
2000
+ BsFileUploadTemplateDirective
1299
2001
  ]
1300
2002
  }]
1301
2003
  }] });
@@ -1351,42 +2053,249 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1351
2053
  }]
1352
2054
  }] });
1353
2055
 
2056
+ class BsModalComponent {
2057
+ constructor() { }
2058
+ }
2059
+ BsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2060
+ 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"] }] });
2061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalComponent, decorators: [{
2062
+ type: Component,
2063
+ 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: [""] }]
2064
+ }], ctorParameters: function () { return []; } });
2065
+
2066
+ const MODAL_CONTENT = new InjectionToken('ModalContent');
2067
+
2068
+ class BsModalContentComponent {
2069
+ constructor(content) {
2070
+ this.instance = null;
2071
+ //#region Monitor @slideUpDown hooks
2072
+ this.animationState = '';
2073
+ this.animationStateChanged = new EventEmitter();
2074
+ this.content = content;
2075
+ }
2076
+ onAnimationChanged(event) {
2077
+ this.animationStateChanged.emit(event);
2078
+ }
2079
+ }
2080
+ BsModalContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalContentComponent, deps: [{ token: MODAL_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2081
+ 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] });
2082
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalContentComponent, decorators: [{
2083
+ type: Component,
2084
+ 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: [""] }]
2085
+ }], ctorParameters: function () {
2086
+ return [{ type: i0.TemplateRef, decorators: [{
2087
+ type: Inject,
2088
+ args: [MODAL_CONTENT]
2089
+ }] }];
2090
+ } });
2091
+
2092
+ class BsModalHeaderDirective {
2093
+ constructor(modal, template) {
2094
+ modal.header = template;
2095
+ }
2096
+ }
2097
+ 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 });
2098
+ BsModalHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsModalHeaderDirective, selector: "[bsModalHeader]", ngImport: i0 });
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalHeaderDirective, decorators: [{
2100
+ type: Directive,
2101
+ args: [{
2102
+ selector: '[bsModalHeader]'
2103
+ }]
2104
+ }], ctorParameters: function () { return [{ type: BsModalComponent }, { type: i0.TemplateRef }]; } });
2105
+
2106
+ class BsModalBodyDirective {
2107
+ constructor(modal, template) {
2108
+ modal.body = template;
2109
+ }
2110
+ }
2111
+ 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 });
2112
+ BsModalBodyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsModalBodyDirective, selector: "[bsModalBody]", ngImport: i0 });
2113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalBodyDirective, decorators: [{
2114
+ type: Directive,
2115
+ args: [{
2116
+ selector: '[bsModalBody]'
2117
+ }]
2118
+ }], ctorParameters: function () { return [{ type: BsModalComponent }, { type: i0.TemplateRef }]; } });
2119
+
2120
+ class BsModalFooterDirective {
2121
+ constructor(modal, template) {
2122
+ modal.footer = template;
2123
+ }
2124
+ }
2125
+ 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 });
2126
+ BsModalFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsModalFooterDirective, selector: "[bsModalFooter]", ngImport: i0 });
2127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalFooterDirective, decorators: [{
2128
+ type: Directive,
2129
+ args: [{
2130
+ selector: '[bsModalFooter]'
2131
+ }]
2132
+ }], ctorParameters: function () { return [{ type: BsModalComponent }, { type: i0.TemplateRef }]; } });
2133
+
2134
+ class BsModalModule {
2135
+ }
2136
+ BsModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2137
+ BsModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, declarations: [BsModalHeaderDirective,
2138
+ BsModalBodyDirective,
2139
+ BsModalFooterDirective,
2140
+ BsModalComponent,
2141
+ BsModalContentComponent], imports: [CommonModule,
2142
+ OverlayModule], exports: [BsModalHeaderDirective,
2143
+ BsModalBodyDirective,
2144
+ BsModalFooterDirective,
2145
+ BsModalComponent] });
2146
+ BsModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, imports: [[
2147
+ CommonModule,
2148
+ OverlayModule
2149
+ ]] });
2150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalModule, decorators: [{
2151
+ type: NgModule,
2152
+ args: [{
2153
+ declarations: [
2154
+ BsModalHeaderDirective,
2155
+ BsModalBodyDirective,
2156
+ BsModalFooterDirective,
2157
+ BsModalComponent,
2158
+ BsModalContentComponent
2159
+ ],
2160
+ imports: [
2161
+ CommonModule,
2162
+ OverlayModule
2163
+ ],
2164
+ exports: [
2165
+ BsModalHeaderDirective,
2166
+ BsModalBodyDirective,
2167
+ BsModalFooterDirective,
2168
+ BsModalComponent
2169
+ ]
2170
+ }]
2171
+ }] });
2172
+
2173
+ class BsModalService {
2174
+ constructor(overlay, parentInjector, componentFactoryResolver) {
2175
+ this.overlay = overlay;
2176
+ this.parentInjector = parentInjector;
2177
+ this.componentFactoryResolver = componentFactoryResolver;
2178
+ }
2179
+ show(template) {
2180
+ const injector = Injector.create({
2181
+ providers: [{ provide: MODAL_CONTENT, useValue: template }],
2182
+ parent: this.parentInjector
2183
+ });
2184
+ const portal = new ComponentPortal(BsModalContentComponent, null, injector, this.componentFactoryResolver);
2185
+ const overlayRef = this.overlay.create({
2186
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
2187
+ positionStrategy: this.overlay.position()
2188
+ .global().centerHorizontally().bottom('0').top('0').left('0').right('0'),
2189
+ width: '100%',
2190
+ hasBackdrop: true
2191
+ });
2192
+ const componentInstance = overlayRef.attach(portal);
2193
+ console.log('instance', componentInstance);
2194
+ componentInstance.instance['instance'] = {
2195
+ component: componentInstance,
2196
+ overlay: overlayRef
2197
+ };
2198
+ return componentInstance.instance;
2199
+ }
2200
+ hide(modal) {
2201
+ modal.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2202
+ var _a;
2203
+ (_a = modal['instance']) === null || _a === void 0 ? void 0 : _a.overlay.dispose();
2204
+ });
2205
+ modal.animationState = 'void';
2206
+ }
2207
+ }
2208
+ 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 });
2209
+ BsModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalService, providedIn: BsModalModule });
2210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsModalService, decorators: [{
2211
+ type: Injectable,
2212
+ args: [{
2213
+ providedIn: BsModalModule
2214
+ }]
2215
+ }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
2216
+
1354
2217
  class BsMultiselectComponent {
1355
2218
  constructor() {
1356
2219
  this.items = [];
1357
2220
  this.selectedItems = [];
1358
2221
  }
1359
2222
  itemChange(item, event) {
1360
- if (!!event.target.checked) {
2223
+ if (event.target.checked) {
1361
2224
  this.selectedItems.push(item);
1362
2225
  }
1363
2226
  else {
1364
2227
  this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
1365
2228
  }
1366
2229
  }
1367
- ngOnInit() {
1368
- }
1369
2230
  }
1370
2231
  BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1371
- BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <hr class=\"my-2\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [".mw-250px{min-width:250px}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2232
+ 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"] }] });
1372
2233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
1373
2234
  type: Component,
1374
- args: [{ selector: 'bs-multiselect', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <hr class=\"my-2\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [".mw-250px{min-width:250px}\n"] }]
1375
- }], ctorParameters: function () { return []; }, propDecorators: { template: [{
1376
- type: ContentChild,
1377
- args: [TemplateRef]
1378
- }], items: [{
2235
+ 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"] }]
2236
+ }], propDecorators: { items: [{
1379
2237
  type: Input
1380
2238
  }], selectedItems: [{
1381
2239
  type: Input
2240
+ }], defaultButtonTemplate: [{
2241
+ type: ViewChild,
2242
+ args: ['defaultButtonTemplate']
1382
2243
  }] } });
1383
2244
 
2245
+ class BsHeaderTemplateDirective {
2246
+ constructor(template, multiselect) {
2247
+ multiselect.headerTemplate = template;
2248
+ }
2249
+ }
2250
+ 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 });
2251
+ BsHeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsHeaderTemplateDirective, selector: "[bsHeaderTemplate]", ngImport: i0 });
2252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsHeaderTemplateDirective, decorators: [{
2253
+ type: Directive,
2254
+ args: [{
2255
+ selector: '[bsHeaderTemplate]'
2256
+ }]
2257
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsMultiselectComponent }]; } });
2258
+
2259
+ class BsFooterTemplateDirective {
2260
+ constructor(template, multiselect) {
2261
+ multiselect.footerTemplate = template;
2262
+ }
2263
+ }
2264
+ 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 });
2265
+ BsFooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsFooterTemplateDirective, selector: "[bsFooterTemplate]", ngImport: i0 });
2266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsFooterTemplateDirective, decorators: [{
2267
+ type: Directive,
2268
+ args: [{
2269
+ selector: '[bsFooterTemplate]'
2270
+ }]
2271
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsMultiselectComponent }]; } });
2272
+
2273
+ class BsButtonTemplateDirective {
2274
+ constructor(template, multiselect) {
2275
+ multiselect.buttonTemplate = template;
2276
+ }
2277
+ }
2278
+ 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 });
2279
+ BsButtonTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsButtonTemplateDirective, selector: "[bsButtonTemplate]", ngImport: i0 });
2280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsButtonTemplateDirective, decorators: [{
2281
+ type: Directive,
2282
+ args: [{
2283
+ selector: '[bsButtonTemplate]'
2284
+ }]
2285
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsMultiselectComponent }]; } });
2286
+
1384
2287
  class BsMultiselectModule {
1385
2288
  }
1386
2289
  BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1387
- BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent], imports: [CommonModule,
2290
+ BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent,
2291
+ BsHeaderTemplateDirective,
2292
+ BsFooterTemplateDirective,
2293
+ BsButtonTemplateDirective], imports: [CommonModule,
1388
2294
  BsDropdownModule,
1389
- FocusOnLoadModule], exports: [BsMultiselectComponent] });
2295
+ FocusOnLoadModule], exports: [BsMultiselectComponent,
2296
+ BsHeaderTemplateDirective,
2297
+ BsFooterTemplateDirective,
2298
+ BsButtonTemplateDirective] });
1390
2299
  BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
1391
2300
  CommonModule,
1392
2301
  BsDropdownModule,
@@ -1396,7 +2305,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1396
2305
  type: NgModule,
1397
2306
  args: [{
1398
2307
  declarations: [
1399
- BsMultiselectComponent
2308
+ BsMultiselectComponent,
2309
+ BsHeaderTemplateDirective,
2310
+ BsFooterTemplateDirective,
2311
+ BsButtonTemplateDirective
1400
2312
  ],
1401
2313
  imports: [
1402
2314
  CommonModule,
@@ -1404,7 +2316,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1404
2316
  FocusOnLoadModule,
1405
2317
  ],
1406
2318
  exports: [
1407
- BsMultiselectComponent
2319
+ BsMultiselectComponent,
2320
+ BsHeaderTemplateDirective,
2321
+ BsFooterTemplateDirective,
2322
+ BsButtonTemplateDirective
1408
2323
  ]
1409
2324
  }]
1410
2325
  }] });
@@ -1420,10 +2335,10 @@ class BsNavbarComponent {
1420
2335
  }
1421
2336
  }
1422
2337
  BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1423
- 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"] });
2338
+ 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"] });
1424
2339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
1425
2340
  type: Component,
1426
- 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"] }]
2341
+ 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"] }]
1427
2342
  }], propDecorators: { nav: [{
1428
2343
  type: ViewChild,
1429
2344
  args: ['nav']
@@ -1496,12 +2411,9 @@ class BsNavbarItemComponent {
1496
2411
  this.anchorTag = null;
1497
2412
  this.parentDropdown = parentDropdown;
1498
2413
  }
1499
- ngOnInit() {
1500
- }
1501
2414
  ngAfterContentChecked() {
2415
+ this.anchorTag = this.element.nativeElement.querySelector('li a');
1502
2416
  if (this.hasDropdown) {
1503
- window.element = this.element.nativeElement;
1504
- this.anchorTag = this.element.nativeElement.querySelector('li a');
1505
2417
  (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
1506
2418
  if (this.anchorTag && !this.anchorTag.onclick) {
1507
2419
  this.anchorTag.onclick = (ev) => {
@@ -1518,6 +2430,20 @@ class BsNavbarItemComponent {
1518
2430
  };
1519
2431
  }
1520
2432
  }
2433
+ else {
2434
+ // Close if this is a link
2435
+ if (this.parentDropdown && this.dropdowns.length === 0) {
2436
+ if (this.anchorTag && !this.anchorTag.onclick) {
2437
+ this.anchorTag.onclick = (ev) => {
2438
+ let d = this.parentDropdown;
2439
+ while (d && d.autoclose) {
2440
+ d.isVisible = false;
2441
+ d = d.parentDropdown;
2442
+ }
2443
+ };
2444
+ }
2445
+ }
2446
+ }
1521
2447
  }
1522
2448
  }
1523
2449
  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 });
@@ -1536,6 +2462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1536
2462
 
1537
2463
  class BsNavbarDropdownComponent {
1538
2464
  constructor(parentDropdown, navbarItem) {
2465
+ this.autoclose = true;
1539
2466
  this.isVisible = false;
1540
2467
  this.parentDropdown = parentDropdown;
1541
2468
  this.navbarItem = navbarItem;
@@ -1543,11 +2470,9 @@ class BsNavbarDropdownComponent {
1543
2470
  get elementsToExclude() {
1544
2471
  return [this.navbarItem.anchorTag].filter((a) => a).map((a) => a);
1545
2472
  }
1546
- ngOnInit() {
1547
- }
1548
2473
  }
1549
2474
  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 });
1550
- 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"] }] });
2475
+ 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"] }] });
1551
2476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarDropdownComponent, decorators: [{
1552
2477
  type: Component,
1553
2478
  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"] }]
@@ -1564,7 +2489,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1564
2489
  type: Inject,
1565
2490
  args: [forwardRef(() => BsNavbarItemComponent)]
1566
2491
  }] }];
1567
- }, propDecorators: { childDropdowns: [{
2492
+ }, propDecorators: { autoclose: [{
2493
+ type: Input
2494
+ }], childDropdowns: [{
1568
2495
  type: ContentChildren,
1569
2496
  args: [forwardRef(() => BsNavbarDropdownComponent), { descendants: true }]
1570
2497
  }] } });
@@ -1660,6 +2587,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1660
2587
  args: ['navbarContent']
1661
2588
  }] } });
1662
2589
 
2590
+ class BsNavbarBrandComponent {
2591
+ constructor() {
2592
+ this.routerLink = [];
2593
+ }
2594
+ }
2595
+ BsNavbarBrandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarBrandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2596
+ 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]" }] });
2597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarBrandComponent, decorators: [{
2598
+ type: Component,
2599
+ 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: [""] }]
2600
+ }], propDecorators: { routerLink: [{
2601
+ type: Input
2602
+ }] } });
2603
+
1663
2604
  class BsNavbarModule {
1664
2605
  }
1665
2606
  BsNavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1669,7 +2610,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1669
2610
  BsNavbarItemComponent,
1670
2611
  DropdownToggleDirective,
1671
2612
  NavLinkDirective,
1672
- NavbarContentDirective], imports: [CommonModule,
2613
+ NavbarContentDirective,
2614
+ BsNavbarBrandComponent], imports: [CommonModule,
1673
2615
  RouterModule,
1674
2616
  ClickOutsideModule], exports: [BsNavbarComponent,
1675
2617
  BsNavbarNavComponent,
@@ -1677,7 +2619,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1677
2619
  BsNavbarItemComponent,
1678
2620
  DropdownToggleDirective,
1679
2621
  NavLinkDirective,
1680
- NavbarContentDirective] });
2622
+ NavbarContentDirective,
2623
+ BsNavbarBrandComponent] });
1681
2624
  BsNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, imports: [[
1682
2625
  CommonModule,
1683
2626
  RouterModule,
@@ -1693,188 +2636,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1693
2636
  BsNavbarItemComponent,
1694
2637
  DropdownToggleDirective,
1695
2638
  NavLinkDirective,
1696
- NavbarContentDirective
2639
+ NavbarContentDirective,
2640
+ BsNavbarBrandComponent
1697
2641
  ],
1698
2642
  imports: [
1699
2643
  CommonModule,
1700
2644
  RouterModule,
1701
2645
  ClickOutsideModule
1702
2646
  ],
1703
- exports: [
1704
- BsNavbarComponent,
1705
- BsNavbarNavComponent,
1706
- BsNavbarDropdownComponent,
1707
- BsNavbarItemComponent,
1708
- DropdownToggleDirective,
1709
- NavLinkDirective,
1710
- NavbarContentDirective
1711
- ]
1712
- }]
1713
- }] });
1714
-
1715
- class BsProgressComponent {
1716
- constructor() {
1717
- this.progressClass = true;
1718
- this.height = null;
1719
- this.isIndeterminate = false;
1720
- }
1721
- }
1722
- BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1723
- 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"] }] });
1724
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
1725
- type: Component,
1726
- 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"] }]
1727
- }], propDecorators: { progressClass: [{
1728
- type: HostBinding,
1729
- args: ['class.progress']
1730
- }], height: [{
1731
- type: Input
1732
- }, {
1733
- type: HostBinding,
1734
- args: ['style.height.px']
1735
- }], isIndeterminate: [{
1736
- type: Input
1737
- }] } });
1738
-
1739
- class BsProgressBarComponent {
1740
- constructor() {
1741
- this.destroyed$ = new Subject();
1742
- this.minimum$ = new BehaviorSubject(0);
1743
- this.maximum$ = new BehaviorSubject(100);
1744
- this.value$ = new BehaviorSubject(50);
1745
- this.color$ = new BehaviorSubject(Color.primary);
1746
- this.striped = false;
1747
- this.animated = false;
1748
- this.progressBar = true;
1749
- this.colorClass = 'bg-primary';
1750
- this.widthStyle = '0';
1751
- this.role = 'progressbar';
1752
- this.valueNow = 50;
1753
- this.valueMin = 0;
1754
- this.valueMax = 100;
1755
- this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
1756
- .pipe(map(([minimum, maximum, value]) => {
1757
- return (value - minimum) / (maximum - minimum) * 100;
1758
- }));
1759
- this.width$ = this.percentage$
1760
- .pipe(map((width) => {
1761
- return String(width) + '%';
1762
- }));
1763
- this.colorClass$ = this.color$
1764
- .pipe(map((color) => {
1765
- const name = Color[color];
1766
- return `bg-${name}`;
1767
- }));
1768
- this.colorClass$
1769
- .pipe(takeUntil(this.destroyed$))
1770
- .subscribe((color) => {
1771
- this.colorClass = color;
1772
- });
1773
- this.width$
1774
- .pipe(takeUntil(this.destroyed$))
1775
- .subscribe((width) => {
1776
- this.widthStyle = width;
1777
- });
1778
- this.value$
1779
- .pipe(takeUntil(this.destroyed$))
1780
- .subscribe((value) => {
1781
- this.valueNow = value;
1782
- });
1783
- this.minimum$
1784
- .pipe(takeUntil(this.destroyed$))
1785
- .subscribe((value) => {
1786
- this.valueMin = value;
1787
- });
1788
- this.maximum$
2647
+ exports: [
2648
+ BsNavbarComponent,
2649
+ BsNavbarNavComponent,
2650
+ BsNavbarDropdownComponent,
2651
+ BsNavbarItemComponent,
2652
+ DropdownToggleDirective,
2653
+ NavLinkDirective,
2654
+ NavbarContentDirective,
2655
+ BsNavbarBrandComponent
2656
+ ]
2657
+ }]
2658
+ }] });
2659
+
2660
+ class BsRatingComponent {
2661
+ constructor() {
2662
+ this.destroyed$ = new Subject();
2663
+ this.maximum$ = new BehaviorSubject(5);
2664
+ this.value$ = new BehaviorSubject(3);
2665
+ this.previewValue$ = new BehaviorSubject(null);
2666
+ //#endregion
2667
+ //#region Value
2668
+ this.valueChange = new EventEmitter();
2669
+ this.starsChange = new EventEmitter();
2670
+ this.stars$ = combineLatest([this.maximum$, this.previewValue$, this.value$])
2671
+ .pipe(map(([maximum, previewValue, value]) => {
2672
+ const v = previewValue !== null && previewValue !== void 0 ? previewValue : value;
2673
+ return [
2674
+ ...[...Array(v).keys()].map(i => true),
2675
+ ...[...Array(maximum - v).keys()].map(i => false)
2676
+ ];
2677
+ }));
2678
+ combineLatest([this.previewValue$, this.value$])
1789
2679
  .pipe(takeUntil(this.destroyed$))
1790
- .subscribe((value) => {
1791
- this.valueMax = value;
2680
+ .subscribe(([previewValue, value]) => {
2681
+ const v = previewValue !== null && previewValue !== void 0 ? previewValue : value;
2682
+ this.starsChange.emit(v);
1792
2683
  });
1793
2684
  }
1794
- set minimum(value) {
1795
- this.minimum$.next(value);
1796
- }
2685
+ //#region Maximum
1797
2686
  set maximum(value) {
1798
2687
  this.maximum$.next(value);
1799
2688
  }
2689
+ get value() {
2690
+ return this.value$.value;
2691
+ }
1800
2692
  set value(value) {
1801
2693
  this.value$.next(value);
2694
+ this.valueChange.emit(value);
1802
2695
  }
1803
- set color(value) {
1804
- this.color$.next(value);
1805
- }
2696
+ //#endregion
1806
2697
  ngOnDestroy() {
1807
2698
  this.destroyed$.next(true);
1808
2699
  }
2700
+ hoverValue(index) {
2701
+ this.previewValue$.next(index + 1);
2702
+ }
2703
+ selectValue(index) {
2704
+ this.value = index + 1;
2705
+ }
2706
+ onMouseLeave() {
2707
+ this.previewValue$.next(null);
2708
+ }
1809
2709
  }
1810
- BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1811
- 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: [""] });
1812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
2710
+ BsRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2711
+ 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 } });
2712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, decorators: [{
1813
2713
  type: Component,
1814
- args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
1815
- }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
1816
- type: Input
1817
- }], maximum: [{
2714
+ 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: [""] }]
2715
+ }], ctorParameters: function () { return []; }, propDecorators: { maximum: [{
1818
2716
  type: Input
2717
+ }], valueChange: [{
2718
+ type: Output
2719
+ }], starsChange: [{
2720
+ type: Output
1819
2721
  }], value: [{
1820
2722
  type: Input
1821
- }], color: [{
1822
- type: Input
1823
- }], striped: [{
1824
- type: Input
1825
- }, {
1826
- type: HostBinding,
1827
- args: ['class.progress-bar-striped']
1828
- }], animated: [{
1829
- type: Input
1830
- }, {
1831
- type: HostBinding,
1832
- args: ['class.progress-bar-animated']
1833
- }], progressBar: [{
1834
- type: HostBinding,
1835
- args: ['class.progress-bar']
1836
- }], colorClass: [{
1837
- type: HostBinding,
1838
- args: ['class']
1839
- }], widthStyle: [{
1840
- type: HostBinding,
1841
- args: ['style.width']
1842
- }], role: [{
1843
- type: HostBinding,
1844
- args: ['attr.role']
1845
- }], valueNow: [{
1846
- type: HostBinding,
1847
- args: ['attr.aria-valuenow']
1848
- }], valueMin: [{
1849
- type: HostBinding,
1850
- args: ['attr.aria-valuemin']
1851
- }], valueMax: [{
1852
- type: HostBinding,
1853
- args: ['attr.aria-valuemax']
2723
+ }], onMouseLeave: [{
2724
+ type: HostListener,
2725
+ args: ['mouseleave']
1854
2726
  }] } });
1855
2727
 
1856
- class BsProgressBarModule {
2728
+ class BsRatingModule {
1857
2729
  }
1858
- BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1859
- BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
1860
- BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
1861
- BsProgressComponent] });
1862
- BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
2730
+ BsRatingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2731
+ BsRatingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, declarations: [BsRatingComponent], imports: [CommonModule], exports: [BsRatingComponent] });
2732
+ BsRatingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, imports: [[
1863
2733
  CommonModule
1864
2734
  ]] });
1865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
2735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, decorators: [{
1866
2736
  type: NgModule,
1867
2737
  args: [{
1868
2738
  declarations: [
1869
- BsProgressBarComponent,
1870
- BsProgressComponent
2739
+ BsRatingComponent
1871
2740
  ],
1872
2741
  imports: [
1873
2742
  CommonModule
1874
2743
  ],
1875
2744
  exports: [
1876
- BsProgressBarComponent,
1877
- BsProgressComponent
2745
+ BsRatingComponent
1878
2746
  ]
1879
2747
  }]
1880
2748
  }] });
@@ -1924,15 +2792,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1924
2792
  } });
1925
2793
 
1926
2794
  class BsScrollspyComponent {
1927
- constructor(scrollOffsetService, document) {
2795
+ constructor(scrollOffsetService, document, zone) {
1928
2796
  this.scrollOffsetService = scrollOffsetService;
2797
+ this.zone = zone;
2798
+ this.destroyed$ = new Subject();
2799
+ this.viewInit$ = new BehaviorSubject(false);
2800
+ this.contentInit$ = new BehaviorSubject(false);
1929
2801
  this.activeDirective = null;
1930
2802
  this.doc = document;
2803
+ combineLatest([this.viewInit$, this.contentInit$])
2804
+ .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))
2805
+ .pipe(takeUntil(this.destroyed$))
2806
+ .subscribe(() => {
2807
+ // this.setActiveDirective();
2808
+ this.scrollToCurrentInSpy();
2809
+ });
1931
2810
  }
1932
2811
  ngAfterViewInit() {
1933
- this.onWindowScroll();
2812
+ this.viewInit$.next(true);
2813
+ }
2814
+ ngAfterContentInit() {
2815
+ this.contentInit$.next(true);
2816
+ }
2817
+ ngOnDestroy() {
2818
+ this.destroyed$.next(true);
1934
2819
  }
1935
2820
  onWindowScroll() {
2821
+ this.setActiveDirective();
2822
+ this.scrollToCurrentInSpy();
2823
+ }
2824
+ setActiveDirective() {
1936
2825
  var _a;
1937
2826
  const offsetY = this.scrollOffsetService.getScrollOffset()[1];
1938
2827
  const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
@@ -1945,6 +2834,8 @@ class BsScrollspyComponent {
1945
2834
  else {
1946
2835
  this.activeDirective = dirs[dirs.length - 1];
1947
2836
  }
2837
+ }
2838
+ scrollToCurrentInSpy() {
1948
2839
  if (window && (window.innerWidth >= 768)) {
1949
2840
  if (this.activeDirective) {
1950
2841
  const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
@@ -1962,7 +2853,7 @@ class BsScrollspyComponent {
1962
2853
  window.scrollTo({ top: y, behavior: 'smooth' });
1963
2854
  }
1964
2855
  }
1965
- 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 });
2856
+ 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 });
1966
2857
  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"] }] });
1967
2858
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
1968
2859
  type: Component,
@@ -1971,7 +2862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1971
2862
  return [{ type: BsScrollOffsetService }, { type: undefined, decorators: [{
1972
2863
  type: Inject,
1973
2864
  args: [DOCUMENT]
1974
- }] }];
2865
+ }] }, { type: i0.NgZone }];
1975
2866
  }, propDecorators: { directives: [{
1976
2867
  type: ContentChildren,
1977
2868
  args: [BsScrollspyDirective, { descendants: true }]
@@ -2069,8 +2960,6 @@ class BsSelect2Component {
2069
2960
  this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
2070
2961
  this.focus();
2071
2962
  }
2072
- ngOnInit() {
2073
- }
2074
2963
  onResize() {
2075
2964
  this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);
2076
2965
  }
@@ -2079,11 +2968,14 @@ class BsSelect2Component {
2079
2968
  }
2080
2969
  }
2081
2970
  BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
2082
- 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 } });
2971
+ 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 } });
2083
2972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, decorators: [{
2084
2973
  type: Component,
2085
- 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"] }]
2086
- }], ctorParameters: function () { return []; }, propDecorators: { searchBox: [{
2974
+ 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"] }]
2975
+ }], propDecorators: { defaultItemTemplate: [{
2976
+ type: ViewChild,
2977
+ args: ['defaultItemTemplate', { static: true }]
2978
+ }], searchBox: [{
2087
2979
  type: ViewChild,
2088
2980
  args: ['searchBox']
2089
2981
  }], itemsBox: [{
@@ -2106,15 +2998,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2106
2998
  }], focus: [{
2107
2999
  type: HostListener,
2108
3000
  args: ['click']
2109
- }], defaultItemTemplate: [{
2110
- type: ViewChild,
2111
- args: ['defaultItemTemplate', { static: true }]
2112
3001
  }] } });
2113
3002
 
2114
3003
  class BsItemTemplateDirective {
2115
3004
  constructor(select2component, templateRef) {
2116
3005
  this.select2component = select2component;
2117
- console.log('template', templateRef);
2118
3006
  this.select2component.itemTemplate = templateRef;
2119
3007
  }
2120
3008
  }
@@ -2184,164 +3072,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2184
3072
  }]
2185
3073
  }] });
2186
3074
 
2187
- const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
2188
-
2189
- class BsSnackbarComponent {
2190
- constructor(content) {
2191
- this.displayBlock = true;
2192
- this.width100 = true;
2193
- this.instance = null;
2194
- //#region Monitor @slideUpDown hooks
2195
- this.animationState = '';
2196
- this.animationStateChanged = new EventEmitter();
2197
- this.content = content;
2198
- }
2199
- onAnimationChanged(event) {
2200
- this.animationStateChanged.emit(event);
2201
- }
2202
- }
2203
- BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2204
- 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] });
2205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
2206
- type: Component,
2207
- 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"] }]
2208
- }], ctorParameters: function () {
2209
- return [{ type: i0.TemplateRef, decorators: [{
2210
- type: Inject,
2211
- args: [SNACKBAR_CONTENT]
2212
- }] }];
2213
- }, propDecorators: { displayBlock: [{
2214
- type: HostBinding,
2215
- args: ['class.d-block']
2216
- }], width100: [{
2217
- type: HostBinding,
2218
- args: ['class.w-100']
2219
- }] } });
2220
-
2221
- class BsSnackbarService {
2222
- constructor(overlay, parentInjector, componentFactoryResolver) {
2223
- this.overlay = overlay;
2224
- this.parentInjector = parentInjector;
2225
- this.componentFactoryResolver = componentFactoryResolver;
2226
- }
2227
- show(template) {
2228
- const injector = Injector.create({
2229
- providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
2230
- parent: this.parentInjector
2231
- });
2232
- const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
2233
- const overlayRef = this.overlay.create({
2234
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
2235
- positionStrategy: this.overlay.position()
2236
- .global().centerHorizontally().bottom('0'),
2237
- width: '100%'
2238
- });
2239
- const componentInstance = overlayRef.attach(portal);
2240
- // componentInstance.
2241
- componentInstance.instance['instance'] = {
2242
- component: componentInstance,
2243
- overlay: overlayRef
2244
- };
2245
- return componentInstance.instance;
2246
- }
2247
- hide(snackbar) {
2248
- snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2249
- var _a;
2250
- (_a = snackbar['instance']) === null || _a === void 0 ? void 0 : _a.overlay.dispose();
2251
- });
2252
- snackbar.animationState = 'void';
2253
- }
2254
- }
2255
- 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 });
2256
- BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: 'root' });
2257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
2258
- type: Injectable,
2259
- args: [{
2260
- providedIn: 'root'
2261
- }]
2262
- }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
2263
-
2264
- class BsSnackbarCloseDirective {
2265
- constructor(snackbarService) {
2266
- this.snackbarService = snackbarService;
2267
- }
2268
- onClick() {
2269
- this.snackbarService.hide(this.bsSnackbarClose);
2270
- }
2271
- }
2272
- BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
2273
- 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 });
2274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
2275
- type: Directive,
2276
- args: [{
2277
- selector: '[bsSnackbarClose]'
2278
- }]
2279
- }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
2280
- type: Input
2281
- }], onClick: [{
2282
- type: HostListener,
2283
- args: ['click']
2284
- }] } });
2285
-
2286
- class BsSnackbarModule {
2287
- }
2288
- BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2289
- BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
2290
- BsSnackbarCloseDirective], imports: [CommonModule], exports: [BsSnackbarComponent,
2291
- BsSnackbarCloseDirective] });
2292
- BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
2293
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2294
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2295
- ], imports: [[
2296
- CommonModule
2297
- ]] });
2298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
2299
- type: NgModule,
2300
- args: [{
2301
- declarations: [
2302
- BsSnackbarComponent,
2303
- BsSnackbarCloseDirective
2304
- ],
2305
- imports: [
2306
- CommonModule
2307
- ],
2308
- exports: [
2309
- BsSnackbarComponent,
2310
- BsSnackbarCloseDirective
2311
- ],
2312
- providers: [
2313
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2314
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2315
- ]
2316
- }]
2317
- }] });
2318
-
2319
3075
  class BsTabPageComponent {
2320
3076
  constructor(tabControl) {
2321
3077
  this.disabled = false;
2322
3078
  this.tabControl = tabControl;
2323
3079
  }
2324
- ngOnInit() {
2325
- }
2326
3080
  }
2327
3081
  BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
2328
3082
  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"] }] });
2329
3083
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
2330
3084
  type: Component,
2331
3085
  args: [{ selector: 'bs-tab-page', template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""] }]
2332
- }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { headerTemplate: [{
3086
+ }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { disabled: [{
3087
+ type: Input
3088
+ }], headerTemplate: [{
2333
3089
  type: ContentChild,
2334
3090
  args: [TemplateRef]
2335
- }], disabled: [{
2336
- type: Input
2337
3091
  }] } });
2338
3092
 
2339
3093
  class BsTabControlComponent {
2340
3094
  constructor() {
3095
+ this.border = true;
2341
3096
  this.activeTab = null;
2342
3097
  }
2343
- ngOnInit() {
2344
- }
2345
3098
  setActiveTab(tab) {
2346
3099
  if (!tab.disabled) {
2347
3100
  this.activeTab = tab;
@@ -2350,13 +3103,15 @@ class BsTabControlComponent {
2350
3103
  }
2351
3104
  }
2352
3105
  BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2353
- 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"] }] });
3106
+ 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"] }] });
2354
3107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
2355
3108
  type: Component,
2356
- 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: [""] }]
2357
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
3109
+ 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"] }]
3110
+ }], propDecorators: { tabPages: [{
2358
3111
  type: ContentChildren,
2359
3112
  args: [BsTabPageComponent]
3113
+ }], border: [{
3114
+ type: Input
2360
3115
  }] } });
2361
3116
 
2362
3117
  class BsTabControlModule {
@@ -2390,14 +3145,11 @@ class BsToggleButtonComponent {
2390
3145
  this.disableAnimations = true;
2391
3146
  //#region isToggled
2392
3147
  this._isToggled = false;
3148
+ this.change = new EventEmitter();
2393
3149
  this.isToggledChange = new EventEmitter();
2394
3150
  //#endregion
2395
- this.offColor = '#CCCCCC';
2396
- this.onColor = '#2196F3';
2397
- this.round = true;
2398
- }
2399
- ngAfterViewInit() {
2400
- this.disableAnimations = false;
3151
+ //#region disabled
3152
+ this.disabled = false;
2401
3153
  }
2402
3154
  get isToggled() {
2403
3155
  return this._isToggled;
@@ -2406,21 +3158,28 @@ class BsToggleButtonComponent {
2406
3158
  this._isToggled = value;
2407
3159
  this.isToggledChange.emit(this._isToggled);
2408
3160
  }
3161
+ //#endregion
3162
+ onChange(event) {
3163
+ const val = event.target.checked;
3164
+ this.isToggled = val;
3165
+ this.change.emit(val);
3166
+ }
3167
+ ngAfterViewInit() {
3168
+ this.disableAnimations = false;
3169
+ }
2409
3170
  }
2410
3171
  BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2411
- 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] });
3172
+ 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] });
2412
3173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
2413
3174
  type: Component,
2414
- 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"] }]
2415
- }], propDecorators: { isToggledChange: [{
3175
+ 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: [""] }]
3176
+ }], propDecorators: { change: [{
3177
+ type: Output
3178
+ }], isToggledChange: [{
2416
3179
  type: Output
2417
3180
  }], isToggled: [{
2418
3181
  type: Input
2419
- }], offColor: [{
2420
- type: Input
2421
- }], onColor: [{
2422
- type: Input
2423
- }], round: [{
3182
+ }], disabled: [{
2424
3183
  type: Input
2425
3184
  }] } });
2426
3185
 
@@ -2489,6 +3248,9 @@ class BsTooltipDirective {
2489
3248
  this.hideTooltip();
2490
3249
  };
2491
3250
  }
3251
+ onBlur() {
3252
+ this.hideTooltip();
3253
+ }
2492
3254
  showTooltip() {
2493
3255
  const positions = [];
2494
3256
  switch (this.bsTooltip) {
@@ -2551,7 +3313,7 @@ class BsTooltipDirective {
2551
3313
  }
2552
3314
  }
2553
3315
  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 });
2554
- BsTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsTooltipDirective, selector: "*[bsTooltip]", inputs: { bsTooltip: "bsTooltip" }, ngImport: i0 });
3316
+ 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 });
2555
3317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipDirective, decorators: [{
2556
3318
  type: Directive,
2557
3319
  args: [{
@@ -2565,15 +3327,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2565
3327
  }] }];
2566
3328
  }, propDecorators: { bsTooltip: [{
2567
3329
  type: Input
3330
+ }], onBlur: [{
3331
+ type: HostListener,
3332
+ args: ['window:blur']
2568
3333
  }] } });
2569
3334
 
2570
3335
  class BsTooltipModule {
2571
3336
  }
2572
3337
  BsTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2573
3338
  BsTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, declarations: [BsTooltipDirective,
2574
- BsTooltipComponent], imports: [CommonModule], exports: [BsTooltipDirective] });
3339
+ BsTooltipComponent], imports: [CommonModule,
3340
+ OverlayModule], exports: [BsTooltipDirective] });
2575
3341
  BsTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, imports: [[
2576
- CommonModule
3342
+ CommonModule,
3343
+ OverlayModule
2577
3344
  ]] });
2578
3345
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, decorators: [{
2579
3346
  type: NgModule,
@@ -2583,7 +3350,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2583
3350
  BsTooltipComponent
2584
3351
  ],
2585
3352
  imports: [
2586
- CommonModule
3353
+ CommonModule,
3354
+ OverlayModule
2587
3355
  ],
2588
3356
  exports: [
2589
3357
  BsTooltipDirective
@@ -2645,7 +3413,7 @@ class BsTypeaheadComponent {
2645
3413
  }
2646
3414
  }
2647
3415
  BsTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2648
- 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 } });
3416
+ 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 } });
2649
3417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, decorators: [{
2650
3418
  type: Component,
2651
3419
  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"] }]
@@ -2754,5 +3522,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2754
3522
  * Generated bundle index. Do not edit.
2755
3523
  */
2756
3524
 
2757
- 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 };
3525
+ 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 };
2758
3526
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map