@mintplayer/ng-bootstrap 13.1.11 → 13.1.16

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 (172) 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 +23 -9
  17. package/esm2020/lib/components/context-menu/context-menu.module.mjs +8 -4
  18. package/esm2020/lib/components/copy/copy.directive.mjs +45 -0
  19. package/esm2020/lib/components/copy/copy.module.mjs +26 -0
  20. package/esm2020/lib/components/copy/index.mjs +3 -0
  21. package/esm2020/lib/components/datatable/datatable/datatable.component.mjs +6 -8
  22. package/esm2020/lib/components/datatable/datatable-settings.mjs +1 -1
  23. package/esm2020/lib/components/datatable/datatable.module.mjs +1 -1
  24. package/esm2020/lib/components/datatable/row-template/row-template.directive.mjs +3 -3
  25. package/esm2020/lib/components/datepicker/datepicker.component.mjs +32 -7
  26. package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +1 -1
  27. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +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 +22 -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/select2/component/select2.component.mjs +7 -9
  69. package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +4 -3
  70. package/esm2020/lib/components/snackbar/snackbar.module.mjs +8 -4
  71. package/esm2020/lib/components/tab-control/tab-control/tab-control.component.mjs +8 -7
  72. package/esm2020/lib/components/tab-control/tab-page/tab-page.component.mjs +4 -6
  73. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +19 -15
  74. package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +4 -4
  75. package/esm2020/lib/components/tooltip/tooltip.module.mjs +8 -4
  76. package/esm2020/lib/interfaces/date-day-of-month.mjs +1 -1
  77. package/esm2020/lib/interfaces/index.mjs +2 -1
  78. package/esm2020/lib/interfaces/week.mjs +1 -1
  79. package/esm2020/lib/interfaces/weekday.mjs +2 -0
  80. package/esm2020/lib/pipes/format-bytes/format-bytes.module.mjs +26 -0
  81. package/esm2020/lib/pipes/format-bytes/format-bytes.pipe.mjs +23 -0
  82. package/esm2020/lib/pipes/format-bytes/index.mjs +3 -0
  83. package/esm2020/lib/pipes/index.mjs +2 -1
  84. package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +34 -18
  85. package/fesm2015/mintplayer-ng-bootstrap.mjs +1299 -567
  86. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  87. package/fesm2020/mintplayer-ng-bootstrap.mjs +1297 -571
  88. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  89. package/lib/components/accordion/accordion/accordion.component.d.ts +1 -4
  90. package/lib/components/accordion/accordion-tab/accordion-tab.component.d.ts +1 -4
  91. package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -4
  92. package/lib/components/accordion/accordion.module.d.ts +1 -2
  93. package/lib/components/alert/alert/alert.component.d.ts +1 -4
  94. package/lib/components/alert/alert-close/alert-close.component.d.ts +1 -3
  95. package/lib/components/calendar/calendar.component.d.ts +4 -5
  96. package/lib/components/card/card/card.component.d.ts +1 -6
  97. package/lib/components/card/card-header/card-header.component.d.ts +1 -4
  98. package/lib/components/carousel/carousel/carousel.component.d.ts +9 -9
  99. package/lib/components/code-snippet/code-snippet.component.d.ts +12 -0
  100. package/lib/components/code-snippet/code-snippet.module.d.ts +10 -0
  101. package/lib/components/code-snippet/index.d.ts +2 -0
  102. package/lib/components/context-menu/context-menu.directive.d.ts +3 -2
  103. package/lib/components/context-menu/context-menu.module.d.ts +2 -1
  104. package/lib/components/copy/copy.directive.d.ts +11 -0
  105. package/lib/components/copy/copy.module.d.ts +8 -0
  106. package/lib/components/copy/index.d.ts +2 -0
  107. package/lib/components/datatable/datatable/datatable.component.d.ts +4 -5
  108. package/lib/components/datatable/row-template/row-template.directive.d.ts +1 -1
  109. package/lib/components/datepicker/datepicker.component.d.ts +11 -7
  110. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +3 -3
  111. package/lib/components/file-upload/component/file-upload.component.d.ts +19 -0
  112. package/lib/components/file-upload/directive/file-upload-template.directive.d.ts +8 -0
  113. package/lib/components/file-upload/file-upload.d.ts +4 -0
  114. package/lib/components/file-upload/file-upload.module.d.ts +12 -0
  115. package/lib/components/file-upload/index.d.ts +4 -0
  116. package/lib/components/for/for.directive.d.ts +8 -0
  117. package/lib/components/for/for.module.d.ts +8 -0
  118. package/lib/components/for/index.d.ts +2 -0
  119. package/lib/components/index.d.ts +6 -0
  120. package/lib/components/modal/component/index.d.ts +2 -0
  121. package/lib/components/modal/component/modal/modal.component.d.ts +10 -0
  122. package/lib/components/modal/component/modal-content/modal-content.component.d.ts +13 -0
  123. package/lib/components/modal/directives/index.d.ts +3 -0
  124. package/lib/components/modal/directives/modal-body/modal-body.directive.d.ts +8 -0
  125. package/lib/components/modal/directives/modal-footer/modal-footer.directive.d.ts +8 -0
  126. package/lib/components/modal/directives/modal-header/modal-header.directive.d.ts +8 -0
  127. package/lib/components/modal/index.d.ts +4 -0
  128. package/lib/components/modal/interfaces/index.d.ts +1 -0
  129. package/lib/components/modal/interfaces/modal-animation-meta.d.ts +7 -0
  130. package/lib/components/modal/modal.module.d.ts +13 -0
  131. package/lib/components/modal/providers/modal-content.provider.d.ts +2 -0
  132. package/lib/components/modal/service/modal.service.d.ts +14 -0
  133. package/lib/components/multiselect/{multiselect.component.d.ts → component/multiselect.component.d.ts} +7 -6
  134. package/lib/components/multiselect/directives/button-template/button-template.directive.d.ts +8 -0
  135. package/lib/components/multiselect/directives/footer-template/footer-template.directive.d.ts +8 -0
  136. package/lib/components/multiselect/directives/header-template/header-template.directive.d.ts +8 -0
  137. package/lib/components/multiselect/directives/index.d.ts +3 -0
  138. package/lib/components/multiselect/index.d.ts +2 -1
  139. package/lib/components/multiselect/multiselect.module.d.ts +8 -5
  140. package/lib/components/navbar/index.d.ts +1 -0
  141. package/lib/components/navbar/navbar/navbar.component.d.ts +1 -1
  142. package/lib/components/navbar/navbar-brand/navbar-brand.component.d.ts +7 -0
  143. package/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.d.ts +4 -4
  144. package/lib/components/navbar/navbar-item/navbar-item.component.d.ts +3 -4
  145. package/lib/components/navbar/navbar.module.d.ts +5 -4
  146. package/lib/components/pagination/pagination/pagination.component.d.ts +9 -10
  147. package/lib/components/rating/index.d.ts +2 -0
  148. package/lib/components/rating/rating.component.d.ts +22 -0
  149. package/lib/components/rating/rating.module.d.ts +8 -0
  150. package/lib/components/select2/component/select2.component.d.ts +4 -6
  151. package/lib/components/snackbar/snackbar.module.d.ts +2 -1
  152. package/lib/components/tab-control/tab-control/tab-control.component.d.ts +4 -6
  153. package/lib/components/tab-control/tab-page/tab-page.component.d.ts +3 -4
  154. package/lib/components/toggle-button/toggle-button.component.d.ts +5 -5
  155. package/lib/components/tooltip/directive/tooltip.directive.d.ts +1 -1
  156. package/lib/components/tooltip/tooltip.module.d.ts +2 -1
  157. package/lib/interfaces/date-day-of-month.d.ts +1 -0
  158. package/lib/interfaces/index.d.ts +1 -0
  159. package/lib/interfaces/week.d.ts +1 -1
  160. package/lib/interfaces/weekday.d.ts +4 -0
  161. package/lib/pipes/format-bytes/format-bytes.module.d.ts +8 -0
  162. package/lib/pipes/format-bytes/format-bytes.pipe.d.ts +7 -0
  163. package/lib/pipes/format-bytes/index.d.ts +2 -0
  164. package/lib/pipes/index.d.ts +1 -0
  165. package/lib/services/calendar-month/calendar-month.service.d.ts +2 -0
  166. package/package.json +3 -2
  167. package/src/assets/ic-upload-file.svg +7 -0
  168. package/src/styles/custom.scss +12 -0
  169. package/src/styles/ngx-highlight-themes/solarized-dark.scss +89 -0
  170. package/src/styles/utilities/cursor.scss +10 -0
  171. package/src/styles/utilities/white-space.scss +10 -0
  172. 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,21 +931,35 @@ 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
  }
