@mintplayer/ng-bootstrap 13.1.6 → 13.1.7

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 (35) hide show
  1. package/esm2020/lib/components/calendar/calendar.component.mjs +77 -34
  2. package/esm2020/lib/components/datepicker/datepicker.component.mjs +22 -0
  3. package/esm2020/lib/components/datepicker/datepicker.module.mjs +34 -0
  4. package/esm2020/lib/components/datepicker/index.mjs +3 -0
  5. package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +31 -0
  6. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +64 -0
  7. package/esm2020/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.mjs +29 -0
  8. package/esm2020/lib/components/dropdown/dropdown.module.mjs +40 -0
  9. package/esm2020/lib/components/dropdown/index.mjs +5 -0
  10. package/esm2020/lib/components/index.mjs +4 -1
  11. package/esm2020/lib/components/multiselect/index.mjs +3 -0
  12. package/esm2020/lib/components/multiselect/multiselect.component.mjs +33 -0
  13. package/esm2020/lib/components/multiselect/multiselect.module.mjs +30 -0
  14. package/esm2020/lib/components/navbar/nav-link/nav-link.directive.mjs +1 -1
  15. package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +2 -2
  16. package/esm2020/lib/pipes/month-name/month-name.pipe.mjs +7 -2
  17. package/fesm2015/mintplayer-ng-bootstrap.mjs +339 -54
  18. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  19. package/fesm2020/mintplayer-ng-bootstrap.mjs +337 -54
  20. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  21. package/lib/components/calendar/calendar.component.d.ts +21 -13
  22. package/lib/components/datepicker/datepicker.component.d.ts +10 -0
  23. package/lib/components/datepicker/datepicker.module.d.ts +10 -0
  24. package/lib/components/datepicker/index.d.ts +2 -0
  25. package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +13 -0
  26. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +17 -0
  27. package/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.d.ts +11 -0
  28. package/lib/components/dropdown/dropdown.module.d.ts +11 -0
  29. package/lib/components/dropdown/index.d.ts +4 -0
  30. package/lib/components/index.d.ts +3 -0
  31. package/lib/components/multiselect/index.d.ts +2 -0
  32. package/lib/components/multiselect/multiselect.component.d.ts +11 -0
  33. package/lib/components/multiselect/multiselect.module.d.ts +9 -0
  34. package/lib/pipes/month-name/month-name.pipe.d.ts +1 -1
  35. package/package.json +2 -1
@@ -31,10 +31,10 @@ export class BsScrollspyComponent {
31
31
  }
32
32
  }
33
33
  BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
34
- BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
34
+ BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
37
+ args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
38
38
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
39
39
  type: Inject,
40
40
  args: [DOCUMENT]
@@ -2,7 +2,12 @@ import { Pipe } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class MonthNamePipe {
4
4
  transform(date, ...args) {
5
- return date.toLocaleString("default", { month: 'long' });
5
+ if (date) {
6
+ return date.toLocaleString("default", { month: 'long' });
7
+ }
8
+ else {
9
+ return '';
10
+ }
6
11
  }
7
12
  }
8
13
  MonthNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonthNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
@@ -13,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
13
18
  name: 'monthName'
14
19
  }]
15
20
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtbmFtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL3BpcGVzL21vbnRoLW5hbWUvbW9udGgtbmFtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sYUFBYTtJQUV4QixTQUFTLENBQUMsSUFBVSxFQUFFLEdBQUcsSUFBVztRQUNsQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7MEdBSlUsYUFBYTt3R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBSHpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdtb250aE5hbWUnXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoTmFtZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oZGF0ZTogRGF0ZSwgLi4uYXJnczogYW55W10pIHtcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyBtb250aDogJ2xvbmcnIH0pO1xuICB9XG5cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtbmFtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL3BpcGVzL21vbnRoLW5hbWUvbW9udGgtbmFtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sYUFBYTtJQUV4QixTQUFTLENBQUMsSUFBaUIsRUFBRSxHQUFHLElBQVc7UUFDekMsSUFBSSxJQUFJLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDMUQ7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOzswR0FSVSxhQUFhO3dHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ21vbnRoTmFtZSdcbn0pXG5leHBvcnQgY2xhc3MgTW9udGhOYW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShkYXRlOiBEYXRlIHwgbnVsbCwgLi4uYXJnczogYW55W10pIHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoXCJkZWZhdWx0XCIsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -1,14 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, NgModule, Injectable, Pipe, Directive, ContentChildren, EventEmitter, Output, ViewChild, Optional, forwardRef, SkipSelf, Host, Inject, TemplateRef, ContentChild, HostListener } from '@angular/core';
2
+ import { Component, Input, NgModule, Injectable, Pipe, EventEmitter, Output, Directive, ContentChildren, ViewChild, Optional, forwardRef, SkipSelf, Host, Inject, TemplateRef, ContentChild, HostListener } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
5
  import { SlideUpDownAnimation, FadeInOutAnimation, CarouselSlideAnimation } from '@mintplayer/ng-animations';
