@skyux/lookup 5.5.0 → 5.6.2

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 (57) hide show
  1. package/bundles/skyux-lookup.umd.js +1034 -1049
  2. package/documentation.json +664 -782
  3. package/esm2015/lib/modules/autocomplete/autocomplete-adapter.service.js +0 -1
  4. package/esm2015/lib/modules/autocomplete/autocomplete-adapter.service.js.map +1 -1
  5. package/esm2015/lib/modules/autocomplete/autocomplete-default-search-function.js.map +1 -1
  6. package/esm2015/lib/modules/autocomplete/autocomplete-input.directive.js +6 -5
  7. package/esm2015/lib/modules/autocomplete/autocomplete-input.directive.js.map +1 -1
  8. package/esm2015/lib/modules/autocomplete/autocomplete-search-async-disabled.pipe.js.map +1 -1
  9. package/esm2015/lib/modules/autocomplete/autocomplete.component.js +11 -5
  10. package/esm2015/lib/modules/autocomplete/autocomplete.component.js.map +1 -1
  11. package/esm2015/lib/modules/autocomplete/autocomplete.module.js +1 -1
  12. package/esm2015/lib/modules/autocomplete/autocomplete.module.js.map +1 -1
  13. package/esm2015/lib/modules/autocomplete/types/autocomplete-search-async-args.js.map +1 -1
  14. package/esm2015/lib/modules/autocomplete/types/autocomplete-search-async-function.js.map +1 -1
  15. package/esm2015/lib/modules/country-field/country-field.component.js +9 -9
  16. package/esm2015/lib/modules/country-field/country-field.component.js.map +1 -1
  17. package/esm2015/lib/modules/country-field/country-field.module.js +1 -1
  18. package/esm2015/lib/modules/country-field/country-field.module.js.map +1 -1
  19. package/esm2015/lib/modules/lookup/lookup-autocomplete-adapter.js +7 -1
  20. package/esm2015/lib/modules/lookup/lookup-autocomplete-adapter.js.map +1 -1
  21. package/esm2015/lib/modules/lookup/lookup-show-more-async-modal.component.js.map +1 -1
  22. package/esm2015/lib/modules/lookup/lookup-show-more-modal.component.js +6 -6
  23. package/esm2015/lib/modules/lookup/lookup-show-more-modal.component.js.map +1 -1
  24. package/esm2015/lib/modules/lookup/lookup.component.js +16 -14
  25. package/esm2015/lib/modules/lookup/lookup.component.js.map +1 -1
  26. package/esm2015/lib/modules/lookup/lookup.module.js +4 -4
  27. package/esm2015/lib/modules/lookup/lookup.module.js.map +1 -1
  28. package/esm2015/lib/modules/lookup/types/lookup-show-more-config.js.map +1 -1
  29. package/esm2015/lib/modules/lookup/types/lookup-show-more-native-picker-async-context.js.map +1 -1
  30. package/esm2015/lib/modules/lookup/types/lookup-show-more-native-picker-context.js.map +1 -1
  31. package/esm2015/lib/modules/search/search-adapter.service.js +3 -3
  32. package/esm2015/lib/modules/search/search-adapter.service.js.map +1 -1
  33. package/esm2015/lib/modules/search/search.component.js +2 -2
  34. package/esm2015/lib/modules/search/search.component.js.map +1 -1
  35. package/esm2015/lib/modules/search/search.module.js +1 -1
  36. package/esm2015/lib/modules/search/search.module.js.map +1 -1
  37. package/esm2015/lib/modules/shared/sky-lookup-resources.module.js +1 -1
  38. package/esm2015/lib/modules/shared/sky-lookup-resources.module.js.map +1 -1
  39. package/esm2015/testing/country-field/country-field-fixture.js.map +1 -1
  40. package/esm2015/testing/country-field/country-field-testing.module.js.map +1 -1
  41. package/esm2015/testing/search/search-fixture.js.map +1 -1
  42. package/esm2015/testing/search/search-testing.module.js.map +1 -1
  43. package/fesm2015/skyux-lookup-testing.js.map +1 -1
  44. package/fesm2015/skyux-lookup.js +523 -538
  45. package/fesm2015/skyux-lookup.js.map +1 -1
  46. package/lib/modules/autocomplete/autocomplete-adapter.service.d.ts +0 -1
  47. package/lib/modules/autocomplete/autocomplete-default-search-function.d.ts +1 -1
  48. package/lib/modules/autocomplete/autocomplete.component.d.ts +10 -4
  49. package/lib/modules/autocomplete/types/autocomplete-search-async-args.d.ts +1 -1
  50. package/lib/modules/country-field/country-field.component.d.ts +5 -5
  51. package/lib/modules/lookup/lookup-autocomplete-adapter.d.ts +7 -1
  52. package/lib/modules/lookup/lookup.component.d.ts +3 -3
  53. package/lib/modules/search/search.component.d.ts +1 -1
  54. package/package.json +21 -18
  55. package/esm2015/lib/polyfills.js +0 -30
  56. package/esm2015/lib/polyfills.js.map +0 -1
  57. package/lib/polyfills.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"country-field.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/country-field/country-field.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/country-field/country-field.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NgControl,\n NgModel,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { SkyInputBoxHostService } from '@skyux/forms';\n\nimport 'intl-tel-input';\n\nimport { fromEvent, Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutocompleteSelectionChange } from '../autocomplete/types/autocomplete-selection-change';\n\nimport { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';\n\nimport { SkyCountryFieldCountry } from './types/country';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_COUNTRY_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyCountryFieldComponent),\n multi: true,\n};\n\n// tslint:enable\nlet uniqueId: number = 0;\n\n@Component({\n selector: 'sky-country-field',\n templateUrl: './country-field.component.html',\n styleUrls: ['./country-field.component.scss'],\n providers: [SKY_COUNTRY_FIELD_VALIDATOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyCountryFieldComponent\n implements AfterViewInit, ControlValueAccessor, OnDestroy, OnInit, Validator\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 the [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country.\n * When search results include the default country, it appears at the top of the list.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string) {\n if (value !== this._defaultCountry) {\n this._defaultCountry = value.toLowerCase();\n\n this.defaultCountryData = this.countries.find(\n (country) => country.iso2 === this._defaultCountry\n );\n\n this.sortCountriesWithSelectedAndDefault(this.selectedCountry);\n }\n }\n\n public get defaultCountry(): string {\n return this._defaultCountry;\n }\n\n /**\n * Indicates whether to disable the country field.\n * @default false\n */\n @Input()\n public set disabled(isDisabled: boolean) {\n this.removeEventListeners();\n\n if (!isDisabled) {\n this.addEventListeners();\n }\n\n this._disabled = isDisabled;\n\n this.changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Indicates whether to hide the flag in the input element.\n * @default false\n */\n @Input()\n public hideSelectedCountryFlag: boolean;\n\n /**\n * Indicates whether to include phone information in the selected country and country dropdown.\n * @default false\n */\n @Input()\n public set includePhoneInfo(includePhoneInfo: boolean) {\n this._includePhoneInfo = includePhoneInfo;\n\n this.setupCountries();\n }\n\n public get includePhoneInfo(): boolean {\n return this._includePhoneInfo;\n }\n\n /**\n * Specifies the [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public set supportedCountryISOs(value: string[]) {\n // Ensure all values are the same case.\n if (Array.isArray(value)) {\n value = value.map((v) => v.toLowerCase());\n }\n\n this._supportedCountryISOs = value;\n this.setupCountries();\n }\n\n public get supportedCountryISOs(): string[] {\n return this._supportedCountryISOs;\n }\n\n /**\n * Fires when the selected country changes.\n */\n @Output()\n public selectedCountryChange: EventEmitter<SkyCountryFieldCountry> = new EventEmitter<SkyCountryFieldCountry>();\n\n public countries: SkyCountryFieldCountry[];\n\n public countrySearchFormControl: FormControl;\n\n public isInputFocused: boolean = false;\n\n public searchTextMinimumCharacters: number = 2;\n\n @ViewChild(SkyAutocompleteInputDirective)\n public countrySearchAutocompleteDirective: SkyAutocompleteInputDirective;\n\n public set selectedCountry(newCountry: SkyCountryFieldCountry) {\n if (!this.countriesAreEqual(this.selectedCountry, newCountry)) {\n if (newCountry && newCountry.iso2) {\n let isoCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2\n );\n\n if (isoCountry) {\n newCountry = isoCountry;\n }\n }\n\n this._selectedCountry = newCountry;\n\n this.sortCountriesWithSelectedAndDefault(newCountry);\n\n this.internalFormChange = true;\n this.countrySearchFormControl.setValue(this.selectedCountry);\n\n if (!this.isInitialChange) {\n this.onChange(newCountry);\n this.onTouched();\n\n this.selectedCountryChange.emit(newCountry);\n }\n\n // Do not mark the field as \"dirty\"\n // if the field has been initialized with a value.\n if (this.isInitialChange && this.ngControl && this.ngControl.control) {\n this.ngControl.control.markAsPristine();\n }\n\n this.isInitialChange = false;\n\n /**\n * The second portion of this if statement is complex. The control type check ensures that\n * we only watch for the initial time through this function on reactive forms. However,\n * template forms will send through `null` and then `undefined` on empty initialization\n * so we have to check for when the non-null pass through happens.\n */\n } else if (\n this.isInitialChange &&\n (!(this.ngControl instanceof NgModel) || newCountry !== null)\n ) {\n this.isInitialChange = false;\n }\n }\n\n public get selectedCountry(): SkyCountryFieldCountry {\n return this._selectedCountry;\n }\n\n public currentTheme: string = 'default';\n\n public inputId: string;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<any>;\n\n @ViewChild('searchIconTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private searchIconTemplateRef: TemplateRef<any>;\n\n private defaultCountryData: SkyCountryFieldCountry;\n\n private idle: Subject<any> = new Subject();\n\n private internalFormChange: boolean = false;\n\n private isInitialChange: boolean = true;\n\n private ngControl: NgControl;\n\n private ngUnsubscribe = new Subject();\n\n private _defaultCountry: string;\n\n private _disabled: boolean = false;\n\n private _includePhoneInfo: boolean = false;\n\n private _selectedCountry: SkyCountryFieldCountry;\n\n private _supportedCountryISOs: string[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n private injector: Injector,\n @Optional() public inputBoxHostSvc?: SkyInputBoxHostService,\n @Optional() private themeSvc?: SkyThemeService\n ) {\n this.setupCountries();\n\n this.countrySearchFormControl = new FormControl();\n }\n\n /**\n * Angular lifecycle hook for when the component is initialized\n * @internal\n */\n public ngOnInit(): void {\n this.updateInputBox();\n\n // tslint:disable-next-line: no-null-keyword\n this.ngControl = this.injector.get<NgControl>(\n NgControl as unknown as Type<NgControl>,\n null\n );\n\n this.inputId = `sky-country-field-input-${uniqueId++}`;\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n } else {\n /**\n * The initial change boolean is to determine if the form is setting the value. When no form\n * is present we don't want to ignore the first change.\n */\n this.isInitialChange = false;\n }\n\n if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n this.countrySearchFormControl.valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((newValue) => {\n if (newValue && !this.internalFormChange) {\n this.selectedCountry = newValue;\n }\n });\n\n if (!this.disabled) {\n this.addEventListeners();\n }\n }\n\n public ngAfterViewInit(): void {\n /* istanbul ignore else */\n if (this.themeSvc) {\n this.themeSvc.settingsChange.subscribe((change) => {\n this.currentTheme = change.currentSettings.theme.name;\n this.updateInputBox();\n this.changeDetector.markForCheck();\n });\n }\n }\n\n /**\n * Angular lifecycle hook for when the compoennt is destructed.\n * @internal\n */\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n this.removeEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Sets the component's touched value when the autocomplete is blurred\n * @internal\n */\n public onAutocompleteBlur(): void {\n this.onTouched();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param newCountry The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyAutocompleteSelectionChange): void {\n if (newCountry.selectedItem) {\n this.writeValue(\n this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.selectedItem.iso2\n )\n );\n } else {\n this.writeValue(undefined);\n }\n }\n\n // Angular automatically constructs these methods.\n /* istanbul ignore next */\n public onChange: Function = (value: SkyCountryFieldCountry) => {};\n\n /* istanbul ignore next */\n public onTouched: Function = () => {};\n\n public registerOnChange(fn: (value: any) => void): 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.disabled = disabled;\n }\n\n public validate(control: AbstractControl): ValidationErrors {\n if (control.value) {\n if (\n (this.supportedCountryISOs &&\n this.supportedCountryISOs.length > 0 &&\n this.supportedCountryISOs.indexOf(control.value.iso2) < 0) ||\n !this.countries.find((country) => country.iso2 === control.value.iso2)\n ) {\n return { unsupportedCountry: true };\n }\n }\n return;\n }\n\n public writeValue(value: SkyCountryFieldCountry): void {\n this.selectedCountry = value;\n this.changeDetector.markForCheck();\n }\n\n private addEventListeners(): void {\n this.removeEventListeners();\n\n this.idle = new Subject();\n\n const documentObj = this.windowRef.nativeWindow.document;\n\n fromEvent(documentObj, 'mousedown')\n .pipe(takeUntil(this.idle))\n .subscribe((event: MouseEvent) => {\n this.isInputFocused = this.elRef.nativeElement.contains(event.target);\n this.changeDetector.markForCheck();\n });\n\n fromEvent(documentObj, 'focusin')\n .pipe(takeUntil(this.idle))\n .subscribe((event: KeyboardEvent) => {\n this.isInputFocused = this.elRef.nativeElement.contains(event.target);\n this.changeDetector.markForCheck();\n });\n }\n\n private countriesAreEqual(\n country1: SkyCountryFieldCountry,\n country2: SkyCountryFieldCountry\n ): boolean {\n if (country1 && country2) {\n return country1.iso2 === country2.iso2;\n }\n\n // NOTE: We are doing this in this way because template forms will send through `null`\n // and then `undefined` on empty initialization. These are functionally equivalent but will\n // not pass a standard triple equals check.\n return !country1 && !country2;\n }\n\n private countriesEqual(\n a: SkyCountryFieldCountry,\n b: SkyCountryFieldCountry\n ): boolean {\n return a.iso2 === b.iso2 && a.name === b.name;\n }\n\n private removeEventListeners(): void {\n this.idle.next();\n this.idle.complete();\n }\n\n private setupCountries(): void {\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData())\n );\n\n // Ignoring coverage here as this will be removed in the next release.\n // istanbul ignore next\n if (!this.includePhoneInfo && !this.hideSelectedCountryFlag) {\n if (\n (<HTMLElement>(\n this.elRef.nativeElement.parentElement\n ))?.classList?.contains('sky-phone-field-country-search')\n ) {\n this.includePhoneInfo = true;\n this.hideSelectedCountryFlag = true;\n }\n }\n\n /* istanbul ignore else */\n if (!this.includePhoneInfo) {\n /**\n * The library we get the country data from includes extra phone properties.\n * We want to remove these unless we are in a phone field\n */\n this.countries.forEach((country: any) => {\n delete country.dialCode;\n delete country.areaCodes;\n delete country.priority;\n });\n }\n\n this.sortCountriesWithSelectedAndDefault(this.selectedCountry);\n\n if (this.supportedCountryISOs && this.supportedCountryISOs.length > 0) {\n this.countries = this.countries.filter(\n (country: SkyCountryFieldCountry) => {\n return this.supportedCountryISOs.indexOf(country.iso2) >= 0;\n }\n );\n }\n }\n\n private sortCountriesWithSelectedAndDefault(\n selectedCountry: SkyCountryFieldCountry\n ): void {\n let selectedCountryIndex: number;\n let selectedCountryData: SkyCountryFieldCountry;\n\n let sortedNewCountries = this.countries.sort((a, b) => {\n if (\n ((this.defaultCountryData &&\n this.countriesEqual(a, this.defaultCountryData)) ||\n a.name < b.name) &&\n (!this.defaultCountryData ||\n !this.countriesEqual(this.defaultCountryData, b))\n ) {\n return -1;\n } else {\n return 1;\n }\n });\n\n if (selectedCountry) {\n // Note: We are looking up this data here to ensure we are using the offical data from the\n // library and not the data provided by the user on initialization of the component\n selectedCountryData = this.countries.find(\n (country) => country.iso2 === selectedCountry.iso2.toLocaleLowerCase()\n );\n selectedCountryIndex = this.countries.indexOf(selectedCountryData);\n\n if (selectedCountryIndex >= 0) {\n this.countries.splice(selectedCountryIndex, 1);\n sortedNewCountries.splice(0, 0, selectedCountryData);\n }\n }\n\n this.countries = sortedNewCountries;\n }\n\n private updateInputBox(): void {\n if (this.inputBoxHostSvc) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n iconsInsetTemplate:\n this.currentTheme === 'modern'\n ? this.searchIconTemplateRef\n : undefined,\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 <span\n class=\"sky-country-field-container\"\n [ngClass]=\"{\n 'sky-country-field-disabled': disabled\n }\"\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"inputId\"\n [data]=\"countries\"\n [propertiesToSearch]=\"['name', 'iso2']\"\n [searchResultTemplate]=\"countrySearchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n (selectionChange)=\"onCountrySelected($event)\"\n >\n <div\n class=\"sky-country-field-input\"\n [ngClass]=\"{\n 'sky-country-field-input-with-flag':\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n }\"\n >\n <div\n *ngIf=\"\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n \"\n class=\"sky-country-field-flag\"\n >\n <div\n class=\"iti-flag\"\n [ngClass]=\"selectedCountry.iso2.toLowerCase()\"\n ></div>\n </div>\n <textarea\n class=\"sky-form-control\"\n name=\"selectedCountry\"\n rows=\"1\"\n skyAutocomplete\n [attr.aria-label]=\"\n 'skyux_country_field_search_placeholder' | skyLibResources\n \"\n [attr.disabled]=\"disabled ? true : undefined\"\n [attr.id]=\"inputId\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [formControl]=\"countrySearchFormControl\"\n [placeholder]=\"\n currentTheme === 'default'\n ? ('skyux_country_field_search_placeholder' | skyLibResources)\n : ''\n \"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </sky-autocomplete>\n </span>\n</ng-template>\n\n<ng-template let-item=\"item\" #countrySearchResultTemplate>\n <div\n class=\"sky-country-field-search-result-flag\"\n [ngClass]=\"'iti-flag ' + item.iso2.toLowerCase()\"\n ></div>\n {{ item.name }}\n <span *ngIf=\"includePhoneInfo\" class=\"sky-deemphasized\">\n {{ item.dialCode }}\n </span>\n</ng-template>\n\n<!-- This template should only be used in modern theme input boxes. -->\n<ng-template #searchIconTemplateRef>\n <div class=\"sky-input-group-icon sky-input-box-icon-inset\">\n <sky-icon iconType=\"skyux\" icon=\"search\"></sky-icon>\n </div>\n</ng-template>\n"]}