960
+ onBlur() {
961
+ this.close();
962
+ }
711
963
  close() {
712
964
  if (this.overlayRef) {
713
965
  this.overlayRef.detach();
@@ -722,7 +974,7 @@ class BsContextMenuDirective {
722
974
  }
723
975
  }
724
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 });
725
- BsContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsContextMenuDirective, selector: "[bsContextMenu]", host: { listeners: { "document:click": "clickAnywhere($event)", "window:blur": "close()" } }, 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 });
726
978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuDirective, decorators: [{
727
979
  type: Directive,
728
980
  args: [{
@@ -737,7 +989,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
737
989
  }, propDecorators: { clickAnywhere: [{
738
990
  type: HostListener,
739
991
  args: ['document:click', ['$event']]
740
- }], close: [{
992
+ }], onBlur: [{
741
993
  type: HostListener,
742
994
  args: ['window:blur']
743
995
  }] } });
@@ -745,9 +997,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
745
997
  class BsContextMenuModule {
746
998
  }
747
999
  BsContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
748
- 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] });
749
1002
  BsContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, imports: [[
750
- CommonModule
1003
+ CommonModule,
1004
+ OverlayModule
751
1005
  ]] });
752
1006
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsContextMenuModule, decorators: [{
753
1007
  type: NgModule,
@@ -756,7 +1010,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
756
1010
  BsContextMenuDirective
757
1011
  ],
758
1012
  imports: [
759
- CommonModule
1013
+ CommonModule,
1014
+ OverlayModule
760
1015
  ],
761
1016
  exports: [
762
1017
  BsContextMenuDirective
@@ -835,85 +1090,80 @@ class BsPaginationComponent {
835
1090
  /** The number of boxes (excluding arrows) that's being shown on the pagination component. */
836
1091
  this.visibleNumberOfNumberBoxes$ = new Observable();
837
1092
  this._selectedPageNumber = 0;
838
- this.selectedPageNumberChange = new EventEmitter();
839
1093
  this._numberOfBoxes = 0;
840
1094
  this._pageNumbers = [];
841
1095
  this._showArrows = true;
1096
+ //#region SelectedPageNumber
1097
+ this.selectedPageNumberChange = new EventEmitter();
842
1098
  this.destroyed$ = new Subject();
843
- this.visibleNumberOfNumberBoxes$ =
844
- combineLatest([this.numberOfBoxes$, this.pageNumbers$, this.showArrows$])
845
- .pipe(takeUntil(this.destroyed$))
846
- .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
847
- if (numberOfBoxes <= 0) {
848
- return pageNumbers.length;
849
- }
850
- else if (!showArrows) {
851
- return Math.min(numberOfBoxes, pageNumbers.length);
852
- }
853
- else if (numberOfBoxes <= 2) {
854
- return Math.min(1, pageNumbers.length);
855
- }
856
- else {
857
- return Math.min(numberOfBoxes - 2, pageNumbers.length);
858
- }
859
- }));
860
- this.shownPageNumbers$ =
861
- combineLatest([this.pageNumbers$, this.selectedPageNumber$, this.visibleNumberOfNumberBoxes$])
862
- .pipe(takeUntil(this.destroyed$))
863
- .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
864
- let startIndex = 0;
865
- const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
866
- if (pageNumbers.indexOf(selectedPageNumber) < half) {
867
- startIndex = 0;
868
- }
869
- else if (pageNumbers.indexOf(selectedPageNumber) >= (pageNumbers.length - half)) {
870
- startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
871
- }
872
- else {
873
- startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
874
- }
875
- return [...Array(visibleNumberOfNumberBoxes).keys()]
876
- .map(p => p + startIndex)
877
- .map(p => ({
878
- page: pageNumbers[p],
879
- selected: pageNumbers[p] === selectedPageNumber
880
- }));
881
- }));
882
- this.isFirstPage$ =
883
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
884
- .pipe(takeUntil(this.destroyed$))
885
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
886
- return pageNumbers.indexOf(selectedPageNumber) === 0;
887
- }));
888
- this.isLastPage$ =
889
- combineLatest([this.pageNumbers$, this.selectedPageNumber$])
890
- .pipe(takeUntil(this.destroyed$))
891
- .pipe(map(([pageNumbers, selectedPageNumber]) => {
892
- 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,
893
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
+ }));
894
1161
  this.selectedPageNumber$