6
- import { Subject, BehaviorSubject, Observable, combineLatest, takeUntil as takeUntil$1, map as map$1 } from 'rxjs';
7
- import { map, takeUntil, take } from 'rxjs/operators';
6
+ import { Subject, BehaviorSubject, map, takeUntil, filter, take, Observable, combineLatest } from 'rxjs';
7
+ import { map as map$1, takeUntil as takeUntil$1, take as take$1 } from 'rxjs/operators';
8
8
  import { RouterModule } from '@angular/router';
9
9
  import * as i1$1 from '@mintplayer/ng-click-outside';
10
10
  import { ClickOutsideModule } from '@mintplayer/ng-click-outside';
11
11
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
12
+ import { TemplatePortal } from '@angular/cdk/portal';
13
+ import * as i1$2 from '@angular/cdk/overlay';
14
+ import { OverlayModule } from '@angular/cdk/overlay';
12
15
 
13
16
  var Color;
14
17
  (function (Color) {
@@ -229,7 +232,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
229
232
 
230
233
  class MonthNamePipe {
231
234
  transform(date, ...args) {
232
- return date.toLocaleString("default", { month: 'long' });
235
+ if (date) {
236
+ return date.toLocaleString("default", { month: 'long' });
237
+ }
238
+ else {
239
+ return '';
240
+ }
233
241
  }
234
242
  }
235
243
  MonthNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonthNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
@@ -242,58 +250,100 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
242
250
  }] });
243
251
 
