@mintplayer/ng-bootstrap 21.12.9 → 21.12.11

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, model, viewChild, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive } from '@angular/core';
2
+ import { signal, model, viewChild, computed, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive, input, effect } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormsModule } from '@angular/forms';
@@ -11,14 +11,19 @@ import { Color } from '@mintplayer/ng-bootstrap';
11
11
 
12
12
  class BsMultiselectComponent {
13
13
  constructor() {
14
+ this.headerTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "headerTemplate" }] : []));
15
+ this.footerTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "footerTemplate" }] : []));
16
+ this.buttonTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "buttonTemplate" }] : []));
17
+ this.itemTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "itemTemplate" }] : []));
14
18
  this.colors = Color;
15
- this.items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
19
+ this.items = model([], ...(ngDevMode ? [{ debugName: "items" }] : []));
16
20
  this.selectedItems = model([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
17
21
  this.defaultButtonTemplate = viewChild.required('defaultButtonTemplate');
22
+ this.defaultItemTemplate = viewChild.required('defaultItemTemplate');
23
+ this.resolvedButtonTemplate = computed(() => this.buttonTemplate() ?? this.defaultButtonTemplate(), ...(ngDevMode ? [{ debugName: "resolvedButtonTemplate" }] : []));
24
+ this.resolvedItemTemplate = computed(() => this.itemTemplate() ?? this.defaultItemTemplate(), ...(ngDevMode ? [{ debugName: "resolvedItemTemplate" }] : []));
18
25
  }
19
- // itemChange(item: any, ev: Event) {
20
26
  itemChange(item, value) {
21
- // const value = (<any>ev.target).checked;
22
27
  if (value) {
23
28
  this.selectedItems.update(v => [...v, item]);
24
29
  }
@@ -27,18 +32,18 @@ class BsMultiselectComponent {
27
32
  }
28
33
  }
29
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsMultiselectComponent, isStandalone: true, selector: "bs-multiselect", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItems: "selectedItemsChange" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle [color]=\"colors.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 @if (headerTemplate) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\">{{ item }}</bs-toggle-button>\n }\n @if (footerTemplate) {\n <hr class=\"my-2\">\n }\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"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "directive", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: ["type", "isToggled", "name", "value", "group"], outputs: ["isToggledChange"] }, { kind: "directive", type: BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsMultiselectComponent, isStandalone: true, selector: "bs-multiselect", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", selectedItems: "selectedItemsChange" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true, isSignal: true }, { propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); 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 @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n", styles: [".mw-250px{min-width:250px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "directive", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: ["type", "isToggled", "name", "value", "group"], outputs: ["isToggledChange"] }, { kind: "directive", type: BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
36
  }
32
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsMultiselectComponent, decorators: [{
33
38
  type: Component,
34
- args: [{ selector: 'bs-multiselect', imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle [color]=\"colors.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 @if (headerTemplate) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\">{{ item }}</bs-toggle-button>\n }\n @if (footerTemplate) {\n <hr class=\"my-2\">\n }\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"] }]
35
- }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }, { type: i0.Output, args: ["selectedItemsChange"] }], defaultButtonTemplate: [{ type: i0.ViewChild, args: ['defaultButtonTemplate', { isSignal: true }] }] } });
39
+ args: [{ selector: 'bs-multiselect', imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); 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 @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n", styles: [".mw-250px{min-width:250px}\n"] }]
40
+ }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }, { type: i0.Output, args: ["itemsChange"] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }, { type: i0.Output, args: ["selectedItemsChange"] }], defaultButtonTemplate: [{ type: i0.ViewChild, args: ['defaultButtonTemplate', { isSignal: true }] }], defaultItemTemplate: [{ type: i0.ViewChild, args: ['defaultItemTemplate', { isSignal: true }] }] } });
36
41
 