895
1162
  .pipe(takeUntil(this.destroyed$))
896
1163
  .subscribe((selectedPageNumber) => {
897
1164
  this.selectedPageNumberChange.emit(selectedPageNumber);
898
1165
  });
899
1166
  }
900
- ngOnInit() {
901
- }
902
- ngOnDestroy() {
903
- this.destroyed$.next(true);
904
- }
905
- onSelectPage(event, page) {
906
- this.selectedPageNumber$.next(page);
907
- return false;
908
- }
909
- onPrevious() {
910
- this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
911
- return false;
912
- }
913
- onNext() {
914
- this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
915
- return false;
916
- }
917
1167
  set selectedPageNumber(value) {
918
1168
  this._selectedPageNumber = value;
919
1169
  this.selectedPageNumber$.next(value);
@@ -921,6 +1171,8 @@ class BsPaginationComponent {
921
1171
  get selectedPageNumber() {
922
1172
  return this._selectedPageNumber;
923
1173
  }
1174
+ //#endregion
1175
+ //#region NumberOfBoxes
924
1176
  set numberOfBoxes(value) {
925
1177
  this._numberOfBoxes = value;
926
1178
  this.numberOfBoxes$.next(value);
@@ -928,6 +1180,8 @@ class BsPaginationComponent {
928
1180
  get numberOfBoxes() {
929
1181
  return this._numberOfBoxes;
930
1182
  }
1183
+ //#endregion
1184
+ //#region PageNumbers
931
1185
  set pageNumbers(value) {
932
1186
  this._pageNumbers = value;
933
1187
  this.pageNumbers$.next(value);
@@ -935,6 +1189,8 @@ class BsPaginationComponent {
935
1189
  get pageNumbers() {
936
1190
  return this._pageNumbers;
937
1191
  }
1192
+ //#endregion
1193
+ //#region ShowArrows
938
1194
  set showArrows(value) {
939
1195
  this._showArrows = value;
940
1196
  this.showArrows$.next(value);
@@ -942,6 +1198,22 @@ class BsPaginationComponent {
942
1198
  get showArrows() {
943
1199
  return this._showArrows;
944
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
+ }
945
1217
  }
946
1218
  BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
947
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 } });
@@ -963,7 +1235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
963
1235
  class BsDatatableComponent {
964
1236
  constructor() {
965
1237
  this.columns = [];
966
- this.onReloadData = new EventEmitter();
1238
+ this.reloadData = new EventEmitter();
967
1239
  this.settings = new DatatableSettings();
968
1240
  this.settings.sortProperty = '';
969
1241
  this.settings.sortDirection = 'ascending';
@@ -982,17 +1254,15 @@ class BsDatatableComponent {
982
1254
  else {
983
1255
  this.settings.sortDirection = 'descending';
984
1256
  }
985
- this.onReloadData.emit();
1257
+ this.reloadData.emit();
986
1258
  }
987
1259
  }
988
- ngOnInit() {
989
- }
990
1260
  }
991
1261
  BsDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
992
- 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"] }] });
993
1263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatatableComponent, decorators: [{
994
1264
  type: Component,
995
- 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"] }]
996
1266
  }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
997
1267
  type: ContentChildren,
998
1268
  args: [BsDatatableColumnDirective]
@@ -1000,7 +1270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1000
1270
  type: Input
1001
1271
  }], data: [{
1002
1272
  type: Input
1003
- }], onReloadData: [{
1273
+ }], reloadData: [{
1004
1274
  type: Output
1005
1275
  }] } });
1006
1276
 
@@ -1011,11 +1281,11 @@ class BsRowTemplateDirective {
1011
1281
  }
1012
1282
  }
1013
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 });
1014
- 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 });
1015
1285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRowTemplateDirective, decorators: [{
1016
1286
  type: Directive,
1017
1287
  args: [{
1018
- selector: '[rowTemplate]'
1288
+ selector: '[bsRowTemplate]'
1019
1289
  }]
1020
1290
  }], ctorParameters: function () { return [{ type: BsDatatableComponent }, { type: i0.TemplateRef }]; } });
1021
1291
 
@@ -1075,7 +1345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1075
1345
  }] });
1076
1346
 
1077
1347
  class BsDropdownMenuDirective extends ClickOutsideDirective {
1078
- constructor(dropdown, document, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1348
+ constructor(dropdown, viewContainerRef, templateRef, overlay, elementRef, zone, platformId) {
1079
1349
  super(elementRef, zone, platformId);
1080
1350
  this.dropdown = dropdown;
1081
1351
  this.viewContainerRef = viewContainerRef;
@@ -1085,7 +1355,6 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1085
1355
  this.destroyed$ = new Subject();
1086
1356
  this.overlayRef = null;
1087
1357
  this.templatePortal = null;
1088
- this.document = document;
1089
1358
  this.dropdown.isOpen$
1090
1359
  .pipe(takeUntil(this.destroyed$))
1091
1360
  .subscribe((isOpen) => {
@@ -1098,7 +1367,9 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1098
1367
  positionStrategy: this.overlay.position()
1099
1368
  .flexibleConnectedTo(!this.dropdown.toggle ? dropdown.elementRef : this.dropdown.toggle.toggleButton)
1100
1369
  .withPositions([
1370
+ // element: BottomLeft - dropdown: TopLeft
1101
1371
  { originX: "start", originY: "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
1372
+ // element: TopLeft - dropdown: BottomLeft
1102
1373
  { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
1103
1374
  ]),
1104
1375
  });
@@ -1119,6 +1390,7 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1119
1390
  }
1120
1391
  });
1121
1392
  }
1393
+ get show() { return this.dropdown.isOpen; }
1122
1394
  clickedOutside(ev) {
1123
1395
  var _a;
1124
1396
  if (!this.wait) {
@@ -1132,28 +1404,25 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1132
1404
  }
1133
1405
  }
1134
1406
  }
1135
- 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 });
1136
- 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 });
1137
1409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1138
1410
  type: Directive,
1139
1411
  args: [{
1140
- selector: '[bsDropdownMenu]',
1141
- host: {
1142
- '[class.show]': 'dropdown.isOpen',
1143
- },
1412
+ selector: '[bsDropdownMenu]'
1144
1413
  }]