1
+ {"version":3,"file":"country-field.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/country-field/country-field.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/country-field/country-field.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NgControl,\n NgModel,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport 'intl-tel-input';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';\nimport { SkyAutocompleteSelectionChange } from '../autocomplete/types/autocomplete-selection-change';\n\nimport { SkyCountryFieldCountry } from './types/country';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_COUNTRY_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyCountryFieldComponent),\n multi: true,\n};\n\n// tslint:enable\nlet uniqueId = 0;\n\n@Component({\n selector: 'sky-country-field',\n templateUrl: './country-field.component.html',\n styleUrls: ['./country-field.component.scss'],\n providers: [SKY_COUNTRY_FIELD_VALIDATOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyCountryFieldComponent\n implements AfterViewInit, ControlValueAccessor, OnDestroy, OnInit, Validator\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 the [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country.\n * When search results include the default country, it appears at the top of the list.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string) {\n if (value !== this._defaultCountry) {\n this._defaultCountry = value.toLowerCase();\n\n this.defaultCountryData = this.countries.find(\n (country) => country.iso2 === this._defaultCountry\n );\n\n this.sortCountriesWithSelectedAndDefault(this.selectedCountry);\n }\n }\n\n public get defaultCountry(): string {\n return this._defaultCountry;\n }\n\n /**\n * Indicates whether to disable the country field.\n * @default false\n */\n @Input()\n public set disabled(isDisabled: boolean) {\n this.removeEventListeners();\n\n if (!isDisabled) {\n this.addEventListeners();\n }\n\n this._disabled = isDisabled;\n\n this.changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Indicates whether to hide the flag in the input element.\n * @default false\n */\n @Input()\n public hideSelectedCountryFlag: boolean;\n\n /**\n * Indicates whether to include phone information in the selected country and country dropdown.\n * @default false\n */\n @Input()\n public set includePhoneInfo(includePhoneInfo: boolean) {\n this._includePhoneInfo = includePhoneInfo;\n\n this.setupCountries();\n }\n\n public get includePhoneInfo(): boolean {\n return this._includePhoneInfo;\n }\n\n /**\n * Specifies the [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public set supportedCountryISOs(value: string[]) {\n // Ensure all values are the same case.\n if (Array.isArray(value)) {\n value = value.map((v) => v.toLowerCase());\n }\n\n this._supportedCountryISOs = value;\n this.setupCountries();\n }\n\n public get supportedCountryISOs(): string[] {\n return this._supportedCountryISOs;\n }\n\n /**\n * Fires when the selected country changes.\n */\n @Output()\n public selectedCountryChange: EventEmitter<SkyCountryFieldCountry> = new EventEmitter<SkyCountryFieldCountry>();\n\n public countries: SkyCountryFieldCountry[];\n\n public countrySearchFormControl: FormControl;\n\n public isInputFocused = false;\n\n public searchTextMinimumCharacters = 2;\n\n @ViewChild(SkyAutocompleteInputDirective)\n public countrySearchAutocompleteDirective: SkyAutocompleteInputDirective;\n\n public set selectedCountry(newCountry: SkyCountryFieldCountry) {\n if (!this.countriesAreEqual(this.selectedCountry, newCountry)) {\n if (newCountry && newCountry.iso2) {\n const isoCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2\n );\n\n if (isoCountry) {\n newCountry = isoCountry;\n }\n }\n\n this._selectedCountry = newCountry;\n\n this.sortCountriesWithSelectedAndDefault(newCountry);\n\n this.internalFormChange = true;\n this.countrySearchFormControl.setValue(this.selectedCountry);\n\n if (!this.isInitialChange) {\n this.onChange(newCountry);\n this.onTouched();\n\n this.selectedCountryChange.emit(newCountry);\n }\n\n // Do not mark the field as \"dirty\"\n // if the field has been initialized with a value.\n if (this.isInitialChange && this.ngControl && this.ngControl.control) {\n this.ngControl.control.markAsPristine();\n }\n\n this.isInitialChange = false;\n\n /**\n * The second portion of this if statement is complex. The control type check ensures that\n * we only watch for the initial time through this function on reactive forms. However,\n * template forms will send through `null` and then `undefined` on empty initialization\n * so we have to check for when the non-null pass through happens.\n */\n } else if (\n this.isInitialChange &&\n (!(this.ngControl instanceof NgModel) || newCountry !== null)\n ) {\n this.isInitialChange = false;\n }\n }\n\n public get selectedCountry(): SkyCountryFieldCountry {\n return this._selectedCountry;\n }\n\n public currentTheme = 'default';\n\n public inputId: string;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<any>;\n\n @ViewChild('searchIconTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private searchIconTemplateRef: TemplateRef<any>;\n\n private defaultCountryData: SkyCountryFieldCountry;\n\n private idle: Subject<any> = new Subject();\n\n private internalFormChange = false;\n\n private isInitialChange = true;\n\n private ngControl: NgControl;\n\n private ngUnsubscribe = new Subject();\n\n private _defaultCountry: string;\n\n private _disabled = false;\n\n private _includePhoneInfo = false;\n\n private _selectedCountry: SkyCountryFieldCountry;\n\n private _supportedCountryISOs: string[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n private injector: Injector,\n @Optional() public inputBoxHostSvc?: SkyInputBoxHostService,\n @Optional() private themeSvc?: SkyThemeService\n ) {\n this.setupCountries();\n\n this.countrySearchFormControl = new FormControl();\n }\n\n /**\n * Angular lifecycle hook for when the component is initialized\n * @internal\n */\n public ngOnInit(): void {\n this.updateInputBox();\n\n // tslint:disable-next-line: no-null-keyword\n this.ngControl = this.injector.get<NgControl>(\n NgControl as unknown as Type<NgControl>,\n null\n );\n\n this.inputId = `sky-country-field-input-${uniqueId++}`;\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n } else {\n /**\n * The initial change boolean is to determine if the form is setting the value. When no form\n * is present we don't want to ignore the first change.\n */\n this.isInitialChange = false;\n }\n\n if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n this.countrySearchFormControl.valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((newValue) => {\n if (newValue && !this.internalFormChange) {\n this.selectedCountry = newValue;\n }\n });\n\n if (!this.disabled) {\n this.addEventListeners();\n }\n }\n\n public ngAfterViewInit(): void {\n /* istanbul ignore else */\n if (this.themeSvc) {\n this.themeSvc.settingsChange.subscribe((change) => {\n this.currentTheme = change.currentSettings.theme.name;\n this.updateInputBox();\n this.changeDetector.markForCheck();\n });\n }\n }\n\n /**\n * Angular lifecycle hook for when the compoennt is destructed.\n * @internal\n */\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n this.removeEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Sets the component's touched value when the autocomplete is blurred\n * @internal\n */\n public onAutocompleteBlur(): void {\n this.onTouched();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param newCountry The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyAutocompleteSelectionChange): void {\n if (newCountry.selectedItem) {\n this.writeValue(\n this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.selectedItem.iso2\n )\n );\n } else {\n this.writeValue(undefined);\n }\n }\n\n // Angular automatically constructs these methods.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange = (value: SkyCountryFieldCountry) => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onTouched = () => {};\n\n public registerOnChange(fn: (value: SkyCountryFieldCountry) => void): 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.disabled = disabled;\n }\n\n public validate(control: AbstractControl): ValidationErrors {\n if (control.value) {\n if (\n (this.supportedCountryISOs &&\n this.supportedCountryISOs.length > 0 &&\n this.supportedCountryISOs.indexOf(control.value.iso2) < 0) ||\n !this.countries.find((country) => country.iso2 === control.value.iso2)\n ) {\n return { unsupportedCountry: true };\n }\n }\n return;\n }\n\n public writeValue(value: SkyCountryFieldCountry): void {\n this.selectedCountry = value;\n this.changeDetector.markForCheck();\n }\n\n private addEventListeners(): void {\n this.removeEventListeners();\n\n this.idle = new Subject();\n\n const documentObj = this.windowRef.nativeWindow.document;\n\n fromEvent(documentObj, 'mousedown')\n .pipe(takeUntil(this.idle))\n .subscribe((event: MouseEvent) => {\n this.isInputFocused = this.elRef.nativeElement.contains(event.target);\n this.changeDetector.markForCheck();\n });\n\n fromEvent(documentObj, 'focusin')\n .pipe(takeUntil(this.idle))\n .subscribe((event: KeyboardEvent) => {\n this.isInputFocused = this.elRef.nativeElement.contains(event.target);\n this.changeDetector.markForCheck();\n });\n }\n\n private countriesAreEqual(\n country1: SkyCountryFieldCountry,\n country2: SkyCountryFieldCountry\n ): boolean {\n if (country1 && country2) {\n return country1.iso2 === country2.iso2;\n }\n\n // NOTE: We are doing this in this way because template forms will send through `null`\n // and then `undefined` on empty initialization. These are functionally equivalent but will\n // not pass a standard triple equals check.\n return !country1 && !country2;\n }\n\n private countriesEqual(\n a: SkyCountryFieldCountry,\n b: SkyCountryFieldCountry\n ): boolean {\n return a.iso2 === b.iso2 && a.name === b.name;\n }\n\n private removeEventListeners(): void {\n this.idle.next();\n this.idle.complete();\n }\n\n private setupCountries(): void {\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData())\n );\n\n // Ignoring coverage here as this will be removed in the next release.\n // istanbul ignore next\n if (!this.includePhoneInfo && !this.hideSelectedCountryFlag) {\n if (\n (\n this.elRef.nativeElement.parentElement as HTMLElement\n )?.classList?.contains('sky-phone-field-country-search')\n ) {\n this.includePhoneInfo = true;\n this.hideSelectedCountryFlag = true;\n }\n }\n\n /* istanbul ignore else */\n if (!this.includePhoneInfo) {\n /**\n * The library we get the country data from includes extra phone properties.\n * We want to remove these unless we are in a phone field\n */\n this.countries.forEach((country: any) => {\n delete country.dialCode;\n delete country.areaCodes;\n delete country.priority;\n });\n }\n\n this.sortCountriesWithSelectedAndDefault(this.selectedCountry);\n\n if (this.supportedCountryISOs && this.supportedCountryISOs.length > 0) {\n this.countries = this.countries.filter(\n (country: SkyCountryFieldCountry) => {\n return this.supportedCountryISOs.indexOf(country.iso2) >= 0;\n }\n );\n }\n }\n\n private sortCountriesWithSelectedAndDefault(\n selectedCountry: SkyCountryFieldCountry\n ): void {\n let selectedCountryIndex: number;\n let selectedCountryData: SkyCountryFieldCountry;\n\n const sortedNewCountries = this.countries.sort((a, b) => {\n if (\n ((this.defaultCountryData &&\n this.countriesEqual(a, this.defaultCountryData)) ||\n a.name < b.name) &&\n (!this.defaultCountryData ||\n !this.countriesEqual(this.defaultCountryData, b))\n ) {\n return -1;\n } else {\n return 1;\n }\n });\n\n if (selectedCountry) {\n // Note: We are looking up this data here to ensure we are using the offical data from the\n // library and not the data provided by the user on initialization of the component\n selectedCountryData = this.countries.find(\n (country) => country.iso2 === selectedCountry.iso2.toLocaleLowerCase()\n );\n selectedCountryIndex = this.countries.indexOf(selectedCountryData);\n\n if (selectedCountryIndex >= 0) {\n this.countries.splice(selectedCountryIndex, 1);\n sortedNewCountries.splice(0, 0, selectedCountryData);\n }\n }\n\n this.countries = sortedNewCountries;\n }\n\n private updateInputBox(): void {\n if (this.inputBoxHostSvc) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n iconsInsetTemplate:\n this.currentTheme === 'modern'\n ? this.searchIconTemplateRef\n : undefined,\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 <span\n class=\"sky-country-field-container\"\n [ngClass]=\"{\n 'sky-country-field-disabled': disabled\n }\"\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"inputId\"\n [data]=\"countries\"\n [propertiesToSearch]=\"['name', 'iso2']\"\n [searchResultTemplate]=\"countrySearchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n (selectionChange)=\"onCountrySelected($event)\"\n >\n <div\n class=\"sky-country-field-input\"\n [ngClass]=\"{\n 'sky-country-field-input-with-flag':\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n }\"\n >\n <div\n *ngIf=\"\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n \"\n class=\"sky-country-field-flag\"\n >\n <div\n class=\"iti-flag\"\n [ngClass]=\"selectedCountry.iso2.toLowerCase()\"\n ></div>\n </div>\n <textarea\n class=\"sky-form-control\"\n name=\"selectedCountry\"\n rows=\"1\"\n skyAutocomplete\n [attr.aria-label]=\"\n 'skyux_country_field_search_placeholder' | skyLibResources\n \"\n [attr.disabled]=\"disabled ? true : undefined\"\n [attr.id]=\"inputId\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [formControl]=\"countrySearchFormControl\"\n [placeholder]=\"\n currentTheme === 'default'\n ? ('skyux_country_field_search_placeholder' | skyLibResources)\n : ''\n \"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </sky-autocomplete>\n </span>\n</ng-template>\n\n<ng-template let-item=\"item\" #countrySearchResultTemplate>\n <div\n class=\"sky-country-field-search-result-flag\"\n [ngClass]=\"'iti-flag ' + item.iso2.toLowerCase()\"\n ></div>\n {{ item.name }}\n <span *ngIf=\"includePhoneInfo\" class=\"sky-deemphasized\">\n {{ item.dialCode }}\n </span>\n</ng-template>\n\n<!-- This template should only be used in modern theme input boxes. -->\n<ng-template #searchIconTemplateRef>\n <div class=\"sky-input-group-icon sky-input-box-icon-inset\">\n <sky-icon iconType=\"skyux\" icon=\"search\"></sky-icon>\n </div>\n</ng-template>\n"]}
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { SkyI18nModule } from '@skyux/i18n';
5
5
  import { SkyIconModule } from '@skyux/indicators';
