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/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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-perfect-select",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "A modern, feature-rich select component for Angular with react-select API compatibility",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",