@abp/ng.components 10.2.0 → 10.3.0-rc.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.
@@ -10,23 +10,23 @@ import { of, Subject, debounceTime, distinctUntilChanged, finalize } from 'rxjs'
10
10
  class LookupSearchComponent {
11
11
  constructor() {
12
12
  this.destroyRef = inject(DestroyRef);
13
- this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
14
- this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
15
- this.debounceTime = input(300, ...(ngDevMode ? [{ debugName: "debounceTime" }] : []));
16
- this.minSearchLength = input(0, ...(ngDevMode ? [{ debugName: "minSearchLength" }] : []));
17
- this.displayKey = input('displayName', ...(ngDevMode ? [{ debugName: "displayKey" }] : []));
18
- this.valueKey = input('key', ...(ngDevMode ? [{ debugName: "valueKey" }] : []));
19
- this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
20
- this.searchFn = input(() => of([]), ...(ngDevMode ? [{ debugName: "searchFn" }] : []));
21
- this.selectedValue = model('', ...(ngDevMode ? [{ debugName: "selectedValue" }] : []));
22
- this.displayValue = model('', ...(ngDevMode ? [{ debugName: "displayValue" }] : []));
13
+ this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
14
+ this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
15
+ this.debounceTime = input(300, ...(ngDevMode ? [{ debugName: "debounceTime" }] : /* istanbul ignore next */ []));
16
+ this.minSearchLength = input(0, ...(ngDevMode ? [{ debugName: "minSearchLength" }] : /* istanbul ignore next */ []));
17
+ this.displayKey = input('displayName', ...(ngDevMode ? [{ debugName: "displayKey" }] : /* istanbul ignore next */ []));
18
+ this.valueKey = input('key', ...(ngDevMode ? [{ debugName: "valueKey" }] : /* istanbul ignore next */ []));
19
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
20
+ this.searchFn = input(() => of([]), ...(ngDevMode ? [{ debugName: "searchFn" }] : /* istanbul ignore next */ []));
21
+ this.selectedValue = model('', ...(ngDevMode ? [{ debugName: "selectedValue" }] : /* istanbul ignore next */ []));
22
+ this.displayValue = model('', ...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
23
23
  this.itemSelected = output();
24
24
  this.searchChanged = output();
25
- this.itemTemplate = contentChild('itemTemplate', ...(ngDevMode ? [{ debugName: "itemTemplate" }] : []));
26
- this.noResultsTemplate = contentChild('noResultsTemplate', ...(ngDevMode ? [{ debugName: "noResultsTemplate" }] : []));
27
- this.searchResults = signal([], ...(ngDevMode ? [{ debugName: "searchResults" }] : []));
28
- this.showDropdown = signal(true, ...(ngDevMode ? [{ debugName: "showDropdown" }] : []));
29
- this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
25
+ this.itemTemplate = contentChild('itemTemplate', ...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
26
+ this.noResultsTemplate = contentChild('noResultsTemplate', ...(ngDevMode ? [{ debugName: "noResultsTemplate" }] : /* istanbul ignore next */ []));
27
+ this.searchResults = signal([], ...(ngDevMode ? [{ debugName: "searchResults" }] : /* istanbul ignore next */ []));
28
+ this.showDropdown = signal(true, ...(ngDevMode ? [{ debugName: "showDropdown" }] : /* istanbul ignore next */ []));
29
+ this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
30
30
  this.searchSubject = new Subject();
31
31
  }
32
32
  ngOnInit() {
@@ -90,10 +90,10 @@ class LookupSearchComponent {
90
90
  getDisplayValue(item) {
91
91
  return String(item[this.displayKey()] ?? item[this.valueKey()] ?? '');
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: LookupSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: LookupSearchComponent, isStandalone: true, selector: "abp-lookup-search", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, minSearchLength: { classPropertyName: "minSearchLength", publicName: "minSearchLength", isSignal: true, isRequired: false, transformFunction: null }, displayKey: { classPropertyName: "displayKey", publicName: "displayKey", isSignal: true, isRequired: false, transformFunction: null }, valueKey: { classPropertyName: "valueKey", publicName: "valueKey", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: false, transformFunction: null }, selectedValue: { classPropertyName: "selectedValue", publicName: "selectedValue", isSignal: true, isRequired: false, transformFunction: null }, displayValue: { classPropertyName: "displayValue", publicName: "displayValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedValue: "selectedValueChange", displayValue: "displayValueChange", itemSelected: "itemSelected", searchChanged: "searchChanged" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["itemTemplate"], descendants: true, isSignal: true }, { propertyName: "noResultsTemplate", first: true, predicate: ["noResultsTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".abp-lookup-dropdown{z-index:1060;max-height:200px;overflow-y:auto;top:100%;margin-top:.25rem;background-color:var(--lpx-content-bg)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LookupSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: LookupSearchComponent, isStandalone: true, selector: "abp-lookup-search", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, minSearchLength: { classPropertyName: "minSearchLength", publicName: "minSearchLength", isSignal: true, isRequired: false, transformFunction: null }, displayKey: { classPropertyName: "displayKey", publicName: "displayKey", isSignal: true, isRequired: false, transformFunction: null }, valueKey: { classPropertyName: "valueKey", publicName: "valueKey", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: false, transformFunction: null }, selectedValue: { classPropertyName: "selectedValue", publicName: "selectedValue", isSignal: true, isRequired: false, transformFunction: null }, displayValue: { classPropertyName: "displayValue", publicName: "displayValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedValue: "selectedValueChange", displayValue: "displayValueChange", itemSelected: "itemSelected", searchChanged: "searchChanged" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["itemTemplate"], descendants: true, isSignal: true }, { propertyName: "noResultsTemplate", first: true, predicate: ["noResultsTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".abp-lookup-dropdown{z-index:1060;max-height:200px;overflow-y:auto;top:100%;margin-top:.25rem;background-color:var(--lpx-content-bg)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: LookupSearchComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LookupSearchComponent, decorators: [{
97
97
  type: Component,
98
98
  args: [{ selector: 'abp-lookup-search', imports: [FormsModule, LocalizationPipe, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".abp-lookup-dropdown{z-index:1060;max-height:200px;overflow-y:auto;top:100%;margin-top:.25rem;background-color:var(--lpx-content-bg)}\n"] }]
99
99
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], debounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounceTime", required: false }] }], minSearchLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSearchLength", required: false }] }], displayKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayKey", required: false }] }], valueKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueKey", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], searchFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchFn", required: false }] }], selectedValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedValue", required: false }] }, { type: i0.Output, args: ["selectedValueChange"] }], displayValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayValue", required: false }] }, { type: i0.Output, args: ["displayValueChange"] }], itemSelected: [{ type: i0.Output, args: ["itemSelected"] }], searchChanged: [{ type: i0.Output, args: ["searchChanged"] }], itemTemplate: [{ type: i0.ContentChild, args: ['itemTemplate', { isSignal: true }] }], noResultsTemplate: [{ type: i0.ContentChild, args: ['noResultsTemplate', { isSignal: true }] }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-lookup.mjs","sources":["../../../../packages/components/lookup/src/lib/lookup-search.component.ts","../../../../packages/components/lookup/src/lib/lookup-search.component.html","../../../../packages/components/lookup/src/abp-ng.components-lookup.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n TemplateRef,\r\n contentChild,\r\n DestroyRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { Subject, Observable, debounceTime, distinctUntilChanged, of, finalize } from 'rxjs';\r\n\r\nexport interface LookupItem {\r\n key: string;\r\n displayName: string;\r\n [key: string]: unknown;\r\n}\r\n\r\nexport type LookupSearchFn<T = LookupItem> = (filter: string) => Observable<T[]>;\r\n\r\n@Component({\r\n selector: 'abp-lookup-search',\r\n templateUrl: './lookup-search.component.html',\r\n styleUrl: './lookup-search.component.scss',\r\n imports: [FormsModule, LocalizationPipe, NgTemplateOutlet],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LookupSearchComponent<T extends LookupItem = LookupItem> implements OnInit {\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly label = input<string>();\r\n readonly placeholder = input<string>('');\r\n readonly debounceTime = input<number>(300);\r\n readonly minSearchLength = input<number>(0);\r\n readonly displayKey = input<keyof T>('displayName' as keyof T);\r\n readonly valueKey = input<keyof T>('key' as keyof T);\r\n readonly disabled = input<boolean>(false);\r\n\r\n readonly searchFn = input<LookupSearchFn<T>>(() => of([]));\r\n\r\n readonly selectedValue = model<string>('');\r\n readonly displayValue = model<string>('');\r\n\r\n readonly itemSelected = output<T>();\r\n readonly searchChanged = output<string>();\r\n\r\n readonly itemTemplate = contentChild<TemplateRef<{ $implicit: T }>>('itemTemplate');\r\n readonly noResultsTemplate = contentChild<TemplateRef<void>>('noResultsTemplate');\r\n\r\n readonly searchResults = signal<T[]>([]);\r\n readonly showDropdown = signal(true);\r\n readonly isLoading = signal(false);\r\n\r\n private readonly searchSubject = new Subject<string>();\r\n\r\n ngOnInit() {\r\n this.searchSubject\r\n .pipe(\r\n debounceTime(this.debounceTime()),\r\n distinctUntilChanged(),\r\n takeUntilDestroyed(this.destroyRef),\r\n )\r\n .subscribe(filter => {\r\n this.performSearch(filter);\r\n });\r\n }\r\n\r\n onSearchInput(filter: string) {\r\n this.displayValue.set(filter);\r\n this.showDropdown.set(true);\r\n this.searchChanged.emit(filter);\r\n\r\n if (filter.length >= this.minSearchLength()) {\r\n this.searchSubject.next(filter);\r\n } else {\r\n this.searchResults.set([]);\r\n }\r\n }\r\n\r\n onSearchFocus() {\r\n this.showDropdown.set(true);\r\n const currentFilter = this.displayValue() || '';\r\n if (currentFilter.length >= this.minSearchLength()) {\r\n this.performSearch(currentFilter);\r\n }\r\n }\r\n\r\n onSearchBlur(event: FocusEvent) {\r\n const relatedTarget = event.relatedTarget as HTMLElement;\r\n if (!relatedTarget?.closest('.abp-lookup-dropdown')) {\r\n this.showDropdown.set(false);\r\n }\r\n }\r\n\r\n selectItem(item: T) {\r\n const displayKeyValue = String(item[this.displayKey()] ?? '');\r\n const valueKeyValue = String(item[this.valueKey()] ?? '');\r\n\r\n this.displayValue.set(displayKeyValue);\r\n this.selectedValue.set(valueKeyValue);\r\n this.searchResults.set([]);\r\n this.showDropdown.set(false);\r\n this.itemSelected.emit(item);\r\n }\r\n\r\n clearSelection() {\r\n this.displayValue.set('');\r\n this.selectedValue.set('');\r\n this.searchResults.set([]);\r\n }\r\n\r\n private performSearch(filter: string) {\r\n this.isLoading.set(true);\r\n\r\n this.searchFn()(filter)\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n finalize(() => this.isLoading.set(false)),\r\n )\r\n .subscribe({\r\n next: results => {\r\n this.searchResults.set(results);\r\n },\r\n error: () => {\r\n this.searchResults.set([]);\r\n },\r\n });\r\n }\r\n\r\n getDisplayValue(item: T): string {\r\n return String(item[this.displayKey()] ?? item[this.valueKey()] ?? '');\r\n }\r\n}\r\n","<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-lookup.mjs","sources":["../../../../packages/components/lookup/src/lib/lookup-search.component.ts","../../../../packages/components/lookup/src/lib/lookup-search.component.html","../../../../packages/components/lookup/src/abp-ng.components-lookup.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n TemplateRef,\r\n contentChild,\r\n DestroyRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { Subject, Observable, debounceTime, distinctUntilChanged, of, finalize } from 'rxjs';\r\n\r\nexport interface LookupItem {\r\n key: string;\r\n displayName: string;\r\n [key: string]: unknown;\r\n}\r\n\r\nexport type LookupSearchFn<T = LookupItem> = (filter: string) => Observable<T[]>;\r\n\r\n@Component({\r\n selector: 'abp-lookup-search',\r\n templateUrl: './lookup-search.component.html',\r\n styleUrl: './lookup-search.component.scss',\r\n imports: [FormsModule, LocalizationPipe, NgTemplateOutlet],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LookupSearchComponent<T extends LookupItem = LookupItem> implements OnInit {\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly label = input<string>();\r\n readonly placeholder = input<string>('');\r\n readonly debounceTime = input<number>(300);\r\n readonly minSearchLength = input<number>(0);\r\n readonly displayKey = input<keyof T>('displayName' as keyof T);\r\n readonly valueKey = input<keyof T>('key' as keyof T);\r\n readonly disabled = input<boolean>(false);\r\n\r\n readonly searchFn = input<LookupSearchFn<T>>(() => of([]));\r\n\r\n readonly selectedValue = model<string>('');\r\n readonly displayValue = model<string>('');\r\n\r\n readonly itemSelected = output<T>();\r\n readonly searchChanged = output<string>();\r\n\r\n readonly itemTemplate = contentChild<TemplateRef<{ $implicit: T }>>('itemTemplate');\r\n readonly noResultsTemplate = contentChild<TemplateRef<void>>('noResultsTemplate');\r\n\r\n readonly searchResults = signal<T[]>([]);\r\n readonly showDropdown = signal(true);\r\n readonly isLoading = signal(false);\r\n\r\n private readonly searchSubject = new Subject<string>();\r\n\r\n ngOnInit() {\r\n this.searchSubject\r\n .pipe(\r\n debounceTime(this.debounceTime()),\r\n distinctUntilChanged(),\r\n takeUntilDestroyed(this.destroyRef),\r\n )\r\n .subscribe(filter => {\r\n this.performSearch(filter);\r\n });\r\n }\r\n\r\n onSearchInput(filter: string) {\r\n this.displayValue.set(filter);\r\n this.showDropdown.set(true);\r\n this.searchChanged.emit(filter);\r\n\r\n if (filter.length >= this.minSearchLength()) {\r\n this.searchSubject.next(filter);\r\n } else {\r\n this.searchResults.set([]);\r\n }\r\n }\r\n\r\n onSearchFocus() {\r\n this.showDropdown.set(true);\r\n const currentFilter = this.displayValue() || '';\r\n if (currentFilter.length >= this.minSearchLength()) {\r\n this.performSearch(currentFilter);\r\n }\r\n }\r\n\r\n onSearchBlur(event: FocusEvent) {\r\n const relatedTarget = event.relatedTarget as HTMLElement;\r\n if (!relatedTarget?.closest('.abp-lookup-dropdown')) {\r\n this.showDropdown.set(false);\r\n }\r\n }\r\n\r\n selectItem(item: T) {\r\n const displayKeyValue = String(item[this.displayKey()] ?? '');\r\n const valueKeyValue = String(item[this.valueKey()] ?? '');\r\n\r\n this.displayValue.set(displayKeyValue);\r\n this.selectedValue.set(valueKeyValue);\r\n this.searchResults.set([]);\r\n this.showDropdown.set(false);\r\n this.itemSelected.emit(item);\r\n }\r\n\r\n clearSelection() {\r\n this.displayValue.set('');\r\n this.selectedValue.set('');\r\n this.searchResults.set([]);\r\n }\r\n\r\n private performSearch(filter: string) {\r\n this.isLoading.set(true);\r\n\r\n this.searchFn()(filter)\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n finalize(() => this.isLoading.set(false)),\r\n )\r\n .subscribe({\r\n next: results => {\r\n this.searchResults.set(results);\r\n },\r\n error: () => {\r\n this.searchResults.set([]);\r\n },\r\n });\r\n }\r\n\r\n getDisplayValue(item: T): string {\r\n return String(item[this.displayKey()] ?? item[this.valueKey()] ?? '');\r\n }\r\n}\r\n","<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -12,8 +12,8 @@ class PagePartDirective {
12
12
  this.renderLogic = inject(PAGE_RENDER_STRATEGY, { optional: true });
13
13
  this.injector = inject(Injector);
14
14
  this.hasRendered = false;
15
- this.context = input(undefined, { ...(ngDevMode ? { debugName: "context" } : {}), alias: 'abpPagePartContext' });
16
- this.abpPagePart = input('', ...(ngDevMode ? [{ debugName: "abpPagePart" }] : []));
15
+ this.context = input(undefined, { ...(ngDevMode ? { debugName: "context" } : /* istanbul ignore next */ {}), alias: 'abpPagePartContext' });
16
+ this.abpPagePart = input('', ...(ngDevMode ? [{ debugName: "abpPagePart" }] : /* istanbul ignore next */ []));
17
17
  this.render = (shouldRender) => {
18
18
  if (shouldRender && !this.hasRendered) {
19
19
  this.viewContainer.createEmbeddedView(this.templateRef);
@@ -66,10 +66,10 @@ class PagePartDirective {
66
66
  this.subscription.unsubscribe();
67
67
  }
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PagePartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.9", type: PagePartDirective, isStandalone: true, selector: "[abpPagePart]", inputs: { context: { classPropertyName: "context", publicName: "abpPagePartContext", isSignal: true, isRequired: false, transformFunction: null }, abpPagePart: { classPropertyName: "abpPagePart", publicName: "abpPagePart", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PagePartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: PagePartDirective, isStandalone: true, selector: "[abpPagePart]", inputs: { context: { classPropertyName: "context", publicName: "abpPagePartContext", isSignal: true, isRequired: false, transformFunction: null }, abpPagePart: { classPropertyName: "abpPagePart", publicName: "abpPagePart", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PagePartDirective, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PagePartDirective, decorators: [{
73
73
  type: Directive,
74
74
  args: [{
75
75
  selector: '[abpPagePart]',
@@ -83,10 +83,10 @@ var PageParts;
83
83
  PageParts["toolbar"] = "PageToolbarContainerComponent";
84
84
  })(PageParts || (PageParts = {}));
85
85
  class PageTitleContainerComponent {
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageTitleContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: PageTitleContainerComponent, isStandalone: true, selector: "abp-page-title-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageTitleContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: PageTitleContainerComponent, isStandalone: true, selector: "abp-page-title-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageTitleContainerComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageTitleContainerComponent, decorators: [{
90
90
  type: Component,
91
91
  args: [{
92
92
  selector: 'abp-page-title-container',
@@ -95,10 +95,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
95
95
  }]
96
96
  }] });
97
97
  class PageBreadcrumbContainerComponent {
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageBreadcrumbContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: PageBreadcrumbContainerComponent, isStandalone: true, selector: "abp-page-breadcrumb-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageBreadcrumbContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: PageBreadcrumbContainerComponent, isStandalone: true, selector: "abp-page-breadcrumb-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageBreadcrumbContainerComponent, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageBreadcrumbContainerComponent, decorators: [{
102
102
  type: Component,
103
103
  args: [{
104
104
  selector: 'abp-page-breadcrumb-container',
@@ -107,10 +107,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
107
107
  }]
108
108
  }] });
109
109
  class PageToolbarContainerComponent {
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageToolbarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: PageToolbarContainerComponent, isStandalone: true, selector: "abp-page-toolbar-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageToolbarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: PageToolbarContainerComponent, isStandalone: true, selector: "abp-page-toolbar-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageToolbarContainerComponent, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageToolbarContainerComponent, decorators: [{
114
114
  type: Component,
115
115
  args: [{
116
116
  selector: 'abp-page-toolbar-container',
@@ -121,19 +121,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
121
121
 
122
122
  class PageComponent {
123
123
  constructor() {
124
- this.title = input(undefined, ...(ngDevMode ? [{ debugName: "title" }] : []));
125
- this.toolbarInput = input(undefined, { ...(ngDevMode ? { debugName: "toolbarInput" } : {}), alias: 'toolbar' });
126
- this.breadcrumb = input(true, ...(ngDevMode ? [{ debugName: "breadcrumb" }] : []));
127
- this.toolbarVisible = signal(false, ...(ngDevMode ? [{ debugName: "toolbarVisible" }] : []));
128
- this.toolbarData = signal(undefined, ...(ngDevMode ? [{ debugName: "toolbarData" }] : []));
124
+ this.title = input(undefined, ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
125
+ this.toolbarInput = input(undefined, { ...(ngDevMode ? { debugName: "toolbarInput" } : /* istanbul ignore next */ {}), alias: 'toolbar' });
126
+ this.breadcrumb = input(true, ...(ngDevMode ? [{ debugName: "breadcrumb" }] : /* istanbul ignore next */ []));
127
+ this.toolbarVisible = signal(false, ...(ngDevMode ? [{ debugName: "toolbarVisible" }] : /* istanbul ignore next */ []));
128
+ this.toolbarData = signal(undefined, ...(ngDevMode ? [{ debugName: "toolbarData" }] : /* istanbul ignore next */ []));
129
129
  this.pageParts = {
130
130
  title: PageParts.title,
131
131
  breadcrumb: PageParts.breadcrumb,
132
132
  toolbar: PageParts.toolbar,
133
133
  };
134
- this.customTitle = contentChild(PageTitleContainerComponent, ...(ngDevMode ? [{ debugName: "customTitle" }] : []));
135
- this.customBreadcrumb = contentChild(PageBreadcrumbContainerComponent, ...(ngDevMode ? [{ debugName: "customBreadcrumb" }] : []));
136
- this.customToolbar = contentChild(PageToolbarContainerComponent, ...(ngDevMode ? [{ debugName: "customToolbar" }] : []));
134
+ this.customTitle = contentChild(PageTitleContainerComponent, ...(ngDevMode ? [{ debugName: "customTitle" }] : /* istanbul ignore next */ []));
135
+ this.customBreadcrumb = contentChild(PageBreadcrumbContainerComponent, ...(ngDevMode ? [{ debugName: "customBreadcrumb" }] : /* istanbul ignore next */ []));
136
+ this.customToolbar = contentChild(PageToolbarContainerComponent, ...(ngDevMode ? [{ debugName: "customToolbar" }] : /* istanbul ignore next */ []));
137
137
  effect(() => {
138
138
  const toolbar = this.toolbarInput();
139
139
  if (toolbar !== undefined) {
@@ -151,10 +151,10 @@ class PageComponent {
151
151
  this.customToolbar() ||
152
152
  this.pageParts);
153
153
  }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: PageComponent, isStandalone: true, selector: "abp-page", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, toolbarInput: { classPropertyName: "toolbarInput", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null }, breadcrumb: { classPropertyName: "breadcrumb", publicName: "breadcrumb", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "customTitle", first: true, predicate: PageTitleContainerComponent, descendants: true, isSignal: true }, { propertyName: "customBreadcrumb", first: true, predicate: PageBreadcrumbContainerComponent, descendants: true, isSignal: true }, { propertyName: "customToolbar", first: true, predicate: PageToolbarContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n", dependencies: [{ kind: "component", type: BreadcrumbComponent, selector: "abp-breadcrumb" }, { kind: "component", type: PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { kind: "directive", type: PagePartDirective, selector: "[abpPagePart]", inputs: ["abpPagePartContext", "abpPagePart"] }], encapsulation: i0.ViewEncapsulation.None }); }
154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: PageComponent, isStandalone: true, selector: "abp-page", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, toolbarInput: { classPropertyName: "toolbarInput", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null }, breadcrumb: { classPropertyName: "breadcrumb", publicName: "breadcrumb", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "customTitle", first: true, predicate: PageTitleContainerComponent, descendants: true, isSignal: true }, { propertyName: "customBreadcrumb", first: true, predicate: PageBreadcrumbContainerComponent, descendants: true, isSignal: true }, { propertyName: "customToolbar", first: true, predicate: PageToolbarContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n", dependencies: [{ kind: "component", type: BreadcrumbComponent, selector: "abp-breadcrumb" }, { kind: "component", type: PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { kind: "directive", type: PagePartDirective, selector: "[abpPagePart]", inputs: ["abpPagePartContext", "abpPagePart"] }], encapsulation: i0.ViewEncapsulation.None }); }
156
156
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageComponent, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageComponent, decorators: [{
158
158
  type: Component,
159
159
  args: [{ selector: 'abp-page', encapsulation: ViewEncapsulation.None, imports: [BreadcrumbComponent, PageToolbarComponent, PagePartDirective], template: "@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n" }]
160
160
  }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], toolbarInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbar", required: false }] }], breadcrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "breadcrumb", required: false }] }], customTitle: [{ type: i0.ContentChild, args: [i0.forwardRef(() => PageTitleContainerComponent), { isSignal: true }] }], customBreadcrumb: [{ type: i0.ContentChild, args: [i0.forwardRef(() => PageBreadcrumbContainerComponent), { isSignal: true }] }], customToolbar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => PageToolbarContainerComponent), { isSignal: true }] }] } });
@@ -167,8 +167,8 @@ const PAGE_EXPORTS = [
167
167
  PagePartDirective,
168
168
  ];
169
169
  class PageModule {
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
171
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: PageModule, imports: [PageComponent,
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
171
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: PageModule, imports: [PageComponent,
172
172
  PageTitleContainerComponent,
173
173
  PageBreadcrumbContainerComponent,
174
174
  PageToolbarContainerComponent,
@@ -177,9 +177,9 @@ class PageModule {
177
177
  PageBreadcrumbContainerComponent,
178
178
  PageToolbarContainerComponent,
179
179
  PagePartDirective] }); }
180
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageModule, imports: [PageComponent] }); }
180
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageModule, imports: [PageComponent] }); }
181
181
  }
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageModule, decorators: [{
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageModule, decorators: [{
183
183
  type: NgModule,
184
184
  args: [{
185
185
  declarations: [],
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-page.mjs","sources":["../../../../packages/components/page/src/page-part.directive.ts","../../../../packages/components/page/src/page-parts.component.ts","../../../../packages/components/page/src/page.component.ts","../../../../packages/components/page/src/page.component.html","../../../../packages/components/page/src/page.module.ts","../../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import {\r\n Directive,\r\n TemplateRef,\r\n ViewContainerRef,\r\n InjectionToken,\r\n OnInit,\r\n OnDestroy,\r\n Injector,\r\n inject,\r\n input,\r\n effect\r\n} from '@angular/core';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\n\r\nexport interface PageRenderStrategy {\r\n shouldRender(type?: string): boolean | Observable<boolean>;\r\n onInit?(type?: string, injector?: Injector, context?: any): void;\r\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\r\n onContextUpdate?(context?: any): void;\r\n}\r\n\r\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\r\n\r\n@Directive({\r\n selector: '[abpPagePart]',\r\n})\r\nexport class PagePartDirective implements OnInit, OnDestroy {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private viewContainer = inject(ViewContainerRef);\r\n private renderLogic = inject<PageRenderStrategy>(PAGE_RENDER_STRATEGY, { optional: true })!;\r\n private injector = inject(Injector);\r\n\r\n hasRendered = false;\r\n subscription!: Subscription;\r\n\r\n readonly context = input<any>(undefined, { alias: 'abpPagePartContext' });\r\n readonly abpPagePart = input<string>('');\r\n\r\n constructor() {\r\n // Watch for type changes\r\n effect(() => {\r\n const type = this.abpPagePart();\r\n if (type) {\r\n this.createRenderStream(type);\r\n }\r\n });\r\n\r\n // Watch for context changes\r\n effect(() => {\r\n const ctx = this.context();\r\n if (this.renderLogic?.onContextUpdate) {\r\n this.renderLogic.onContextUpdate(ctx);\r\n }\r\n });\r\n }\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n if (this.renderLogic?.onInit) {\r\n this.renderLogic.onInit(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearSubscription();\r\n\r\n if (this.renderLogic?.onDestroy) {\r\n this.renderLogic.onDestroy(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n shouldRender(type: string) {\r\n if (this.renderLogic) {\r\n const willRender = this.renderLogic.shouldRender(type);\r\n return willRender instanceof Observable ? willRender : of(willRender);\r\n }\r\n return of(true);\r\n }\r\n\r\n protected createRenderStream(type: string) {\r\n this.clearSubscription();\r\n\r\n this.subscription = this.shouldRender(type).subscribe(this.render);\r\n }\r\n\r\n protected clearSubscription() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\nexport enum PageParts {\r\n title = 'PageTitleContainerComponent',\r\n breadcrumb = 'PageBreadcrumbContainerComponent',\r\n toolbar = 'PageToolbarContainerComponent',\r\n}\r\n\r\n@Component({\r\n selector: 'abp-page-title-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageTitleContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-breadcrumb-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageBreadcrumbContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-toolbar-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageToolbarContainerComponent {}\r\n","import { Component, ViewEncapsulation, input, effect, signal, contentChild } from '@angular/core';\r\nimport {\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PageParts,\r\n} from './page-parts.component';\r\nimport { BreadcrumbComponent } from '@abp/ng.theme.shared';\r\nimport { PageToolbarComponent } from '@abp/ng.components/extensible';\r\nimport { PagePartDirective } from './page-part.directive';\r\n\r\n@Component({\r\n selector: 'abp-page',\r\n templateUrl: './page.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [BreadcrumbComponent, PageToolbarComponent, PagePartDirective],\r\n})\r\nexport class PageComponent {\r\n readonly title = input<string | undefined>(undefined);\r\n readonly toolbarInput = input<any>(undefined, { alias: 'toolbar' });\r\n readonly breadcrumb = input(true);\r\n\r\n protected readonly toolbarVisible = signal(false);\r\n protected readonly toolbarData = signal<any>(undefined);\r\n\r\n pageParts = {\r\n title: PageParts.title,\r\n breadcrumb: PageParts.breadcrumb,\r\n toolbar: PageParts.toolbar,\r\n };\r\n\r\n readonly customTitle = contentChild(PageTitleContainerComponent);\r\n readonly customBreadcrumb = contentChild(PageBreadcrumbContainerComponent);\r\n readonly customToolbar = contentChild(PageToolbarContainerComponent);\r\n\r\n constructor() {\r\n effect(() => {\r\n const toolbar = this.toolbarInput();\r\n if (toolbar !== undefined) {\r\n this.toolbarData.set(toolbar);\r\n this.toolbarVisible.set(true);\r\n }\r\n });\r\n }\r\n\r\n get shouldRenderRow() {\r\n return !!(\r\n this.title() ||\r\n this.toolbarVisible() ||\r\n this.breadcrumb() ||\r\n this.customTitle() ||\r\n this.customBreadcrumb() ||\r\n this.customToolbar() ||\r\n this.pageParts\r\n );\r\n }\r\n}\r\n","@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { PagePartDirective } from './page-part.directive';\r\nimport {\r\n PageBreadcrumbContainerComponent,\r\n PageTitleContainerComponent,\r\n PageToolbarContainerComponent,\r\n} from './page-parts.component';\r\nimport { PageComponent } from './page.component';\r\n\r\nexport const PAGE_EXPORTS = [\r\n PageComponent,\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PagePartDirective,\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [...PAGE_EXPORTS],\r\n exports: [...PAGE_EXPORTS],\r\n})\r\nexport class PageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-page.mjs","sources":["../../../../packages/components/page/src/page-part.directive.ts","../../../../packages/components/page/src/page-parts.component.ts","../../../../packages/components/page/src/page.component.ts","../../../../packages/components/page/src/page.component.html","../../../../packages/components/page/src/page.module.ts","../../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import {\r\n Directive,\r\n TemplateRef,\r\n ViewContainerRef,\r\n InjectionToken,\r\n OnInit,\r\n OnDestroy,\r\n Injector,\r\n inject,\r\n input,\r\n effect\r\n} from '@angular/core';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\n\r\nexport interface PageRenderStrategy {\r\n shouldRender(type?: string): boolean | Observable<boolean>;\r\n onInit?(type?: string, injector?: Injector, context?: any): void;\r\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\r\n onContextUpdate?(context?: any): void;\r\n}\r\n\r\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\r\n\r\n@Directive({\r\n selector: '[abpPagePart]',\r\n})\r\nexport class PagePartDirective implements OnInit, OnDestroy {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private viewContainer = inject(ViewContainerRef);\r\n private renderLogic = inject<PageRenderStrategy>(PAGE_RENDER_STRATEGY, { optional: true })!;\r\n private injector = inject(Injector);\r\n\r\n hasRendered = false;\r\n subscription!: Subscription;\r\n\r\n readonly context = input<any>(undefined, { alias: 'abpPagePartContext' });\r\n readonly abpPagePart = input<string>('');\r\n\r\n constructor() {\r\n // Watch for type changes\r\n effect(() => {\r\n const type = this.abpPagePart();\r\n if (type) {\r\n this.createRenderStream(type);\r\n }\r\n });\r\n\r\n // Watch for context changes\r\n effect(() => {\r\n const ctx = this.context();\r\n if (this.renderLogic?.onContextUpdate) {\r\n this.renderLogic.onContextUpdate(ctx);\r\n }\r\n });\r\n }\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n if (this.renderLogic?.onInit) {\r\n this.renderLogic.onInit(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearSubscription();\r\n\r\n if (this.renderLogic?.onDestroy) {\r\n this.renderLogic.onDestroy(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n shouldRender(type: string) {\r\n if (this.renderLogic) {\r\n const willRender = this.renderLogic.shouldRender(type);\r\n return willRender instanceof Observable ? willRender : of(willRender);\r\n }\r\n return of(true);\r\n }\r\n\r\n protected createRenderStream(type: string) {\r\n this.clearSubscription();\r\n\r\n this.subscription = this.shouldRender(type).subscribe(this.render);\r\n }\r\n\r\n protected clearSubscription() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\nexport enum PageParts {\r\n title = 'PageTitleContainerComponent',\r\n breadcrumb = 'PageBreadcrumbContainerComponent',\r\n toolbar = 'PageToolbarContainerComponent',\r\n}\r\n\r\n@Component({\r\n selector: 'abp-page-title-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageTitleContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-breadcrumb-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageBreadcrumbContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-toolbar-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageToolbarContainerComponent {}\r\n","import { Component, ViewEncapsulation, input, effect, signal, contentChild } from '@angular/core';\r\nimport {\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PageParts,\r\n} from './page-parts.component';\r\nimport { BreadcrumbComponent } from '@abp/ng.theme.shared';\r\nimport { PageToolbarComponent } from '@abp/ng.components/extensible';\r\nimport { PagePartDirective } from './page-part.directive';\r\n\r\n@Component({\r\n selector: 'abp-page',\r\n templateUrl: './page.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [BreadcrumbComponent, PageToolbarComponent, PagePartDirective],\r\n})\r\nexport class PageComponent {\r\n readonly title = input<string | undefined>(undefined);\r\n readonly toolbarInput = input<any>(undefined, { alias: 'toolbar' });\r\n readonly breadcrumb = input(true);\r\n\r\n protected readonly toolbarVisible = signal(false);\r\n protected readonly toolbarData = signal<any>(undefined);\r\n\r\n pageParts = {\r\n title: PageParts.title,\r\n breadcrumb: PageParts.breadcrumb,\r\n toolbar: PageParts.toolbar,\r\n };\r\n\r\n readonly customTitle = contentChild(PageTitleContainerComponent);\r\n readonly customBreadcrumb = contentChild(PageBreadcrumbContainerComponent);\r\n readonly customToolbar = contentChild(PageToolbarContainerComponent);\r\n\r\n constructor() {\r\n effect(() => {\r\n const toolbar = this.toolbarInput();\r\n if (toolbar !== undefined) {\r\n this.toolbarData.set(toolbar);\r\n this.toolbarVisible.set(true);\r\n }\r\n });\r\n }\r\n\r\n get shouldRenderRow() {\r\n return !!(\r\n this.title() ||\r\n this.toolbarVisible() ||\r\n this.breadcrumb() ||\r\n this.customTitle() ||\r\n this.customBreadcrumb() ||\r\n this.customToolbar() ||\r\n this.pageParts\r\n );\r\n }\r\n}\r\n","@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { PagePartDirective } from './page-part.directive';\r\nimport {\r\n PageBreadcrumbContainerComponent,\r\n PageTitleContainerComponent,\r\n PageToolbarContainerComponent,\r\n} from './page-parts.component';\r\nimport { PageComponent } from './page.component';\r\n\r\nexport const PAGE_EXPORTS = [\r\n PageComponent,\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PagePartDirective,\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [...PAGE_EXPORTS],\r\n exports: [...PAGE_EXPORTS],\r\n})\r\nexport class PageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -13,10 +13,10 @@ class TreeNodeTemplateDirective {
13
13
  constructor() {
14
14
  this.template = inject(TemplateRef);
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeNodeTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TreeNodeTemplateDirective, isStandalone: true, selector: "[abpTreeNodeTemplate],[abp-tree-node-template]", ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeNodeTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: TreeNodeTemplateDirective, isStandalone: true, selector: "[abpTreeNodeTemplate],[abp-tree-node-template]", ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeNodeTemplateDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeNodeTemplateDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',
@@ -27,10 +27,10 @@ class ExpandedIconTemplateDirective {
27
27
  constructor() {
28
28
  this.template = inject(TemplateRef);
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ExpandedIconTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: ExpandedIconTemplateDirective, isStandalone: true, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]", ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExpandedIconTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: ExpandedIconTemplateDirective, isStandalone: true, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]", ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ExpandedIconTemplateDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExpandedIconTemplateDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',
@@ -51,34 +51,34 @@ class TreeComponent {
51
51
  this.cdr = inject(ChangeDetectorRef);
52
52
  this.disableTreeStyleLoading = inject(DISABLE_TREE_STYLE_LOADING_TOKEN, { optional: true });
53
53
  this.dropdowns = {};
54
- this.menu = contentChild('menu', ...(ngDevMode ? [{ debugName: "menu" }] : []));
55
- this.customNodeTemplate = contentChild(TreeNodeTemplateDirective, ...(ngDevMode ? [{ debugName: "customNodeTemplate" }] : []));
56
- this.expandedIconTemplate = contentChild(ExpandedIconTemplateDirective, ...(ngDevMode ? [{ debugName: "expandedIconTemplate" }] : []));
54
+ this.menu = contentChild('menu', ...(ngDevMode ? [{ debugName: "menu" }] : /* istanbul ignore next */ []));
55
+ this.customNodeTemplate = contentChild(TreeNodeTemplateDirective, ...(ngDevMode ? [{ debugName: "customNodeTemplate" }] : /* istanbul ignore next */ []));
56
+ this.expandedIconTemplate = contentChild(ExpandedIconTemplateDirective, ...(ngDevMode ? [{ debugName: "expandedIconTemplate" }] : /* istanbul ignore next */ []));
57
57
  this.checkedKeysChange = output();
58
58
  this.expandedKeysChange = output();
59
59
  this.selectedNodeChange = output();
60
60
  this.dropOver = output();
61
61
  this.nzExpandChange = output();
62
62
  // Input signals
63
- this.noAnimation = input(true, ...(ngDevMode ? [{ debugName: "noAnimation" }] : []));
64
- this.draggable = input(undefined, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
65
- this.checkable = input(undefined, ...(ngDevMode ? [{ debugName: "checkable" }] : []));
66
- this.checkStrictly = input(undefined, ...(ngDevMode ? [{ debugName: "checkStrictly" }] : []));
67
- this.checkedKeysInput = input([], { ...(ngDevMode ? { debugName: "checkedKeysInput" } : {}), alias: 'checkedKeys' });
68
- this.nodesInput = input([], { ...(ngDevMode ? { debugName: "nodesInput" } : {}), alias: 'nodes' });
69
- this.expandedKeysInput = input([], { ...(ngDevMode ? { debugName: "expandedKeysInput" } : {}), alias: 'expandedKeys' });
70
- this.selectedNodeInput = input(undefined, { ...(ngDevMode ? { debugName: "selectedNodeInput" } : {}), alias: 'selectedNode' });
71
- this.changeCheckboxWithNode = input(undefined, ...(ngDevMode ? [{ debugName: "changeCheckboxWithNode" }] : []));
72
- this.isNodeSelectedFn = input((node) => this._selectedNode()?.id === node.key, { ...(ngDevMode ? { debugName: "isNodeSelectedFn" } : {}), alias: 'isNodeSelected' });
63
+ this.noAnimation = input(true, ...(ngDevMode ? [{ debugName: "noAnimation" }] : /* istanbul ignore next */ []));
64
+ this.draggable = input(undefined, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
65
+ this.checkable = input(undefined, ...(ngDevMode ? [{ debugName: "checkable" }] : /* istanbul ignore next */ []));
66
+ this.checkStrictly = input(undefined, ...(ngDevMode ? [{ debugName: "checkStrictly" }] : /* istanbul ignore next */ []));
67
+ this.checkedKeysInput = input([], { ...(ngDevMode ? { debugName: "checkedKeysInput" } : /* istanbul ignore next */ {}), alias: 'checkedKeys' });
68
+ this.nodesInput = input([], { ...(ngDevMode ? { debugName: "nodesInput" } : /* istanbul ignore next */ {}), alias: 'nodes' });
69
+ this.expandedKeysInput = input([], { ...(ngDevMode ? { debugName: "expandedKeysInput" } : /* istanbul ignore next */ {}), alias: 'expandedKeys' });
70
+ this.selectedNodeInput = input(undefined, { ...(ngDevMode ? { debugName: "selectedNodeInput" } : /* istanbul ignore next */ {}), alias: 'selectedNode' });
71
+ this.changeCheckboxWithNode = input(undefined, ...(ngDevMode ? [{ debugName: "changeCheckboxWithNode" }] : /* istanbul ignore next */ []));
72
+ this.isNodeSelectedFn = input((node) => this._selectedNode()?.id === node.key, { ...(ngDevMode ? { debugName: "isNodeSelectedFn" } : /* istanbul ignore next */ {}), alias: 'isNodeSelected' });
73
73
  this.beforeDropFn = input((event) => {
74
74
  this.dropPosition = event.pos;
75
75
  return of(false);
76
- }, { ...(ngDevMode ? { debugName: "beforeDropFn" } : {}), alias: 'beforeDrop' });
76
+ }, { ...(ngDevMode ? { debugName: "beforeDropFn" } : /* istanbul ignore next */ {}), alias: 'beforeDrop' });
77
77
  // Internal signals for two-way binding
78
- this._checkedKeys = signal([], ...(ngDevMode ? [{ debugName: "_checkedKeys" }] : []));
79
- this._expandedKeys = signal([], ...(ngDevMode ? [{ debugName: "_expandedKeys" }] : []));
80
- this._selectedNode = signal(undefined, ...(ngDevMode ? [{ debugName: "_selectedNode" }] : []));
81
- this._nodes = signal([], ...(ngDevMode ? [{ debugName: "_nodes" }] : []));
78
+ this._checkedKeys = signal([], ...(ngDevMode ? [{ debugName: "_checkedKeys" }] : /* istanbul ignore next */ []));
79
+ this._expandedKeys = signal([], ...(ngDevMode ? [{ debugName: "_expandedKeys" }] : /* istanbul ignore next */ []));
80
+ this._selectedNode = signal(undefined, ...(ngDevMode ? [{ debugName: "_selectedNode" }] : /* istanbul ignore next */ []));
81
+ this._nodes = signal([], ...(ngDevMode ? [{ debugName: "_nodes" }] : /* istanbul ignore next */ []));
82
82
  // Sync input signals to internal signals
83
83
  effect(() => {
84
84
  this._checkedKeys.set(this.checkedKeysInput());
@@ -164,10 +164,10 @@ class TreeComponent {
164
164
  this._selectedNode.set({ ...newSelectedNode });
165
165
  this.cdr.markForCheck();
166
166
  }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TreeComponent, isStandalone: true, selector: "abp-tree", inputs: { noAnimation: { classPropertyName: "noAnimation", publicName: "noAnimation", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, checkable: { classPropertyName: "checkable", publicName: "checkable", isSignal: true, isRequired: false, transformFunction: null }, checkStrictly: { classPropertyName: "checkStrictly", publicName: "checkStrictly", isSignal: true, isRequired: false, transformFunction: null }, checkedKeysInput: { classPropertyName: "checkedKeysInput", publicName: "checkedKeys", isSignal: true, isRequired: false, transformFunction: null }, nodesInput: { classPropertyName: "nodesInput", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, expandedKeysInput: { classPropertyName: "expandedKeysInput", publicName: "expandedKeys", isSignal: true, isRequired: false, transformFunction: null }, selectedNodeInput: { classPropertyName: "selectedNodeInput", publicName: "selectedNode", isSignal: true, isRequired: false, transformFunction: null }, changeCheckboxWithNode: { classPropertyName: "changeCheckboxWithNode", publicName: "changeCheckboxWithNode", isSignal: true, isRequired: false, transformFunction: null }, isNodeSelectedFn: { classPropertyName: "isNodeSelectedFn", publicName: "isNodeSelected", isSignal: true, isRequired: false, transformFunction: null }, beforeDropFn: { classPropertyName: "beforeDropFn", publicName: "beforeDrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedKeysChange: "checkedKeysChange", expandedKeysChange: "expandedKeysChange", selectedNodeChange: "selectedNodeChange", dropOver: "dropOver", nzExpandChange: "nzExpandChange" }, providers: [SubscriptionService], queries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }, { propertyName: "customNodeTemplate", first: true, predicate: TreeNodeTemplateDirective, descendants: true, isSignal: true }, { propertyName: "expandedIconTemplate", first: true, predicate: ExpandedIconTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable()\"\r\n [nzCheckStrictly]=\"checkStrictly()\"\r\n [nzCheckable]=\"checkable()\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate()?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation()\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate() ? customNodeTemplate()?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu()) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu(); context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: ["abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .ant-tree-node-content-wrapper>div{display:flex;padding-right:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "directive", type: NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: TreeComponent, isStandalone: true, selector: "abp-tree", inputs: { noAnimation: { classPropertyName: "noAnimation", publicName: "noAnimation", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, checkable: { classPropertyName: "checkable", publicName: "checkable", isSignal: true, isRequired: false, transformFunction: null }, checkStrictly: { classPropertyName: "checkStrictly", publicName: "checkStrictly", isSignal: true, isRequired: false, transformFunction: null }, checkedKeysInput: { classPropertyName: "checkedKeysInput", publicName: "checkedKeys", isSignal: true, isRequired: false, transformFunction: null }, nodesInput: { classPropertyName: "nodesInput", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, expandedKeysInput: { classPropertyName: "expandedKeysInput", publicName: "expandedKeys", isSignal: true, isRequired: false, transformFunction: null }, selectedNodeInput: { classPropertyName: "selectedNodeInput", publicName: "selectedNode", isSignal: true, isRequired: false, transformFunction: null }, changeCheckboxWithNode: { classPropertyName: "changeCheckboxWithNode", publicName: "changeCheckboxWithNode", isSignal: true, isRequired: false, transformFunction: null }, isNodeSelectedFn: { classPropertyName: "isNodeSelectedFn", publicName: "isNodeSelected", isSignal: true, isRequired: false, transformFunction: null }, beforeDropFn: { classPropertyName: "beforeDropFn", publicName: "beforeDrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedKeysChange: "checkedKeysChange", expandedKeysChange: "expandedKeysChange", selectedNodeChange: "selectedNodeChange", dropOver: "dropOver", nzExpandChange: "nzExpandChange" }, providers: [SubscriptionService], queries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }, { propertyName: "customNodeTemplate", first: true, predicate: TreeNodeTemplateDirective, descendants: true, isSignal: true }, { propertyName: "expandedIconTemplate", first: true, predicate: ExpandedIconTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable()\"\r\n [nzCheckStrictly]=\"checkStrictly()\"\r\n [nzCheckable]=\"checkable()\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate()?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation()\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate() ? customNodeTemplate()?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu()) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu(); context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: ["abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .ant-tree-node-content-wrapper>div{display:flex;padding-right:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "directive", type: NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
169
169
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeComponent, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeComponent, decorators: [{
171
171
  type: Component,
172
172
  args: [{ selector: 'abp-tree', encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], changeDetection: ChangeDetectionStrategy.OnPush, imports: [
173
173
  NgTemplateOutlet,
@@ -181,11 +181,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
181
181
  }], ctorParameters: () => [], propDecorators: { menu: [{ type: i0.ContentChild, args: ['menu', { isSignal: true }] }], customNodeTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TreeNodeTemplateDirective), { isSignal: true }] }], expandedIconTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ExpandedIconTemplateDirective), { isSignal: true }] }], checkedKeysChange: [{ type: i0.Output, args: ["checkedKeysChange"] }], expandedKeysChange: [{ type: i0.Output, args: ["expandedKeysChange"] }], selectedNodeChange: [{ type: i0.Output, args: ["selectedNodeChange"] }], dropOver: [{ type: i0.Output, args: ["dropOver"] }], nzExpandChange: [{ type: i0.Output, args: ["nzExpandChange"] }], noAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "noAnimation", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], checkable: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkable", required: false }] }], checkStrictly: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkStrictly", required: false }] }], checkedKeysInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkedKeys", required: false }] }], nodesInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], expandedKeysInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedKeys", required: false }] }], selectedNodeInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedNode", required: false }] }], changeCheckboxWithNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "changeCheckboxWithNode", required: false }] }], isNodeSelectedFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "isNodeSelected", required: false }] }], beforeDropFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "beforeDrop", required: false }] }] } });
182
182
 
183
183
  class TreeModule {
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
185
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective], exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective] }); }
186
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, imports: [TreeComponent] }); }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
185
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: TreeModule, imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective], exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective] }); }
186
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeModule, imports: [TreeComponent] }); }
187
187
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, decorators: [{
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: TreeModule, decorators: [{
189
189
  type: NgModule,
190
190
  args: [{
191
191
  imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],