244
252
  class BsCalendarComponent {
245
- constructor(calendarMonthService) {
253
+ constructor(calendarMonthService, ref) {
246
254
  this.calendarMonthService = calendarMonthService;
247
- this.daysOfWeek = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
255
+ this.ref = ref;
256
+ this.destroyed$ = new Subject();
257
+ //#region CurrentMonth
258
+ this.currentMonth$ = new BehaviorSubject(new Date());
259
+ this.currentMonthChange = new EventEmitter();
260
+ //#endregion
248
261
  //#region SelectedDate
249
- this.selectedDate = new Date();
262
+ this.selectedDate$ = new BehaviorSubject(new Date());
263
+ this.selectedDateChange = new EventEmitter();
250
264
  //#endregion
251
- //#region Weeks
252
- this._weeks = [];
265
+ this.daysOfWeek = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
266
+ this.weeks$ = this.currentMonth$
267
+ .pipe(map((month) => this.calendarMonthService.getWeeks(month)))
268
+ .pipe(takeUntil(this.destroyed$));
269
+ this.daysOfWeek$ = this.weeks$
270
+ .pipe(filter((weeks) => weeks.length > 1))
271
+ .pipe(map((weeks) => weeks[1].week))
272
+ .pipe(map((week) => {
273
+ const firstDay = week[0];
274
+ if (firstDay) {
275
+ return week.map((d) => {
276
+ const date = new Date(firstDay.date.getFullYear(), firstDay.date.getMonth(), d === null || d === void 0 ? void 0 : d.dayOfMonth);
277
+ return date.toLocaleString('default', { weekday: 'short' });
278
+ });
279
+ }
280
+ else {
281
+ return [];
282
+ }
283
+ }));
284
+ this.selectedDate$.pipe(takeUntil(this.destroyed$)).subscribe((date) => {
285
+ this.selectedDateChange.emit(date);
286
+ });
287
+ this.currentMonth$.pipe(takeUntil(this.destroyed$)).subscribe((month) => {
288
+ this.currentMonthChange.emit(month);
289
+ });
253
290
  }
254
- ngOnInit() {
255
- this.month = new Date();
291
+ get currentMonth() {
292
+ return this.currentMonth$.value;
256
293
  }
257
- get month() {
258
- return this._month;
294
+ set currentMonth(value) {
295
+ this.currentMonth$.next(value);
259
296
  }
260
- set month(value) {
261
- this._month = value;
262
- this.weeks = this.calendarMonthService.getWeeks(this.month);
297
+ get selectedDate() {
298
+ return this.selectedDate$.value;
263
299
  }
264
- get weeks() {
265
- return this._weeks;
300
+ set selectedDate(value) {
301
+ this.selectedDate$.next(value);
266
302
  }
267
- set weeks(value) {
268
- this._weeks = value;
269
- if (this._weeks.length > 1) {
270
- this.daysOfWeek = this._weeks[1].week.map(d => {
271
- let date = new Date(this.month.getFullYear(), this.month.getMonth(), d === null || d === void 0 ? void 0 : d.dayOfMonth);
272
- return date.toLocaleString("default", { weekday: 'short' });
273
- });
274
- }
303
+ ngOnDestroy() {
304
+ this.destroyed$.next(true);
275
305
  }
276
- //#endregion
277
306
  previousMonth() {
278
- this.month = new Date(this.month.getFullYear(), this.month.getMonth() - 1, 1);
307
+ this.currentMonth$.pipe(take(1)).subscribe((month) => {
308
+ this.currentMonth$.next(new Date(month.getFullYear(), month.getMonth() - 1, 1));
309
+ });
279
310
  return false;
280
311
  }
281
312
  nextMonth() {
282
- this.month = new Date(this.month.getFullYear(), this.month.getMonth() + 1, 1);
313
+ this.currentMonth$.pipe(take(1)).subscribe((month) => {
314
+ this.currentMonth$.next(new Date(month.getFullYear(), month.getMonth() + 1, 1));
315
+ });
283
316
  return false;
284
317
  }
285
318
  isSameDate(date1, date2) {
286
- return (date1.getFullYear() === date2.getFullYear())
287
- && (date1.getMonth() === date2.getMonth())
288
- && (date1.getDate() === date2.getDate());
319
+ if (date1 === null && date2 === null)
320
+ return true;
321
+ if (date1 === null || date2 === null)
322
+ return false;
323
+ return (date1.getFullYear() === date2.getFullYear() &&
324
+ date1.getMonth() === date2.getMonth() &&
325
+ date1.getDate() === date2.getDate());
326
+ }
327
+ goto(day) {
328
+ if (day) {
329
+ this.selectedDate$.next(day.date);
330
+ }
289
331
  }
290
332
  }
291
- BsCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarComponent, deps: [{ token: BsCalendarMonthService }], target: i0.ɵɵFactoryTarget.Component });
292
- BsCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsCalendarComponent, selector: "bs-calendar", ngImport: i0, template: "<table class=\"table w-auto\">\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 {{ month | monthName | ucFirst }}\n {{ month.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\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate, day.date)\" *ngFor=\"let day of week.week\" (click)=\"day && selectedDate = day.date\">\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)}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 } });
333
+ 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 });
334
+ 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 } });
293
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsCalendarComponent, decorators: [{
294
336
  type: Component,
295
- args: [{ selector: 'bs-calendar', template: "<table class=\"table w-auto\">\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 {{ month | monthName | ucFirst }}\n {{ month.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\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate, day.date)\" *ngFor=\"let day of week.week\" (click)=\"day && selectedDate = day.date\">\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)}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"] }]
296
- }], ctorParameters: function () { return [{ type: BsCalendarMonthService }]; } });
337
+ 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"] }]
338
+ }], ctorParameters: function () { return [{ type: BsCalendarMonthService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { currentMonthChange: [{
339
+ type: Output
340
+ }], currentMonth: [{
341
+ type: Input
342
+ }], selectedDateChange: [{
343
+ type: Output
344
+ }], selectedDate: [{
345
+ type: Input
346
+ }] } });
297
347
 
298
348
  class BsMonthNamePipeModule {
299
349
  }
@@ -429,14 +479,14 @@ class BsCarouselComponent {
429
479
  this.destroyed$ = new Subject();
430
480
  this.currentImageCounter$ = new BehaviorSubject(-1);
431
481
  this.currentImageIndex$ = this.currentImageCounter$
432
- .pipe(map((counter) => {
482
+ .pipe(map$1((counter) => {
433
483
  const l = this.images.length;
434
484
  return ((counter % l) + l) % l;
435
485
  }))
436
- .pipe(takeUntil(this.destroyed$));
486
+ .pipe(takeUntil$1(this.destroyed$));
437
487
  this.currentImage$ = this.currentImageIndex$
438
- .pipe(map((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; }))
439
- .pipe(takeUntil(this.destroyed$));
488
+ .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; }))
489
+ .pipe(takeUntil$1(this.destroyed$));
440
490
  }
441
491
  ngOnInit() { }
442
492
  ngOnDestroy() {
@@ -452,14 +502,14 @@ class BsCarouselComponent {
452
502
  }
453
503
  previousImage() {
454
504
  this.currentImageCounter$
455
- .pipe(take(1))
505
+ .pipe(take$1(1))
456
506
  .subscribe((currentImageCounter) => {
457
507
  this.currentImageCounter$.next(currentImageCounter - 1);
458
508
  });
459
509
  }
460
510
  nextImage() {
461
511
  this.currentImageCounter$
462
- .pipe(take(1))
512
+ .pipe(take$1(1))
463
513
  .subscribe((currentImageCounter) => {
464
514
  this.currentImageCounter$.next(currentImageCounter + 1);
465
515
  });
@@ -588,8 +638,8 @@ class BsPaginationComponent {
588
638
  this.destroyed$ = new Subject();
589
639
  this.visibleNumberOfNumberBoxes$ =
590
640
  combineLatest([this.numberOfBoxes$, this.pageNumbers$, this.showArrows$])
591
- .pipe(takeUntil$1(this.destroyed$))
592
- .pipe(map$1(([numberOfBoxes, pageNumbers, showArrows]) => {
641
+ .pipe(takeUntil(this.destroyed$))
642
+ .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
593
643
  if (numberOfBoxes <= 0) {
594
644
  return pageNumbers.length;
595
645
  }
@@ -605,8 +655,8 @@ class BsPaginationComponent {
605
655
  }));
606
656
  this.shownPageNumbers$ =
607
657
  combineLatest([this.pageNumbers$, this.selectedPageNumber$, this.visibleNumberOfNumberBoxes$])
608
- .pipe(takeUntil$1(this.destroyed$))
609
- .pipe(map$1(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
658
+ .pipe(takeUntil(this.destroyed$))
659
+ .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
610
660
  let startIndex = 0;
611
661
  const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
612
662
  if (pageNumbers.indexOf(selectedPageNumber) < half) {
@@ -627,18 +677,18 @@ class BsPaginationComponent {
627
677
  }));
628
678
  this.isFirstPage$ =
629
679
  combineLatest([this.pageNumbers$, this.selectedPageNumber$])
630
- .pipe(takeUntil$1(this.destroyed$))
631
- .pipe(map$1(([pageNumbers, selectedPageNumber]) => {
680
+ .pipe(takeUntil(this.destroyed$))
681
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
632
682
  return pageNumbers.indexOf(selectedPageNumber) === 0;
633
683
  }));
634
684
  this.isLastPage$ =
635
685
  combineLatest([this.pageNumbers$, this.selectedPageNumber$])
636
- .pipe(takeUntil$1(this.destroyed$))
637
- .pipe(map$1(([pageNumbers, selectedPageNumber]) => {
686
+ .pipe(takeUntil(this.destroyed$))
687
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
638
688
  return pageNumbers.indexOf(selectedPageNumber) === (pageNumbers.length - 1);
639
689
  }));
640
690
  this.selectedPageNumber$
641
- .pipe(takeUntil$1(this.destroyed$))
691
+ .pipe(takeUntil(this.destroyed$))
642
692
  .subscribe((selectedPageNumber) => {
643
693
  this.selectedPageNumberChange.emit(selectedPageNumber);
644
694
  });
@@ -1343,10 +1393,10 @@ class BsScrollspyComponent {
1343
1393
  }
1344
1394
  }
1345
1395
  BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
1346
- BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1396
+ BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1347
1397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
1348
1398
  type: Component,
1349
- args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
1399
+ args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:25%;overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
1350
1400
  }], ctorParameters: function () {
1351
1401
  return [{ type: undefined, decorators: [{
1352
1402
  type: Inject,
@@ -1386,9 +1436,244 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1386
1436
  }]
1387
1437
  }] });
1388
1438
 
1439
+ class BsDropdownMenuDirective {
1440
+ constructor(dropdown, document, viewContainerRef, templateRef, overlay) {
1441
+ this.dropdown = dropdown;
1442
+ this.viewContainerRef = viewContainerRef;
1443
+ this.templateRef = templateRef;
1444
+ this.overlay = overlay;
1445
+ this.destroyed$ = new Subject();
1446
+ this.overlayRef = null;
1447
+ this.templatePortal = null;
1448
+ this.document = document;
1449
+ this.dropdown.isOpen$
1450
+ .pipe(takeUntil(this.destroyed$))
1451
+ .subscribe((isOpen) => {
1452
+ if (isOpen) {
1453
+ this.overlayRef = this.overlay.create({
1454
+ hasBackdrop: this.dropdown.hasBackdrop,
1455
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
1456
+ positionStrategy: this.overlay.position()
1457
+ .flexibleConnectedTo(this.dropdown.toggle.toggleButton)
1458
+ .withPositions([
1459
+ { originX: "start", "originY": "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
1460
+ { originX: "start", "originY": "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
1461
+ ]),
1462
+ });
1463
+ this.overlayRef.backdropClick().subscribe(() => this.dropdown.isOpen$.next(false));
1464
+ this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
1465
+ this.overlayRef.attach(this.templatePortal);
1466
+ }
1467
+ else {
1468
+ if (this.overlayRef) {
1469
+ this.overlayRef.detach();
1470
+ this.overlayRef.dispose();
1471
+ }
1472
+ }
1473
+ });
1474
+ }
1475
+ }
1476
+ BsDropdownMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: forwardRef(() => BsDropdownDirective) }, { token: DOCUMENT }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1$2.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
1477
+ BsDropdownMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]", host: { properties: { "class.show": "dropdown.isOpen" } }, ngImport: i0 });
1478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
1479
+ type: Directive,
1480
+ args: [{
1481
+ selector: '[bsDropdownMenu]',
1482
+ host: {
1483
+ '[class.show]': 'dropdown.isOpen',
1484
+ },
1485
+ }]
1486
+ }], ctorParameters: function () {
1487
+ return [{ type: BsDropdownDirective, decorators: [{
1488
+ type: Inject,
1489
+ args: [forwardRef(() => BsDropdownDirective)]
1490
+ }] }, { type: undefined, decorators: [{
1491
+ type: Inject,
1492
+ args: [DOCUMENT]
1493
+ }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1$2.Overlay }];
1494
+ } });
1495
+
1496
+ class BsDropdownToggleDirective {
1497
+ constructor(dropdown, toggleButton) {
1498
+ this.dropdown = dropdown;
1499
+ this.toggleButton = toggleButton;
1500
+ }
1501
+ onClick() {
1502
+ console.log('clicked');
1503
+ this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {
1504
+ this.dropdown.isOpen$.next(!isOpen);
1505
+ });
1506
+ }
1507
+ }
1508
+ BsDropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, deps: [{ token: BsDropdownDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1509
+ BsDropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
1510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, decorators: [{
1511
+ type: Directive,
1512
+ args: [{
1513
+ selector: '[bsDropdownToggle]'
1514
+ }]
1515
+ }], ctorParameters: function () { return [{ type: BsDropdownDirective }, { type: i0.ElementRef }]; }, propDecorators: { onClick: [{
1516
+ type: HostListener,
1517
+ args: ['click']
1518
+ }] } });
1519
+
1520
+ class BsDropdownDirective {
1521
+ constructor() {
1522
+ this.isOpen$ = new BehaviorSubject(false);
1523
+ this.hasBackdrop = false;
1524
+ this.closeOnClickOutside = false;
1525
+ }
1526
+ }
1527
+ BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1528
+ BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", closeOnClickOutside: "closeOnClickOutside" }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, decorators: [{
1530
+ type: Directive,
1531
+ args: [{
1532
+ selector: '[bsDropdown]'
1533
+ }]
1534
+ }], propDecorators: { menu: [{
1535
+ type: ContentChild,
1536
+ args: [BsDropdownMenuDirective, { static: false }]
1537
+ }], toggle: [{
1538
+ type: ContentChild,
1539
+ args: [BsDropdownToggleDirective, { static: false }]
1540
+ }], hasBackdrop: [{
1541
+ type: Input
1542
+ }], closeOnClickOutside: [{
1543
+ type: Input
1544
+ }] } });
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], exports: [BsDropdownDirective,
1553
+ BsDropdownToggleDirective,
1554
+ BsDropdownMenuDirective] });
1555
+ BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
1556
+ CommonModule,
1557
+ OverlayModule
1558
+ ]] });
1559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
1560
+ type: NgModule,
1561
+ args: [{
1562
+ declarations: [
1563
+ BsDropdownDirective,
1564
+ BsDropdownToggleDirective,
1565
+ BsDropdownMenuDirective
1566
+ ],
1567
+ imports: [
1568
+ CommonModule,
1569
+ OverlayModule
1570
+ ],
1571
+ exports: [
1572
+ BsDropdownDirective,
1573
+ BsDropdownToggleDirective,
1574
+ BsDropdownMenuDirective
1575
+ ]
1576
+ }]
1577
+ }] });
1578
+
1579
+ class BsDatepickerComponent {
1580
+ constructor() {
1581
+ this.selectedDate = new Date();
1582
+ this.currentMonth = new Date();
1583
+ }
1584
+ ngOnInit() {
1585
+ }
1586
+ }
1587
+ BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1588
+ BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsDatepickerComponent, selector: "bs-datepicker", ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""], components: [{ type: BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "closeOnClickOutside"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i1.DatePipe } });
1589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1590
+ type: Component,
1591
+ args: [{ selector: 'bs-datepicker', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""] }]
1592
+ }], ctorParameters: function () { return []; } });
1593
+
1594
+ class BsDatepickerModule {
1595
+ }
1596
+ BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1597
+ BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
1598
+ BsCalendarModule,
1599
+ BsDropdownModule], exports: [BsDatepickerComponent] });
1600
+ BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
1601
+ CommonModule,
1602
+ BsCalendarModule,
1603
+ BsDropdownModule
1604
+ ]] });
1605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
1606
+ type: NgModule,
1607
+ args: [{
1608
+ declarations: [
1609
+ BsDatepickerComponent
1610
+ ],
1611
+ imports: [
1612
+ CommonModule,
1613
+ BsCalendarModule,
1614
+ BsDropdownModule
1615
+ ],
1616
+ exports: [
1617
+ BsDatepickerComponent
1618
+ ]
1619
+ }]
1620
+ }] });
1621
+
1622
+ class BsMultiselectComponent {
1623
+ constructor() {
1624
+ this.items = [];
1625
+ this.selectedItems = [];
1626
+ }
1627
+ itemChange(item, event) {
1628
+ if (!!event.target.checked) {
1629
+ this.selectedItems.push(item);
1630
+ }
1631
+ else {
1632
+ this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
1633
+ }
1634
+ }
1635
+ ngOnInit() {
1636
+ }
1637
+ }
1638
+ BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1639
+ BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white p-3 border shadow\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [""], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "closeOnClickOutside"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
1641
+ type: Component,
1642
+ args: [{ selector: 'bs-multiselect', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedItems.length }} selected</button>\n <div *bsDropdownMenu class=\"bg-white p-3 border shadow\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n </div>\n</div>", styles: [""] }]
1643
+ }], ctorParameters: function () { return []; }, propDecorators: { items: [{
1644
+ type: Input
1645
+ }], selectedItems: [{
1646
+ type: Input
1647
+ }] } });
1648
+
1649
+ class BsMultiselectModule {
1650
+ }
1651
+ BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1652
+ BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent], imports: [CommonModule,
1653
+ BsDropdownModule], exports: [BsMultiselectComponent] });
1654
+ BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
1655
+ CommonModule,
1656
+ BsDropdownModule
1657
+ ]] });
1658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, decorators: [{
1659
+ type: NgModule,
1660
+ args: [{
1661
+ declarations: [
1662
+ BsMultiselectComponent
1663
+ ],
1664
+ imports: [
1665
+ CommonModule,
1666
+ BsDropdownModule
1667
+ ],
1668
+ exports: [
1669
+ BsMultiselectComponent
1670
+ ]
1671
+ }]
1672
+ }] });
1673
+
1389
1674
  /**
1390
1675
  * Generated bundle index. Do not edit.
1391
1676
  */
1392
1677
 
1393
- export { BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsRowTemplateDirective, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, Color, DatatableSettings, DropdownToggleDirective, NavLinkDirective, NavbarContentDirective };
1678
+ export { BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsMultiselectComponent, BsMultiselectModule, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsRowTemplateDirective, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, Color, DatatableSettings, DropdownToggleDirective, NavLinkDirective, NavbarContentDirective };
1394
1679
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map