@@ -1 +1 @@
1
- {"version":3,"file":"country-field.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/country-field/country-field.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;AAgBrE,MAAM,OAAO,qBAAqB;;mHAArB,qBAAqB;oHAArB,qBAAqB,iBAbjB,wBAAwB,aAErC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,qBAAqB;QACrB,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,cAAc,aAEN,wBAAwB;oHAEvB,qBAAqB,YAZvB;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,cAAc;SACf;4FAGU,qBAAqB;kBAdjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,cAAc;qBACf;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;iBACpC","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '@skyux/indicators';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyAutocompleteModule } from '../autocomplete/autocomplete.module';\n\nimport { SkyLookupResourcesModule } from '../shared/sky-lookup-resources.module';\n\nimport { SkyCountryFieldComponent } from './country-field.component';\n\n@NgModule({\n declarations: [SkyCountryFieldComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyAutocompleteModule,\n SkyIconModule,\n SkyI18nModule,\n SkyLookupResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyCountryFieldComponent],\n})\nexport class SkyCountryFieldModule {}\n"]}
1
+ {"version":3,"file":"country-field.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/country-field/country-field.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;AAgBrE,MAAM,OAAO,qBAAqB;;mHAArB,qBAAqB;oHAArB,qBAAqB,iBAbjB,wBAAwB,aAErC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,qBAAqB;QACrB,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,cAAc,aAEN,wBAAwB;oHAEvB,qBAAqB,YAZvB;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,cAAc;SACf;4FAGU,qBAAqB;kBAdjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,cAAc;qBACf;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;iBACpC","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyAutocompleteModule } from '../autocomplete/autocomplete.module';\nimport { SkyLookupResourcesModule } from '../shared/sky-lookup-resources.module';\n\nimport { SkyCountryFieldComponent } from './country-field.component';\n\n@NgModule({\n declarations: [SkyCountryFieldComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyAutocompleteModule,\n SkyIconModule,\n SkyI18nModule,\n SkyLookupResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyCountryFieldComponent],\n})\nexport class SkyCountryFieldModule {}\n"]}
@@ -6,6 +6,10 @@ import * as i0 from "@angular/core";
6
6
  */
