@cas-smartdesign/token-selector 0.15.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.
@@ -0,0 +1,109 @@
1
+ import { LitElement, TemplateResult, CSSResult, PropertyValues } from "lit";
2
+ import "@cas-smartdesign/lit-input";
3
+ import { ValidationLevel } from "@cas-smartdesign/field-validation-message";
4
+ import { ItemGenerator } from "@cas-smartdesign/list";
5
+ import { Filter } from "./token-suggest-popover";
6
+ import Token, { TokenData } from "./token";
7
+ export type { Filter as InMemoryFilter } from "./token-suggest-popover";
8
+ export type { TokenData } from "./token";
9
+ export { generator } from "./token";
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ [TokenSelector.ID]: TokenSelector;
13
+ }
14
+ }
15
+ export interface ITokenClickedEvent {
16
+ index: number;
17
+ tokenElement: Token;
18
+ byPointerDevice: boolean;
19
+ }
20
+ export interface ITokensRemovedEvent {
21
+ removedIndices: number[];
22
+ selectedIndices?: number[];
23
+ }
24
+ export interface ITokenSelectedEvent {
25
+ newIndices: number[];
26
+ selectedIndices: number[];
27
+ }
28
+ export interface ITokenCreatedEvent {
29
+ value: string;
30
+ }
31
+ export declare enum SelectionMode {
32
+ RemoveOnly = "remove-only",
33
+ Multi = "multi"
34
+ }
35
+ export interface CustomEventMap extends HTMLElementEventMap {
36
+ "token-clicked": CustomEvent<ITokenClickedEvent>;
37
+ "tokens-removed": CustomEvent<ITokensRemovedEvent>;
38
+ "tokens-selected": CustomEvent<ITokenSelectedEvent>;
39
+ "token-created": CustomEvent<ITokenCreatedEvent>;
40
+ "auto-suggest-initialized": CustomEvent;
41
+ }
42
+ export default interface TokenSelector {
43
+ addEventListener<K extends keyof CustomEventMap>(event: K, listener: ((this: this, ev: CustomEventMap[K]) => unknown) | null, options?: AddEventListenerOptions | boolean): void;
44
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
45
+ removeEventListener<K extends keyof CustomEventMap>(type: K, listener: (this: this, ev: CustomEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
46
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
47
+ dispatchEvent<EventType extends CustomEventMap[keyof CustomEventMap]>(event: EventType): boolean;
48
+ }
49
+ export type TokenGenerator = (data: TokenData, index: number) => Token;
50
+ export default class TokenSelector extends LitElement {
51
+ static readonly ID = "sd-token-selector";
52
+ static ensureDefined: () => void;
53
+ selectionMode: SelectionMode;
54
+ items: TokenData[];
55
+ selectedIndexes: number[];
56
+ placeholder: string;
57
+ suggestListClass: string;
58
+ inputLabel: string;
59
+ disabled: boolean;
60
+ validationMessage: string;
61
+ validationIconSrc: string;
62
+ validationLevel: ValidationLevel;
63
+ tokenType: string;
64
+ caseSensitive: boolean;
65
+ suggestionFilter: Filter;
66
+ private _tokenGenerator;
67
+ private _autoSuggestItemGenerator;
68
+ private additionalTokenCommittingKeys;
69
+ private _tokenSuggestPopover;
70
+ private cancelSearch;
71
+ private _activeTokenIndex;
72
+ static get styles(): CSSResult;
73
+ static shadowRootOptions: ShadowRootInit;
74
+ get tokenGenerator(): TokenGenerator;
75
+ set tokenGenerator(value: TokenGenerator);
76
+ get autoSuggestItemGenerator(): ItemGenerator;
77
+ set autoSuggestItemGenerator(value: ItemGenerator);
78
+ setAdditionalTokenCommittingKeys(keys: string[]): void;
79
+ openSuggestions(): void;
80
+ focus(): void;
81
+ render(): TemplateResult;
82
+ protected firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): void;
83
+ private handleInputKeyDown;
84
+ private handleKeyDown;
85
+ private addMatchingItems;
86
+ removeSelectionOrActiveToken(): void;
87
+ private updateActiveToken;
88
+ private commitTokenValue;
89
+ updated(changedProperties: PropertyValues): void;
90
+ private handleInputValueChange;
91
+ private handleWindowPointerDown;
92
+ private debouncedShowTokenSuggestPopover;
93
+ private showFilteredTokenSuggestions;
94
+ private isTokenNotSelected;
95
+ private get tokenSuggestPopover();
96
+ private updateItems;
97
+ removeTokens(tokenIndexes: number[]): void;
98
+ private onTokenClick;
99
+ private disableIfNeeded;
100
+ private handleTokenSelection;
101
+ private handleTokenCreation;
102
+ private get inputElement();
103
+ get activeTokenElement(): Token | null;
104
+ private getTokenElement;
105
+ private findIndex;
106
+ get activeTokenIndex(): number;
107
+ set activeTokenIndex(value: number);
108
+ private get hasInputValue();
109
+ }