1145
1414
  }], ctorParameters: function () {
1146
1415
  return [{ type: BsDropdownDirective, decorators: [{
1147
1416
  type: Inject,
1148
1417
  args: [forwardRef(() => BsDropdownDirective)]
1149
- }] }, { type: undefined, decorators: [{
1150
- type: Inject,
1151
- args: [DOCUMENT]
1152
- }] }, { 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: [{
1153
1419
  type: Inject,
1154
1420
  args: [PLATFORM_ID]
1155
1421
  }] }];
1156
- }, propDecorators: { clickedOutside: [{
1422
+ }, propDecorators: { show: [{
1423
+ type: HostBinding,
1424
+ args: ['class.show']
1425
+ }], clickedOutside: [{
1157
1426
  type: HostListener,
1158
1427
  args: ['clickOutside', ['$event']]
1159
1428
  }] } });
@@ -1234,81 +1503,501 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1234
1503
  args: ['window:blur']
1235
1504
  }] } });
1236
1505
 
1237
- class BsDatepickerComponent {
1238
- constructor() {
1239
- this.selectedDate = new Date();
1240
- this.currentMonth = new Date();
1241
- }
1242
- ngOnInit() {
1243
- }
1506
+ class BsDatepickerComponent {
1507
+ constructor() {
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();
1515
+ }
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);
1529
+ }
1530
+ }
1531
+ BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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 } });
1533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1534
+ type: Component,
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: [""] }]
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 {
1244
1923
  }
1245
- BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1246
- BsDatepickerComponentcmp = 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 } });
1247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1248
- type: Component,
1249
- 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: [""] }]
1250
- }], ctorParameters: function () { return []; } });
1924
+ BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1925
+ BsProgressBarModulemod = 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
+ }] });
1251
1947
 
1252
- class BsDropdownModule {
1948
+ class BsFormatBytesModule {
1253
1949
  }
1254
- BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1255
- BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
1256
- BsDropdownToggleDirective,
1257
- BsDropdownMenuDirective], imports: [CommonModule,
1258
- OverlayModule,
1259
- ClickOutsideModule], exports: [BsDropdownDirective,
1260
- BsDropdownToggleDirective,
1261
- BsDropdownMenuDirective] });
1262
- BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1263
- CommonModule,
1264
- OverlayModule,
1265
- 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
1266
1954
  ]] });
1267
- 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: [{
1268
1956
  type: NgModule,
1269
1957
  args: [{
1270
1958
  declarations: [
1271
- BsDropdownDirective,
1272
- BsDropdownToggleDirective,
1273
- BsDropdownMenuDirective
1959
+ BsFormatBytesPipe
1274
1960
  ],
1275
1961
  imports: [
1276
- CommonModule,
1277
- OverlayModule,
1278
- ClickOutsideModule
1962
+ CommonModule
1279
1963
  ],
1280
1964
  exports: [
1281
- BsDropdownDirective,
1282
- BsDropdownToggleDirective,
1283
- BsDropdownMenuDirective
1965
+ BsFormatBytesPipe
1284
1966
  ]
1285
1967
  }]
1286
1968
  }] });
1287
1969
 
1288
- class BsDatepickerModule {
1970
+ class BsFileUploadModule {
1289
1971
  }
1290
- BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1291
- BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1292
- BsCalendarModule,
1293
- BsDropdownModule], exports: [BsDatepickerComponent] });
1294
- 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: [[
1295
1980
  CommonModule,
1296
- BsCalendarModule,
1297
- BsDropdownModule
1981
+ BsForModule,
1982
+ BsFormatBytesModule,
1983
+ BsProgressBarModule
1298
1984
  ]] });
1299
- 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: [{
1300
1986
  type: NgModule,
1301
1987
  args: [{
1302
1988
  declarations: [
1303
- BsDatepickerComponent
1989
+ BsFileUploadComponent,
1990
+ BsFileUploadTemplateDirective
1304
1991
  ],
1305
1992
  imports: [
1306
1993
  CommonModule,
1307
- BsCalendarModule,
1308
- BsDropdownModule
1994
+ BsForModule,
1995
+ BsFormatBytesModule,
1996
+ BsProgressBarModule
1309
1997
  ],
1310
1998
  exports: [
1311
- BsDatepickerComponent
1999
+ BsFileUploadComponent,
2000
+ BsFileUploadTemplateDirective
1312
2001
  ]
1313
2002
  }]
1314
2003
  }] });
@@ -1364,42 +2053,249 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1364
2053
  }]
1365
2054
  }] });
1366
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
+
1367
2217
  class BsMultiselectComponent {
1368
2218
  constructor() {
1369
2219
  this.items = [];
1370
2220
  this.selectedItems = [];
1371
2221
  }
1372
2222
  itemChange(item, event) {
1373
- if (!!event.target.checked) {
2223
+ if (event.target.checked) {
1374
2224
  this.selectedItems.push(item);
1375
2225
  }
1376
2226
  else {
1377
2227
  this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
1378
2228
  }
1379
2229
  }
1380
- ngOnInit() {
1381
- }
1382
2230
  }
1383
2231
  BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1384
- 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"] }] });
1385
2233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
1386
2234
  type: Component,
1387
- 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"] }]
1388
- }], ctorParameters: function () { return []; }, propDecorators: { template: [{
1389
- type: ContentChild,
1390
- args: [TemplateRef]
1391
- }], 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: [{
1392
2237
  type: Input
1393
2238
  }], selectedItems: [{
1394
2239
  type: Input
2240
+ }], defaultButtonTemplate: [{
2241
+ type: ViewChild,
2242
+ args: ['defaultButtonTemplate']
1395
2243
  }] } });
1396
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
+
1397
2287
  class BsMultiselectModule {
1398
2288
  }
1399
2289
  BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1400
- 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,
1401
2294
  BsDropdownModule,
1402
- FocusOnLoadModule], exports: [BsMultiselectComponent] });
2295
+ FocusOnLoadModule], exports: [BsMultiselectComponent,
2296
+ BsHeaderTemplateDirective,
2297
+ BsFooterTemplateDirective,
2298
+ BsButtonTemplateDirective] });
1403
2299
  BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
1404
2300
  CommonModule,
1405
2301
  BsDropdownModule,
@@ -1409,7 +2305,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1409
2305
  type: NgModule,
