{"version":3,"file":"skyux-select-field.mjs","sources":["../../../../../libs/components/select-field/src/lib/modules/select-field/select-field-picker-context.ts","../../../../../libs/components/select-field/src/lib/modules/shared/sky-select-field-resources.module.ts","../../../../../libs/components/select-field/src/lib/modules/select-field/select-field-picker.component.ts","../../../../../libs/components/select-field/src/lib/modules/select-field/select-field-picker.component.html","../../../../../libs/components/select-field/src/lib/modules/select-field/select-field.component.ts","../../../../../libs/components/select-field/src/lib/modules/select-field/select-field.component.html","../../../../../libs/components/select-field/src/lib/modules/select-field/select-field.module.ts","../../../../../libs/components/select-field/src/skyux-select-field.ts"],"sourcesContent":["import { Observable } from 'rxjs';\n\nimport { SkySelectField } from './types/select-field';\nimport { SkySelectFieldSelectMode } from './types/select-field-select-mode';\n\n/**\n * Provides values to a custom picker.\n * @deprecated `SkySelectFieldComponent` is deprecated. Use `SkyLookupComponent` instead.\n */\nexport class SkySelectFieldPickerContext {\n  /**\n   * An array of `SkySelectField` objects from the select field's `data` property.\n   * Use this property to populate the custom picker with items for users to select.\n   */\n  public data: Observable<SkySelectField[]>;\n  /**\n   * Text from the select field's `pickerHeading` property. If your custom picker is a modal,\n   * use this property to display a header.\n   */\n  public headingText?: string;\n\n  /**\n   * The boolean value from the select field's `inMemorySearchEnabled`. When `false`, it\n   * circumvents the list-builder search function to enable consumers to provide results\n   * from a remote source by updating the `data` value.\n   */\n  public inMemorySearchEnabled = true;\n\n  /**\n   * The select field's current value. If the select field's `selectMode` is set to `single`,\n   * then this value is a `SkySelectField` object. If `selectMode` is set to `multiple`, then\n   * this value is an array of `SkySelectField` objects. Use this property to select the\n   * corresponding items in the custom picker.\n   */\n  public selectedValue?: any;\n  /**\n   * The `SkySelectFieldSelectMode` value from the select field's `selectMode` property.\n   * Use this property to determine whether users can select one item or multiple items.\n   */\n  public selectMode?: SkySelectFieldSelectMode;\n  /**\n   * The boolean value from the select field's `showAddNewRecordButton` property.\n   * Use this property to determine whether to display a button in the custom picker\n   * for users to add items.\n   * @default false\n   */\n  public showAddNewRecordButton = false;\n}\n","/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-select-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n  SkyI18nModule,\n  SkyLibResources,\n  SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n  'EN-US': {\n    skyux_select_field_add_new_record_button: { message: 'New' },\n    skyux_select_field_multiple_select_open_button: {\n      message: 'Select values',\n    },\n    skyux_select_field_multiple_select_picker_heading: {\n      message: 'Select values',\n    },\n    skyux_select_field_multiple_select_summary: {\n      message: '{0} items selected',\n    },\n    skyux_select_field_single_select_placeholder: { message: 'Select a value' },\n    skyux_select_field_single_select_picker_heading: {\n      message: 'Select a value',\n    },\n    skyux_select_field_single_select_open_button_title: {\n      message: 'Click to select a value',\n    },\n    skyux_select_field_single_select_clear_button_title: {\n      message: 'Clear selection',\n    },\n    skyux_select_field_picker_close_button: { message: 'Cancel' },\n    skyux_select_field_picker_save_button: { message: 'Select' },\n    skyux_select_field_picker_show_all_category: { message: 'Show all' },\n  },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n  exports: [SkyI18nModule],\n})\nexport class SkySelectFieldResourcesModule {}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n  inject,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n  SkyListFilterInlineModel,\n  SkyListFiltersModule,\n  SkyListModule,\n  SkyListPagingModule,\n  SkyListToolbarComponent,\n  SkyListToolbarModule,\n} from '@skyux/list-builder';\nimport { ListItemModel } from '@skyux/list-builder-common';\nimport {\n  SkyListViewChecklistComponent,\n  SkyListViewChecklistModule,\n} from '@skyux/list-builder-view-checklist';\nimport { SkyModalInstance, SkyModalModule } from '@skyux/modals';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkySelectFieldResourcesModule } from '../shared/sky-select-field-resources.module';\n\nimport { SkySelectFieldPickerContext } from './select-field-picker-context';\nimport { SkySelectField } from './types/select-field';\nimport { SkySelectFieldSelectMode } from './types/select-field-select-mode';\n\n@Component({\n  selector: 'sky-select-field-picker',\n  templateUrl: './select-field-picker.component.html',\n  styleUrls: ['./select-field-picker.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    FormsModule,\n    SkyIconModule,\n    SkyListFiltersModule,\n    SkyListModule,\n    SkyListPagingModule,\n    SkyListToolbarModule,\n    SkyListViewChecklistModule,\n    SkyModalModule,\n    SkySelectFieldResourcesModule,\n  ],\n})\nexport class SkySelectFieldPickerComponent\n  implements OnInit, AfterContentInit, OnDestroy\n{\n  /**\n   * Fires when a search is submitted from the picker's toolbar.\n   * @internal\n   */\n  @Output()\n  public searchApplied: EventEmitter<string> = new EventEmitter<string>();\n\n  public categories: string[];\n  public data: Observable<any>;\n  public selectMode: SkySelectFieldSelectMode;\n  public headingText: string;\n\n  public set inMemorySearchEnabled(value: boolean) {\n    if (value !== this._inMemorySearchEnabled) {\n      this._inMemorySearchEnabled = value;\n    }\n  }\n\n  public get inMemorySearchEnabled(): boolean {\n    if (this._inMemorySearchEnabled === undefined) {\n      return true;\n    }\n\n    return this._inMemorySearchEnabled;\n  }\n\n  public readonly defaultCategory = 'any';\n\n  public selectedCategory = this.defaultCategory;\n  public selectedIds: any[] = [];\n\n  public addNewRecordButtonClick = new Subject<void>();\n  public showAddNewRecordButton = false;\n\n  @ViewChild(SkyListViewChecklistComponent, {\n    static: true,\n  })\n  private listViewChecklist: SkyListViewChecklistComponent;\n\n  @ViewChild(SkyListToolbarComponent, {\n    static: true,\n  })\n  private listToolbar: SkyListToolbarComponent;\n\n  private ngUnsubscribe = new Subject<void>();\n\n  private _inMemorySearchEnabled: boolean;\n\n  readonly #context = inject(SkySelectFieldPickerContext);\n  readonly #instance = inject(SkyModalInstance);\n  readonly #elementRef = inject(ElementRef);\n  readonly #windowRef = inject(SkyAppWindowRef);\n\n  public ngOnInit(): void {\n    this.data = this.#context.data;\n    this.headingText = this.#context.headingText;\n    this.selectMode = this.#context.selectMode;\n    this.showAddNewRecordButton = this.#context.showAddNewRecordButton;\n    this.inMemorySearchEnabled = this.#context.inMemorySearchEnabled;\n\n    this.selectedIds = this.getSelectedIds();\n    this.assignCategories();\n\n    this.listToolbar.searchApplied\n      .pipe(takeUntil(this.ngUnsubscribe))\n      .subscribe((searchText: string) => {\n        this.searchApplied.emit(searchText);\n      });\n  }\n\n  public ngAfterContentInit(): void {\n    this.#windowRef.nativeWindow.setTimeout(() => {\n      this.#elementRef.nativeElement.querySelector('.sky-search-input').focus();\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.addNewRecordButtonClick.complete();\n    this.ngUnsubscribe.next();\n    this.ngUnsubscribe.complete();\n  }\n\n  public onAddNewRecordButtonClick(): void {\n    this.addNewRecordButtonClick.next();\n  }\n\n  public save(): void {\n    this.latestData.subscribe((items: SkySelectField[]) => {\n      const results = items.filter((item: SkySelectField) => {\n        return this.selectedIds.indexOf(item.id) > -1;\n      });\n      this.#instance.save(results);\n    });\n  }\n\n  public close(): void {\n    this.#instance.close();\n  }\n\n  public filterByCategory(model: ListItemModel, category: string): boolean {\n    return (\n      category === this.defaultCategory || model.data.category === category\n    );\n  }\n\n  public onCategoryChange(change: SkyListFilterInlineModel, filter: any): void {\n    // Reset the selected values when the category changes.\n    this.listViewChecklist.clearSelections();\n    filter.changed(change);\n  }\n\n  public onSelectedIdsChange(selectedMap: Map<string, boolean>): void {\n    this.latestData.subscribe((items: SkySelectField[]) => {\n      this.selectedIds = items\n        .filter((item) => selectedMap.get(item.id))\n        .map((item) => item.id);\n    });\n  }\n\n  private assignCategories(): void {\n    this.latestData.subscribe((items: SkySelectField[]) => {\n      const allCategories = items.map((item) => item.category);\n      // Remove duplicate category names:\n      this.categories = allCategories.filter(\n        (category: string, i: number, categories: string[]) => {\n          return category && categories.indexOf(category) === i;\n        },\n      );\n    });\n  }\n\n  private get latestData(): Observable<SkySelectField[]> {\n    return this.data.pipe(take(1));\n  }\n\n  private getSelectedIds(): string[] {\n    const context = this.#context;\n    const selectedValue = context.selectedValue;\n\n    if (selectedValue) {\n      if (context.selectMode === 'single') {\n        return [context.selectedValue.id];\n      }\n\n      return context.selectedValue.map((item: SkySelectField) => item.id);\n    }\n\n    return [];\n  }\n}\n","<div class=\"sky-select-field-picker\">\n  <sky-modal>\n    <sky-modal-header>\n      {{ headingText }}\n    </sky-modal-header>\n    <sky-modal-content>\n      <div class=\"sky-select-field-picker-content\">\n        <sky-list\n          [data]=\"data\"\n          [selectedIds]=\"selectedIds\"\n          (selectedIdsChange)=\"onSelectedIdsChange($event)\"\n        >\n          <sky-list-toolbar [inMemorySearchEnabled]=\"inMemorySearchEnabled\">\n            @if (showAddNewRecordButton) {\n              <sky-list-toolbar-search-actions>\n                <button\n                  class=\"sky-btn sky-btn-default sky-select-field-picker-btn-new\"\n                  type=\"button\"\n                  [attr.title]=\"\n                    'skyux_select_field_add_new_record_button' | skyLibResources\n                  \"\n                  (click)=\"onAddNewRecordButtonClick()\"\n                >\n                  <sky-icon iconName=\"add\" />\n                  <span class=\"sky-select-field-picker-btn-new-text\">{{\n                    'skyux_select_field_add_new_record_button' | skyLibResources\n                  }}</span>\n                </button>\n              </sky-list-toolbar-search-actions>\n            }\n            @if (categories && categories.length) {\n              <sky-list-filter-inline>\n                <sky-list-filter-inline-item\n                  name=\"category\"\n                  [defaultValue]=\"defaultCategory\"\n                  [filter]=\"filterByCategory\"\n                  [value]=\"defaultCategory\"\n                >\n                  <ng-template let-filter=\"filter\">\n                    <select\n                      [ngModel]=\"filter.value\"\n                      (ngModelChange)=\"onCategoryChange($event, filter)\"\n                    >\n                      <option [value]=\"defaultCategory\">\n                        {{\n                          'skyux_select_field_picker_show_all_category'\n                            | skyLibResources\n                        }}\n                      </option>\n                      @for (category of categories; track category) {\n                        <option [value]=\"category\">\n                          {{ category }}\n                        </option>\n                      }\n                    </select>\n                  </ng-template>\n                </sky-list-filter-inline-item>\n              </sky-list-filter-inline>\n            }\n          </sky-list-toolbar>\n          <sky-list-view-checklist [selectMode]=\"selectMode\" />\n          <sky-list-paging pageSize=\"6\" />\n        </sky-list>\n      </div>\n    </sky-modal-content>\n    <sky-modal-footer>\n      <button\n        type=\"button\"\n        class=\"sky-btn sky-btn-primary sky-select-field-picker-btn-save\"\n        (click)=\"save()\"\n      >\n        {{ 'skyux_select_field_picker_save_button' | skyLibResources }}\n      </button>\n      <button\n        type=\"button\"\n        class=\"sky-btn sky-btn-link sky-select-field-picker-btn-close\"\n        (click)=\"close()\"\n      >\n        {{ 'skyux_select_field_picker_close_button' | skyLibResources }}\n      </button>\n    </sky-modal-footer>\n  </sky-modal>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  forwardRef,\n  inject,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToken, SkyTokensModule } from '@skyux/indicators';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport { Observable, of as observableOf } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SkySelectFieldResourcesModule } from '../shared/sky-select-field-resources.module';\n\nimport { SkySelectFieldPickerContext } from './select-field-picker-context';\nimport { SkySelectFieldPickerComponent } from './select-field-picker.component';\nimport { SkySelectField } from './types/select-field';\nimport { SkySelectFieldCustomPicker } from './types/select-field-custom-picker';\nimport { SkySelectFieldSelectMode } from './types/select-field-select-mode';\n\n/**\n * @deprecated `SkySelectFieldComponent` is deprecated. Use `SkyLookupComponent` instead.\n */\n@Component({\n  selector: 'sky-select-field',\n  templateUrl: './select-field.component.html',\n  styleUrls: ['./select-field.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SkySelectFieldComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    CommonModule,\n    SkyIconModule,\n    SkySelectFieldResourcesModule,\n    SkyTokensModule,\n  ],\n})\nexport class SkySelectFieldComponent\n  implements ControlValueAccessor, OnDestroy\n{\n  /**\n   * The ARIA label for the text input or button. This sets the `aria-label` attribute to provide a text equivalent for screen readers\n   * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n   * If the input or button includes a visible label, use `ariaLabelledBy` instead.\n   * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n   */\n  @Input()\n  public ariaLabel: string;\n\n  /**\n   * The HTML element ID of the element that labels\n   * the text input or button. This sets the `aria-labelledby` attribute to provide a text equivalent for screen readers\n   * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n   * If the input or button does not include a visible label, use `ariaLabel` instead.\n   * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n   */\n  @Input()\n  public ariaLabelledBy: string;\n\n  /**\n   * Defines a data source to populate the modal picker with items that users can select.\n   * This property accepts an observable array of `SkySelectField` values. The `SkySelectField`\n   * type extends the any type and supports `id`, `label`, and `category` values.\n   * @required\n   */\n  @Input()\n  public data: Observable<SkySelectField[]>;\n\n  /**\n   * The `SkySelectFieldCustomPicker` object that displays a custom UI when users\n   * select the select field button.\n   */\n  @Input()\n  public customPicker: SkySelectFieldCustomPicker;\n\n  /**\n   * The property to highlight in the picker with bold text. The valid options are\n   * the values that the `data` property injects into the component: `\"id\"`, `\"label\"`, and `\"category\"`.\n   * @default \"label\"\n   */\n  @Input()\n  public set descriptorKey(value: string) {\n    this._descriptorKey = value;\n  }\n\n  public get descriptorKey(): string {\n    return this._descriptorKey || 'label';\n  }\n\n  /**\n   * Whether to disable the text input or button and prevent users\n   * from opening the picker on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n   * To set the disabled state on reactive forms, use the `FormControl` instead.\n   * @default false\n   */\n  @Input()\n  public set disabled(value: boolean) {\n    this._disabled = value;\n  }\n\n  public get disabled(): boolean {\n    return this._disabled || false;\n  }\n\n  /**\n   * The selection mode that determines whether users can select one item\n   * or multiple items. The valid options are `single`, which displays a text input,\n   * and `multiple`, which displays a button.\n   * @default \"multiple\"\n   */\n  @Input()\n  public set selectMode(value: SkySelectFieldSelectMode) {\n    this._selectMode = value;\n  }\n\n  public get selectMode(): SkySelectFieldSelectMode {\n    return this._selectMode || 'multiple';\n  }\n\n  /**\n   * The label for the button when `selectMode` is set to `multiple`.\n   * @default \"Select values\"\n   */\n  @Input()\n  public multipleSelectOpenButtonText: string;\n\n  /**\n   * Whether to use the default search function. To circumvent the list-builder search function\n   * and provide search results from a remote source, set this property to `false` and specify the source\n   * with the *data* property.\n   * @default true\n   */\n  @Input()\n  public inMemorySearchEnabled: boolean;\n\n  /**\n   * Tooltip text for the icon that clears the text input when `selectMode`\n   * is set to `\"single\"`. The clear icon appears after users select an item.\n   * @default \"Clear selection\"\n   */\n  @Input()\n  public singleSelectClearButtonTitle: string;\n\n  /**\n   * Tooltip text for the text input when `selectMode` is set to `\"single\"`.\n   * @default \"Click to select a value\"\n   */\n  @Input()\n  public singleSelectOpenButtonTitle: string;\n\n  /**\n   * Placeholder text to display in the text input when `selectMode` is set to\n   * `\"single\"` and no item is selected.\n   * @default \"Select a value\"\n   */\n  @Input()\n  public singleSelectPlaceholderText: string;\n\n  /**\n   * The header for the picker. When `selectMode` is set to `\"single\"`, the default\n   * header is \"Select a value.\" When `selectMode` is set to `\"multiple\"`, the default header\n   * is \"Select values.\"\n   */\n  @Input()\n  public pickerHeading: string;\n\n  /**\n   * Whether to display a button in the picker for users to add items. Consumers\n   * must tie into the `addNewRecordButtonClick` event and provide the logic to add items.\n   * @default false\n   */\n  @Input()\n  public showAddNewRecordButton = false;\n\n  /**\n   * Fires when the component loses focus. This event does not emit a value.\n   */\n  @Output()\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  public blur = new EventEmitter();\n\n  /**\n   * Fires when users select the add button in the picker to add an item. The button appears\n   * when when `showAddNewRecordButton` is set to `true`.\n   */\n  @Output()\n  public addNewRecordButtonClick = new EventEmitter<void>();\n\n  /**\n   * Fires when a search is submitted from the picker's toolbar.\n   */\n  @Output()\n  public searchApplied: EventEmitter<string> = new EventEmitter<string>();\n\n  public get value(): any {\n    return this._value;\n  }\n\n  public set value(value: any) {\n    if (JSON.stringify(this._value) !== JSON.stringify(value)) {\n      this._value = value;\n      this.onChange(this.value);\n    }\n  }\n\n  public get singleSelectModeValue(): string {\n    const value = this.value;\n\n    if (value) {\n      return (value as any)[this.descriptorKey];\n    }\n\n    return '';\n  }\n\n  public tokens: SkyToken[];\n\n  private _descriptorKey: string;\n  private _disabled: boolean;\n  private _selectMode: SkySelectFieldSelectMode;\n  private _value: any;\n  private isPickerOpen = false;\n\n  private readonly changeDetector = inject(ChangeDetectorRef);\n  private readonly modalService = inject(SkyModalService);\n  private readonly resourcesService = inject(SkyLibResourcesService);\n  private readonly elementRef = inject(ElementRef);\n\n  constructor() {\n    inject(SkyLogService).deprecated('SkySelectFieldComponent', {\n      deprecationMajorVersion: 6,\n      moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/lookup',\n      replacementRecommendation: 'Use `SkyLookupComponent` instead.',\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.blur.complete();\n    this.addNewRecordButtonClick.complete();\n  }\n\n  public onTokensChange(change: SkyToken[]): void {\n    if (!change || change === this.tokens) {\n      return;\n    }\n\n    const newIds = change.map((token) => token.value.id);\n\n    this.data.pipe(take(1)).subscribe((items: SkySelectField[]) => {\n      const newValues = items.filter((item) => newIds.indexOf(item.id) > -1);\n      this.value = newValues;\n      this.setTokensFromValue();\n      this.changeDetector.markForCheck();\n    });\n  }\n\n  public openPicker(): void {\n    (this.pickerHeading\n      ? observableOf(this.pickerHeading)\n      : this.resourcesService.getString(\n          `skyux_select_field_${this.selectMode}_select_picker_heading`,\n        )\n    )\n      .pipe(take(1))\n      .subscribe((headingText) => {\n        const pickerContext = new SkySelectFieldPickerContext();\n        pickerContext.headingText = headingText;\n        pickerContext.data = this.data;\n        pickerContext.selectedValue = this.value;\n        pickerContext.selectMode = this.selectMode;\n        pickerContext.showAddNewRecordButton = this.showAddNewRecordButton;\n        pickerContext.inMemorySearchEnabled = this.inMemorySearchEnabled;\n\n        if (this.customPicker) {\n          this.openCustomPicker(pickerContext);\n        } else {\n          this.openStandardPicker(pickerContext);\n        }\n      });\n  }\n\n  public writeValue(value: any): void {\n    if (this.disabled) {\n      return;\n    }\n\n    this.value = value;\n    this.setTokensFromValue();\n    this.changeDetector.markForCheck();\n  }\n\n  public onHostFocusOut(): void {\n    if (!this.isPickerOpen) {\n      this.onTouched();\n    }\n  }\n\n  public onTouched(blur = true): void {\n    this._registeredTouchCallback();\n\n    if (blur) {\n      this.blur.emit();\n    }\n  }\n\n  // Angular automatically constructs these methods.\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  public onChange = (value: any): void => {};\n\n  public registerOnChange(fn: (value: any) => void): void {\n    this.onChange = fn;\n  }\n\n  public registerOnTouched(fn: () => void): void {\n    this._registeredTouchCallback = fn;\n  }\n\n  public setDisabledState(disabled: boolean): void {\n    this.disabled = disabled;\n    this.changeDetector.markForCheck();\n  }\n\n  public clearSelection(): void {\n    this.elementRef.nativeElement\n      .querySelector('.sky-select-field-btn')\n      .focus();\n    this.value = undefined;\n  }\n\n  /* istanbul ignore next */\n  private _registeredTouchCallback = (): void => {};\n\n  private setTokensFromValue(): void {\n    // Tokens only appear for multiple select mode.\n    if (this.selectMode === 'single') {\n      return;\n    }\n\n    // Reset tokens if value has been changed to undefined.\n    if (!this.value) {\n      this.tokens = undefined;\n      return;\n    }\n\n    // Collapse the tokens into a single token if the user has selected many options.\n    if (this.value.length > 5) {\n      this.resourcesService\n        .getString(\n          'skyux_select_field_multiple_select_summary',\n          this.value.length.toString(),\n        )\n        .pipe(take(1))\n        .subscribe((label) => {\n          this.tokens = [\n            {\n              value: {\n                [this.descriptorKey]: label,\n              },\n            },\n          ];\n        });\n    } else {\n      this.tokens = this.value.map((value: any) => ({ value }));\n    }\n  }\n\n  private openStandardPicker(pickerContext: SkySelectFieldPickerContext): void {\n    const modalInstance = this.modalService.open(\n      SkySelectFieldPickerComponent,\n      {\n        providers: [\n          {\n            provide: SkySelectFieldPickerContext,\n            useValue: pickerContext,\n          },\n        ],\n      },\n    );\n\n    const picker =\n      modalInstance.componentInstance as SkySelectFieldPickerComponent;\n\n    picker.searchApplied.subscribe((searchText: string) => {\n      this.searchApplied.emit(searchText);\n    });\n\n    picker.addNewRecordButtonClick.subscribe(() => {\n      this.addNewRecordButtonClick.emit();\n    });\n\n    this.isPickerOpen = true;\n\n    modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n      if (result.reason === 'save') {\n        if (this.selectMode === 'single') {\n          this.writeValue(result.data[0]);\n        } else {\n          this.writeValue(result.data);\n        }\n      }\n      this.isPickerOpen = false;\n      this.onTouched(false);\n    });\n  }\n\n  private openCustomPicker(pickerContext: SkySelectFieldPickerContext): void {\n    this.isPickerOpen = true;\n    this.customPicker.open(pickerContext, (value) => {\n      if (this.selectMode === 'single') {\n        this.writeValue(value[0]);\n      } else {\n        this.writeValue(value);\n      }\n      this.onTouched(false);\n      this.isPickerOpen = false;\n    });\n  }\n}\n","<div class=\"sky-select-field\" (focusout)=\"onHostFocusOut()\">\n  <ng-container\n    *ngTemplateOutlet=\"\n      selectMode === 'multiple' ? multipleSelectMode : singleSelectMode\n    \"\n  />\n</div>\n\n<ng-template #multipleSelectMode>\n  <div class=\"sky-select-field-multiple-select-mode\">\n    <button\n      class=\"sky-btn sky-btn-default sky-select-field-btn\"\n      type=\"button\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.aria-labelledby]=\"ariaLabelledBy\"\n      [disabled]=\"disabled\"\n      (click)=\"openPicker()\"\n    >\n      <sky-icon iconName=\"add\" />\n      {{\n        multipleSelectOpenButtonText ||\n          ('skyux_select_field_multiple_select_open_button' | skyLibResources)\n      }}\n    </button>\n    @if (tokens && tokens.length) {\n      <sky-tokens\n        [disabled]=\"disabled\"\n        [displayWith]=\"descriptorKey\"\n        [tokens]=\"tokens\"\n        (tokensChange)=\"onTokensChange($event)\"\n        (tokenSelected)=\"openPicker()\"\n      />\n    }\n  </div>\n</ng-template>\n\n<ng-template #singleSelectMode>\n  <div class=\"sky-select-field-single-select-mode\">\n    <div\n      class=\"sky-input-group sky-btn sky-btn-default sky-select-field-btn\"\n      role=\"button\"\n      [attr.tabindex]=\"disabled ? false : 0\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.aria-labelledby]=\"ariaLabelledBy\"\n      [attr.title]=\"\n        singleSelectOpenButtonTitle ||\n        ('skyux_select_field_single_select_open_button_title' | skyLibResources)\n      \"\n      [ngClass]=\"{ 'sky-btn-disabled': disabled }\"\n      (click)=\"openPicker()\"\n      (keydown.enter)=\"\n        openPicker(); $event.preventDefault(); $event.stopPropagation()\n      \"\n    >\n      <div class=\"sky-form-control\">\n        {{ singleSelectModeValue }}\n        @if (!singleSelectModeValue) {\n          <div class=\"sky-deemphasized\">\n            {{\n              singleSelectPlaceholderText ||\n                ('skyux_select_field_single_select_placeholder'\n                  | skyLibResources)\n            }}\n          </div>\n        }\n      </div>\n      <div class=\"sky-input-group-btn\">\n        @if (singleSelectModeValue) {\n          <button\n            class=\"sky-btn\"\n            type=\"button\"\n            [attr.title]=\"\n              singleSelectClearButtonTitle ||\n              ('skyux_select_field_single_select_clear_button_title'\n                | skyLibResources)\n            \"\n            [disabled]=\"disabled\"\n            (click)=\"clearSelection(); $event.stopPropagation()\"\n            (keydown.enter)=\"\n              clearSelection();\n              $event.preventDefault();\n              $event.stopPropagation()\n            \"\n          >\n            <sky-icon iconName=\"close\" />\n          </button>\n        }\n      </div>\n      <div class=\"sky-input-group-btn\">\n        <button\n          class=\"sky-btn\"\n          type=\"button\"\n          [attr.title]=\"\n            'skyux_select_field_single_select_open_button_title'\n              | skyLibResources\n          \"\n          [disabled]=\"disabled\"\n          (click)=\"openPicker(); $event.stopPropagation()\"\n        >\n          <sky-icon iconName=\"chevron-up-down\" variant=\"solid\" />\n        </button>\n      </div>\n    </div>\n  </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SkySelectFieldComponent } from './select-field.component';\n\n/**\n * @deprecated `SkySelectFieldComponent` is deprecated. Use `SkyLookupComponent` instead.\n */\n@NgModule({\n  imports: [SkySelectFieldComponent],\n  exports: [SkySelectFieldComponent],\n})\nexport class SkySelectFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf","i1","i3","i4"],"mappings":"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"}