angular-perfect-select 2.2.0 → 2.3.0
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/README.md +176 -1
- package/dist/README.md +176 -1
- package/dist/fesm2022/angular-perfect-select.mjs +450 -27
- package/dist/fesm2022/angular-perfect-select.mjs.map +1 -1
- package/dist/index.d.ts +146 -6
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as angular_perfect_select from 'angular-perfect-select';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { OnInit, OnChanges, OnDestroy, EventEmitter, ElementRef, TemplateRef, SimpleChanges } from '@angular/core';
|
|
3
|
+
import { OnInit, OnChanges, OnDestroy, EventEmitter, ElementRef, TemplateRef, SimpleChanges, EnvironmentProviders } from '@angular/core';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
6
6
|
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
@@ -85,8 +85,69 @@ interface SelectPinEvent {
|
|
|
85
85
|
pinned: boolean;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Utility functions for sorting select options
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
type SortMode = 'none' | 'alphabetical-asc' | 'alphabetical-desc' | 'recently-used' | 'custom';
|
|
93
|
+
interface SortConfig {
|
|
94
|
+
mode: SortMode;
|
|
95
|
+
customComparator?: (a: SelectOption, b: SelectOption) => number;
|
|
96
|
+
getLabel?: (option: SelectOption) => string;
|
|
97
|
+
recentlyUsedIds?: Set<any>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Sorts options based on the specified mode
|
|
101
|
+
*/
|
|
102
|
+
declare function sortOptions(options: SelectOption[], config: SortConfig): SelectOption[];
|
|
103
|
+
|
|
104
|
+
type ColorScheme = 'light' | 'dark' | 'auto';
|
|
105
|
+
declare class DarkModeProvider {
|
|
106
|
+
private platformId;
|
|
107
|
+
private isBrowser;
|
|
108
|
+
private preferredScheme;
|
|
109
|
+
private systemPrefersDark;
|
|
110
|
+
isDarkMode: _angular_core.Signal<boolean>;
|
|
111
|
+
constructor();
|
|
112
|
+
/**
|
|
113
|
+
* Initialize system dark mode detection
|
|
114
|
+
*/
|
|
115
|
+
private initDarkModeDetection;
|
|
116
|
+
/**
|
|
117
|
+
* Set user's color scheme preference
|
|
118
|
+
*/
|
|
119
|
+
setColorScheme(scheme: ColorScheme): void;
|
|
120
|
+
/**
|
|
121
|
+
* Get current color scheme preference
|
|
122
|
+
*/
|
|
123
|
+
getColorScheme(): ColorScheme;
|
|
124
|
+
/**
|
|
125
|
+
* Toggle between light and dark mode
|
|
126
|
+
*/
|
|
127
|
+
toggleDarkMode(): void;
|
|
128
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DarkModeProvider, never>;
|
|
129
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DarkModeProvider>;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Bulk actions for multi-select mode
|
|
134
|
+
*/
|
|
135
|
+
|
|
136
|
+
interface BulkAction {
|
|
137
|
+
id: string;
|
|
138
|
+
label: string;
|
|
139
|
+
icon?: string;
|
|
140
|
+
disabled?: boolean;
|
|
141
|
+
action: (selectedOptions: SelectOption[]) => void;
|
|
142
|
+
}
|
|
143
|
+
interface SelectBulkActionEvent {
|
|
144
|
+
action: BulkAction;
|
|
145
|
+
selectedOptions: SelectOption[];
|
|
146
|
+
}
|
|
147
|
+
|
|
88
148
|
declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, OnChanges, OnDestroy {
|
|
89
149
|
private sanitizer;
|
|
150
|
+
private darkModeProvider;
|
|
90
151
|
options: SelectOption[];
|
|
91
152
|
placeholder: string;
|
|
92
153
|
isMulti: boolean;
|
|
@@ -180,6 +241,28 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
180
241
|
collapsibleTags: boolean;
|
|
181
242
|
showAllTagsText: string;
|
|
182
243
|
showLessTagsText: string;
|
|
244
|
+
enableFuzzySearch: boolean;
|
|
245
|
+
fuzzySearchThreshold: number;
|
|
246
|
+
fuzzySearchCaseSensitive: boolean;
|
|
247
|
+
enableAutoThemeDetection: boolean;
|
|
248
|
+
colorScheme: ColorScheme;
|
|
249
|
+
darkModeTheme: ThemeName;
|
|
250
|
+
lightModeTheme: ThemeName;
|
|
251
|
+
enableLoadingSkeleton: boolean;
|
|
252
|
+
skeletonItemCount: number;
|
|
253
|
+
skeletonItemHeight: number;
|
|
254
|
+
skeletonAnimationDelay: number;
|
|
255
|
+
compactMode: boolean;
|
|
256
|
+
showOptionCheckboxes: boolean;
|
|
257
|
+
checkboxPosition: 'left' | 'right';
|
|
258
|
+
checkboxStyle: 'default' | 'filled' | 'outlined';
|
|
259
|
+
bulkActions: BulkAction[];
|
|
260
|
+
enableBulkActions: boolean;
|
|
261
|
+
bulkActionsPosition: 'above' | 'below' | 'float';
|
|
262
|
+
bulkActionsLabel: string;
|
|
263
|
+
sortMode: SortMode;
|
|
264
|
+
customSortComparator: ((a: SelectOption, b: SelectOption) => number) | null;
|
|
265
|
+
recentlyUsedLimit: number;
|
|
183
266
|
name: string;
|
|
184
267
|
id: string;
|
|
185
268
|
autoFocus: boolean;
|
|
@@ -205,12 +288,14 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
205
288
|
scrollEnd: EventEmitter<SelectScrollEndEvent>;
|
|
206
289
|
reorder: EventEmitter<SelectReorderEvent>;
|
|
207
290
|
pin: EventEmitter<SelectPinEvent>;
|
|
291
|
+
bulkActionSelected: EventEmitter<SelectBulkActionEvent>;
|
|
208
292
|
selectContainerRef: ElementRef;
|
|
209
293
|
searchInputRef: ElementRef;
|
|
210
294
|
menuElementRef: ElementRef;
|
|
211
295
|
virtualScrollViewport?: CdkVirtualScrollViewport;
|
|
212
296
|
optionTemplate?: TemplateRef<any>;
|
|
213
297
|
selectedOptionTemplate?: TemplateRef<any>;
|
|
298
|
+
tagTemplate?: TemplateRef<any>;
|
|
214
299
|
isOpen: _angular_core.WritableSignal<boolean>;
|
|
215
300
|
searchTerm: _angular_core.WritableSignal<string>;
|
|
216
301
|
highlightedIndex: _angular_core.WritableSignal<number>;
|
|
@@ -231,6 +316,8 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
231
316
|
isDragging: _angular_core.WritableSignal<boolean>;
|
|
232
317
|
private pinnedOptionsStorageKey;
|
|
233
318
|
tagsExpanded: _angular_core.WritableSignal<boolean>;
|
|
319
|
+
isDarkMode: _angular_core.WritableSignal<boolean>;
|
|
320
|
+
recentlyUsedIds: _angular_core.WritableSignal<Set<any>>;
|
|
234
321
|
currentTheme: _angular_core.Signal<angular_perfect_select.ThemeColors>;
|
|
235
322
|
filteredOptions: _angular_core.Signal<SelectOption[]>;
|
|
236
323
|
selectedOptions: _angular_core.Signal<(SelectOption | {
|
|
@@ -245,6 +332,8 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
245
332
|
value: any;
|
|
246
333
|
})[]>;
|
|
247
334
|
hiddenTagsCount: _angular_core.Signal<number>;
|
|
335
|
+
resolvedTheme: _angular_core.Signal<ThemeName>;
|
|
336
|
+
hasBulkActions: _angular_core.Signal<boolean>;
|
|
248
337
|
groupedOptions: _angular_core.Signal<Record<string, SelectOption[]> | null>;
|
|
249
338
|
displayOptions: _angular_core.Signal<SelectOption[]>;
|
|
250
339
|
allOptionsSelected: _angular_core.Signal<boolean>;
|
|
@@ -252,11 +341,11 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
252
341
|
isMaxSelectionReached: _angular_core.Signal<boolean>;
|
|
253
342
|
showMinSearchMessage: _angular_core.Signal<boolean>;
|
|
254
343
|
displayOptionsWithRecent: _angular_core.Signal<SelectOption[]>;
|
|
255
|
-
validationIconName: _angular_core.Signal<"
|
|
344
|
+
validationIconName: _angular_core.Signal<"" | "error" | "warning" | "check_circle" | "info">;
|
|
256
345
|
getEnabledOptionsCount(): number;
|
|
257
346
|
private onChange;
|
|
258
347
|
private onTouched;
|
|
259
|
-
constructor(sanitizer: DomSanitizer);
|
|
348
|
+
constructor(sanitizer: DomSanitizer, darkModeProvider: DarkModeProvider);
|
|
260
349
|
ngOnChanges(changes: SimpleChanges): void;
|
|
261
350
|
writeValue(value: any): void;
|
|
262
351
|
registerOnChange(fn: any): void;
|
|
@@ -305,8 +394,12 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
305
394
|
hideTooltip(): void;
|
|
306
395
|
getTooltipContent(option: SelectOption): string;
|
|
307
396
|
getValidationClass(): string;
|
|
397
|
+
trackRecentlyUsed(option: SelectOption): void;
|
|
398
|
+
isOptionSelected(option: SelectOption): boolean;
|
|
399
|
+
executeBulkAction(action: BulkAction): void;
|
|
400
|
+
getSkeletonItems(): number[];
|
|
308
401
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PerfectSelectComponent, never>;
|
|
309
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PerfectSelectComponent, "ng-perfect-select", never, { "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "isMulti": { "alias": "isMulti"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "isSearchable": { "alias": "isSearchable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "isClearable": { "alias": "isClearable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "isRtl": { "alias": "isRtl"; "required": false; }; "closeMenuOnSelect": { "alias": "closeMenuOnSelect"; "required": false; }; "hideSelectedOptions": { "alias": "hideSelectedOptions"; "required": false; }; "isCreatable": { "alias": "isCreatable"; "required": false; }; "allowCreateWhileLoading": { "alias": "allowCreateWhileLoading"; "required": false; }; "createOptionPosition": { "alias": "createOptionPosition"; "required": false; }; "formatCreateLabel": { "alias": "formatCreateLabel"; "required": false; }; "loadOptions": { "alias": "loadOptions"; "required": false; }; "cacheOptions": { "alias": "cacheOptions"; "required": false; }; "defaultOptions": { "alias": "defaultOptions"; "required": false; }; "selectSize": { "alias": "selectSize"; "required": false; }; "containerSize": { "alias": "containerSize"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "customStyles": { "alias": "customStyles"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "menuPlacement": { "alias": "menuPlacement"; "required": false; }; "menuPosition": { "alias": "menuPosition"; "required": false; }; "getOptionLabel": { "alias": "getOptionLabel"; "required": false; }; "getOptionValue": { "alias": "getOptionValue"; "required": false; }; "isOptionDisabled": { "alias": "isOptionDisabled"; "required": false; }; "filterOption": { "alias": "filterOption"; "required": false; }; "isGrouped": { "alias": "isGrouped"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; }; "selectAllText": { "alias": "selectAllText"; "required": false; }; "deselectAllText": { "alias": "deselectAllText"; "required": false; }; "showOptionIcons": { "alias": "showOptionIcons"; "required": false; }; "showOptionBadges": { "alias": "showOptionBadges"; "required": false; }; "maxOptionsDisplay": { "alias": "maxOptionsDisplay"; "required": false; }; "optionHeight": { "alias": "optionHeight"; "required": false; }; "emptyStateText": { "alias": "emptyStateText"; "required": false; }; "emptySearchText": { "alias": "emptySearchText"; "required": false; }; "maxSelectedOptions": { "alias": "maxSelectedOptions"; "required": false; }; "maxSelectedMessage": { "alias": "maxSelectedMessage"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; }; "minSearchMessage": { "alias": "minSearchMessage"; "required": false; }; "enableVirtualScroll": { "alias": "enableVirtualScroll"; "required": false; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; }; "virtualScrollMinBufferPx": { "alias": "virtualScrollMinBufferPx"; "required": false; }; "virtualScrollMaxBufferPx": { "alias": "virtualScrollMaxBufferPx"; "required": false; }; "validationState": { "alias": "validationState"; "required": false; }; "validationMessage": { "alias": "validationMessage"; "required": false; }; "showValidationIcon": { "alias": "showValidationIcon"; "required": false; }; "showTooltips": { "alias": "showTooltips"; "required": false; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; }; "getOptionTooltip": { "alias": "getOptionTooltip"; "required": false; }; "showRecentSelections": { "alias": "showRecentSelections"; "required": false; }; "recentSelectionsLimit": { "alias": "recentSelectionsLimit"; "required": false; }; "recentSelectionsLabel": { "alias": "recentSelectionsLabel"; "required": false; }; "enableRecentSelectionsPersistence": { "alias": "enableRecentSelectionsPersistence"; "required": false; }; "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "infiniteScrollThreshold": { "alias": "infiniteScrollThreshold"; "required": false; }; "totalOptionsCount": { "alias": "totalOptionsCount"; "required": false; }; "enableAdvancedKeyboard": { "alias": "enableAdvancedKeyboard"; "required": false; }; "typeAheadDelay": { "alias": "typeAheadDelay"; "required": false; }; "enableCopyPaste": { "alias": "enableCopyPaste"; "required": false; }; "copyDelimiter": { "alias": "copyDelimiter"; "required": false; }; "pasteDelimiter": { "alias": "pasteDelimiter"; "required": false; }; "enableDragDrop": { "alias": "enableDragDrop"; "required": false; }; "dragDropPlaceholder": { "alias": "dragDropPlaceholder"; "required": false; }; "dragDropAnimation": { "alias": "dragDropAnimation"; "required": false; }; "enablePinning": { "alias": "enablePinning"; "required": false; }; "maxPinnedOptions": { "alias": "maxPinnedOptions"; "required": false; }; "pinnedOptionsLabel": { "alias": "pinnedOptionsLabel"; "required": false; }; "persistPinnedOptions": { "alias": "persistPinnedOptions"; "required": false; }; "enableSearchHighlight": { "alias": "enableSearchHighlight"; "required": false; }; "searchHighlightColor": { "alias": "searchHighlightColor"; "required": false; }; "searchHighlightTextColor": { "alias": "searchHighlightTextColor"; "required": false; }; "maxVisibleTags": { "alias": "maxVisibleTags"; "required": false; }; "showMoreTagsText": { "alias": "showMoreTagsText"; "required": false; }; "collapsibleTags": { "alias": "collapsibleTags"; "required": false; }; "showAllTagsText": { "alias": "showAllTagsText"; "required": false; }; "showLessTagsText": { "alias": "showLessTagsText"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "openMenuOnFocus": { "alias": "openMenuOnFocus"; "required": false; }; "openMenuOnClick": { "alias": "openMenuOnClick"; "required": false; }; "tabSelectsValue": { "alias": "tabSelectsValue"; "required": false; }; "backspaceRemovesValue": { "alias": "backspaceRemovesValue"; "required": false; }; "escapeClearsValue": { "alias": "escapeClearsValue"; "required": false; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; }; }, { "change": "change"; "clear": "clear"; "focus": "focus"; "blur": "blur"; "menuOpen": "menuOpen"; "menuClose": "menuClose"; "inputChange": "inputChange"; "createOption": "createOption"; "optionsLoaded": "optionsLoaded"; "loadError": "loadError"; "copy": "copy"; "paste": "paste"; "scrollEnd": "scrollEnd"; "reorder": "reorder"; "pin": "pin"; }, ["optionTemplate", "selectedOptionTemplate"], never, true, never>;
|
|
402
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PerfectSelectComponent, "ng-perfect-select", never, { "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "isMulti": { "alias": "isMulti"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "isSearchable": { "alias": "isSearchable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "isClearable": { "alias": "isClearable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "isRtl": { "alias": "isRtl"; "required": false; }; "closeMenuOnSelect": { "alias": "closeMenuOnSelect"; "required": false; }; "hideSelectedOptions": { "alias": "hideSelectedOptions"; "required": false; }; "isCreatable": { "alias": "isCreatable"; "required": false; }; "allowCreateWhileLoading": { "alias": "allowCreateWhileLoading"; "required": false; }; "createOptionPosition": { "alias": "createOptionPosition"; "required": false; }; "formatCreateLabel": { "alias": "formatCreateLabel"; "required": false; }; "loadOptions": { "alias": "loadOptions"; "required": false; }; "cacheOptions": { "alias": "cacheOptions"; "required": false; }; "defaultOptions": { "alias": "defaultOptions"; "required": false; }; "selectSize": { "alias": "selectSize"; "required": false; }; "containerSize": { "alias": "containerSize"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "customStyles": { "alias": "customStyles"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "menuPlacement": { "alias": "menuPlacement"; "required": false; }; "menuPosition": { "alias": "menuPosition"; "required": false; }; "getOptionLabel": { "alias": "getOptionLabel"; "required": false; }; "getOptionValue": { "alias": "getOptionValue"; "required": false; }; "isOptionDisabled": { "alias": "isOptionDisabled"; "required": false; }; "filterOption": { "alias": "filterOption"; "required": false; }; "isGrouped": { "alias": "isGrouped"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; }; "selectAllText": { "alias": "selectAllText"; "required": false; }; "deselectAllText": { "alias": "deselectAllText"; "required": false; }; "showOptionIcons": { "alias": "showOptionIcons"; "required": false; }; "showOptionBadges": { "alias": "showOptionBadges"; "required": false; }; "maxOptionsDisplay": { "alias": "maxOptionsDisplay"; "required": false; }; "optionHeight": { "alias": "optionHeight"; "required": false; }; "emptyStateText": { "alias": "emptyStateText"; "required": false; }; "emptySearchText": { "alias": "emptySearchText"; "required": false; }; "maxSelectedOptions": { "alias": "maxSelectedOptions"; "required": false; }; "maxSelectedMessage": { "alias": "maxSelectedMessage"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; }; "minSearchMessage": { "alias": "minSearchMessage"; "required": false; }; "enableVirtualScroll": { "alias": "enableVirtualScroll"; "required": false; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; }; "virtualScrollMinBufferPx": { "alias": "virtualScrollMinBufferPx"; "required": false; }; "virtualScrollMaxBufferPx": { "alias": "virtualScrollMaxBufferPx"; "required": false; }; "validationState": { "alias": "validationState"; "required": false; }; "validationMessage": { "alias": "validationMessage"; "required": false; }; "showValidationIcon": { "alias": "showValidationIcon"; "required": false; }; "showTooltips": { "alias": "showTooltips"; "required": false; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; }; "getOptionTooltip": { "alias": "getOptionTooltip"; "required": false; }; "showRecentSelections": { "alias": "showRecentSelections"; "required": false; }; "recentSelectionsLimit": { "alias": "recentSelectionsLimit"; "required": false; }; "recentSelectionsLabel": { "alias": "recentSelectionsLabel"; "required": false; }; "enableRecentSelectionsPersistence": { "alias": "enableRecentSelectionsPersistence"; "required": false; }; "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "infiniteScrollThreshold": { "alias": "infiniteScrollThreshold"; "required": false; }; "totalOptionsCount": { "alias": "totalOptionsCount"; "required": false; }; "enableAdvancedKeyboard": { "alias": "enableAdvancedKeyboard"; "required": false; }; "typeAheadDelay": { "alias": "typeAheadDelay"; "required": false; }; "enableCopyPaste": { "alias": "enableCopyPaste"; "required": false; }; "copyDelimiter": { "alias": "copyDelimiter"; "required": false; }; "pasteDelimiter": { "alias": "pasteDelimiter"; "required": false; }; "enableDragDrop": { "alias": "enableDragDrop"; "required": false; }; "dragDropPlaceholder": { "alias": "dragDropPlaceholder"; "required": false; }; "dragDropAnimation": { "alias": "dragDropAnimation"; "required": false; }; "enablePinning": { "alias": "enablePinning"; "required": false; }; "maxPinnedOptions": { "alias": "maxPinnedOptions"; "required": false; }; "pinnedOptionsLabel": { "alias": "pinnedOptionsLabel"; "required": false; }; "persistPinnedOptions": { "alias": "persistPinnedOptions"; "required": false; }; "enableSearchHighlight": { "alias": "enableSearchHighlight"; "required": false; }; "searchHighlightColor": { "alias": "searchHighlightColor"; "required": false; }; "searchHighlightTextColor": { "alias": "searchHighlightTextColor"; "required": false; }; "maxVisibleTags": { "alias": "maxVisibleTags"; "required": false; }; "showMoreTagsText": { "alias": "showMoreTagsText"; "required": false; }; "collapsibleTags": { "alias": "collapsibleTags"; "required": false; }; "showAllTagsText": { "alias": "showAllTagsText"; "required": false; }; "showLessTagsText": { "alias": "showLessTagsText"; "required": false; }; "enableFuzzySearch": { "alias": "enableFuzzySearch"; "required": false; }; "fuzzySearchThreshold": { "alias": "fuzzySearchThreshold"; "required": false; }; "fuzzySearchCaseSensitive": { "alias": "fuzzySearchCaseSensitive"; "required": false; }; "enableAutoThemeDetection": { "alias": "enableAutoThemeDetection"; "required": false; }; "colorScheme": { "alias": "colorScheme"; "required": false; }; "darkModeTheme": { "alias": "darkModeTheme"; "required": false; }; "lightModeTheme": { "alias": "lightModeTheme"; "required": false; }; "enableLoadingSkeleton": { "alias": "enableLoadingSkeleton"; "required": false; }; "skeletonItemCount": { "alias": "skeletonItemCount"; "required": false; }; "skeletonItemHeight": { "alias": "skeletonItemHeight"; "required": false; }; "skeletonAnimationDelay": { "alias": "skeletonAnimationDelay"; "required": false; }; "compactMode": { "alias": "compactMode"; "required": false; }; "showOptionCheckboxes": { "alias": "showOptionCheckboxes"; "required": false; }; "checkboxPosition": { "alias": "checkboxPosition"; "required": false; }; "checkboxStyle": { "alias": "checkboxStyle"; "required": false; }; "bulkActions": { "alias": "bulkActions"; "required": false; }; "enableBulkActions": { "alias": "enableBulkActions"; "required": false; }; "bulkActionsPosition": { "alias": "bulkActionsPosition"; "required": false; }; "bulkActionsLabel": { "alias": "bulkActionsLabel"; "required": false; }; "sortMode": { "alias": "sortMode"; "required": false; }; "customSortComparator": { "alias": "customSortComparator"; "required": false; }; "recentlyUsedLimit": { "alias": "recentlyUsedLimit"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "openMenuOnFocus": { "alias": "openMenuOnFocus"; "required": false; }; "openMenuOnClick": { "alias": "openMenuOnClick"; "required": false; }; "tabSelectsValue": { "alias": "tabSelectsValue"; "required": false; }; "backspaceRemovesValue": { "alias": "backspaceRemovesValue"; "required": false; }; "escapeClearsValue": { "alias": "escapeClearsValue"; "required": false; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; }; }, { "change": "change"; "clear": "clear"; "focus": "focus"; "blur": "blur"; "menuOpen": "menuOpen"; "menuClose": "menuClose"; "inputChange": "inputChange"; "createOption": "createOption"; "optionsLoaded": "optionsLoaded"; "loadError": "loadError"; "copy": "copy"; "paste": "paste"; "scrollEnd": "scrollEnd"; "reorder": "reorder"; "pin": "pin"; "bulkActionSelected": "bulkActionSelected"; }, ["optionTemplate", "selectedOptionTemplate", "tagTemplate"], never, true, never>;
|
|
310
403
|
}
|
|
311
404
|
|
|
312
405
|
declare const dropdownAnimation: AnimationTriggerMetadata;
|
|
@@ -323,5 +416,52 @@ declare class ClickOutsideDirective {
|
|
|
323
416
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ClickOutsideDirective, "[clickOutside]", never, {}, { "clickOutside": "clickOutside"; }, never, never, true, never>;
|
|
324
417
|
}
|
|
325
418
|
|
|
326
|
-
|
|
327
|
-
|
|
419
|
+
/**
|
|
420
|
+
* Provides necessary CDK modules for PerfectSelectComponent.
|
|
421
|
+
* Import this in your app configuration if you encounter production build issues.
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* ```typescript
|
|
425
|
+
* import { providePerfectSelect } from 'angular-perfect-select';
|
|
426
|
+
*
|
|
427
|
+
* bootstrapApplication(AppComponent, {
|
|
428
|
+
* providers: [
|
|
429
|
+
* // ... other providers
|
|
430
|
+
* providePerfectSelect()
|
|
431
|
+
* ]
|
|
432
|
+
* });
|
|
433
|
+
* ```
|
|
434
|
+
*/
|
|
435
|
+
declare function providePerfectSelect(): EnvironmentProviders;
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Fuzzy search utility for flexible string matching
|
|
439
|
+
* Supports acronym-style matching (e.g., 'fb' matches 'Facebook')
|
|
440
|
+
* and partial substring matching with scoring
|
|
441
|
+
*/
|
|
442
|
+
interface FuzzyMatchResult {
|
|
443
|
+
matches: boolean;
|
|
444
|
+
score: number;
|
|
445
|
+
matchedIndices: number[];
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Performs fuzzy search matching
|
|
449
|
+
* @param searchTerm The search query
|
|
450
|
+
* @param targetString The string to search in
|
|
451
|
+
* @param options Configuration options
|
|
452
|
+
* @returns Match result with score and matched character indices
|
|
453
|
+
*/
|
|
454
|
+
declare function fuzzyMatch(searchTerm: string, targetString: string, options?: {
|
|
455
|
+
caseSensitive?: boolean;
|
|
456
|
+
threshold?: number;
|
|
457
|
+
}): FuzzyMatchResult;
|
|
458
|
+
/**
|
|
459
|
+
* Sorts options by fuzzy match score
|
|
460
|
+
*/
|
|
461
|
+
declare function sortByFuzzyScore<T>(items: T[], searchTerm: string, getLabel: (item: T) => string, options?: {
|
|
462
|
+
caseSensitive?: boolean;
|
|
463
|
+
threshold?: number;
|
|
464
|
+
}): T[];
|
|
465
|
+
|
|
466
|
+
export { ClickOutsideDirective, DarkModeProvider, PerfectSelectComponent, THEMES, dropdownAnimation, fuzzyMatch, optionListAnimation, providePerfectSelect, selectAnimations, sortByFuzzyScore, sortOptions, tagAnimation };
|
|
467
|
+
export type { BulkAction, ColorScheme, FuzzyMatchResult, InputChangeAction, SelectBulkActionEvent, SelectChangeAction, SelectChangeEvent, SelectCopyEvent, SelectCreateOptionEvent, SelectInputChangeEvent, SelectLoadErrorEvent, SelectOption, SelectOptionsLoadedEvent, SelectPasteEvent, SelectPinEvent, SelectReorderEvent, SelectScrollEndEvent, SortConfig, SortMode, ThemeColors, ThemeName, ValidationConfig, ValidationState };
|
package/package.json
CHANGED