37
42
  class BsHeaderTemplateDirective {
38
43
  constructor() {
39
44
  const template = inject(TemplateRef);
40
45
  const multiselect = inject(BsMultiselectComponent);
41
- multiselect.headerTemplate = template;
46
+ multiselect.headerTemplate.set(template);
42
47
  }
43
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsHeaderTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
44
49
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: BsHeaderTemplateDirective, isStandalone: true, selector: "[bsHeaderTemplate]", ngImport: i0 }); }
@@ -54,7 +59,7 @@ class BsFooterTemplateDirective {
54
59
  constructor() {
55
60
  const template = inject(TemplateRef);
56
61
  const multiselect = inject(BsMultiselectComponent);
57
- multiselect.footerTemplate = template;
62
+ multiselect.footerTemplate.set(template);
58
63
  }
59
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFooterTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
65
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: BsFooterTemplateDirective, isStandalone: true, selector: "[bsFooterTemplate]", ngImport: i0 }); }
@@ -70,7 +75,7 @@ class BsButtonTemplateDirective {
70
75
  constructor() {
71
76
  const template = inject(TemplateRef);
72
77
  const multiselect = inject(BsMultiselectComponent);
73
- multiselect.buttonTemplate = template;
78
+ multiselect.buttonTemplate.set(template);
74
79
  }
75
80
  static ngTemplateContextGuard(dir, ctx) {
76
81
  return true;
@@ -90,9 +95,41 @@ class BsRButtonTemplateContext {
90
95
  }
91
96
  }
92
97
 
98
+ class BsItemTemplateDirective {
99
+ constructor() {
100
+ this.multiselect = inject(BsMultiselectComponent);
101
+ /** Pass the items array — forwards to BsMultiselectComponent.items */
102
+ this.bsItemTemplateOf = input(undefined, ...(ngDevMode ? [{ debugName: "bsItemTemplateOf" }] : []));
103
+ const template = inject(TemplateRef);
104
+ this.multiselect.itemTemplate.set(template);
105
+ effect(() => {
106
+ const value = this.bsItemTemplateOf();
107
+ if (value) {
108
+ this.multiselect.items.set(value);
109
+ }
110
+ });
111
+ }
112
+ static ngTemplateContextGuard(dir, ctx) {
113
+ return true;
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsItemTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
116
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: BsItemTemplateDirective, isStandalone: true, selector: "[bsItemTemplate]", inputs: { bsItemTemplateOf: { classPropertyName: "bsItemTemplateOf", publicName: "bsItemTemplateOf", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsItemTemplateDirective, decorators: [{
119
+ type: Directive,
120
+ args: [{
121
+ selector: '[bsItemTemplate]',
122
+ }]
123
+ }], ctorParameters: () => [], propDecorators: { bsItemTemplateOf: [{ type: i0.Input, args: [{ isSignal: true, alias: "bsItemTemplateOf", required: false }] }] } });
124
+ class BsItemTemplateContext {
125
+ constructor() {
126
+ this.$implicit = null;
127
+ }
128
+ }
129
+
93
130
  /**
94
131
  * Generated bundle index. Do not edit.
95
132
  */
96
133
 
97
- export { BsButtonTemplateDirective, BsFooterTemplateDirective, BsHeaderTemplateDirective, BsMultiselectComponent, BsRButtonTemplateContext };
134
+ export { BsButtonTemplateDirective, BsFooterTemplateDirective, BsHeaderTemplateDirective, BsItemTemplateContext, BsItemTemplateDirective, BsMultiselectComponent, BsRButtonTemplateContext };
98
135
  //# sourceMappingURL=mintplayer-ng-bootstrap-multiselect.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-multiselect.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.html","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/header-template/header-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/footer-template/footer-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/button-template/button-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/mintplayer-ng-bootstrap-multiselect.ts"],"sourcesContent":["import { Component, input, model, TemplateRef, TrackByFunction, viewChild, ChangeDetectionStrategy} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsToggleButtonComponent } from '@mintplayer/ng-bootstrap/toggle-button';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss'],\n imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsMultiselectComponent<T> {\n\n headerTemplate?: TemplateRef<any>;\n footerTemplate?: TemplateRef<any>;\n buttonTemplate?: TemplateRef<any>;\n colors = Color;\n\n\n readonly items = input<T[]>([]);\n readonly selectedItems = model<T[]>([]);\n readonly defaultButtonTemplate = viewChild.required<TemplateRef<any>>('defaultButtonTemplate');\n\n // itemChange(item: any, ev: Event) {\n itemChange(item: T, value: boolean | null) {\n // const value = (<any>ev.target).checked;\n if (value) {\n this.selectedItems.update(v => [...v, item]);\n } else {\n this.selectedItems.update(v => v.filter(i => i !== item));\n }\n }\n\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle [color]=\"colors.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 @if (headerTemplate) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\">{{ item }}</bs-toggle-button>\n }\n @if (footerTemplate) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsHeaderTemplate]',\n})\nexport class BsHeaderTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.headerTemplate = template;\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsFooterTemplate]',\n})\nexport class BsFooterTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.footerTemplate = template;\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsButtonTemplate]',\n})\nexport class BsButtonTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.buttonTemplate = template;\n }\n \n public static ngTemplateContextGuard<TData>(\n dir: BsButtonTemplateDirective<TData>,\n ctx: any\n ): ctx is BsRButtonTemplateContext {\n return true;\n }\n\n}\n\nexport class BsRButtonTemplateContext {\n public $implicit: number = null!;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-multiselect.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.html","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/header-template/header-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/footer-template/footer-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/button-template/button-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/mintplayer-ng-bootstrap-multiselect.ts"],"sourcesContent":["import { Component, computed, model, signal, TemplateRef, viewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsToggleButtonComponent } from '@mintplayer/ng-bootstrap/toggle-button';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss'],\n imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsMultiselectComponent<T> {\n\n readonly headerTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly footerTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly buttonTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly itemTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly colors = Color;\n\n readonly items = model<T[]>([]);\n readonly selectedItems = model<T[]>([]);\n readonly defaultButtonTemplate = viewChild.required<TemplateRef<any>>('defaultButtonTemplate');\n readonly defaultItemTemplate = viewChild.required<TemplateRef<any>>('defaultItemTemplate');\n\n readonly resolvedButtonTemplate = computed(() => this.buttonTemplate() ?? this.defaultButtonTemplate());\n readonly resolvedItemTemplate = computed(() => this.itemTemplate() ?? this.defaultItemTemplate());\n\n itemChange(item: T, value: boolean | null) {\n if (value) {\n this.selectedItems.update(v => [...v, item]);\n } else {\n this.selectedItems.update(v => v.filter(i => i !== item));\n }\n }\n\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); 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 @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsHeaderTemplate]',\n})\nexport class BsHeaderTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.headerTemplate.set(template);\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsFooterTemplate]',\n})\nexport class BsFooterTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.footerTemplate.set(template);\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsButtonTemplate]',\n})\nexport class BsButtonTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.buttonTemplate.set(template);\n }\n\n public static ngTemplateContextGuard<TData>(\n dir: BsButtonTemplateDirective<TData>,\n ctx: any\n ): ctx is BsRButtonTemplateContext {\n return true;\n }\n\n}\n\nexport class BsRButtonTemplateContext {\n public $implicit: number = null!;\n}\n","import { Directive, effect, inject, input, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsItemTemplate]',\n})\nexport class BsItemTemplateDirective<T> {\n private multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n\n constructor() {\n const template = inject(TemplateRef);\n this.multiselect.itemTemplate.set(template);\n\n effect(() => {\n const value = this.bsItemTemplateOf();\n if (value) {\n this.multiselect.items.set(value);\n }\n });\n }\n\n public static ngTemplateContextGuard<TData>(\n dir: BsItemTemplateDirective<TData>,\n ctx: any\n ): ctx is BsItemTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>> {\n return true;\n }\n\n /** Pass the items array — forwards to BsMultiselectComponent.items */\n readonly bsItemTemplateOf = input<T[] | undefined>(undefined);\n}\n\nexport class BsItemTemplateContext<T> {\n public $implicit: T = null!;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mintplayer/ng-bootstrap",
3
3
  "private": false,
4
- "version": "21.12.9",
4
+ "version": "21.12.11",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
@@ -1,40 +1,57 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef } from '@angular/core';
3
3
  import { Color } from '@mintplayer/ng-bootstrap';
4
4
 
5
5
  declare class BsMultiselectComponent<T> {
6
- headerTemplate?: TemplateRef<any>;
7
- footerTemplate?: TemplateRef<any>;
8
- buttonTemplate?: TemplateRef<any>;
9
- colors: typeof Color;
10
- readonly items: i0.InputSignal<T[]>;
11
- readonly selectedItems: i0.ModelSignal<T[]>;
12
- readonly defaultButtonTemplate: i0.Signal<TemplateRef<any>>;
6
+ readonly headerTemplate: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
7
+ readonly footerTemplate: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
8
+ readonly buttonTemplate: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
9
+ readonly itemTemplate: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
10
+ readonly colors: typeof Color;
11
+ readonly items: _angular_core.ModelSignal<T[]>;
12
+ readonly selectedItems: _angular_core.ModelSignal<T[]>;
13
+ readonly defaultButtonTemplate: _angular_core.Signal<TemplateRef<any>>;
14
+ readonly defaultItemTemplate: _angular_core.Signal<TemplateRef<any>>;
15
+ readonly resolvedButtonTemplate: _angular_core.Signal<TemplateRef<any>>;
16
+ readonly resolvedItemTemplate: _angular_core.Signal<TemplateRef<any>>;
13
17
  itemChange(item: T, value: boolean | null): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<BsMultiselectComponent<any>, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<BsMultiselectComponent<any>, "bs-multiselect", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; }, { "selectedItems": "selectedItemsChange"; }, never, never, true, never>;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsMultiselectComponent<any>, never>;
19
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsMultiselectComponent<any>, "bs-multiselect", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; "selectedItems": "selectedItemsChange"; }, never, never, true, never>;
16
20
  }
