@mintplayer/ng-bootstrap 13.2.0 → 13.2.1

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.
@@ -1370,7 +1370,11 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
1370
1370
  });
1371
1371
  }
1372
1372
  this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);
1373
- this.overlayRef.attach(this.templatePortal);
1373
+ const view = this.overlayRef.attach(this.templatePortal);
1374
+ if (this.dropdown.sameDropdownWidth) {
1375
+ const width = this.dropdown.elementRef.nativeElement.offsetWidth;
1376
+ view.rootNodes[0].style.width = width + 'px';
1377
+ }
1374
1378
  }
1375
1379
  else {
1376
1380
  if (this.overlayRef) {
@@ -1445,6 +1449,7 @@ class BsDropdownDirective {
1445
1449
  this.hasBackdrop = false;
1446
1450
  this.sameWidth = false;
1447
1451
  this.closeOnClickOutside = false;
1452
+ this.sameDropdownWidth = false;
1448
1453
  this.isOpenChange = new EventEmitter();
1449
1454
  this.elementRef = elementRef;
1450
1455
  }
@@ -1464,7 +1469,7 @@ class BsDropdownDirective {
1464
1469
  }
1465
1470
  }
1466
1471
  BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1467
- BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", sameWidth: "sameWidth", closeOnClickOutside: "closeOnClickOutside", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, host: { listeners: { "window:blur": "onBlur()" } }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1472
+ BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: { hasBackdrop: "hasBackdrop", sameWidth: "sameWidth", closeOnClickOutside: "closeOnClickOutside", sameDropdownWidth: "sameDropdownWidth", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, host: { listeners: { "window:blur": "onBlur()" } }, queries: [{ propertyName: "menu", first: true, predicate: BsDropdownMenuDirective, descendants: true }, { propertyName: "toggle", first: true, predicate: BsDropdownToggleDirective, descendants: true }], ngImport: i0 });
1468
1473
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsDropdownDirective, decorators: [{
1469
1474
  type: Directive,
1470
1475
  args: [{
@@ -1482,6 +1487,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
1482
1487
  type: Input
1483
1488
  }], closeOnClickOutside: [{
1484
1489
  type: Input
1490
+ }], sameDropdownWidth: [{
1491
+ type: Input
1485
1492
  }], isOpenChange: [{
1486
1493
  type: Output
1487
1494
  }], isOpen: [{
@@ -1517,7 +1524,7 @@ class BsDatepickerComponent {
1517
1524
  }
1518
1525
  }
1519
1526
  BsDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1520
- BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsDatepickerComponent, selector: "bs-datepicker", inputs: { selectedDate: "selectedDate", currentMonth: "currentMonth" }, outputs: { selectedDateChange: "selectedDateChange", currentMonthChange: "currentMonthChange" }, ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""], components: [{ type: BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i1.DatePipe } });
1527
+ BsDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsDatepickerComponent, selector: "bs-datepicker", inputs: { selectedDate: "selectedDate", currentMonth: "currentMonth" }, outputs: { selectedDateChange: "selectedDateChange", currentMonthChange: "currentMonthChange" }, ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>", styles: [""], components: [{ type: BsCalendarComponent, selector: "bs-calendar", inputs: ["currentMonth", "selectedDate"], outputs: ["currentMonthChange", "selectedDateChange"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "date": i1.DatePipe } });
1521
1528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsDatepickerComponent, decorators: [{
1522
1529
  type: Component,
1523
1530
  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: [""] }]
@@ -2792,7 +2799,7 @@ class BsMultiselectComponent {
2792
2799
  }
2793
2800
  }
2794
2801
  BsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2795
- BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true }], ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>", styles: [".mw-250px{min-width:250px}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2802
+ BsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsMultiselectComponent, selector: "bs-multiselect", inputs: { items: "items", selectedItems: "selectedItems" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true }], ngImport: i0, template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>", styles: [".mw-250px{min-width:250px}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2796
2803
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsMultiselectComponent, decorators: [{
2797
2804
  type: Component,
2798
2805
  args: [{ selector: 'bs-multiselect', template: "<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>", styles: [".mw-250px{min-width:250px}\n"] }]
@@ -3597,7 +3604,7 @@ class BsSelect2Component {
3597
3604
  }
3598
3605
  }
3599
3606
  BsSelect2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
3600
- BsSelect2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "window:resize": "onResize()", "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n", styles: [".items-box{display:block;position:relative;width:100%;min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "async": i1.AsyncPipe, "inList": BsInListPipe } });
3607
+ BsSelect2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "window:resize": "onResize()", "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n", styles: [".items-box{display:block;position:relative;width:100%;min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }], pipes: { "async": i1.AsyncPipe, "inList": BsInListPipe } });
3601
3608
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsSelect2Component, decorators: [{
3602
3609
  type: Component,
3603
3610
  args: [{ selector: 'bs-select2', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n", styles: [".items-box{display:block;position:relative;width:100%;min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"] }]
@@ -3831,43 +3838,9 @@ class BsTimepickerComponent {
3831
3838
  this.isOpen = false;
3832
3839
  this.presetTimestamps = [];
3833
3840
  this.isFocused = false;
3834
- // filterInput(value: any, max: number) {
3835
- // const val = parseInt(value);
3836
- // if (isNaN(val)) {
3837
- // return 0;
3838
- // } else {
3839
- // return Math.min(max, Math.abs(val));
3840
- // }
3841
- // }
3842
- // onPaste(event: ClipboardEvent, max: number) {
3843
- // // event.preventDefault();
3844
- // const data = event.clipboardData || (<any>window).clipboardData;
3845
- // const contents = data.getData('text');
3846
- // const filtered = this.filterInput(contents, max);
3847
- // // this.zone.run(() => {
3848
- // // (<any>event.target).value = filtered;
3849
- // // this.ref.detectChanges();
3850
- // // });
3851
- // // if (max == 59) {
3852
- // // this.minutes = filtered;
3853
- // // } else {
3854
- // // this.hours = filtered;
3855
- // // }
3856
- // // setTimeout(() => {
3857
- // // (<any>event.target).value = filtered;
3858
- // // }, 2000);
3859
- // this.renderer.setValue(event.target, filtered.toString());
3860
- // this.model.valueAccessor?.writeValue(filtered.toString());
3861
- // }
3862
- // ngOnChanges(changes: SimpleChanges): void {
3863
- // console.log('changes', changes);
3864
- // }
3865
- //#region Hours
3866
- this._hours = 0;
3867
- // hours = 0;
3868
- //#endregion
3869
- //#region Minutes
3870
- this._minutes = 0;
3841
+ //#region SelectedTime
3842
+ this._selectedTime = new Date();
3843
+ this.selectedTimeChange = new EventEmitter();
3871
3844
  const today = new Date();
3872
3845
  today.setHours(0);
3873
3846
  today.setMinutes(0);
@@ -3890,11 +3863,11 @@ class BsTimepickerComponent {
3890
3863
  const input = event.target;
3891
3864
  const val = parseInt(input.value);
3892
3865
  if (isNaN(val)) {
3893
- input.value = '0';
3866
+ input.value = '00';
3894
3867
  }
3895
3868
  else {
3896
3869
  const result = Math.min(max, Math.abs(val));
3897
- input.value = result.toString();
3870
+ input.value = result.toString().padStart(2, '0');
3898
3871
  if (nextInput) {
3899
3872
  // const maxAllowedNumberOfDigits = input.max.length;
3900
3873
  if (result * 10 > parseInt(input.max)) {
@@ -3903,25 +3876,62 @@ class BsTimepickerComponent {
3903
3876
  }
3904
3877
  }
3905
3878
  }
3879
+ setTime(time) {
3880
+ this.selectedTime = time;
3881
+ this.isOpen = false;
3882
+ }
3883
+ get selectedTime() {
3884
+ return this._selectedTime;
3885
+ }
3886
+ set selectedTime(value) {
3887
+ // this.hours = value.getHours();
3888
+ // this.minutes = value.getMinutes();
3889
+ this._selectedTime = value;
3890
+ this.selectedTimeChange.emit(this._selectedTime);
3891
+ }
3892
+ //#endregion
3893
+ //#region Hours
3894
+ // private _hours = 0;
3906
3895
  get hours() {
3907
- return this._hours;
3896
+ // return this._hours;
3897
+ return this.selectedTime.getHours();
3908
3898
  }
3909
3899
  set hours(value) {
3910
- this._hours = value;
3900
+ // this._hours = value;
3901
+ const clone = new Date(this.selectedTime);
3902
+ clone.setHours(value);
3903
+ this.selectedTime = clone;
3911
3904
  }
3905
+ // hours = 0;
3906
+ //#endregion
3907
+ //#region Minutes
3908
+ // private _minutes = 0;
3912
3909
  get minutes() {
3913
- return this._minutes;
3910
+ // return this._minutes;
3911
+ return this.selectedTime.getMinutes();
3914
3912
  }
3915
3913
  set minutes(value) {
3916
- this._minutes = value;
3914
+ // this._minutes = value;
3915
+ // this.selectedTime.setMinutes(value);
3916
+ const clone = new Date(this.selectedTime);
3917
+ clone.setMinutes(value);
3918
+ this.selectedTime = clone;
3919
+ }
3920
+ //#endregion
3921
+ timesEqual(time1, time2) {
3922
+ return (time1.getHours() === time2.getHours()) && (time1.getMinutes() === time2.getMinutes());
3917
3923
  }
3918
3924
  }
3919
3925
  BsTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsTimepickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
3920
- BsTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsTimepickerComponent, selector: "bs-timepicker", ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [closeOnClickOutside]=\"true\">\n <span class=\"input-group\">\n <span class=\"form-control d-flex\" [class.focus]=\"isFocused\">\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"23\" (input)=\"setNumber($event, 23, minuteBox)\" bsEnhancedPaste [(ngModel)]=\"hours\" (focus)=\"selectAll(hourBox)\" (blur)=\"isFocused = false\" #hourBox class=\"w-100 border-0 bg-transparent text-end\">\n </div>\n <span class=\"px-1\">:</span>\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"59\" (input)=\"setNumber($event, 59, null)\" bsEnhancedPaste [(ngModel)]=\"minutes\" (focus)=\"selectAll(minuteBox)\" (blur)=\"isFocused = false\" #minuteBox class=\"w-100 border-0 bg-transparent\">\n </div>\n </span>\n <button class=\"btn btn-default\" *bsDropdownToggle>\n <i class=\"bi bi-clock\"></i>\n </button>\n </span>\n <ul class=\"list-group\" *bsDropdownMenu>\n <li class=\"list-group-item\" *ngFor=\"let timestamp of presetTimestamps\">\n {{ timestamp | date: 'HH:mm' }}\n </li>\n </ul>\n</div>", styles: [":host{display:inline-block}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;outline:0px!important}.form-control{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: EnhancedPasteDirective, selector: "input[type=\"number\"][bsEnhancedPaste]", outputs: ["numberOverflow"] }, { type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i3$1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { type: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "date": i1.DatePipe } });
3926
+ BsTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsTimepickerComponent, selector: "bs-timepicker", inputs: { selectedTime: "selectedTime" }, outputs: { selectedTimeChange: "selectedTimeChange" }, ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [closeOnClickOutside]=\"true\" [sameDropdownWidth]=\"true\">\n <span class=\"input-group\">\n <span class=\"form-control d-flex\" [class.focus]=\"isFocused\">\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"23\" (input)=\"setNumber($event, 23, minuteBox)\" bsEnhancedPaste [ngModel]=\"hours | number: '2.0'\" (ngModelChange)=\"hours = $event\" (focus)=\"selectAll(hourBox)\" (blur)=\"isFocused = false\" #hourBox class=\"w-100 border-0 bg-transparent text-end\">\n </div>\n <span class=\"px-1\">:</span>\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"59\" (input)=\"setNumber($event, 59, null)\" bsEnhancedPaste [ngModel]=\"minutes | number: '2.0'\" (ngModelChange)=\"minutes = $event\" (focus)=\"selectAll(minuteBox)\" (blur)=\"isFocused = false\" #minuteBox class=\"w-100 border-0 bg-transparent\">\n </div>\n </span>\n <button class=\"btn btn-secondary\" (click)=\"isOpen = !isOpen\">\n <i class=\"bi bi-clock\"></i>\n </button>\n </span>\n <ul class=\"list-group\" *bsDropdownMenu>\n <li class=\"list-group-item list-group-item-action\" [class.active]=\"timesEqual(selectedTime, timestamp)\" *ngFor=\"let timestamp of presetTimestamps\" (click)=\"setTime(timestamp)\">\n {{ timestamp | date: 'HH:mm' }}\n </li>\n </ul>\n</div>", styles: [":host{display:inline-block}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;outline:0px!important}.form-control{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}.list-group{max-height:250px;overflow-y:auto}.list-group .list-group-item-action{cursor:pointer}\n"], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { type: EnhancedPasteDirective, selector: "input[type=\"number\"][bsEnhancedPaste]", outputs: ["numberOverflow"] }, { type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i3$1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { type: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "number": i1.DecimalPipe, "date": i1.DatePipe } });
3921
3927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsTimepickerComponent, decorators: [{
3922
3928
  type: Component,
3923
- args: [{ selector: 'bs-timepicker', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [closeOnClickOutside]=\"true\">\n <span class=\"input-group\">\n <span class=\"form-control d-flex\" [class.focus]=\"isFocused\">\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"23\" (input)=\"setNumber($event, 23, minuteBox)\" bsEnhancedPaste [(ngModel)]=\"hours\" (focus)=\"selectAll(hourBox)\" (blur)=\"isFocused = false\" #hourBox class=\"w-100 border-0 bg-transparent text-end\">\n </div>\n <span class=\"px-1\">:</span>\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"59\" (input)=\"setNumber($event, 59, null)\" bsEnhancedPaste [(ngModel)]=\"minutes\" (focus)=\"selectAll(minuteBox)\" (blur)=\"isFocused = false\" #minuteBox class=\"w-100 border-0 bg-transparent\">\n </div>\n </span>\n <button class=\"btn btn-default\" *bsDropdownToggle>\n <i class=\"bi bi-clock\"></i>\n </button>\n </span>\n <ul class=\"list-group\" *bsDropdownMenu>\n <li class=\"list-group-item\" *ngFor=\"let timestamp of presetTimestamps\">\n {{ timestamp | date: 'HH:mm' }}\n </li>\n </ul>\n</div>", styles: [":host{display:inline-block}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;outline:0px!important}.form-control{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}\n"] }]
3924
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; } });
3929
+ args: [{ selector: 'bs-timepicker', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [closeOnClickOutside]=\"true\" [sameDropdownWidth]=\"true\">\n <span class=\"input-group\">\n <span class=\"form-control d-flex\" [class.focus]=\"isFocused\">\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"23\" (input)=\"setNumber($event, 23, minuteBox)\" bsEnhancedPaste [ngModel]=\"hours | number: '2.0'\" (ngModelChange)=\"hours = $event\" (focus)=\"selectAll(hourBox)\" (blur)=\"isFocused = false\" #hourBox class=\"w-100 border-0 bg-transparent text-end\">\n </div>\n <span class=\"px-1\">:</span>\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"59\" (input)=\"setNumber($event, 59, null)\" bsEnhancedPaste [ngModel]=\"minutes | number: '2.0'\" (ngModelChange)=\"minutes = $event\" (focus)=\"selectAll(minuteBox)\" (blur)=\"isFocused = false\" #minuteBox class=\"w-100 border-0 bg-transparent\">\n </div>\n </span>\n <button class=\"btn btn-secondary\" (click)=\"isOpen = !isOpen\">\n <i class=\"bi bi-clock\"></i>\n </button>\n </span>\n <ul class=\"list-group\" *bsDropdownMenu>\n <li class=\"list-group-item list-group-item-action\" [class.active]=\"timesEqual(selectedTime, timestamp)\" *ngFor=\"let timestamp of presetTimestamps\" (click)=\"setTime(timestamp)\">\n {{ timestamp | date: 'HH:mm' }}\n </li>\n </ul>\n</div>", styles: [":host{display:inline-block}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;outline:0px!important}.form-control{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}.list-group{max-height:250px;overflow-y:auto}.list-group .list-group-item-action{cursor:pointer}\n"] }]
3930
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { selectedTimeChange: [{
3931
+ type: Output
3932
+ }], selectedTime: [{
3933
+ type: Input
3934
+ }] } });
3925
3935
 
3926
3936
  class EnhancedPasteModule {
3927
3937
  }
@@ -4247,7 +4257,7 @@ class BsTypeaheadComponent {
4247
4257
  }
4248
4258
  }
4249
4259
  BsTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4250
- BsTypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsTypeaheadComponent, selector: "bs-typeahead", inputs: { searchterm: "searchterm", isLoadingText: "isLoadingText", noSuggestionsText: "noSuggestionsText", suggestions: "suggestions" }, outputs: { provideSuggestions: "provideSuggestions", suggestionSelected: "suggestionSelected", searchtermChange: "searchtermChange", submitted: "submitted" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>", styles: ["bs-progress{margin-top:-8px;margin-bottom:6px}\n"], components: [{ type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "isOpen"], outputs: ["isOpenChange"] }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe } });
4260
+ BsTypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsTypeaheadComponent, selector: "bs-typeahead", inputs: { searchterm: "searchterm", isLoadingText: "isLoadingText", noSuggestionsText: "noSuggestionsText", suggestions: "suggestions" }, outputs: { provideSuggestions: "provideSuggestions", suggestionSelected: "suggestionSelected", searchtermChange: "searchtermChange", submitted: "submitted" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], ngImport: i0, template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>", styles: ["bs-progress{margin-top:-8px;margin-bottom:6px}\n"], components: [{ type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }], directives: [{ type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe } });
4251
4261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsTypeaheadComponent, decorators: [{
4252
4262
  type: Component,
4253
4263
  args: [{ selector: 'bs-typeahead', template: "<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>", styles: ["bs-progress{margin-top:-8px;margin-bottom:6px}\n"] }]