@breadstone/mosaik-elements-foundation 0.0.151 → 0.0.152

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.
Files changed (27) hide show
  1. package/Controls/Behaviors/AutoCompleteable.d.ts +45 -7
  2. package/Controls/Behaviors/AutoCompleteable.d.ts.map +1 -1
  3. package/Controls/Behaviors/AutoCompleteable.js +230 -21
  4. package/Controls/Behaviors/AutoCompleteable.js.map +1 -1
  5. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElement.d.ts +236 -3
  6. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElement.d.ts.map +1 -1
  7. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElement.js +647 -9
  8. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElement.js.map +1 -1
  9. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementIntl.d.ts +31 -0
  10. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementIntl.d.ts.map +1 -0
  11. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementIntl.js +50 -0
  12. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementIntl.js.map +1 -0
  13. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementTemplate.d.ts.map +1 -1
  14. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementTemplate.js +64 -10
  15. package/Controls/Components/Inputs/AutoCompleteBox/AutoCompleteBoxElementTemplate.js.map +1 -1
  16. package/Controls/Components/Inputs/AutoCompleteBox/IAutoCompleteBoxElementProps.d.ts +15 -1
  17. package/Controls/Components/Inputs/AutoCompleteBox/IAutoCompleteBoxElementProps.d.ts.map +1 -1
  18. package/Controls/Controllers/AutoCompleteController.d.ts +1 -0
  19. package/Controls/Controllers/AutoCompleteController.d.ts.map +1 -1
  20. package/Controls/Controllers/AutoCompleteController.js +22 -5
  21. package/Controls/Controllers/AutoCompleteController.js.map +1 -1
  22. package/Index.d.ts +1 -1
  23. package/Index.d.ts.map +1 -1
  24. package/Index.js.map +1 -1
  25. package/Routing/PathToRegexp.d.ts +1 -1
  26. package/custom-elements.json +707 -28
  27. package/package.json +3 -3
@@ -3,21 +3,22 @@ import type { CustomElement } from '../Components/Abstracts/CustomElement';
3
3
  import { AutoCompleteTextSearchMode } from '../Types/AutoCompleteTextSearchMode';
4
4
  import type { ControlBehaviorBase, ControlBehaviorReturn } from './Abstracts/Behavior';
5
5
  /**
6
- * Represents the events of the `{@link AutoCompletable}` mixin.
6
+ * Represents the events of the {@link AutoCompletable} mixin.
7
7
  *
8
8
  * @public
9
9
  */
10
10
  export interface IAutoCompletableEvents {
11
- populating: IEventEmitter<IEventDetail>;
12
- populated: IEventEmitter<IEventDetail>;
11
+ populating: IEventEmitter<IAutoCompletePopulatingEventDetail>;
12
+ populated: IEventEmitter<IAutoCompletePopulatedEventDetail>;
13
13
  }
14
14
  /**
15
- * Represents the `IAutoCompletable` interface.
15
+ * Represents the {@link IAutoCompletable} interface.
16
16
  *
17
17
  * @public
18
18
  */