17
21
 
18
22
  declare class BsHeaderTemplateDirective<T> {
19
23
  constructor();
20
- static ɵfac: i0.ɵɵFactoryDeclaration<BsHeaderTemplateDirective<any>, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<BsHeaderTemplateDirective<any>, "[bsHeaderTemplate]", never, {}, {}, never, never, true, never>;
24
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsHeaderTemplateDirective<any>, never>;
25
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BsHeaderTemplateDirective<any>, "[bsHeaderTemplate]", never, {}, {}, never, never, true, never>;
22
26
  }
23
27
 
24
28
  declare class BsFooterTemplateDirective<T> {
25
29
  constructor();
26
- static ɵfac: i0.ɵɵFactoryDeclaration<BsFooterTemplateDirective<any>, never>;
27
- static ɵdir: i0.ɵɵDirectiveDeclaration<BsFooterTemplateDirective<any>, "[bsFooterTemplate]", never, {}, {}, never, never, true, never>;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsFooterTemplateDirective<any>, never>;
31
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BsFooterTemplateDirective<any>, "[bsFooterTemplate]", never, {}, {}, never, never, true, never>;
28
32
  }
29
33
 
30
34
  declare class BsButtonTemplateDirective<T> {
31
35
  constructor();
32
36
  static ngTemplateContextGuard<TData>(dir: BsButtonTemplateDirective<TData>, ctx: any): ctx is BsRButtonTemplateContext;
33
- static ɵfac: i0.ɵɵFactoryDeclaration<BsButtonTemplateDirective<any>, never>;
34
- static ɵdir: i0.ɵɵDirectiveDeclaration<BsButtonTemplateDirective<any>, "[bsButtonTemplate]", never, {}, {}, never, never, true, never>;
37
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsButtonTemplateDirective<any>, never>;
38
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BsButtonTemplateDirective<any>, "[bsButtonTemplate]", never, {}, {}, never, never, true, never>;
35
39
  }