1410
2306
  args: [{
1411
2307
  declarations: [
1412
- BsMultiselectComponent
2308
+ BsMultiselectComponent,
2309
+ BsHeaderTemplateDirective,
2310
+ BsFooterTemplateDirective,
2311
+ BsButtonTemplateDirective
1413
2312
  ],
1414
2313
  imports: [
1415
2314
  CommonModule,
@@ -1417,7 +2316,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1417
2316
  FocusOnLoadModule,
1418
2317
  ],
1419
2318
  exports: [
1420
- BsMultiselectComponent
2319
+ BsMultiselectComponent,
2320
+ BsHeaderTemplateDirective,
2321
+ BsFooterTemplateDirective,
2322
+ BsButtonTemplateDirective
1421
2323
  ]
1422
2324
  }]
1423
2325
  }] });
@@ -1433,10 +2335,10 @@ class BsNavbarComponent {
1433
2335
  }
1434
2336
  }
1435
2337
  BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1436
- 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"] });
1437
2339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
1438
2340
  type: Component,
1439
- 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"] }]
1440
2342
  }], propDecorators: { nav: [{
1441
2343
  type: ViewChild,
1442
2344
  args: ['nav']
@@ -1509,12 +2411,9 @@ class BsNavbarItemComponent {
1509
2411
  this.anchorTag = null;
1510
2412
  this.parentDropdown = parentDropdown;
1511
2413
  }
1512
- ngOnInit() {
1513
- }
1514
2414
  ngAfterContentChecked() {
2415
+ this.anchorTag = this.element.nativeElement.querySelector('li a');
1515
2416
  if (this.hasDropdown) {
1516
- window.element = this.element.nativeElement;
1517
- this.anchorTag = this.element.nativeElement.querySelector('li a');
1518
2417
  (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
1519
2418
  if (this.anchorTag && !this.anchorTag.onclick) {
1520
2419
  this.anchorTag.onclick = (ev) => {
@@ -1531,6 +2430,20 @@ class BsNavbarItemComponent {
1531
2430
  };
1532
2431
  }
1533
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
+ }
1534
2447
  }
1535
2448
  }
1536
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 });
@@ -1549,6 +2462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1549
2462
 
1550
2463
  class BsNavbarDropdownComponent {
1551
2464
  constructor(parentDropdown, navbarItem) {
2465
+ this.autoclose = true;
1552
2466
  this.isVisible = false;
1553
2467
  this.parentDropdown = parentDropdown;
1554
2468
  this.navbarItem = navbarItem;
@@ -1556,11 +2470,9 @@ class BsNavbarDropdownComponent {
1556
2470
  get elementsToExclude() {
1557
2471
  return [this.navbarItem.anchorTag].filter((a) => a).map((a) => a);
1558
2472
  }
1559
- ngOnInit() {
1560
- }
1561
2473
  }
1562
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 });
1563
- 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"] }] });
1564
2476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarDropdownComponent, decorators: [{
1565
2477
  type: Component,
1566
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"] }]
@@ -1577,7 +2489,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1577
2489
  type: Inject,
1578
2490
  args: [forwardRef(() => BsNavbarItemComponent)]
1579
2491
  }] }];
1580
- }, propDecorators: { childDropdowns: [{
2492
+ }, propDecorators: { autoclose: [{
2493
+ type: Input
2494
+ }], childDropdowns: [{
1581
2495
  type: ContentChildren,
1582
2496
  args: [forwardRef(() => BsNavbarDropdownComponent), { descendants: true }]
1583
2497
  }] } });
@@ -1673,6 +2587,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1673
2587
  args: ['navbarContent']
1674
2588
  }] } });
1675
2589
 
2590
+ class BsNavbarBrandComponent {
2591
+ constructor() {
2592
+ this.routerLink = [];
2593
+ this.mxAuto = true;
2594
+ }
2595
+ }
2596
+ BsNavbarBrandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarBrandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2597
+ BsNavbarBrandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarBrandComponent, selector: "bs-navbar-brand", inputs: { routerLink: "routerLink" }, host: { properties: { "class.mx-auto": "this.mxAuto" } }, 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]" }] });
2598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarBrandComponent, decorators: [{
2599
+ type: Component,
2600
+ 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: [""] }]
2601
+ }], propDecorators: { routerLink: [{
2602
+ type: Input
2603
+ }], mxAuto: [{
2604
+ type: HostBinding,
2605
+ args: ['class.mx-auto']
2606
+ }] } });
2607
+
1676
2608
  class BsNavbarModule {
1677
2609
  }
1678
2610
  BsNavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1682,7 +2614,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1682
2614
  BsNavbarItemComponent,
1683
2615
  DropdownToggleDirective,
1684
2616
  NavLinkDirective,
1685
- NavbarContentDirective], imports: [CommonModule,
2617
+ NavbarContentDirective,
2618
+ BsNavbarBrandComponent], imports: [CommonModule,
1686
2619
  RouterModule,
1687
2620
  ClickOutsideModule], exports: [BsNavbarComponent,
1688
2621
  BsNavbarNavComponent,
@@ -1690,7 +2623,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1690
2623
  BsNavbarItemComponent,
1691
2624
  DropdownToggleDirective,
1692
2625
  NavLinkDirective,
1693
- NavbarContentDirective] });
2626
+ NavbarContentDirective,
2627
+ BsNavbarBrandComponent] });
1694
2628
  BsNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, imports: [[
1695
2629
  CommonModule,
1696
2630
  RouterModule,
@@ -1706,7 +2640,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1706
2640
  BsNavbarItemComponent,
1707
2641
  DropdownToggleDirective,
1708
2642
  NavLinkDirective,
1709
- NavbarContentDirective
2643
+ NavbarContentDirective,
2644
+ BsNavbarBrandComponent
1710
2645
  ],
1711
2646
  imports: [
1712
2647
  CommonModule,
@@ -1720,174 +2655,98 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1720
2655
  BsNavbarItemComponent,
1721
2656
  DropdownToggleDirective,
1722
2657
  NavLinkDirective,
1723
- NavbarContentDirective
2658
+ NavbarContentDirective,
2659
+ BsNavbarBrandComponent
1724
2660
  ]
1725
2661
  }]
