@almoamendev/ngx-md3 0.8.0 → 0.8.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.
|
@@ -6109,33 +6109,39 @@ class SelectOptions {
|
|
|
6109
6109
|
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
6110
6110
|
multiple = input(false, /* @ts-ignore */
|
|
6111
6111
|
...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
|
|
6112
|
+
/**
|
|
6113
|
+
* The options left after the search filter of the field. SelectField writes into this
|
|
6114
|
+
* signal while the menu is open, because menu inputs are bound once, at open. null means
|
|
6115
|
+
* that no filter applies, so every option is shown.
|
|
6116
|
+
*/
|
|
6117
|
+
visibleOptions = signal(null, /* @ts-ignore */
|
|
6118
|
+
...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
|
|
6112
6119
|
/** Emits the values selected by the user. The field owns the selection state. */
|
|
6113
6120
|
selectionChange = output();
|
|
6114
|
-
|
|
6121
|
+
renderedOptions = computed(() => this.visibleOptions() ?? this.options(), /* @ts-ignore */
|
|
6122
|
+
...(ngDevMode ? [{ debugName: "renderedOptions" }] : /* istanbul ignore next */ []));
|
|
6123
|
+
optionClick(option) {
|
|
6115
6124
|
const options = this.options();
|
|
6116
|
-
const option = options.at(index);
|
|
6117
|
-
if (!option) {
|
|
6118
|
-
return;
|
|
6119
|
-
}
|
|
6120
6125
|
if (this.multiple()) {
|
|
6121
6126
|
option.selected = !(option.selected ?? false);
|
|
6122
6127
|
}
|
|
6123
6128
|
else {
|
|
6124
|
-
options.forEach((item
|
|
6125
|
-
item.selected =
|
|
6129
|
+
options.forEach((item) => {
|
|
6130
|
+
item.selected = item === option;
|
|
6126
6131
|
});
|
|
6127
6132
|
}
|
|
6133
|
+
// Reported from the full list, so a selected option hidden by the search is kept.
|
|
6128
6134
|
this.selectionChange.emit(options.filter((item) => item.selected).map((item) => item.value));
|
|
6129
6135
|
}
|
|
6130
6136
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SelectOptions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6131
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.0", type: SelectOptions, isStandalone: true, selector: "md3-select-options", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, ngImport: i0, template: "<md3-menu-group class=\"md3-scrollable\">\n @for (item of
|
|
6137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.0", type: SelectOptions, isStandalone: true, selector: "md3-select-options", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, ngImport: i0, template: "<md3-menu-group class=\"md3-scrollable\">\n @for (item of renderedOptions(); track item.value) {\n <button\n md3-menu-item\n [selected]=\"item.selected ?? false\"\n [label]=\"item.label\"\n [supporting-text]=\"item.supportingText ?? null\"\n [trailing-text]=\"item.trailingText ?? null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"optionClick(item)\"\n >\n </button>\n }\n</md3-menu-group>\n", styles: [":host{max-height:inherit}:host md3-menu-group.md3-scrollable{padding:.5em .375em;max-height:inherit;overflow-y:auto}\n"], dependencies: [{ kind: "component", type: MenuGroup, selector: "md3-menu-group" }, { kind: "component", type: MenuItem, selector: "button[md3-menu-item], a[md3-menu-item]", inputs: ["label", "supporting-text", "trailing-text", "selected"], outputs: ["selectedChange"] }] });
|
|
6132
6138
|
}
|
|
6133
6139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SelectOptions, decorators: [{
|
|
6134
6140
|
type: Component,
|
|
6135
6141
|
args: [{ selector: 'md3-select-options', imports: [
|
|
6136
6142
|
MenuGroup,
|
|
6137
6143
|
MenuItem,
|
|
6138
|
-
], template: "<md3-menu-group class=\"md3-scrollable\">\n @for (item of
|
|
6144
|
+
], template: "<md3-menu-group class=\"md3-scrollable\">\n @for (item of renderedOptions(); track item.value) {\n <button\n md3-menu-item\n [selected]=\"item.selected ?? false\"\n [label]=\"item.label\"\n [supporting-text]=\"item.supportingText ?? null\"\n [trailing-text]=\"item.trailingText ?? null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"optionClick(item)\"\n >\n </button>\n }\n</md3-menu-group>\n", styles: [":host{max-height:inherit}:host md3-menu-group.md3-scrollable{padding:.5em .375em;max-height:inherit;overflow-y:auto}\n"] }]
|
|
6139
6145
|
}], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }] } });
|
|
6140
6146
|
|
|
6141
6147
|
const MENU_DATA = new InjectionToken('MD3_MENU_DATA');
|
|
@@ -6740,6 +6746,11 @@ class SelectField {
|
|
|
6740
6746
|
options = input.required(/* @ts-ignore */
|
|
6741
6747
|
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
6742
6748
|
multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
6749
|
+
/**
|
|
6750
|
+
* Lets the user type in the field to filter the options. While the field has focus it
|
|
6751
|
+
* acts as a search box; the selected options are shown again as soon as it loses focus.
|
|
6752
|
+
*/
|
|
6753
|
+
searchable = input(false, { ...(ngDevMode ? { debugName: "searchable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
6743
6754
|
label = input(null, { ...(ngDevMode ? { debugName: "label" } : /* istanbul ignore next */ {}), alias: 'label' });
|
|
6744
6755
|
/**
|
|
6745
6756
|
* Formats the text shown in the field. The default joins the labels of the selected
|
|
@@ -6784,6 +6795,10 @@ class SelectField {
|
|
|
6784
6795
|
/** Selection is kept by value so it survives options arriving or being replaced later. */
|
|
6785
6796
|
selectedValues = signal([], /* @ts-ignore */
|
|
6786
6797
|
...(ngDevMode ? [{ debugName: "selectedValues" }] : /* istanbul ignore next */ []));
|
|
6798
|
+
searchQuery = signal('', /* @ts-ignore */
|
|
6799
|
+
...(ngDevMode ? [{ debugName: "searchQuery" }] : /* istanbul ignore next */ []));
|
|
6800
|
+
isInputFocused = signal(false, /* @ts-ignore */
|
|
6801
|
+
...(ngDevMode ? [{ debugName: "isInputFocused" }] : /* istanbul ignore next */ []));
|
|
6787
6802
|
formControl = computed(() => this.control() ?? this.hostControl(), /* @ts-ignore */
|
|
6788
6803
|
...(ngDevMode ? [{ debugName: "formControl" }] : /* istanbul ignore next */ []));
|
|
6789
6804
|
isDisabled = computed(() => this.disabled() || this.controlDisabled(), /* @ts-ignore */
|
|
@@ -6805,6 +6820,39 @@ class SelectField {
|
|
|
6805
6820
|
return selected.map((option) => option.label).join(', ');
|
|
6806
6821
|
}, /* @ts-ignore */
|
|
6807
6822
|
...(ngDevMode ? [{ debugName: "selectedText" }] : /* istanbul ignore next */ []));
|
|
6823
|
+
/** True while the field acts as a search box instead of showing the selection. */
|
|
6824
|
+
isSearching = computed(() => this.searchable() && !this.isDisabled() && this.isInputFocused(), /* @ts-ignore */
|
|
6825
|
+
...(ngDevMode ? [{ debugName: "isSearching" }] : /* istanbul ignore next */ []));
|
|
6826
|
+
/** What the input element shows: the search query while searching, the selection otherwise. */
|
|
6827
|
+
displayText = computed(() => this.isSearching() ? this.searchQuery() : this.selectedText(), /* @ts-ignore */
|
|
6828
|
+
...(ngDevMode ? [{ debugName: "displayText" }] : /* istanbul ignore next */ []));
|
|
6829
|
+
/**
|
|
6830
|
+
* Each option paired with the text the search runs against. It is rebuilt only when the
|
|
6831
|
+
* options array changes, so typing does not normalize the same text again and again.
|
|
6832
|
+
* The fields are joined with a character the query can never contain, which stops a query
|
|
6833
|
+
* from matching across two fields.
|
|
6834
|
+
*/
|
|
6835
|
+
searchIndex = computed(() => {
|
|
6836
|
+
return this.options().map((option) => ({
|
|
6837
|
+
option,
|
|
6838
|
+
text: [option.label, String(option.value), option.supportingText, option.trailingText]
|
|
6839
|
+
.filter((field) => !!field)
|
|
6840
|
+
.map((field) => this.normalizeSearchText(field))
|
|
6841
|
+
.join('\u0000'),
|
|
6842
|
+
}));
|
|
6843
|
+
}, /* @ts-ignore */
|
|
6844
|
+
...(ngDevMode ? [{ debugName: "searchIndex" }] : /* istanbul ignore next */ []));
|
|
6845
|
+
/** The options the menu shows. Options that do not match the query are hidden. */
|
|
6846
|
+
filteredOptions = computed(() => {
|
|
6847
|
+
const query = this.normalizeSearchText(this.searchQuery());
|
|
6848
|
+
if (!this.searchable() || query.length == 0) {
|
|
6849
|
+
return this.options();
|
|
6850
|
+
}
|
|
6851
|
+
return this.searchIndex()
|
|
6852
|
+
.filter((entry) => entry.text.includes(query))
|
|
6853
|
+
.map((entry) => entry.option);
|
|
6854
|
+
}, /* @ts-ignore */
|
|
6855
|
+
...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
|
|
6808
6856
|
constructor(menuService, viewContainerRef) {
|
|
6809
6857
|
this.menuService = menuService;
|
|
6810
6858
|
this.viewContainerRef = viewContainerRef;
|
|
@@ -6851,8 +6899,33 @@ class SelectField {
|
|
|
6851
6899
|
}
|
|
6852
6900
|
this.menuRef?.close();
|
|
6853
6901
|
this.menuRef = null;
|
|
6902
|
+
this.searchQuery.set('');
|
|
6854
6903
|
});
|
|
6855
6904
|
});
|
|
6905
|
+
// Keeps an open menu in step with the query. The menu binds its inputs once, at open.
|
|
6906
|
+
effect(() => {
|
|
6907
|
+
const filtered = this.filteredOptions();
|
|
6908
|
+
untracked(() => this.menuRef?.componentInstance?.visibleOptions.set(filtered));
|
|
6909
|
+
});
|
|
6910
|
+
}
|
|
6911
|
+
// Search
|
|
6912
|
+
onSearchFocus() {
|
|
6913
|
+
this.isInputFocused.set(true);
|
|
6914
|
+
}
|
|
6915
|
+
onSearchBlur() {
|
|
6916
|
+
this.isInputFocused.set(false);
|
|
6917
|
+
this.searchQuery.set('');
|
|
6918
|
+
}
|
|
6919
|
+
onSearchInput(event) {
|
|
6920
|
+
if (!this.searchable()) {
|
|
6921
|
+
return;
|
|
6922
|
+
}
|
|
6923
|
+
this.searchQuery.set(event.target.value);
|
|
6924
|
+
this.openMenu();
|
|
6925
|
+
}
|
|
6926
|
+
/** Lower-cases the text and removes everything that is not a letter or a digit. */
|
|
6927
|
+
normalizeSearchText(text) {
|
|
6928
|
+
return text.toLowerCase().replace(/[^\p{L}\p{N}]+/gu, '');
|
|
6856
6929
|
}
|
|
6857
6930
|
// ControlValueAccessor
|
|
6858
6931
|
writeValue(value) {
|
|
@@ -6901,6 +6974,7 @@ class SelectField {
|
|
|
6901
6974
|
// scrollStrategy: 'close',
|
|
6902
6975
|
viewContainerRef: this.viewContainerRef,
|
|
6903
6976
|
});
|
|
6977
|
+
this.menuRef.componentInstance?.visibleOptions.set(this.filteredOptions());
|
|
6904
6978
|
this.menuRef.componentInstance?.selectionChange.subscribe((values) => this.selectValues(values));
|
|
6905
6979
|
this.menuRef.afterClosed().subscribe(() => {
|
|
6906
6980
|
this.isMenuOpen.set(false);
|
|
@@ -6971,7 +7045,7 @@ class SelectField {
|
|
|
6971
7045
|
return current === next;
|
|
6972
7046
|
}
|
|
6973
7047
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SelectField, deps: [{ token: MenuService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
6974
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.0", type: SelectField, isStandalone: true, selector: "md3-select-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "display-with", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, menuColors: { classPropertyName: "menuColors", publicName: "menu-colors", isSignal: true, isRequired: false, transformFunction: null }, fieldType: { classPropertyName: "fieldType", publicName: "field-type", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconElements", predicate: IconElement, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: InputElement, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<md3-text-field [label]=\"label()\" [field-type]=\"fieldType()\" [control]=\"formControl()\">\n <!-- <md3-icon md3-icon-element=\"leading\">search</md3-icon> -->\n @if (hasLeadingIcon()) {\n <div md3-icon-element=\"leading\">\n <ng-content select=\"[md3-icon-element=leading]\"></ng-content>\n </div>\n }\n\n <input md3-input-element type=\"text\" [readonly]=\"
|
|
7048
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.0", type: SelectField, isStandalone: true, selector: "md3-select-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "display-with", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, menuColors: { classPropertyName: "menuColors", publicName: "menu-colors", isSignal: true, isRequired: false, transformFunction: null }, fieldType: { classPropertyName: "fieldType", publicName: "field-type", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconElements", predicate: IconElement, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: InputElement, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<md3-text-field [label]=\"label()\" [field-type]=\"fieldType()\" [control]=\"formControl()\">\n <!-- <md3-icon md3-icon-element=\"leading\">search</md3-icon> -->\n @if (hasLeadingIcon()) {\n <div md3-icon-element=\"leading\">\n <ng-content select=\"[md3-icon-element=leading]\"></ng-content>\n </div>\n }\n\n <input md3-input-element type=\"text\" [readonly]=\"!searchable()\" [disabled]=\"isDisabled()\" (click)=\"openMenu()\"\n (focus)=\"onSearchFocus()\" (blur)=\"onSearchBlur()\" (input)=\"onSearchInput($event)\"\n class=\"md3-select-input\" [value]=\"displayText()\">\n\n <button md3-icon-button button-type=\"standard\" [disabled]=\"isDisabled()\" (click)=\"toggleMenu()\" class=\"md3-select-arrow\">\n @if (hasArrowIcon()) {\n <ng-content select=\"[md3-icon-element=arrow]\"></ng-content>\n } @else {\n <md3-icon md3-icon-element>arrow_drop_down</md3-icon>\n }\n </button>\n\n <ng-content select=\"[md3-supporting-text]\" ngProjectAs=\"[md3-supporting-text]\"></ng-content>\n</md3-text-field>\n", styles: [".md3-select-input{text-overflow:ellipsis}.md3-select-input:read-only{cursor:default;-webkit-user-select:none;user-select:none}.md3-select-input~.md3-select-arrow{transition:transform var(--md-motion-standard-fast-spatial-duration) var(--md-motion-standard-fast-spatial-easing)}.md3-select-input.md3-menu-active:dir(ltr)~.md3-select-arrow{transform:rotate(180deg)}.md3-select-input.md3-menu-active:dir(rtl)~.md3-select-arrow{transform:rotate(-180deg)}\n"], dependencies: [{ kind: "component", type: TextField, selector: "md3-text-field", inputs: ["label", "field-type", "input-counter", "control"] }, { kind: "directive", type: IconElement, selector: "[md3-icon-element]", inputs: ["md3-icon-element"] }, { kind: "component", type: IconButton, selector: "button[md3-icon-button], a[md3-icon-button]", inputs: ["button-size", "button-type", "button-width", "button-squared", "selected"], outputs: ["selectedChange"] }, { kind: "directive", type: InputElement, selector: "[md3-input-element]" }, { kind: "component", type: MaterialIcon, selector: "md3-icon", inputs: ["icon-version", "filled", "icon-style", "icon-size", "bi-directional"] }] });
|
|
6975
7049
|
}
|
|
6976
7050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SelectField, decorators: [{
|
|
6977
7051
|
type: Component,
|
|
@@ -6981,8 +7055,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
6981
7055
|
IconButton,
|
|
6982
7056
|
InputElement,
|
|
6983
7057
|
MaterialIcon,
|
|
6984
|
-
], template: "<md3-text-field [label]=\"label()\" [field-type]=\"fieldType()\" [control]=\"formControl()\">\n <!-- <md3-icon md3-icon-element=\"leading\">search</md3-icon> -->\n @if (hasLeadingIcon()) {\n <div md3-icon-element=\"leading\">\n <ng-content select=\"[md3-icon-element=leading]\"></ng-content>\n </div>\n }\n\n <input md3-input-element type=\"text\" [readonly]=\"
|
|
6985
|
-
}], ctorParameters: () => [{ type: MenuService }, { type: i0.ViewContainerRef }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "display-with", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], menuColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu-colors", required: false }] }], fieldType: [{ type: i0.Input, args: [{ isSignal: true, alias: "field-type", required: false }] }], control: [{ type: i0.Input, args: [{ isSignal: true, alias: "control", required: false }] }], iconElements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => IconElement), { ...{ descendants: true }, isSignal: true }] }], inputElement: [{ type: i0.ViewChild, args: [i0.forwardRef(() => InputElement), { ...{ read: ElementRef }, isSignal: true }] }] } });
|
|
7058
|
+
], template: "<md3-text-field [label]=\"label()\" [field-type]=\"fieldType()\" [control]=\"formControl()\">\n <!-- <md3-icon md3-icon-element=\"leading\">search</md3-icon> -->\n @if (hasLeadingIcon()) {\n <div md3-icon-element=\"leading\">\n <ng-content select=\"[md3-icon-element=leading]\"></ng-content>\n </div>\n }\n\n <input md3-input-element type=\"text\" [readonly]=\"!searchable()\" [disabled]=\"isDisabled()\" (click)=\"openMenu()\"\n (focus)=\"onSearchFocus()\" (blur)=\"onSearchBlur()\" (input)=\"onSearchInput($event)\"\n class=\"md3-select-input\" [value]=\"displayText()\">\n\n <button md3-icon-button button-type=\"standard\" [disabled]=\"isDisabled()\" (click)=\"toggleMenu()\" class=\"md3-select-arrow\">\n @if (hasArrowIcon()) {\n <ng-content select=\"[md3-icon-element=arrow]\"></ng-content>\n } @else {\n <md3-icon md3-icon-element>arrow_drop_down</md3-icon>\n }\n </button>\n\n <ng-content select=\"[md3-supporting-text]\" ngProjectAs=\"[md3-supporting-text]\"></ng-content>\n</md3-text-field>\n", styles: [".md3-select-input{text-overflow:ellipsis}.md3-select-input:read-only{cursor:default;-webkit-user-select:none;user-select:none}.md3-select-input~.md3-select-arrow{transition:transform var(--md-motion-standard-fast-spatial-duration) var(--md-motion-standard-fast-spatial-easing)}.md3-select-input.md3-menu-active:dir(ltr)~.md3-select-arrow{transform:rotate(180deg)}.md3-select-input.md3-menu-active:dir(rtl)~.md3-select-arrow{transform:rotate(-180deg)}\n"] }]
|
|
7059
|
+
}], ctorParameters: () => [{ type: MenuService }, { type: i0.ViewContainerRef }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "display-with", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], menuColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu-colors", required: false }] }], fieldType: [{ type: i0.Input, args: [{ isSignal: true, alias: "field-type", required: false }] }], control: [{ type: i0.Input, args: [{ isSignal: true, alias: "control", required: false }] }], iconElements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => IconElement), { ...{ descendants: true }, isSignal: true }] }], inputElement: [{ type: i0.ViewChild, args: [i0.forwardRef(() => InputElement), { ...{ read: ElementRef }, isSignal: true }] }] } });
|
|
6986
7060
|
|
|
6987
7061
|
/**
|
|
6988
7062
|
* Material 3 dialog shell. It extends the CDK dialog container, so focus
|