7
7
  export class SkyLookupAutocompleteAdapter {
8
8
  constructor() {
9
+ /**
10
+ * Fires when users enter new search information and allows results to be
11
+ * returned via an observable.
12
+ */
9
13
  this.searchAsync = new EventEmitter();
10
14
  }
11
15
  /**
@@ -33,7 +37,9 @@ export class SkyLookupAutocompleteAdapter {
33
37
  * Specifies a function to dynamically manage the data source when users
34
38
  * change the text in the lookup field. The search function must return
35
39
  * an array or a promise of an array. The `search` property is particularly
36
- * useful when the data source does not live in the source code.
40
+ * useful when the data source does not live in the source code. If the
41
+ * search requires calling a remote data source, use `searchAsync` instead of
42
+ * `search`.
37
43
  */
38
44
  set search(value) {
39
45
  this._search = value;
@@ -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;;AAO5G;;GAEG;AAEH,MAAM,OAAO,4BAA4B;IADzC;QA6FS,gBAAW,GAAG,IAAI,YAAY,EAAkC,CAAC;KAKzE;IAxFC;;;;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;;;;;OAKG;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;;0HAvDU,4BAA4B;8GAA5B,4BAA4B;4FAA5B,4BAA4B;kBADxC,SAAS;8BAQD,YAAY;sBADlB,KAAK;gBASK,kBAAkB;sBAD5B,KAAK;gBAcK,kBAAkB;sBAD5B,KAAK;gBAgBK,MAAM;sBADhB,KAAK;gBAqBC,oBAAoB;sBAD1B,KAAK;gBAUC,2BAA2B;sBADjC,KAAK;gBAWC,aAAa;sBADnB,KAAK;gBAQC,kBAAkB;sBADxB,KAAK;gBAIC,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';\n\nimport { SkyAutocompleteSearchFunction } from '../autocomplete/types/autocomplete-search-function';\n\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.\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 @Output()\n public searchAsync = new EventEmitter<SkyAutocompleteSearchAsyncArgs>();\n\n private _descriptorProperty: string;\n private _propertiesToSearch: string[];\n private _search: SkyAutocompleteSearchFunction;\n}\n"]}
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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-show-more-async-modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-async-modal.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-async-modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { SkyAutocompleteSearchAsyncResult } from '../autocomplete/types/autocomplete-search-async-result';\n\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';\n\n/**\n * @internal\n * Internal component to implement the native picker.\n */\n@Component({\n selector: 'sky-lookup-show-more-async-modal',\n templateUrl: './lookup-show-more-async-modal.component.html',\n styleUrls: ['./lookup-show-more-async-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupShowMoreAsyncModalComponent implements OnInit, OnDestroy {\n /**\n * @internal\n * Fires when users select the button to add new options to the list.\n */\n public addClick: Subject<void> = new Subject();\n\n public items: unknown[];\n\n public displayedItems: unknown[] = [];\n public onlyShowSelected: boolean = false;\n public searchText: string;\n public isSearching = false;\n public hasMoreItems = false;\n public isLoadingMore = false;\n public selectedIdMap: Map<unknown, unknown>;\n\n private continuationData: unknown;\n private offset: number = 0;\n private ngUnsubscribe = new Subject<void>();\n private currentSearchSub: Subscription | undefined;\n\n constructor(\n public modalInstance: SkyModalInstance,\n public context: SkyLookupShowMoreNativePickerAsyncContext,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.searchText = this.context.initialSearch;\n\n this.createInitialSelectedItemsMap();\n this.loadSearchResults();\n }\n\n public ngOnDestroy(): void {\n this.cancelCurrentSearch();\n\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.next();\n }\n\n public clearAll(): void {\n this.selectedIdMap = new Map(this.selectedIdMap);\n\n // Only deselect items that have been loaded; items that would be loaded\n // after an infinite scroll event should remain selected.\n for (const item of this.items) {\n this.selectedIdMap.delete(item[this.context.idProperty]);\n }\n\n this.updateDisplayedItems();\n\n this.changeDetector.markForCheck();\n }\n\n public itemClick(selectedItem: any): void {\n if (this.context.selectMode === 'single') {\n this.onItemSelect(!selectedItem.selected, selectedItem);\n }\n }\n\n public onItemSelect(newSelectState: boolean, itemToSelect: any): void {\n const itemId = itemToSelect[this.context.idProperty];\n\n // Create a new Map so the pipe transform will execute on the next\n // change detection cycle.\n this.selectedIdMap = new Map(this.selectedIdMap);\n\n if (this.context.selectMode === 'single') {\n if (newSelectState) {\n this.selectedIdMap.clear();\n this.selectedIdMap.set(itemId, itemToSelect);\n }\n } else {\n if (newSelectState) {\n this.selectedIdMap.set(itemId, itemToSelect);\n } else {\n this.selectedIdMap.delete(itemId);\n }\n }\n\n this.updateDisplayedItems();\n }\n\n public searchApplied(searchText: string) {\n this.offset = 0;\n this.searchText = searchText;\n\n this.loadSearchResults();\n }\n\n public selectAll(): void {\n this.selectedIdMap = new Map();\n\n for (const item of this.items) {\n this.selectedIdMap.set(item[this.context.idProperty], item);\n }\n\n this.updateDisplayedItems();\n }\n\n public infiniteScrollEnd(): void {\n this.cancelCurrentSearch();\n\n /* Sanity check - else case would only happen if this was called directly */\n /* istanbul ignore else */\n if (this.hasMoreItems) {\n this.isLoadingMore = true;\n\n this.performSearch((result) => {\n this.items = this.items.concat(result.items);\n\n this.updateDisplayedItems();\n\n this.isLoadingMore = false;\n });\n }\n }\n\n public save(): void {\n const selectedItems = Array.from(\n this.selectedIdMap.values(),\n (itemData, index) => ({\n index,\n itemData,\n })\n ).sort((a, b) => {\n return this.items.indexOf(a.itemData) < this.items.indexOf(b.itemData)\n ? -1\n : 1;\n });\n\n this.modalInstance.save(selectedItems);\n }\n\n private loadSearchResults(): void {\n this.cancelCurrentSearch();\n\n this.isSearching = true;\n\n this.performSearch((result) => {\n this.isSearching = false;\n this.items = result.items;\n });\n }\n\n private createInitialSelectedItemsMap(): void {\n this.selectedIdMap = new Map(\n this.context.initialValue.map((item) => [\n item[this.context.idProperty],\n item,\n ])\n );\n }\n\n private performSearch(\n processResults: (result: SkyAutocompleteSearchAsyncResult) => void\n ): void {\n this.currentSearchSub = this.context\n .searchAsync({\n displayType: 'modal',\n offset: this.offset,\n searchText: this.searchText || '',\n continuationData: this.continuationData,\n })\n .pipe(take(1))\n .subscribe((result) => {\n processResults(result);\n\n this.continuationData = result.continuationData;\n this.hasMoreItems = result.hasMore;\n this.offset = this.items.length;\n\n this.updateDisplayedItems();\n\n this.changeDetector.markForCheck();\n });\n }\n\n private updateDisplayedItems(): void {\n if (this.onlyShowSelected) {\n this.displayedItems = this.items.filter((item) =>\n this.selectedIdMap.has(item[this.context.idProperty])\n );\n } else {\n this.displayedItems = this.items;\n }\n }\n\n private cancelCurrentSearch(): void {\n if (this.currentSearchSub) {\n this.currentSearchSub.unsubscribe();\n this.currentSearchSub = undefined;\n this.isLoadingMore = false;\n this.isSearching = false;\n }\n }\n}\n","<sky-modal>\n <sky-modal-header>\n <ng-container *ngIf=\"context.userConfig?.title; else defaultTitle\">\n {{ context.userConfig.title }}\n </ng-container>\n </sky-modal-header>\n <sky-modal-content>\n <sky-wait [isWaiting]=\"isSearching\"></sky-wait>\n <div\n [skyViewkeeper]=\"[\n '.sky-lookup-show-more-modal-toolbar',\n '.sky-lookup-show-more-modal-muiltiselect-toolbar'\n ]\"\n >\n <sky-toolbar class=\"sky-lookup-show-more-modal-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n *ngIf=\"context.showAddButton\"\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"add\"\n iconType=\"skyux\"\n ></sky-icon>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"plus-circle\"></sky-icon>\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n <sky-toolbar\n *ngIf=\"context.selectMode === 'multiple'\"\n class=\"sky-lookup-show-more-modal-muiltiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\n \"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\n \"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDisplayedItems()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"!isSearching && displayedItems.length === 0\"\n class=\"sky-font-deemphasized sky-lookup-show-more-no-results\"\n >\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let item of displayedItems\"\n [isSelected]=\"\n item[context.idProperty] | skyLookupItemSelected: selectedIdMap\n \"\n [selectable]=\"context.selectMode === 'multiple'\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n context.userConfig?.itemTemplate\n ? context.userConfig?.itemTemplate\n : defaultItemTemplate;\n context: { item: item }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"hasMoreItems\"\n [loading]=\"isLoadingMore\"\n (scrollEnd)=\"infiniteScrollEnd()\"\n >\n </sky-infinite-scroll>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"\n sky-btn\n sky-btn-primary\n sky-margin-inline-compact\n sky-lookup-show-more-modal-save\n \"\n type=\"button\"\n [disabled]=\"isSearching\"\n (click)=\"save()\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template let-item=\"item\" #defaultItemTemplate>\n {{ item[context.descriptorProperty] }}\n</ng-template>\n\n<ng-template #defaultTitle>\n <ng-container *ngIf=\"context.selectMode === 'single'\">\n {{ 'skyux_lookup_show_more_modal_title_single' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"context.selectMode === 'multiple'\">\n {{ 'skyux_lookup_show_more_modal_title_multiple' | skyLibResources }}\n </ng-container>\n</ng-template>\n"]}
1
+ {"version":3,"file":"lookup-show-more-async-modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-async-modal.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-async-modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SkyAutocompleteSearchAsyncResult } from '../autocomplete/types/autocomplete-search-async-result';\n\nimport { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';\n\n/**\n * @internal\n * Internal component to implement the native picker.\n */\n@Component({\n selector: 'sky-lookup-show-more-async-modal',\n templateUrl: './lookup-show-more-async-modal.component.html',\n styleUrls: ['./lookup-show-more-async-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupShowMoreAsyncModalComponent implements OnInit, OnDestroy {\n /**\n * @internal\n * Fires when users select the button to add new options to the list.\n */\n public addClick: Subject<void> = new Subject();\n\n public items: unknown[];\n\n public displayedItems: unknown[] = [];\n public onlyShowSelected = false;\n public searchText: string;\n public isSearching = false;\n public hasMoreItems = false;\n public isLoadingMore = false;\n public selectedIdMap: Map<unknown, unknown>;\n\n private continuationData: unknown;\n private offset = 0;\n private ngUnsubscribe = new Subject<void>();\n private currentSearchSub: Subscription | undefined;\n\n constructor(\n public modalInstance: SkyModalInstance,\n public context: SkyLookupShowMoreNativePickerAsyncContext,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.searchText = this.context.initialSearch;\n\n this.createInitialSelectedItemsMap();\n this.loadSearchResults();\n }\n\n public ngOnDestroy(): void {\n this.cancelCurrentSearch();\n\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.next();\n }\n\n public clearAll(): void {\n this.selectedIdMap = new Map(this.selectedIdMap);\n\n // Only deselect items that have been loaded; items that would be loaded\n // after an infinite scroll event should remain selected.\n for (const item of this.items) {\n this.selectedIdMap.delete(item[this.context.idProperty]);\n }\n\n this.updateDisplayedItems();\n\n this.changeDetector.markForCheck();\n }\n\n public itemClick(selectedItem: any): void {\n if (this.context.selectMode === 'single') {\n this.onItemSelect(!selectedItem.selected, selectedItem);\n }\n }\n\n public onItemSelect(newSelectState: boolean, itemToSelect: any): void {\n const itemId = itemToSelect[this.context.idProperty];\n\n // Create a new Map so the pipe transform will execute on the next\n // change detection cycle.\n this.selectedIdMap = new Map(this.selectedIdMap);\n\n if (this.context.selectMode === 'single') {\n if (newSelectState) {\n this.selectedIdMap.clear();\n this.selectedIdMap.set(itemId, itemToSelect);\n }\n } else {\n if (newSelectState) {\n this.selectedIdMap.set(itemId, itemToSelect);\n } else {\n this.selectedIdMap.delete(itemId);\n }\n }\n\n this.updateDisplayedItems();\n }\n\n public searchApplied(searchText: string) {\n this.offset = 0;\n this.searchText = searchText;\n\n this.loadSearchResults();\n }\n\n public selectAll(): void {\n this.selectedIdMap = new Map();\n\n for (const item of this.items) {\n this.selectedIdMap.set(item[this.context.idProperty], item);\n }\n\n this.updateDisplayedItems();\n }\n\n public infiniteScrollEnd(): void {\n this.cancelCurrentSearch();\n\n /* Sanity check - else case would only happen if this was called directly */\n /* istanbul ignore else */\n if (this.hasMoreItems) {\n this.isLoadingMore = true;\n\n this.performSearch((result) => {\n this.items = this.items.concat(result.items);\n\n this.updateDisplayedItems();\n\n this.isLoadingMore = false;\n });\n }\n }\n\n public save(): void {\n const selectedItems = Array.from(\n this.selectedIdMap.values(),\n (itemData, index) => ({\n index,\n itemData,\n })\n ).sort((a, b) => {\n return this.items.indexOf(a.itemData) < this.items.indexOf(b.itemData)\n ? -1\n : 1;\n });\n\n this.modalInstance.save(selectedItems);\n }\n\n private loadSearchResults(): void {\n this.cancelCurrentSearch();\n\n this.isSearching = true;\n\n this.performSearch((result) => {\n this.isSearching = false;\n this.items = result.items;\n });\n }\n\n private createInitialSelectedItemsMap(): void {\n this.selectedIdMap = new Map(\n this.context.initialValue.map((item) => [\n item[this.context.idProperty],\n item,\n ])\n );\n }\n\n private performSearch(\n processResults: (result: SkyAutocompleteSearchAsyncResult) => void\n ): void {\n this.currentSearchSub = this.context\n .searchAsync({\n displayType: 'modal',\n offset: this.offset,\n searchText: this.searchText || '',\n continuationData: this.continuationData,\n })\n .pipe(take(1))\n .subscribe((result) => {\n processResults(result);\n\n this.continuationData = result.continuationData;\n this.hasMoreItems = result.hasMore;\n this.offset = this.items.length;\n\n this.updateDisplayedItems();\n\n this.changeDetector.markForCheck();\n });\n }\n\n private updateDisplayedItems(): void {\n if (this.onlyShowSelected) {\n this.displayedItems = this.items.filter((item) =>\n this.selectedIdMap.has(item[this.context.idProperty])\n );\n } else {\n this.displayedItems = this.items;\n }\n }\n\n private cancelCurrentSearch(): void {\n if (this.currentSearchSub) {\n this.currentSearchSub.unsubscribe();\n this.currentSearchSub = undefined;\n this.isLoadingMore = false;\n this.isSearching = false;\n }\n }\n}\n","<sky-modal>\n <sky-modal-header>\n <ng-container *ngIf=\"context.userConfig?.title; else defaultTitle\">\n {{ context.userConfig.title }}\n </ng-container>\n </sky-modal-header>\n <sky-modal-content>\n <sky-wait [isWaiting]=\"isSearching\"></sky-wait>\n <div\n [skyViewkeeper]=\"[\n '.sky-lookup-show-more-modal-toolbar',\n '.sky-lookup-show-more-modal-muiltiselect-toolbar'\n ]\"\n >\n <sky-toolbar class=\"sky-lookup-show-more-modal-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n *ngIf=\"context.showAddButton\"\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"add\"\n iconType=\"skyux\"\n ></sky-icon>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"plus-circle\"></sky-icon>\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n <sky-toolbar\n *ngIf=\"context.selectMode === 'multiple'\"\n class=\"sky-lookup-show-more-modal-muiltiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\n \"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\n \"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDisplayedItems()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"!isSearching && displayedItems.length === 0\"\n class=\"sky-font-deemphasized sky-lookup-show-more-no-results\"\n >\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let item of displayedItems\"\n [isSelected]=\"\n item[context.idProperty] | skyLookupItemSelected: selectedIdMap\n \"\n [selectable]=\"context.selectMode === 'multiple'\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n context.userConfig?.itemTemplate\n ? context.userConfig?.itemTemplate\n : defaultItemTemplate;\n context: { item: item }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"hasMoreItems\"\n [loading]=\"isLoadingMore\"\n (scrollEnd)=\"infiniteScrollEnd()\"\n >\n </sky-infinite-scroll>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"\n sky-btn\n sky-btn-primary\n sky-margin-inline-compact\n sky-lookup-show-more-modal-save\n \"\n type=\"button\"\n [disabled]=\"isSearching\"\n (click)=\"save()\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template let-item=\"item\" #defaultItemTemplate>\n {{ item[context.descriptorProperty] }}\n</ng-template>\n\n<ng-template #defaultTitle>\n <ng-container *ngIf=\"context.selectMode === 'single'\">\n {{ 'skyux_lookup_show_more_modal_title_single' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"context.selectMode === 'multiple'\">\n {{ 'skyux_lookup_show_more_modal_title_multiple' | skyLibResources }}\n </ng-container>\n</ng-template>\n"]}
@@ -64,7 +64,7 @@ export class SkyLookupShowMoreModalComponent {
64
64
  }
65
65
  addItems() {
66
66
  if (!this.items || this.items.length === 0) {
67
- let selectedItems = this.selectedItems.slice();
67
+ const selectedItems = this.selectedItems.slice();
68
68
  this.items = this.context.items
69
69
  ? this.context.items.map((item) => {
70
70
  return {
@@ -139,9 +139,9 @@ export class SkyLookupShowMoreModalComponent {
139
139
  }
140
140
  }
141
141
  else {
142
- let selectedItems = this.selectedItems;
142
+ const selectedItems = this.selectedItems;
143
143
  const allItemsIndex = this.items.findIndex((item) => item.value === itemToSelect.value);
144
- let selectedItemsIndex = selectedItems.findIndex((selectedItem) => selectedItem.index === allItemsIndex);
144
+ const selectedItemsIndex = selectedItems.findIndex((selectedItem) => selectedItem.index === allItemsIndex);
145
145
  if (newSelectState && selectedItemsIndex === -1) {
146
146
  selectedItems.push({
147
147
  index: allItemsIndex,
@@ -165,7 +165,7 @@ export class SkyLookupShowMoreModalComponent {
165
165
  this.updateDataState();
166
166
  }
167
167
  searchItems(items) {
168
- let searchText = this.searchText;
168
+ const searchText = this.searchText;
169
169
  if (searchText) {
170
170
  const resultValues = this.context.search(searchText, items.map((item) => {
171
171
  return item.value;
@@ -186,7 +186,7 @@ export class SkyLookupShowMoreModalComponent {
186
186
  }
187
187
  }
188
188
  selectAll() {
189
- let selectedItems = this.selectedItems;
189
+ const selectedItems = this.selectedItems;
190
190
  this.displayedItems.forEach((item) => {
191
191
  if (!item.selected) {
192
192
  item.selected = true;
@@ -206,7 +206,7 @@ export class SkyLookupShowMoreModalComponent {
206
206
  this.changeDetector.markForCheck();
207
207
  }
208
208
  updateDataState() {
209
- let selectedItems = this.selectedItems;
209
+ const selectedItems = this.selectedItems;
210
210
  this.items.forEach((item, index) => {
211
211
  item.selected =
212
212
  selectedItems.findIndex((selectedItem) => selectedItem.index === index) !== -1;
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-show-more-modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-modal.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\n\nimport { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';\n\n/**\n * @internal\n * Internal component to implement the native picker.\n */\n@Component({\n // Suppress this error rather than fix the selector since consumers with unit tests\n // may be looking for an element with this selector. We can change it in the next major\n // version of SKY UX.\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'skyux-lookup-show-more-modal',\n templateUrl: './lookup-show-more-modal.component.html',\n styleUrls: ['./lookup-show-more-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupShowMoreModalComponent\n implements AfterViewInit, OnDestroy\n{\n /**\n * @internal\n * Fires when users select the button to add new options to the list.\n */\n public addClick: Subject<void> = new Subject();\n\n public items: any[];\n\n public dataManagerConfig = {\n sortOptions: [\n {\n id: 'az',\n label: 'Alphabetical (A - Z)',\n descending: false,\n propertyName: 'name',\n },\n {\n id: 'za',\n label: 'Alphabetical (Z - A)',\n descending: true,\n propertyName: 'name',\n },\n ],\n };\n\n public displayedItems: any[] = [];\n public itemsHaveMore: boolean = false;\n public onlyShowSelected: boolean = false;\n public searchText: string;\n public selectedItems: { index: number; itemData: any }[] = [];\n\n private itemIndex: number = 0;\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n public modalInstance: SkyModalInstance,\n public context: SkyLookupShowMoreNativePickerContext,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.searchText = this.context.initialSearch;\n this.addItems();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.next();\n }\n\n public addItems(): void {\n if (!this.items || this.items.length === 0) {\n let selectedItems: any[] = this.selectedItems.slice();\n\n this.items = this.context.items\n ? this.context.items.map((item) => {\n return {\n value: item,\n selected: false,\n };\n })\n : [];\n\n this.items.forEach((item) => {\n const isInitialValue: boolean =\n this.context.initialValue === item.value;\n\n const initialIsArray: boolean = Array.isArray(\n this.context.initialValue\n );\n const initialValueContainsItem: boolean =\n this.context.initialValue.findIndex(\n (initialItem: any) => initialItem === item.value\n ) >= 0;\n\n if (isInitialValue || (initialIsArray && initialValueContainsItem)) {\n item.selected = true;\n const itemIndex = this.items.indexOf(item);\n if (\n selectedItems.findIndex(\n (selectedItem) => selectedItem.index === itemIndex\n ) < 0\n ) {\n selectedItems.push({ index: itemIndex, itemData: item.value });\n }\n }\n });\n\n this.selectedItems = selectedItems;\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n this.itemIndex = this.itemIndex + 10;\n this.searchItems(this.items).then((searchedItems) => {\n this.displayedItems = searchedItems.slice(0, this.itemIndex);\n\n if (this.itemIndex > searchedItems.length) {\n this.itemsHaveMore = false;\n } else {\n this.itemsHaveMore = true;\n }\n this.changeDetector.markForCheck();\n });\n }\n\n public clearAll(): void {\n this.displayedItems.forEach((item) => {\n if (item.selected) {\n item.selected = false;\n }\n });\n this.selectedItems = [];\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n public itemClick(selectedItem: any): void {\n if (this.context.selectMode === 'single') {\n this.onItemSelect(!selectedItem.selected, selectedItem);\n }\n }\n\n public onItemSelect(newSelectState: boolean, itemToSelect: any): void {\n if (this.context.selectMode === 'single') {\n /* Sanity check - single select mode should only alow for a `true` select state */\n /* istanbul ignore else */\n if (newSelectState) {\n itemToSelect.selected = true;\n this.items.forEach((item) => {\n if (item.value !== itemToSelect.value) {\n item.selected = false;\n }\n });\n this.displayedItems.forEach((item) => {\n if (item.value !== itemToSelect.value) {\n item.selected = false;\n }\n });\n const itemIndex = this.items.findIndex(\n (item) => item.value === itemToSelect.value\n );\n this.selectedItems = [\n { index: itemIndex, itemData: this.items[itemIndex].value },\n ];\n }\n } else {\n let selectedItems: { index: number; itemData: any }[] =\n this.selectedItems;\n const allItemsIndex = this.items.findIndex(\n (item) => item.value === itemToSelect.value\n );\n let selectedItemsIndex = selectedItems.findIndex(\n (selectedItem) => selectedItem.index === allItemsIndex\n );\n\n if (newSelectState && selectedItemsIndex === -1) {\n selectedItems.push({\n index: allItemsIndex,\n itemData: this.items[allItemsIndex].value,\n });\n } else if (!newSelectState && selectedItemsIndex !== -1) {\n selectedItems.splice(selectedItemsIndex, 1);\n }\n\n this.selectedItems = selectedItems;\n }\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n public searchApplied(searchText: string) {\n /* istanbul ignore else */\n if (this.searchText !== searchText) {\n this.itemIndex = 10;\n }\n this.searchText = searchText;\n this.updateDataState();\n }\n\n public searchItems(items: any[]): Promise<any[]> {\n let searchText = this.searchText;\n\n if (searchText) {\n const resultValues = this.context.search(\n searchText,\n items.map((item) => {\n return item.value;\n })\n );\n\n if (resultValues instanceof Array) {\n const result = items.filter(\n (item) => resultValues.indexOf(item.value) >= 0\n );\n return Promise.resolve(result);\n } else {\n return resultValues.then((values) => {\n const result = items.filter(\n (item) => values.indexOf(item.value) >= 0\n );\n return Promise.resolve(result);\n });\n }\n } else {\n return Promise.resolve(items);\n }\n }\n\n public selectAll(): void {\n let selectedItems: { index: number; itemData: any }[] = this.selectedItems;\n\n this.displayedItems.forEach((item: any) => {\n if (!item.selected) {\n item.selected = true;\n\n const index = this.items.indexOf(item);\n\n /* Sanity check */\n /* istanbul ignore else */\n if (\n selectedItems.findIndex(\n (selectedItem) => selectedItem.index === index\n ) < 0\n ) {\n selectedItems.push({\n index: index,\n itemData: this.items[index].value,\n });\n }\n }\n });\n\n this.selectedItems = selectedItems;\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n public updateDataState(): void {\n let selectedItems: { index: number; itemData: any }[] = this.selectedItems;\n this.items.forEach((item: any, index: number) => {\n item.selected =\n selectedItems.findIndex(\n (selectedItem) => selectedItem.index === index\n ) !== -1;\n });\n\n this.searchItems(this.items).then((searchedItems) => {\n if (this.onlyShowSelected) {\n searchedItems = searchedItems.filter((item) => item.selected);\n }\n this.displayedItems = searchedItems.slice(0, this.itemIndex);\n\n if (this.itemIndex > searchedItems.length) {\n this.itemsHaveMore = false;\n } else {\n this.itemsHaveMore = true;\n }\n\n this.changeDetector.markForCheck();\n });\n }\n\n public updateItemData(data: any[]): void {\n this.context.items = data;\n this.items = undefined;\n this.itemIndex = 10;\n this.selectedItems.forEach((selectedItem) => {\n this.context.items.forEach((item: any, index: number) => {\n if (selectedItem.itemData === item) {\n selectedItem.index = index;\n }\n });\n });\n\n this.addItems();\n\n this.changeDetector.markForCheck();\n }\n}\n","<sky-modal>\n <sky-modal-header>\n <ng-container *ngIf=\"context.userConfig?.title; else defaultTitle\">\n {{ context.userConfig.title }}\n </ng-container>\n </sky-modal-header>\n <sky-modal-content>\n <div\n [skyViewkeeper]=\"[\n '.sky-lookup-show-more-modal-toolbar',\n '.sky-lookup-show-more-modal-muiltiselect-toolbar'\n ]\"\n >\n <sky-toolbar class=\"sky-lookup-show-more-modal-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n *ngIf=\"context.showAddButton\"\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"add\"\n iconType=\"skyux\"\n ></sky-icon>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"plus-circle\"></sky-icon>\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n <sky-toolbar\n *ngIf=\"context.selectMode === 'multiple'\"\n class=\"sky-lookup-show-more-modal-muiltiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\n \"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\n \"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"displayedItems.length === 0\"\n class=\"sky-font-deemphasized sky-lookup-show-more-no-results\"\n >\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let item of displayedItems\"\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n context.userConfig?.itemTemplate\n ? context.userConfig?.itemTemplate\n : defaultItemTemplate;\n context: { item: item.value }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n <sky-infinite-scroll [enabled]=\"itemsHaveMore\" (scrollEnd)=\"addItems()\">\n </sky-infinite-scroll>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"\n sky-btn\n sky-btn-primary\n sky-margin-inline-compact\n sky-lookup-show-more-modal-save\n \"\n type=\"button\"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template let-item=\"item\" #defaultItemTemplate>\n {{ item[context.descriptorProperty] }}\n</ng-template>\n\n<ng-template #defaultTitle>\n <ng-container *ngIf=\"context.selectMode === 'single'\">\n {{ 'skyux_lookup_show_more_modal_title_single' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"context.selectMode === 'multiple'\">\n {{ 'skyux_lookup_show_more_modal_title_multiple' | skyLibResources }}\n </ng-container>\n</ng-template>\n"]}
1
+ {"version":3,"file":"lookup-show-more-modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-modal.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup-show-more-modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n} from '@angular/core';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\n\nimport { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';\n\n/**\n * @internal\n * Internal component to implement the native picker.\n */\n@Component({\n // Suppress this error rather than fix the selector since consumers with unit tests\n // may be looking for an element with this selector. We can change it in the next major\n // version of SKY UX.\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'skyux-lookup-show-more-modal',\n templateUrl: './lookup-show-more-modal.component.html',\n styleUrls: ['./lookup-show-more-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupShowMoreModalComponent\n implements AfterViewInit, OnDestroy\n{\n /**\n * @internal\n * Fires when users select the button to add new options to the list.\n */\n public addClick: Subject<void> = new Subject();\n\n public items: any[];\n\n public dataManagerConfig = {\n sortOptions: [\n {\n id: 'az',\n label: 'Alphabetical (A - Z)',\n descending: false,\n propertyName: 'name',\n },\n {\n id: 'za',\n label: 'Alphabetical (Z - A)',\n descending: true,\n propertyName: 'name',\n },\n ],\n };\n\n public displayedItems: any[] = [];\n public itemsHaveMore = false;\n public onlyShowSelected = false;\n public searchText: string;\n public selectedItems: { index: number; itemData: any }[] = [];\n\n private itemIndex = 0;\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n public modalInstance: SkyModalInstance,\n public context: SkyLookupShowMoreNativePickerContext,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.searchText = this.context.initialSearch;\n this.addItems();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.next();\n }\n\n public addItems(): void {\n if (!this.items || this.items.length === 0) {\n const selectedItems: any[] = this.selectedItems.slice();\n\n this.items = this.context.items\n ? this.context.items.map((item) => {\n return {\n value: item,\n selected: false,\n };\n })\n : [];\n\n this.items.forEach((item) => {\n const isInitialValue: boolean =\n this.context.initialValue === item.value;\n\n const initialIsArray: boolean = Array.isArray(\n this.context.initialValue\n );\n const initialValueContainsItem: boolean =\n this.context.initialValue.findIndex(\n (initialItem: any) => initialItem === item.value\n ) >= 0;\n\n if (isInitialValue || (initialIsArray && initialValueContainsItem)) {\n item.selected = true;\n const itemIndex = this.items.indexOf(item);\n if (\n selectedItems.findIndex(\n (selectedItem) => selectedItem.index === itemIndex\n ) < 0\n ) {\n selectedItems.push({ index: itemIndex, itemData: item.value });\n }\n }\n });\n\n this.selectedItems = selectedItems;\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n this.itemIndex = this.itemIndex + 10;\n this.searchItems(this.items).then((searchedItems) => {\n this.displayedItems = searchedItems.slice(0, this.itemIndex);\n\n if (this.itemIndex > searchedItems.length) {\n this.itemsHaveMore = false;\n } else {\n this.itemsHaveMore = true;\n }\n this.changeDetector.markForCheck();\n });\n }\n\n public clearAll(): void {\n this.displayedItems.forEach((item) => {\n if (item.selected) {\n item.selected = false;\n }\n });\n this.selectedItems = [];\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n public itemClick(selectedItem: any): void {\n if (this.context.selectMode === 'single') {\n this.onItemSelect(!selectedItem.selected, selectedItem);\n }\n }\n\n public onItemSelect(newSelectState: boolean, itemToSelect: any): void {\n if (this.context.selectMode === 'single') {\n /* Sanity check - single select mode should only alow for a `true` select state */\n /* istanbul ignore else */\n if (newSelectState) {\n itemToSelect.selected = true;\n this.items.forEach((item) => {\n if (item.value !== itemToSelect.value) {\n item.selected = false;\n }\n });\n this.displayedItems.forEach((item) => {\n if (item.value !== itemToSelect.value) {\n item.selected = false;\n }\n });\n const itemIndex = this.items.findIndex(\n (item) => item.value === itemToSelect.value\n );\n this.selectedItems = [\n { index: itemIndex, itemData: this.items[itemIndex].value },\n ];\n }\n } else {\n const selectedItems: { index: number; itemData: any }[] =\n this.selectedItems;\n const allItemsIndex = this.items.findIndex(\n (item) => item.value === itemToSelect.value\n );\n const selectedItemsIndex = selectedItems.findIndex(\n (selectedItem) => selectedItem.index === allItemsIndex\n );\n\n if (newSelectState && selectedItemsIndex === -1) {\n selectedItems.push({\n index: allItemsIndex,\n itemData: this.items[allItemsIndex].value,\n });\n } else if (!newSelectState && selectedItemsIndex !== -1) {\n selectedItems.splice(selectedItemsIndex, 1);\n }\n\n this.selectedItems = selectedItems;\n }\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n public searchApplied(searchText: string) {\n /* istanbul ignore else */\n if (this.searchText !== searchText) {\n this.itemIndex = 10;\n }\n this.searchText = searchText;\n this.updateDataState();\n }\n\n public searchItems(items: any[]): Promise<any[]> {\n const searchText = this.searchText;\n\n if (searchText) {\n const resultValues = this.context.search(\n searchText,\n items.map((item) => {\n return item.value;\n })\n );\n\n if (resultValues instanceof Array) {\n const result = items.filter(\n (item) => resultValues.indexOf(item.value) >= 0\n );\n return Promise.resolve(result);\n } else {\n return resultValues.then((values) => {\n const result = items.filter(\n (item) => values.indexOf(item.value) >= 0\n );\n return Promise.resolve(result);\n });\n }\n } else {\n return Promise.resolve(items);\n }\n }\n\n public selectAll(): void {\n const selectedItems: { index: number; itemData: any }[] =\n this.selectedItems;\n\n this.displayedItems.forEach((item: any) => {\n if (!item.selected) {\n item.selected = true;\n\n const index = this.items.indexOf(item);\n\n /* Sanity check */\n /* istanbul ignore else */\n if (\n selectedItems.findIndex(\n (selectedItem) => selectedItem.index === index\n ) < 0\n ) {\n selectedItems.push({\n index: index,\n itemData: this.items[index].value,\n });\n }\n }\n });\n\n this.selectedItems = selectedItems;\n this.updateDataState();\n this.changeDetector.markForCheck();\n }\n\n public updateDataState(): void {\n const selectedItems: { index: number; itemData: any }[] =\n this.selectedItems;\n this.items.forEach((item: any, index: number) => {\n item.selected =\n selectedItems.findIndex(\n (selectedItem) => selectedItem.index === index\n ) !== -1;\n });\n\n this.searchItems(this.items).then((searchedItems) => {\n if (this.onlyShowSelected) {\n searchedItems = searchedItems.filter((item) => item.selected);\n }\n this.displayedItems = searchedItems.slice(0, this.itemIndex);\n\n if (this.itemIndex > searchedItems.length) {\n this.itemsHaveMore = false;\n } else {\n this.itemsHaveMore = true;\n }\n\n this.changeDetector.markForCheck();\n });\n }\n\n public updateItemData(data: any[]): void {\n this.context.items = data;\n this.items = undefined;\n this.itemIndex = 10;\n this.selectedItems.forEach((selectedItem) => {\n this.context.items.forEach((item: any, index: number) => {\n if (selectedItem.itemData === item) {\n selectedItem.index = index;\n }\n });\n });\n\n this.addItems();\n\n this.changeDetector.markForCheck();\n }\n}\n","<sky-modal>\n <sky-modal-header>\n <ng-container *ngIf=\"context.userConfig?.title; else defaultTitle\">\n {{ context.userConfig.title }}\n </ng-container>\n </sky-modal-header>\n <sky-modal-content>\n <div\n [skyViewkeeper]=\"[\n '.sky-lookup-show-more-modal-toolbar',\n '.sky-lookup-show-more-modal-muiltiselect-toolbar'\n ]\"\n >\n <sky-toolbar class=\"sky-lookup-show-more-modal-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n *ngIf=\"context.showAddButton\"\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"add\"\n iconType=\"skyux\"\n ></sky-icon>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"plus-circle\"></sky-icon>\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n <sky-toolbar\n *ngIf=\"context.selectMode === 'multiple'\"\n class=\"sky-lookup-show-more-modal-muiltiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\n \"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\n \"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"displayedItems.length === 0\"\n class=\"sky-font-deemphasized sky-lookup-show-more-no-results\"\n >\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let item of displayedItems\"\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n context.userConfig?.itemTemplate\n ? context.userConfig?.itemTemplate\n : defaultItemTemplate;\n context: { item: item.value }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n <sky-infinite-scroll [enabled]=\"itemsHaveMore\" (scrollEnd)=\"addItems()\">\n </sky-infinite-scroll>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"\n sky-btn\n sky-btn-primary\n sky-margin-inline-compact\n sky-lookup-show-more-modal-save\n \"\n type=\"button\"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template let-item=\"item\" #defaultItemTemplate>\n {{ item[context.descriptorProperty] }}\n</ng-template>\n\n<ng-template #defaultTitle>\n <ng-container *ngIf=\"context.selectMode === 'single'\">\n {{ 'skyux_lookup_show_more_modal_title_single' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"context.selectMode === 'multiple'\">\n {{ 'skyux_lookup_show_more_modal_title_multiple' | skyLibResources }}\n </ng-container>\n</ng-template>\n"]}
@@ -1,21 +1,21 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Optional, Output, Self, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
- import { fromEvent as observableFromEvent, Subject } from 'rxjs';
4
- import { take, takeUntil } from 'rxjs/operators';
5
3
  import { SkyAppWindowRef } from '@skyux/core';
6
4
  import { SkyInputBoxHostService } from '@skyux/forms';
7
5
  import { SkyLibResourcesService } from '@skyux/i18n';
8
6
  import { SkyTokensMessageType, } from '@skyux/indicators';
9
7
  import { SkyModalService } from '@skyux/modals';
10
8
  import { SkyThemeService } from '@skyux/theme';
11
- import { SkyAutocompleteMessageType } from '../autocomplete/types/autocomplete-message-type';
9
+ import { Subject, fromEvent as observableFromEvent } from 'rxjs';
10
+ import { take, takeUntil } from 'rxjs/operators';
12
11
  import { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';
13
- import { SkyLookupAutocompleteAdapter } from './lookup-autocomplete-adapter';
12
+ import { SkyAutocompleteMessageType } from '../autocomplete/types/autocomplete-message-type';
14
13
  import { SkyLookupAdapterService } from './lookup-adapter.service';
15
- import { SkyLookupShowMoreModalComponent } from './lookup-show-more-modal.component';
16
- import { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';
14
+ import { SkyLookupAutocompleteAdapter } from './lookup-autocomplete-adapter';
17
15
  import { SkyLookupShowMoreAsyncModalComponent } from './lookup-show-more-async-modal.component';
16
+ import { SkyLookupShowMoreModalComponent } from './lookup-show-more-modal.component';
18
17
  import { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';
18
+ import { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';
19
19
  import * as i0 from "@angular/core";
20
20
  import * as i1 from "@skyux/core";
21
21
  import * as i2 from "@angular/forms";
@@ -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
- /* istanbul ignore next */
65
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
66
66
  this.onChange = (value) => { };
67
- /* istanbul ignore next */
67
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
68
68
  this.onTouched = () => { };
69
69
  ngControl.valueAccessor = this;
70
70
  }
@@ -88,7 +88,7 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
88
88
  * @default "mulitple"
89
89
  */
90
90
  set selectMode(value) {
91
- let multipleToSingle = value === 'single' && this.selectMode === 'multiple';
91
+ const multipleToSingle = value === 'single' && this.selectMode === 'multiple';
92
92
  this._selectMode = value;
93
93
  this.updateForSelectMode();
94
94
  if (multipleToSingle) {
@@ -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.inputTextValue ===
327
- this.autocompleteInputDirective.value[this.descriptorProperty];
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();
@@ -338,7 +339,7 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
338
339
  }
339
340
  createNativePickerInstance(initialSearch) {
340
341
  var _a;
341
- let initialValue = this.value;
342
+ const initialValue = this.value;
342
343
  const modalConfig = ((_a = this.showMoreConfig) === null || _a === void 0 ? void 0 : _a.nativePickerConfig) || {};
343
344
  if (!modalConfig.itemTemplate) {
344
345
  modalConfig.itemTemplate = this.searchResultTemplate;
@@ -389,7 +390,7 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
389
390
  });
390
391
  }
391
392
  else {
392
- let initialValue = this.value;
393
+ const initialValue = this.value;
393
394
  this.openNativePicker = this.createNativePickerInstance(initialSearch);
394
395
  this.openNativePicker.componentInstance.addClick.subscribe(() => {
395
396
  this.addButtonClicked();
@@ -491,7 +492,8 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
491
492
  }
492
493
  if (this.data.indexOf(args.item) >= 0) {
493
494
  if (this.openNativePicker) {
494
- (this.openNativePicker.componentInstance).onItemSelect(true, { value: args.item, selected: false });
495
+ this.openNativePicker
496
+ .componentInstance.onItemSelect(true, { value: args.item, selected: false });
495
497
  }
496
498
  else {
497
499
  let newValue = this.value;