1726
- }] });
1727
-
1728
- class BsProgressComponent {
1729
- constructor() {
1730
- this.progressClass = true;
1731
- this.height = null;
1732
- this.isIndeterminate = false;
1733
- }
1734
- }
1735
- BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1736
- 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"] }] });
1737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
1738
- type: Component,
1739
- 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"] }]
1740
- }], propDecorators: { progressClass: [{
1741
- type: HostBinding,
1742
- args: ['class.progress']
1743
- }], height: [{
1744
- type: Input
1745
- }, {
1746
- type: HostBinding,
1747
- args: ['style.height.px']
1748
- }], isIndeterminate: [{
1749
- type: Input
1750
- }] } });
1751
-
1752
- class BsProgressBarComponent {
1753
- constructor() {
1754
- this.destroyed$ = new Subject();
1755
- this.minimum$ = new BehaviorSubject(0);
1756
- this.maximum$ = new BehaviorSubject(100);
1757
- this.value$ = new BehaviorSubject(50);
1758
- this.color$ = new BehaviorSubject(Color.primary);
1759
- this.striped = false;
1760
- this.animated = false;
1761
- this.progressBar = true;
1762
- this.colorClass = 'bg-primary';
1763
- this.widthStyle = '0';
1764
- this.role = 'progressbar';
1765
- this.valueNow = 50;
1766
- this.valueMin = 0;
1767
- this.valueMax = 100;
1768
- this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
1769
- .pipe(map(([minimum, maximum, value]) => {
1770
- return (value - minimum) / (maximum - minimum) * 100;
1771
- }));
1772
- this.width$ = this.percentage$
1773
- .pipe(map((width) => {
1774
- return String(width) + '%';
1775
- }));
1776
- this.colorClass$ = this.color$
1777
- .pipe(map((color) => {
1778
- const name = Color[color];
1779
- return `bg-${name}`;
2662
+ }] });
2663
+
2664
+ class BsRatingComponent {
2665
+ constructor() {
2666
+ this.destroyed$ = new Subject();
2667
+ this.maximum$ = new BehaviorSubject(5);
2668
+ this.value$ = new BehaviorSubject(3);
2669
+ this.previewValue$ = new BehaviorSubject(null);
2670
+ //#endregion
2671
+ //#region Value
2672
+ this.valueChange = new EventEmitter();
2673
+ this.starsChange = new EventEmitter();
2674
+ this.stars$ = combineLatest([this.maximum$, this.previewValue$, this.value$])
2675
+ .pipe(map(([maximum, previewValue, value]) => {
2676
+ const v = previewValue !== null && previewValue !== void 0 ? previewValue : value;
2677
+ return [
2678
+ ...[...Array(v).keys()].map(i => true),
2679
+ ...[...Array(maximum - v).keys()].map(i => false)
2680
+ ];
1780
2681
  }));
1781
- this.colorClass$
1782
- .pipe(takeUntil(this.destroyed$))
1783
- .subscribe((color) => {
1784
- this.colorClass = color;
1785
- });
1786
- this.width$
1787
- .pipe(takeUntil(this.destroyed$))
1788
- .subscribe((width) => {
1789
- this.widthStyle = width;
1790
- });
1791
- this.value$
2682
+ combineLatest([this.previewValue$, this.value$])
1792
2683
  .pipe(takeUntil(this.destroyed$))
1793
- .subscribe((value) => {
1794
- this.valueNow = value;
1795
- });
1796
- this.minimum$
1797
- .pipe(takeUntil(this.destroyed$))
1798
- .subscribe((value) => {
1799
- this.valueMin = value;
1800
- });
1801
- this.maximum$
1802
- .pipe(takeUntil(this.destroyed$))
1803
- .subscribe((value) => {
1804
- this.valueMax = value;
2684
+ .subscribe(([previewValue, value]) => {
2685
+ const v = previewValue !== null && previewValue !== void 0 ? previewValue : value;
2686
+ this.starsChange.emit(v);
1805
2687
  });
1806
2688
  }
1807
- set minimum(value) {
1808
- this.minimum$.next(value);
1809
- }
2689
+ //#region Maximum
1810
2690
  set maximum(value) {
1811
2691
  this.maximum$.next(value);
1812
2692
  }
2693
+ get value() {
2694
+ return this.value$.value;
2695
+ }
1813
2696
  set value(value) {
1814
2697
  this.value$.next(value);
2698
+ this.valueChange.emit(value);
1815
2699
  }
1816
- set color(value) {
1817
- this.color$.next(value);
1818
- }
2700
+ //#endregion
1819
2701
  ngOnDestroy() {
1820
2702
  this.destroyed$.next(true);
1821
2703
  }
2704
+ hoverValue(index) {
2705
+ this.previewValue$.next(index + 1);
2706
+ }
2707
+ selectValue(index) {
2708
+ this.value = index + 1;
2709
+ }
2710
+ onMouseLeave() {
2711
+ this.previewValue$.next(null);
2712
+ }
1822
2713
  }
1823
- BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1824
- 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: [""] });
1825
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
2714
+ BsRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2715
+ 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 } });
2716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, decorators: [{
1826
2717
  type: Component,
1827
- args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
1828
- }], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
1829
- type: Input
1830
- }], maximum: [{
2718
+ 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: [""] }]
2719
+ }], ctorParameters: function () { return []; }, propDecorators: { maximum: [{
1831
2720
  type: Input
2721
+ }], valueChange: [{
2722
+ type: Output
2723
+ }], starsChange: [{
2724
+ type: Output
1832
2725
  }], value: [{
1833
2726
  type: Input
1834
- }], color: [{
1835
- type: Input
1836
- }], striped: [{
1837
- type: Input
1838
- }, {
1839
- type: HostBinding,
1840
- args: ['class.progress-bar-striped']
1841
- }], animated: [{
1842
- type: Input
1843
- }, {
1844
- type: HostBinding,
1845
- args: ['class.progress-bar-animated']
1846
- }], progressBar: [{
1847
- type: HostBinding,
1848
- args: ['class.progress-bar']
1849
- }], colorClass: [{
1850
- type: HostBinding,
1851
- args: ['class']
1852
- }], widthStyle: [{
1853
- type: HostBinding,
1854
- args: ['style.width']
1855
- }], role: [{
1856
- type: HostBinding,
1857
- args: ['attr.role']
1858
- }], valueNow: [{
1859
- type: HostBinding,
1860
- args: ['attr.aria-valuenow']
1861
- }], valueMin: [{
1862
- type: HostBinding,
1863
- args: ['attr.aria-valuemin']
1864
- }], valueMax: [{
1865
- type: HostBinding,
1866
- args: ['attr.aria-valuemax']
2727
+ }], onMouseLeave: [{
2728
+ type: HostListener,
2729
+ args: ['mouseleave']
1867
2730
  }] } });
1868
2731
 
1869
- class BsProgressBarModule {
2732
+ class BsRatingModule {
1870
2733
  }
1871
- BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1872
- BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
1873
- BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
1874
- BsProgressComponent] });
1875
- BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
2734
+ BsRatingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2735
+ BsRatingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, declarations: [BsRatingComponent], imports: [CommonModule], exports: [BsRatingComponent] });
2736
+ BsRatingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, imports: [[
1876
2737
  CommonModule
1877
2738
  ]] });
