@mintplayer/ng-bootstrap 13.1.2 → 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 (74) hide show
  1. package/esm2020/index.mjs +2 -1
  2. package/esm2020/lib/components/calendar/calendar.component.mjs +77 -34
  3. package/esm2020/lib/components/card/card/card.component.mjs +1 -2
  4. package/esm2020/lib/components/carousel/carousel/carousel.component.mjs +11 -7
  5. package/esm2020/lib/components/carousel/carousel-image/carousel-image.directive.mjs +10 -7
  6. package/esm2020/lib/components/datatable/datatable/datatable.component.mjs +51 -0
  7. package/esm2020/lib/components/datatable/datatable-column/datatable-column-metadata.mjs +2 -0
  8. package/esm2020/lib/components/datatable/datatable-column/datatable-column.directive.mjs +19 -0
  9. package/esm2020/lib/components/datatable/datatable-settings.mjs +37 -0
  10. package/esm2020/lib/components/datatable/datatable.module.mjs +40 -0
  11. package/esm2020/lib/components/datatable/index.mjs +6 -0
  12. package/esm2020/lib/components/datatable/row-template/row-template.directive.mjs +19 -0
  13. package/esm2020/lib/components/datepicker/datepicker.component.mjs +22 -0
  14. package/esm2020/lib/components/datepicker/datepicker.module.mjs +34 -0
  15. package/esm2020/lib/components/datepicker/index.mjs +3 -0
  16. package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +31 -0
  17. package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +64 -0
  18. package/esm2020/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.mjs +29 -0
  19. package/esm2020/lib/components/dropdown/dropdown.module.mjs +40 -0
  20. package/esm2020/lib/components/dropdown/index.mjs +5 -0
  21. package/esm2020/lib/components/index.mjs +6 -1
  22. package/esm2020/lib/components/multiselect/index.mjs +3 -0
  23. package/esm2020/lib/components/multiselect/multiselect.component.mjs +33 -0
  24. package/esm2020/lib/components/multiselect/multiselect.module.mjs +30 -0
  25. package/esm2020/lib/components/navbar/nav-link/nav-link.directive.mjs +1 -1
  26. package/esm2020/lib/components/navbar/navbar/navbar.component.mjs +2 -2
  27. package/esm2020/lib/components/pagination/pagination/pagination.component.mjs +146 -0
  28. package/esm2020/lib/components/pagination/pagination.module.mjs +26 -0
  29. package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +48 -0
  30. package/esm2020/lib/components/scrollspy/directives/scrollspy.directive.mjs +16 -0
  31. package/esm2020/lib/components/scrollspy/index.mjs +4 -0
  32. package/esm2020/lib/components/scrollspy/scrollspy.module.mjs +31 -0
  33. package/esm2020/lib/interfaces/index.mjs +2 -0
  34. package/esm2020/lib/interfaces/page-with-selection.mjs +2 -0
  35. package/esm2020/lib/pipes/month-name/month-name.pipe.mjs +7 -2
  36. package/esm2020/lib/types/page-number.type.mjs +2 -0
  37. package/fesm2015/mintplayer-ng-bootstrap.mjs +743 -56
  38. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  39. package/fesm2020/mintplayer-ng-bootstrap.mjs +739 -56
  40. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  41. package/index.d.ts +1 -0
  42. package/lib/components/calendar/calendar.component.d.ts +21 -13
  43. package/lib/components/carousel/carousel/carousel.component.d.ts +4 -3
  44. package/lib/components/carousel/carousel-image/carousel-image.directive.d.ts +5 -2
  45. package/lib/components/datatable/datatable/datatable.component.d.ts +17 -0
  46. package/lib/components/datatable/datatable-column/datatable-column-metadata.d.ts +4 -0
  47. package/lib/components/datatable/datatable-column/datatable-column.directive.d.ts +10 -0
  48. package/lib/components/datatable/datatable-settings.d.ts +15 -0
  49. package/lib/components/datatable/datatable.module.d.ts +11 -0
  50. package/lib/components/datatable/index.d.ts +5 -0
  51. package/lib/components/datatable/row-template/row-template.directive.d.ts +9 -0
  52. package/lib/components/datepicker/datepicker.component.d.ts +10 -0
  53. package/lib/components/datepicker/datepicker.module.d.ts +10 -0
  54. package/lib/components/datepicker/index.d.ts +2 -0
  55. package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +13 -0
  56. package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +17 -0
  57. package/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.d.ts +11 -0
  58. package/lib/components/dropdown/dropdown.module.d.ts +11 -0
  59. package/lib/components/dropdown/index.d.ts +4 -0
  60. package/lib/components/index.d.ts +5 -0
  61. package/lib/components/multiselect/index.d.ts +2 -0
  62. package/lib/components/multiselect/multiselect.component.d.ts +11 -0
  63. package/lib/components/multiselect/multiselect.module.d.ts +9 -0
  64. package/lib/components/pagination/pagination/pagination.component.d.ts +45 -0
  65. package/lib/components/pagination/pagination.module.d.ts +8 -0
  66. package/lib/components/scrollspy/component/scrollspy.component.d.ts +15 -0
  67. package/lib/components/scrollspy/directives/scrollspy.directive.d.ts +8 -0
  68. package/lib/components/scrollspy/index.d.ts +3 -0
  69. package/lib/components/scrollspy/scrollspy.module.d.ts +9 -0
  70. package/lib/interfaces/index.d.ts +1 -0
  71. package/lib/interfaces/page-with-selection.d.ts +5 -0
  72. package/lib/pipes/month-name/month-name.pipe.d.ts +1 -1
  73. package/lib/types/page-number.type.d.ts +1 -0
  74. package/package.json +3 -1