36
40
  declare class BsRButtonTemplateContext {
37
41
  $implicit: number;
38
42
  }
39
43
 
40
- export { BsButtonTemplateDirective, BsFooterTemplateDirective, BsHeaderTemplateDirective, BsMultiselectComponent, BsRButtonTemplateContext };
44
+ declare class BsItemTemplateDirective<T> {
45
+ private multiselect;
46
+ constructor();
47
+ static ngTemplateContextGuard<TData>(dir: BsItemTemplateDirective<TData>, ctx: any): ctx is BsItemTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>>;
48
+ /** Pass the items array — forwards to BsMultiselectComponent.items */
49
+ readonly bsItemTemplateOf: _angular_core.InputSignal<T[] | undefined>;
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsItemTemplateDirective<any>, never>;
51
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BsItemTemplateDirective<any>, "[bsItemTemplate]", never, { "bsItemTemplateOf": { "alias": "bsItemTemplateOf"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
52
+ }
53
+ declare class BsItemTemplateContext<T> {
54
+ $implicit: T;
55
+ }
56
+
57
+ export { BsButtonTemplateDirective, BsFooterTemplateDirective, BsHeaderTemplateDirective, BsItemTemplateContext, BsItemTemplateDirective, BsMultiselectComponent, BsRButtonTemplateContext };