1878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
2739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, decorators: [{
1879
2740
  type: NgModule,
1880
2741
  args: [{
1881
2742
  declarations: [
1882
- BsProgressBarComponent,
1883
- BsProgressComponent
2743
+ BsRatingComponent
1884
2744
  ],
1885
2745
  imports: [
1886
2746
  CommonModule
1887
2747
  ],
1888
2748
  exports: [
1889
- BsProgressBarComponent,
1890
- BsProgressComponent
2749
+ BsRatingComponent
1891
2750
  ]
1892
2751
  }]
1893
2752
  }] });
@@ -2105,8 +2964,6 @@ class BsSelect2Component {
2105
2964
  this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
2106
2965
  this.focus();
2107
2966
  }
2108
- ngOnInit() {
2109
- }
2110
2967
  onResize() {
2111
2968
  this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);
2112
2969
  }
@@ -2115,11 +2972,14 @@ class BsSelect2Component {
2115
2972
  }
2116
2973
  }
2117
2974
  BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
2118
- 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 } });
2975
+ 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 } });
2119
2976
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSelect2Component, decorators: [{
2120
2977
  type: Component,
2121
- 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"] }]
2122
- }], ctorParameters: function () { return []; }, propDecorators: { searchBox: [{
2978
+ 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"] }]
2979
+ }], propDecorators: { defaultItemTemplate: [{
2980
+ type: ViewChild,
2981
+ args: ['defaultItemTemplate', { static: true }]
2982
+ }], searchBox: [{
2123
2983
  type: ViewChild,
2124
2984
  args: ['searchBox']
2125
2985
  }], itemsBox: [{
@@ -2142,9 +3002,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2142
3002
  }], focus: [{
2143
3003
  type: HostListener,
2144
3004
  args: ['click']
2145
- }], defaultItemTemplate: [{
2146
- type: ViewChild,
2147
- args: ['defaultItemTemplate', { static: true }]
2148
3005
  }] } });
2149
3006
 
2150
3007
  class BsItemTemplateDirective {
@@ -2219,163 +3076,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2219
3076
  }]
2220
3077
  }] });
2221
3078
 
2222
- const SNACKBAR_CONTENT = new InjectionToken('SnackbarContent');
2223
-
2224
- class BsSnackbarComponent {
2225
- constructor(content) {
2226
- this.displayBlock = true;
2227
- this.width100 = true;
2228
- this.instance = null;
2229
- //#region Monitor @slideUpDown hooks
2230
- this.animationState = '';
2231
- this.animationStateChanged = new EventEmitter();
2232
- this.content = content;
2233
- }
2234
- onAnimationChanged(event) {
2235
- this.animationStateChanged.emit(event);
2236
- }
2237
- }
2238
- BsSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, deps: [{ token: SNACKBAR_CONTENT }], target: i0.ɵɵFactoryTarget.Component });
2239
- 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] });
2240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarComponent, decorators: [{
2241
- type: Component,
2242
- 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"] }]
2243
- }], ctorParameters: function () {
2244
- return [{ type: i0.TemplateRef, decorators: [{
2245
- type: Inject,
2246
- args: [SNACKBAR_CONTENT]
2247
- }] }];
2248
- }, propDecorators: { displayBlock: [{
2249
- type: HostBinding,
2250
- args: ['class.d-block']
2251
- }], width100: [{
2252
- type: HostBinding,
2253
- args: ['class.w-100']
2254
- }] } });
2255
-
2256
- class BsSnackbarService {
2257
- constructor(overlay, parentInjector, componentFactoryResolver) {
2258
- this.overlay = overlay;
2259
- this.parentInjector = parentInjector;
2260
- this.componentFactoryResolver = componentFactoryResolver;
2261
- }
2262
- show(template) {
2263
- const injector = Injector.create({
2264
- providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],
2265
- parent: this.parentInjector
2266
- });
2267
- const portal = new ComponentPortal(BsSnackbarComponent, null, injector, this.componentFactoryResolver);
2268
- const overlayRef = this.overlay.create({
2269
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
2270
- positionStrategy: this.overlay.position()
2271
- .global().centerHorizontally().bottom('0'),
2272
- width: '100%'
2273
- });
2274
- const componentInstance = overlayRef.attach(portal);
2275
- componentInstance.instance['instance'] = {
2276
- component: componentInstance,
2277
- overlay: overlayRef
2278
- };
2279
- return componentInstance.instance;
2280
- }
2281
- hide(snackbar) {
2282
- snackbar.animationStateChanged.pipe(filter(ev => ev.phaseName === 'done' && ev.toState === 'void'), take(1)).subscribe(() => {
2283
- var _a;
2284
- (_a = snackbar['instance']) === null || _a === void 0 ? void 0 : _a.overlay.dispose();
2285
- });
2286
- snackbar.animationState = 'void';
2287
- }
2288
- }
2289
- 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 });
2290
- BsSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, providedIn: 'root' });
2291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarService, decorators: [{
2292
- type: Injectable,
2293
- args: [{
2294
- providedIn: 'root'
2295
- }]
2296
- }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
2297
-
2298
- class BsSnackbarCloseDirective {
2299
- constructor(snackbarService) {
2300
- this.snackbarService = snackbarService;
2301
- }
2302
- onClick() {
2303
- this.snackbarService.hide(this.bsSnackbarClose);
2304
- }
2305
- }
2306
- BsSnackbarCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, deps: [{ token: BsSnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
2307
- 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 });
2308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarCloseDirective, decorators: [{
2309
- type: Directive,
2310
- args: [{
2311
- selector: '[bsSnackbarClose]'
2312
- }]
2313
- }], ctorParameters: function () { return [{ type: BsSnackbarService }]; }, propDecorators: { bsSnackbarClose: [{
2314
- type: Input
2315
- }], onClick: [{
2316
- type: HostListener,
2317
- args: ['click']
2318
- }] } });
2319
-
2320
- class BsSnackbarModule {
2321
- }
2322
- BsSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2323
- BsSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, declarations: [BsSnackbarComponent,
2324
- BsSnackbarCloseDirective], imports: [CommonModule], exports: [BsSnackbarComponent,
2325
- BsSnackbarCloseDirective] });
2326
- BsSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, providers: [
2327
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2328
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2329
- ], imports: [[
2330
- CommonModule
2331
- ]] });
2332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsSnackbarModule, decorators: [{
2333
- type: NgModule,
2334
- args: [{
2335
- declarations: [
2336
- BsSnackbarComponent,
2337
- BsSnackbarCloseDirective
2338
- ],
2339
- imports: [
2340
- CommonModule
2341
- ],
2342
- exports: [
2343
- BsSnackbarComponent,
2344
- BsSnackbarCloseDirective
2345
- ],
2346
- providers: [
2347
- // { provide: BsSnackbarComponent, useExisting: forwardRef(() => BsSnackbarComponent) }
2348
- // { provide: BsSnackbarComponent, useClass: BsSnackbarComponent }
2349
- ]
2350
- }]
2351
- }] });
2352
-
2353
3079
  class BsTabPageComponent {
2354
3080
  constructor(tabControl) {
2355
3081
  this.disabled = false;
2356
3082
  this.tabControl = tabControl;
2357
3083
  }
2358
- ngOnInit() {
2359
- }
2360
3084
  }
