@ardium-ui/ui 5.0.0-alpha.24 → 5.0.0-alpha.26
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.
- package/fesm2022/ardium-ui-ui.mjs +410 -401
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/item-storages/dropdown-item-storage.d.ts +13 -14
- package/lib/_internal/item-storages/simple-item-storage.d.ts +15 -12
- package/lib/_internal/item-storages/simplest-item-storage.d.ts +1 -1
- package/lib/_internal/selectable-list-component.d.ts +2 -3
- package/lib/checkbox-list/checkbox-list.component.d.ts +2 -3
- package/lib/inputs/autocomplete-input/autocomplete-input.component.d.ts +2 -2
- package/lib/select/select.component.d.ts +8 -8
- package/lib/select/select.directive.d.ts +6 -0
- package/lib/select/select.module.d.ts +1 -1
- package/lib/select/select.types.d.ts +4 -2
- package/lib/types/item-storage.types.d.ts +15 -17
- package/package.json +1 -1
- package/prebuilt-themes/default/buttons/button.css.map +1 -1
- package/prebuilt-themes/default/buttons/fab.css.map +1 -1
- package/prebuilt-themes/default/buttons/icon-button.css.map +1 -1
- package/prebuilt-themes/default/calendar.css.map +1 -1
- package/prebuilt-themes/default/card.css.map +1 -1
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/core.css +1 -0
- package/prebuilt-themes/default/core.css.map +1 -1
- package/prebuilt-themes/default/dropdown-panel.css.map +1 -1
- package/prebuilt-themes/default/form-field-frame.css.map +1 -1
- package/prebuilt-themes/default/form-field.css.map +1 -1
- package/prebuilt-themes/default/inputs/autocomplete-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/color-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/hex-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/prebuilt-themes/default/inputs/search-bar.css.map +1 -1
- package/prebuilt-themes/default/modal.css.map +1 -1
- package/prebuilt-themes/default/progress-circle.css.map +1 -1
- package/prebuilt-themes/default/segment.css +70 -57
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/prebuilt-themes/default/select.css +11 -4
- package/prebuilt-themes/default/select.css.map +1 -1
- package/prebuilt-themes/default/slide-toggle.css.map +1 -1
- package/prebuilt-themes/default/slider.css +88 -49
- package/prebuilt-themes/default/slider.css.map +1 -1
- package/prebuilt-themes/default/stars.css.map +1 -1
- package/prebuilt-themes/default/table.css.map +1 -1
- package/themes/_variables.scss +1 -0
- package/themes/default/core.scss +1 -0
- package/themes/default/segment.scss +75 -67
- package/themes/default/select.scss +14 -4
- package/themes/default/slider.scss +88 -53
|
@@ -2,10 +2,10 @@ import 'first-last';
|
|
|
2
2
|
import { Overlay, ScrollStrategyOptions, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
3
3
|
import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { signal, computed, InjectionToken, input, Directive, Input, HostBinding, output, ViewChildren, inject, Injector, runInInjectionContext, viewChild, contentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewContainerRef, TemplateRef, forwardRef, HostListener, NgModule, effect, viewChildren, Pipe, model, ElementRef, ChangeDetectorRef, ContentChildren,
|
|
5
|
+
import { signal, computed, InjectionToken, input, Directive, Input, HostBinding, output, ViewChildren, inject, Injector, runInInjectionContext, viewChild, contentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewContainerRef, TemplateRef, forwardRef, HostListener, NgModule, effect, viewChildren, Pipe, model, ElementRef, ChangeDetectorRef, ContentChildren, linkedSignal, contentChildren, Renderer2, Injectable } from '@angular/core';
|
|
6
6
|
import { NgControl, Validators, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
7
|
import * as i5 from '@ardium-ui/devkit';
|
|
8
|
-
import { coerceBooleanProperty, coerceNumberProperty, coerceArrayProperty, ArdiumClickOutsideModule, ArdiumEscapeHTMLModule, FileSystemService, FileSystemMethod, ArdiumFilePipesModule, coerceDateProperty, ArdiumHoldModule } from '@ardium-ui/devkit';
|
|
8
|
+
import { arraySignal, coerceBooleanProperty, coerceNumberProperty, coerceArrayProperty, ArdiumClickOutsideModule, ArdiumEscapeHTMLModule, FileSystemService, FileSystemMethod, ArdiumFilePipesModule, coerceDateProperty, ArdiumHoldModule } from '@ardium-ui/devkit';
|
|
9
9
|
import { isDefined, any, isPrimitive, isAnyString, isNull, isNumber, isString, isArray, isFunction, isRegExp, evaluate, isObject, isPromise } from 'simple-bool';
|
|
10
10
|
import { resolvePath } from 'resolve-object-path';
|
|
11
11
|
import { toObservable } from '@angular/core/rxjs-interop';
|
|
@@ -22,7 +22,7 @@ import { A11yModule } from '@angular/cdk/a11y';
|
|
|
22
22
|
class SimplestItemStorage {
|
|
23
23
|
constructor(_ardParentComp) {
|
|
24
24
|
this._ardParentComp = _ardParentComp;
|
|
25
|
-
this._items =
|
|
25
|
+
this._items = arraySignal([]);
|
|
26
26
|
this._highlightedItem = signal(null);
|
|
27
27
|
/**
|
|
28
28
|
* Gets all items.
|
|
@@ -58,12 +58,12 @@ class SimplestItemStorage {
|
|
|
58
58
|
_setItemsMapFn(rawItemData, index, areItemsPrimitive) {
|
|
59
59
|
if (areItemsPrimitive) {
|
|
60
60
|
return {
|
|
61
|
-
itemData:
|
|
61
|
+
itemData: rawItemData,
|
|
62
62
|
index: index,
|
|
63
|
-
value:
|
|
64
|
-
label:
|
|
65
|
-
selected:
|
|
66
|
-
highlighted:
|
|
63
|
+
value: rawItemData.value,
|
|
64
|
+
label: rawItemData.value?.toString?.() ?? String(rawItemData.value),
|
|
65
|
+
selected: false,
|
|
66
|
+
highlighted: false,
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
//get value
|
|
@@ -74,12 +74,12 @@ class SimplestItemStorage {
|
|
|
74
74
|
const label = resolvePath(rawItemData, labelPath) ?? value;
|
|
75
75
|
//return
|
|
76
76
|
return {
|
|
77
|
-
itemData:
|
|
77
|
+
itemData: rawItemData,
|
|
78
78
|
index: index,
|
|
79
|
-
value:
|
|
80
|
-
label:
|
|
81
|
-
selected:
|
|
82
|
-
highlighted:
|
|
79
|
+
value: value,
|
|
80
|
+
label: label?.toString?.() ?? String(label),
|
|
81
|
+
selected: false,
|
|
82
|
+
highlighted: false,
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
@@ -102,7 +102,10 @@ class SimplestItemStorage {
|
|
|
102
102
|
unhighlightCurrent() {
|
|
103
103
|
const hi = this._highlightedItem();
|
|
104
104
|
if (hi) {
|
|
105
|
-
|
|
105
|
+
this._items.setAt(hi.index, {
|
|
106
|
+
...hi,
|
|
107
|
+
highlighted: false,
|
|
108
|
+
});
|
|
106
109
|
}
|
|
107
110
|
this._highlightedItem.set(null);
|
|
108
111
|
}
|
|
@@ -112,7 +115,10 @@ class SimplestItemStorage {
|
|
|
112
115
|
*/
|
|
113
116
|
highlightItem(item) {
|
|
114
117
|
this.unhighlightCurrent();
|
|
115
|
-
|
|
118
|
+
this._items.setAt(item.index, {
|
|
119
|
+
...item,
|
|
120
|
+
highlighted: true,
|
|
121
|
+
});
|
|
116
122
|
this._highlightedItem.set(item);
|
|
117
123
|
}
|
|
118
124
|
/**
|
|
@@ -120,7 +126,10 @@ class SimplestItemStorage {
|
|
|
120
126
|
* @param item The item to be unhighlighted.
|
|
121
127
|
*/
|
|
122
128
|
unhighlightItem(item) {
|
|
123
|
-
|
|
129
|
+
this._items.setAt(item.index, {
|
|
130
|
+
...item,
|
|
131
|
+
highlighted: false,
|
|
132
|
+
});
|
|
124
133
|
if (this._highlightedItem()?.index === item.index)
|
|
125
134
|
this._highlightedItem.set(null);
|
|
126
135
|
}
|
|
@@ -1245,6 +1254,16 @@ class ArdiumAutocompleteInputComponent extends _SimpleInputComponentBase {
|
|
|
1245
1254
|
//! suggestions overlay
|
|
1246
1255
|
this.dropdownHost = viewChild('suggestionsHost');
|
|
1247
1256
|
this.dropdownTemplate = viewChild('suggestionsTemplate', { read: TemplateRef });
|
|
1257
|
+
this.optionContextGenerator = computed(() => item => ({
|
|
1258
|
+
$implicit: item,
|
|
1259
|
+
item,
|
|
1260
|
+
index: item.index,
|
|
1261
|
+
value: item.value,
|
|
1262
|
+
label: item.label,
|
|
1263
|
+
selected: item.selected,
|
|
1264
|
+
highlighted: item.highlighted,
|
|
1265
|
+
itemData: item.itemData,
|
|
1266
|
+
}));
|
|
1248
1267
|
//! suggestion-highligh-related
|
|
1249
1268
|
this._isMouseBeingUsed = false;
|
|
1250
1269
|
//! suggestion appearance
|
|
@@ -1302,13 +1321,6 @@ class ArdiumAutocompleteInputComponent extends _SimpleInputComponentBase {
|
|
|
1302
1321
|
const rect = this.dropdownHost()?.nativeElement.getBoundingClientRect();
|
|
1303
1322
|
this.dropdownOverlay.updateSize({ width: rect?.width });
|
|
1304
1323
|
}
|
|
1305
|
-
getOptionContext(item) {
|
|
1306
|
-
return {
|
|
1307
|
-
$implicit: item,
|
|
1308
|
-
item,
|
|
1309
|
-
itemData: item.itemData,
|
|
1310
|
-
};
|
|
1311
|
-
}
|
|
1312
1324
|
onMouseMove() {
|
|
1313
1325
|
this._isMouseBeingUsed = true;
|
|
1314
1326
|
}
|
|
@@ -1415,7 +1427,7 @@ class ArdiumAutocompleteInputComponent extends _SimpleInputComponentBase {
|
|
|
1415
1427
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
1416
1428
|
useExisting: ArdiumAutocompleteInputComponent,
|
|
1417
1429
|
},
|
|
1418
|
-
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdAutocompleteInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdAutocompleteInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdAutocompleteInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionTemplate", first: true, predicate: ArdAutocompleteInputSuggestionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionLoadingTemplate", first: true, predicate: ArdAutocompleteInputLoadingTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dropdownHost", first: true, predicate: ["suggestionsHost"], descendants: true, isSignal: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["suggestionsTemplate"], descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-autocomplete-input\"\r\n #suggestionsHost\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayAutocomplete()) {\r\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\r\n }\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n [maxLength]=\"maxLengthAsInt()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\r\n role=\"listbox\"\r\n [compact]=\"compact()\"\r\n aria-label=\"Suggestions\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"shouldDisplaySuggestions()\"\r\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n >\r\n @for (item of suggestionItems(); track item.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-selected]=\"item.selected
|
|
1430
|
+
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdAutocompleteInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdAutocompleteInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdAutocompleteInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionTemplate", first: true, predicate: ArdAutocompleteInputSuggestionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionLoadingTemplate", first: true, predicate: ArdAutocompleteInputLoadingTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dropdownHost", first: true, predicate: ["suggestionsHost"], descendants: true, isSignal: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["suggestionsTemplate"], descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-autocomplete-input\"\r\n #suggestionsHost\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayAutocomplete()) {\r\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\r\n }\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n [maxLength]=\"maxLengthAsInt()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\r\n role=\"listbox\"\r\n [compact]=\"compact()\"\r\n aria-label=\"Suggestions\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"shouldDisplaySuggestions()\"\r\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n >\r\n @for (item of suggestionItems(); track item.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-selected]=\"item.selected\"\r\n [class.ard-option-highlighted]=\"item.highlighted\"\r\n [attr.aria-selected]=\"item.selected\"\r\n (click)=\"selectSuggestion(item, $event)\"\r\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\r\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\r\n >\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ item.label }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"optionContextGenerator()(item)\"\r\n ></ng-template>\r\n </span>\r\n </div>\r\n }\r\n @if (areSuggestionsLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-center input,.ard-text-align-center .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-autocomplete{position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: _ClearButtonComponent, selector: "ard-clear-button" }, { kind: "component", type: ArdiumDropdownPanelComponent, selector: "ard-dropdown-panel", inputs: ["panelId", "headerTemplate", "footerTemplate", "filterValue", "appearance", "variant", "compact", "isOpen"], outputs: ["scroll", "scrollToEnd"] }, { kind: "directive", type: i5.ArdiumClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1419
1431
|
}
|
|
1420
1432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumAutocompleteInputComponent, decorators: [{
|
|
1421
1433
|
type: Component,
|
|
@@ -1429,7 +1441,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1429
1441
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
1430
1442
|
useExisting: ArdiumAutocompleteInputComponent,
|
|
1431
1443
|
},
|
|
1432
|
-
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-autocomplete-input\"\r\n #suggestionsHost\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayAutocomplete()) {\r\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\r\n }\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n [maxLength]=\"maxLengthAsInt()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\r\n role=\"listbox\"\r\n [compact]=\"compact()\"\r\n aria-label=\"Suggestions\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"shouldDisplaySuggestions()\"\r\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n >\r\n @for (item of suggestionItems(); track item.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-selected]=\"item.selected
|
|
1444
|
+
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-autocomplete-input\"\r\n #suggestionsHost\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayAutocomplete()) {\r\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\r\n }\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n [maxLength]=\"maxLengthAsInt()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\r\n role=\"listbox\"\r\n [compact]=\"compact()\"\r\n aria-label=\"Suggestions\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"shouldDisplaySuggestions()\"\r\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n >\r\n @for (item of suggestionItems(); track item.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-selected]=\"item.selected\"\r\n [class.ard-option-highlighted]=\"item.highlighted\"\r\n [attr.aria-selected]=\"item.selected\"\r\n (click)=\"selectSuggestion(item, $event)\"\r\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\r\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\r\n >\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ item.label }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"optionContextGenerator()(item)\"\r\n ></ng-template>\r\n </span>\r\n </div>\r\n }\r\n @if (areSuggestionsLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-center input,.ard-text-align-center .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-autocomplete{position:absolute}\n"] }]
|
|
1433
1445
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1434
1446
|
type: Inject,
|
|
1435
1447
|
args: [ARD_AUTOCOMPLETE_INPUT_DEFAULTS]
|
|
@@ -2657,43 +2669,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2657
2669
|
}] });
|
|
2658
2670
|
|
|
2659
2671
|
class ItemStorage {
|
|
2672
|
+
_updateItems(updateFn) {
|
|
2673
|
+
this._items.map(updateFn);
|
|
2674
|
+
}
|
|
2675
|
+
_updateItemsFromArray(updateFn, itemsToUpdate) {
|
|
2676
|
+
this._items.update(items => {
|
|
2677
|
+
for (const itemToUpdate of itemsToUpdate) {
|
|
2678
|
+
const item = items[itemToUpdate.index];
|
|
2679
|
+
if (item) {
|
|
2680
|
+
items[itemToUpdate.index] = updateFn(item);
|
|
2681
|
+
}
|
|
2682
|
+
}
|
|
2683
|
+
return items;
|
|
2684
|
+
});
|
|
2685
|
+
}
|
|
2660
2686
|
constructor(_ardParentComp) {
|
|
2661
2687
|
this._ardParentComp = _ardParentComp;
|
|
2662
|
-
this.
|
|
2663
|
-
this.
|
|
2664
|
-
this.
|
|
2665
|
-
this.
|
|
2666
|
-
this.
|
|
2688
|
+
this._items = arraySignal([]);
|
|
2689
|
+
this.filteredItems = computed(() => this.items().filter(item => item.filtered));
|
|
2690
|
+
this.selectedItems = computed(() => this.items().filter(item => item.selected));
|
|
2691
|
+
this.highlightedItems = computed(() => this.items().filter(item => item.highlighted));
|
|
2692
|
+
this._lastHighlightedItem = signal(undefined);
|
|
2667
2693
|
this._recentlyHighlightedItem = signal(undefined);
|
|
2668
|
-
this.
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2694
|
+
this._groups = computed(() => {
|
|
2695
|
+
const groupMap = this._createEmptyGroupMap();
|
|
2696
|
+
for (const item of this.filteredItems()) {
|
|
2697
|
+
if (this._ardParentComp.hideSelected() && item.selected)
|
|
2698
|
+
continue;
|
|
2699
|
+
let group = groupMap.get(item.group);
|
|
2700
|
+
if (!group) {
|
|
2701
|
+
group = {
|
|
2702
|
+
label: item.group?.toString?.() ?? String(item.group),
|
|
2703
|
+
children: [],
|
|
2704
|
+
disabled: false,
|
|
2705
|
+
};
|
|
2706
|
+
groupMap.set(item.group, group);
|
|
2707
|
+
}
|
|
2708
|
+
group.children.push(item);
|
|
2680
2709
|
}
|
|
2681
|
-
return
|
|
2710
|
+
return groupMap;
|
|
2682
2711
|
});
|
|
2683
|
-
this.
|
|
2712
|
+
this.groups = computed(() => Array.from(this._groups().entries())
|
|
2713
|
+
.map(([, group]) => group)
|
|
2714
|
+
.filter(group => group.children.length));
|
|
2715
|
+
this.items = computed(() => [...this._items()]);
|
|
2716
|
+
this.lastSelectedItem = computed(() => this.selectedItems().last(1, item => !item.disabled));
|
|
2684
2717
|
this.value = computed(() => this._itemsToValue(this.selectedItems()));
|
|
2685
|
-
this.isNoItemsToSelect = computed(() => this.
|
|
2686
|
-
this.isNoItemsFound = computed(() => this.
|
|
2687
|
-
this.isAnyItemSelected = computed(() => this.
|
|
2688
|
-
this.isAnyItemHighlighted = computed(() => this.
|
|
2689
|
-
this.
|
|
2690
|
-
|
|
2691
|
-
|
|
2718
|
+
this.isNoItemsToSelect = computed(() => this.items().length === this.selectedItems().length);
|
|
2719
|
+
this.isNoItemsFound = computed(() => this.filteredItems().length === 0);
|
|
2720
|
+
this.isAnyItemSelected = computed(() => this.selectedItems().length > 0);
|
|
2721
|
+
this.isAnyItemHighlighted = computed(() => this.highlightedItems().length > 0);
|
|
2722
|
+
this.itemsLeftUntilLimit = computed(() => this._ardParentComp.multiselectable() && isDefined(this._ardParentComp.maxSelectedItems())
|
|
2723
|
+
? this._ardParentComp.maxSelectedItems() - this.selectedItems().length
|
|
2724
|
+
: 1);
|
|
2725
|
+
this.isItemLimitReached = computed(() => this.itemsLeftUntilLimit() <= 0);
|
|
2726
|
+
this._highlightableItems = computed(() => this.filteredItems().filter(item => !item.disabled && (this._ardParentComp.hideSelected() ? !item.selected : this.isItemLimitReached() ? item.selected : true)));
|
|
2692
2727
|
this._valueToWriteAfterItemsLoad = signal(undefined);
|
|
2693
2728
|
this._wasValueWriteDeferred = signal(false);
|
|
2694
2729
|
}
|
|
2695
2730
|
_itemsToValue(items) {
|
|
2696
|
-
return items.map(item => item.value
|
|
2731
|
+
return items.map(item => item.value);
|
|
2697
2732
|
}
|
|
2698
2733
|
setItems(items) {
|
|
2699
2734
|
let areItemsPrimitive = false;
|
|
@@ -2713,16 +2748,20 @@ class ItemStorage {
|
|
|
2713
2748
|
this._items.set(items.map((item, index) => {
|
|
2714
2749
|
return this._setItemsMapFn(item, index, areItemsPrimitive);
|
|
2715
2750
|
}));
|
|
2716
|
-
|
|
2717
|
-
this._filteredItems.set(this._items());
|
|
2718
|
-
//add items to groups
|
|
2719
|
-
this._populateGroups();
|
|
2751
|
+
this._updateItems(item => ({ ...item, filtered: true }));
|
|
2720
2752
|
//write value if it was
|
|
2721
2753
|
const toWrite = this._valueToWriteAfterItemsLoad();
|
|
2722
2754
|
if (toWrite !== undefined) {
|
|
2723
2755
|
this.handleWriteValue(toWrite);
|
|
2724
2756
|
}
|
|
2725
2757
|
}
|
|
2758
|
+
updateItemFromOptionComponent(itemValue, updatedItem) {
|
|
2759
|
+
const item = this.findItemByValue(itemValue);
|
|
2760
|
+
if (!item)
|
|
2761
|
+
return;
|
|
2762
|
+
const index = item.index;
|
|
2763
|
+
this._items.setAt(index, { ...item, ...updatedItem });
|
|
2764
|
+
}
|
|
2726
2765
|
_addSingleItem(item) {
|
|
2727
2766
|
const isItemPrimitive = isPrimitive(item);
|
|
2728
2767
|
//map a primitive item to a usable object
|
|
@@ -2730,13 +2769,11 @@ class ItemStorage {
|
|
|
2730
2769
|
item = this._primitiveItemsMapFn(item);
|
|
2731
2770
|
}
|
|
2732
2771
|
//map the item to create data bindings
|
|
2733
|
-
const ardOption = this._setItemsMapFn(item, (this.
|
|
2772
|
+
const ardOption = this._setItemsMapFn(item, (this.items().last()?.index ?? 0) + 1, isItemPrimitive);
|
|
2734
2773
|
//push the item into all items
|
|
2735
|
-
this._items.
|
|
2774
|
+
this._items.push(ardOption);
|
|
2736
2775
|
//add all items to filter array
|
|
2737
|
-
this.
|
|
2738
|
-
//add item to groups
|
|
2739
|
-
this._populateGroups();
|
|
2776
|
+
this._updateItems(item => ({ ...item, filtered: true }));
|
|
2740
2777
|
return ardOption;
|
|
2741
2778
|
}
|
|
2742
2779
|
_primitiveItemsMapFn(item) {
|
|
@@ -2775,15 +2812,16 @@ class ItemStorage {
|
|
|
2775
2812
|
_setItemsMapFn(rawItemData, index, areItemsPrimitive) {
|
|
2776
2813
|
if (areItemsPrimitive) {
|
|
2777
2814
|
return {
|
|
2778
|
-
itemData:
|
|
2815
|
+
itemData: rawItemData,
|
|
2779
2816
|
index: index,
|
|
2780
|
-
value:
|
|
2781
|
-
label:
|
|
2782
|
-
disabled:
|
|
2783
|
-
|
|
2784
|
-
|
|
2817
|
+
value: rawItemData.value,
|
|
2818
|
+
label: rawItemData.value?.toString?.() ?? String(rawItemData.value),
|
|
2819
|
+
disabled: false,
|
|
2820
|
+
filtered: true,
|
|
2821
|
+
selected: false,
|
|
2822
|
+
highlighted: false,
|
|
2785
2823
|
group: undefined,
|
|
2786
|
-
highlighted_recently:
|
|
2824
|
+
highlighted_recently: false,
|
|
2787
2825
|
};
|
|
2788
2826
|
}
|
|
2789
2827
|
//get value
|
|
@@ -2815,55 +2853,28 @@ class ItemStorage {
|
|
|
2815
2853
|
}
|
|
2816
2854
|
}
|
|
2817
2855
|
return {
|
|
2818
|
-
itemData:
|
|
2856
|
+
itemData: rawItemData,
|
|
2819
2857
|
index: index,
|
|
2820
|
-
value:
|
|
2821
|
-
label:
|
|
2822
|
-
disabled:
|
|
2858
|
+
value: value,
|
|
2859
|
+
label: label?.toString?.() ?? String(label),
|
|
2860
|
+
disabled: disabled,
|
|
2823
2861
|
group: group,
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2862
|
+
filtered: true,
|
|
2863
|
+
selected: false,
|
|
2864
|
+
highlighted: false,
|
|
2865
|
+
highlighted_recently: false,
|
|
2827
2866
|
};
|
|
2828
2867
|
}
|
|
2829
|
-
_populateGroups() {
|
|
2830
|
-
this._groups.set(this._createEmptyGroupMap());
|
|
2831
|
-
for (const item of this._filteredItems()) {
|
|
2832
|
-
if (this._ardParentComp.hideSelected() && item.selected())
|
|
2833
|
-
continue;
|
|
2834
|
-
this._addToGroup(item);
|
|
2835
|
-
}
|
|
2836
|
-
}
|
|
2837
|
-
_addToGroup(item) {
|
|
2838
|
-
const groupKey = item.group;
|
|
2839
|
-
const targetGroup = this._groups().get(groupKey);
|
|
2840
|
-
//create new group if no such group exists
|
|
2841
|
-
if (!targetGroup) {
|
|
2842
|
-
this._groups.update(v => {
|
|
2843
|
-
const map = new Map(v);
|
|
2844
|
-
map.set(groupKey, {
|
|
2845
|
-
label: signal(String(groupKey ?? '')),
|
|
2846
|
-
children: signal([item]),
|
|
2847
|
-
disabled: signal(false),
|
|
2848
|
-
selected: signal(false),
|
|
2849
|
-
highlighted: signal(false),
|
|
2850
|
-
});
|
|
2851
|
-
return map;
|
|
2852
|
-
});
|
|
2853
|
-
return;
|
|
2854
|
-
}
|
|
2855
|
-
targetGroup.children.update(v => [...v, item]);
|
|
2856
|
-
}
|
|
2857
2868
|
_createEmptyGroupMap() {
|
|
2858
2869
|
return new Map([
|
|
2859
2870
|
[
|
|
2860
2871
|
undefined,
|
|
2861
2872
|
{
|
|
2862
|
-
label:
|
|
2863
|
-
children:
|
|
2864
|
-
disabled:
|
|
2865
|
-
selected:
|
|
2866
|
-
highlighted:
|
|
2873
|
+
label: '',
|
|
2874
|
+
children: [],
|
|
2875
|
+
disabled: false,
|
|
2876
|
+
selected: false,
|
|
2877
|
+
highlighted: false,
|
|
2867
2878
|
},
|
|
2868
2879
|
],
|
|
2869
2880
|
]);
|
|
@@ -2879,7 +2890,7 @@ class ItemStorage {
|
|
|
2879
2890
|
}
|
|
2880
2891
|
handleWriteValue(ngModel) {
|
|
2881
2892
|
//defer writing the value if no options are yet loaded
|
|
2882
|
-
if (!this._wasValueWriteDeferred() && this.
|
|
2893
|
+
if (!this._wasValueWriteDeferred() && this.items().length === 0) {
|
|
2883
2894
|
this._valueToWriteAfterItemsLoad.set(ngModel);
|
|
2884
2895
|
return;
|
|
2885
2896
|
}
|
|
@@ -2911,12 +2922,12 @@ class ItemStorage {
|
|
|
2911
2922
|
findItemByValue(valueToFind) {
|
|
2912
2923
|
let findBy;
|
|
2913
2924
|
if (this._ardParentComp.compareWith()) {
|
|
2914
|
-
findBy = item => this._ardParentComp.compareWith()(valueToFind, item.value
|
|
2925
|
+
findBy = item => this._ardParentComp.compareWith()(valueToFind, item.value);
|
|
2915
2926
|
}
|
|
2916
2927
|
else {
|
|
2917
|
-
findBy = item => item.value
|
|
2928
|
+
findBy = item => item.value === valueToFind;
|
|
2918
2929
|
}
|
|
2919
|
-
return this.
|
|
2930
|
+
return this.items().find(item => findBy(item));
|
|
2920
2931
|
}
|
|
2921
2932
|
async addCustomOption(value, fn) {
|
|
2922
2933
|
const fnResult = fn(value);
|
|
@@ -2933,20 +2944,13 @@ class ItemStorage {
|
|
|
2933
2944
|
const newOptionObj = this._addSingleItem(optionValue);
|
|
2934
2945
|
return newOptionObj;
|
|
2935
2946
|
}
|
|
2936
|
-
clearAllSelected(
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
}
|
|
2940
|
-
const removedItemValues = this._itemsToValue(this._selectedItems());
|
|
2941
|
-
if (this._selectedItems().length) {
|
|
2942
|
-
this._selectedItems.set([]);
|
|
2943
|
-
}
|
|
2944
|
-
if (repopulateGroups && this._ardParentComp.hideSelected())
|
|
2945
|
-
this._populateGroups();
|
|
2947
|
+
clearAllSelected() {
|
|
2948
|
+
const removedItemValues = this._itemsToValue(this.selectedItems());
|
|
2949
|
+
this._updateItems(item => ({ ...item, selected: false }));
|
|
2946
2950
|
return removedItemValues;
|
|
2947
2951
|
}
|
|
2948
2952
|
clearLastSelected() {
|
|
2949
|
-
const item = this.
|
|
2953
|
+
const item = this.selectedItems().last();
|
|
2950
2954
|
if (!item)
|
|
2951
2955
|
return item;
|
|
2952
2956
|
this.unselectItem(item);
|
|
@@ -2956,120 +2960,94 @@ class ItemStorage {
|
|
|
2956
2960
|
if (this.isItemLimitReached()) {
|
|
2957
2961
|
return [[], [], this._itemsToValue(items)];
|
|
2958
2962
|
}
|
|
2963
|
+
const itemsLeftUntilLimit = this.itemsLeftUntilLimit();
|
|
2959
2964
|
let itemsSelectedCount = 0;
|
|
2965
|
+
const newItemsArray = this.items();
|
|
2960
2966
|
for (const item of items) {
|
|
2961
2967
|
itemsSelectedCount++;
|
|
2962
|
-
if (item.selected
|
|
2968
|
+
if (item.selected)
|
|
2963
2969
|
continue;
|
|
2964
|
-
if (
|
|
2970
|
+
if (itemsSelectedCount > itemsLeftUntilLimit) {
|
|
2965
2971
|
break;
|
|
2966
2972
|
}
|
|
2967
|
-
item.selected
|
|
2968
|
-
}
|
|
2969
|
-
if (this._ardParentComp.hideSelected()) {
|
|
2970
|
-
this._populateGroups();
|
|
2973
|
+
newItemsArray[item.index] = { ...item, selected: true };
|
|
2971
2974
|
}
|
|
2972
2975
|
const itemsUnselected = this._ardParentComp.multiselectable()
|
|
2973
2976
|
? []
|
|
2974
|
-
: this.
|
|
2977
|
+
: this.selectedItems().filter(item => !items.find(v => v.value === item.value));
|
|
2978
|
+
for (const item of itemsUnselected) {
|
|
2979
|
+
newItemsArray[item.index] = { ...item, selected: false };
|
|
2980
|
+
}
|
|
2975
2981
|
const itemsSelected = items.slice(0, itemsSelectedCount);
|
|
2976
2982
|
const itemsFailedToSelect = items.slice(itemsSelectedCount);
|
|
2977
|
-
const isAnyNewItemToBeSelected = !!itemsSelected.find(item => !this.
|
|
2983
|
+
const isAnyNewItemToBeSelected = !!itemsSelected.find(item => !this.selectedItems().find(v => v.value === item.value));
|
|
2978
2984
|
if (isAnyNewItemToBeSelected) {
|
|
2979
|
-
|
|
2980
|
-
this._selectedItems.update(v => [...v, ...itemsSelected]);
|
|
2981
|
-
}
|
|
2982
|
-
else {
|
|
2983
|
-
this._selectedItems.set(itemsSelected);
|
|
2984
|
-
}
|
|
2985
|
+
this._items.set(newItemsArray);
|
|
2985
2986
|
}
|
|
2986
|
-
|
|
2987
|
+
if (!this._lastHighlightedItem()) {
|
|
2988
|
+
this._lastHighlightedItem.set(itemsFailedToSelect.first() || itemsSelected.last());
|
|
2989
|
+
}
|
|
2990
|
+
return [this._itemsToValue(itemsSelected), this._itemsToValue(itemsUnselected), this._itemsToValue(itemsFailedToSelect)];
|
|
2987
2991
|
}
|
|
2988
2992
|
unselectItem(...items) {
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
item.selected.set(false);
|
|
2993
|
-
}
|
|
2994
|
-
this._selectedItems.update(v => v.filter(v => v.selected()));
|
|
2995
|
-
if (this._ardParentComp.hideSelected()) {
|
|
2996
|
-
this._populateGroups();
|
|
2993
|
+
this._updateItemsFromArray(item => ({ ...item, selected: false }), items);
|
|
2994
|
+
if (!this._lastHighlightedItem()) {
|
|
2995
|
+
this._lastHighlightedItem.set(items.last());
|
|
2997
2996
|
}
|
|
2998
2997
|
return this._itemsToValue(items);
|
|
2999
2998
|
}
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
for (const group of this._highlightedGroups()) {
|
|
3005
|
-
group.highlighted.set(false);
|
|
2999
|
+
toggleItem(item) {
|
|
3000
|
+
if (item.selected) {
|
|
3001
|
+
this.unselectItem(item);
|
|
3002
|
+
return;
|
|
3006
3003
|
}
|
|
3007
|
-
this.
|
|
3008
|
-
|
|
3004
|
+
this.selectItem(item);
|
|
3005
|
+
}
|
|
3006
|
+
clearAllHighlights() {
|
|
3007
|
+
this._updateItems(item => ({ ...item, highlighted: false }));
|
|
3009
3008
|
}
|
|
3010
3009
|
highlightGroup(group) {
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
return group.children().first();
|
|
3010
|
+
const childrenIndexes = new Set(group.children.map(item => item.index));
|
|
3011
|
+
this._updateItems(item => ({ ...item, highlighted: childrenIndexes.has(item.index) }));
|
|
3012
|
+
return group.children.first();
|
|
3015
3013
|
}
|
|
3016
3014
|
highlightSingleItem(item) {
|
|
3017
|
-
if (!item || item.disabled
|
|
3015
|
+
if (!item || item.disabled)
|
|
3018
3016
|
return null;
|
|
3019
3017
|
this.clearAllHighlights();
|
|
3020
3018
|
return this.highlightItem(item);
|
|
3021
3019
|
}
|
|
3022
3020
|
highlightItem(...items) {
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
}
|
|
3026
|
-
this._highlightedItems.update(v => [...v, ...items]);
|
|
3021
|
+
this._updateItemsFromArray(item => ({ ...item, highlighted: true }), items);
|
|
3022
|
+
this._lastHighlightedItem.set(items.last());
|
|
3027
3023
|
return items.last();
|
|
3028
3024
|
}
|
|
3029
3025
|
unhighlightItem(...items) {
|
|
3030
|
-
|
|
3031
|
-
if (!item || !item.highlighted)
|
|
3032
|
-
return;
|
|
3033
|
-
item.highlighted.set(false);
|
|
3034
|
-
}
|
|
3035
|
-
this._highlightedItems.update(v => v.filter(v => v.highlighted()));
|
|
3026
|
+
this._updateItemsFromArray(item => ({ ...item, highlighted: false }), items);
|
|
3036
3027
|
}
|
|
3037
3028
|
highlightFirstItem() {
|
|
3038
3029
|
this.clearAllHighlights();
|
|
3039
|
-
const itemsToHighlight = this.
|
|
3030
|
+
const itemsToHighlight = this._highlightableItems();
|
|
3040
3031
|
return this.highlightSingleItem(itemsToHighlight.first());
|
|
3041
3032
|
}
|
|
3042
3033
|
highlightLastItem() {
|
|
3043
3034
|
this.clearAllHighlights();
|
|
3044
|
-
const itemsToHighlight = this.
|
|
3035
|
+
const itemsToHighlight = this._highlightableItems();
|
|
3045
3036
|
return this.highlightSingleItem(itemsToHighlight.last());
|
|
3046
3037
|
}
|
|
3047
|
-
_getHiglightableItems() {
|
|
3048
|
-
let itemsToHighlight = this._filteredItems().filter(item => !item.disabled());
|
|
3049
|
-
if (this._ardParentComp.hideSelected()) {
|
|
3050
|
-
itemsToHighlight = itemsToHighlight.filter(item => !item.selected());
|
|
3051
|
-
}
|
|
3052
|
-
return itemsToHighlight;
|
|
3053
|
-
}
|
|
3054
3038
|
highlightAllItems() {
|
|
3055
|
-
this.highlightItem(...this.
|
|
3039
|
+
this.highlightItem(...this._highlightableItems());
|
|
3056
3040
|
}
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
}
|
|
3061
|
-
}
|
|
3062
|
-
setRecentlyHighlighted(item) {
|
|
3063
|
-
this._clearRecentlyHighlighted();
|
|
3064
|
-
item.highlighted_recently.set(true);
|
|
3065
|
-
this._recentlyHighlightedItem.set(item);
|
|
3041
|
+
setRecentlyHighlighted(itemToSet) {
|
|
3042
|
+
this._updateItemsFromArray(item => ({ ...item, highlighted_recently: itemToSet.index === item.index }), [itemToSet]);
|
|
3043
|
+
this._recentlyHighlightedItem.set(itemToSet);
|
|
3066
3044
|
}
|
|
3067
3045
|
highlightNextItem(offset, hasShift) {
|
|
3068
3046
|
if (!this.isAnyItemHighlighted()) {
|
|
3069
3047
|
return this.highlightFirstItem();
|
|
3070
3048
|
}
|
|
3071
|
-
const currentItem = this.
|
|
3072
|
-
const highlightableItems = this.
|
|
3049
|
+
const currentItem = this._lastHighlightedItem() ?? this._highlightableItems().first();
|
|
3050
|
+
const highlightableItems = this._highlightableItems();
|
|
3073
3051
|
const currentIndexInFiltered = highlightableItems.findIndex(item => item.index === currentItem.index);
|
|
3074
3052
|
let nextItemIndex = currentIndexInFiltered + offset;
|
|
3075
3053
|
if (nextItemIndex >= highlightableItems.length) {
|
|
@@ -3080,7 +3058,7 @@ class ItemStorage {
|
|
|
3080
3058
|
}
|
|
3081
3059
|
const itemToHighlight = highlightableItems[nextItemIndex];
|
|
3082
3060
|
if (hasShift && this._ardParentComp.multiselectable()) {
|
|
3083
|
-
if (itemToHighlight.highlighted
|
|
3061
|
+
if (itemToHighlight.highlighted) {
|
|
3084
3062
|
this.unhighlightItem(currentItem);
|
|
3085
3063
|
}
|
|
3086
3064
|
return this.highlightItem(itemToHighlight);
|
|
@@ -3095,24 +3073,18 @@ class ItemStorage {
|
|
|
3095
3073
|
filterTerm = filterTerm.toLocaleLowerCase();
|
|
3096
3074
|
}
|
|
3097
3075
|
const searchFn = this._ardParentComp.searchFn();
|
|
3098
|
-
|
|
3099
|
-
this._filteredItems.set(newFilteredItems);
|
|
3100
|
-
this._populateGroups();
|
|
3076
|
+
this._updateItems(item => ({ ...item, filtered: searchFn(filterTerm, item) }));
|
|
3101
3077
|
if (!this.isNoItemsFound)
|
|
3102
3078
|
this.highlightFirstItem();
|
|
3103
3079
|
else
|
|
3104
3080
|
this.clearAllHighlights();
|
|
3105
|
-
return this._itemsToValue(
|
|
3081
|
+
return this._itemsToValue(this.filteredItems());
|
|
3106
3082
|
}
|
|
3107
3083
|
resetFiltered() {
|
|
3108
|
-
if (this.
|
|
3109
|
-
return this.
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
newFilteredItems = newFilteredItems.filter(item => !item.selected());
|
|
3113
|
-
}
|
|
3114
|
-
this._populateGroups();
|
|
3115
|
-
return newFilteredItems;
|
|
3084
|
+
if (this.filteredItems().length === this.items().length)
|
|
3085
|
+
return this.items();
|
|
3086
|
+
this._updateItems(item => ({ ...item, filtered: true }));
|
|
3087
|
+
return this.items();
|
|
3116
3088
|
}
|
|
3117
3089
|
}
|
|
3118
3090
|
|
|
@@ -3129,7 +3101,7 @@ const searchFunctions = {
|
|
|
3129
3101
|
* @returns `true` if the item matches the search term, otherwise `false`.
|
|
3130
3102
|
*/
|
|
3131
3103
|
byLabel: (searchTerm, item) => {
|
|
3132
|
-
return searchInString(searchTerm, item.label
|
|
3104
|
+
return searchInString(searchTerm, item.label);
|
|
3133
3105
|
},
|
|
3134
3106
|
/**
|
|
3135
3107
|
* Determines if the item should appear in the search results, based on the value only.
|
|
@@ -3138,7 +3110,7 @@ const searchFunctions = {
|
|
|
3138
3110
|
* @returns `true` if the item matches the search term, otherwise `false`.
|
|
3139
3111
|
*/
|
|
3140
3112
|
byValue: (searchTerm, item) => {
|
|
3141
|
-
return searchInString(searchTerm, item.value
|
|
3113
|
+
return searchInString(searchTerm, item.value);
|
|
3142
3114
|
},
|
|
3143
3115
|
/**
|
|
3144
3116
|
* Determines if the item should appear in the search results, based on the group only.
|
|
@@ -3156,7 +3128,7 @@ const searchFunctions = {
|
|
|
3156
3128
|
* @returns `true` if the item matches the search term, otherwise `false`.
|
|
3157
3129
|
*/
|
|
3158
3130
|
byLabelAndGroup: (searchTerm, item) => {
|
|
3159
|
-
return (searchFunctions.byLabel(searchTerm, item) || (item.label
|
|
3131
|
+
return (searchFunctions.byLabel(searchTerm, item) || (item.label !== item.value && searchFunctions.byValue(searchTerm, item)));
|
|
3160
3132
|
},
|
|
3161
3133
|
/**
|
|
3162
3134
|
* Determines if the item should appear in the search results, based on the label and value.
|
|
@@ -3175,7 +3147,7 @@ const searchFunctions = {
|
|
|
3175
3147
|
*/
|
|
3176
3148
|
byLabelAndGroupAndValue: (searchTerm, item) => {
|
|
3177
3149
|
return (searchFunctions.byLabel(searchTerm, item) ||
|
|
3178
|
-
(item.label
|
|
3150
|
+
(item.label !== item.value && searchFunctions.byValue(searchTerm, item)) ||
|
|
3179
3151
|
searchFunctions.byGroup(searchTerm, item));
|
|
3180
3152
|
},
|
|
3181
3153
|
};
|
|
@@ -3319,6 +3291,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3319
3291
|
type: Directive,
|
|
3320
3292
|
args: [{ standalone: false, selector: 'ard-select > ng-template[ard-placeholder-tmp]' }]
|
|
3321
3293
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
3294
|
+
class ArdSelectDropdownArrowTemplateDirective {
|
|
3295
|
+
constructor(template) {
|
|
3296
|
+
this.template = template;
|
|
3297
|
+
}
|
|
3298
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdSelectDropdownArrowTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3299
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: ArdSelectDropdownArrowTemplateDirective, isStandalone: false, selector: "ard-select > ng-template[ard-dropdown-arrow-tmp]", ngImport: i0 }); }
|
|
3300
|
+
}
|
|
3301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdSelectDropdownArrowTemplateDirective, decorators: [{
|
|
3302
|
+
type: Directive,
|
|
3303
|
+
args: [{ standalone: false, selector: 'ard-select > ng-template[ard-dropdown-arrow-tmp]' }]
|
|
3304
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
3322
3305
|
class ArdLoadingSpinnerTemplateDirective {
|
|
3323
3306
|
constructor(template) {
|
|
3324
3307
|
this.template = template;
|
|
@@ -3576,15 +3559,21 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3576
3559
|
this.itemsAlreadyGrouped = input(this._DEFAULTS.itemsAlreadyGrouped, {
|
|
3577
3560
|
transform: v => coerceBooleanProperty(v),
|
|
3578
3561
|
});
|
|
3579
|
-
this.invertDisabled = input(this._DEFAULTS.invertDisabled, {
|
|
3580
|
-
|
|
3562
|
+
this.invertDisabled = input(this._DEFAULTS.invertDisabled, {
|
|
3563
|
+
transform: v => coerceBooleanProperty(v),
|
|
3564
|
+
});
|
|
3565
|
+
this.noGroupActions = input(this._DEFAULTS.noGroupActions, {
|
|
3566
|
+
transform: v => coerceBooleanProperty(v),
|
|
3567
|
+
});
|
|
3581
3568
|
this.autoHighlightFirst = input(this._DEFAULTS.autoHighlightFirst, {
|
|
3582
3569
|
transform: v => coerceBooleanProperty(v),
|
|
3583
3570
|
});
|
|
3584
3571
|
this.autoFocus = input(this._DEFAULTS.autoFocus, { transform: v => coerceBooleanProperty(v) });
|
|
3585
3572
|
this.keepOpen = input(this._DEFAULTS.keepOpen, { transform: v => coerceBooleanProperty(v) });
|
|
3586
3573
|
this.hideSelected = input(this._DEFAULTS.hideSelected, { transform: v => coerceBooleanProperty(v) });
|
|
3587
|
-
this.noBackspaceClear = input(this._DEFAULTS.noBackspaceClear, {
|
|
3574
|
+
this.noBackspaceClear = input(this._DEFAULTS.noBackspaceClear, {
|
|
3575
|
+
transform: v => coerceBooleanProperty(v),
|
|
3576
|
+
});
|
|
3588
3577
|
this.sortMultipleValues = input(this._DEFAULTS.sortMultipleValues, {
|
|
3589
3578
|
transform: v => coerceBooleanProperty(v),
|
|
3590
3579
|
});
|
|
@@ -3638,7 +3627,9 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3638
3627
|
return variant;
|
|
3639
3628
|
});
|
|
3640
3629
|
//! attribute and/or class setters/getters
|
|
3641
|
-
this.multiselectable = input(this._DEFAULTS.multiselectable, {
|
|
3630
|
+
this.multiselectable = input(this._DEFAULTS.multiselectable, {
|
|
3631
|
+
transform: v => coerceBooleanProperty(v),
|
|
3632
|
+
});
|
|
3642
3633
|
this.clearable = input(this._DEFAULTS.clearable, { transform: v => coerceBooleanProperty(v) });
|
|
3643
3634
|
this.searchable = input(this._DEFAULTS.searchable, { transform: v => coerceBooleanProperty(v) });
|
|
3644
3635
|
this.filtered = computed(() => this.searchable() && this.searchTerm() !== '');
|
|
@@ -3658,7 +3649,6 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3658
3649
|
this.shouldShowAddCustom = computed(() => this.addCustom() !== false && this.searchTerm().length > 0 && this.itemStorage.isNoItemsFound());
|
|
3659
3650
|
this.valueChange = output();
|
|
3660
3651
|
//! output events
|
|
3661
|
-
this.changeEvent = output({ alias: 'change' });
|
|
3662
3652
|
this.addEvent = output({ alias: 'add' });
|
|
3663
3653
|
this.failedToAddEvent = output({ alias: 'failedToAdd' });
|
|
3664
3654
|
this.removeEvent = output({ alias: 'remove' });
|
|
@@ -3677,6 +3667,7 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3677
3667
|
this.optgroupTemplate = contentChild(ArdOptgroupTemplateDirective);
|
|
3678
3668
|
this.valueTemplate = contentChild(ArdValueTemplateDirective);
|
|
3679
3669
|
this.placeholderTemplate = contentChild(ArdSelectPlaceholderTemplateDirective);
|
|
3670
|
+
this.dropdownArrowTemplate = contentChild(ArdSelectDropdownArrowTemplateDirective);
|
|
3680
3671
|
this.loadingSpinnerTemplate = contentChild(ArdLoadingSpinnerTemplateDirective);
|
|
3681
3672
|
this.loadingPlaceholderTemplate = contentChild(ArdLoadingPlaceholderTemplateDirective);
|
|
3682
3673
|
this.dropdownHeaderTemplate = contentChild(ArdDropdownHeaderTemplateDirective);
|
|
@@ -3687,6 +3678,34 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3687
3678
|
this.itemDisplayLimitTemplate = contentChild(ArdItemDisplayLimitTemplateDirective);
|
|
3688
3679
|
this.prefixTemplate = contentChild(ArdSelectPrefixTemplateDirective);
|
|
3689
3680
|
this.suffixTemplate = contentChild(ArdSelectSuffixTemplateDirective);
|
|
3681
|
+
//! context providers
|
|
3682
|
+
this.optionContextGenerator = computed(() => item => ({
|
|
3683
|
+
$implicit: item,
|
|
3684
|
+
item,
|
|
3685
|
+
index: item.index,
|
|
3686
|
+
value: item.value,
|
|
3687
|
+
label: item.label,
|
|
3688
|
+
selected: item.selected,
|
|
3689
|
+
highlighted: item.highlighted,
|
|
3690
|
+
itemData: item.itemData,
|
|
3691
|
+
group: item.group,
|
|
3692
|
+
disabled: item.disabled,
|
|
3693
|
+
highlighted_recently: item.highlighted_recently,
|
|
3694
|
+
}));
|
|
3695
|
+
this.valueContextGenerator = computed(() => item => ({
|
|
3696
|
+
...this.optionContextGenerator()(item),
|
|
3697
|
+
unselect: () => {
|
|
3698
|
+
this.unselectItem(item);
|
|
3699
|
+
},
|
|
3700
|
+
}));
|
|
3701
|
+
this.groupContextGenerator = computed(() => group => ({
|
|
3702
|
+
$implicit: group,
|
|
3703
|
+
group,
|
|
3704
|
+
label: group.label,
|
|
3705
|
+
disabled: group.disabled,
|
|
3706
|
+
selectedChildrenCount: group.children.filter(v => v.selected).length,
|
|
3707
|
+
totalChildrenCount: group.children.length,
|
|
3708
|
+
}));
|
|
3690
3709
|
this.getStatsContext = computed(() => ({
|
|
3691
3710
|
totalItems: this.totalItems(),
|
|
3692
3711
|
foundItems: this.foundItems(),
|
|
@@ -3727,6 +3746,9 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3727
3746
|
this.overlay = inject(Overlay);
|
|
3728
3747
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
3729
3748
|
this.scrollStrategyOpts = inject(ScrollStrategyOptions);
|
|
3749
|
+
//! dropdown overlay
|
|
3750
|
+
this.dropdownHost = viewChild.required('dropdownHost');
|
|
3751
|
+
this.dropdownTemplate = viewChild.required('dropdownTemplate');
|
|
3730
3752
|
this.dropdownPanelWidth = input(this._DEFAULTS.dropdownPanelWidth, {
|
|
3731
3753
|
transform: transformDropdownPanelSize,
|
|
3732
3754
|
});
|
|
@@ -3786,18 +3808,16 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3786
3808
|
.pipe(takeUntil(changedOrDestroyed))
|
|
3787
3809
|
.subscribe(option => {
|
|
3788
3810
|
setTimeout(() => {
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
label: option.label || item.label(),
|
|
3811
|
+
this.itemStorage.updateItemFromOptionComponent(option.oldValue ?? option.value, {
|
|
3812
|
+
disabled: option.disabled,
|
|
3813
|
+
label: option.label || undefined,
|
|
3814
|
+
value: option.value,
|
|
3815
|
+
itemData: {
|
|
3816
|
+
label: option.label,
|
|
3796
3817
|
value: option.value,
|
|
3797
3818
|
disabled: option.disabled,
|
|
3798
|
-
}
|
|
3799
|
-
}
|
|
3800
|
-
this.detectChanges();
|
|
3819
|
+
},
|
|
3820
|
+
});
|
|
3801
3821
|
}, 0);
|
|
3802
3822
|
});
|
|
3803
3823
|
};
|
|
@@ -3842,7 +3862,6 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3842
3862
|
_emitChange() {
|
|
3843
3863
|
const value = this.multiselectable() ? this.itemStorage.value() : this.itemStorage.value()[0];
|
|
3844
3864
|
this._onChangeRegistered?.(value);
|
|
3845
|
-
this.changeEvent.emit(value);
|
|
3846
3865
|
this.valueChange.emit(value);
|
|
3847
3866
|
}
|
|
3848
3867
|
_onTouched() {
|
|
@@ -3862,36 +3881,10 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3862
3881
|
get value() {
|
|
3863
3882
|
return this.itemStorage.value;
|
|
3864
3883
|
}
|
|
3865
|
-
//! context providers
|
|
3866
|
-
getValueContext(item) {
|
|
3867
|
-
return {
|
|
3868
|
-
$implicit: item,
|
|
3869
|
-
item,
|
|
3870
|
-
itemData: item.itemData(),
|
|
3871
|
-
unselect: () => {
|
|
3872
|
-
this.unselectItem(item);
|
|
3873
|
-
},
|
|
3874
|
-
};
|
|
3875
|
-
}
|
|
3876
|
-
getGroupContext(group) {
|
|
3877
|
-
return {
|
|
3878
|
-
$implicit: group,
|
|
3879
|
-
group,
|
|
3880
|
-
selectedChildren: group.children().filter(v => v.selected()).length,
|
|
3881
|
-
totalChildren: group.children().length,
|
|
3882
|
-
};
|
|
3883
|
-
}
|
|
3884
|
-
getOptionContext(item) {
|
|
3885
|
-
return {
|
|
3886
|
-
$implicit: item,
|
|
3887
|
-
item,
|
|
3888
|
-
itemData: item.itemData(),
|
|
3889
|
-
};
|
|
3890
|
-
}
|
|
3891
3884
|
_createOverlay() {
|
|
3892
3885
|
const strategy = this.overlay
|
|
3893
3886
|
.position()
|
|
3894
|
-
.flexibleConnectedTo(this.dropdownHost)
|
|
3887
|
+
.flexibleConnectedTo(this.dropdownHost())
|
|
3895
3888
|
.withFlexibleDimensions(false)
|
|
3896
3889
|
.withPositions([
|
|
3897
3890
|
{
|
|
@@ -3931,7 +3924,7 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3931
3924
|
maxHeight: this.dropdownPanelMaxHeight() ?? undefined,
|
|
3932
3925
|
});
|
|
3933
3926
|
this.dropdownOverlay = this.overlay.create(config);
|
|
3934
|
-
const portal = new TemplatePortal(this.dropdownTemplate, this.viewContainerRef);
|
|
3927
|
+
const portal = new TemplatePortal(this.dropdownTemplate(), this.viewContainerRef);
|
|
3935
3928
|
this.dropdownOverlay.attach(portal);
|
|
3936
3929
|
this.setOverlaySize();
|
|
3937
3930
|
}
|
|
@@ -3944,7 +3937,7 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
3944
3937
|
setOverlaySize() {
|
|
3945
3938
|
if (!this.dropdownOverlay)
|
|
3946
3939
|
return;
|
|
3947
|
-
const rect = this.dropdownHost.nativeElement.getBoundingClientRect();
|
|
3940
|
+
const rect = this.dropdownHost().nativeElement.getBoundingClientRect();
|
|
3948
3941
|
this.dropdownOverlay.updateSize({ width: rect.width });
|
|
3949
3942
|
}
|
|
3950
3943
|
onWindowResize() {
|
|
@@ -4005,7 +3998,8 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4005
3998
|
}
|
|
4006
3999
|
//! item selection handlers
|
|
4007
4000
|
toggleItem(item) {
|
|
4008
|
-
|
|
4001
|
+
// don't use itemStorage.toggleItem() - we need to emit different events for select/unselect
|
|
4002
|
+
if (item.selected) {
|
|
4009
4003
|
this.unselectItem(item);
|
|
4010
4004
|
return;
|
|
4011
4005
|
}
|
|
@@ -4044,14 +4038,14 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4044
4038
|
}
|
|
4045
4039
|
}
|
|
4046
4040
|
_clearAllItems() {
|
|
4047
|
-
const cleared = this.itemStorage.clearAllSelected(
|
|
4041
|
+
const cleared = this.itemStorage.clearAllSelected();
|
|
4048
4042
|
this.focus();
|
|
4049
4043
|
this.clearEvent.emit();
|
|
4050
4044
|
this.removeEvent.emit(cleared);
|
|
4051
4045
|
this._emitChange();
|
|
4052
4046
|
}
|
|
4053
4047
|
_clearLastItem() {
|
|
4054
|
-
const clearedValue = this.itemStorage.clearLastSelected().value
|
|
4048
|
+
const clearedValue = this.itemStorage.clearLastSelected().value;
|
|
4055
4049
|
this.focus();
|
|
4056
4050
|
this.removeEvent.emit([clearedValue]);
|
|
4057
4051
|
this._emitChange();
|
|
@@ -4082,7 +4076,7 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4082
4076
|
}
|
|
4083
4077
|
onItemClick(option, event) {
|
|
4084
4078
|
event.stopPropagation();
|
|
4085
|
-
if (this.clearable())
|
|
4079
|
+
if (this.clearable() || this.multiselectable())
|
|
4086
4080
|
this.toggleItem(option);
|
|
4087
4081
|
else
|
|
4088
4082
|
this.selectItem(option);
|
|
@@ -4091,11 +4085,11 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4091
4085
|
onGroupClick(group) {
|
|
4092
4086
|
if (!this.multiselectable() || this.noGroupActions())
|
|
4093
4087
|
return;
|
|
4094
|
-
if (group.children
|
|
4095
|
-
this.unselectItem(...group.children
|
|
4088
|
+
if (group.children.every(o => o.selected)) {
|
|
4089
|
+
this.unselectItem(...group.children);
|
|
4096
4090
|
return;
|
|
4097
4091
|
}
|
|
4098
|
-
this.selectItem(...group.children
|
|
4092
|
+
this.selectItem(...group.children);
|
|
4099
4093
|
this._isClickedWithin.set(true);
|
|
4100
4094
|
}
|
|
4101
4095
|
handleClearButtonClick(event) {
|
|
@@ -4236,9 +4230,10 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4236
4230
|
async _onEnterPress(event) {
|
|
4237
4231
|
event.preventDefault();
|
|
4238
4232
|
let shouldClose = true;
|
|
4233
|
+
console.log('enter pressed', this.itemStorage.highlightedItems());
|
|
4239
4234
|
//select the currently highlighted option
|
|
4240
4235
|
if (this.isOpen() && this.firstHighlightedItem()) {
|
|
4241
|
-
if (this.clearable() && this.itemStorage.highlightedItems().every(item => item.selected)) {
|
|
4236
|
+
if ((this.clearable() || this.multiselectable()) && this.itemStorage.highlightedItems().every(item => item.selected)) {
|
|
4242
4237
|
this.unselectItem(...this.itemStorage.highlightedItems());
|
|
4243
4238
|
}
|
|
4244
4239
|
else {
|
|
@@ -4250,8 +4245,9 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4250
4245
|
await this.addCustomOption(this.searchTerm());
|
|
4251
4246
|
}
|
|
4252
4247
|
//in case of no action, open the dropdown (or keep it open)
|
|
4253
|
-
else
|
|
4248
|
+
else {
|
|
4254
4249
|
shouldClose = false;
|
|
4250
|
+
}
|
|
4255
4251
|
if (!this.keepOpen() && shouldClose) {
|
|
4256
4252
|
this.itemStorage.clearAllHighlights();
|
|
4257
4253
|
this.close();
|
|
@@ -4326,7 +4322,7 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4326
4322
|
this.itemStorage.highlightAllItems();
|
|
4327
4323
|
}
|
|
4328
4324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumSelectComponent, deps: [{ token: ARD_SELECT_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4329
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ArdiumSelectComponent, isStandalone: false, selector: "ard-select", inputs: { valueFrom: { classPropertyName: "valueFrom", publicName: "valueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "labelFrom", isSignal: true, isRequired: false, transformFunction: null }, disabledFrom: { classPropertyName: "disabledFrom", publicName: "disabledFrom", isSignal: true, isRequired: false, transformFunction: null }, groupLabelFrom: { classPropertyName: "groupLabelFrom", publicName: "groupLabelFrom", isSignal: true, isRequired: false, transformFunction: null }, groupDisabledFrom: { classPropertyName: "groupDisabledFrom", publicName: "groupDisabledFrom", isSignal: true, isRequired: false, transformFunction: null }, childrenFrom: { classPropertyName: "childrenFrom", publicName: "childrenFrom", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, clearButtonTitle: { classPropertyName: "clearButtonTitle", publicName: "clearButtonTitle", isSignal: true, isRequired: false, transformFunction: null }, dropdownPosition: { classPropertyName: "dropdownPosition", publicName: "dropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, noItemsFoundText: { classPropertyName: "noItemsFoundText", publicName: "noItemsFoundText", isSignal: true, isRequired: false, transformFunction: null }, addCustomOptionText: { classPropertyName: "addCustomOptionText", publicName: "addCustomOptionText", isSignal: true, isRequired: false, transformFunction: null }, loadingPlaceholderText: { classPropertyName: "loadingPlaceholderText", publicName: "loadingPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, searchInputId: { classPropertyName: "searchInputId", publicName: "searchInputId", isSignal: true, isRequired: false, transformFunction: null }, inputAttrs: { classPropertyName: "inputAttrs", publicName: "inputAttrs", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, itemsAlreadyGrouped: { classPropertyName: "itemsAlreadyGrouped", publicName: "itemsAlreadyGrouped", isSignal: true, isRequired: false, transformFunction: null }, invertDisabled: { classPropertyName: "invertDisabled", publicName: "invertDisabled", isSignal: true, isRequired: false, transformFunction: null }, noGroupActions: { classPropertyName: "noGroupActions", publicName: "noGroupActions", isSignal: true, isRequired: false, transformFunction: null }, autoHighlightFirst: { classPropertyName: "autoHighlightFirst", publicName: "autoHighlightFirst", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, keepOpen: { classPropertyName: "keepOpen", publicName: "keepOpen", isSignal: true, isRequired: false, transformFunction: null }, hideSelected: { classPropertyName: "hideSelected", publicName: "hideSelected", isSignal: true, isRequired: false, transformFunction: null }, noBackspaceClear: { classPropertyName: "noBackspaceClear", publicName: "noBackspaceClear", isSignal: true, isRequired: false, transformFunction: null }, sortMultipleValues: { classPropertyName: "sortMultipleValues", publicName: "sortMultipleValues", isSignal: true, isRequired: false, transformFunction: null }, searchCaseSensitive: { classPropertyName: "searchCaseSensitive", publicName: "searchCaseSensitive", isSignal: true, isRequired: false, transformFunction: null }, keepSearchAfterSelect: { classPropertyName: "keepSearchAfterSelect", publicName: "keepSearchAfterSelect", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, itemDisplayLimit: { classPropertyName: "itemDisplayLimit", publicName: "itemDisplayLimit", isSignal: true, isRequired: false, transformFunction: null }, searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, dropdownAppearance: { classPropertyName: "dropdownAppearance", publicName: "dropdownAppearance", isSignal: true, isRequired: false, transformFunction: null }, dropdownVariant: { classPropertyName: "dropdownVariant", publicName: "dropdownVariant", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, multiselectable: { classPropertyName: "multiselectable", publicName: "multiselectable", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, addCustom: { classPropertyName: "addCustom", publicName: "addCustom", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelWidth: { classPropertyName: "dropdownPanelWidth", publicName: "dropdownPanelWidth", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelHeight: { classPropertyName: "dropdownPanelHeight", publicName: "dropdownPanelHeight", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMinWidth: { classPropertyName: "dropdownPanelMinWidth", publicName: "dropdownPanelMinWidth", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMinHeight: { classPropertyName: "dropdownPanelMinHeight", publicName: "dropdownPanelMinHeight", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMaxWidth: { classPropertyName: "dropdownPanelMaxWidth", publicName: "dropdownPanelMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMaxHeight: { classPropertyName: "dropdownPanelMaxHeight", publicName: "dropdownPanelMaxHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange",
|
|
4325
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ArdiumSelectComponent, isStandalone: false, selector: "ard-select", inputs: { valueFrom: { classPropertyName: "valueFrom", publicName: "valueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "labelFrom", isSignal: true, isRequired: false, transformFunction: null }, disabledFrom: { classPropertyName: "disabledFrom", publicName: "disabledFrom", isSignal: true, isRequired: false, transformFunction: null }, groupLabelFrom: { classPropertyName: "groupLabelFrom", publicName: "groupLabelFrom", isSignal: true, isRequired: false, transformFunction: null }, groupDisabledFrom: { classPropertyName: "groupDisabledFrom", publicName: "groupDisabledFrom", isSignal: true, isRequired: false, transformFunction: null }, childrenFrom: { classPropertyName: "childrenFrom", publicName: "childrenFrom", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, clearButtonTitle: { classPropertyName: "clearButtonTitle", publicName: "clearButtonTitle", isSignal: true, isRequired: false, transformFunction: null }, dropdownPosition: { classPropertyName: "dropdownPosition", publicName: "dropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, noItemsFoundText: { classPropertyName: "noItemsFoundText", publicName: "noItemsFoundText", isSignal: true, isRequired: false, transformFunction: null }, addCustomOptionText: { classPropertyName: "addCustomOptionText", publicName: "addCustomOptionText", isSignal: true, isRequired: false, transformFunction: null }, loadingPlaceholderText: { classPropertyName: "loadingPlaceholderText", publicName: "loadingPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, searchInputId: { classPropertyName: "searchInputId", publicName: "searchInputId", isSignal: true, isRequired: false, transformFunction: null }, inputAttrs: { classPropertyName: "inputAttrs", publicName: "inputAttrs", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, itemsAlreadyGrouped: { classPropertyName: "itemsAlreadyGrouped", publicName: "itemsAlreadyGrouped", isSignal: true, isRequired: false, transformFunction: null }, invertDisabled: { classPropertyName: "invertDisabled", publicName: "invertDisabled", isSignal: true, isRequired: false, transformFunction: null }, noGroupActions: { classPropertyName: "noGroupActions", publicName: "noGroupActions", isSignal: true, isRequired: false, transformFunction: null }, autoHighlightFirst: { classPropertyName: "autoHighlightFirst", publicName: "autoHighlightFirst", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, keepOpen: { classPropertyName: "keepOpen", publicName: "keepOpen", isSignal: true, isRequired: false, transformFunction: null }, hideSelected: { classPropertyName: "hideSelected", publicName: "hideSelected", isSignal: true, isRequired: false, transformFunction: null }, noBackspaceClear: { classPropertyName: "noBackspaceClear", publicName: "noBackspaceClear", isSignal: true, isRequired: false, transformFunction: null }, sortMultipleValues: { classPropertyName: "sortMultipleValues", publicName: "sortMultipleValues", isSignal: true, isRequired: false, transformFunction: null }, searchCaseSensitive: { classPropertyName: "searchCaseSensitive", publicName: "searchCaseSensitive", isSignal: true, isRequired: false, transformFunction: null }, keepSearchAfterSelect: { classPropertyName: "keepSearchAfterSelect", publicName: "keepSearchAfterSelect", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, itemDisplayLimit: { classPropertyName: "itemDisplayLimit", publicName: "itemDisplayLimit", isSignal: true, isRequired: false, transformFunction: null }, searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, dropdownAppearance: { classPropertyName: "dropdownAppearance", publicName: "dropdownAppearance", isSignal: true, isRequired: false, transformFunction: null }, dropdownVariant: { classPropertyName: "dropdownVariant", publicName: "dropdownVariant", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, multiselectable: { classPropertyName: "multiselectable", publicName: "multiselectable", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, addCustom: { classPropertyName: "addCustom", publicName: "addCustom", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelWidth: { classPropertyName: "dropdownPanelWidth", publicName: "dropdownPanelWidth", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelHeight: { classPropertyName: "dropdownPanelHeight", publicName: "dropdownPanelHeight", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMinWidth: { classPropertyName: "dropdownPanelMinWidth", publicName: "dropdownPanelMinWidth", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMinHeight: { classPropertyName: "dropdownPanelMinHeight", publicName: "dropdownPanelMinHeight", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMaxWidth: { classPropertyName: "dropdownPanelMaxWidth", publicName: "dropdownPanelMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, dropdownPanelMaxHeight: { classPropertyName: "dropdownPanelMaxHeight", publicName: "dropdownPanelMaxHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", addEvent: "add", failedToAddEvent: "failedToAdd", removeEvent: "remove", clearEvent: "clear", openEvent: "open", closeEvent: "close", scrollEvent: "scroll", scrollToEndEvent: "scrollToEnd", searchEvent: "search", isOpen: "isOpenChange" }, host: { listeners: { "window:resize": "onWindowResize()", "mouseup": "onMouseup()", "keydown": "onKeyPress($event)" }, properties: { "class.ard-group-items": "this._groupItemsHostAttribute" } }, providers: [
|
|
4330
4326
|
{
|
|
4331
4327
|
provide: NG_VALUE_ACCESSOR,
|
|
4332
4328
|
useExisting: forwardRef(() => ArdiumSelectComponent),
|
|
@@ -4336,7 +4332,7 @@ class ArdiumSelectComponent extends _FormFieldComponentBase {
|
|
|
4336
4332
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
4337
4333
|
useExisting: ArdiumSelectComponent,
|
|
4338
4334
|
},
|
|
4339
|
-
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdOptionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "optgroupTemplate", first: true, predicate: ArdOptgroupTemplateDirective, descendants: true, isSignal: true }, { propertyName: "valueTemplate", first: true, predicate: ArdValueTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdSelectPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "loadingSpinnerTemplate", first: true, predicate: ArdLoadingSpinnerTemplateDirective, descendants: true, isSignal: true }, { propertyName: "loadingPlaceholderTemplate", first: true, predicate: ArdLoadingPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dropdownHeaderTemplate", first: true, predicate: ArdDropdownHeaderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dropdownFooterTemplate", first: true, predicate: ArdDropdownFooterTemplateDirective, descendants: true, isSignal: true }, { propertyName: "noItemsFoundTemplate", first: true, predicate: ArdNoItemsFoundTemplateDirective, descendants: true, isSignal: true }, { propertyName: "addCustomTemplate", first: true, predicate: ArdAddCustomTemplateDirective, descendants: true, isSignal: true }, { propertyName: "itemLimitReachedTemplate", first: true, predicate: ArdItemLimitReachedTemplateDirective, descendants: true, isSignal: true }, { propertyName: "itemDisplayLimitTemplate", first: true, predicate: ArdItemDisplayLimitTemplateDirective, descendants: true, isSignal: true }, { propertyName: "prefixTemplate", first: true, predicate: ArdSelectPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdSelectSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "optionComponents", predicate: ArdiumOptionComponent }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }, { propertyName: "dropdownPanel", first: true, predicate: ArdiumDropdownPanelComponent, descendants: true, isSignal: true }, { propertyName: "dropdownHost", first: true, predicate: ["dropdownHost"], descendants: true, read: ElementRef }, { propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-select\"\r\n #dropdownHost\r\n (click)=\"handleAnywhereClick($event)\"\r\n [class.ard-has-value]=\"itemStorage.isAnyItemSelected()\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-select-value-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n } @if (shouldDisplayValue()) { @for (item of itemStorage.selectedItems(); track item.index) {\r\n <div\r\n class=\"ard-select-value\"\r\n [class.ard-value-disabled]=\"item.disabled()\"\r\n [attr.hidden]=\"!isValueWithinDisplayLimit($index)\"\r\n >\r\n @if (isValueWithinDisplayLimit($index)) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"valueTemplate()?.template || (multiselectable() ? defaultMultiValueTemplate : defaultValueTemplate)\"\r\n [ngTemplateOutletContext]=\"getValueContext(item)\"\r\n />\r\n }\r\n </div>\r\n }\r\n\r\n <ng-template\r\n #defaultValueTemplate\r\n let-item\r\n >\r\n <div\r\n class=\"ard-select-value\"\r\n [innerHTML]=\"isItemsInputUsed ? (item.label() | escapeHTML) : item.label()\"\r\n ></div>\r\n </ng-template>\r\n <ng-template\r\n #defaultMultiValueTemplate\r\n let-item\r\n let-unselect=\"unselect\"\r\n >\r\n <ard-deletable-chip\r\n (delete)=\"unselect(item)\"\r\n [variant]=\"variant()\"\r\n compact\r\n appearance=\"outlined\"\r\n >\r\n <div [innerHTML]=\"isItemsInputUsed ? (item.label() | escapeHTML) : item.label()\"></div>\r\n </ard-deletable-chip>\r\n </ng-template>\r\n } @if (itemStorage.isAnyItemSelected() && shouldShowItemDisplayLimit()) {\r\n <div class=\"ard-overflow-indicator\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"itemDisplayLimitTemplate()?.template || defaultItemDisplayLimitTemplate\"\r\n [ngTemplateOutletContext]=\"getItemDisplayLimitContext()\"\r\n />\r\n\r\n <ng-template\r\n #defaultItemDisplayLimitTemplate\r\n let-count=\"overflowCount\"\r\n >\r\n <div>{{ count }} more...</div>\r\n </ng-template>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"ard-search-input\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-owns]=\"isOpen() ? htmlId() : null\"\r\n >\r\n <input\r\n #searchInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"searchInputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"isInputElementReadonly()\"\r\n [disabled]=\"disabled()\"\r\n [value]=\"searchTerm()\"\r\n aria-autocomplete=\"list\"\r\n [attr.aria-controls]=\"isOpen() ? htmlId() : null\"\r\n (input)=\"filter(searchInput.value)\"\r\n (change)=\"$event.stopPropagation()\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"onSearchInputFocus()\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"onSearchInputBlur()\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"ard-select-controls\">\r\n @if (isLoading()) {\r\n <ng-template #defaultLoadingSpinnerTemplate>\r\n <div class=\"ard-spinner\"></div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate()?.template || defaultLoadingSpinnerTemplate\" />\r\n } @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"handleClearButtonClick($event)\"\r\n />\r\n } @if (!readonly()) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-dropdown-arrow-wrapper\"\r\n (click)=\"handleDropdownArrowClick($event)\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n >\r\n <span class=\"ard-dropdown-arrow\"></span>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #dropdownTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-select-dropdown-panel\"\r\n role=\"listbox\"\r\n aria-label=\"Options list\"\r\n [headerTemplate]=\"dropdownHeaderTemplate()?.template ?? null\"\r\n [footerTemplate]=\"dropdownFooterTemplate()?.template ?? null\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"true\"\r\n [filterValue]=\"searchTerm()\"\r\n [panelId]=\"htmlId()\"\r\n [compact]=\"compact()\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n (scroll)=\"scrollEvent.emit($event)\"\r\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\r\n >\r\n @if (!shouldShowNoItemsFound()) { @for (group of itemStorage.groups(); track $index) {\r\n <div\r\n class=\"ard-optgroup\"\r\n role=\"group\"\r\n [class.ard-group-disabled]=\"group.disabled()\"\r\n [class.ard-group-selected]=\"group.selected()\"\r\n [class.ard-group-highlighted]=\"group.highlighted()\"\r\n (mouseover)=\"onGroupMouseover(group)\"\r\n (click)=\"onGroupClick(group)\"\r\n >\r\n @if (group.label() !== '' && group.label() !== undefined) {\r\n <ng-template\r\n #defaultOptgroupTemplate\r\n let-group\r\n >\r\n <span\r\n class=\"ard-optgroup-label\"\r\n [innerHTML]=\"isItemsInputUsed ? (group.label() | escapeHTML) : group.label()\"\r\n ></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optgroupTemplate()?.template || defaultOptgroupTemplate\"\r\n [ngTemplateOutletContext]=\"getGroupContext(group)\"\r\n />\r\n }\r\n\r\n <div class=\"ard-optgroup-children\">\r\n @for (option of group.children(); track option.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-disabled]=\"option.disabled()\"\r\n [class.ard-option-selected]=\"option.selected()\"\r\n [class.ard-option-highlighted]=\"option.highlighted()\"\r\n [class.ard-option-highlighted-recent]=\"option.highlighted_recently()\"\r\n [attr.aria-selected]=\"option.selected()\"\r\n [attr.id]=\"htmlId() + '-' + option.index\"\r\n (click)=\"onItemClick(option, $event)\"\r\n (mouseover)=\"onItemMouseOver($event)\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n >\r\n <div class=\"ard-option-label\">\r\n <ng-template\r\n #defaultOptionTemplate\r\n let-option\r\n >\r\n <span [innerHTML]=\"isItemsInputUsed ? (option.label() | escapeHTML) : option.label()\"></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } } @if (shouldShowNoItemsFound()) {\r\n <ng-template #defaultNoItemsFoundTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ noItemsFoundText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"noItemsFoundTemplate()?.template || defaultNoItemsFoundTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n } @if (shouldShowAddCustom()) {\r\n <ng-template\r\n #defaultAddCustomTemplate\r\n let-searchTerm\r\n >\r\n <span class=\"ard-add-custom-label\">{{ addCustomOptionText() }}</span>\r\n <span class=\"ard-add-custom-value\">\"{{ searchTerm }}\"</span>\r\n </ng-template>\r\n\r\n <div\r\n class=\"ard-option ard-option-highlighted ard-add-custom\"\r\n (click)=\"addCustomOption(searchTerm())\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"addCustomTemplate()?.template || defaultAddCustomTemplate\"\r\n [ngTemplateOutletContext]=\"getCustomOptionContext()\"\r\n />\r\n </div>\r\n } @if (isLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ loadingPlaceholderText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"loadingPlaceholderTemplate()?.template || defaultLoadingPlaceholderTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-select .ard-select-container{display:flex;cursor:pointer}.ard-select .ard-placeholder,.ard-select .ard-value,.ard-select .ard-dropdown-arrow-wrapper,.ard-select .ard-clear-btn-wrapper{-webkit-user-select:none;user-select:none}.ard-select .ard-clear-btn,.ard-select .ard-dropdown-arrow{border:none;background:transparent;padding:0;box-sizing:content-box}.ard-select .ard-option-disabled{pointer-events:none}.ard-select .ard-select-value{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ard-select .ard-select-value[hidden=true]{display:none}.ard-select .ard-searchable .ard-select-value-container{cursor:text}.ard-select .ard-dropdown-arrow-wrapper{position:relative}.ard-select .ard-dropdown-arrow-wrapper .ard-hitbox{position:absolute;left:-4px;right:-4px;aspect-ratio:1}.ard-select-dropdown-panel .ard-optgroup,.ard-select-dropdown-panel .ard-option{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: ArdiumDropdownPanelComponent, selector: "ard-dropdown-panel", inputs: ["panelId", "headerTemplate", "footerTemplate", "filterValue", "appearance", "variant", "compact", "isOpen"], outputs: ["scroll", "scrollToEnd"] }, { kind: "component", type: ArdiumDeletableChipComponent, selector: "ard-deletable-chip", inputs: ["deleteButtonTitle", "contentAlignment", "appearance", "variant", "color", "compact", "wrapperClasses"], outputs: ["delete"] }, { kind: "directive", type: i5.ArdiumClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }, { kind: "component", type: _ClearButtonComponent, selector: "ard-clear-button" }, { kind: "pipe", type: i5.ArdiumEscapeHTMLPipe, name: "escapeHTML" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4335
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdOptionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "optgroupTemplate", first: true, predicate: ArdOptgroupTemplateDirective, descendants: true, isSignal: true }, { propertyName: "valueTemplate", first: true, predicate: ArdValueTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdSelectPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dropdownArrowTemplate", first: true, predicate: ArdSelectDropdownArrowTemplateDirective, descendants: true, isSignal: true }, { propertyName: "loadingSpinnerTemplate", first: true, predicate: ArdLoadingSpinnerTemplateDirective, descendants: true, isSignal: true }, { propertyName: "loadingPlaceholderTemplate", first: true, predicate: ArdLoadingPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dropdownHeaderTemplate", first: true, predicate: ArdDropdownHeaderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dropdownFooterTemplate", first: true, predicate: ArdDropdownFooterTemplateDirective, descendants: true, isSignal: true }, { propertyName: "noItemsFoundTemplate", first: true, predicate: ArdNoItemsFoundTemplateDirective, descendants: true, isSignal: true }, { propertyName: "addCustomTemplate", first: true, predicate: ArdAddCustomTemplateDirective, descendants: true, isSignal: true }, { propertyName: "itemLimitReachedTemplate", first: true, predicate: ArdItemLimitReachedTemplateDirective, descendants: true, isSignal: true }, { propertyName: "itemDisplayLimitTemplate", first: true, predicate: ArdItemDisplayLimitTemplateDirective, descendants: true, isSignal: true }, { propertyName: "prefixTemplate", first: true, predicate: ArdSelectPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdSelectSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "optionComponents", predicate: ArdiumOptionComponent }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }, { propertyName: "dropdownPanel", first: true, predicate: ArdiumDropdownPanelComponent, descendants: true, isSignal: true }, { propertyName: "dropdownHost", first: true, predicate: ["dropdownHost"], descendants: true, isSignal: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-select\"\r\n #dropdownHost\r\n (click)=\"handleAnywhereClick($event)\"\r\n [class.ard-has-value]=\"itemStorage.isAnyItemSelected()\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-select-value-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n } @if (shouldDisplayValue()) { @for (item of itemStorage.selectedItems(); track item.index) {\r\n <div\r\n class=\"ard-select-value\"\r\n [class.ard-value-disabled]=\"item.disabled\"\r\n [attr.hidden]=\"!isValueWithinDisplayLimit($index)\"\r\n >\r\n @if (isValueWithinDisplayLimit($index)) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"valueTemplate()?.template || (multiselectable() ? defaultMultiValueTemplate : defaultValueTemplate)\"\r\n [ngTemplateOutletContext]=\"valueContextGenerator()(item)\"\r\n />\r\n }\r\n </div>\r\n }\r\n\r\n <ng-template\r\n #defaultValueTemplate\r\n let-label=\"label\"\r\n >\r\n <div\r\n class=\"ard-select-value\"\r\n [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"\r\n ></div>\r\n </ng-template>\r\n <ng-template\r\n #defaultMultiValueTemplate\r\n let-item\r\n let-label=\"label\"\r\n let-unselect=\"unselect\"\r\n >\r\n <ard-deletable-chip\r\n (delete)=\"unselect(item)\"\r\n [variant]=\"variant()\"\r\n compact\r\n appearance=\"outlined\"\r\n >\r\n <div [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"></div>\r\n </ard-deletable-chip>\r\n </ng-template>\r\n } @if (itemStorage.isAnyItemSelected() && shouldShowItemDisplayLimit()) {\r\n <div class=\"ard-overflow-indicator\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"itemDisplayLimitTemplate()?.template || defaultItemDisplayLimitTemplate\"\r\n [ngTemplateOutletContext]=\"getItemDisplayLimitContext()\"\r\n />\r\n\r\n <ng-template\r\n #defaultItemDisplayLimitTemplate\r\n let-count=\"overflowCount\"\r\n >\r\n <div>{{ count }} more...</div>\r\n </ng-template>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"ard-search-input\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-owns]=\"isOpen() ? htmlId() : null\"\r\n >\r\n <input\r\n #searchInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"searchInputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"isInputElementReadonly()\"\r\n [disabled]=\"disabled()\"\r\n [value]=\"searchTerm()\"\r\n aria-autocomplete=\"list\"\r\n [attr.aria-controls]=\"isOpen() ? htmlId() : null\"\r\n (input)=\"filter(searchInput.value)\"\r\n (change)=\"$event.stopPropagation()\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"onSearchInputFocus()\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"onSearchInputBlur()\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"ard-select-controls\">\r\n @if (isLoading()) {\r\n <ng-template #defaultLoadingSpinnerTemplate>\r\n <div class=\"ard-spinner\"></div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate()?.template || defaultLoadingSpinnerTemplate\" />\r\n } @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"handleClearButtonClick($event)\"\r\n />\r\n } @if (!readonly()) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-dropdown-arrow-wrapper\"\r\n (click)=\"handleDropdownArrowClick($event)\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n >\r\n <ng-template #defaultDropdownArrowTemplate>\r\n <span class=\"ard-dropdown-arrow\"></span>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"dropdownArrowTemplate()?.template || defaultDropdownArrowTemplate\" />\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #dropdownTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-select-dropdown-panel\"\r\n role=\"listbox\"\r\n aria-label=\"Options list\"\r\n [headerTemplate]=\"dropdownHeaderTemplate()?.template ?? null\"\r\n [footerTemplate]=\"dropdownFooterTemplate()?.template ?? null\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"true\"\r\n [filterValue]=\"searchTerm()\"\r\n [panelId]=\"htmlId()\"\r\n [compact]=\"compact()\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n (scroll)=\"scrollEvent.emit($event)\"\r\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\r\n >\r\n @if (!shouldShowNoItemsFound()) { @for (group of itemStorage.groups(); track $index) {\r\n <div\r\n class=\"ard-optgroup\"\r\n role=\"group\"\r\n [class.ard-group-disabled]=\"group.disabled\"\r\n (mouseover)=\"onGroupMouseover(group)\"\r\n (click)=\"onGroupClick(group)\"\r\n >\r\n @if (!!group.label) {\r\n <ng-template\r\n #defaultOptgroupTemplate\r\n let-label=\"label\"\r\n >\r\n <span\r\n class=\"ard-optgroup-label\"\r\n [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"\r\n ></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optgroupTemplate()?.template || defaultOptgroupTemplate\"\r\n [ngTemplateOutletContext]=\"groupContextGenerator()(group)\"\r\n />\r\n }\r\n\r\n <div class=\"ard-optgroup-children\">\r\n @for (option of group.children; track option.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-disabled]=\"option.disabled || (itemStorage.isItemLimitReached() && !option.selected)\"\r\n [class.ard-option-selected]=\"option.selected\"\r\n [class.ard-option-highlighted]=\"option.highlighted\"\r\n [class.ard-option-highlighted-recent]=\"option.highlighted_recently\"\r\n [attr.aria-selected]=\"option.selected\"\r\n [attr.id]=\"htmlId() + '-' + option.index\"\r\n (click)=\"onItemClick(option, $event)\"\r\n (mouseover)=\"onItemMouseOver($event)\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n >\r\n <div class=\"ard-option-label\">\r\n <ng-template\r\n #defaultOptionTemplate\r\n let-label=\"label\"\r\n >\r\n <span [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"optionContextGenerator()(option)\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } } @if (shouldShowNoItemsFound()) {\r\n <ng-template #defaultNoItemsFoundTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ noItemsFoundText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"noItemsFoundTemplate()?.template || defaultNoItemsFoundTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n } @if (shouldShowAddCustom()) {\r\n <div\r\n class=\"ard-option ard-option-highlighted ard-add-custom\"\r\n (click)=\"addCustomOption(searchTerm())\"\r\n >\r\n <ng-template\r\n #defaultAddCustomTemplate\r\n let-searchTerm\r\n >\r\n <span class=\"ard-add-custom-label\">{{ addCustomOptionText() }}</span>\r\n <span class=\"ard-add-custom-value\">\"{{ searchTerm }}\"</span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"addCustomTemplate()?.template || defaultAddCustomTemplate\"\r\n [ngTemplateOutletContext]=\"getCustomOptionContext()\"\r\n />\r\n </div>\r\n } @if (isLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ loadingPlaceholderText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"loadingPlaceholderTemplate()?.template || defaultLoadingPlaceholderTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-select .ard-select-container{display:flex;cursor:pointer}.ard-select .ard-placeholder,.ard-select .ard-value,.ard-select .ard-dropdown-arrow-wrapper,.ard-select .ard-clear-btn-wrapper{-webkit-user-select:none;user-select:none}.ard-select .ard-clear-btn,.ard-select .ard-dropdown-arrow{border:none;background:transparent;padding:0;box-sizing:content-box}.ard-select .ard-option-disabled{pointer-events:none}.ard-select .ard-select-value{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ard-select .ard-select-value[hidden=true]{display:none}.ard-select .ard-searchable .ard-select-value-container{cursor:text}.ard-select .ard-dropdown-arrow-wrapper{position:relative}.ard-select .ard-dropdown-arrow-wrapper .ard-hitbox{position:absolute;left:-4px;right:-4px;aspect-ratio:1}.ard-select-dropdown-panel .ard-optgroup,.ard-select-dropdown-panel .ard-option{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: ArdiumDropdownPanelComponent, selector: "ard-dropdown-panel", inputs: ["panelId", "headerTemplate", "footerTemplate", "filterValue", "appearance", "variant", "compact", "isOpen"], outputs: ["scroll", "scrollToEnd"] }, { kind: "component", type: ArdiumDeletableChipComponent, selector: "ard-deletable-chip", inputs: ["deleteButtonTitle", "contentAlignment", "appearance", "variant", "color", "compact", "wrapperClasses"], outputs: ["delete"] }, { kind: "directive", type: i5.ArdiumClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }, { kind: "component", type: _ClearButtonComponent, selector: "ard-clear-button" }, { kind: "pipe", type: i5.ArdiumEscapeHTMLPipe, name: "escapeHTML" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4340
4336
|
}
|
|
4341
4337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumSelectComponent, decorators: [{
|
|
4342
4338
|
type: Component,
|
|
@@ -4350,7 +4346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4350
4346
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
4351
4347
|
useExisting: ArdiumSelectComponent,
|
|
4352
4348
|
},
|
|
4353
|
-
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-select\"\r\n #dropdownHost\r\n (click)=\"handleAnywhereClick($event)\"\r\n [class.ard-has-value]=\"itemStorage.isAnyItemSelected()\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-select-value-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n } @if (shouldDisplayValue()) { @for (item of itemStorage.selectedItems(); track item.index) {\r\n <div\r\n class=\"ard-select-value\"\r\n [class.ard-value-disabled]=\"item.disabled()\"\r\n [attr.hidden]=\"!isValueWithinDisplayLimit($index)\"\r\n >\r\n @if (isValueWithinDisplayLimit($index)) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"valueTemplate()?.template || (multiselectable() ? defaultMultiValueTemplate : defaultValueTemplate)\"\r\n [ngTemplateOutletContext]=\"getValueContext(item)\"\r\n />\r\n }\r\n </div>\r\n }\r\n\r\n <ng-template\r\n #defaultValueTemplate\r\n let-item\r\n >\r\n <div\r\n class=\"ard-select-value\"\r\n [innerHTML]=\"isItemsInputUsed ? (item.label() | escapeHTML) : item.label()\"\r\n ></div>\r\n </ng-template>\r\n <ng-template\r\n #defaultMultiValueTemplate\r\n let-item\r\n let-unselect=\"unselect\"\r\n >\r\n <ard-deletable-chip\r\n (delete)=\"unselect(item)\"\r\n [variant]=\"variant()\"\r\n compact\r\n appearance=\"outlined\"\r\n >\r\n <div [innerHTML]=\"isItemsInputUsed ? (item.label() | escapeHTML) : item.label()\"></div>\r\n </ard-deletable-chip>\r\n </ng-template>\r\n } @if (itemStorage.isAnyItemSelected() && shouldShowItemDisplayLimit()) {\r\n <div class=\"ard-overflow-indicator\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"itemDisplayLimitTemplate()?.template || defaultItemDisplayLimitTemplate\"\r\n [ngTemplateOutletContext]=\"getItemDisplayLimitContext()\"\r\n />\r\n\r\n <ng-template\r\n #defaultItemDisplayLimitTemplate\r\n let-count=\"overflowCount\"\r\n >\r\n <div>{{ count }} more...</div>\r\n </ng-template>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"ard-search-input\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-owns]=\"isOpen() ? htmlId() : null\"\r\n >\r\n <input\r\n #searchInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"searchInputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"isInputElementReadonly()\"\r\n [disabled]=\"disabled()\"\r\n [value]=\"searchTerm()\"\r\n aria-autocomplete=\"list\"\r\n [attr.aria-controls]=\"isOpen() ? htmlId() : null\"\r\n (input)=\"filter(searchInput.value)\"\r\n (change)=\"$event.stopPropagation()\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"onSearchInputFocus()\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"onSearchInputBlur()\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"ard-select-controls\">\r\n @if (isLoading()) {\r\n <ng-template #defaultLoadingSpinnerTemplate>\r\n <div class=\"ard-spinner\"></div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate()?.template || defaultLoadingSpinnerTemplate\" />\r\n } @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"handleClearButtonClick($event)\"\r\n />\r\n } @if (!readonly()) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-dropdown-arrow-wrapper\"\r\n (click)=\"handleDropdownArrowClick($event)\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n >\r\n <span class=\"ard-dropdown-arrow\"></span>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #dropdownTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-select-dropdown-panel\"\r\n role=\"listbox\"\r\n aria-label=\"Options list\"\r\n [headerTemplate]=\"dropdownHeaderTemplate()?.template ?? null\"\r\n [footerTemplate]=\"dropdownFooterTemplate()?.template ?? null\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"true\"\r\n [filterValue]=\"searchTerm()\"\r\n [panelId]=\"htmlId()\"\r\n [compact]=\"compact()\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n (scroll)=\"scrollEvent.emit($event)\"\r\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\r\n >\r\n @if (!shouldShowNoItemsFound()) { @for (group of itemStorage.groups(); track $index) {\r\n <div\r\n class=\"ard-optgroup\"\r\n role=\"group\"\r\n [class.ard-group-disabled]=\"group.disabled()\"\r\n [class.ard-group-selected]=\"group.selected()\"\r\n [class.ard-group-highlighted]=\"group.highlighted()\"\r\n (mouseover)=\"onGroupMouseover(group)\"\r\n (click)=\"onGroupClick(group)\"\r\n >\r\n @if (group.label() !== '' && group.label() !== undefined) {\r\n <ng-template\r\n #defaultOptgroupTemplate\r\n let-group\r\n >\r\n <span\r\n class=\"ard-optgroup-label\"\r\n [innerHTML]=\"isItemsInputUsed ? (group.label() | escapeHTML) : group.label()\"\r\n ></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optgroupTemplate()?.template || defaultOptgroupTemplate\"\r\n [ngTemplateOutletContext]=\"getGroupContext(group)\"\r\n />\r\n }\r\n\r\n <div class=\"ard-optgroup-children\">\r\n @for (option of group.children(); track option.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-disabled]=\"option.disabled()\"\r\n [class.ard-option-selected]=\"option.selected()\"\r\n [class.ard-option-highlighted]=\"option.highlighted()\"\r\n [class.ard-option-highlighted-recent]=\"option.highlighted_recently()\"\r\n [attr.aria-selected]=\"option.selected()\"\r\n [attr.id]=\"htmlId() + '-' + option.index\"\r\n (click)=\"onItemClick(option, $event)\"\r\n (mouseover)=\"onItemMouseOver($event)\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n >\r\n <div class=\"ard-option-label\">\r\n <ng-template\r\n #defaultOptionTemplate\r\n let-option\r\n >\r\n <span [innerHTML]=\"isItemsInputUsed ? (option.label() | escapeHTML) : option.label()\"></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } } @if (shouldShowNoItemsFound()) {\r\n <ng-template #defaultNoItemsFoundTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ noItemsFoundText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"noItemsFoundTemplate()?.template || defaultNoItemsFoundTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n } @if (shouldShowAddCustom()) {\r\n <ng-template\r\n #defaultAddCustomTemplate\r\n let-searchTerm\r\n >\r\n <span class=\"ard-add-custom-label\">{{ addCustomOptionText() }}</span>\r\n <span class=\"ard-add-custom-value\">\"{{ searchTerm }}\"</span>\r\n </ng-template>\r\n\r\n <div\r\n class=\"ard-option ard-option-highlighted ard-add-custom\"\r\n (click)=\"addCustomOption(searchTerm())\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"addCustomTemplate()?.template || defaultAddCustomTemplate\"\r\n [ngTemplateOutletContext]=\"getCustomOptionContext()\"\r\n />\r\n </div>\r\n } @if (isLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ loadingPlaceholderText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"loadingPlaceholderTemplate()?.template || defaultLoadingPlaceholderTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-select .ard-select-container{display:flex;cursor:pointer}.ard-select .ard-placeholder,.ard-select .ard-value,.ard-select .ard-dropdown-arrow-wrapper,.ard-select .ard-clear-btn-wrapper{-webkit-user-select:none;user-select:none}.ard-select .ard-clear-btn,.ard-select .ard-dropdown-arrow{border:none;background:transparent;padding:0;box-sizing:content-box}.ard-select .ard-option-disabled{pointer-events:none}.ard-select .ard-select-value{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ard-select .ard-select-value[hidden=true]{display:none}.ard-select .ard-searchable .ard-select-value-container{cursor:text}.ard-select .ard-dropdown-arrow-wrapper{position:relative}.ard-select .ard-dropdown-arrow-wrapper .ard-hitbox{position:absolute;left:-4px;right:-4px;aspect-ratio:1}.ard-select-dropdown-panel .ard-optgroup,.ard-select-dropdown-panel .ard-option{-webkit-user-select:none;user-select:none}\n"] }]
|
|
4349
|
+
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [readonly]=\"readonly()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-select\"\r\n #dropdownHost\r\n (click)=\"handleAnywhereClick($event)\"\r\n [class.ard-has-value]=\"itemStorage.isAnyItemSelected()\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-select-value-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n } @if (shouldDisplayValue()) { @for (item of itemStorage.selectedItems(); track item.index) {\r\n <div\r\n class=\"ard-select-value\"\r\n [class.ard-value-disabled]=\"item.disabled\"\r\n [attr.hidden]=\"!isValueWithinDisplayLimit($index)\"\r\n >\r\n @if (isValueWithinDisplayLimit($index)) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"valueTemplate()?.template || (multiselectable() ? defaultMultiValueTemplate : defaultValueTemplate)\"\r\n [ngTemplateOutletContext]=\"valueContextGenerator()(item)\"\r\n />\r\n }\r\n </div>\r\n }\r\n\r\n <ng-template\r\n #defaultValueTemplate\r\n let-label=\"label\"\r\n >\r\n <div\r\n class=\"ard-select-value\"\r\n [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"\r\n ></div>\r\n </ng-template>\r\n <ng-template\r\n #defaultMultiValueTemplate\r\n let-item\r\n let-label=\"label\"\r\n let-unselect=\"unselect\"\r\n >\r\n <ard-deletable-chip\r\n (delete)=\"unselect(item)\"\r\n [variant]=\"variant()\"\r\n compact\r\n appearance=\"outlined\"\r\n >\r\n <div [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"></div>\r\n </ard-deletable-chip>\r\n </ng-template>\r\n } @if (itemStorage.isAnyItemSelected() && shouldShowItemDisplayLimit()) {\r\n <div class=\"ard-overflow-indicator\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"itemDisplayLimitTemplate()?.template || defaultItemDisplayLimitTemplate\"\r\n [ngTemplateOutletContext]=\"getItemDisplayLimitContext()\"\r\n />\r\n\r\n <ng-template\r\n #defaultItemDisplayLimitTemplate\r\n let-count=\"overflowCount\"\r\n >\r\n <div>{{ count }} more...</div>\r\n </ng-template>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"ard-search-input\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-owns]=\"isOpen() ? htmlId() : null\"\r\n >\r\n <input\r\n #searchInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"searchInputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"isInputElementReadonly()\"\r\n [disabled]=\"disabled()\"\r\n [value]=\"searchTerm()\"\r\n aria-autocomplete=\"list\"\r\n [attr.aria-controls]=\"isOpen() ? htmlId() : null\"\r\n (input)=\"filter(searchInput.value)\"\r\n (change)=\"$event.stopPropagation()\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"onSearchInputFocus()\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"onSearchInputBlur()\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"ard-select-controls\">\r\n @if (isLoading()) {\r\n <ng-template #defaultLoadingSpinnerTemplate>\r\n <div class=\"ard-spinner\"></div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate()?.template || defaultLoadingSpinnerTemplate\" />\r\n } @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"handleClearButtonClick($event)\"\r\n />\r\n } @if (!readonly()) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-dropdown-arrow-wrapper\"\r\n (click)=\"handleDropdownArrowClick($event)\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n >\r\n <ng-template #defaultDropdownArrowTemplate>\r\n <span class=\"ard-dropdown-arrow\"></span>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"dropdownArrowTemplate()?.template || defaultDropdownArrowTemplate\" />\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #dropdownTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-select-dropdown-panel\"\r\n role=\"listbox\"\r\n aria-label=\"Options list\"\r\n [headerTemplate]=\"dropdownHeaderTemplate()?.template ?? null\"\r\n [footerTemplate]=\"dropdownFooterTemplate()?.template ?? null\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"true\"\r\n [filterValue]=\"searchTerm()\"\r\n [panelId]=\"htmlId()\"\r\n [compact]=\"compact()\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n (scroll)=\"scrollEvent.emit($event)\"\r\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\r\n >\r\n @if (!shouldShowNoItemsFound()) { @for (group of itemStorage.groups(); track $index) {\r\n <div\r\n class=\"ard-optgroup\"\r\n role=\"group\"\r\n [class.ard-group-disabled]=\"group.disabled\"\r\n (mouseover)=\"onGroupMouseover(group)\"\r\n (click)=\"onGroupClick(group)\"\r\n >\r\n @if (!!group.label) {\r\n <ng-template\r\n #defaultOptgroupTemplate\r\n let-label=\"label\"\r\n >\r\n <span\r\n class=\"ard-optgroup-label\"\r\n [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"\r\n ></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optgroupTemplate()?.template || defaultOptgroupTemplate\"\r\n [ngTemplateOutletContext]=\"groupContextGenerator()(group)\"\r\n />\r\n }\r\n\r\n <div class=\"ard-optgroup-children\">\r\n @for (option of group.children; track option.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-disabled]=\"option.disabled || (itemStorage.isItemLimitReached() && !option.selected)\"\r\n [class.ard-option-selected]=\"option.selected\"\r\n [class.ard-option-highlighted]=\"option.highlighted\"\r\n [class.ard-option-highlighted-recent]=\"option.highlighted_recently\"\r\n [attr.aria-selected]=\"option.selected\"\r\n [attr.id]=\"htmlId() + '-' + option.index\"\r\n (click)=\"onItemClick(option, $event)\"\r\n (mouseover)=\"onItemMouseOver($event)\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n >\r\n <div class=\"ard-option-label\">\r\n <ng-template\r\n #defaultOptionTemplate\r\n let-label=\"label\"\r\n >\r\n <span [innerHTML]=\"isItemsInputUsed ? (label | escapeHTML) : label\"></span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"optionContextGenerator()(option)\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } } @if (shouldShowNoItemsFound()) {\r\n <ng-template #defaultNoItemsFoundTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ noItemsFoundText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"noItemsFoundTemplate()?.template || defaultNoItemsFoundTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n } @if (shouldShowAddCustom()) {\r\n <div\r\n class=\"ard-option ard-option-highlighted ard-add-custom\"\r\n (click)=\"addCustomOption(searchTerm())\"\r\n >\r\n <ng-template\r\n #defaultAddCustomTemplate\r\n let-searchTerm\r\n >\r\n <span class=\"ard-add-custom-label\">{{ addCustomOptionText() }}</span>\r\n <span class=\"ard-add-custom-value\">\"{{ searchTerm }}\"</span>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"addCustomTemplate()?.template || defaultAddCustomTemplate\"\r\n [ngTemplateOutletContext]=\"getCustomOptionContext()\"\r\n />\r\n </div>\r\n } @if (isLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ loadingPlaceholderText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"loadingPlaceholderTemplate()?.template || defaultLoadingPlaceholderTemplate\"\r\n [ngTemplateOutletContext]=\"getSearchContext()\"\r\n />\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-select .ard-select-container{display:flex;cursor:pointer}.ard-select .ard-placeholder,.ard-select .ard-value,.ard-select .ard-dropdown-arrow-wrapper,.ard-select .ard-clear-btn-wrapper{-webkit-user-select:none;user-select:none}.ard-select .ard-clear-btn,.ard-select .ard-dropdown-arrow{border:none;background:transparent;padding:0;box-sizing:content-box}.ard-select .ard-option-disabled{pointer-events:none}.ard-select .ard-select-value{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ard-select .ard-select-value[hidden=true]{display:none}.ard-select .ard-searchable .ard-select-value-container{cursor:text}.ard-select .ard-dropdown-arrow-wrapper{position:relative}.ard-select .ard-dropdown-arrow-wrapper .ard-hitbox{position:absolute;left:-4px;right:-4px;aspect-ratio:1}.ard-select-dropdown-panel .ard-optgroup,.ard-select-dropdown-panel .ard-option{-webkit-user-select:none;user-select:none}\n"] }]
|
|
4354
4350
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4355
4351
|
type: Inject,
|
|
4356
4352
|
args: [ARD_SELECT_DEFAULTS]
|
|
@@ -4364,12 +4360,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4364
4360
|
args: [ArdiumOptionComponent]
|
|
4365
4361
|
}], value: [{
|
|
4366
4362
|
type: Input
|
|
4367
|
-
}], dropdownHost: [{
|
|
4368
|
-
type: ViewChild,
|
|
4369
|
-
args: ['dropdownHost', { read: ElementRef }]
|
|
4370
|
-
}], dropdownTemplate: [{
|
|
4371
|
-
type: ViewChild,
|
|
4372
|
-
args: ['dropdownTemplate', { read: TemplateRef }]
|
|
4373
4363
|
}], onWindowResize: [{
|
|
4374
4364
|
type: HostListener,
|
|
4375
4365
|
args: ['window:resize']
|
|
@@ -4595,7 +4585,8 @@ class ArdiumSelectModule {
|
|
|
4595
4585
|
ArdItemDisplayLimitTemplateDirective,
|
|
4596
4586
|
ArdAddCustomTemplateDirective,
|
|
4597
4587
|
ArdSelectPrefixTemplateDirective,
|
|
4598
|
-
ArdSelectSuffixTemplateDirective
|
|
4588
|
+
ArdSelectSuffixTemplateDirective,
|
|
4589
|
+
ArdSelectDropdownArrowTemplateDirective], imports: [CommonModule,
|
|
4599
4590
|
ArdiumFormFieldFrameModule,
|
|
4600
4591
|
ArdiumDropdownPanelModule,
|
|
4601
4592
|
ArdiumChipModule,
|
|
@@ -4617,7 +4608,8 @@ class ArdiumSelectModule {
|
|
|
4617
4608
|
ArdItemDisplayLimitTemplateDirective,
|
|
4618
4609
|
ArdAddCustomTemplateDirective,
|
|
4619
4610
|
ArdSelectPrefixTemplateDirective,
|
|
4620
|
-
ArdSelectSuffixTemplateDirective
|
|
4611
|
+
ArdSelectSuffixTemplateDirective,
|
|
4612
|
+
ArdSelectDropdownArrowTemplateDirective] }); }
|
|
4621
4613
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumSelectModule, imports: [CommonModule,
|
|
4622
4614
|
ArdiumFormFieldFrameModule,
|
|
4623
4615
|
ArdiumDropdownPanelModule,
|
|
@@ -4647,6 +4639,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4647
4639
|
ArdAddCustomTemplateDirective,
|
|
4648
4640
|
ArdSelectPrefixTemplateDirective,
|
|
4649
4641
|
ArdSelectSuffixTemplateDirective,
|
|
4642
|
+
ArdSelectDropdownArrowTemplateDirective,
|
|
4650
4643
|
],
|
|
4651
4644
|
imports: [
|
|
4652
4645
|
CommonModule,
|
|
@@ -4675,6 +4668,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4675
4668
|
ArdAddCustomTemplateDirective,
|
|
4676
4669
|
ArdSelectPrefixTemplateDirective,
|
|
4677
4670
|
ArdSelectSuffixTemplateDirective,
|
|
4671
|
+
ArdSelectDropdownArrowTemplateDirective,
|
|
4678
4672
|
],
|
|
4679
4673
|
}]
|
|
4680
4674
|
}] });
|
|
@@ -9094,46 +9088,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
9094
9088
|
class SimpleItemStorage {
|
|
9095
9089
|
constructor(_ardParentComp) {
|
|
9096
9090
|
this._ardParentComp = _ardParentComp;
|
|
9097
|
-
this._items =
|
|
9098
|
-
this._highlightedItems = signal([]);
|
|
9099
|
-
this._selectedItems = signal([]);
|
|
9091
|
+
this._items = arraySignal([]);
|
|
9100
9092
|
/**
|
|
9101
9093
|
* Gets all items.
|
|
9102
9094
|
*/
|
|
9103
|
-
this.items = this._items
|
|
9095
|
+
this.items = computed(() => [...this._items()]);
|
|
9104
9096
|
/**
|
|
9105
|
-
* Gets all currently
|
|
9097
|
+
* Gets all currently selected items.
|
|
9106
9098
|
*/
|
|
9107
|
-
this.
|
|
9099
|
+
this.selectedItems = computed(() => this.items().filter(item => item.selected));
|
|
9108
9100
|
/**
|
|
9109
|
-
* Gets all currently
|
|
9101
|
+
* Gets all currently highlighted items.
|
|
9110
9102
|
*/
|
|
9111
|
-
this.
|
|
9103
|
+
this.highlightedItems = computed(() => this.items().filter(item => item.highlighted));
|
|
9112
9104
|
/**
|
|
9113
9105
|
* Gets the values of the currently selected items.
|
|
9114
9106
|
*/
|
|
9115
|
-
this.value = computed(() => this._itemsToValue(this.
|
|
9107
|
+
this.value = computed(() => this._itemsToValue(this.selectedItems()));
|
|
9116
9108
|
/**
|
|
9117
9109
|
* Returns true if at least one item is highlighted, otherwise false.
|
|
9118
9110
|
*/
|
|
9119
|
-
this.isAnyItemHighlighted = computed(() => this.
|
|
9111
|
+
this.isAnyItemHighlighted = computed(() => this.highlightedItems().length > 0);
|
|
9112
|
+
/**
|
|
9113
|
+
* Finds all highlightable items. An item is considered highlightable if it is **not** disabled.
|
|
9114
|
+
* @returns An array of all highlightable items.
|
|
9115
|
+
*/
|
|
9116
|
+
this._highlightableItems = computed(() => this.items().filter(item => !item.disabled && (this.isItemLimitReached() ? item.selected : true)));
|
|
9117
|
+
this.itemsLeftUntilLimit = computed(() => this._ardParentComp.multiselectable() && isDefined(this._ardParentComp.maxSelectedItems())
|
|
9118
|
+
? this._ardParentComp.maxSelectedItems() - this.selectedItems().length
|
|
9119
|
+
: 1);
|
|
9120
9120
|
/**
|
|
9121
9121
|
* Returns true if the parent component defines the limit of concurrently selectable items and the amount of currently selected items matches that limit. Otherwise returns false.
|
|
9122
9122
|
*
|
|
9123
9123
|
* **TLDR**: true if `maxSelectedItems` is defined and the number of selected items matches that value.
|
|
9124
9124
|
*/
|
|
9125
|
-
this.isItemLimitReached = computed(() =>
|
|
9126
|
-
|
|
9127
|
-
|
|
9128
|
-
return false;
|
|
9129
|
-
}
|
|
9130
|
-
return msi <= this.selectedItems().length;
|
|
9131
|
-
});
|
|
9132
|
-
/**
|
|
9133
|
-
* Finds all highlightable items. An item is considered highlightable if it is **not** disabled.
|
|
9134
|
-
* @returns An array of all highlightable items.
|
|
9135
|
-
*/
|
|
9136
|
-
this.highlightableItems = computed(() => this._items().filter(item => !item.disabled()));
|
|
9125
|
+
this.isItemLimitReached = computed(() => this.itemsLeftUntilLimit() <= 0);
|
|
9126
|
+
this._areItemsInitialized = false;
|
|
9127
|
+
this._valueBeforeItemsSet = null;
|
|
9137
9128
|
}
|
|
9138
9129
|
/**
|
|
9139
9130
|
* Maps an array of items into their values.
|
|
@@ -9141,7 +9132,21 @@ class SimpleItemStorage {
|
|
|
9141
9132
|
* @returns An array of item values.
|
|
9142
9133
|
*/
|
|
9143
9134
|
_itemsToValue(items) {
|
|
9144
|
-
return items.map(item => item.value
|
|
9135
|
+
return items.map(item => item.value);
|
|
9136
|
+
}
|
|
9137
|
+
_updateItems(updateFn) {
|
|
9138
|
+
this._items.map(updateFn);
|
|
9139
|
+
}
|
|
9140
|
+
_updateItemsFromArray(updateFn, itemsToUpdate) {
|
|
9141
|
+
this._items.update(items => {
|
|
9142
|
+
for (const itemToUpdate of itemsToUpdate) {
|
|
9143
|
+
const item = items[itemToUpdate.index];
|
|
9144
|
+
if (item) {
|
|
9145
|
+
items[itemToUpdate.index] = updateFn(item);
|
|
9146
|
+
}
|
|
9147
|
+
}
|
|
9148
|
+
return items;
|
|
9149
|
+
});
|
|
9145
9150
|
}
|
|
9146
9151
|
/**
|
|
9147
9152
|
* Sets the component's items. Takes into account the values defined by the parent component for `valueFrom`, `labelFrom`, and `disabledFrom`.
|
|
@@ -9149,6 +9154,7 @@ class SimpleItemStorage {
|
|
|
9149
9154
|
* @returns true if at least one of the items is of primitive type, otherwise false.
|
|
9150
9155
|
*/
|
|
9151
9156
|
setItems(items) {
|
|
9157
|
+
this._areItemsInitialized = true;
|
|
9152
9158
|
let areItemsPrimitive = false;
|
|
9153
9159
|
if (items.some(isPrimitive)) {
|
|
9154
9160
|
items = items.map(this._primitiveItemsMapFn);
|
|
@@ -9157,6 +9163,10 @@ class SimpleItemStorage {
|
|
|
9157
9163
|
this._items.set(items.map((item, index) => {
|
|
9158
9164
|
return this._setItemsMapFn(item, index, areItemsPrimitive);
|
|
9159
9165
|
}));
|
|
9166
|
+
if (this._valueBeforeItemsSet !== null) {
|
|
9167
|
+
this.writeValue(this._valueBeforeItemsSet);
|
|
9168
|
+
this._valueBeforeItemsSet = null;
|
|
9169
|
+
}
|
|
9160
9170
|
}
|
|
9161
9171
|
_primitiveItemsMapFn(item) {
|
|
9162
9172
|
return { value: item };
|
|
@@ -9164,13 +9174,13 @@ class SimpleItemStorage {
|
|
|
9164
9174
|
_setItemsMapFn(rawItemData, index, areItemsPrimitive) {
|
|
9165
9175
|
if (areItemsPrimitive) {
|
|
9166
9176
|
return {
|
|
9167
|
-
itemData:
|
|
9177
|
+
itemData: rawItemData,
|
|
9168
9178
|
index: index,
|
|
9169
|
-
value:
|
|
9170
|
-
label:
|
|
9171
|
-
disabled:
|
|
9172
|
-
selected:
|
|
9173
|
-
highlighted:
|
|
9179
|
+
value: rawItemData.value,
|
|
9180
|
+
label: rawItemData.value?.toString?.() ?? String(rawItemData.value),
|
|
9181
|
+
disabled: false,
|
|
9182
|
+
selected: false,
|
|
9183
|
+
highlighted: false,
|
|
9174
9184
|
};
|
|
9175
9185
|
}
|
|
9176
9186
|
//get value
|
|
@@ -9187,13 +9197,13 @@ class SimpleItemStorage {
|
|
|
9187
9197
|
}
|
|
9188
9198
|
//return
|
|
9189
9199
|
return {
|
|
9190
|
-
itemData:
|
|
9200
|
+
itemData: rawItemData,
|
|
9191
9201
|
index: index,
|
|
9192
|
-
value:
|
|
9193
|
-
label:
|
|
9194
|
-
disabled:
|
|
9195
|
-
selected:
|
|
9196
|
-
highlighted:
|
|
9202
|
+
value: value,
|
|
9203
|
+
label: label?.toString?.() ?? String(label),
|
|
9204
|
+
disabled: disabled,
|
|
9205
|
+
selected: false,
|
|
9206
|
+
highlighted: false,
|
|
9197
9207
|
};
|
|
9198
9208
|
}
|
|
9199
9209
|
/**
|
|
@@ -9201,6 +9211,10 @@ class SimpleItemStorage {
|
|
|
9201
9211
|
* @param ngModel The value of the ngModel to set.
|
|
9202
9212
|
*/
|
|
9203
9213
|
writeValue(ngModel) {
|
|
9214
|
+
if (!this._areItemsInitialized) {
|
|
9215
|
+
this._valueBeforeItemsSet = ngModel;
|
|
9216
|
+
return;
|
|
9217
|
+
}
|
|
9204
9218
|
this._forceUnselectAll();
|
|
9205
9219
|
if (!this._validateWriteValue(ngModel))
|
|
9206
9220
|
return;
|
|
@@ -9266,12 +9280,12 @@ class SimpleItemStorage {
|
|
|
9266
9280
|
let findBy;
|
|
9267
9281
|
const cmpFn = this._ardParentComp.compareWith();
|
|
9268
9282
|
if (isDefined(cmpFn)) {
|
|
9269
|
-
findBy = item => cmpFn(valueToFind, item.value
|
|
9283
|
+
findBy = item => cmpFn(valueToFind, item.value);
|
|
9270
9284
|
}
|
|
9271
9285
|
else {
|
|
9272
|
-
findBy = item => item.value
|
|
9286
|
+
findBy = item => item.value === valueToFind;
|
|
9273
9287
|
}
|
|
9274
|
-
return this.
|
|
9288
|
+
return this.items().find(item => findBy(item));
|
|
9275
9289
|
}
|
|
9276
9290
|
/**
|
|
9277
9291
|
* Unselects all selected items.
|
|
@@ -9280,27 +9294,15 @@ class SimpleItemStorage {
|
|
|
9280
9294
|
* @returns An array of items cleared, mapped to only their values.
|
|
9281
9295
|
*/
|
|
9282
9296
|
unselectAll() {
|
|
9283
|
-
|
|
9284
|
-
item.selected.set(false);
|
|
9285
|
-
}
|
|
9286
|
-
const ret = this.value();
|
|
9287
|
-
if (this._ardParentComp.isValueRequired() && this._selectedItems().length > 0) {
|
|
9288
|
-
this._selectedItems().first().selected.set(true);
|
|
9289
|
-
ret.splice(0, 1);
|
|
9290
|
-
}
|
|
9291
|
-
this._selectedItems.set([]);
|
|
9292
|
-
return ret;
|
|
9297
|
+
return this.unselectItem(...this.selectedItems());
|
|
9293
9298
|
}
|
|
9294
9299
|
/**
|
|
9295
9300
|
* Unselects all selected items, no matter what the component settings are.
|
|
9296
9301
|
* @returns An array of items cleared, mapped to only their values.
|
|
9297
9302
|
*/
|
|
9298
9303
|
_forceUnselectAll() {
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
}
|
|
9302
|
-
const ret = this._itemsToValue(this._selectedItems());
|
|
9303
|
-
this._selectedItems.set([]);
|
|
9304
|
+
const ret = this.value();
|
|
9305
|
+
this._updateItems(item => ({ ...item, selected: false }));
|
|
9304
9306
|
return ret;
|
|
9305
9307
|
}
|
|
9306
9308
|
/**
|
|
@@ -9317,25 +9319,31 @@ class SimpleItemStorage {
|
|
|
9317
9319
|
if (this.isItemLimitReached()) {
|
|
9318
9320
|
return [[], [], this._itemsToValue(items)];
|
|
9319
9321
|
}
|
|
9320
|
-
|
|
9321
|
-
if (!this._ardParentComp.multiselectable()) {
|
|
9322
|
-
unselected = this._forceUnselectAll();
|
|
9323
|
-
}
|
|
9322
|
+
const itemsLeftUntilLimit = this.itemsLeftUntilLimit();
|
|
9324
9323
|
let itemsSelectedCount = 0;
|
|
9325
|
-
const
|
|
9324
|
+
const newItemsArray = [...this.items()];
|
|
9326
9325
|
for (const item of items) {
|
|
9327
9326
|
itemsSelectedCount++;
|
|
9328
|
-
if (item.selected
|
|
9327
|
+
if (item.selected)
|
|
9329
9328
|
continue;
|
|
9330
|
-
if (
|
|
9329
|
+
if (itemsSelectedCount > itemsLeftUntilLimit) {
|
|
9331
9330
|
break;
|
|
9332
9331
|
}
|
|
9333
|
-
item.selected
|
|
9334
|
-
itemsSelected.push(item);
|
|
9332
|
+
newItemsArray[item.index] = { ...item, selected: true };
|
|
9335
9333
|
}
|
|
9336
|
-
this.
|
|
9337
|
-
|
|
9338
|
-
|
|
9334
|
+
const itemsUnselected = this._ardParentComp.multiselectable()
|
|
9335
|
+
? []
|
|
9336
|
+
: this.selectedItems().filter(item => !items.find(v => v.value === item.value));
|
|
9337
|
+
for (const item of itemsUnselected) {
|
|
9338
|
+
newItemsArray[item.index] = { ...item, selected: false };
|
|
9339
|
+
}
|
|
9340
|
+
const itemsSelected = items.slice(0, itemsSelectedCount);
|
|
9341
|
+
const itemsFailedToSelect = items.slice(itemsSelectedCount);
|
|
9342
|
+
const isAnyNewItemToBeSelected = !!itemsSelected.find(item => !this.selectedItems().find(v => v.value === item.value));
|
|
9343
|
+
if (isAnyNewItemToBeSelected) {
|
|
9344
|
+
this._items.set(newItemsArray);
|
|
9345
|
+
}
|
|
9346
|
+
return [this._itemsToValue(itemsSelected), this._itemsToValue(itemsUnselected), this._itemsToValue(itemsFailedToSelect)];
|
|
9339
9347
|
}
|
|
9340
9348
|
/**
|
|
9341
9349
|
*
|
|
@@ -9343,27 +9351,28 @@ class SimpleItemStorage {
|
|
|
9343
9351
|
* @returns An array of items unselected, mapped to only their values.
|
|
9344
9352
|
*/
|
|
9345
9353
|
unselectItem(...items) {
|
|
9346
|
-
let
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
|
|
9350
|
-
|
|
9354
|
+
let shouldKeepFirstSelected = this._ardParentComp.isValueRequired();
|
|
9355
|
+
const unselectedItems = [];
|
|
9356
|
+
this._updateItemsFromArray(item => {
|
|
9357
|
+
if (item.selected && shouldKeepFirstSelected) {
|
|
9358
|
+
shouldKeepFirstSelected = false;
|
|
9359
|
+
return item;
|
|
9351
9360
|
}
|
|
9352
|
-
if (
|
|
9353
|
-
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9361
|
+
if (item.selected) {
|
|
9362
|
+
unselectedItems.push(item);
|
|
9363
|
+
}
|
|
9364
|
+
return {
|
|
9365
|
+
...item,
|
|
9366
|
+
selected: false,
|
|
9367
|
+
};
|
|
9368
|
+
}, items);
|
|
9369
|
+
return this._itemsToValue(unselectedItems);
|
|
9358
9370
|
}
|
|
9359
9371
|
/**
|
|
9360
9372
|
* Unhighlights all currently highlighted items.
|
|
9361
9373
|
*/
|
|
9362
9374
|
unhighlightAll() {
|
|
9363
|
-
|
|
9364
|
-
item.highlighted.set(false);
|
|
9365
|
-
}
|
|
9366
|
-
this._highlightedItems.set([]);
|
|
9375
|
+
this._updateItems(item => ({ ...item, highlighted: false }));
|
|
9367
9376
|
}
|
|
9368
9377
|
/**
|
|
9369
9378
|
* Highlights the given item, while unhighlighting all other items. Does nothing when the item is disabled.
|
|
@@ -9371,7 +9380,7 @@ class SimpleItemStorage {
|
|
|
9371
9380
|
* @returns The highlighted item.
|
|
9372
9381
|
*/
|
|
9373
9382
|
highlightSingleItem(item) {
|
|
9374
|
-
if (!item || item.disabled
|
|
9383
|
+
if (!item || item.disabled)
|
|
9375
9384
|
return null;
|
|
9376
9385
|
this.unhighlightAll();
|
|
9377
9386
|
return this.highlightItem(item);
|
|
@@ -9382,10 +9391,7 @@ class SimpleItemStorage {
|
|
|
9382
9391
|
* @returns The last highlighted item.
|
|
9383
9392
|
*/
|
|
9384
9393
|
highlightItem(...items) {
|
|
9385
|
-
|
|
9386
|
-
item.highlighted.set(true);
|
|
9387
|
-
}
|
|
9388
|
-
this._highlightedItems.update(v => [...v, ...items]);
|
|
9394
|
+
this._updateItemsFromArray(item => ({ ...item, highlighted: true }), items);
|
|
9389
9395
|
return items.last();
|
|
9390
9396
|
}
|
|
9391
9397
|
/**
|
|
@@ -9393,12 +9399,7 @@ class SimpleItemStorage {
|
|
|
9393
9399
|
* @param items A rest operator array of items to be unhighlighted.
|
|
9394
9400
|
*/
|
|
9395
9401
|
unhighlightItem(...items) {
|
|
9396
|
-
|
|
9397
|
-
if (!item || !item.highlighted())
|
|
9398
|
-
return;
|
|
9399
|
-
item.highlighted.set(false);
|
|
9400
|
-
}
|
|
9401
|
-
this._highlightedItems.update(v => v.filter(v => v.highlighted()));
|
|
9402
|
+
this._updateItemsFromArray(item => ({ ...item, highlighted: false }), items);
|
|
9402
9403
|
}
|
|
9403
9404
|
/**
|
|
9404
9405
|
* Highlights the first item out of all items.
|
|
@@ -9406,7 +9407,7 @@ class SimpleItemStorage {
|
|
|
9406
9407
|
*/
|
|
9407
9408
|
highlightFirstItem() {
|
|
9408
9409
|
this.unhighlightAll();
|
|
9409
|
-
const itemToHighlight = this.
|
|
9410
|
+
const itemToHighlight = this._highlightableItems().first();
|
|
9410
9411
|
return this.highlightItem(itemToHighlight);
|
|
9411
9412
|
}
|
|
9412
9413
|
/**
|
|
@@ -9415,14 +9416,14 @@ class SimpleItemStorage {
|
|
|
9415
9416
|
*/
|
|
9416
9417
|
highlightLastItem() {
|
|
9417
9418
|
this.unhighlightAll();
|
|
9418
|
-
const itemToHighlight = this.
|
|
9419
|
+
const itemToHighlight = this._highlightableItems().last();
|
|
9419
9420
|
return this.highlightItem(itemToHighlight);
|
|
9420
9421
|
}
|
|
9421
9422
|
/**
|
|
9422
9423
|
* Highlights all non-disabled items.
|
|
9423
9424
|
*/
|
|
9424
9425
|
highlightAllItems() {
|
|
9425
|
-
const itemsToHighlight = this.
|
|
9426
|
+
const itemsToHighlight = this._highlightableItems();
|
|
9426
9427
|
this.highlightItem(...itemsToHighlight);
|
|
9427
9428
|
}
|
|
9428
9429
|
/**
|
|
@@ -9438,7 +9439,7 @@ class SimpleItemStorage {
|
|
|
9438
9439
|
return this.highlightFirstItem();
|
|
9439
9440
|
}
|
|
9440
9441
|
const currentItem = this.highlightedItems().last();
|
|
9441
|
-
const itemsWithoutDisabled = this._items().filter(item => !item.disabled
|
|
9442
|
+
const itemsWithoutDisabled = this._items().filter(item => !item.disabled && (!this.isItemLimitReached() || item.selected));
|
|
9442
9443
|
const currentIndexInItems = itemsWithoutDisabled.findIndex(item => item.index === currentItem.index);
|
|
9443
9444
|
let nextItemIndex = currentIndexInItems + offset;
|
|
9444
9445
|
if (nextItemIndex >= itemsWithoutDisabled.length) {
|
|
@@ -9449,7 +9450,7 @@ class SimpleItemStorage {
|
|
|
9449
9450
|
}
|
|
9450
9451
|
const itemToHighlight = itemsWithoutDisabled[nextItemIndex];
|
|
9451
9452
|
if (hasShift && this._ardParentComp.multiselectable()) {
|
|
9452
|
-
if (itemToHighlight.highlighted
|
|
9453
|
+
if (itemToHighlight.highlighted) {
|
|
9453
9454
|
this.unhighlightItem(currentItem);
|
|
9454
9455
|
}
|
|
9455
9456
|
return this.highlightItem(itemToHighlight);
|
|
@@ -9482,13 +9483,17 @@ class _SelectableListComponentBase extends _FormFieldComponentBase {
|
|
|
9482
9483
|
this.disabledFrom = input(this._DEFAULTS.disabledFrom);
|
|
9483
9484
|
this.compareWith = input(this._DEFAULTS.compareWith);
|
|
9484
9485
|
//! multiselectable
|
|
9485
|
-
this.multiselectable = input(this._DEFAULTS.multiselectable, {
|
|
9486
|
+
this.multiselectable = input(this._DEFAULTS.multiselectable, {
|
|
9487
|
+
transform: v => coerceBooleanProperty(v),
|
|
9488
|
+
});
|
|
9486
9489
|
this.singleselectable = computed(() => !this.multiselectable());
|
|
9487
9490
|
//! require value
|
|
9488
9491
|
this.requireValue = input(this._DEFAULTS.requireValue, { transform: v => coerceBooleanProperty(v) });
|
|
9489
9492
|
this.isValueRequired = computed(() => this.requireValue() || !this.multiselectable());
|
|
9490
9493
|
//! coerced properties
|
|
9491
|
-
this.invertDisabled = input(this._DEFAULTS.invertDisabled, {
|
|
9494
|
+
this.invertDisabled = input(this._DEFAULTS.invertDisabled, {
|
|
9495
|
+
transform: v => coerceBooleanProperty(v),
|
|
9496
|
+
});
|
|
9492
9497
|
this.maxSelectedItems = input(this._DEFAULTS.maxSelectedItems, {
|
|
9493
9498
|
transform: v => coerceNumberProperty(v, undefined),
|
|
9494
9499
|
});
|
|
@@ -9500,9 +9505,20 @@ class _SelectableListComponentBase extends _FormFieldComponentBase {
|
|
|
9500
9505
|
this.highlightedItems = computed(() => this.itemStorage.highlightedItems());
|
|
9501
9506
|
this.firstHighlightedItem = computed(() => this.highlightedItems()?.first());
|
|
9502
9507
|
this.isItemLimitReached = computed(() => this.itemStorage.isItemLimitReached());
|
|
9508
|
+
//! context providers
|
|
9509
|
+
this.optionContextGenerator = computed(() => item => ({
|
|
9510
|
+
$implicit: item,
|
|
9511
|
+
item,
|
|
9512
|
+
index: item.index,
|
|
9513
|
+
value: item.value,
|
|
9514
|
+
label: item.label,
|
|
9515
|
+
selected: item.selected,
|
|
9516
|
+
highlighted: item.highlighted,
|
|
9517
|
+
itemData: item.itemData,
|
|
9518
|
+
disabled: item.disabled,
|
|
9519
|
+
}));
|
|
9503
9520
|
this.valueChange = output();
|
|
9504
9521
|
//! output events
|
|
9505
|
-
this.changeEvent = output({ alias: 'change' });
|
|
9506
9522
|
this.addEvent = output({ alias: 'add' });
|
|
9507
9523
|
this.removeEvent = output({ alias: 'remove' });
|
|
9508
9524
|
//! highligh-related
|
|
@@ -9539,7 +9555,6 @@ class _SelectableListComponentBase extends _FormFieldComponentBase {
|
|
|
9539
9555
|
_emitChange() {
|
|
9540
9556
|
const value = this.singleselectable() ? this.itemStorage.value()[0] : this.itemStorage.value();
|
|
9541
9557
|
this._onChangeRegistered?.(value);
|
|
9542
|
-
this.changeEvent.emit(value);
|
|
9543
9558
|
this.valueChange.emit(value);
|
|
9544
9559
|
}
|
|
9545
9560
|
_onTouched() {
|
|
@@ -9561,14 +9576,6 @@ class _SelectableListComponentBase extends _FormFieldComponentBase {
|
|
|
9561
9576
|
if (!this.touched())
|
|
9562
9577
|
this.lastBlurTimestamp.set(Date.now());
|
|
9563
9578
|
}
|
|
9564
|
-
//! context providers
|
|
9565
|
-
getOptionContext(item) {
|
|
9566
|
-
return {
|
|
9567
|
-
$implicit: item,
|
|
9568
|
-
item,
|
|
9569
|
-
itemData: item.itemData(),
|
|
9570
|
-
};
|
|
9571
|
-
}
|
|
9572
9579
|
//! value input & output
|
|
9573
9580
|
set value(newValue) {
|
|
9574
9581
|
if (this.multiselectable() && !Array.isArray(newValue))
|
|
@@ -9577,7 +9584,7 @@ class _SelectableListComponentBase extends _FormFieldComponentBase {
|
|
|
9577
9584
|
}
|
|
9578
9585
|
//! item selection handlers
|
|
9579
9586
|
toggleItem(item) {
|
|
9580
|
-
if (item.selected
|
|
9587
|
+
if (item.selected) {
|
|
9581
9588
|
if (this.singleselectable())
|
|
9582
9589
|
return;
|
|
9583
9590
|
this.unselectItem(item);
|
|
@@ -9696,7 +9703,7 @@ class _SelectableListComponentBase extends _FormFieldComponentBase {
|
|
|
9696
9703
|
this.itemStorage.highlightAllItems();
|
|
9697
9704
|
}
|
|
9698
9705
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: _SelectableListComponentBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9699
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: _SelectableListComponentBase, isStandalone: true, inputs: { valueFrom: { classPropertyName: "valueFrom", publicName: "valueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "labelFrom", isSignal: true, isRequired: false, transformFunction: null }, disabledFrom: { classPropertyName: "disabledFrom", publicName: "disabledFrom", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, multiselectable: { classPropertyName: "multiselectable", publicName: "multiselectable", isSignal: true, isRequired: false, transformFunction: null }, requireValue: { classPropertyName: "requireValue", publicName: "requireValue", isSignal: true, isRequired: false, transformFunction: null }, invertDisabled: { classPropertyName: "invertDisabled", publicName: "invertDisabled", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange",
|
|
9706
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: _SelectableListComponentBase, isStandalone: true, inputs: { valueFrom: { classPropertyName: "valueFrom", publicName: "valueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "labelFrom", isSignal: true, isRequired: false, transformFunction: null }, disabledFrom: { classPropertyName: "disabledFrom", publicName: "disabledFrom", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, multiselectable: { classPropertyName: "multiselectable", publicName: "multiselectable", isSignal: true, isRequired: false, transformFunction: null }, requireValue: { classPropertyName: "requireValue", publicName: "requireValue", isSignal: true, isRequired: false, transformFunction: null }, invertDisabled: { classPropertyName: "invertDisabled", publicName: "invertDisabled", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", addEvent: "add", removeEvent: "remove" }, host: { listeners: { "mousemove": "onMouseMove()", "keydown": "onKeyPress($event)" }, properties: { "attr.multiple": "this._multiselectableHostAttribute", "class.ard-multiselect": "this._multiselectableHostAttribute", "class.ard-require-value": "this._requireValueHostAttribute", "class.ard-touched": "this._touchedHostAttribute" } }, usesInheritance: true, ngImport: i0 }); }
|
|
9700
9707
|
}
|
|
9701
9708
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: _SelectableListComponentBase, decorators: [{
|
|
9702
9709
|
type: Directive
|
|
@@ -9865,7 +9872,7 @@ class ArdiumSegmentComponent extends _SelectableListComponentBase {
|
|
|
9865
9872
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
9866
9873
|
useExisting: ArdiumSegmentComponent,
|
|
9867
9874
|
},
|
|
9868
|
-
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdSegmentOptionTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #focusableElement\r\n class=\"ard-segment-container\"\r\n [class.ard-disabled]=\"disabled()\"\r\n [ariaDisabled]=\"disabled()\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\r\n [class.ard-using-keyboard]=\"!isMouseBeingUsed()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n @for (row of itemRows(); track $index) {\r\n <div\r\n class=\"ard-segment-row\"\r\n [class.ard-segment-row-partial]=\"row.isNotFull\"\r\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\r\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\r\n >\r\n @for (option of row.options; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-segment-option\"\r\n tabindex=\"-1\"\r\n [class.ard-option-disabled]=\"option.disabled
|
|
9875
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdSegmentOptionTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #focusableElement\r\n class=\"ard-segment-container\"\r\n [class.ard-disabled]=\"disabled()\"\r\n [ariaDisabled]=\"disabled()\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\r\n [class.ard-using-keyboard]=\"!isMouseBeingUsed()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n @for (row of itemRows(); track $index) {\r\n <div\r\n class=\"ard-segment-row\"\r\n [class.ard-segment-row-partial]=\"row.isNotFull\"\r\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\r\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\r\n >\r\n @for (option of row.options; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-segment-option\"\r\n tabindex=\"-1\"\r\n [class.ard-option-disabled]=\"option.disabled || (isItemLimitReached() && !option.selected)\"\r\n [class.ard-option-selected]=\"option.selected\"\r\n [class.ard-option-highlighted]=\"option.highlighted\"\r\n [ariaSelected]=\"option.selected\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n (click)=\"onItemClick(option, $event)\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ option.label }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"optionContextGenerator()(option)\"\r\n />\r\n </span>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
9869
9876
|
}
|
|
9870
9877
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumSegmentComponent, decorators: [{
|
|
9871
9878
|
type: Component,
|
|
@@ -9879,7 +9886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
9879
9886
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
9880
9887
|
useExisting: ArdiumSegmentComponent,
|
|
9881
9888
|
},
|
|
9882
|
-
], template: "<div\r\n #focusableElement\r\n class=\"ard-segment-container\"\r\n [class.ard-disabled]=\"disabled()\"\r\n [ariaDisabled]=\"disabled()\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\r\n [class.ard-using-keyboard]=\"!isMouseBeingUsed()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n @for (row of itemRows(); track $index) {\r\n <div\r\n class=\"ard-segment-row\"\r\n [class.ard-segment-row-partial]=\"row.isNotFull\"\r\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\r\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\r\n >\r\n @for (option of row.options; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-segment-option\"\r\n tabindex=\"-1\"\r\n [class.ard-option-disabled]=\"option.disabled
|
|
9889
|
+
], template: "<div\r\n #focusableElement\r\n class=\"ard-segment-container\"\r\n [class.ard-disabled]=\"disabled()\"\r\n [ariaDisabled]=\"disabled()\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\r\n [class.ard-using-keyboard]=\"!isMouseBeingUsed()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n @for (row of itemRows(); track $index) {\r\n <div\r\n class=\"ard-segment-row\"\r\n [class.ard-segment-row-partial]=\"row.isNotFull\"\r\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\r\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\r\n >\r\n @for (option of row.options; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-segment-option\"\r\n tabindex=\"-1\"\r\n [class.ard-option-disabled]=\"option.disabled || (isItemLimitReached() && !option.selected)\"\r\n [class.ard-option-selected]=\"option.selected\"\r\n [class.ard-option-highlighted]=\"option.highlighted\"\r\n [ariaSelected]=\"option.selected\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n (click)=\"onItemClick(option, $event)\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ option.label }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"optionContextGenerator()(option)\"\r\n />\r\n </span>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\n"] }]
|
|
9883
9890
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
9884
9891
|
type: Inject,
|
|
9885
9892
|
args: [ARD_SEGMENT_DEFAULTS]
|
|
@@ -11122,9 +11129,9 @@ class ArdiumCheckboxListComponent extends _NgModelComponentBase {
|
|
|
11122
11129
|
this._componentId = '300';
|
|
11123
11130
|
this._componentName = 'checkbox-list';
|
|
11124
11131
|
this._itemStorage = new SimpleItemStorage(this);
|
|
11125
|
-
this.valueFrom = input(this.
|
|
11126
|
-
this.labelFrom = input(this.
|
|
11127
|
-
this.disabledFrom = input(this.
|
|
11132
|
+
this.valueFrom = input(this._DEFAULTS.valueFrom);
|
|
11133
|
+
this.labelFrom = input(this._DEFAULTS.labelFrom);
|
|
11134
|
+
this.disabledFrom = input(this._DEFAULTS.disabledFrom);
|
|
11128
11135
|
this.compareWith = input(this._DEFAULTS.compareWith);
|
|
11129
11136
|
this.invertDisabled = input(this._DEFAULTS.invertDisabled, {
|
|
11130
11137
|
transform: v => coerceBooleanProperty(v),
|
|
@@ -11138,11 +11145,21 @@ class ArdiumCheckboxListComponent extends _NgModelComponentBase {
|
|
|
11138
11145
|
this.compact = input(this._DEFAULTS.compact, { transform: v => coerceBooleanProperty(v) });
|
|
11139
11146
|
this.ngClasses = computed(() => [`ard-color-${this.color()}`, `ard-align-${this.align()}`, this.compact() ? 'ard-compact' : ''].join(' '));
|
|
11140
11147
|
this.valueChange = output();
|
|
11141
|
-
this.changeEvent = output({ alias: 'change' });
|
|
11142
11148
|
this._isViewInit = false;
|
|
11143
11149
|
//! templates
|
|
11144
11150
|
this.checkboxTemplate = contentChild(ArdCheckboxListCheckboxTemplateDirective);
|
|
11145
11151
|
this.labelTemplate = contentChild(ArdCheckboxListLabelTemplateDirective);
|
|
11152
|
+
this.labelContextGenerator = computed(() => item => ({
|
|
11153
|
+
$implicit: item,
|
|
11154
|
+
item,
|
|
11155
|
+
index: item.index,
|
|
11156
|
+
value: item.value,
|
|
11157
|
+
label: item.label,
|
|
11158
|
+
selected: item.selected,
|
|
11159
|
+
highlighted: item.highlighted,
|
|
11160
|
+
itemData: item.itemData,
|
|
11161
|
+
disabled: item.disabled,
|
|
11162
|
+
}));
|
|
11146
11163
|
}
|
|
11147
11164
|
get _htmlIdHostAttribute() {
|
|
11148
11165
|
return this.htmlId();
|
|
@@ -11176,7 +11193,6 @@ class ArdiumCheckboxListComponent extends _NgModelComponentBase {
|
|
|
11176
11193
|
_emitChange() {
|
|
11177
11194
|
const v = this.value;
|
|
11178
11195
|
this._onChangeRegistered?.(v);
|
|
11179
|
-
this.changeEvent.emit(v);
|
|
11180
11196
|
this.valueChange.emit(v);
|
|
11181
11197
|
}
|
|
11182
11198
|
onItemHighlight(v) {
|
|
@@ -11197,25 +11213,18 @@ class ArdiumCheckboxListComponent extends _NgModelComponentBase {
|
|
|
11197
11213
|
this._emitChange();
|
|
11198
11214
|
}
|
|
11199
11215
|
toggleItem(v) {
|
|
11200
|
-
if (v.selected
|
|
11216
|
+
if (v.selected) {
|
|
11201
11217
|
this.unselectItem(v);
|
|
11202
11218
|
return;
|
|
11203
11219
|
}
|
|
11204
11220
|
this.selectItem(v);
|
|
11205
11221
|
}
|
|
11206
|
-
getLabelContext(item) {
|
|
11207
|
-
return {
|
|
11208
|
-
$implicit: item,
|
|
11209
|
-
item,
|
|
11210
|
-
itemData: item.itemData(),
|
|
11211
|
-
};
|
|
11212
|
-
}
|
|
11213
11222
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumCheckboxListComponent, deps: [{ token: ARD_CHECKBOX_LIST_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ArdiumCheckboxListComponent, isStandalone: false, selector: "ard-checkbox-list", inputs: { valueFrom: { classPropertyName: "valueFrom", publicName: "valueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "labelFrom", isSignal: true, isRequired: false, transformFunction: null }, disabledFrom: { classPropertyName: "disabledFrom", publicName: "disabledFrom", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, invertDisabled: { classPropertyName: "invertDisabled", publicName: "invertDisabled", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange"
|
|
11223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ArdiumCheckboxListComponent, isStandalone: false, selector: "ard-checkbox-list", inputs: { valueFrom: { classPropertyName: "valueFrom", publicName: "valueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "labelFrom", isSignal: true, isRequired: false, transformFunction: null }, disabledFrom: { classPropertyName: "disabledFrom", publicName: "disabledFrom", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, invertDisabled: { classPropertyName: "invertDisabled", publicName: "invertDisabled", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.id": "this._htmlIdHostAttribute" } }, queries: [{ propertyName: "checkboxTemplate", first: true, predicate: ArdCheckboxListCheckboxTemplateDirective, descendants: true, isSignal: true }, { propertyName: "labelTemplate", first: true, predicate: ArdCheckboxListLabelTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-checkbox-list\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n @for (item of items; track item.index) {\r\n <div\r\n class=\"ard-checkbox-list__item\"\r\n [class.ard-item-highlighted]=\"item.highlighted\"\r\n [class.ard-item-disabled]=\"item.disabled\"\r\n [class.ard-item-selected]=\"item.selected\"\r\n (mouseover)=\"onItemHighlight(item)\"\r\n (mouseleave)=\"onItemBlur()\"\r\n (click)=\"toggleItem(item)\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <ard-checkbox\r\n [selected]=\"item.selected\"\r\n [disabled]=\"item.disabled\"\r\n [color]=\"color()\"\r\n [htmlId]=\"htmlId() + item.index\"\r\n [tabIndex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"onItemFocus(item)\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"onItemBlur()\"\r\n (select)=\"selectItem(item)\"\r\n (unselect)=\"unselectItem(item)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <ng-template\r\n _ard-tmp-repository\r\n [checkboxTmp]=\"checkboxTemplate()\"\r\n />\r\n </ard-checkbox>\r\n <label [for]=\"htmlId() + item.index\">\r\n <ng-template\r\n #defaultLabelTemplate\r\n let-label=\"label\"\r\n >\r\n {{ label }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"labelTemplate()?.template || defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"labelContextGenerator()(item)\"\r\n />\r\n </label>\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: ["color", "unselectedColor", "state"], outputs: ["stateChange"] }, { kind: "directive", type: _CheckboxTemplateRepositoryDirective, selector: "ard-checkbox > ng-template[_ard-tmp-repository]", inputs: ["checkboxTmp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11215
11224
|
}
|
|
11216
11225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumCheckboxListComponent, decorators: [{
|
|
11217
11226
|
type: Component,
|
|
11218
|
-
args: [{ standalone: false, selector: 'ard-checkbox-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-checkbox-list\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n @for (item of items; track item.index) {\r\n
|
|
11227
|
+
args: [{ standalone: false, selector: 'ard-checkbox-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-checkbox-list\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n @for (item of items; track item.index) {\r\n <div\r\n class=\"ard-checkbox-list__item\"\r\n [class.ard-item-highlighted]=\"item.highlighted\"\r\n [class.ard-item-disabled]=\"item.disabled\"\r\n [class.ard-item-selected]=\"item.selected\"\r\n (mouseover)=\"onItemHighlight(item)\"\r\n (mouseleave)=\"onItemBlur()\"\r\n (click)=\"toggleItem(item)\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <ard-checkbox\r\n [selected]=\"item.selected\"\r\n [disabled]=\"item.disabled\"\r\n [color]=\"color()\"\r\n [htmlId]=\"htmlId() + item.index\"\r\n [tabIndex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"onItemFocus(item)\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"onItemBlur()\"\r\n (select)=\"selectItem(item)\"\r\n (unselect)=\"unselectItem(item)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <ng-template\r\n _ard-tmp-repository\r\n [checkboxTmp]=\"checkboxTemplate()\"\r\n />\r\n </ard-checkbox>\r\n <label [for]=\"htmlId() + item.index\">\r\n <ng-template\r\n #defaultLabelTemplate\r\n let-label=\"label\"\r\n >\r\n {{ label }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"labelTemplate()?.template || defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"labelContextGenerator()(item)\"\r\n />\r\n </label>\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
11219
11228
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
11220
11229
|
type: Inject,
|
|
11221
11230
|
args: [ARD_CHECKBOX_LIST_DEFAULTS]
|
|
@@ -13039,7 +13048,7 @@ class ArdiumTablePaginationComponent extends _FocusableComponentBase {
|
|
|
13039
13048
|
this._emitPageEvent();
|
|
13040
13049
|
}
|
|
13041
13050
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumTablePaginationComponent, deps: [{ token: ARD_TABLE_PAGINATION_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13042
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ArdiumTablePaginationComponent, isStandalone: false, selector: "ard-table-pagination", inputs: { totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange", itemsPerPageChangeEvent: "itemsPerPageChange", pageChangeEvent: "pageChange" }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-pagination\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n <div class=\"ard-pagination__items-per-page\">\r\n <div class=\"ard-pagination__text\">{{ itemsPerPageText() }}</div>\r\n <ard-select\r\n [items]=\"options()\"\r\n [compact]=\"compact()\"\r\n [value]=\"itemsPerPage()\"\r\n autoHighlightFirst=\"false\"\r\n [disabled]=\"disabled()\"\r\n (valueChange)=\"onItemsPerPageChange($event[0])\"\r\n clearable=\"false\"\r\n />\r\n </div>\r\n <div class=\"ard-pagination__current-page\">\r\n <div class=\"ard-pagination__text\">\r\n {{ currentItemsFormatFn()(getCurrentItemsContext()) }}\r\n </div>\r\n <div class=\"ard-pagination__buttons\">\r\n @if (useFirstLastButtons()) {\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || firstPageDisabled()\"\r\n (click)=\"onFirstPage()\"\r\n >\r\n <ard-icon>first page</ard-icon>\r\n </ard-icon-button>\r\n }\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || firstPageDisabled()\"\r\n (click)=\"onPrevPage()\"\r\n >\r\n <ard-icon>navigate before</ard-icon>\r\n </ard-icon-button>\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || lastPageDisabled()\"\r\n (click)=\"onNextPage()\"\r\n >\r\n <ard-icon>navigate next</ard-icon>\r\n </ard-icon-button>\r\n @if (useFirstLastButtons()) {\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || lastPageDisabled()\"\r\n (click)=\"onLastPage()\"\r\n >\r\n <ard-icon>last page</ard-icon>\r\n </ard-icon-button>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ArdiumSelectComponent, selector: "ard-select", inputs: ["valueFrom", "labelFrom", "disabledFrom", "groupLabelFrom", "groupDisabledFrom", "childrenFrom", "placeholder", "searchPlaceholder", "clearButtonTitle", "dropdownPosition", "noItemsFoundText", "addCustomOptionText", "loadingPlaceholderText", "searchInputId", "inputAttrs", "isLoading", "itemsAlreadyGrouped", "invertDisabled", "noGroupActions", "autoHighlightFirst", "autoFocus", "keepOpen", "hideSelected", "noBackspaceClear", "sortMultipleValues", "searchCaseSensitive", "keepSearchAfterSelect", "maxSelectedItems", "itemDisplayLimit", "searchFn", "compareWith", "appearance", "variant", "compact", "dropdownAppearance", "dropdownVariant", "items", "multiselectable", "clearable", "searchable", "addCustom", "value", "isOpen", "dropdownPanelWidth", "dropdownPanelHeight", "dropdownPanelMinWidth", "dropdownPanelMinHeight", "dropdownPanelMaxWidth", "dropdownPanelMaxHeight"], outputs: ["valueChange", "
|
|
13051
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ArdiumTablePaginationComponent, isStandalone: false, selector: "ard-table-pagination", inputs: { totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange", itemsPerPageChangeEvent: "itemsPerPageChange", pageChangeEvent: "pageChange" }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-pagination\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n <div class=\"ard-pagination__items-per-page\">\r\n <div class=\"ard-pagination__text\">{{ itemsPerPageText() }}</div>\r\n <ard-select\r\n [items]=\"options()\"\r\n [compact]=\"compact()\"\r\n [value]=\"itemsPerPage()\"\r\n autoHighlightFirst=\"false\"\r\n [disabled]=\"disabled()\"\r\n (valueChange)=\"onItemsPerPageChange($event[0])\"\r\n clearable=\"false\"\r\n />\r\n </div>\r\n <div class=\"ard-pagination__current-page\">\r\n <div class=\"ard-pagination__text\">\r\n {{ currentItemsFormatFn()(getCurrentItemsContext()) }}\r\n </div>\r\n <div class=\"ard-pagination__buttons\">\r\n @if (useFirstLastButtons()) {\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || firstPageDisabled()\"\r\n (click)=\"onFirstPage()\"\r\n >\r\n <ard-icon>first page</ard-icon>\r\n </ard-icon-button>\r\n }\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || firstPageDisabled()\"\r\n (click)=\"onPrevPage()\"\r\n >\r\n <ard-icon>navigate before</ard-icon>\r\n </ard-icon-button>\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || lastPageDisabled()\"\r\n (click)=\"onNextPage()\"\r\n >\r\n <ard-icon>navigate next</ard-icon>\r\n </ard-icon-button>\r\n @if (useFirstLastButtons()) {\r\n <ard-icon-button\r\n [color]=\"color()\"\r\n [compact]=\"compact()\"\r\n [disabled]=\"disabled() || lastPageDisabled()\"\r\n (click)=\"onLastPage()\"\r\n >\r\n <ard-icon>last page</ard-icon>\r\n </ard-icon-button>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ArdiumSelectComponent, selector: "ard-select", inputs: ["valueFrom", "labelFrom", "disabledFrom", "groupLabelFrom", "groupDisabledFrom", "childrenFrom", "placeholder", "searchPlaceholder", "clearButtonTitle", "dropdownPosition", "noItemsFoundText", "addCustomOptionText", "loadingPlaceholderText", "searchInputId", "inputAttrs", "isLoading", "itemsAlreadyGrouped", "invertDisabled", "noGroupActions", "autoHighlightFirst", "autoFocus", "keepOpen", "hideSelected", "noBackspaceClear", "sortMultipleValues", "searchCaseSensitive", "keepSearchAfterSelect", "maxSelectedItems", "itemDisplayLimit", "searchFn", "compareWith", "appearance", "variant", "compact", "dropdownAppearance", "dropdownVariant", "items", "multiselectable", "clearable", "searchable", "addCustom", "value", "isOpen", "dropdownPanelWidth", "dropdownPanelHeight", "dropdownPanelMinWidth", "dropdownPanelMinHeight", "dropdownPanelMaxWidth", "dropdownPanelMaxHeight"], outputs: ["valueChange", "add", "failedToAdd", "remove", "clear", "open", "close", "scroll", "scrollToEnd", "search", "isOpenChange"] }, { kind: "component", type: ArdiumIconButtonComponent, selector: "ard-icon-button", inputs: ["wrapperClasses", "type", "color", "lightColoring", "compact", "pointerEventsWhenDisabled"] }, { kind: "component", type: ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
13043
13052
|
}
|
|
13044
13053
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ArdiumTablePaginationComponent, decorators: [{
|
|
13045
13054
|
type: Component,
|
|
@@ -14959,5 +14968,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
14959
14968
|
* Generated bundle index. Do not edit.
|
|
14960
14969
|
*/
|
|
14961
14970
|
|
|
14962
|
-
export { ARD_BADGE_DEFAULTS, ARD_BUTTON_DEFAULTS, ARD_CALENDAR_DEFAULTS, ARD_CARD_DEFAULTS, ARD_CHECKBOX_DEFAULTS, ARD_CHECKBOX_LIST_DEFAULTS, ARD_CHIP_DEFAULTS, ARD_DATE_INPUT_DEFAULTS, ARD_DELETABLE_CHIP_DEFAULTS, ARD_DIALOG_DEFAULTS, ARD_DIGIT_INPUT_DEFAULTS, ARD_DIVIDER_DEFAULTS, ARD_DROPDOWN_PANEL_DEFAULTS, ARD_FAB_DEFAULTS, ARD_FILE_DROP_AREA_DEFAULTS, ARD_FILE_INPUT_DEFAULTS, ARD_FORM_FIELD_CONTROL, ARD_FORM_FIELD_DEFAULTS, ARD_FORM_FIELD_FRAME_DEFAULTS, ARD_HEX_INPUT_DEFAULTS, ARD_ICON_BUTTON_DEFAULTS, ARD_ICON_DEFAULTS, ARD_KBD_DEFAULTS, ARD_KBD_SHORTCUT_DEFAULTS, ARD_MODAL_DEFAULTS, ARD_NUMBER_INPUT_DEFAULTS, ARD_PASSWORD_INPUT_DEFAULTS, ARD_PROGRESS_BAR_DEFAULTS, ARD_PROGRESS_CIRCLE_DEFAULTS, ARD_RADIO_DEFAULTS, ARD_RATING_DISPLAY_DEFAULTS, ARD_RATING_INPUT_DEFAULTS, ARD_SEGMENT_DEFAULTS, ARD_SELECTABLE_CHIP_DEFAULTS, ARD_SELECT_DEFAULTS, ARD_SIMPLE_INPUT_DEFAULTS, ARD_SLIDER_DEFAULTS, ARD_SLIDE_TOGGLE_DEFAULTS, ARD_SNACKBAR_ANIMATION_LENGTH, ARD_SNACKBAR_DATA, ARD_SNACKBAR_DEFAULTS, ARD_SPINNER_DEFAULTS, ARD_STAR_BUTTON_DEFAULTS, ARD_STAR_DEFAULTS, ARD_STATEBOX_DEFAULTS, ARD_TABBER_DEFAULTS, ARD_TABLE_DEFAULTS, ARD_TABLE_FROM_CSV_DEFAULTS, ARD_TABLE_PAGINATION_DEFAULTS, ARD_TAB_DEFAULTS, ArdAddCustomTemplateDirective, ArdAutocompleteInputLoadingTemplateDirective, ArdAutocompleteInputPlaceholderTemplateDirective, ArdAutocompleteInputPrefixTemplateDirective, ArdAutocompleteInputSuffixTemplateDirective, ArdAutocompleteInputSuggestionTemplateDirective, ArdCalendarDayTemplateDirective, ArdCalendarDaysViewHeaderTemplateDirective, ArdCalendarFloatingMonthTemplateDirective, ArdCalendarMonthTemplateDirective, ArdCalendarMonthsViewHeaderTemplateDirective, ArdCalendarView, ArdCalendarWeekdayTemplateDirective, ArdCalendarYearTemplateDirective, ArdCalendarYearsViewHeaderTemplateDirective, ArdCheckboxListCheckboxTemplateDirective, ArdCheckboxListLabelTemplateDirective, ArdCheckboxTemplateDirective, ArdDateInputAcceptButtonsTemplateDirective, ArdDateInputCalendarIconTemplateDirective, ArdDateInputDayTemplateDirective, ArdDateInputDaysViewHeaderTemplateDirective, ArdDateInputFloatingMonthTemplateDirective, ArdDateInputMinMaxStrategy, ArdDateInputMonthTemplateDirective, ArdDateInputMonthsViewHeaderTemplateDirective, ArdDateInputPrefixTemplateDirective, ArdDateInputSuffixTemplateDirective, ArdDateInputValueTemplateDirective, ArdDateInputWeekdayTemplateDirective, ArdDateInputYearTemplateDirective, ArdDateInputYearsViewHeaderTemplateDirective, ArdDialogActionType, ArdDialogButtonsTemplateDirective, ArdDialogCloseIconTemplateDirective, ArdDialogResult, ArdDropdownFooterTemplateDirective, ArdDropdownHeaderTemplateDirective, ArdFileInputPlaceholderTemplateDirective, ArdFileInputPrefixTemplateDirective, ArdFileInputSuffixTemplateDirective, ArdFormFieldPrefixTemplateDirective, ArdFormFieldSuffixTemplateDirective, ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective, ArdItemDisplayLimitTemplateDirective, ArdItemLimitReachedTemplateDirective, ArdLoadingPlaceholderTemplateDirective, ArdLoadingSpinnerTemplateDirective, ArdModalCloseIconTemplateDirective, ArdNoItemsFoundTemplateDirective, ArdNumberInputPlaceholderTemplateDirective, ArdOptgroupTemplateDirective, ArdOptionTemplateDirective, ArdPanelPosition, ArdPasswordInputPlaceholderTemplateDirective, ArdPasswordInputPrefixTemplateDirective, ArdPasswordInputRevealButtonTemplateDirective, ArdPasswordInputSuffixTemplateDirective, ArdProgressBarValueTemplateDirective, ArdProgressCircleValueTemplateDirective, ArdRatingDisplayStarTemplateDirective, ArdRatingInputStarButtonTemplateDirective, searchFunctions as ArdSearchFunction, ArdSegmentOptionTemplateDirective, ArdSelectPlaceholderTemplateDirective, ArdSelectPrefixTemplateDirective, ArdSelectSuffixTemplateDirective, ArdSlideToggleAppearance, ArdSliderTooltipDirective, ArdSnackbarAlignment, ArdSnackbarOriginRelation, ArdSnackbarQueueHandling, ArdSnackbarRef, ArdSnackbarType, ArdStarButtonStarTemplateDirective, ArdStarIconTemplateDirective, ArdTabberLabelTemplateDirective, ArdValueChipTemplateDirective, ArdValueTemplateDirective, ArdiumAutocompleteInputComponent, ArdiumAutocompleteInputModule, ArdiumBadgeDirective, ArdiumBadgeModule, ArdiumButtonComponent, ArdiumButtonModule, ArdiumCalendarComponent, ArdiumCalendarModule, ArdiumCardActionButtonsDirective, ArdiumCardAvatarDirective, ArdiumCardComponent, ArdiumCardContentDirective, ArdiumCardDirective, ArdiumCardFooterDirective, ArdiumCardHeaderComponent, ArdiumCardImageDirective, ArdiumCardModule, ArdiumCardSubtitleDirective, ArdiumCardTitleDirective, ArdiumCheckboxComponent, ArdiumCheckboxListComponent, ArdiumCheckboxListModule, ArdiumCheckboxModule, ArdiumChipComponent, ArdiumChipModule, ArdiumDateInputComponent, ArdiumDateInputModule, ArdiumDeletableChipComponent, ArdiumDialogComponent, ArdiumDialogModule, ArdiumDigitInputComponent, ArdiumDigitInputModule, ArdiumDividerComponent, ArdiumDividerModule, ArdiumDropdownPanelComponent, ArdiumDropdownPanelModule, ArdiumErrorComponent, ArdiumErrorDirective, ArdiumFabComponent, ArdiumFabModule, ArdiumFileDropAreaComponent, ArdiumFileDropAreaDragoverContentTemplateDirective, ArdiumFileDropAreaIdleContentTemplateDirective, ArdiumFileDropAreaModule, ArdiumFileDropAreaUploadedContentTemplateDirective, ArdiumFileInputComponent, ArdiumFileInputDragoverContentTemplateDirective, ArdiumFileInputFolderIconTemplateDirective, ArdiumFileInputIdleContentTemplateDirective, ArdiumFileInputModule, ArdiumFileInputUploadedContentTemplateDirective, ArdiumFormFieldComponent, ArdiumFormFieldFrameComponent, ArdiumFormFieldFrameModule, ArdiumFormFieldModule, ArdiumFormFieldNativeInputAdapterDirective, ArdiumHexInputComponent, ArdiumHexInputModule, ArdiumHintComponent, ArdiumHintDirective, ArdiumHintErrorComponent, ArdiumHintErrorDirective, ArdiumHorizontalFormFieldComponent, ArdiumIconButtonComponent, ArdiumIconButtonModule, ArdiumIconComponent, ArdiumIconModule, ArdiumIconPipe, ArdiumInputComponent, ArdiumInputModule, ArdiumKbdComponent, ArdiumKbdDirective, ArdiumKbdModule, ArdiumKbdPipe, ArdiumKbdShortcutComponent, ArdiumKbdShortcutModule, ArdiumLabelComponent, ArdiumModalComponent, ArdiumModalModule, ArdiumNumberInputComponent, ArdiumNumberInputModule, ArdiumOptionComponent, ArdiumOptionModule, ArdiumPasswordInputComponent, ArdiumPasswordInputModule, ArdiumProgressBarComponent, ArdiumProgressBarModule, ArdiumProgressCircleComponent, ArdiumProgressCircleModule, ArdiumRadioComponent, ArdiumRadioGroupComponent, ArdiumRadioModule, ArdiumRangeSliderComponent, ArdiumRangeSliderModule, ArdiumRatingDisplayComponent, ArdiumRatingDisplayModule, ArdiumRatingInputComponent, ArdiumRatingInputModule, ArdiumSegmentComponent, ArdiumSegmentModule, ArdiumSelectComponent, ArdiumSelectModule, ArdiumSelectableChipComponent, ArdiumSlideToggleComponent, ArdiumSlideToggleModule, ArdiumSliderComponent, ArdiumSliderModule, ArdiumSnackbarService, ArdiumSpinnerComponent, ArdiumSpinnerModule, ArdiumStarButtonComponent, ArdiumStarButtonModule, ArdiumStarComponent, ArdiumStarModule, ArdiumStateboxComponent, ArdiumStateboxModule, ArdiumTabComponent, ArdiumTabberComponent, ArdiumTabberModule, ArdiumTableCaptionTemplateDirective, ArdiumTableCheckboxTemplateDirective, ArdiumTableComponent, ArdiumTableFromCsvComponent, ArdiumTableFromCsvModule, ArdiumTableHeaderCheckboxTemplateDirective, ArdiumTableModule, ArdiumTablePaginationComponent, ArdiumTablePaginationModule, ArdiumTablePaginationTemplateDirective, ArdiumTableTemplateDirective, ArdiumTextListComponent, ArdiumTextListModule, ArdiumTextListPipe, BadgePosition, BadgeSize, ButtonAppearance, ButtonVariant, CardAppearance, CardVariant, CheckboxListAlignType, CheckboxState, ClickStrategy, ComponentColor, DecorationElementAppearance, DigitInputPrimitiveOption, DigitInputShape, DropdownPanelAppearance, DropdownPanelVariant, FabSize, FormElementAppearance, FormElementVariant, OneAxisAlignment, OutlinedAppearance, PaginationAlign, PanelAppearance, PanelVariant, ProgressBarAppearance, ProgressBarMode, ProgressBarSize, ProgressBarVariant, ProgressCircleAppearance, ProgressCircleVariant, SegmentAppearance, SegmentVariant, SimpleComponentColor, SimpleOneAxisAlignment, SliderDecorationPosition, SliderTooltipBehavior, SortType, StarColor, StarFillMode, TableAlignType, TableAppearance, TablePaginationStrategy, TableVariant, TransformType, _chipDefaults, _modalDefaults, provideBadgeDefaults, provideButtonDefaults, provideCalendarDefaults, provideCardDefaults, provideCheckboxDefaults, provideCheckboxListDefaults, provideChipDefaults, provideDateInputDefaults, provideDeletableChipDefaults, provideDialogDefaults, provideDigitInputDefaults, provideDividerDefaults, provideDropdownPanelDefaults, provideFabDefaults, provideFileDropAreaDefaults, provideFileInputDefaults, provideFormFieldDefaults, provideFormFieldFrameDefaults, provideHexInputDefaults, provideIconButtonDefaults, provideIconDefaults, provideInputDefaults, provideKbdDefaults, provideKbdShortcutDefaults, provideModalDefaults, provideNumberInputDefaults, providePasswordInputDefaults, provideProgressBarDefaults, provideProgressCircleDefaults, provideRadioDefaults, provideRatingDisplayDefaults, provideRatingInputDefaults, provideSegmentDefaults, provideSelectDefaults, provideSelectableChipDefaults, provideSlideToggleDefaults, provideSliderDefaults, provideSnackbarDefaults, provideSpinnerDefaults, provideStarButtonDefaults, provideStarDefaults, provideStateboxDefaults, provideTabDefaults, provideTabberDefaults, provideTableDefaults, provideTableFromCsvDefaults, provideTablePaginationDefaults, searchInString };
|
|
14971
|
+
export { ARD_BADGE_DEFAULTS, ARD_BUTTON_DEFAULTS, ARD_CALENDAR_DEFAULTS, ARD_CARD_DEFAULTS, ARD_CHECKBOX_DEFAULTS, ARD_CHECKBOX_LIST_DEFAULTS, ARD_CHIP_DEFAULTS, ARD_DATE_INPUT_DEFAULTS, ARD_DELETABLE_CHIP_DEFAULTS, ARD_DIALOG_DEFAULTS, ARD_DIGIT_INPUT_DEFAULTS, ARD_DIVIDER_DEFAULTS, ARD_DROPDOWN_PANEL_DEFAULTS, ARD_FAB_DEFAULTS, ARD_FILE_DROP_AREA_DEFAULTS, ARD_FILE_INPUT_DEFAULTS, ARD_FORM_FIELD_CONTROL, ARD_FORM_FIELD_DEFAULTS, ARD_FORM_FIELD_FRAME_DEFAULTS, ARD_HEX_INPUT_DEFAULTS, ARD_ICON_BUTTON_DEFAULTS, ARD_ICON_DEFAULTS, ARD_KBD_DEFAULTS, ARD_KBD_SHORTCUT_DEFAULTS, ARD_MODAL_DEFAULTS, ARD_NUMBER_INPUT_DEFAULTS, ARD_PASSWORD_INPUT_DEFAULTS, ARD_PROGRESS_BAR_DEFAULTS, ARD_PROGRESS_CIRCLE_DEFAULTS, ARD_RADIO_DEFAULTS, ARD_RATING_DISPLAY_DEFAULTS, ARD_RATING_INPUT_DEFAULTS, ARD_SEGMENT_DEFAULTS, ARD_SELECTABLE_CHIP_DEFAULTS, ARD_SELECT_DEFAULTS, ARD_SIMPLE_INPUT_DEFAULTS, ARD_SLIDER_DEFAULTS, ARD_SLIDE_TOGGLE_DEFAULTS, ARD_SNACKBAR_ANIMATION_LENGTH, ARD_SNACKBAR_DATA, ARD_SNACKBAR_DEFAULTS, ARD_SPINNER_DEFAULTS, ARD_STAR_BUTTON_DEFAULTS, ARD_STAR_DEFAULTS, ARD_STATEBOX_DEFAULTS, ARD_TABBER_DEFAULTS, ARD_TABLE_DEFAULTS, ARD_TABLE_FROM_CSV_DEFAULTS, ARD_TABLE_PAGINATION_DEFAULTS, ARD_TAB_DEFAULTS, ArdAddCustomTemplateDirective, ArdAutocompleteInputLoadingTemplateDirective, ArdAutocompleteInputPlaceholderTemplateDirective, ArdAutocompleteInputPrefixTemplateDirective, ArdAutocompleteInputSuffixTemplateDirective, ArdAutocompleteInputSuggestionTemplateDirective, ArdCalendarDayTemplateDirective, ArdCalendarDaysViewHeaderTemplateDirective, ArdCalendarFloatingMonthTemplateDirective, ArdCalendarMonthTemplateDirective, ArdCalendarMonthsViewHeaderTemplateDirective, ArdCalendarView, ArdCalendarWeekdayTemplateDirective, ArdCalendarYearTemplateDirective, ArdCalendarYearsViewHeaderTemplateDirective, ArdCheckboxListCheckboxTemplateDirective, ArdCheckboxListLabelTemplateDirective, ArdCheckboxTemplateDirective, ArdDateInputAcceptButtonsTemplateDirective, ArdDateInputCalendarIconTemplateDirective, ArdDateInputDayTemplateDirective, ArdDateInputDaysViewHeaderTemplateDirective, ArdDateInputFloatingMonthTemplateDirective, ArdDateInputMinMaxStrategy, ArdDateInputMonthTemplateDirective, ArdDateInputMonthsViewHeaderTemplateDirective, ArdDateInputPrefixTemplateDirective, ArdDateInputSuffixTemplateDirective, ArdDateInputValueTemplateDirective, ArdDateInputWeekdayTemplateDirective, ArdDateInputYearTemplateDirective, ArdDateInputYearsViewHeaderTemplateDirective, ArdDialogActionType, ArdDialogButtonsTemplateDirective, ArdDialogCloseIconTemplateDirective, ArdDialogResult, ArdDropdownFooterTemplateDirective, ArdDropdownHeaderTemplateDirective, ArdFileInputPlaceholderTemplateDirective, ArdFileInputPrefixTemplateDirective, ArdFileInputSuffixTemplateDirective, ArdFormFieldPrefixTemplateDirective, ArdFormFieldSuffixTemplateDirective, ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective, ArdItemDisplayLimitTemplateDirective, ArdItemLimitReachedTemplateDirective, ArdLoadingPlaceholderTemplateDirective, ArdLoadingSpinnerTemplateDirective, ArdModalCloseIconTemplateDirective, ArdNoItemsFoundTemplateDirective, ArdNumberInputPlaceholderTemplateDirective, ArdOptgroupTemplateDirective, ArdOptionTemplateDirective, ArdPanelPosition, ArdPasswordInputPlaceholderTemplateDirective, ArdPasswordInputPrefixTemplateDirective, ArdPasswordInputRevealButtonTemplateDirective, ArdPasswordInputSuffixTemplateDirective, ArdProgressBarValueTemplateDirective, ArdProgressCircleValueTemplateDirective, ArdRatingDisplayStarTemplateDirective, ArdRatingInputStarButtonTemplateDirective, searchFunctions as ArdSearchFunction, ArdSegmentOptionTemplateDirective, ArdSelectDropdownArrowTemplateDirective, ArdSelectPlaceholderTemplateDirective, ArdSelectPrefixTemplateDirective, ArdSelectSuffixTemplateDirective, ArdSlideToggleAppearance, ArdSliderTooltipDirective, ArdSnackbarAlignment, ArdSnackbarOriginRelation, ArdSnackbarQueueHandling, ArdSnackbarRef, ArdSnackbarType, ArdStarButtonStarTemplateDirective, ArdStarIconTemplateDirective, ArdTabberLabelTemplateDirective, ArdValueChipTemplateDirective, ArdValueTemplateDirective, ArdiumAutocompleteInputComponent, ArdiumAutocompleteInputModule, ArdiumBadgeDirective, ArdiumBadgeModule, ArdiumButtonComponent, ArdiumButtonModule, ArdiumCalendarComponent, ArdiumCalendarModule, ArdiumCardActionButtonsDirective, ArdiumCardAvatarDirective, ArdiumCardComponent, ArdiumCardContentDirective, ArdiumCardDirective, ArdiumCardFooterDirective, ArdiumCardHeaderComponent, ArdiumCardImageDirective, ArdiumCardModule, ArdiumCardSubtitleDirective, ArdiumCardTitleDirective, ArdiumCheckboxComponent, ArdiumCheckboxListComponent, ArdiumCheckboxListModule, ArdiumCheckboxModule, ArdiumChipComponent, ArdiumChipModule, ArdiumDateInputComponent, ArdiumDateInputModule, ArdiumDeletableChipComponent, ArdiumDialogComponent, ArdiumDialogModule, ArdiumDigitInputComponent, ArdiumDigitInputModule, ArdiumDividerComponent, ArdiumDividerModule, ArdiumDropdownPanelComponent, ArdiumDropdownPanelModule, ArdiumErrorComponent, ArdiumErrorDirective, ArdiumFabComponent, ArdiumFabModule, ArdiumFileDropAreaComponent, ArdiumFileDropAreaDragoverContentTemplateDirective, ArdiumFileDropAreaIdleContentTemplateDirective, ArdiumFileDropAreaModule, ArdiumFileDropAreaUploadedContentTemplateDirective, ArdiumFileInputComponent, ArdiumFileInputDragoverContentTemplateDirective, ArdiumFileInputFolderIconTemplateDirective, ArdiumFileInputIdleContentTemplateDirective, ArdiumFileInputModule, ArdiumFileInputUploadedContentTemplateDirective, ArdiumFormFieldComponent, ArdiumFormFieldFrameComponent, ArdiumFormFieldFrameModule, ArdiumFormFieldModule, ArdiumFormFieldNativeInputAdapterDirective, ArdiumHexInputComponent, ArdiumHexInputModule, ArdiumHintComponent, ArdiumHintDirective, ArdiumHintErrorComponent, ArdiumHintErrorDirective, ArdiumHorizontalFormFieldComponent, ArdiumIconButtonComponent, ArdiumIconButtonModule, ArdiumIconComponent, ArdiumIconModule, ArdiumIconPipe, ArdiumInputComponent, ArdiumInputModule, ArdiumKbdComponent, ArdiumKbdDirective, ArdiumKbdModule, ArdiumKbdPipe, ArdiumKbdShortcutComponent, ArdiumKbdShortcutModule, ArdiumLabelComponent, ArdiumModalComponent, ArdiumModalModule, ArdiumNumberInputComponent, ArdiumNumberInputModule, ArdiumOptionComponent, ArdiumOptionModule, ArdiumPasswordInputComponent, ArdiumPasswordInputModule, ArdiumProgressBarComponent, ArdiumProgressBarModule, ArdiumProgressCircleComponent, ArdiumProgressCircleModule, ArdiumRadioComponent, ArdiumRadioGroupComponent, ArdiumRadioModule, ArdiumRangeSliderComponent, ArdiumRangeSliderModule, ArdiumRatingDisplayComponent, ArdiumRatingDisplayModule, ArdiumRatingInputComponent, ArdiumRatingInputModule, ArdiumSegmentComponent, ArdiumSegmentModule, ArdiumSelectComponent, ArdiumSelectModule, ArdiumSelectableChipComponent, ArdiumSlideToggleComponent, ArdiumSlideToggleModule, ArdiumSliderComponent, ArdiumSliderModule, ArdiumSnackbarService, ArdiumSpinnerComponent, ArdiumSpinnerModule, ArdiumStarButtonComponent, ArdiumStarButtonModule, ArdiumStarComponent, ArdiumStarModule, ArdiumStateboxComponent, ArdiumStateboxModule, ArdiumTabComponent, ArdiumTabberComponent, ArdiumTabberModule, ArdiumTableCaptionTemplateDirective, ArdiumTableCheckboxTemplateDirective, ArdiumTableComponent, ArdiumTableFromCsvComponent, ArdiumTableFromCsvModule, ArdiumTableHeaderCheckboxTemplateDirective, ArdiumTableModule, ArdiumTablePaginationComponent, ArdiumTablePaginationModule, ArdiumTablePaginationTemplateDirective, ArdiumTableTemplateDirective, ArdiumTextListComponent, ArdiumTextListModule, ArdiumTextListPipe, BadgePosition, BadgeSize, ButtonAppearance, ButtonVariant, CardAppearance, CardVariant, CheckboxListAlignType, CheckboxState, ClickStrategy, ComponentColor, DecorationElementAppearance, DigitInputPrimitiveOption, DigitInputShape, DropdownPanelAppearance, DropdownPanelVariant, FabSize, FormElementAppearance, FormElementVariant, OneAxisAlignment, OutlinedAppearance, PaginationAlign, PanelAppearance, PanelVariant, ProgressBarAppearance, ProgressBarMode, ProgressBarSize, ProgressBarVariant, ProgressCircleAppearance, ProgressCircleVariant, SegmentAppearance, SegmentVariant, SimpleComponentColor, SimpleOneAxisAlignment, SliderDecorationPosition, SliderTooltipBehavior, SortType, StarColor, StarFillMode, TableAlignType, TableAppearance, TablePaginationStrategy, TableVariant, TransformType, _chipDefaults, _modalDefaults, provideBadgeDefaults, provideButtonDefaults, provideCalendarDefaults, provideCardDefaults, provideCheckboxDefaults, provideCheckboxListDefaults, provideChipDefaults, provideDateInputDefaults, provideDeletableChipDefaults, provideDialogDefaults, provideDigitInputDefaults, provideDividerDefaults, provideDropdownPanelDefaults, provideFabDefaults, provideFileDropAreaDefaults, provideFileInputDefaults, provideFormFieldDefaults, provideFormFieldFrameDefaults, provideHexInputDefaults, provideIconButtonDefaults, provideIconDefaults, provideInputDefaults, provideKbdDefaults, provideKbdShortcutDefaults, provideModalDefaults, provideNumberInputDefaults, providePasswordInputDefaults, provideProgressBarDefaults, provideProgressCircleDefaults, provideRadioDefaults, provideRatingDisplayDefaults, provideRatingInputDefaults, provideSegmentDefaults, provideSelectDefaults, provideSelectableChipDefaults, provideSlideToggleDefaults, provideSliderDefaults, provideSnackbarDefaults, provideSpinnerDefaults, provideStarButtonDefaults, provideStarDefaults, provideStateboxDefaults, provideTabDefaults, provideTabberDefaults, provideTableDefaults, provideTableFromCsvDefaults, provideTablePaginationDefaults, searchInString };
|
|
14963
14972
|
//# sourceMappingURL=ardium-ui-ui.mjs.map
|