@@ -0,0 +1,22 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../calendar/calendar.component";
4
+ import * as i2 from "../dropdown/dropdown/dropdown.directive";
5
+ import * as i3 from "../dropdown/dropdown-toggle/dropdown-toggle.directive";
6
+ import * as i4 from "../dropdown/dropdown-menu/dropdown-menu.directive";
7
+ import * as i5 from "@angular/common";
8
+ export class BsDatepickerComponent {
9
+ constructor() {
10
+ this.selectedDate = new Date();
11
+ this.currentMonth = new Date();
12
+ }
13
+ ngOnInit() {
14
+ }
15
+ }
16
+ BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ 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: i1.BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: i2.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "closeOnClickOutside"] }, { type: i3.BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: i4.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i5.DatePipe } });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerComponent, decorators: [{
19
+ type: Component,
20
+ 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: [""] }]
21
+ }], ctorParameters: function () { return []; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFPbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQztRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUtELFFBQVE7SUFDUixDQUFDOztrSEFYVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixxRENQbEMsMlRBS007MkZERU8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgc2VsZWN0ZWREYXRlOiBEYXRlO1xuICBjdXJyZW50TW9udGg6IERhdGU7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIiwiPGRpdiBic0Ryb3Bkb3duIFtoYXNCYWNrZHJvcF09XCJ0cnVlXCIgW2Nsb3NlT25DbGlja091dHNpZGVdPVwidHJ1ZVwiPlxuICAgIDxidXR0b24gYnNEcm9wZG93blRvZ2dsZSBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7IHNlbGVjdGVkRGF0ZSB8IGRhdGUgfX08L2J1dHRvbj5cbiAgICA8ZGl2ICpic0Ryb3Bkb3duTWVudT5cbiAgICAgICAgPGJzLWNhbGVuZGFyIFsoc2VsZWN0ZWREYXRlKV09XCJzZWxlY3RlZERhdGVcIiBbKGN1cnJlbnRNb250aCldPVwiY3VycmVudE1vbnRoXCI+PC9icy1jYWxlbmRhcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BsDatepickerComponent } from './datepicker.component';
4
+ import { BsCalendarModule } from '../calendar/calendar.module';
5
+ import { BsDropdownModule } from '../dropdown/dropdown.module';
6
+ import * as i0 from "@angular/core";
7
+ export class BsDatepickerModule {
8
+ }
9
+ BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
11
+ BsCalendarModule,
12
+ BsDropdownModule], exports: [BsDatepickerComponent] });
13
+ BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, imports: [[
14
+ CommonModule,
15
+ BsCalendarModule,
16
+ BsDropdownModule
17
+ ]] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDatepickerModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ declarations: [
22
+ BsDatepickerComponent
23
+ ],
24
+ imports: [
25
+ CommonModule,
26
+ BsCalendarModule,
27
+ BsDropdownModule
28
+ ],
29
+ exports: [
30
+ BsDatepickerComponent
31
+ ]
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWlCL0QsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVgzQixxQkFBcUIsYUFHckIsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixnQkFBZ0IsYUFHaEIscUJBQXFCO2dIQUdaLGtCQUFrQixZQVRwQjtZQUNQLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1NBQ2pCOzJGQUtVLGtCQUFrQjtrQkFiOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJzRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNDYWxlbmRhck1vZHVsZSB9IGZyb20gJy4uL2NhbGVuZGFyL2NhbGVuZGFyLm1vZHVsZSc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzRGF0ZXBpY2tlckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJzQ2FsZW5kYXJNb2R1bGUsXG4gICAgQnNEcm9wZG93bk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQnNEYXRlcGlja2VyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQnNEYXRlcGlja2VyTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './datepicker.component';
2
+ export * from './datepicker.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyLm1vZHVsZSc7Il19
@@ -0,0 +1,31 @@
1
+ import { ContentChild, Directive, Input } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { BsDropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';
4
+ import { BsDropdownToggleDirective } from '../dropdown-toggle/dropdown-toggle.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class BsDropdownDirective {
7
+ constructor() {
8
+ this.isOpen$ = new BehaviorSubject(false);
9
+ this.hasBackdrop = false;
10
+ this.closeOnClickOutside = false;
11
+ }
12
+ }
13
+ BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14
+ 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 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownDirective, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: '[bsDropdown]'
19
+ }]
20
+ }], propDecorators: { menu: [{
21
+ type: ContentChild,
22
+ args: [BsDropdownMenuDirective, { static: false }]
23
+ }], toggle: [{
24
+ type: ContentChild,
25
+ args: [BsDropdownToggleDirective, { static: false }]
26
+ }], hasBackdrop: [{
27
+ type: Input
28
+ }], closeOnClickOutside: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQUt6RixNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBS1MsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBS3JDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztLQUM3Qzs7Z0hBVFksbUJBQW1CO29HQUFuQixtQkFBbUIsMEtBSWhCLHVCQUF1Qix5RUFDdkIseUJBQXlCOzJGQUw1QixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzhCQUt5RCxJQUFJO3NCQUEzRCxZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDSSxNQUFNO3NCQUEvRCxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFeEMsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1lbnVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJzRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bi10b2dnbGUvZHJvcGRvd24tdG9nZ2xlLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic0Ryb3Bkb3duXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNEcm9wZG93bkRpcmVjdGl2ZSB7XG5cbiAgcHVibGljIGlzT3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBAQ29udGVudENoaWxkKEJzRHJvcGRvd25NZW51RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pIG1lbnUhOiBCc0Ryb3Bkb3duTWVudURpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZChCc0Ryb3Bkb3duVG9nZ2xlRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pIHRvZ2dsZSE6IEJzRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmU7XG4gIFxuICBASW5wdXQoKSBwdWJsaWMgaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNsb3NlT25DbGlja091dHNpZGUgPSBmYWxzZTtcbn1cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Directive, forwardRef, Inject, TemplateRef, ViewContainerRef } from '@angular/core';
3
+ import { Overlay } from '@angular/cdk/overlay';
4
+ import { Subject, takeUntil } from 'rxjs';
5
+ import { BsDropdownDirective } from '../dropdown/dropdown.directive';
6
+ import { TemplatePortal } from '@angular/cdk/portal';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/cdk/overlay";
9
+ import * as i2 from "../dropdown/dropdown.directive";
10
+ export class BsDropdownMenuDirective {
11
+ constructor(dropdown, document, viewContainerRef, templateRef, overlay) {
12
+ this.dropdown = dropdown;
13
+ this.viewContainerRef = viewContainerRef;
14
+ this.templateRef = templateRef;
15
+ this.overlay = overlay;
16
+ this.destroyed$ = new Subject();
17
+ this.overlayRef = null;
18
+ this.templatePortal = null;
19
+ this.document = document;
20
+ this.dropdown.isOpen$
21
+ .pipe(takeUntil(this.destroyed$))
22
+ .subscribe((isOpen) => {
23
+ if (isOpen) {
24
+ this.overlayRef = this.overlay.create({
25
+ hasBackdrop: this.dropdown.hasBackdrop,
26
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
27
+ positionStrategy: this.overlay.position()
28
+ .flexibleConnectedTo(this.dropdown.toggle.toggleButton)
29
+ .withPositions([
30
+ { originX: "start", "originY": "bottom", overlayX: "start", overlayY: "top", offsetY: 0 },
31
+ { originX: "start", "originY": "top", overlayX: "start", overlayY: "bottom", offsetY: 0 },
32
+ ]),
33
+ });
34
+ this.overlayRef.backdropClick().subscribe(() => this.dropdown.isOpen$.next(false));
35
+ this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
36
+ this.overlayRef.attach(this.templatePortal);
37
+ }
38
+ else {
39
+ if (this.overlayRef) {
40
+ this.overlayRef.detach();
41
+ this.overlayRef.dispose();
42
+ }
43
+ }
44
+ });
45
+ }
46
+ }
47
+ 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.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
48
+ BsDropdownMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]", host: { properties: { "class.show": "dropdown.isOpen" } }, ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: '[bsDropdownMenu]',
53
+ host: {
54
+ '[class.show]': 'dropdown.isOpen',
55
+ },
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i2.BsDropdownDirective, decorators: [{
58
+ type: Inject,
59
+ args: [forwardRef(() => BsDropdownDirective)]
60
+ }] }, { type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [DOCUMENT]
63
+ }] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1.Overlay }]; } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUErQixVQUFVLEVBQUUsTUFBTSxFQUFhLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySSxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBUXJELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDeUQsUUFBNkIsRUFDbEUsUUFBYSxFQUN2QixnQkFBa0MsRUFDbEMsV0FBNkIsRUFDN0IsT0FBZ0I7UUFKK0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFFNUUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQWdDbEIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUFzQixJQUFJLENBQUM7UUFDckMsbUJBQWMsR0FBK0IsSUFBSSxDQUFDO1FBaEN4RCxJQUFJLENBQUMsUUFBUSxHQUFhLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87YUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDcEMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztvQkFDdEMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO29CQUMxRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTt5QkFDdEMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO3lCQUN0RCxhQUFhLENBQUM7d0JBQ2IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7d0JBQ3pGLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3FCQUMxRixDQUFDO2lCQUNMLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFFbkYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUMzQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztvSEFuQ1UsdUJBQXVCLGtCQUV4QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFDckMsUUFBUTt3R0FIUCx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFObkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixJQUFJLEVBQUU7d0JBQ0osY0FBYyxFQUFFLGlCQUFpQjtxQkFDbEM7aUJBQ0Y7OzBCQUdJLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDOzswQkFDNUMsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNEcm9wZG93bk1lbnVdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muc2hvd10nOiAnZHJvcGRvd24uaXNPcGVuJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQnNEcm9wZG93bk1lbnVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQnNEcm9wZG93bkRpcmVjdGl2ZSkpIHByaXZhdGUgZHJvcGRvd246IEJzRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcbiAgKSB7XG4gICAgdGhpcy5kb2N1bWVudCA9IDxEb2N1bWVudD5kb2N1bWVudDtcbiAgICB0aGlzLmRyb3Bkb3duLmlzT3BlbiRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoaXNPcGVuKSA9PiB7XG4gICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmRyb3Bkb3duLmhhc0JhY2tkcm9wLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZHJvcGRvd24udG9nZ2xlLnRvZ2dsZUJ1dHRvbilcbiAgICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAgICAgIHsgb3JpZ2luWDogXCJzdGFydFwiLCBcIm9yaWdpbllcIjogXCJib3R0b21cIiwgb3ZlcmxheVg6IFwic3RhcnRcIiwgb3ZlcmxheVk6IFwidG9wXCIsIG9mZnNldFk6IDAgfSxcbiAgICAgICAgICAgICAgICB7IG9yaWdpblg6IFwic3RhcnRcIiwgXCJvcmlnaW5ZXCI6IFwidG9wXCIsIG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcImJvdHRvbVwiLCBvZmZzZXRZOiAwIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kcm9wZG93bi5pc09wZW4kLm5leHQoZmFsc2UpKTtcbiAgICAgIFxuICAgICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMudGVtcGxhdGVQb3J0YWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50O1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVBvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IG51bGwgPSBudWxsO1xuXG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Directive, ElementRef, HostListener } from '@angular/core';
2
+ import { take } from 'rxjs';
3
+ import { BsDropdownDirective } from '../dropdown/dropdown.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../dropdown/dropdown.directive";
6
+ export class BsDropdownToggleDirective {
7
+ constructor(dropdown, toggleButton) {
8
+ this.dropdown = dropdown;
9
+ this.toggleButton = toggleButton;
10
+ }
11
+ onClick() {
12
+ console.log('clicked');
13
+ this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {
14
+ this.dropdown.isOpen$.next(!isOpen);
15
+ });
16
+ }
17
+ }
18
+ BsDropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, deps: [{ token: i1.BsDropdownDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ BsDropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownToggleDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: '[bsDropdownToggle]'
24
+ }]
25
+ }], ctorParameters: function () { return [{ type: i1.BsDropdownDirective }, { type: i0.ElementRef }]; }, propDecorators: { onClick: [{
26
+ type: HostListener,
27
+ args: ['click']
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLXRvZ2dsZS9kcm9wZG93bi10b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFLckUsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxZQUNVLFFBQTZCLEVBQ3JDLFlBQXdCO1FBRGhCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBRW5DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFNSCxPQUFPO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEFqQlUseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjttSUFhQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2JzRHJvcGRvd25Ub2dnbGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBCc0Ryb3Bkb3duVG9nZ2xlRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRyb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlLFxuICAgIHRvZ2dsZUJ1dHRvbjogRWxlbWVudFJlZikge1xuICAgICAgdGhpcy50b2dnbGVCdXR0b24gPSB0b2dnbGVCdXR0b247XG4gICAgfVxuXG4gIHRvZ2dsZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpIHtcbiAgICBjb25zb2xlLmxvZygnY2xpY2tlZCcpO1xuICAgIHRoaXMuZHJvcGRvd24uaXNPcGVuJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaXNPcGVuKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duLmlzT3BlbiQubmV4dCghaXNPcGVuKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { OverlayModule } from '@angular/cdk/overlay';
4
+ import { BsDropdownDirective } from './dropdown/dropdown.directive';
5
+ import { BsDropdownMenuDirective } from './dropdown-menu/dropdown-menu.directive';
6
+ import { BsDropdownToggleDirective } from './dropdown-toggle/dropdown-toggle.directive';
7
+ import * as i0 from "@angular/core";
8
+ export class BsDropdownModule {
9
+ }
10
+ BsDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ BsDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownDirective,
12
+ BsDropdownToggleDirective,
13
+ BsDropdownMenuDirective], imports: [CommonModule,
14
+ OverlayModule], exports: [BsDropdownDirective,
15
+ BsDropdownToggleDirective,
16
+ BsDropdownMenuDirective] });
17
+ BsDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, imports: [[
18
+ CommonModule,
19
+ OverlayModule
20
+ ]] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsDropdownModule, decorators: [{
22
+ type: NgModule,
23
+ args: [{
24
+ declarations: [
25
+ BsDropdownDirective,
26
+ BsDropdownToggleDirective,
27
+ BsDropdownMenuDirective
28
+ ],
29
+ imports: [
30
+ CommonModule,
31
+ OverlayModule
32
+ ],
33
+ exports: [
34
+ BsDropdownDirective,
35
+ BsDropdownToggleDirective,
36
+ BsDropdownMenuDirective
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFvQnhGLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFkekIsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUN6Qix1QkFBdUIsYUFHdkIsWUFBWTtRQUNaLGFBQWEsYUFHYixtQkFBbUI7UUFDbkIseUJBQXlCO1FBQ3pCLHVCQUF1Qjs4R0FHZCxnQkFBZ0IsWUFWbEI7WUFDUCxZQUFZO1lBQ1osYUFBYTtTQUNkOzJGQU9VLGdCQUFnQjtrQkFoQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6Qix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6Qix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQnNEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJzRHJvcGRvd25NZW51RGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJzRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLXRvZ2dsZS9kcm9wZG93bi10b2dnbGUuZGlyZWN0aXZlJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgQnNEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSxcbiAgICBCc0Ryb3Bkb3duTWVudURpcmVjdGl2ZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJzRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgQnNEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSxcbiAgICBCc0Ryb3Bkb3duTWVudURpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzRHJvcGRvd25Nb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './dropdown/dropdown.directive';
2
+ export * from './dropdown-menu/dropdown-menu.directive';
3
+ export * from './dropdown-toggle/dropdown-toggle.directive';
4
+ export * from './dropdown.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9kcm9wZG93bi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tdG9nZ2xlL2Ryb3Bkb3duLXRvZ2dsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi5tb2R1bGUnOyJdfQ==
@@ -2,8 +2,13 @@ export * from './alert';
2
2
  export * from './card';
3
3
  export * from './calendar';
4
4
  export * from './carousel';
5
+ export * from './datatable';
5
6
  export * from './list-group';
6
7
  export * from './navbar';
7
8
  export * from './accordion';
8
9
  export * from './tab-control';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxlcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXInO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QtZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZiYXInO1xuZXhwb3J0ICogZnJvbSAnLi9hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90YWItY29udHJvbCc7Il19
10
+ export * from './scrollspy';
11
+ export * from './dropdown';
12
+ export * from './datepicker';
13
+ export * from './multiselect';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxlcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXInO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QtZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZiYXInO1xuZXhwb3J0ICogZnJvbSAnLi9hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90YWItY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbHNweSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZXBpY2tlcic7XG5leHBvcnQgKiBmcm9tICcuL211bHRpc2VsZWN0JzsiXX0=
@@ -0,0 +1,3 @@
1
+ export * from './multiselect.component';
2
+ export * from './multiselect.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9tdWx0aXNlbGVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL211bHRpc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpc2VsZWN0Lm1vZHVsZSc7Il19
@@ -0,0 +1,33 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../dropdown/dropdown/dropdown.directive";
4
+ import * as i2 from "../dropdown/dropdown-toggle/dropdown-toggle.directive";
5
+ import * as i3 from "../dropdown/dropdown-menu/dropdown-menu.directive";
6
+ import * as i4 from "@angular/common";
7
+ export class BsMultiselectComponent {
8
+ constructor() {
9
+ this.items = [];
10
+ this.selectedItems = [];
11
+ }
12
+ itemChange(item, event) {
13
+ if (!!event.target.checked) {
14
+ this.selectedItems.push(item);
15
+ }
16
+ else {
17
+ this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);
18
+ }
19
+ }
20
+ ngOnInit() {
21
+ }
22
+ }
23
+ BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ 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: i1.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "closeOnClickOutside"] }, { type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: i3.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectComponent, decorators: [{
26
+ type: Component,
27
+ 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: [""] }]
28
+ }], ctorParameters: function () { return []; }, propDecorators: { items: [{
29
+ type: Input
30
+ }], selectedItems: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QvbXVsdGlzZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QvbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU96RCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDO1FBRWdCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7SUFIMUIsQ0FBQztJQUtqQixVQUFVLENBQUMsSUFBUyxFQUFFLEtBQVk7UUFDaEMsSUFBSSxDQUFDLENBQU8sS0FBSyxDQUFDLE1BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7O21IQWhCVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixrSENQbkMsNmlCQVFNOzJGRERPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxnQkFBZ0I7MEVBUVYsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW11bHRpc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGlzZWxlY3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc011bHRpc2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG5cbiAgaXRlbUNoYW5nZShpdGVtOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghISg8YW55PmV2ZW50LnRhcmdldCkuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleCgoaSkgPT4gaSA9PT0gaXRlbSksIDEpO1xuICAgIH1cbiAgfVxuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuXG59XG4iLCI8ZGl2IGJzRHJvcGRvd24gW2hhc0JhY2tkcm9wXT1cInRydWVcIiBbY2xvc2VPbkNsaWNrT3V0c2lkZV09XCJ0cnVlXCI+XG4gICAgPGJ1dHRvbiBic0Ryb3Bkb3duVG9nZ2xlIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3sgc2VsZWN0ZWRJdGVtcy5sZW5ndGggfX0gc2VsZWN0ZWQ8L2J1dHRvbj5cbiAgICA8ZGl2ICpic0Ryb3Bkb3duTWVudSBjbGFzcz1cImJnLXdoaXRlIHAtMyBib3JkZXIgc2hhZG93XCI+XG4gICAgICAgIDxsYWJlbCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIGNsYXNzPVwiZm9ybS1jaGVja1wiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cInNlbGVjdGVkSXRlbXMuaW5kZXhPZihpdGVtKSA+IC0xXCIgKGNoYW5nZSk9XCJpdGVtQ2hhbmdlKGl0ZW0sICRldmVudClcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,30 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BsMultiselectComponent } from './multiselect.component';
4
+ import { BsDropdownModule } from '../dropdown/dropdown.module';
5
+ import * as i0 from "@angular/core";
6
+ export class BsMultiselectModule {
7
+ }
8
+ BsMultiselectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ BsMultiselectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, declarations: [BsMultiselectComponent], imports: [CommonModule,
10
+ BsDropdownModule], exports: [BsMultiselectComponent] });
11
+ BsMultiselectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, imports: [[
12
+ CommonModule,
13
+ BsDropdownModule
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsMultiselectModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [
19
+ BsMultiselectComponent
20
+ ],
21
+ imports: [
22
+ CommonModule,
23
+ BsDropdownModule
24
+ ],
25
+ exports: [
26
+ BsMultiselectComponent
27
+ ]
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QvbXVsdGlzZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWMvRCxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBVjVCLHNCQUFzQixhQUd0QixZQUFZO1FBQ1osZ0JBQWdCLGFBR2hCLHNCQUFzQjtpSEFHYixtQkFBbUIsWUFSckI7WUFDUCxZQUFZO1lBQ1osZ0JBQWdCO1NBQ2pCOzJGQUtVLG1CQUFtQjtrQkFaL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc011bHRpc2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzTXVsdGlzZWxlY3RDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc011bHRpc2VsZWN0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQnNNdWx0aXNlbGVjdE1vZHVsZSB7IH1cbiJdfQ==
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
26
26
  type: Inject,
27
27
  args: [forwardRef(() => BsNavbarDropdownComponent)]
28
28
  }] }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbmF2YmFyL25hdi1saW5rL25hdi1saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3pGLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFDVSxVQUF5QyxFQUNnQixjQUF5QztRQURsRyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUdqRCxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7OzZHQVhVLGdCQUFnQiw0Q0FJTCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUdBSnRELGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7aUJBQzNDOzswQkFLSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2YmFyLWRyb3Bkb3duL25hdmJhci1kcm9wZG93bi5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdicy1uYXZiYXItaXRlbSA+IGFbcm91dGVyTGlua10nXG59KVxuZXhwb3J0IGNsYXNzIE5hdkxpbmtEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEJzTmF2YmFyRHJvcGRvd25Db21wb25lbnQpKSBwYXJlbnREcm9wZG93bjogQnNOYXZiYXJEcm9wZG93bkNvbXBvbmVudFxuICApIHtcbiAgICBpZiAocGFyZW50RHJvcGRvd24gPT0gbnVsbCkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbmF2LWxpbmsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJvcGRvd24taXRlbScpO1xuICAgIH1cbiAgfVxuXG59Il19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbmF2YmFyL25hdi1saW5rL25hdi1saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3pGLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFDVSxVQUF5QyxFQUNnQixjQUF5QztRQURsRyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUdqRCxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7OzZHQVhVLGdCQUFnQiw0Q0FJTCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUdBSnRELGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7aUJBQzNDOzswQkFLSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNOYXZiYXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL25hdmJhci1kcm9wZG93bi9uYXZiYXItZHJvcGRvd24uY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYnMtbmF2YmFyLWl0ZW0gPiBhW3JvdXRlckxpbmtdJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZMaW5rRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50KSkgcGFyZW50RHJvcGRvd246IEJzTmF2YmFyRHJvcGRvd25Db21wb25lbnRcbiAgKSB7XG4gICAgaWYgKHBhcmVudERyb3Bkb3duID09IG51bGwpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ25hdi1saW5rJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Ryb3Bkb3duLWl0ZW0nKTtcbiAgICB9XG4gIH1cblxufSJdfQ==