2361
3085
  BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
2362
3086
  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"] }] });
2363
3087
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
2364
3088
  type: Component,
2365
3089
  args: [{ selector: 'bs-tab-page', template: "<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>", styles: [""] }]
2366
- }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { headerTemplate: [{
3090
+ }], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { disabled: [{
3091
+ type: Input
3092
+ }], headerTemplate: [{
2367
3093
  type: ContentChild,
2368
3094
  args: [TemplateRef]
2369
- }], disabled: [{
2370
- type: Input
2371
3095
  }] } });
2372
3096
 
2373
3097
  class BsTabControlComponent {
2374
3098
  constructor() {
3099
+ this.border = true;
2375
3100
  this.activeTab = null;
2376
3101
  }
2377
- ngOnInit() {
2378
- }
2379
3102
  setActiveTab(tab) {
2380
3103
  if (!tab.disabled) {
2381
3104
  this.activeTab = tab;
@@ -2384,13 +3107,15 @@ class BsTabControlComponent {
2384
3107
  }
2385
3108
  }
2386
3109
  BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2387
- 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"] }] });
3110
+ 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"] }] });
2388
3111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
2389
3112
  type: Component,
2390
- 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: [""] }]
2391
- }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
3113
+ 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"] }]
3114
+ }], propDecorators: { tabPages: [{
2392
3115
  type: ContentChildren,
2393
3116
  args: [BsTabPageComponent]
3117
+ }], border: [{
3118
+ type: Input
2394
3119
  }] } });
2395
3120
 
2396
3121
  class BsTabControlModule {
@@ -2424,14 +3149,11 @@ class BsToggleButtonComponent {
2424
3149
  this.disableAnimations = true;
2425
3150
  //#region isToggled
2426
3151
  this._isToggled = false;
3152
+ this.change = new EventEmitter();
2427
3153
  this.isToggledChange = new EventEmitter();
2428
3154
  //#endregion
2429
- this.offColor = '#CCCCCC';
2430
- this.onColor = '#2196F3';
2431
- this.round = true;
2432
- }
2433
- ngAfterViewInit() {
2434
- this.disableAnimations = false;
3155
+ //#region disabled
3156
+ this.disabled = false;
2435
3157
  }
2436
3158
  get isToggled() {
2437
3159
  return this._isToggled;
@@ -2440,21 +3162,28 @@ class BsToggleButtonComponent {
2440
3162
  this._isToggled = value;
2441
3163
  this.isToggledChange.emit(this._isToggled);
2442
3164
  }
3165
+ //#endregion
3166
+ onChange(event) {
3167
+ const val = event.target.checked;
3168
+ this.isToggled = val;
3169
+ this.change.emit(val);
3170
+ }
3171
+ ngAfterViewInit() {
3172
+ this.disableAnimations = false;
3173
+ }
2443
3174
  }
2444
3175
  BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2445
- 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] });
3176
+ 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] });
2446
3177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
2447
3178
  type: Component,
2448
- 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"] }]
2449
- }], propDecorators: { isToggledChange: [{
3179
+ 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: [""] }]
3180
+ }], propDecorators: { change: [{
3181
+ type: Output
3182
+ }], isToggledChange: [{
2450
3183
  type: Output
2451
3184
  }], isToggled: [{
2452
3185
  type: Input
2453
- }], offColor: [{
2454
- type: Input
2455
- }], onColor: [{
2456
- type: Input
2457
- }], round: [{
3186
+ }], disabled: [{
2458
3187
  type: Input
2459
3188
  }] } });
2460
3189
 
@@ -2600,20 +3329,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2600
3329
  }, {
2601
3330
  type: SkipSelf
2602
3331
  }] }];
2603
- }, propDecorators: { onBlur: [{
3332
+ }, propDecorators: { bsTooltip: [{
3333
+ type: Input
3334
+ }], onBlur: [{
2604
3335
  type: HostListener,
2605
3336
  args: ['window:blur']
2606
- }], bsTooltip: [{
2607
- type: Input
2608
3337
  }] } });
2609
3338
 
2610
3339
  class BsTooltipModule {
2611
3340
  }
2612
3341
  BsTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2613
3342
  BsTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, declarations: [BsTooltipDirective,
2614
- BsTooltipComponent], imports: [CommonModule], exports: [BsTooltipDirective] });
3343
+ BsTooltipComponent], imports: [CommonModule,
3344
+ OverlayModule], exports: [BsTooltipDirective] });
2615
3345
  BsTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, imports: [[
2616
- CommonModule
3346
+ CommonModule,
3347
+ OverlayModule
2617
3348
  ]] });
2618
3349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTooltipModule, decorators: [{
2619
3350
  type: NgModule,
@@ -2623,7 +3354,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2623
3354
  BsTooltipComponent
2624
3355
  ],
2625
3356
  imports: [
2626
- CommonModule
3357
+ CommonModule,
3358
+ OverlayModule
2627
3359
  ],
2628
3360
  exports: [
2629
3361
  BsTooltipDirective
@@ -2685,7 +3417,7 @@ class BsTypeaheadComponent {
2685
3417
  }
2686
3418
  }
2687
3419
  BsTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2688
- 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 } });
3420
+ 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 } });
2689
3421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsTypeaheadComponent, decorators: [{
2690
3422
  type: Component,
2691
3423
  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"] }]
@@ -2794,5 +3526,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2794
3526
  * Generated bundle index. Do not edit.
2795
3527
  */
2796
3528
 
2797
- 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 };
3529
+ 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 };
2798
3530
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map