@skyux/lookup 5.6.0 → 5.7.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/bundles/skyux-lookup.umd.js +30 -44
- package/documentation.json +527 -645
- package/esm2015/lib/modules/autocomplete/autocomplete-adapter.service.js +0 -1
- package/esm2015/lib/modules/autocomplete/autocomplete-adapter.service.js.map +1 -1
- package/esm2015/lib/modules/autocomplete/autocomplete-input.directive.js +4 -3
- package/esm2015/lib/modules/autocomplete/autocomplete-input.directive.js.map +1 -1
- package/esm2015/lib/modules/autocomplete/autocomplete.component.js +11 -3
- package/esm2015/lib/modules/autocomplete/autocomplete.component.js.map +1 -1
- package/esm2015/lib/modules/country-field/country-field.component.js +2 -2
- package/esm2015/lib/modules/country-field/country-field.component.js.map +1 -1
- package/esm2015/lib/modules/lookup/lookup-autocomplete-adapter.js +7 -1
- package/esm2015/lib/modules/lookup/lookup-autocomplete-adapter.js.map +1 -1
- package/esm2015/lib/modules/lookup/lookup.component.js +5 -4
- package/esm2015/lib/modules/lookup/lookup.component.js.map +1 -1
- package/esm2015/lib/modules/shared/sky-lookup-resources.module.js +1 -1
- package/esm2015/lib/modules/shared/sky-lookup-resources.module.js.map +1 -1
- package/fesm2015/skyux-lookup.js +30 -44
- package/fesm2015/skyux-lookup.js.map +1 -1
- package/lib/modules/autocomplete/autocomplete-adapter.service.d.ts +0 -1
- package/lib/modules/autocomplete/autocomplete.component.d.ts +8 -2
- package/lib/modules/country-field/country-field.component.d.ts +3 -3
- package/lib/modules/lookup/lookup-autocomplete-adapter.d.ts +7 -1
- package/lib/modules/shared/sky-lookup-resources.module.d.ts +1 -1
- package/package.json +21 -18
- package/esm2015/lib/polyfills.js +0 -30
- package/esm2015/lib/polyfills.js.map +0 -1
- package/lib/polyfills.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-autocomplete-adapter.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-autocomplete-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,EACN,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oCAAoC,EAAE,MAAM,sDAAsD,CAAC;;AAK5G;;GAEG;AAEH,MAAM,OAAO,4BAA4B;IADzC;
|
|
1
|
+
{"version":3,"file":"lookup-autocomplete-adapter.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-autocomplete-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,EACN,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oCAAoC,EAAE,MAAM,sDAAsD,CAAC;;AAK5G;;GAEG;AAEH,MAAM,OAAO,4BAA4B;IADzC;QA8FE;;;WAGG;QAEI,gBAAW,GAAG,IAAI,YAAY,EAAkC,CAAC;KAKzE;IA9FC;;;;OAIG;IACH,IACW,kBAAkB,CAAC,KAAa;QACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,IACW,kBAAkB,CAAC,KAAe;QAC3C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACH,IACW,MAAM,CAAC,KAAoC;QACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,CACL,IAAI,CAAC,OAAO;YACZ,oCAAoC,CAAC;gBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CACH,CAAC;IACJ,CAAC;;0HAzDU,4BAA4B;8GAA5B,4BAA4B;4FAA5B,4BAA4B;kBADxC,SAAS;8BAQD,YAAY;sBADlB,KAAK;gBASK,kBAAkB;sBAD5B,KAAK;gBAcK,kBAAkB;sBAD5B,KAAK;gBAkBK,MAAM;sBADhB,KAAK;gBAqBC,oBAAoB;sBAD1B,KAAK;gBAUC,2BAA2B;sBADjC,KAAK;gBAWC,aAAa;sBADnB,KAAK;gBAQC,kBAAkB;sBADxB,KAAK;gBAQC,WAAW;sBADjB,MAAM","sourcesContent":["import {\n Directive,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\n\nimport { skyAutocompleteDefaultSearchFunction } from '../autocomplete/autocomplete-default-search-function';\nimport { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';\nimport { SkyAutocompleteSearchFunction } from '../autocomplete/types/autocomplete-search-function';\nimport { SkyAutocompleteSearchFunctionFilter } from '../autocomplete/types/autocomplete-search-function-filter';\n\n/**\n * @internal\n */\n@Directive()\nexport class SkyLookupAutocompleteAdapter {\n /**\n * Specifies how many milliseconds to wait before searching while users\n * enter text in the lookup field.\n * @default 0\n */\n @Input()\n public debounceTime: number;\n\n /**\n * Specifies an object property to display in the text input after users\n * select an item in the dropdown list.\n * @default \"name\"\n */\n @Input()\n public set descriptorProperty(value: string) {\n this._descriptorProperty = value;\n }\n\n public get descriptorProperty(): string {\n return this._descriptorProperty || 'name';\n }\n\n /**\n * Specifies an array of object properties to search.\n * @default [\"name\"]\n */\n @Input()\n public set propertiesToSearch(value: string[]) {\n this._propertiesToSearch = value;\n }\n\n public get propertiesToSearch(): string[] {\n return this._propertiesToSearch || ['name'];\n }\n\n /**\n * Specifies a function to dynamically manage the data source when users\n * change the text in the lookup field. The search function must return\n * an array or a promise of an array. The `search` property is particularly\n * useful when the data source does not live in the source code. If the\n * search requires calling a remote data source, use `searchAsync` instead of\n * `search`.\n */\n @Input()\n public set search(value: SkyAutocompleteSearchFunction) {\n this._search = value;\n }\n\n public get search(): SkyAutocompleteSearchFunction {\n return (\n this._search ||\n skyAutocompleteDefaultSearchFunction({\n propertiesToSearch: this.propertiesToSearch,\n searchFilters: this.searchFilters,\n })\n );\n }\n\n /**\n * Specifies a template to format each option in the dropdown list. The lookup component\n * injects values into the template as `item` variables that reference all the object\n * properties of the options.\n */\n @Input()\n public searchResultTemplate: TemplateRef<any>;\n\n /**\n * Specifies the minimum number of characters that users must enter before\n * the lookup component searches the data source and displays search results\n * in the dropdown list.\n * @default 1\n */\n @Input()\n public searchTextMinimumCharacters: number;\n\n /**\n * Specifies an array of functions to call against each search result in order\n * to filter the search results when using the default search function. When\n * using a custom search function via the `search` property filters must be\n * applied manually inside that function. The function must return `true` or\n * `false` for each result to indicate whether to display it in the dropdown list.\n */\n @Input()\n public searchFilters: SkyAutocompleteSearchFunctionFilter[];\n\n /**\n * Specifies the maximum number of search results to display in the dropdown\n * list. By default, the lookup component displays all matching results.\n */\n @Input()\n public searchResultsLimit: number;\n\n /**\n * Fires when users enter new search information and allows results to be\n * returned via an observable.\n */\n @Output()\n public searchAsync = new EventEmitter<SkyAutocompleteSearchAsyncArgs>();\n\n private _descriptorProperty: string;\n private _propertiesToSearch: string[];\n private _search: SkyAutocompleteSearchFunction;\n}\n"]}
|
|
@@ -62,9 +62,9 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
|
|
|
62
62
|
this.idle = new Subject();
|
|
63
63
|
this.markForTokenFocusOnKeyUp = false;
|
|
64
64
|
// Angular automatically constructs these methods.
|
|
65
|
-
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
66
66
|
this.onChange = (value) => { };
|
|
67
|
-
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
68
68
|
this.onTouched = () => { };
|
|
69
69
|
ngControl.valueAccessor = this;
|
|
70
70
|
}
|
|
@@ -323,8 +323,9 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
|
|
|
323
323
|
let isValueInTextBox = false;
|
|
324
324
|
if (this.selectMode === 'single') {
|
|
325
325
|
isValueInTextBox =
|
|
326
|
-
this.autocompleteInputDirective.
|
|
327
|
-
this.autocompleteInputDirective.
|
|
326
|
+
this.autocompleteInputDirective.value &&
|
|
327
|
+
this.autocompleteInputDirective.inputTextValue ===
|
|
328
|
+
this.autocompleteInputDirective.value[this.descriptorProperty];
|
|
328
329
|
}
|
|
329
330
|
this.openPicker(isValueInTextBox ? '' : this.autocompleteInputDirective.inputTextValue);
|
|
330
331
|
this.autocompleteInputDirective.restoreInputTextValueToPreviousState();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyToken,\n SkyTokensMessage,\n SkyTokensMessageType,\n} from '@skyux/indicators';\nimport { SkyModalInstance, SkyModalService } from '@skyux/modals';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';\nimport { SkyAutocompleteMessage } from '../autocomplete/types/autocomplete-message';\nimport { SkyAutocompleteMessageType } from '../autocomplete/types/autocomplete-message-type';\nimport { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';\nimport { SkyAutocompleteSelectionChange } from '../autocomplete/types/autocomplete-selection-change';\nimport { SkyAutocompleteShowMoreArgs } from '../autocomplete/types/autocomplete-show-more-args';\n\nimport { SkyLookupAdapterService } from './lookup-adapter.service';\nimport { SkyLookupAutocompleteAdapter } from './lookup-autocomplete-adapter';\nimport { SkyLookupShowMoreAsyncModalComponent } from './lookup-show-more-async-modal.component';\nimport { SkyLookupShowMoreModalComponent } from './lookup-show-more-modal.component';\nimport { SkyLookupAddCallbackArgs } from './types/lookup-add-click-callback-args';\nimport { SkyLookupAddClickEventArgs } from './types/lookup-add-click-event-args';\nimport { SkyLookupSelectModeType } from './types/lookup-select-mode-type';\nimport { SkyLookupShowMoreConfig } from './types/lookup-show-more-config';\nimport { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';\nimport { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';\n\n@Component({\n selector: 'sky-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [SkyLookupAdapterService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupComponent\n extends SkyLookupAutocompleteAdapter\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Specifies an ARIA label for the typeahead search input\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input includes a visible label, use `ariaLabelledBy` instead.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the typeahead search input. This sets the input's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input does not include a visible label, use `ariaLabel` instead.\n */\n @Input()\n public ariaLabelledBy: string;\n\n /**\n * Specifies the value for the `autocomplete` attribute on the form input.\n * @default \"off\"\n */\n @Input()\n public autocompleteAttribute: string;\n\n /**\n * Specifies a data source for the lookup component to search when users\n * enter text. You can specify static data such as an array of objects, or\n * you can pull data from a database.\n * @default []\n */\n @Input()\n public set data(value: any[]) {\n this._data = value;\n\n if (this.openNativePicker && this.searchAsync.observers.length === 0) {\n this.openNativePicker.componentInstance.updateItemData(value);\n }\n }\n\n public get data(): any[] {\n return this._data;\n }\n\n /**\n * Indicates whether to disable the lookup field.\n */\n @Input()\n public disabled = false;\n\n /**\n * Indicates whether to enable users to open a picker where they can view all options.\n */\n @Input()\n public enableShowMore = false;\n\n /**\n * Specifies placeholder text to display in the lookup field.\n */\n @Input()\n public placeholderText: string;\n\n /**\n * Specifies an object property that represents the object's unique identifier.\n * Specifying this property enables token animations and more efficient rendering.\n */\n @Input()\n public idProperty: string;\n\n /**\n * Indicates whether to display a button that lets users add options to the list.\n */\n @Input()\n public showAddButton = false;\n\n /**\n * Specifies configuration options for the picker that displays all options.\n */\n @Input()\n public showMoreConfig: SkyLookupShowMoreConfig;\n\n /**\n * Specifies whether users can select one option or multiple options.\n * @default \"mulitple\"\n */\n @Input()\n public set selectMode(value: SkyLookupSelectModeType) {\n const multipleToSingle: boolean =\n value === 'single' && this.selectMode === 'multiple';\n\n this._selectMode = value;\n this.updateForSelectMode();\n\n if (multipleToSingle) {\n if (this.value && this.value.length > 1) {\n // The `setTimeout` is needed to avoid a `ExpressionChangedAfterItHasBeenCheckedError` error in template forms.\n setTimeout(() => {\n this.writeValue([this.value[0]]);\n this.changeDetector.detectChanges();\n });\n }\n }\n }\n\n public get selectMode(): SkyLookupSelectModeType {\n return this._selectMode || 'multiple';\n }\n\n /**\n * @internal\n */\n @Input()\n public wrapperClass?: string;\n\n /**\n * Fires when users select the button to add options to the list.\n */\n @Output()\n public addClick: EventEmitter<SkyLookupAddClickEventArgs> = new EventEmitter();\n\n public get tokens(): SkyToken[] {\n return this._tokens;\n }\n\n public set tokens(value: SkyToken[]) {\n // Collapse the tokens into a single token if the user has selected many options.\n if (this.enableShowMore && this.value.length > 5) {\n this.resourcesService\n .getString('skyux_lookup_tokens_summary', this.value.length.toString())\n .pipe(take(1))\n .subscribe((label) => {\n this._tokens = [\n {\n value: { [this.descriptorProperty]: label },\n },\n ];\n this.changeDetector.markForCheck();\n });\n } else {\n this._tokens = value;\n this.changeDetector.markForCheck();\n }\n }\n\n public get value(): any[] {\n return this._value ? this._value : [];\n }\n\n public set value(newValue: any[]) {\n this._value = newValue;\n\n if (!this.openNativePicker) {\n this.tokens = this.parseTokens(newValue);\n }\n\n this.onChange(this._value);\n this.onTouched();\n }\n\n public autocompleteController = new Subject<SkyAutocompleteMessage>();\n public isInputFocused = false;\n public tokensController = new Subject<SkyTokensMessage>();\n\n @ViewChild(SkyAutocompleteInputDirective, {\n read: SkyAutocompleteInputDirective,\n static: false,\n })\n private set autocompleteInputDirective(value: SkyAutocompleteInputDirective) {\n this._autocompleteInputDirective = value;\n this.updateForSelectMode();\n }\n\n private get autocompleteInputDirective(): SkyAutocompleteInputDirective {\n return this._autocompleteInputDirective;\n }\n\n @ViewChild('showMoreButtonTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private showMoreButtonTemplateRef: TemplateRef<any>;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<any>;\n\n @ViewChild('lookupWrapper', {\n read: ElementRef,\n })\n private lookupWrapperRef: ElementRef;\n\n @ViewChild('searchIconTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private searchIconTemplateRef: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject();\n private idle = new Subject();\n private markForTokenFocusOnKeyUp = false;\n private openNativePicker: SkyModalInstance;\n\n private _autocompleteInputDirective: SkyAutocompleteInputDirective;\n private _data: any[];\n private _selectMode: SkyLookupSelectModeType;\n private _tokens: SkyToken[];\n private _value: any[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n @Self() @Optional() ngControl: NgControl,\n private adapter: SkyLookupAdapterService,\n private modalService: SkyModalService,\n private resourcesService: SkyLibResourcesService,\n @Optional() public inputBoxHostSvc?: SkyInputBoxHostService,\n @Optional() public themeSvc?: SkyThemeService\n ) {\n super();\n ngControl.valueAccessor = this;\n }\n\n public ngOnInit(): void {\n if (this.inputBoxHostSvc) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsTemplate: this.enableShowMore\n ? this.showMoreButtonTemplateRef\n : undefined,\n iconsInsetTemplate: this.enableShowMore\n ? undefined\n : this.searchIconTemplateRef,\n });\n }\n\n /* istanbul ignore else */\n if (this.themeSvc) {\n // This is required for the autocomplete directive to be set after elements\n // are rearranged when switching themes.\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n if (!this.disabled) {\n this.addEventListeners();\n }\n }\n\n public ngOnDestroy(): void {\n this.removeEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.tokensController.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.emit({\n itemAdded: (args: SkyLookupAddCallbackArgs) =>\n this.onAddButtonComplete(args),\n });\n }\n\n public onAutocompleteSelectionChange(\n change: SkyAutocompleteSelectionChange\n ): void {\n /* istanbul ignore else */\n if (change.selectedItem) {\n this.addToSelected(change.selectedItem);\n } else if (this.selectMode === 'single') {\n this.writeValue([]);\n }\n }\n\n public onAutocompleteBlur(): void {\n this.onTouched();\n }\n\n public onTokensChange(change: SkyToken[]): void {\n if (!change) {\n return;\n }\n\n if (this.tokens !== change) {\n if (change.length === 0) {\n this.focusInput();\n }\n\n // NOTE: We do this here instead of just using the `value` setter because we need to use the\n // set of tokens returned here for the purposes of setting focus (see `onTokensKeyUp`).\n this._value = change.map((token) => {\n return token.value;\n });\n this.tokens = change;\n\n this.sendAutocompleteMessage(\n SkyAutocompleteMessageType.RepositionDropdown\n );\n this.onChange(this._value);\n this.onTouched();\n }\n }\n\n public onTokensFocusIndexOverRange(): void {\n this.windowRef.nativeWindow.setTimeout(() => {\n this.focusInput();\n });\n }\n\n public onTokensKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n /* tslint:disable-next-line:switch-default */\n switch (event.key) {\n case 'Backspace':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.sendTokensMessage(SkyTokensMessageType.FocusPreviousToken);\n event.preventDefault();\n break;\n\n case 'Del':\n case 'Delete':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.windowRef.nativeWindow.setTimeout(() => {\n this.sendTokensMessage(SkyTokensMessageType.FocusActiveToken);\n });\n event.preventDefault();\n break;\n }\n }\n }\n\n public writeValue(value: any[]): void {\n this.value = value ? value : [];\n this.updateForSelectMode();\n }\n\n // Angular automatically constructs these methods.\n /* istanbul ignore next */\n public onChange = (value: any[]) => {};\n /* istanbul ignore next */\n public onTouched = () => {};\n\n public registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Allows Angular to disable the input.\n public setDisabledState(disabled: boolean): void {\n this.removeEventListeners();\n\n if (!disabled) {\n this.addEventListeners();\n }\n\n this.disabled = disabled;\n this.changeDetector.markForCheck();\n }\n\n public clearSearchText(): void {\n this.autocompleteInputDirective.value = undefined;\n this.autocompleteInputDirective.inputTextValue = undefined;\n }\n\n // Handles when to focus on the tokens.\n // Check for empty search text on keydown, before the escape key is fully pressed.\n // (Otherwise, a single character being escaped would register as empty on keyup.)\n // If empty on keydown, set a flag so that the appropriate action can be taken on keyup.\n public inputKeydown(event: KeyboardEvent, value: string): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n if (value) {\n this.markForTokenFocusOnKeyUp = false;\n } else {\n this.markForTokenFocusOnKeyUp = true;\n }\n break;\n default:\n }\n }\n }\n\n public inputKeyup(event: KeyboardEvent): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Esc':\n case 'Escape':\n this.clearSearchText();\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n /* istanbul ignore else */\n if (this.markForTokenFocusOnKeyUp) {\n this.sendTokensMessage(SkyTokensMessageType.FocusLastToken);\n event.preventDefault();\n }\n break;\n default:\n }\n\n event.stopPropagation();\n }\n }\n\n public onSearchButtonClick(): void {\n /*istanbul ignore next*/\n if (this.disabled) {\n return;\n }\n this.sendAutocompleteMessage(SkyAutocompleteMessageType.CloseDropdown);\n let isValueInTextBox = false;\n if (this.selectMode === 'single') {\n isValueInTextBox =\n this.autocompleteInputDirective.inputTextValue ===\n this.autocompleteInputDirective.value[this.descriptorProperty];\n }\n\n this.openPicker(\n isValueInTextBox ? '' : this.autocompleteInputDirective.inputTextValue\n );\n this.autocompleteInputDirective.restoreInputTextValueToPreviousState();\n }\n\n public onShowMoreClick(event: SkyAutocompleteShowMoreArgs): void {\n /* Sanity check */\n /* istanbul ignore else*/\n if (event) {\n this.openPicker(event.inputValue);\n }\n }\n\n private createNativePickerInstance(initialSearch: string): SkyModalInstance {\n const initialValue = this.value;\n const modalConfig = this.showMoreConfig?.nativePickerConfig || {};\n\n if (!modalConfig.itemTemplate) {\n modalConfig.itemTemplate = this.searchResultTemplate;\n }\n\n let contextProviderType:\n | typeof SkyLookupShowMoreNativePickerContext\n | typeof SkyLookupShowMoreNativePickerAsyncContext;\n\n let contextProviderValue:\n | SkyLookupShowMoreNativePickerContext\n | SkyLookupShowMoreNativePickerAsyncContext;\n\n let modalComponentType:\n | typeof SkyLookupShowMoreModalComponent\n | typeof SkyLookupShowMoreAsyncModalComponent;\n\n if (this.searchAsync.observers.length > 0) {\n contextProviderType = SkyLookupShowMoreNativePickerAsyncContext;\n modalComponentType = SkyLookupShowMoreAsyncModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerAsyncContext();\n contextProviderValue.idProperty = this.idProperty;\n contextProviderValue.searchAsync = (args) => {\n this.searchAsync.emit(args);\n return args.result;\n };\n } else {\n contextProviderType = SkyLookupShowMoreNativePickerContext;\n modalComponentType = SkyLookupShowMoreModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerContext();\n contextProviderValue.items = this.data;\n contextProviderValue.search = this.search;\n }\n\n contextProviderValue.descriptorProperty = this.descriptorProperty;\n contextProviderValue.initialSearch = initialSearch;\n contextProviderValue.initialValue = initialValue;\n contextProviderValue.selectMode = this.selectMode;\n contextProviderValue.showAddButton = this.showAddButton;\n contextProviderValue.userConfig = modalConfig;\n\n return this.modalService.open(modalComponentType, {\n providers: [\n {\n provide: contextProviderType,\n useValue: contextProviderValue,\n },\n ],\n wrapperClass: this.wrapperClass,\n });\n }\n\n public openPicker(initialSearch: string): void {\n if (this.showMoreConfig?.customPicker) {\n this.showMoreConfig.customPicker.open({\n items: this.data,\n initialSearch: initialSearch,\n initialValue: this.value,\n });\n } else {\n const initialValue = this.value;\n\n this.openNativePicker = this.createNativePickerInstance(initialSearch);\n\n this.openNativePicker.componentInstance.addClick.subscribe(() => {\n this.addButtonClicked();\n });\n\n this.openNativePicker.closed.subscribe((closeArgs) => {\n this.openNativePicker = undefined;\n if (closeArgs.reason === 'save') {\n let selectedItems: any[] = [];\n\n if (this.searchAsync.observers.length > 0) {\n selectedItems = closeArgs.data.map((item) => item.itemData);\n } else {\n this.data.forEach((item: any, dataIndex: number) => {\n if (\n closeArgs.data.some((savedItem: any) => {\n return savedItem.index === dataIndex;\n })\n ) {\n selectedItems.push(item);\n }\n });\n }\n\n this.writeValue(selectedItems);\n } else {\n this.writeValue(initialValue);\n }\n\n this.focusInput();\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public onSearchAsync(args: SkyAutocompleteSearchAsyncArgs): void {\n this.searchAsync.emit(args);\n }\n\n private addToSelected(item: any): void {\n let selectedItems: any[];\n\n if (this.selectMode === 'single') {\n selectedItems = [item];\n } else {\n selectedItems = this.value;\n\n // If items have a unique identifier, don't allow the same item to be added twice.\n if (\n !this.idProperty ||\n !this.value.some(\n (existingItem) =>\n existingItem[this.idProperty] === item[this.idProperty]\n )\n ) {\n selectedItems.push(item);\n }\n\n this.clearSearchText();\n }\n\n this.writeValue(selectedItems);\n }\n\n private addEventListeners(): void {\n this.idle = new Subject();\n this.focusInputOnHostClick();\n }\n\n private removeEventListeners(): void {\n this.idle.next();\n this.idle.complete();\n }\n\n private focusInputOnHostClick(): void {\n let hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n const documentObj = this.windowRef.nativeWindow.document;\n\n // Handles focusing the input when the host is clicked.\n // The input should NOT be focused if other elements (tokens, etc.)\n // are currently focused or being tabbed through.\n\n observableFromEvent(documentObj, 'mousedown')\n .pipe(takeUntil(this.idle))\n .subscribe((event: MouseEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(documentObj, 'focusin')\n .pipe(takeUntil(this.idle))\n .subscribe((event: KeyboardEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(hostElement, 'mouseup')\n .pipe(takeUntil(this.idle))\n .subscribe(() => {\n const classList = documentObj.activeElement.classList;\n if (!classList || !classList.contains('sky-token')) {\n this.focusInput();\n }\n });\n }\n\n private focusInput(): void {\n this.adapter.focusInput(this.lookupWrapperRef);\n }\n\n private onAddButtonComplete(args: SkyLookupAddCallbackArgs) {\n if (args.data) {\n this.data = args.data;\n }\n\n if (this.data.indexOf(args.item) >= 0) {\n if (this.openNativePicker) {\n (\n this.openNativePicker\n .componentInstance as SkyLookupShowMoreModalComponent\n ).onItemSelect(true, { value: args.item, selected: false });\n } else {\n let newValue = this.value;\n if (this.selectMode === 'multiple') {\n newValue = this.value.concat(args.item);\n } else {\n newValue = [args.item];\n }\n this.writeValue(newValue);\n }\n }\n }\n\n private parseTokens(data: any[]): SkyToken[] {\n return data.map((item: any) => {\n return {\n value: item,\n };\n });\n }\n\n private sendAutocompleteMessage(type: SkyAutocompleteMessageType): void {\n this.autocompleteController.next({ type });\n }\n\n private sendTokensMessage(type: SkyTokensMessageType): void {\n this.tokensController.next({ type });\n }\n\n private updateForSelectMode(): void {\n if (this.autocompleteInputDirective) {\n if (this.selectMode === 'single') {\n this.autocompleteInputDirective.value = this.value && this.value[0];\n } else {\n this.clearSearchText();\n }\n }\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <div\n class=\"sky-lookup\"\n [ngClass]=\"{\n 'sky-lookup-focused': isInputFocused,\n 'sky-lookup-disabled': disabled,\n 'sky-lookup-single': selectMode === 'single'\n }\"\n #lookupWrapper\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [data]=\"data\"\n [debounceTime]=\"debounceTime\"\n [descriptorProperty]=\"descriptorProperty\"\n [enableShowMore]=\"enableShowMore\"\n [messageStream]=\"autocompleteController\"\n [propertiesToSearch]=\"propertiesToSearch\"\n [search]=\"search\"\n [searchAsyncDisabled]=\"searchAsync.observers.length === 0\"\n [searchFilters]=\"searchFilters\"\n [searchResultsLimit]=\"searchResultsLimit\"\n [searchResultTemplate]=\"searchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n [showAddButton]=\"showAddButton\"\n [wrapperClass]=\"wrapperClass\"\n (addClick)=\"addButtonClicked()\"\n (searchAsync)=\"onSearchAsync($event)\"\n (selectionChange)=\"onAutocompleteSelectionChange($event)\"\n (showMoreClick)=\"onShowMoreClick($event)\"\n >\n <div class=\"sky-lookup-search-flex-wrapper\">\n <div\n class=\"sky-lookup-search\"\n [ngClass]=\"{\n 'sky-field-status-active': isInputFocused && !disabled\n }\"\n >\n <sky-tokens\n *ngIf=\"selectMode === 'multiple'\"\n class=\"sky-lookup-tokens\"\n [disabled]=\"disabled\"\n [displayWith]=\"descriptorProperty\"\n [focusable]=\"false\"\n [messageStream]=\"tokensController\"\n [trackWith]=\"idProperty\"\n [tokens]=\"tokens\"\n (keyup)=\"onTokensKeyUp($event)\"\n (tokensChange)=\"onTokensChange($event)\"\n (tokenSelected)=\"enableShowMore ? openPicker(undefined) : undefined\"\n (focusIndexOverRange)=\"onTokensFocusIndexOverRange()\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n (keydown)=\"inputKeydown($event, $event.target.value)\"\n (keyup)=\"inputKeyup($event)\"\n ></textarea>\n </sky-tokens>\n <div\n *ngIf=\"selectMode === 'single'\"\n class=\"sky-lookup-single-control\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </div>\n <ng-container *ngIf=\"!inputBoxHostSvc && enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"showMoreButtonTemplateRef\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!inputBoxHostSvc && !enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"searchIconTemplateRef\"\n ></ng-container>\n </ng-container>\n </div>\n </sky-autocomplete>\n </div>\n</ng-template>\n\n<ng-template #showMoreButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n class=\"sky-btn sky-btn-default\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'sky-btn-disabled': disabled }\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_search_button_show_more' | skyLibResources\n \"\n (click)=\"onSearchButtonClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"search\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #searchIconTemplateRef>\n <div\n class=\"sky-input-group-icon sky-input-box-icon-inset\"\n [ngClass]=\"{ 'sky-lookup-disabled': disabled }\"\n >\n <sky-icon\n *skyThemeIf=\"'default'\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n </div>\n</ng-template>\n"]}
|
|
1
|
+
{"version":3,"file":"lookup.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EAGL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAwB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAGL,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAK7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,oCAAoC,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AAKrF,OAAO,EAAE,yCAAyC,EAAE,MAAM,sDAAsD,CAAC;AACjH,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;;;;;;;;;;;;;AAUtG,MAAM,OAAO,kBACX,SAAQ,4BAA4B;IAoNpC,YACU,cAAiC,EACjC,UAAsB,EACtB,SAA0B,EACd,SAAoB,EAChC,OAAgC,EAChC,YAA6B,EAC7B,gBAAwC,EAC7B,eAAwC,EACxC,QAA0B;QAE7C,KAAK,EAAE,CAAC;QAVA,mBAAc,GAAd,cAAc,CAAmB;QACjC,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAiB;QAE1B,YAAO,GAAP,OAAO,CAAyB;QAChC,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,qBAAgB,GAAhB,gBAAgB,CAAwB;QAC7B,oBAAe,GAAf,eAAe,CAAyB;QACxC,aAAQ,GAAR,QAAQ,CAAkB;QA/K/C;;WAEG;QAEI,aAAQ,GAAG,KAAK,CAAC;QAExB;;WAEG;QAEI,mBAAc,GAAG,KAAK,CAAC;QAe9B;;WAEG;QAEI,kBAAa,GAAG,KAAK,CAAC;QAyC7B;;WAEG;QAEI,aAAQ,GAA6C,IAAI,YAAY,EAAE,CAAC;QAyCxE,2BAAsB,GAAG,IAAI,OAAO,EAA0B,CAAC;QAC/D,mBAAc,GAAG,KAAK,CAAC;QACvB,qBAAgB,GAAG,IAAI,OAAO,EAAoB,CAAC;QAsClD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,SAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QACrB,6BAAwB,GAAG,KAAK,CAAC;QA+IzC,kDAAkD;QAClD,gEAAgE;QACzD,aAAQ,GAAG,CAAC,KAAY,EAAE,EAAE,GAAE,CAAC,CAAC;QACvC,gEAAgE;QACzD,cAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QA9H1B,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;IACjC,CAAC;IAtMD;;;;;OAKG;IACH,IACW,IAAI,CAAC,KAAY;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACpE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAuCD;;;OAGG;IACH,IACW,UAAU,CAAC,KAA8B;QAClD,MAAM,gBAAgB,GACpB,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;QAEvD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,gBAAgB,EAAE;YACpB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,+GAA+G;gBAC/G,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBACtC,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;IACxC,CAAC;IAcD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,MAAM,CAAC,KAAiB;QACjC,iFAAiF;QACjF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,IAAI,CAAC,gBAAgB;iBAClB,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;iBACtE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC,OAAO,GAAG;oBACb;wBACE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE;qBAC5C;iBACF,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACpC;IACH,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,IAAW,KAAK,CAAC,QAAe;QAC9B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAMD,IAIY,0BAA0B,CAAC,KAAoC;QACzE,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,IAAY,0BAA0B;QACpC,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC1C,CAAC;IAmDM,QAAQ;QACb,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBAC5B,aAAa,EAAE,IAAI,CAAC,gBAAgB;gBACpC,eAAe,EAAE,IAAI,CAAC,cAAc;oBAClC,CAAC,CAAC,IAAI,CAAC,yBAAyB;oBAChC,CAAC,CAAC,SAAS;gBACb,kBAAkB,EAAE,IAAI,CAAC,cAAc;oBACrC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,CAAC,qBAAqB;aAC/B,CAAC,CAAC;SACJ;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,2EAA2E;YAC3E,wCAAwC;YACxC,IAAI,CAAC,QAAQ,CAAC,cAAc;iBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,CAAC,IAA8B,EAAE,EAAE,CAC5C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAEM,6BAA6B,CAClC,MAAsC;QAEtC,0BAA0B;QAC1B,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YACvC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACrB;IACH,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,cAAc,CAAC,MAAkB;QACtC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,4FAA4F;YAC5F,uFAAuF;YACvF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjC,OAAO,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,uBAAuB,CAC1B,0BAA0B,CAAC,kBAAkB,CAC9C,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAEM,2BAA2B;QAChC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,KAAoB;QACvC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,6CAA6C;YAC7C,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,WAAW;oBACd,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;oBAC/D,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;oBAChE,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBAER,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACX,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;oBAC/D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE;wBAC1C,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;oBACH,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;aACT;SACF;IACH,CAAC;IAEM,UAAU,CAAC,KAAY;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAQM,gBAAgB,CAAC,EAAwB;QAC9C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,iBAAiB,CAAC,EAAc;QACrC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,uCAAuC;IAChC,gBAAgB,CAAC,QAAiB;QACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,SAAS,CAAC;QAClD,IAAI,CAAC,0BAA0B,CAAC,cAAc,GAAG,SAAS,CAAC;IAC7D,CAAC;IAED,uCAAuC;IACvC,kFAAkF;IAClF,kFAAkF;IAClF,wFAAwF;IACjF,YAAY,CAAC,KAAoB,EAAE,KAAa;QACrD,6EAA6E;QAC7E,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,OAAO;oBACV,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,MAAM;oBACT,IAAI,KAAK,EAAE;wBACT,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;qBACvC;yBAAM;wBACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;qBACtC;oBACD,MAAM;gBACR,QAAQ;aACT;SACF;IACH,CAAC;IAEM,UAAU,CAAC,KAAoB;QACpC,6EAA6E;QAC7E,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACX,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,MAAM;oBACT,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,wBAAwB,EAAE;wBACjC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;wBAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;oBACD,MAAM;gBACR,QAAQ;aACT;YAED,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;IAEM,mBAAmB;QACxB,wBAAwB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,uBAAuB,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,gBAAgB;gBACd,IAAI,CAAC,0BAA0B,CAAC,KAAK;oBACrC,IAAI,CAAC,0BAA0B,CAAC,cAAc;wBAC5C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,UAAU,CACb,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,cAAc,CACvE,CAAC;QACF,IAAI,CAAC,0BAA0B,CAAC,oCAAoC,EAAE,CAAC;IACzE,CAAC;IAEM,eAAe,CAAC,KAAkC;QACvD,kBAAkB;QAClB,yBAAyB;QACzB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SACnC;IACH,CAAC;IAEO,0BAA0B,CAAC,aAAqB;;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,WAAW,GAAG,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,KAAI,EAAE,CAAC;QAElE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7B,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;SACtD;QAED,IAAI,mBAEgD,CAAC;QAErD,IAAI,oBAEyC,CAAC;QAE9C,IAAI,kBAE2C,CAAC;QAEhD,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzC,mBAAmB,GAAG,yCAAyC,CAAC;YAChE,kBAAkB,GAAG,oCAAoC,CAAC;YAE1D,oBAAoB,GAAG,IAAI,yCAAyC,EAAE,CAAC;YACvE,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,oBAAoB,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC,CAAC;SACH;aAAM;YACL,mBAAmB,GAAG,oCAAoC,CAAC;YAC3D,kBAAkB,GAAG,+BAA+B,CAAC;YAErD,oBAAoB,GAAG,IAAI,oCAAoC,EAAE,CAAC;YAClE,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YACvC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAC3C;QAED,oBAAoB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClE,oBAAoB,CAAC,aAAa,GAAG,aAAa,CAAC;QACnD,oBAAoB,CAAC,YAAY,GAAG,YAAY,CAAC;QACjD,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,oBAAoB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxD,oBAAoB,CAAC,UAAU,GAAG,WAAW,CAAC;QAE9C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAChD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,mBAAmB;oBAC5B,QAAQ,EAAE,oBAAoB;iBAC/B;aACF;YACD,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,aAAqB;;QACrC,IAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,YAAY,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,aAAa,EAAE,aAAa;gBAC5B,YAAY,EAAE,IAAI,CAAC,KAAK;aACzB,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAEhC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;YAEvE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE;oBAC/B,IAAI,aAAa,GAAU,EAAE,CAAC;oBAE9B,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC7D;yBAAM;wBACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,SAAiB,EAAE,EAAE;4BACjD,IACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAc,EAAE,EAAE;gCACrC,OAAO,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC;4BACvC,CAAC,CAAC,EACF;gCACA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAC1B;wBACH,CAAC,CAAC,CAAC;qBACJ;oBAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAChC;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,aAAa,CAAC,IAAoC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa,CAAC,IAAS;QAC7B,IAAI,aAAoB,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;YAE3B,kFAAkF;YAClF,IACE,CAAC,IAAI,CAAC,UAAU;gBAChB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACd,CAAC,YAAY,EAAE,EAAE,CACf,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAC1D,EACD;gBACA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAEO,qBAAqB;QAC3B,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe;YACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;YAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC;QAEzD,uDAAuD;QACvD,mEAAmE;QACnE,iDAAiD;QAEjD,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;aAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC/B,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEL,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC;aACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,CAAC,KAAoB,EAAE,EAAE;YAClC,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEL,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC;aACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAClD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAEO,mBAAmB,CAAC,IAA8B;QACxD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAEvB,IAAI,CAAC,gBAAgB;qBAClB,iBACJ,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aAC7D;iBAAM;gBACL,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;oBAClC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzC;qBAAM;oBACL,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxB;gBACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC3B;SACF;IACH,CAAC;IAEO,WAAW,CAAC,IAAW;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAC5B,OAAO;gBACL,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,IAAgC;QAC9D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,iBAAiB,CAAC,IAA0B;QAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACnC,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;SACF;IACH,CAAC;;gHArrBU,kBAAkB;oGAAlB,kBAAkB,4bAJlB,CAAC,uBAAuB,CAAC,sFA0KzB,6BAA6B,2BAChC,6BAA6B,iIAa7B,WAAW,6HAMX,WAAW,0HAMX,UAAU,yHAKV,WAAW,kEC/PrB,8gKAgJA;4FDtFa,kBAAkB;kBAR9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;oBACtC,SAAS,EAAE,CAAC,uBAAuB,CAAC;oBACpC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;0BA0NI,IAAI;;0BAAI,QAAQ;;0BAIhB,QAAQ;;0BACR,QAAQ;4CApNJ,SAAS;sBADf,KAAK;gBAUC,cAAc;sBADpB,KAAK;gBAQC,qBAAqB;sBAD3B,KAAK;gBAUK,IAAI;sBADd,KAAK;gBAiBC,QAAQ;sBADd,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAOC,eAAe;sBADrB,KAAK;gBAQC,UAAU;sBADhB,KAAK;gBAOC,aAAa;sBADnB,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAQK,UAAU;sBADpB,KAAK;gBA2BC,YAAY;sBADlB,KAAK;gBAOC,QAAQ;sBADd,MAAM;gBAkDK,0BAA0B;sBAJrC,SAAS;uBAAC,6BAA6B,EAAE;wBACxC,IAAI,EAAE,6BAA6B;wBACnC,MAAM,EAAE,KAAK;qBACd;gBAcO,yBAAyB;sBAJhC,SAAS;uBAAC,2BAA2B,EAAE;wBACtC,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb;gBAOO,gBAAgB;sBAJvB,SAAS;uBAAC,kBAAkB,EAAE;wBAC7B,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb;gBAMO,gBAAgB;sBAHvB,SAAS;uBAAC,eAAe,EAAE;wBAC1B,IAAI,EAAE,UAAU;qBACjB;gBAOO,qBAAqB;sBAJ5B,SAAS;uBAAC,uBAAuB,EAAE;wBAClC,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyToken,\n SkyTokensMessage,\n SkyTokensMessageType,\n} from '@skyux/indicators';\nimport { SkyModalInstance, SkyModalService } from '@skyux/modals';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';\nimport { SkyAutocompleteMessage } from '../autocomplete/types/autocomplete-message';\nimport { SkyAutocompleteMessageType } from '../autocomplete/types/autocomplete-message-type';\nimport { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';\nimport { SkyAutocompleteSelectionChange } from '../autocomplete/types/autocomplete-selection-change';\nimport { SkyAutocompleteShowMoreArgs } from '../autocomplete/types/autocomplete-show-more-args';\n\nimport { SkyLookupAdapterService } from './lookup-adapter.service';\nimport { SkyLookupAutocompleteAdapter } from './lookup-autocomplete-adapter';\nimport { SkyLookupShowMoreAsyncModalComponent } from './lookup-show-more-async-modal.component';\nimport { SkyLookupShowMoreModalComponent } from './lookup-show-more-modal.component';\nimport { SkyLookupAddCallbackArgs } from './types/lookup-add-click-callback-args';\nimport { SkyLookupAddClickEventArgs } from './types/lookup-add-click-event-args';\nimport { SkyLookupSelectModeType } from './types/lookup-select-mode-type';\nimport { SkyLookupShowMoreConfig } from './types/lookup-show-more-config';\nimport { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';\nimport { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';\n\n@Component({\n selector: 'sky-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [SkyLookupAdapterService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupComponent\n extends SkyLookupAutocompleteAdapter\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Specifies an ARIA label for the typeahead search input\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input includes a visible label, use `ariaLabelledBy` instead.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the typeahead search input. This sets the input's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input does not include a visible label, use `ariaLabel` instead.\n */\n @Input()\n public ariaLabelledBy: string;\n\n /**\n * Specifies the value for the `autocomplete` attribute on the form input.\n * @default \"off\"\n */\n @Input()\n public autocompleteAttribute: string;\n\n /**\n * Specifies a data source for the lookup component to search when users\n * enter text. You can specify static data such as an array of objects, or\n * you can pull data from a database.\n * @default []\n */\n @Input()\n public set data(value: any[]) {\n this._data = value;\n\n if (this.openNativePicker && this.searchAsync.observers.length === 0) {\n this.openNativePicker.componentInstance.updateItemData(value);\n }\n }\n\n public get data(): any[] {\n return this._data;\n }\n\n /**\n * Indicates whether to disable the lookup field.\n */\n @Input()\n public disabled = false;\n\n /**\n * Indicates whether to enable users to open a picker where they can view all options.\n */\n @Input()\n public enableShowMore = false;\n\n /**\n * Specifies placeholder text to display in the lookup field.\n */\n @Input()\n public placeholderText: string;\n\n /**\n * Specifies an object property that represents the object's unique identifier.\n * Specifying this property enables token animations and more efficient rendering.\n */\n @Input()\n public idProperty: string;\n\n /**\n * Indicates whether to display a button that lets users add options to the list.\n */\n @Input()\n public showAddButton = false;\n\n /**\n * Specifies configuration options for the picker that displays all options.\n */\n @Input()\n public showMoreConfig: SkyLookupShowMoreConfig;\n\n /**\n * Specifies whether users can select one option or multiple options.\n * @default \"mulitple\"\n */\n @Input()\n public set selectMode(value: SkyLookupSelectModeType) {\n const multipleToSingle: boolean =\n value === 'single' && this.selectMode === 'multiple';\n\n this._selectMode = value;\n this.updateForSelectMode();\n\n if (multipleToSingle) {\n if (this.value && this.value.length > 1) {\n // The `setTimeout` is needed to avoid a `ExpressionChangedAfterItHasBeenCheckedError` error in template forms.\n setTimeout(() => {\n this.writeValue([this.value[0]]);\n this.changeDetector.detectChanges();\n });\n }\n }\n }\n\n public get selectMode(): SkyLookupSelectModeType {\n return this._selectMode || 'multiple';\n }\n\n /**\n * @internal\n */\n @Input()\n public wrapperClass?: string;\n\n /**\n * Fires when users select the button to add options to the list.\n */\n @Output()\n public addClick: EventEmitter<SkyLookupAddClickEventArgs> = new EventEmitter();\n\n public get tokens(): SkyToken[] {\n return this._tokens;\n }\n\n public set tokens(value: SkyToken[]) {\n // Collapse the tokens into a single token if the user has selected many options.\n if (this.enableShowMore && this.value.length > 5) {\n this.resourcesService\n .getString('skyux_lookup_tokens_summary', this.value.length.toString())\n .pipe(take(1))\n .subscribe((label) => {\n this._tokens = [\n {\n value: { [this.descriptorProperty]: label },\n },\n ];\n this.changeDetector.markForCheck();\n });\n } else {\n this._tokens = value;\n this.changeDetector.markForCheck();\n }\n }\n\n public get value(): any[] {\n return this._value ? this._value : [];\n }\n\n public set value(newValue: any[]) {\n this._value = newValue;\n\n if (!this.openNativePicker) {\n this.tokens = this.parseTokens(newValue);\n }\n\n this.onChange(this._value);\n this.onTouched();\n }\n\n public autocompleteController = new Subject<SkyAutocompleteMessage>();\n public isInputFocused = false;\n public tokensController = new Subject<SkyTokensMessage>();\n\n @ViewChild(SkyAutocompleteInputDirective, {\n read: SkyAutocompleteInputDirective,\n static: false,\n })\n private set autocompleteInputDirective(value: SkyAutocompleteInputDirective) {\n this._autocompleteInputDirective = value;\n this.updateForSelectMode();\n }\n\n private get autocompleteInputDirective(): SkyAutocompleteInputDirective {\n return this._autocompleteInputDirective;\n }\n\n @ViewChild('showMoreButtonTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private showMoreButtonTemplateRef: TemplateRef<any>;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<any>;\n\n @ViewChild('lookupWrapper', {\n read: ElementRef,\n })\n private lookupWrapperRef: ElementRef;\n\n @ViewChild('searchIconTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private searchIconTemplateRef: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject();\n private idle = new Subject();\n private markForTokenFocusOnKeyUp = false;\n private openNativePicker: SkyModalInstance;\n\n private _autocompleteInputDirective: SkyAutocompleteInputDirective;\n private _data: any[];\n private _selectMode: SkyLookupSelectModeType;\n private _tokens: SkyToken[];\n private _value: any[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n @Self() @Optional() ngControl: NgControl,\n private adapter: SkyLookupAdapterService,\n private modalService: SkyModalService,\n private resourcesService: SkyLibResourcesService,\n @Optional() public inputBoxHostSvc?: SkyInputBoxHostService,\n @Optional() public themeSvc?: SkyThemeService\n ) {\n super();\n ngControl.valueAccessor = this;\n }\n\n public ngOnInit(): void {\n if (this.inputBoxHostSvc) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsTemplate: this.enableShowMore\n ? this.showMoreButtonTemplateRef\n : undefined,\n iconsInsetTemplate: this.enableShowMore\n ? undefined\n : this.searchIconTemplateRef,\n });\n }\n\n /* istanbul ignore else */\n if (this.themeSvc) {\n // This is required for the autocomplete directive to be set after elements\n // are rearranged when switching themes.\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n if (!this.disabled) {\n this.addEventListeners();\n }\n }\n\n public ngOnDestroy(): void {\n this.removeEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.tokensController.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.emit({\n itemAdded: (args: SkyLookupAddCallbackArgs) =>\n this.onAddButtonComplete(args),\n });\n }\n\n public onAutocompleteSelectionChange(\n change: SkyAutocompleteSelectionChange\n ): void {\n /* istanbul ignore else */\n if (change.selectedItem) {\n this.addToSelected(change.selectedItem);\n } else if (this.selectMode === 'single') {\n this.writeValue([]);\n }\n }\n\n public onAutocompleteBlur(): void {\n this.onTouched();\n }\n\n public onTokensChange(change: SkyToken[]): void {\n if (!change) {\n return;\n }\n\n if (this.tokens !== change) {\n if (change.length === 0) {\n this.focusInput();\n }\n\n // NOTE: We do this here instead of just using the `value` setter because we need to use the\n // set of tokens returned here for the purposes of setting focus (see `onTokensKeyUp`).\n this._value = change.map((token) => {\n return token.value;\n });\n this.tokens = change;\n\n this.sendAutocompleteMessage(\n SkyAutocompleteMessageType.RepositionDropdown\n );\n this.onChange(this._value);\n this.onTouched();\n }\n }\n\n public onTokensFocusIndexOverRange(): void {\n this.windowRef.nativeWindow.setTimeout(() => {\n this.focusInput();\n });\n }\n\n public onTokensKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n /* tslint:disable-next-line:switch-default */\n switch (event.key) {\n case 'Backspace':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.sendTokensMessage(SkyTokensMessageType.FocusPreviousToken);\n event.preventDefault();\n break;\n\n case 'Del':\n case 'Delete':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.windowRef.nativeWindow.setTimeout(() => {\n this.sendTokensMessage(SkyTokensMessageType.FocusActiveToken);\n });\n event.preventDefault();\n break;\n }\n }\n }\n\n public writeValue(value: any[]): void {\n this.value = value ? value : [];\n this.updateForSelectMode();\n }\n\n // Angular automatically constructs these methods.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange = (value: any[]) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onTouched = () => {};\n\n public registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Allows Angular to disable the input.\n public setDisabledState(disabled: boolean): void {\n this.removeEventListeners();\n\n if (!disabled) {\n this.addEventListeners();\n }\n\n this.disabled = disabled;\n this.changeDetector.markForCheck();\n }\n\n public clearSearchText(): void {\n this.autocompleteInputDirective.value = undefined;\n this.autocompleteInputDirective.inputTextValue = undefined;\n }\n\n // Handles when to focus on the tokens.\n // Check for empty search text on keydown, before the escape key is fully pressed.\n // (Otherwise, a single character being escaped would register as empty on keyup.)\n // If empty on keydown, set a flag so that the appropriate action can be taken on keyup.\n public inputKeydown(event: KeyboardEvent, value: string): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n if (value) {\n this.markForTokenFocusOnKeyUp = false;\n } else {\n this.markForTokenFocusOnKeyUp = true;\n }\n break;\n default:\n }\n }\n }\n\n public inputKeyup(event: KeyboardEvent): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Esc':\n case 'Escape':\n this.clearSearchText();\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n /* istanbul ignore else */\n if (this.markForTokenFocusOnKeyUp) {\n this.sendTokensMessage(SkyTokensMessageType.FocusLastToken);\n event.preventDefault();\n }\n break;\n default:\n }\n\n event.stopPropagation();\n }\n }\n\n public onSearchButtonClick(): void {\n /*istanbul ignore next*/\n if (this.disabled) {\n return;\n }\n this.sendAutocompleteMessage(SkyAutocompleteMessageType.CloseDropdown);\n let isValueInTextBox = false;\n if (this.selectMode === 'single') {\n isValueInTextBox =\n this.autocompleteInputDirective.value &&\n this.autocompleteInputDirective.inputTextValue ===\n this.autocompleteInputDirective.value[this.descriptorProperty];\n }\n\n this.openPicker(\n isValueInTextBox ? '' : this.autocompleteInputDirective.inputTextValue\n );\n this.autocompleteInputDirective.restoreInputTextValueToPreviousState();\n }\n\n public onShowMoreClick(event: SkyAutocompleteShowMoreArgs): void {\n /* Sanity check */\n /* istanbul ignore else*/\n if (event) {\n this.openPicker(event.inputValue);\n }\n }\n\n private createNativePickerInstance(initialSearch: string): SkyModalInstance {\n const initialValue = this.value;\n const modalConfig = this.showMoreConfig?.nativePickerConfig || {};\n\n if (!modalConfig.itemTemplate) {\n modalConfig.itemTemplate = this.searchResultTemplate;\n }\n\n let contextProviderType:\n | typeof SkyLookupShowMoreNativePickerContext\n | typeof SkyLookupShowMoreNativePickerAsyncContext;\n\n let contextProviderValue:\n | SkyLookupShowMoreNativePickerContext\n | SkyLookupShowMoreNativePickerAsyncContext;\n\n let modalComponentType:\n | typeof SkyLookupShowMoreModalComponent\n | typeof SkyLookupShowMoreAsyncModalComponent;\n\n if (this.searchAsync.observers.length > 0) {\n contextProviderType = SkyLookupShowMoreNativePickerAsyncContext;\n modalComponentType = SkyLookupShowMoreAsyncModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerAsyncContext();\n contextProviderValue.idProperty = this.idProperty;\n contextProviderValue.searchAsync = (args) => {\n this.searchAsync.emit(args);\n return args.result;\n };\n } else {\n contextProviderType = SkyLookupShowMoreNativePickerContext;\n modalComponentType = SkyLookupShowMoreModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerContext();\n contextProviderValue.items = this.data;\n contextProviderValue.search = this.search;\n }\n\n contextProviderValue.descriptorProperty = this.descriptorProperty;\n contextProviderValue.initialSearch = initialSearch;\n contextProviderValue.initialValue = initialValue;\n contextProviderValue.selectMode = this.selectMode;\n contextProviderValue.showAddButton = this.showAddButton;\n contextProviderValue.userConfig = modalConfig;\n\n return this.modalService.open(modalComponentType, {\n providers: [\n {\n provide: contextProviderType,\n useValue: contextProviderValue,\n },\n ],\n wrapperClass: this.wrapperClass,\n });\n }\n\n public openPicker(initialSearch: string): void {\n if (this.showMoreConfig?.customPicker) {\n this.showMoreConfig.customPicker.open({\n items: this.data,\n initialSearch: initialSearch,\n initialValue: this.value,\n });\n } else {\n const initialValue = this.value;\n\n this.openNativePicker = this.createNativePickerInstance(initialSearch);\n\n this.openNativePicker.componentInstance.addClick.subscribe(() => {\n this.addButtonClicked();\n });\n\n this.openNativePicker.closed.subscribe((closeArgs) => {\n this.openNativePicker = undefined;\n if (closeArgs.reason === 'save') {\n let selectedItems: any[] = [];\n\n if (this.searchAsync.observers.length > 0) {\n selectedItems = closeArgs.data.map((item) => item.itemData);\n } else {\n this.data.forEach((item: any, dataIndex: number) => {\n if (\n closeArgs.data.some((savedItem: any) => {\n return savedItem.index === dataIndex;\n })\n ) {\n selectedItems.push(item);\n }\n });\n }\n\n this.writeValue(selectedItems);\n } else {\n this.writeValue(initialValue);\n }\n\n this.focusInput();\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public onSearchAsync(args: SkyAutocompleteSearchAsyncArgs): void {\n this.searchAsync.emit(args);\n }\n\n private addToSelected(item: any): void {\n let selectedItems: any[];\n\n if (this.selectMode === 'single') {\n selectedItems = [item];\n } else {\n selectedItems = this.value;\n\n // If items have a unique identifier, don't allow the same item to be added twice.\n if (\n !this.idProperty ||\n !this.value.some(\n (existingItem) =>\n existingItem[this.idProperty] === item[this.idProperty]\n )\n ) {\n selectedItems.push(item);\n }\n\n this.clearSearchText();\n }\n\n this.writeValue(selectedItems);\n }\n\n private addEventListeners(): void {\n this.idle = new Subject();\n this.focusInputOnHostClick();\n }\n\n private removeEventListeners(): void {\n this.idle.next();\n this.idle.complete();\n }\n\n private focusInputOnHostClick(): void {\n let hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n const documentObj = this.windowRef.nativeWindow.document;\n\n // Handles focusing the input when the host is clicked.\n // The input should NOT be focused if other elements (tokens, etc.)\n // are currently focused or being tabbed through.\n\n observableFromEvent(documentObj, 'mousedown')\n .pipe(takeUntil(this.idle))\n .subscribe((event: MouseEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(documentObj, 'focusin')\n .pipe(takeUntil(this.idle))\n .subscribe((event: KeyboardEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(hostElement, 'mouseup')\n .pipe(takeUntil(this.idle))\n .subscribe(() => {\n const classList = documentObj.activeElement.classList;\n if (!classList || !classList.contains('sky-token')) {\n this.focusInput();\n }\n });\n }\n\n private focusInput(): void {\n this.adapter.focusInput(this.lookupWrapperRef);\n }\n\n private onAddButtonComplete(args: SkyLookupAddCallbackArgs) {\n if (args.data) {\n this.data = args.data;\n }\n\n if (this.data.indexOf(args.item) >= 0) {\n if (this.openNativePicker) {\n (\n this.openNativePicker\n .componentInstance as SkyLookupShowMoreModalComponent\n ).onItemSelect(true, { value: args.item, selected: false });\n } else {\n let newValue = this.value;\n if (this.selectMode === 'multiple') {\n newValue = this.value.concat(args.item);\n } else {\n newValue = [args.item];\n }\n this.writeValue(newValue);\n }\n }\n }\n\n private parseTokens(data: any[]): SkyToken[] {\n return data.map((item: any) => {\n return {\n value: item,\n };\n });\n }\n\n private sendAutocompleteMessage(type: SkyAutocompleteMessageType): void {\n this.autocompleteController.next({ type });\n }\n\n private sendTokensMessage(type: SkyTokensMessageType): void {\n this.tokensController.next({ type });\n }\n\n private updateForSelectMode(): void {\n if (this.autocompleteInputDirective) {\n if (this.selectMode === 'single') {\n this.autocompleteInputDirective.value = this.value && this.value[0];\n } else {\n this.clearSearchText();\n }\n }\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <div\n class=\"sky-lookup\"\n [ngClass]=\"{\n 'sky-lookup-focused': isInputFocused,\n 'sky-lookup-disabled': disabled,\n 'sky-lookup-single': selectMode === 'single'\n }\"\n #lookupWrapper\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [data]=\"data\"\n [debounceTime]=\"debounceTime\"\n [descriptorProperty]=\"descriptorProperty\"\n [enableShowMore]=\"enableShowMore\"\n [messageStream]=\"autocompleteController\"\n [propertiesToSearch]=\"propertiesToSearch\"\n [search]=\"search\"\n [searchAsyncDisabled]=\"searchAsync.observers.length === 0\"\n [searchFilters]=\"searchFilters\"\n [searchResultsLimit]=\"searchResultsLimit\"\n [searchResultTemplate]=\"searchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n [showAddButton]=\"showAddButton\"\n [wrapperClass]=\"wrapperClass\"\n (addClick)=\"addButtonClicked()\"\n (searchAsync)=\"onSearchAsync($event)\"\n (selectionChange)=\"onAutocompleteSelectionChange($event)\"\n (showMoreClick)=\"onShowMoreClick($event)\"\n >\n <div class=\"sky-lookup-search-flex-wrapper\">\n <div\n class=\"sky-lookup-search\"\n [ngClass]=\"{\n 'sky-field-status-active': isInputFocused && !disabled\n }\"\n >\n <sky-tokens\n *ngIf=\"selectMode === 'multiple'\"\n class=\"sky-lookup-tokens\"\n [disabled]=\"disabled\"\n [displayWith]=\"descriptorProperty\"\n [focusable]=\"false\"\n [messageStream]=\"tokensController\"\n [trackWith]=\"idProperty\"\n [tokens]=\"tokens\"\n (keyup)=\"onTokensKeyUp($event)\"\n (tokensChange)=\"onTokensChange($event)\"\n (tokenSelected)=\"enableShowMore ? openPicker(undefined) : undefined\"\n (focusIndexOverRange)=\"onTokensFocusIndexOverRange()\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n (keydown)=\"inputKeydown($event, $event.target.value)\"\n (keyup)=\"inputKeyup($event)\"\n ></textarea>\n </sky-tokens>\n <div\n *ngIf=\"selectMode === 'single'\"\n class=\"sky-lookup-single-control\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </div>\n <ng-container *ngIf=\"!inputBoxHostSvc && enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"showMoreButtonTemplateRef\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!inputBoxHostSvc && !enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"searchIconTemplateRef\"\n ></ng-container>\n </ng-container>\n </div>\n </sky-autocomplete>\n </div>\n</ng-template>\n\n<ng-template #showMoreButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n class=\"sky-btn sky-btn-default\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'sky-btn-disabled': disabled }\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_search_button_show_more' | skyLibResources\n \"\n (click)=\"onSearchButtonClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"search\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #searchIconTemplateRef>\n <div\n class=\"sky-input-group-icon sky-input-box-icon-inset\"\n [ngClass]=\"{ 'sky-lookup-disabled': disabled }\"\n >\n <sky-icon\n *skyThemeIf=\"'default'\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n </div>\n</ng-template>\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
3
3
|
* The contents of this file were automatically generated by
|
|
4
|
-
* the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-lookup' schematic.
|
|
4
|
+
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-lookup' schematic.
|
|
5
5
|
* To update this file, simply rerun the command.
|
|
6
6
|
*/
|
|
7
7
|
import { NgModule } from '@angular/core';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sky-lookup-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/shared/sky-lookup-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,sBAAsB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC1C,6BAA6B,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAC9D,2BAA2B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACpD,iCAAiC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QAC9D,qCAAqC,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;QACxE,sCAAsC,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;QAC3E,wBAAwB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/C,oCAAoC,EAAE;YACpC,OAAO,EAAE,yBAAyB;SACnC;QACD,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9C,8CAA8C,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;QACzE,6CAA6C,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACvE,iDAAiD,EAAE;YACjD,OAAO,EAAE,0BAA0B;SACpC;QACD,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpD,yCAAyC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAC1E,2CAA2C,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC1E,iCAAiC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAClE,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpD,2BAA2B,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;QAC9D,oBAAoB,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACnD,kBAAkB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QAC/C,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7C,wBAAwB,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;KAC3D;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,
|
|
1
|
+
{"version":3,"file":"sky-lookup-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/shared/sky-lookup-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,sBAAsB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC1C,6BAA6B,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAC9D,2BAA2B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACpD,iCAAiC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QAC9D,qCAAqC,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;QACxE,sCAAsC,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;QAC3E,wBAAwB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/C,oCAAoC,EAAE;YACpC,OAAO,EAAE,yBAAyB;SACnC;QACD,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9C,8CAA8C,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;QACzE,6CAA6C,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACvE,iDAAiD,EAAE;YACjD,OAAO,EAAE,0BAA0B;SACpC;QACD,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpD,yCAAyC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAC1E,2CAA2C,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC1E,iCAAiC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAClE,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpD,2BAA2B,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;QAC9D,oBAAoB,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACnD,kBAAkB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QAC/C,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7C,wBAAwB,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;KAC3D;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,CACd,UAA4B,EAC5B,IAAY;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YATzB,aAAa;uHASZ,wBAAwB,aARxB;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,0BAA0B;YACpC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,wBAAwB;kBAVpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,0BAA0B;4BACpC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-lookup' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_autocomplete_add: { message: 'New' },\n skyux_autocomplete_no_results: { message: 'No matches found' },\n skyux_autocomplete_show_all: { message: 'Show all' },\n skyux_autocomplete_show_all_count: { message: 'Show all {0}' },\n skyux_autocomplete_show_matches_count: { message: 'Show matches ({0})' },\n skyux_country_field_search_placeholder: { message: 'Search for a country' },\n skyux_lookup_search_icon: { message: 'Search' },\n skyux_lookup_search_button_show_more: {\n message: 'Show all search results',\n },\n skyux_lookup_show_more_add: { message: 'New' },\n skyux_lookup_show_more_select_all_button_title: { message: 'Select all' },\n skyux_lookup_show_more_clear_all_button_title: { message: 'Clear all' },\n skyux_lookup_show_more_show_selected_option_title: {\n message: 'Show only selected items',\n },\n skyux_lookup_show_more_cancel: { message: 'Cancel' },\n skyux_lookup_show_more_modal_title_single: { message: 'Select an option' },\n skyux_lookup_show_more_modal_title_multiple: { message: 'Select options' },\n skyux_lookup_show_more_no_results: { message: 'No matches found' },\n skyux_lookup_show_more_select: { message: 'Select' },\n skyux_lookup_tokens_summary: { message: '{0} items selected' },\n skyux_search_dismiss: { message: 'Dismiss search' },\n skyux_search_label: { message: 'Search items' },\n skyux_search_open: { message: 'Open search' },\n skyux_search_placeholder: { message: 'Find in this list' },\n },\n};\n\nexport class SkyLookupResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyLookupResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyLookupResourcesModule {}\n"]}
|
package/fesm2015/skyux-lookup.js
CHANGED
|
@@ -28,7 +28,7 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
28
28
|
/**
|
|
29
29
|
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
30
30
|
* The contents of this file were automatically generated by
|
|
31
|
-
* the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-lookup' schematic.
|
|
31
|
+
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-lookup' schematic.
|
|
32
32
|
* To update this file, simply rerun the command.
|
|
33
33
|
*/
|
|
34
34
|
const RESOURCES = {
|
|
@@ -116,7 +116,8 @@ class SkyAutocompleteInputDirective {
|
|
|
116
116
|
this._disabled = false;
|
|
117
117
|
this._focus = new Subject();
|
|
118
118
|
this._textChanges = new Subject();
|
|
119
|
-
|
|
119
|
+
// istanbul ignore next
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
120
121
|
this.onValidatorChange = () => { };
|
|
121
122
|
}
|
|
122
123
|
/**
|
|
@@ -280,9 +281,9 @@ class SkyAutocompleteInputDirective {
|
|
|
280
281
|
}
|
|
281
282
|
}
|
|
282
283
|
// Angular automatically constructs these methods.
|
|
283
|
-
|
|
284
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
284
285
|
onChange(value) { }
|
|
285
|
-
|
|
286
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
286
287
|
onTouched() { }
|
|
287
288
|
setAttributes(element) {
|
|
288
289
|
this.renderer.setAttribute(element, 'autocomplete', this.autocompleteAttribute);
|
|
@@ -334,36 +335,6 @@ function normalizeDiacritics(value) {
|
|
|
334
335
|
return value.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
335
336
|
}
|
|
336
337
|
|
|
337
|
-
// tslint:disable:no-null-keyword
|
|
338
|
-
/* istanbul ignore file */
|
|
339
|
-
// Polyfill for Element.closest().
|
|
340
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill
|
|
341
|
-
// Returns the closest ancestor of the current element (or the current element itself) which
|
|
342
|
-
// matches the selectors given in parameter. If there isn't such an ancestor, it returns null.
|
|
343
|
-
if (!Element.prototype.closest) {
|
|
344
|
-
Element.prototype.closest = function (s) {
|
|
345
|
-
let el = this;
|
|
346
|
-
if (!document.documentElement.contains(el)) {
|
|
347
|
-
return null;
|
|
348
|
-
}
|
|
349
|
-
do {
|
|
350
|
-
if (el.matches(s)) {
|
|
351
|
-
return el;
|
|
352
|
-
}
|
|
353
|
-
el = el.parentElement || el.parentNode;
|
|
354
|
-
} while (el !== null && el.nodeType === 1);
|
|
355
|
-
return null;
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
// Polyfill for Element.matches().
|
|
359
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
|
|
360
|
-
// Returns true if the element would be selected by the specified selector string.
|
|
361
|
-
if (!Element.prototype.matches) {
|
|
362
|
-
Element.prototype.matches =
|
|
363
|
-
Element.prototype.msMatchesSelector ||
|
|
364
|
-
/* istanbul ignore next */ Element.prototype.webkitMatchesSelector;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
338
|
/**
|
|
368
339
|
* @internal
|
|
369
340
|
*/
|
|
@@ -509,6 +480,10 @@ class SkyAutocompleteComponent {
|
|
|
509
480
|
* Fires when users select the button to view all options.
|
|
510
481
|
*/
|
|
511
482
|
this.showMoreClick = new EventEmitter();
|
|
483
|
+
/**
|
|
484
|
+
* Fires when users enter new search information and allows results to be
|
|
485
|
+
* returned via an observable.
|
|
486
|
+
*/
|
|
512
487
|
this.searchAsync = new EventEmitter();
|
|
513
488
|
this.isOpen = false;
|
|
514
489
|
this.isSearchingAsync = false;
|
|
@@ -532,7 +507,7 @@ class SkyAutocompleteComponent {
|
|
|
532
507
|
/**
|
|
533
508
|
* Specifies a static data source for the autocomplete component to search
|
|
534
509
|
* when users enter text. For a dynamic data source such as an array that
|
|
535
|
-
* changes due to server calls, use
|
|
510
|
+
* changes due to server calls, use `search` or `searchAsync` instead.
|
|
536
511
|
*/
|
|
537
512
|
set data(value) {
|
|
538
513
|
this._data = value;
|
|
@@ -587,7 +562,9 @@ class SkyAutocompleteComponent {
|
|
|
587
562
|
* Specifies a function to dynamically manage the data source when users
|
|
588
563
|
* change the text in the autocomplete field. The search function must return
|
|
589
564
|
* an array or a promise of an array. The `search` property is particularly
|
|
590
|
-
* useful when the data source does not live in the source code.
|
|
565
|
+
* useful when the data source does not live in the source code. If the
|
|
566
|
+
* search requires calling a remote data source, use `searchAsync` instead of
|
|
567
|
+
* `search`.
|
|
591
568
|
*/
|
|
592
569
|
set search(value) {
|
|
593
570
|
this._search = value;
|
|
@@ -858,7 +835,9 @@ class SkyAutocompleteComponent {
|
|
|
858
835
|
this.currentSearchSub = this.performSearch()
|
|
859
836
|
.pipe(take(1))
|
|
860
837
|
.subscribe((result) => {
|
|
861
|
-
const items = result.items
|
|
838
|
+
const items = result.items.filter((item) => {
|
|
839
|
+
return item && this.descriptorProperty in item;
|
|
840
|
+
});
|
|
862
841
|
this.isSearchingAsync = false;
|
|
863
842
|
this._searchResults = items.map((r, i) => {
|
|
864
843
|
const result = {
|
|
@@ -1271,9 +1250,9 @@ class SkyCountryFieldComponent {
|
|
|
1271
1250
|
this._disabled = false;
|
|
1272
1251
|
this._includePhoneInfo = false;
|
|
1273
1252
|
// Angular automatically constructs these methods.
|
|
1274
|
-
|
|
1253
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1275
1254
|
this.onChange = (value) => { };
|
|
1276
|
-
|
|
1255
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1277
1256
|
this.onTouched = () => { };
|
|
1278
1257
|
this.setupCountries();
|
|
1279
1258
|
this.countrySearchFormControl = new FormControl();
|
|
@@ -2451,6 +2430,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2451
2430
|
*/
|
|
2452
2431
|
class SkyLookupAutocompleteAdapter {
|
|
2453
2432
|
constructor() {
|
|
2433
|
+
/**
|
|
2434
|
+
* Fires when users enter new search information and allows results to be
|
|
2435
|
+
* returned via an observable.
|
|
2436
|
+
*/
|
|
2454
2437
|
this.searchAsync = new EventEmitter();
|
|
2455
2438
|
}
|
|
2456
2439
|
/**
|
|
@@ -2478,7 +2461,9 @@ class SkyLookupAutocompleteAdapter {
|
|
|
2478
2461
|
* Specifies a function to dynamically manage the data source when users
|
|
2479
2462
|
* change the text in the lookup field. The search function must return
|
|
2480
2463
|
* an array or a promise of an array. The `search` property is particularly
|
|
2481
|
-
* useful when the data source does not live in the source code.
|
|
2464
|
+
* useful when the data source does not live in the source code. If the
|
|
2465
|
+
* search requires calling a remote data source, use `searchAsync` instead of
|
|
2466
|
+
* `search`.
|
|
2482
2467
|
*/
|
|
2483
2468
|
set search(value) {
|
|
2484
2469
|
this._search = value;
|
|
@@ -2549,9 +2534,9 @@ class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
|
|
|
2549
2534
|
this.idle = new Subject();
|
|
2550
2535
|
this.markForTokenFocusOnKeyUp = false;
|
|
2551
2536
|
// Angular automatically constructs these methods.
|
|
2552
|
-
|
|
2537
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
2553
2538
|
this.onChange = (value) => { };
|
|
2554
|
-
|
|
2539
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
2555
2540
|
this.onTouched = () => { };
|
|
2556
2541
|
ngControl.valueAccessor = this;
|
|
2557
2542
|
}
|
|
@@ -2810,8 +2795,9 @@ class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
|
|
|
2810
2795
|
let isValueInTextBox = false;
|
|
2811
2796
|
if (this.selectMode === 'single') {
|
|
2812
2797
|
isValueInTextBox =
|
|
2813
|
-
this.autocompleteInputDirective.
|
|
2814
|
-
this.autocompleteInputDirective.
|
|
2798
|
+
this.autocompleteInputDirective.value &&
|
|
2799
|
+
this.autocompleteInputDirective.inputTextValue ===
|
|
2800
|
+
this.autocompleteInputDirective.value[this.descriptorProperty];
|
|
2815
2801
|
}
|
|
2816
2802
|
this.openPicker(isValueInTextBox ? '' : this.autocompleteInputDirective.inputTextValue);
|
|
2817
2803
|
this.autocompleteInputDirective.restoreInputTextValueToPreviousState();
|