angular-perfect-select 2.0.0 → 2.2.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 +90 -1
- package/dist/README.md +90 -1
- package/dist/fesm2022/angular-perfect-select.mjs +202 -8
- package/dist/fesm2022/angular-perfect-select.mjs.map +1 -1
- package/dist/index.d.ts +52 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { OnInit, OnChanges, OnDestroy, EventEmitter, ElementRef, TemplateRef, Si
|
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
6
6
|
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
7
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
7
8
|
import { AnimationTriggerMetadata } from '@angular/animations';
|
|
8
9
|
|
|
9
10
|
interface ThemeColors {
|
|
@@ -27,9 +28,11 @@ interface SelectOption {
|
|
|
27
28
|
badgeColor?: string;
|
|
28
29
|
group?: string;
|
|
29
30
|
tooltip?: string;
|
|
31
|
+
pinned?: boolean;
|
|
30
32
|
__isNew__?: boolean;
|
|
31
33
|
__isCreate__?: boolean;
|
|
32
34
|
__isRecent__?: boolean;
|
|
35
|
+
__isPinned__?: boolean;
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
type ValidationState = 'default' | 'error' | 'warning' | 'success' | 'info';
|
|
@@ -71,6 +74,16 @@ interface SelectScrollEndEvent {
|
|
|
71
74
|
scrollHeight: number;
|
|
72
75
|
clientHeight: number;
|
|
73
76
|
}
|
|
77
|
+
interface SelectReorderEvent {
|
|
78
|
+
previousIndex: number;
|
|
79
|
+
currentIndex: number;
|
|
80
|
+
values: any[];
|
|
81
|
+
options: SelectOption[];
|
|
82
|
+
}
|
|
83
|
+
interface SelectPinEvent {
|
|
84
|
+
option: SelectOption;
|
|
85
|
+
pinned: boolean;
|
|
86
|
+
}
|
|
74
87
|
|
|
75
88
|
declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, OnChanges, OnDestroy {
|
|
76
89
|
private sanitizer;
|
|
@@ -152,6 +165,21 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
152
165
|
enableCopyPaste: boolean;
|
|
153
166
|
copyDelimiter: string;
|
|
154
167
|
pasteDelimiter: string;
|
|
168
|
+
enableDragDrop: boolean;
|
|
169
|
+
dragDropPlaceholder: string;
|
|
170
|
+
dragDropAnimation: number;
|
|
171
|
+
enablePinning: boolean;
|
|
172
|
+
maxPinnedOptions: number | null;
|
|
173
|
+
pinnedOptionsLabel: string;
|
|
174
|
+
persistPinnedOptions: boolean;
|
|
175
|
+
enableSearchHighlight: boolean;
|
|
176
|
+
searchHighlightColor: string;
|
|
177
|
+
searchHighlightTextColor: string;
|
|
178
|
+
maxVisibleTags: number | null;
|
|
179
|
+
showMoreTagsText: string;
|
|
180
|
+
collapsibleTags: boolean;
|
|
181
|
+
showAllTagsText: string;
|
|
182
|
+
showLessTagsText: string;
|
|
155
183
|
name: string;
|
|
156
184
|
id: string;
|
|
157
185
|
autoFocus: boolean;
|
|
@@ -175,6 +203,8 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
175
203
|
copy: EventEmitter<SelectCopyEvent>;
|
|
176
204
|
paste: EventEmitter<SelectPasteEvent>;
|
|
177
205
|
scrollEnd: EventEmitter<SelectScrollEndEvent>;
|
|
206
|
+
reorder: EventEmitter<SelectReorderEvent>;
|
|
207
|
+
pin: EventEmitter<SelectPinEvent>;
|
|
178
208
|
selectContainerRef: ElementRef;
|
|
179
209
|
searchInputRef: ElementRef;
|
|
180
210
|
menuElementRef: ElementRef;
|
|
@@ -197,6 +227,10 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
197
227
|
private tooltipTimeout;
|
|
198
228
|
private recentSelectionsStorageKey;
|
|
199
229
|
private scrollEndTimeout;
|
|
230
|
+
pinnedOptions: _angular_core.WritableSignal<SelectOption[]>;
|
|
231
|
+
isDragging: _angular_core.WritableSignal<boolean>;
|
|
232
|
+
private pinnedOptionsStorageKey;
|
|
233
|
+
tagsExpanded: _angular_core.WritableSignal<boolean>;
|
|
200
234
|
currentTheme: _angular_core.Signal<angular_perfect_select.ThemeColors>;
|
|
201
235
|
filteredOptions: _angular_core.Signal<SelectOption[]>;
|
|
202
236
|
selectedOptions: _angular_core.Signal<(SelectOption | {
|
|
@@ -205,6 +239,12 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
205
239
|
value: any;
|
|
206
240
|
})[]>;
|
|
207
241
|
displayText: _angular_core.Signal<string>;
|
|
242
|
+
visibleTags: _angular_core.Signal<(SelectOption | {
|
|
243
|
+
id: any;
|
|
244
|
+
label: string;
|
|
245
|
+
value: any;
|
|
246
|
+
})[]>;
|
|
247
|
+
hiddenTagsCount: _angular_core.Signal<number>;
|
|
208
248
|
groupedOptions: _angular_core.Signal<Record<string, SelectOption[]> | null>;
|
|
209
249
|
displayOptions: _angular_core.Signal<SelectOption[]>;
|
|
210
250
|
allOptionsSelected: _angular_core.Signal<boolean>;
|
|
@@ -249,6 +289,16 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
249
289
|
addToRecentSelections(option: SelectOption): void;
|
|
250
290
|
loadRecentSelections(): void;
|
|
251
291
|
saveRecentSelections(): void;
|
|
292
|
+
onTagsReorder(event: CdkDragDrop<any[]>): void;
|
|
293
|
+
onDragStart(): void;
|
|
294
|
+
onDragEnd(): void;
|
|
295
|
+
togglePin(option: SelectOption, event: Event): void;
|
|
296
|
+
isPinned(option: SelectOption): boolean;
|
|
297
|
+
loadPinnedOptions(): void;
|
|
298
|
+
savePinnedOptions(): void;
|
|
299
|
+
highlightSearchTerm(text: string): SafeHtml;
|
|
300
|
+
toggleTagsExpanded(): void;
|
|
301
|
+
getMoreTagsText(): string;
|
|
252
302
|
onOptionsScroll(event: Event): void;
|
|
253
303
|
onVirtualScrollIndexChange(index: number): void;
|
|
254
304
|
showTooltip(option: SelectOption, index: number): void;
|
|
@@ -256,7 +306,7 @@ declare class PerfectSelectComponent implements ControlValueAccessor, OnInit, On
|
|
|
256
306
|
getTooltipContent(option: SelectOption): string;
|
|
257
307
|
getValidationClass(): string;
|
|
258
308
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PerfectSelectComponent, never>;
|
|
259
|
-
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; }; "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"; }, ["optionTemplate", "selectedOptionTemplate"], never, true, 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>;
|
|
260
310
|
}
|
|
261
311
|
|
|
262
312
|
declare const dropdownAnimation: AnimationTriggerMetadata;
|
|
@@ -274,4 +324,4 @@ declare class ClickOutsideDirective {
|
|
|
274
324
|
}
|
|
275
325
|
|
|
276
326
|
export { ClickOutsideDirective, PerfectSelectComponent, THEMES, dropdownAnimation, optionListAnimation, selectAnimations, tagAnimation };
|
|
277
|
-
export type { InputChangeAction, SelectChangeAction, SelectChangeEvent, SelectCopyEvent, SelectCreateOptionEvent, SelectInputChangeEvent, SelectLoadErrorEvent, SelectOption, SelectOptionsLoadedEvent, SelectPasteEvent, SelectScrollEndEvent, ThemeColors, ThemeName, ValidationConfig, ValidationState };
|
|
327
|
+
export type { InputChangeAction, SelectChangeAction, SelectChangeEvent, SelectCopyEvent, SelectCreateOptionEvent, SelectInputChangeEvent, SelectLoadErrorEvent, SelectOption, SelectOptionsLoadedEvent, SelectPasteEvent, SelectPinEvent, SelectReorderEvent, SelectScrollEndEvent, ThemeColors, ThemeName, ValidationConfig, ValidationState };
|
package/package.json
CHANGED