@@ -9,10 +9,10 @@ export class BsNavbarComponent {
9
9
  }
10
10
  }
11
11
  BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- 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\" data-toggle=\"collapse\">\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:1}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
12
+ 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\" data-toggle=\"collapse\">\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"] });
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
14
14
  type: Component,
15
- 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\" data-toggle=\"collapse\">\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:1}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] }]
15
+ 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\" data-toggle=\"collapse\">\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"] }]
16
16
  }], ctorParameters: function () { return []; }, propDecorators: { nav: [{
17
17
  type: ViewChild,
18
18
  args: ['nav']
@@ -0,0 +1,146 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BsPaginationComponent {
6
+ constructor() {
7
+ /** All page numbers. */
8
+ this.pageNumbers$ = new BehaviorSubject([]);
9
+ /** Selected number. */
10
+ this.selectedPageNumber$ = new BehaviorSubject(1);
11
+ /** Number of boxes. */
12
+ this.numberOfBoxes$ = new BehaviorSubject(0);
13
+ /** Display previous/next arrows. */
14
+ this.showArrows$ = new BehaviorSubject(true);
15
+ /** Indicates if first value is selected. */
16
+ this.isFirstPage$ = new Observable();
17
+ /** Indicates if last value is selected. */
18
+ this.isLastPage$ = new Observable();
19
+ /** The number of boxes (excluding arrows) that's being shown on the pagination component. */
20
+ this.visibleNumberOfNumberBoxes$ = new Observable();
21
+ this._selectedPageNumber = 0;
22
+ this.selectedPageNumberChange = new EventEmitter();
23
+ this._numberOfBoxes = 0;
24
+ this._pageNumbers = [];
25
+ this._showArrows = true;
26
+ this.destroyed$ = new Subject();
27
+ this.visibleNumberOfNumberBoxes$ =
28
+ combineLatest([this.numberOfBoxes$, this.pageNumbers$, this.showArrows$])
29
+ .pipe(takeUntil(this.destroyed$))
30
+ .pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
31
+ if (numberOfBoxes <= 0) {
32
+ return pageNumbers.length;
33
+ }
34
+ else if (!showArrows) {
35
+ return Math.min(numberOfBoxes, pageNumbers.length);
36
+ }
37
+ else if (numberOfBoxes <= 2) {
38
+ return Math.min(1, pageNumbers.length);
39
+ }
40
+ else {
41
+ return Math.min(numberOfBoxes - 2, pageNumbers.length);
42
+ }
43
+ }));
44
+ this.shownPageNumbers$ =
45
+ combineLatest([this.pageNumbers$, this.selectedPageNumber$, this.visibleNumberOfNumberBoxes$])
46
+ .pipe(takeUntil(this.destroyed$))
47
+ .pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
48
+ let startIndex = 0;
49
+ const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
50
+ if (pageNumbers.indexOf(selectedPageNumber) < half) {
51
+ startIndex = 0;
52
+ }
53
+ else if (pageNumbers.indexOf(selectedPageNumber) >= (pageNumbers.length - half)) {
54
+ startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
55
+ }
56
+ else {
57
+ startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
58
+ }
59
+ return [...Array(visibleNumberOfNumberBoxes).keys()]
60
+ .map(p => p + startIndex)
61
+ .map(p => ({
62
+ page: pageNumbers[p],
63
+ selected: pageNumbers[p] === selectedPageNumber
64
+ }));
65
+ }));
66
+ this.isFirstPage$ =
67
+ combineLatest([this.pageNumbers$, this.selectedPageNumber$])
68
+ .pipe(takeUntil(this.destroyed$))
69
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
70
+ return pageNumbers.indexOf(selectedPageNumber) === 0;
71
+ }));
72
+ this.isLastPage$ =
73
+ combineLatest([this.pageNumbers$, this.selectedPageNumber$])
74
+ .pipe(takeUntil(this.destroyed$))
75
+ .pipe(map(([pageNumbers, selectedPageNumber]) => {
76
+ return pageNumbers.indexOf(selectedPageNumber) === (pageNumbers.length - 1);
77
+ }));
78
+ this.selectedPageNumber$
79
+ .pipe(takeUntil(this.destroyed$))
80
+ .subscribe((selectedPageNumber) => {
81
+ this.selectedPageNumberChange.emit(selectedPageNumber);
82
+ });
83
+ }
84
+ ngOnInit() {
85
+ }
86
+ ngOnDestroy() {
87
+ this.destroyed$.next(true);
88
+ }
89
+ onSelectPage(event, page) {
90
+ this.selectedPageNumber$.next(page);
91
+ return false;
92
+ }
93
+ onPrevious() {
94
+ this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
95
+ return false;
96
+ }
97
+ onNext() {
98
+ this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
99
+ return false;
100
+ }
101
+ set selectedPageNumber(value) {
102
+ this._selectedPageNumber = value;
103
+ this.selectedPageNumber$.next(value);
104
+ }
105
+ get selectedPageNumber() {
106
+ return this._selectedPageNumber;
107
+ }
108
+ set numberOfBoxes(value) {
109
+ this._numberOfBoxes = value;
110
+ this.numberOfBoxes$.next(value);
111
+ }
112
+ get numberOfBoxes() {
113
+ return this._numberOfBoxes;
114
+ }
115
+ set pageNumbers(value) {
116
+ this._pageNumbers = value;
117
+ this.pageNumbers$.next(value);
118
+ }
119
+ get pageNumbers() {
120
+ return this._pageNumbers;
121
+ }
122
+ set showArrows(value) {
123
+ this._showArrows = value;
124
+ this.showArrows$.next(value);
125
+ }
126
+ get showArrows() {
127
+ return this._showArrows;
128
+ }
129
+ }
130
+ BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
+ 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 } });
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'bs-pagination', 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"] }]
135
+ }], ctorParameters: function () { return []; }, propDecorators: { selectedPageNumberChange: [{
136
+ type: Output
137
+ }], selectedPageNumber: [{
138
+ type: Input
139
+ }], numberOfBoxes: [{
140
+ type: Input
141
+ }], pageNumbers: [{
142
+ type: Input
143
+ }], showArrows: [{
144
+ type: Input
145
+ }] } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVEzRixNQUFNLE9BQU8scUJBQXFCO0lBRWhDO1FBb0ZBLHdCQUF3QjtRQUN4QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBR2pELHVCQUF1QjtRQUN2Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRCx1QkFBdUI7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxvQ0FBb0M7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUVqRCw0Q0FBNEM7UUFDNUMsaUJBQVksR0FBRyxJQUFJLFVBQVUsRUFBVyxDQUFDO1FBQ3pDLDJDQUEyQztRQUMzQyxnQkFBVyxHQUFHLElBQUksVUFBVSxFQUFXLENBQUM7UUFDeEMsNkZBQTZGO1FBQzdGLGdDQUEyQixH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Q2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFhLFVBQVUsQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQzs7a0hBL0lVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9RQ1RsQywybENBb0JLOzJGRFhRLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzBFQWlIUix3QkFBd0I7c0JBQXhDLE1BQU07Z0JBQ00sa0JBQWtCO3NCQUE5QixLQUFLO2dCQVNPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBU08sV0FBVztzQkFBdkIsS0FBSztnQkFTTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWdlV2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvcGFnZS13aXRoLXNlbGVjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1BhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMudmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMkID1cbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubnVtYmVyT2ZCb3hlcyQsIHRoaXMucGFnZU51bWJlcnMkLCB0aGlzLnNob3dBcnJvd3MkXSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAgIC5waXBlKG1hcCgoW251bWJlck9mQm94ZXMsIHBhZ2VOdW1iZXJzLCBzaG93QXJyb3dzXSkgPT4ge1xuICAgICAgICAgIGlmIChudW1iZXJPZkJveGVzIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwYWdlTnVtYmVycy5sZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIGlmICghc2hvd0Fycm93cykge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKG51bWJlck9mQm94ZXMsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChudW1iZXJPZkJveGVzIDw9IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbigxLCBwYWdlTnVtYmVycy5sZW5ndGgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4obnVtYmVyT2ZCb3hlcyAtIDIsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG5cbiAgICB0aGlzLnNob3duUGFnZU51bWJlcnMkID0gXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhZ2VOdW1iZXJzJCwgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLCB0aGlzLnZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJF0pXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAucGlwZShtYXAoKFtwYWdlTnVtYmVycywgc2VsZWN0ZWRQYWdlTnVtYmVyLCB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlc10pID0+IHtcbiAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgICAgICAgXG4gICAgICAgICAgY29uc3QgaGFsZiA9IE1hdGgucm91bmQoKHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzIC0gMSkgLyAyKTtcbiAgICAgICAgICBpZiAocGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpIDwgaGFsZikge1xuICAgICAgICAgICAgc3RhcnRJbmRleCA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgPj0gKHBhZ2VOdW1iZXJzLmxlbmd0aCAtIGhhbGYpKSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gcGFnZU51bWJlcnMubGVuZ3RoIC0gdmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgLSBoYWxmO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMpLmtleXMoKV1cbiAgICAgICAgICAgIC5tYXAocCA9PiBwICsgc3RhcnRJbmRleClcbiAgICAgICAgICAgIC5tYXAocCA9PiA8UGFnZVdpdGhTZWxlY3Rpb24+e1xuICAgICAgICAgICAgICBwYWdlOiBwYWdlTnVtYmVyc1twXSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHBhZ2VOdW1iZXJzW3BdID09PSBzZWxlY3RlZFBhZ2VOdW1iZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG5cbiAgICB0aGlzLmlzRmlyc3RQYWdlJCA9XG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhZ2VOdW1iZXJzJCwgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkXSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAgIC5waXBlKG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXJdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PT0gMDtcbiAgICAgICAgfSkpO1xuICAgICAgICBcbiAgICB0aGlzLmlzTGFzdFBhZ2UkID1cbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucGFnZU51bWJlcnMkLCB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciRdKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnBpcGUobWFwKChbcGFnZU51bWJlcnMsIHNlbGVjdGVkUGFnZU51bWJlcl0pID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpID09PSAocGFnZU51bWJlcnMubGVuZ3RoIC0gMSk7XG4gICAgICAgIH0pKTtcbiAgICBcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyQ2hhbmdlLmVtaXQoc2VsZWN0ZWRQYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG9uU2VsZWN0UGFnZShldmVudDogTW91c2VFdmVudCwgcGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQocGFnZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25QcmV2aW91cygpIHtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQudmFsdWUgLSAxKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbk5leHQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLnZhbHVlICsgMSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEFsbCBwYWdlIG51bWJlcnMuICovXG4gIHBhZ2VOdW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+KFtdKTtcbiAgLyoqIFBhZ2UgbnVtYmVycyB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuICovXG4gIHNob3duUGFnZU51bWJlcnMkOiBPYnNlcnZhYmxlPFBhZ2VXaXRoU2VsZWN0aW9uW10+O1xuICAvKiogU2VsZWN0ZWQgbnVtYmVyLiAqL1xuICBzZWxlY3RlZFBhZ2VOdW1iZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xuICAvKiogTnVtYmVyIG9mIGJveGVzLiAqL1xuICBudW1iZXJPZkJveGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgLyoqIERpc3BsYXkgcHJldmlvdXMvbmV4dCBhcnJvd3MuICovXG4gIHNob3dBcnJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvKiogSW5kaWNhdGVzIGlmIGZpcnN0IHZhbHVlIGlzIHNlbGVjdGVkLiAqL1xuICBpc0ZpcnN0UGFnZSQgPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAvKiogSW5kaWNhdGVzIGlmIGxhc3QgdmFsdWUgaXMgc2VsZWN0ZWQuICovXG4gIGlzTGFzdFBhZ2UkID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgLyoqIFRoZSBudW1iZXIgb2YgYm94ZXMgKGV4Y2x1ZGluZyBhcnJvd3MpIHRoYXQncyBiZWluZyBzaG93biBvbiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuICovXG4gIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJCA9IG5ldyBPYnNlcnZhYmxlPG51bWJlcj4oKTtcbiAgLyoqIE1vbml0b3IgT25EZXN0cm95ZWQgaG9vay4gKi9cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PGFueT47XG5cblxuICBcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRQYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkUGFnZU51bWJlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRQYWdlTnVtYmVyKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9zZWxlY3RlZFBhZ2VOdW1iZXIgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkUGFnZU51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRQYWdlTnVtYmVyO1xuICB9XG4gIFxuICBwcml2YXRlIF9udW1iZXJPZkJveGVzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzZXQgbnVtYmVyT2ZCb3hlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbnVtYmVyT2ZCb3hlcyA9IHZhbHVlO1xuICAgIHRoaXMubnVtYmVyT2ZCb3hlcyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IG51bWJlck9mQm94ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX251bWJlck9mQm94ZXM7XG4gIH1cbiAgXG4gIHByaXZhdGUgX3BhZ2VOdW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBzZXQgcGFnZU51bWJlcnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgdGhpcy5fcGFnZU51bWJlcnMgPSB2YWx1ZTtcbiAgICB0aGlzLnBhZ2VOdW1iZXJzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgcGFnZU51bWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VOdW1iZXJzO1xuICB9XG4gIFxuICBwcml2YXRlIF9zaG93QXJyb3dzOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2V0IHNob3dBcnJvd3ModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93QXJyb3dzID0gdmFsdWU7XG4gICAgdGhpcy5zaG93QXJyb3dzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgc2hvd0Fycm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0Fycm93cztcbiAgfVxuXG59XG4iLCI8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nSWY9XCJzaG93QXJyb3dzJCB8IGFzeW5jXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzRmlyc3RQYWdlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIlwiIChjbGljayk9XCJvblByZXZpb3VzKClcIiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZsYXF1bzs8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgKHNob3duUGFnZU51bWJlcnMkIHwgYXN5bmMpXCIgY2xhc3M9XCJwYWdlLWl0ZW1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUnOiBwYWdlTnVtYmVyLnNlbGVjdGVkIH1cIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiXCIgKGNsaWNrKT1cIm9uU2VsZWN0UGFnZSgkZXZlbnQsIHBhZ2VOdW1iZXIucGFnZSlcIiAqbmdJZj1cInBhZ2VOdW1iZXIucGFnZSAhPSAnLi4uJ1wiPlxuICAgICAgICAgICAge3sgcGFnZU51bWJlci5wYWdlIH19XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiICpuZ0lmPVwicGFnZU51bWJlci5zZWxlY3RlZFwiPihjdXJyZW50KTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nSWY9XCJzaG93QXJyb3dzJCB8IGFzeW5jXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzTGFzdFBhZ2UkIHwgYXN5bmNcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCIgYXJpYS1sYWJlbD1cIk5leHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZyYXF1bzs8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuPC91bD4iXX0=