19
19
  export interface IAutoCompletable {
20
20
  filteredItems: Array<unknown>;
21
+ isPopulating: boolean;
21
22
  onFilterCallback?(items: Array<unknown>): void;
22
23
  onSelectCallback?(item: unknown): void;
23
24
  getDisplayValue(item: unknown): string;
@@ -25,7 +26,43 @@ export interface IAutoCompletable {
25
26
  updateSelectedItem(item: unknown): void;
26
27
  }
27
28
  /**
28
- * Represents the `IAutoCompleteableProps` interface.
29
+ * Describes the detail payload for the populating event.
30
+ *
31
+ * @public
32
+ */
33
+ export interface IAutoCompletePopulatingEventDetail extends IEventDetail {
34
+ searchText: string;
35
+ requestId: number;
36
+ signal: AbortSignal;
37
+ }
38
+ /**
39
+ * Describes the detail payload for the populated event.
40
+ *
41
+ * @public
42
+ */
43
+ export interface IAutoCompletePopulatedEventDetail extends IEventDetail {
44
+ searchText: string;
45
+ items: Array<unknown>;
46
+ requestId: number;
47
+ }
48
+ /**
49
+ * Describes the context passed to asynchronous suggestion providers.
50
+ *
51
+ * @public
52
+ */
53
+ export interface IAutoCompleteItemsRequestContext {
54
+ readonly searchText: string;
55
+ readonly requestId: number;
56
+ readonly signal: AbortSignal;
57
+ }
58
+ /**
59
+ * Represents a delegate that resolves suggestion items.
60
+ *
61
+ * @public
62
+ */
63
+ export type AutoCompleteItemsProvider = (context: IAutoCompleteItemsRequestContext) => Array<unknown> | Promise<Array<unknown>>;
64
+ /**
65
+ * Represents the {@link IAutoCompleteableProps} interface.
29
66
  *
30
67
  * @public
31
68
  */
@@ -36,6 +73,7 @@ export interface IAutoCompleteableProps {
36
73
  searchMode: AutoCompleteTextSearchMode;
37
74
  displayMemberPath: string;
38
75
  items: Array<unknown>;
76
+ itemsProvider: AutoCompleteItemsProvider | null;
39
77
  }
40
78
  /**
41
79
  * @public
@@ -43,8 +81,8 @@ export interface IAutoCompleteableProps {
43
81
  export declare const AutoCompleteable: <T extends ControlBehaviorBase<CustomElement>>(base: T) => ControlBehaviorReturn<T, IAutoCompleteableProps & IAutoCompletableEvents & IAutoCompletable>;
44
82
  declare global {
45
83
  interface HTMLElementEventMap {
46
- populating: CustomEvent<IEventDetail>;
47
- populated: CustomEvent<IEventDetail>;
84
+ populating: CustomEvent<IAutoCompletePopulatingEventDetail>;
85
+ populated: CustomEvent<IAutoCompletePopulatedEventDetail>;
48
86
  }
49
87
  }
50
88
  //# sourceMappingURL=AutoCompleteable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteable.d.ts","sourceRoot":"","sources":["../../../src/Controls/Behaviors/AutoCompleteable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,YAAY,EAA2B,MAAM,6BAA6B,CAAC;AAEnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIvF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IAInC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAExC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CAI1C;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAI7B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAM9B,gBAAgB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/C,gBAAgB,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvC,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAEvC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3C,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAI3C;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IAInC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAC;IAQjC,UAAU,EAAE,0BAA0B,CAAC;IAGvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAIzB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,mBAAmB,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,KAAG,qBAAqB,CAAC,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,gBAAgB,CAiRnL,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,mBAAmB;QACzB,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;KACxC;CACJ"}
1
+ {"version":3,"file":"AutoCompleteable.d.ts","sourceRoot":"","sources":["../../../src/Controls/Behaviors/AutoCompleteable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,YAAY,EAA2B,MAAM,6BAA6B,CAAC;AAEnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIvF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IAInC,UAAU,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAE9D,SAAS,EAAE,aAAa,CAAC,iCAAiC,CAAC,CAAC;CAI/D;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAI7B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IAMtB,gBAAgB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/C,gBAAgB,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvC,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAEvC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3C,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAI3C;AAED;;;;GAIG;AACH,MAAM,WAAW,kCAAmC,SAAQ,YAAY;IAIpE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CAIvB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAkC,SAAQ,YAAY;IAInE,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAIrB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAI7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAIhC;AAED;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE,gCAAgC,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhI;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IAInC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAC;IAQjC,UAAU,EAAE,0BAA0B,CAAC;IAGvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,aAAa,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAInD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,mBAAmB,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,KAAG,qBAAqB,CAAC,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,gBAAgB,CA+gBnL,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,mBAAmB;QACzB,UAAU,EAAE,WAAW,CAAC,kCAAkC,CAAC,CAAC;QAC5D,SAAS,EAAE,WAAW,CAAC,iCAAiC,CAAC,CAAC;KAC7D;CACJ"}
@@ -31,10 +31,17 @@ export const AutoCompleteable = (base) => {
31
31
  _displayMemberPath;
32
32
  _items;
33
33
  _filteredItems;
34
+ _populateTimeoutHandle;
35
+ _searchText;
36
+ _itemsProvider;
37
+ _isPopulating;
38
+ _populateRequestIdCounter;
39
+ _activePopulateRequestId;
40
+ _activePopulateAbortController;
34
41
  // #endregion
35
42
  // #region Ctor
36
43
  /**
37
- * Constructs a new instance of the `AutoCompleteable` class.
44
+ * Constructs a new instance of the {@link AutoCompleteable} class.
38
45
  *
39
46
  * @public
40
47
  */
@@ -47,22 +54,30 @@ export const AutoCompleteable = (base) => {
47
54
  this._displayMemberPath = '';
48
55
  this._items = [];
49
56
  this._filteredItems = [];
57
+ this._populateTimeoutHandle = null;
58
+ this._searchText = '';
59
+ this._itemsProvider = null;
60
+ this._isPopulating = false;
61
+ this._populateRequestIdCounter = 0;
62
+ this._activePopulateRequestId = 0;
63
+ this._activePopulateAbortController = null;
50
64
  this._populating = new HTMLElementEventEmitter(this, 'populating');
51
65
  this._populated = new HTMLElementEventEmitter(this, 'populated');
52
66
  this._autoCompleteController = new AutoCompleteController(this, {
53
- filterCallback: (x) => {
54
- this.onFilterCallback(x);
67
+ filterBehavior: 'empty',
68
+ filterCallback: (items) => {
69
+ this.onFilterCallback(items);
55
70
  },
56
- selectCallback: (x) => {
57
- this.onSelectCallback(x);
71
+ selectCallback: (item) => {
72
+ this.onSelectCallback(item);
58
73
  }
59
74
  });
60
75
  }
61
76
  // #endregion
62
77
  // #region Properties
63
78
  /**
64
- * Gets or sets the `minimumPrefixLength` property.
65
- * The default value is `1`, which means the search will start after typing one character.
79
+ * Gets or sets the {@link minimumPrefixLength} property.
80
+ * The default value is {@code 1}, which means the search will start after typing one character.
66
81
  *
67
82
  * @public
68
83
  * @attr
@@ -74,11 +89,12 @@ export const AutoCompleteable = (base) => {
74
89
  if (this._minimumPrefixLength !== value) {
75
90
  this._minimumPrefixLength = value;
76
91
  this.requestUpdate('minimumPrefixLength');
92
+ this.refreshFilter();
77
93
  }
78
94
  }
79
95
  /**
80
- * Gets or sets the `minimumPopulateDelay` property.
81
- * The default value is `500`, which means the search will be delayed by 500 milliseconds after the last keystroke.
96
+ * Gets or sets the {@link minimumPopulateDelay} property.
97
+ * The default value is {@code 500}, which means the search will be delayed by 500 milliseconds after the last keystroke.
82
98
  *
83
99
  * @public
84
100
  * @attr
@@ -90,11 +106,12 @@ export const AutoCompleteable = (base) => {
90
106
  if (this._minimumPopulateDelay !== value) {
91
107
  this._minimumPopulateDelay = value;
92
108
  this.requestUpdate('minimumPopulateDelay');
109
+ this.refreshFilter();
93
110
  }
94
111
  }
95
112
  /**
96
- * Gets or sets the `isTextCompletionEnabled` property.
97
- * The default value is `false`, which means text completion is disabled.
113
+ * Gets or sets the {@link isTextCompletionEnabled} property.
114
+ * The default value is {@code false}, which means text completion is disabled.
98
115
  *
99
116
  * @public
100
117
  * @attr
@@ -109,8 +126,8 @@ export const AutoCompleteable = (base) => {
109
126
  }
110
127
  }
111
128
  /**
112
- * Gets or sets the `searchMode` property.
113
- * The default value is `contains`, which means the search will match any part of the text.
129
+ * Gets or sets the {@link searchMode} property.
130
+ * The default value is {@link AutoCompleteTextSearchMode.Contains}, which means the search will match any part of the text.
114
131
  *
115
132
  * @public
116
133
  * @attr
@@ -122,10 +139,11 @@ export const AutoCompleteable = (base) => {
122
139
  if (this._searchMode !== value) {
123
140
  this._searchMode = value;
124
141
  this.requestUpdate('searchMode');
142
+ this.refreshFilter();
125
143
  }
126
144
  }
127
145
  /**
128
- * Gets or sets the `displayMemberPath` property.
146
+ * Gets or sets the {@link displayMemberPath} property.
129
147
  * The default value is an empty string, which means the item itself will be used for display.
130
148
  *
131
149
  * @public
@@ -138,10 +156,11 @@ export const AutoCompleteable = (base) => {
138
156
  if (this._displayMemberPath !== value) {
139
157
  this._displayMemberPath = value;
140
158
  this.requestUpdate('displayMemberPath');
159
+ this.refreshFilter();
141
160
  }
142
161
  }
143
162
  /**
144
- * Gets or sets the `items` property.
163
+ * Gets or sets the {@link items} property.
145
164
  * The default value is an empty array, which means no items are available.
146
165
  *
147
166
  * @public
@@ -153,14 +172,13 @@ export const AutoCompleteable = (base) => {
153
172
  if (this._items !== value) {
154
173
  this._items = value;
155
174
  this.requestUpdate('items');
175
+ this.refreshFilter();
156
176
  }
157
177
  }
158
178
  /**
159
- * Gets or sets the `filteredItems` property.
160
- * The default value is an empty array, which means no items are filtered.
179
+ * Gets or sets the filtered items.
161
180
  *
162
181
  * @public
163
- * @readonly
164
182
  */
165
183
  get filteredItems() {
166
184
  return this._filteredItems;
@@ -171,9 +189,40 @@ export const AutoCompleteable = (base) => {
171
189
  this.requestUpdate('filteredItems');
172
190
  }
173
191
  }
192
+ /**
193
+ * Gets or sets the asynchronous items provider.
194
+ * When assigned, the provider will be invoked for every search request instead of filtering the static {@link items} list.
195
+ *
196
+ * @public
197
+ */
198
+ get itemsProvider() {
199
+ return this._itemsProvider;
200
+ }
201
+ set itemsProvider(value) {
202
+ if (this._itemsProvider !== value) {
203
+ this._itemsProvider = value;
204
+ this.requestUpdate('itemsProvider');
205
+ this.refreshFilter();
206
+ }
207
+ }
208
+ /**
209
+ * Gets a value indicating whether the control is currently populating suggestions.
210
+ *
211
+ * @public
212
+ * @readonly
213
+ */
214
+ get isPopulating() {
215
+ return this._isPopulating;
216
+ }
217
+ set isPopulating(value) {
218
+ if (this._isPopulating !== value) {
219
+ this._isPopulating = value;
220
+ this.requestUpdate('isPopulating');
221
+ }
222
+ }
174
223
  /**
175
224
  * Called when the items are being populated.
176
- * Provides reference to `{@link IEventDetail}` as event detail.
225
+ * Provides reference to {@link IAutoCompletePopulatingEventDetail} as event detail.
177
226
  *
178
227
  * @public
179
228
  * @readonly
@@ -184,7 +233,7 @@ export const AutoCompleteable = (base) => {
184
233
  }
185
234
  /**
186
235
  * Called when the items have been populated.
187
- * Provides reference to `{@link IEventDetail}` as event detail.
236
+ * Provides reference to {@link IAutoCompletePopulatedEventDetail} as event detail.
188
237
  *
189
238
  * @public
190
239
  * @readonly
@@ -213,7 +262,8 @@ export const AutoCompleteable = (base) => {
213
262
  * @public
214
263
  */
215
264
  updateSearchText(searchText) {
216
- this._autoCompleteController.updateSearchText(this.items, searchText, this.minimumPrefixLength, this.searchMode, this.displayMemberPath);
265
+ this._searchText = searchText;
266
+ this.scheduleFilterExecution();
217
267
  }
218
268
  /**
219
269
  * @public
@@ -243,6 +293,149 @@ export const AutoCompleteable = (base) => {
243
293
  onPopulated(args) {
244
294
  this._populated.emit(args);
245
295
  }
296
+ // #endregion
297
+ // #region Helpers
298
+ refreshFilter() {
299
+ if (!this._searchText && this.minimumPrefixLength > 0) {
300
+ this.cancelPendingRequest(true);
301
+ if (this._itemsProvider) {
302
+ this._items = [];
303
+ this.requestUpdate('items');
304
+ }
305
+ this.onFilterCallback([]);
306
+ const populatedDetail = {
307
+ searchText: this._searchText,
308
+ items: [],
309
+ requestId: 0
310
+ };
311
+ this.onPopulated(populatedDetail);
312
+ return;
313
+ }
314
+ this.scheduleFilterExecution();
315
+ }
316
+ scheduleFilterExecution() {
317
+ this.clearPopulateTimeout();
318
+ if (this.minimumPopulateDelay <= 0) {
319
+ this.executeFilter();
320
+ return;
321
+ }
322
+ this._populateTimeoutHandle = window.setTimeout(() => {
323
+ this._populateTimeoutHandle = null;
324
+ this.executeFilter();
325
+ }, this.minimumPopulateDelay);
326
+ }
327
+ executeFilter() {
328
+ this.cancelPendingRequest(false);
329
+ const searchText = this._searchText;
330
+ const requestId = this.createPopulateRequestId();
331
+ const abortController = new AbortController();
332
+ this._activePopulateRequestId = requestId;
333
+ this._activePopulateAbortController = abortController;
334
+ this.isPopulating = true;
335
+ const populatingDetail = {
336
+ searchText,
337
+ requestId,
338
+ signal: abortController.signal
339
+ };
340
+ this.onPopulating(populatingDetail);
341
+ if (this._itemsProvider) {
342
+ if (searchText.length < this.minimumPrefixLength) {
343
+ this.completePopulate(requestId, searchText, [], true);
344
+ return;
345
+ }
346
+ this.onFilterCallback([]);
347
+ this.consumeItemsFromProvider(requestId, searchText, abortController, this._itemsProvider);
348
+ return;
349
+ }
350
+ this.completePopulate(requestId, searchText, this.items, false);
351
+ }
352
+ clearPopulateTimeout() {
353
+ if (this._populateTimeoutHandle !== null) {
354
+ window.clearTimeout(this._populateTimeoutHandle);
355
+ this._populateTimeoutHandle = null;
356
+ }
357
+ }
358
+ disconnectedCallback() {
359
+ this.clearPopulateTimeout();
360
+ this.cancelPendingRequest(true);
361
+ super.disconnectedCallback();
362
+ }
363
+ cancelPendingRequest(resetPopulating) {
364
+ if (this._activePopulateAbortController !== null) {
365
+ this._activePopulateAbortController.abort();
366
+ this._activePopulateAbortController = null;
367
+ }
368
+ this._activePopulateRequestId = 0;
369
+ if (resetPopulating) {
370
+ this.isPopulating = false;
371
+ }
372
+ }
373
+ createPopulateRequestId() {
374
+ this._populateRequestIdCounter += 1;
375
+ return this._populateRequestIdCounter;
376
+ }
377
+ consumeItemsFromProvider(requestId, searchText, abortController, provider) {
378
+ try {
379
+ const result = provider({
380
+ requestId,
381
+ searchText,
382
+ signal: abortController.signal
383
+ });
384
+ if (isPromiseLike(result)) {
385
+ result
386
+ .then((items) => {
387
+ if (abortController.signal.aborted) {
388
+ return;
389
+ }
390
+ this.completePopulate(requestId, searchText, Array.isArray(items) ? items : [], true);
391
+ })
392
+ .catch((error) => {
393
+ if (abortController.signal.aborted) {
394
+ return;
395
+ }
396
+ this.handlePopulateError(requestId, searchText, error);
397
+ });
398
+ return;
399
+ }
400
+ this.completePopulate(requestId, searchText, Array.isArray(result) ? result : [], true);
401
+ }
402
+ catch (error) {
403
+ if (!abortController.signal.aborted) {
404
+ this.handlePopulateError(requestId, searchText, error);
405
+ }
406
+ }
407
+ }
408
+ handlePopulateError(requestId, searchText, _error) {
409
+ this.completePopulate(requestId, searchText, [], true);
410
+ }
411
+ completePopulate(requestId, searchText, items, shouldStoreItems) {
412
+ if (!this.isRequestActive(requestId)) {
413
+ return;
414
+ }
415
+ if (shouldStoreItems) {
416
+ this._items = items;
417
+ this.requestUpdate('items');
418
+ }
419
+ const sourceItems = shouldStoreItems ? items : this.items;
420
+ this._autoCompleteController.updateSearchText(sourceItems, searchText, this.minimumPrefixLength, this.searchMode, this.displayMemberPath);
421
+ const populatedDetail = {
422
+ searchText,
423
+ items: [...this.filteredItems],
424
+ requestId
425
+ };
426
+ this.onPopulated(populatedDetail);
427
+ this.isPopulating = false;
428
+ this.clearActiveRequest(requestId);
429
+ }
430
+ isRequestActive(requestId) {
431
+ return requestId !== 0 && this._activePopulateRequestId === requestId;
432
+ }
433
+ clearActiveRequest(requestId) {
434
+ if (this._activePopulateRequestId === requestId) {
435
+ this._activePopulateRequestId = 0;
436
+ this._activePopulateAbortController = null;
437
+ }
438
+ }
246
439
  }
247
440
  __decorate([
248
441
  Attribute({ type: Number }),
@@ -279,6 +472,16 @@ export const AutoCompleteable = (base) => {
279
472
  __metadata("design:type", Array),
280
473
  __metadata("design:paramtypes", [Array])
281
474
  ], AutoCompleteableElement.prototype, "filteredItems", null);
475
+ __decorate([
476
+ Property({ type: Function }),
477
+ __metadata("design:type", Object),
478
+ __metadata("design:paramtypes", [Object])
479
+ ], AutoCompleteableElement.prototype, "itemsProvider", null);
480
+ __decorate([
481
+ Property({ type: Boolean }),
482
+ __metadata("design:type", Boolean),
483
+ __metadata("design:paramtypes", [Boolean])
484
+ ], AutoCompleteableElement.prototype, "isPopulating", null);
282
485
  __decorate([
283
486
  Emit({ eventName: 'populating' }),
284
487
  __metadata("design:type", Object),
@@ -291,4 +494,10 @@ export const AutoCompleteable = (base) => {
291
494
  ], AutoCompleteableElement.prototype, "populated", null);
292
495
  return AutoCompleteableElement;
293
496
  };
497
+ function isPromiseLike(value) {
498
+ if (value === null || value === undefined) {
499
+ return false;
500
+ }
501
+ return typeof value.then === 'function';
502
+ }
294
503
  //# sourceMappingURL=AutoCompleteable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteable.js","sourceRoot":"","sources":["../../../src/Controls/Behaviors/AutoCompleteable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoCompleteable.js","sourceRoot":"","sources":["../../../src/Controls/Behaviors/AutoCompleteable.ts"],"names":[],"mappings":"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"}