@skyux/ag-grid 11.44.0 → 11.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-ag-grid.mjs","sources":["../../../../../libs/components/ag-grid/src/lib/modules/shared/sky-ag-grid-resources.module.ts","../../../../../libs/components/ag-grid/src/lib/styles/ag-grid-theme.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-adapter.service.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-type.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.directive.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-editor-initial-action.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-editor-utils.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/apply-lookup-properties-defaults.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/header-group-info.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header-group.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header-group.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/header-info.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/icons/icon-map.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/loading/loading.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/loading/loading.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-class.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/header-class.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts","../../../../../libs/components/ag-grid/src/index.ts","../../../../../libs/components/ag-grid/src/skyux-ag-grid.ts"],"sourcesContent":["/* istanbul ignore file */\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-ag-grid' 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 sky_ag_grid_row_selector_aria_label: {\n message: 'Row selector for row {0}',\n },\n sky_ag_grid_row_selector_column_heading: { message: 'Row selection' },\n sky_ag_grid_cell_editor_datepicker_aria_label: {\n message: 'Editable date {0} for row {1}',\n },\n sky_ag_grid_cell_editor_datepicker_hint_text: {\n message: 'Use the format {0}.',\n },\n sky_ag_grid_cell_editor_number_aria_label: {\n message: 'Editable number {0} for row {1}',\n },\n sky_ag_grid_cell_editor_text_aria_label: {\n message: 'Editable text {0} for row {1}',\n },\n sky_ag_grid_cell_editor_autocomplete_aria_label: {\n message: 'Editable autocomplete {0} for row {1}',\n },\n sky_ag_grid_cell_renderer_number_validator_message: {\n message: 'Enter a valid number.',\n },\n sky_ag_grid_cell_renderer_currency_validator_message: {\n message: 'Enter a valid currency.',\n },\n skyux_lookup_tokens_summary: { message: '{0} items selected' },\n sky_ag_grid_cell_editor_currency_aria_label: {\n message: 'Editable currency {0} for row {1}',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_asc: {\n message: 'Sort column {0}, currently ascending',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_desc: {\n message: 'Sort column {0}, currently descending',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted: {\n message: 'Sort column {0}, not currently sorted',\n },\n sky_ag_grid_column_group_header_expand_aria_label: {\n message: 'Expand column group {0}',\n },\n sky_ag_grid_column_group_header_collapse_aria_label: {\n message: 'Collapse column group {0}',\n },\n },\n 'FR-CA': {\n sky_ag_grid_row_selector_aria_label: {\n message: 'Sélecteur de ligne pour la ligne {0}',\n },\n sky_ag_grid_row_selector_column_heading: {\n message: 'Sélection d’une ligne',\n },\n sky_ag_grid_cell_editor_datepicker_aria_label: {\n message: 'Date modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_editor_datepicker_hint_text: {\n message: 'Utilisez le format {0}.',\n },\n sky_ag_grid_cell_editor_number_aria_label: {\n message: 'Numéro modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_editor_text_aria_label: {\n message: 'Texte modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_editor_autocomplete_aria_label: {\n message: 'Saisie automatique modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_renderer_number_validator_message: {\n message: 'Entrez un numéro valide.',\n },\n sky_ag_grid_cell_renderer_currency_validator_message: {\n message: 'Entrez une devise valide.',\n },\n skyux_lookup_tokens_summary: { message: '{0} articles sélectionnés' },\n sky_ag_grid_cell_editor_currency_aria_label: {\n message: 'Devise modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_asc: {\n message: 'Trier la colonne {0}, actuellement en ordre croissant',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_desc: {\n message: 'Trier la colonne {0}, actuellement en ordre décroissant',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted: {\n message: 'Trier la colonne {0}, actuellement non triée',\n },\n sky_ag_grid_column_group_header_expand_aria_label: {\n message: 'Agrandir le groupe de colonnes {0}',\n },\n sky_ag_grid_column_group_header_collapse_aria_label: {\n message: 'Réduire le groupe de colonnes {0}',\n },\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 SkyAgGridResourcesModule {}\n","import { SkyThemeSettings } from '@skyux/theme';\n\ntype SkyAgGridThemeType =\n `ag-theme-sky-${'data-entry-grid' | 'data-grid'}-${'default' | 'modern-light' | 'modern-dark' | 'modern-light-compact' | 'modern-dark-compact'}`;\n\nexport function agGridThemeIsCompact(\n themeSettings: SkyThemeSettings | undefined,\n compactLayout: boolean,\n): boolean {\n return (\n themeSettings?.theme.name === 'modern' &&\n (compactLayout || themeSettings?.spacing.name === 'compact')\n );\n}\n\nexport function agGridTheme(\n editable: boolean,\n themeSettings: SkyThemeSettings | undefined,\n compactLayout: boolean,\n): SkyAgGridThemeType {\n let theme = `ag-theme-sky-${editable ? 'data-entry-grid' : 'data-grid'}-`;\n if (themeSettings?.theme.name === 'modern') {\n theme += `modern-${themeSettings.mode.name}`;\n if (agGridThemeIsCompact(themeSettings, compactLayout)) {\n theme += `-compact`;\n }\n } else {\n theme += 'default';\n }\n return theme as SkyAgGridThemeType;\n}\n","import { Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAgGridAdapterService {\n #skyAdapterService: SkyCoreAdapterService;\n\n constructor(skyAdapterService: SkyCoreAdapterService) {\n this.#skyAdapterService = skyAdapterService;\n }\n\n public getElementOrParentWithClass(\n element: HTMLElement,\n className: string,\n ): HTMLElement | undefined {\n if (element && element.classList.contains(className)) {\n return element;\n } else if (element.parentElement) {\n return this.getElementOrParentWithClass(element.parentElement, className);\n }\n\n return undefined;\n }\n\n public setFocusedElementById(parentEl: HTMLElement, selector: string): void {\n const element = parentEl.querySelector(`#${selector}`) as HTMLElement;\n\n /* istanbul ignore else */\n if (element) {\n element.focus();\n }\n }\n\n public getFocusedElement(): HTMLElement {\n return document.activeElement as HTMLElement;\n }\n\n public getNextFocusableElement(\n currentEl: HTMLElement,\n parentEl?: HTMLElement,\n moveFocusLeft?: boolean,\n ): HTMLElement | undefined {\n if (parentEl) {\n const focusableChildren =\n this.#skyAdapterService.getFocusableChildren(parentEl);\n const currentElementIndex = focusableChildren.indexOf(currentEl);\n const nextIndex = moveFocusLeft\n ? currentElementIndex - 1\n : currentElementIndex + 1;\n\n if (\n (!moveFocusLeft && focusableChildren.length >= nextIndex) ||\n (moveFocusLeft && nextIndex >= 0)\n ) {\n return focusableChildren[nextIndex];\n }\n }\n\n return undefined;\n }\n\n public focusOnFocusableChildren(element: HTMLElement): void {\n const focusableChildren =\n this.#skyAdapterService.getFocusableChildren(element);\n\n if (focusableChildren.length) {\n focusableChildren[0].focus();\n }\n }\n}\n","/**\n * These column types can be used by setting the AG Grid [column definition `type`](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing) to one of the following values.\n * <br/>\n * Any [SKY UX component](https://developer.blackbaud.com/skyux/components) can be made into a [cell editor](https://www.ag-grid.com/javascript-grid-cell-editor/) or [cell renderer](https://www.ag-grid.com/javascript-grid-cell-rendering-components/) component. If you would like to use a component that does not have a column definition yet, please consider [contributing it](https://developer.blackbaud.com/skyux/contribute/contribution-process) to the SKY UX data entry grid module, or [file an issue](https://developer.blackbaud.com/skyux/contribute/contribution-process/file-issue) in the [`@skyux/ag-grid` repo](https://github.com/blackbaud/skyux-ag-grid).\n */\nexport enum SkyCellType {\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as [SKY UX autocomplete components](https://developer.blackbaud.com/skyux/components/autocomplete). You can set any of the autocomplete component's properties by passing `SkyCellEditorAutocompleteParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Text can be entered and a value selected from the provided list.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells the column will display the currently selected value's name property by default. If the autocomplete needs to show a different property or needs to be formatted in any way, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition.\n */\n Autocomplete = 'skyCellAutocomplete',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as a currency amount.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Formats the display as currency using [SKY UX numeric components](https://developer.blackbaud.com/skyux/components/numeric).\n */\n Currency = 'skyCellCurrency',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Combines SkyCellType.Currency and SkyCellType.Validator, where the value is displayed as a currency and passed to a validator function.\n */\n CurrencyValidator = 'skyCellCurrencyValidator',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as [SKY UX datepicker components](https://developer.blackbaud.com/skyux/components/datepicker). You can set any of the datepicker component's properties by passing `SkyCellEditorDatepickerParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Date values can be entered.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells in the column will display the currently selected date formatted as `MM-DD-YYYY`, or the date format of the locale passed to `getGridOptions()`. If you would like to overwrite this format, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition. See the demo for an example.\n */\n Date = 'skyCellDate',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as [SKY UX lookup components](https://developer.blackbaud.com/skyux-v5/components/lookup). You can set any of the lookup component's properties by passing `SkyCellEditorLookupParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Text can be entered and a value selected from the provided list.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells the column will display, by default, either: the name(s) of the selected value(s) if there are less than 6, or a summary count of the values if there are more than 5. If the lookup needs to show a different property or needs to be formatted in any way, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition.\n */\n Lookup = 'skyCellLookup',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as HTML number `inputs`. Only numbers can be entered.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells in the column will render as the number value.\n */\n Number = 'skyCellNumber',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Combines SkyCellType.Number and SkyCellType.Validator, where the value is displayed as a number and passed to a validator function.\n */\n NumberValidator = 'skyCellNumberValidator',\n /**\n * **Edit and read-only modes**\n * <br/>\n * The header and cells in the column will render right aligned.\n */\n RightAligned = 'skyCellRightAligned',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Cells in the column will render as [SKY UX checkbox components](https://developer.blackbaud.com/skyux/components/checkbox). It allows the user to select multiple rows, and adds a highlight to selected rows. The [Ag Grid `rowNode`](https://www.ag-grid.com/javascript-grid-row-node/) will be updated to reflect the selected state.\n */\n RowSelector = 'skyCellRowSelector',\n /**\n * **Read-only mode**\n * <br/>\n * Cells in the column will render in a `TemplateRef` passed in the column definition's `cellRendererParams.template` property, with `value` and `row` context. See the demo for an example.\n */\n Template = 'skyCellTemplate',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as HTML text `inputs`. Any characters can be entered.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells in the column will render as their string value.\n */\n Text = 'skyCellText',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Cells in the column will be passed to a validator function that flags erroneous entries. You can set the validator function and message by passing them to [column definition's `cellRendererParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing) as `skyComponentProperties.validator` and `skyComponentProperties.validatorMessage`. SkyCellType.Validator can be combined with other cell types, such as SkyCellType.Autocomplete or SkyCellType.Date, by using the array syntax for the [column definition's `type` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing).\n */\n Validator = 'skyCellValidator',\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n numberAttribute,\n} from '@angular/core';\nimport { SkyMutationObserverService } from '@skyux/core';\nimport {\n SkyThemeService,\n SkyThemeSettings,\n SkyThemeSettingsChange,\n} from '@skyux/theme';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n CellEditingStartedEvent,\n CellFocusedEvent,\n DetailGridInfo,\n HeaderFocusedEvent,\n ModuleNames,\n ModuleRegistry,\n} from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Observable,\n ReplaySubject,\n Subject,\n combineLatest,\n distinctUntilChanged,\n of,\n take,\n takeUntil,\n} from 'rxjs';\n\nimport { agGridTheme } from '../../styles/ag-grid-theme';\n\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\nimport { SkyCellType } from './types/cell-type';\n\nlet idIndex = 0;\n\n@Component({\n selector: 'sky-ag-grid-wrapper',\n templateUrl: './ag-grid-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridWrapperComponent\n implements AfterContentInit, AfterViewInit, OnDestroy, OnInit\n{\n @ContentChild(AgGridAngular, {\n static: true,\n })\n public agGrid: AgGridAngular | undefined;\n\n @HostBinding('class.sky-ag-grid-layout-normal')\n public isNormalLayout = false;\n\n /**\n * Enable a compact layout for the grid when using modern theme. Compact layout uses\n * a smaller font size and row height to display more data in a smaller space.\n */\n @Input({ transform: booleanAttribute })\n public set compact(value: boolean) {\n this.#isCompact.next(value);\n }\n\n /**\n * The minimum height of the grid in pixels. The default value is `50`.\n */\n public readonly minHeight = input<number, unknown>(50, {\n transform: numberAttribute,\n });\n\n public afterAnchorId: string;\n public beforeAnchorId: string;\n public gridId: string;\n public wrapperClasses$: Observable<string[]>;\n\n public get viewkeeperClasses(): string[] {\n return this.#_viewkeeperClasses;\n }\n\n public set viewkeeperClasses(value: string[]) {\n this.#_viewkeeperClasses = value;\n this.#changeDetector.markForCheck();\n }\n\n get #isInEditMode(): boolean {\n if (this.agGrid && this.agGrid.api) {\n const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;\n if (primaryGridEditing) {\n return true;\n } else if (\n ModuleRegistry.__isRegistered(\n ModuleNames.EnterpriseCoreModule,\n 'sky-ag-grid-wrapper',\n )\n ) {\n // AG Grid 32+ throws an error for calling this API without enterprise modules.\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid: DetailGridInfo) => {\n if (detailGrid?.api && detailGrid.api.getEditingCells().length > 0) {\n innerEditing = true;\n }\n });\n\n return innerEditing;\n }\n }\n return false;\n }\n\n protected readonly minHeightStyle = computed(() => {\n return `--sky-ag-grid-min-height: ${this.minHeight()}px;`;\n });\n\n #_viewkeeperClasses: string[] = [];\n readonly #ngUnsubscribe = new Subject<void>();\n readonly #themeSvc = inject(SkyThemeService, {\n optional: true,\n });\n readonly #wrapperClasses = new BehaviorSubject<string[]>([\n `ag-theme-sky-data-grid-default`,\n ]);\n readonly #adapterService = inject(SkyAgGridAdapterService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #parentChangeDetector = inject(ChangeDetectorRef, {\n optional: true,\n skipSelf: true,\n });\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #document = inject(DOCUMENT);\n readonly #mutationObserverService = inject(SkyMutationObserverService);\n readonly #isCompact = new BehaviorSubject<boolean>(false);\n readonly #hasEditableClass = new ReplaySubject<boolean>(1);\n\n constructor() {\n idIndex++;\n this.afterAnchorId = 'sky-ag-grid-nav-anchor-after-' + idIndex;\n this.beforeAnchorId = 'sky-ag-grid-nav-anchor-before-' + idIndex;\n this.gridId = 'sky-ag-grid-' + idIndex;\n this.wrapperClasses$ = this.#wrapperClasses.asObservable();\n }\n\n public ngAfterContentInit(): void {\n if (this.agGrid) {\n const domLayout = this.agGrid.gridOptions?.domLayout;\n if (domLayout === 'autoHeight') {\n if (this.agGrid.gridOptions?.context?.enableTopScroll) {\n this.viewkeeperClasses.push(\n '.ag-header',\n '.ag-body-horizontal-scroll',\n );\n } else {\n this.viewkeeperClasses.push('.ag-header');\n }\n } else if (domLayout === 'normal') {\n this.isNormalLayout = true;\n this.#parentChangeDetector?.detectChanges();\n }\n this.agGrid.gridReady\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#moveHorizontalScroll();\n });\n this.agGrid.firstDataRendered\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#moveHorizontalScroll();\n });\n this.agGrid.rowDataUpdated\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#moveHorizontalScroll();\n });\n this.agGrid.cellEditingStarted\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((params: CellEditingStartedEvent) => {\n if (params.colDef.type) {\n const types = Array.isArray(params.colDef.type)\n ? params.colDef.type\n : [params.colDef.type];\n const addClasses = types.map(\n (t) => `sky-ag-grid-cell-editing-${t}`,\n );\n this.#wrapperClasses.next([\n ...this.#wrapperClasses.getValue(),\n ...addClasses,\n ]);\n if (\n types.includes(SkyCellType.Template) &&\n params.rowIndex !== null\n ) {\n this.agGrid?.api.setFocusedCell(params.rowIndex, params.column);\n }\n }\n });\n this.agGrid.cellEditingStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#wrapperClasses.next(\n this.#wrapperClasses\n .getValue()\n .filter((c) => !c.startsWith('sky-ag-grid-cell-editing-')),\n );\n });\n this.agGrid.cellFocused\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: CellFocusedEvent) => {\n const context = event.context || {};\n\n context['lastFocusedCell'] = {\n rowIndex: event.rowIndex,\n column:\n typeof event.column === 'object'\n ? event.column?.getColId()\n : `${event.column}`,\n };\n\n event.api?.setGridOption('context', context);\n });\n\n this.agGrid.headerFocused\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: HeaderFocusedEvent) => {\n const context = event.context || {};\n\n context['lastFocusedCell'] = {\n rowIndex: null,\n column: event.column?.getUniqueId\n ? event.column.getUniqueId()\n : `${event.column}`,\n };\n\n event.api?.setGridOption('context', context);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#hasEditableClass.complete();\n this.#isCompact.complete();\n this.#wrapperClasses.complete();\n }\n\n public ngOnInit(): void {\n combineLatest<[boolean, boolean, SkyThemeSettingsChange | undefined]>([\n this.#hasEditableClass.pipe(distinctUntilChanged()),\n this.#isCompact.pipe(distinctUntilChanged()),\n this.#themeSvc?.settingsChange ?? of(undefined),\n ])\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(([hasEditableClass, isCompact, settings]) => {\n this.#updateGridTheme(\n hasEditableClass,\n isCompact,\n settings?.currentSettings,\n );\n });\n }\n\n public ngAfterViewInit(): void {\n const agGridElement: HTMLElement | undefined =\n this.#elementRef.nativeElement.querySelector('ag-grid-angular');\n const callback = (): void => {\n this.#hasEditableClass.next(\n !!agGridElement?.classList.contains('sky-ag-grid-editable'),\n );\n };\n if (agGridElement) {\n const agGridClassObserver =\n this.#mutationObserverService.create(callback);\n agGridClassObserver.observe(agGridElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n this.#ngUnsubscribe.pipe(take(1)).subscribe(() => {\n agGridClassObserver.disconnect();\n });\n }\n callback();\n }\n\n /**\n * Prevent closing a modal when focused in AG Grid.\n */\n public onKeyUpEscape($event: Event): void {\n $event.stopPropagation();\n this.agGrid?.api.stopEditing(true);\n }\n\n public onGridKeydown(event: KeyboardEvent): void {\n if (this.agGrid && !this.#isInEditMode && event.key === 'Tab') {\n const idToFocus = event.shiftKey\n ? this.beforeAnchorId\n : this.afterAnchorId;\n this.#adapterService.setFocusedElementById(\n this.#elementRef.nativeElement,\n idToFocus,\n );\n }\n }\n\n public onAnchorFocus(event: FocusEvent): void {\n const relatedTarget = event.relatedTarget as HTMLElement | undefined;\n const previousWasGrid =\n relatedTarget && this.#elementRef.nativeElement.contains(relatedTarget);\n\n if (this.agGrid && !previousWasGrid) {\n this.#elementRef.nativeElement\n .querySelector('.ag-tab-guard.ag-tab-guard-top')\n ?.focus();\n }\n }\n\n #moveHorizontalScroll(): void {\n const toTop = !!this.agGrid?.gridOptions?.context?.enableTopScroll;\n const root = this.#elementRef.nativeElement.querySelector('.ag-root');\n const header = root?.querySelector('.ag-header');\n const floatingBottom = root?.querySelector('.ag-floating-bottom');\n const scrollbar = root?.querySelector('.ag-body-horizontal-scroll');\n if (root && header && floatingBottom && scrollbar) {\n if (\n scrollbar.style.height !==\n scrollbar.style.getPropertyValue(\n '--sky-ag-body-horizontal-scroll-width',\n )\n ) {\n scrollbar.style.setProperty(\n '--sky-ag-body-horizontal-scroll-width',\n scrollbar.style.height,\n );\n }\n const isTop = root.children[1].matches('.ag-body-horizontal-scroll');\n if (toTop && !isTop) {\n const fragment = this.#document.createDocumentFragment();\n fragment.appendChild(scrollbar);\n header.after(fragment);\n } else if (!toTop && isTop) {\n const fragment = this.#document.createDocumentFragment();\n fragment.appendChild(scrollbar);\n floatingBottom.after(fragment);\n }\n }\n }\n\n #updateGridTheme(\n hasEditableClass: boolean,\n isCompact: boolean,\n themeSettings?: SkyThemeSettings,\n ): void {\n const agTheme = agGridTheme(hasEditableClass, themeSettings, isCompact);\n const previousValue = this.#wrapperClasses.getValue();\n let value = [\n ...previousValue.filter((c) => !c.startsWith('ag-theme-')),\n agTheme,\n ];\n const textSelectionClass = 'sky-ag-grid-text-selection';\n if (this.#getTextSelection(hasEditableClass)) {\n value.push(textSelectionClass);\n } else {\n value = value.filter((c) => c !== textSelectionClass);\n }\n this.#wrapperClasses.next([...new Set(value)]);\n }\n\n #getTextSelection(hasEditableClass: boolean): boolean {\n if (this.agGrid?.gridOptions?.context?.enableCellTextSelection) {\n return !hasEditableClass;\n } else {\n return false;\n }\n }\n}\n","<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n [style]=\"minHeightStyle()\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content />\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n Input,\n OnDestroy,\n contentChildren,\n effect,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyBreakpoint, SkyMediaQueryService } from '@skyux/core';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewColumnWidths,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColumnMovedEvent,\n ColumnResizedEvent,\n ColumnState,\n DragStoppedEvent,\n GridApi,\n IColumnLimit,\n RowSelectedEvent,\n} from 'ag-grid-community';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\n\nfunction toColumnWidthName(breakpoint: SkyBreakpoint): 'xs' | 'sm' {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyAgGridDataManagerAdapter]',\n})\nexport class SkyAgGridDataManagerAdapterDirective\n implements AfterContentInit, OnDestroy\n{\n @Input()\n public viewId: string | undefined;\n\n public readonly agGridList = contentChildren<AgGridAngular>(AgGridAngular, {\n descendants: true,\n });\n\n public skyAgGridWrapperList = contentChildren(SkyAgGridWrapperComponent, {\n descendants: true,\n });\n\n #currentAgGrid: AgGridAngular | undefined;\n #currentDataState: SkyDataManagerState | undefined;\n #currentSkyAgGridWrapper: SkyAgGridWrapperComponent | undefined;\n #dataStateSub: Subscription | undefined;\n #viewConfig: SkyDataViewConfig | undefined;\n #ngUnsubscribe = new Subject<void>();\n #changeDetector: ChangeDetectorRef;\n #dataManagerSvc: SkyDataManagerService;\n\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n constructor(\n changeDetector: ChangeDetectorRef,\n dataManagerSvc: SkyDataManagerService,\n ) {\n this.#changeDetector = changeDetector;\n this.#dataManagerSvc = dataManagerSvc;\n\n effect(() => {\n const list = this.agGridList();\n\n this.#checkForAgGrid(list);\n });\n\n effect(() => {\n const list = this.skyAgGridWrapperList();\n\n this.#checkForSkyAgGridWrapper(list);\n });\n\n effect(() => {\n const breakpoint = this.#breakpoint();\n\n if (breakpoint) {\n this.#applyColumnWidths(breakpoint);\n }\n });\n }\n\n public ngAfterContentInit(): void {\n if (this.viewId) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n this.#viewConfig = this.#dataManagerSvc.getViewById(this.viewId);\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #checkForAgGrid(agGridList: readonly AgGridAngular[]): void {\n const agGrid = agGridList[0];\n const agGridCount = agGridList.length;\n\n if (agGrid) {\n if (agGrid !== this.#currentAgGrid) {\n this.#registerAgGrid(agGrid);\n }\n\n if (agGridCount > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.',\n );\n }\n }\n }\n\n #checkForSkyAgGridWrapper(\n wrappers: readonly SkyAgGridWrapperComponent[],\n ): void {\n const count = wrappers.length;\n const wrapper = wrappers[0];\n\n /* istanbul ignore else */\n if (wrapper !== this.#currentSkyAgGridWrapper) {\n this.#registerSkyAgGridWrapper(wrapper);\n }\n\n if (count > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.',\n );\n }\n }\n\n #unregisterAgGrid(): void {\n this.#currentAgGrid = undefined;\n\n /* istanbul ignore if */\n if (this.#dataStateSub) {\n this.#dataStateSub.unsubscribe();\n }\n }\n\n #unregisterSkyAgGridWrapper(): void {\n this.#currentSkyAgGridWrapper = undefined;\n }\n\n #registerSkyAgGridWrapper(wrapper: SkyAgGridWrapperComponent): void {\n this.#unregisterSkyAgGridWrapper();\n this.#currentSkyAgGridWrapper = wrapper;\n\n setTimeout(() => {\n if (this.#currentSkyAgGridWrapper) {\n this.#currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n\n #registerAgGrid(agGrid: AgGridAngular): void {\n this.#unregisterAgGrid();\n\n this.#currentAgGrid = agGrid;\n\n if (agGrid) {\n agGrid.gridReady.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n if (this.#viewConfig && this.viewId) {\n this.#viewConfig.onSelectAllClick = () => agGrid.api.selectAll();\n this.#viewConfig.onClearAllClick = () => agGrid.api.deselectAll();\n this.#dataManagerSvc.updateViewConfig(this.#viewConfig);\n this.#dataStateSub = this.#dataManagerSvc\n .getDataStateUpdates(this.#viewConfig.id)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState: SkyDataManagerState) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n });\n\n if (agGrid.gridOptions?.context?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n\n this.#applyColumnWidths();\n }\n });\n\n agGrid.columnMoved\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n filter(\n (event: ColumnMovedEvent) =>\n ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source),\n ),\n )\n .subscribe((value: ColumnMovedEvent) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n\n agGrid.columnResized\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n filter(\n (event: ColumnResizedEvent) => event.source === 'uiColumnResized',\n ),\n )\n .subscribe((event: ColumnResizedEvent) => {\n const colId = event.column?.getColId();\n const width = event.column?.getActualWidth();\n const breakpoint = this.#breakpoint();\n\n if (colId && width && breakpoint) {\n this.#updateColumnWidth(colId, width, breakpoint);\n }\n });\n\n agGrid.dragStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: DragStoppedEvent) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n\n agGrid.rowSelected\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: RowSelectedEvent) => {\n if (this.#viewConfig && this.#currentDataState) {\n const row = event.node;\n const selectedIds = this.#currentDataState.selectedIds || [];\n const rowIndex = selectedIds.indexOf(row.data.id);\n\n if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n } else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n\n this.#currentDataState.selectedIds = selectedIds;\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState,\n this.#viewConfig.id,\n );\n\n this.#changeDetector.markForCheck();\n }\n });\n\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates: ColumnState[] = agGrid.api.getColumnState();\n\n const activeSortColumnState =\n gridColumnStates?.find(\n (aGridColumnState) => aGridColumnState.sortIndex === 0,\n ) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n\n if (this.#viewConfig && this.#currentDataState) {\n if (activeSortColumnState) {\n const activeSortColumnDef = agGrid.api.getColumnDef(\n activeSortColumnState.colId,\n );\n this.#currentDataState.activeSortOption = {\n descending: activeSortColumnState.sort === 'desc',\n id: activeSortColumnState.colId,\n propertyName: activeSortColumnDef?.field || '',\n label: activeSortColumnDef?.headerName || '',\n };\n } else {\n this.#currentDataState.activeSortOption = undefined;\n }\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState,\n this.#viewConfig.id,\n );\n }\n });\n }\n }\n\n #updateColumnsInCurrentDataState(api: GridApi): void {\n if (this.#viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n\n const viewState = this.#currentDataState.getViewStateById(\n this.#viewConfig.id,\n );\n\n if (\n viewState &&\n (viewState.displayedColumnIds.length !== columnOrder.length ||\n viewState.displayedColumnIds.some((col, i) => col !== columnOrder[i]))\n ) {\n viewState.displayedColumnIds = columnOrder;\n\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState.addOrUpdateView(\n this.#viewConfig.id,\n viewState,\n ),\n this.#viewConfig.id,\n );\n }\n }\n }\n\n #getColumnOrder(api: GridApi): string[] {\n return api\n .getColumnState()\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n\n #displayColumns(dataState: SkyDataManagerState): void {\n const agGrid = this.#currentAgGrid;\n\n if (agGrid && this.#viewConfig) {\n const viewState = dataState.getViewStateById(this.#viewConfig.id);\n let displayedColumnIds: string[] = [];\n\n /*istanbul ignore else*/\n if (viewState?.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n\n const columnOrder = this.#getColumnOrder(agGrid.api);\n\n if (\n displayedColumnIds.length !== columnOrder.length ||\n displayedColumnIds.some((col, i) => col !== columnOrder[i])\n ) {\n const hideColumns = agGrid.api\n .getColumnState()\n .map((col) => col.colId)\n .filter((colId) => !displayedColumnIds.includes(colId));\n\n agGrid.api.setColumnsVisible(hideColumns, false);\n agGrid.api.setColumnsVisible(displayedColumnIds, true);\n agGrid.api.moveColumns(displayedColumnIds, 0);\n this.#removeColumnWidths(hideColumns);\n }\n }\n }\n\n #applySort(dataState: SkyDataManagerState): void {\n const agGrid = this.#currentAgGrid;\n const activeSort = dataState.activeSortOption;\n\n if (activeSort) {\n agGrid?.api.applyColumnState({\n state: [\n {\n colId: activeSort.id,\n sort: activeSort.descending ? 'desc' : 'asc',\n },\n ],\n defaultState: { sort: null },\n });\n }\n }\n\n #updateColumnWidth(\n colId: string,\n width: number,\n breakpoint: SkyBreakpoint,\n ): void {\n const viewState =\n this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n\n currentWidths[toColumnWidthName(breakpoint)][colId] = width;\n\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState.addOrUpdateView(this.viewId, viewState),\n this.viewId,\n );\n }\n }\n\n #removeColumnWidths(colIds: string[]): void {\n const viewState =\n this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n\n for (const colId of colIds) {\n delete currentWidths['xs'][colId];\n delete currentWidths['sm'][colId];\n }\n\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState.addOrUpdateView(this.viewId, viewState),\n this.viewId,\n );\n }\n }\n\n #applyColumnWidths(breakpoint?: SkyBreakpoint): void {\n breakpoint ??= this.#breakpoint();\n\n if (breakpoint) {\n const viewState =\n this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(\n viewState.displayedColumnIds,\n viewState.columnWidths,\n toColumnWidthName(breakpoint),\n );\n\n this.#currentAgGrid?.api.sizeColumnsToFit({ columnLimits });\n }\n }\n }\n\n #getGridColumnLimits(\n displayedColumns: string[],\n currentWidths: SkyDataViewColumnWidths,\n breakpointName: keyof SkyDataViewColumnWidths,\n ): IColumnLimit[] {\n const gridColumnLimits: IColumnLimit[] = [];\n\n for (const column of displayedColumns) {\n const columnWidth = currentWidths[breakpointName][column];\n\n if (columnWidth) {\n gridColumnLimits.push({\n key: column,\n minWidth: columnWidth,\n maxWidth: columnWidth,\n });\n }\n }\n return gridColumnLimits;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\n\n/**\n * Component for rendering the inline delete template in the overlay.\n * @internal\n */\n@Component({\n standalone: true,\n selector: 'sky-ag-grid-row-delete',\n template: `\n <ng-template\n #inlineDeleteTemplateRef\n let-row\n let-tableWidth=\"tableWidth()\"\n let-getRowDeleteItem=\"getRowDeleteItem\"\n let-cancelRowDelete=\"cancelRowDelete\"\n let-confirmRowDelete=\"confirmRowDelete\"\n >\n <div\n #inlineDeleteRef\n class=\"sky-ag-grid-row-delete\"\n [id]=\"'row-delete-ref-' + row.id\"\n [ngStyle]=\"{\n height: row.rowHeight + 'px',\n position: 'fixed',\n width: tableWidth + 'px',\n }\"\n >\n <sky-inline-delete\n [pending]=\"getRowDeleteItem(row).pending\"\n (cancelTriggered)=\"cancelRowDelete(row)\"\n (deleteTriggered)=\"confirmRowDelete(row)\"\n />\n </div>\n </ng-template>\n `,\n imports: [CommonModule, SkyInlineDeleteModule],\n})\nexport class SkyAgGridRowDeleteComponent {\n @ViewChildren('inlineDeleteRef')\n public inlineDeleteRefs: QueryList<ElementRef> | undefined;\n\n @ViewChild('inlineDeleteTemplateRef', { read: TemplateRef })\n public inlineDeleteTemplateRef: TemplateRef<unknown> | undefined;\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewContainerRef,\n contentChild,\n effect,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAffixAutoFitContext,\n SkyAffixService,\n SkyAffixer,\n SkyDynamicComponentService,\n SkyOverlayService,\n SkyScrollableHostService,\n} from '@skyux/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { IRowNode } from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Subject,\n animationFrames,\n debounce,\n merge,\n} from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport { SkyAgGridRowDeleteCancelArgs } from './types/ag-grid-row-delete-cancel-args';\nimport { SkyAgGridRowDeleteConfig } from './types/ag-grid-row-delete-config';\nimport { SkyAgGridRowDeleteConfirmArgs } from './types/ag-grid-row-delete-confirm-args';\nimport { SkyAgGridRowDeleteContents } from './types/ag-grid-row-delete-contents';\n\n@Directive({\n selector: '[skyAgGridRowDelete]',\n})\nexport class SkyAgGridRowDeleteDirective\n implements AfterContentInit, AfterViewInit, OnDestroy\n{\n /**\n * The IDs of the data in the rows where the inline delete appears.\n */\n @Input()\n public set rowDeleteIds(value: string[] | undefined) {\n this.#rowDeleteIdsInternal = value;\n\n if (!value) {\n for (const config of this.#rowDeleteConfigs) {\n this.#destroyRowDelete(config.id);\n }\n\n this.#changeDetector.markForCheck();\n\n return;\n }\n\n for (const id of value) {\n const existingConfig = this.#rowDeleteConfigs.find(\n (config) => config.id === id,\n );\n if (existingConfig) {\n existingConfig.pending = false;\n } else if (this.#rowDeleteComponent && this.agGrid) {\n this.#rowDeleteConfigs.push({\n id: id,\n pending: false,\n });\n\n const overlay = this.#overlayService.create({\n enableScroll: true,\n environmentInjector: this.#environmentInjector,\n showBackdrop: false,\n closeOnNavigation: true,\n enableClose: false,\n enablePointerEvents: true,\n });\n\n if (this.#rowDeleteComponent.inlineDeleteTemplateRef) {\n overlay.attachTemplate(\n this.#rowDeleteComponent.inlineDeleteTemplateRef,\n {\n $implicit: this.agGrid()?.api.getRowNode(id),\n tableWidth: () =>\n this.#elementRef.nativeElement.querySelector('.sky-ag-grid')\n .offsetWidth,\n getRowDeleteItem: (row: IRowNode) => this.getRowDeleteItem(row),\n cancelRowDelete: (row: IRowNode) => this.cancelRowDelete(row),\n confirmRowDelete: (row: IRowNode) => this.confirmRowDelete(row),\n },\n );\n }\n\n /**\n * We are manually setting the z-index here because overlays will always be on top of\n * the omnibar. The default manual setting is 2 less than the omnibar's z-index of 1000 and one less than\n * the header row's viewkeeper which is 999. We discussed changing the overlay service to allow for this\n * but decided against that change at this time due to its niche nature.\n */\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n this.#clipPath\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((clipPath) => {\n overlay.componentRef.instance.updateClipPath(clipPath);\n });\n\n setTimeout(() => {\n const inlineDeleteRef = this.#rowDeleteComponent?.inlineDeleteRefs\n ?.toArray()\n .find(\n (elRef) => elRef.nativeElement.id === 'row-delete-ref-' + id,\n ) as ElementRef;\n const affixer = this.#affixService.createAffixer(inlineDeleteRef);\n\n this.#affixToRow(affixer, id);\n\n this.#rowDeleteContents[id] = {\n affixer: affixer,\n overlay: overlay,\n };\n });\n }\n }\n\n for (const config of this.#rowDeleteConfigs) {\n if (value.indexOf(config.id) < 0) {\n this.#destroyRowDelete(config.id);\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public get rowDeleteIds(): string[] | undefined {\n return this.#rowDeleteIdsInternal;\n }\n\n /**\n * Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.\n */\n @Output()\n public rowDeleteCancel = new EventEmitter<SkyAgGridRowDeleteCancelArgs>();\n\n /**\n * Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.\n */\n @Output()\n public rowDeleteConfirm = new EventEmitter<SkyAgGridRowDeleteConfirmArgs>();\n\n /**\n * Emits when the list of ids of the data in the rows where inline deletes are shown changes.\n */\n @Output()\n public rowDeleteIdsChange = new EventEmitter<string[]>();\n\n #rowDeleteConfigs: SkyAgGridRowDeleteConfig[] = [];\n\n public agGrid = contentChild(AgGridAngular);\n\n #ngUnsubscribe = new Subject<void>();\n #rowDeleteComponent: SkyAgGridRowDeleteComponent | undefined;\n #rowDeleteContents: Record<string, SkyAgGridRowDeleteContents> = {};\n\n #rowDeleteIdsInternal: string[] | undefined;\n #clipPath = new BehaviorSubject<string | undefined>(undefined);\n #zIndex = new BehaviorSubject(998);\n #hasStackingContext: boolean;\n\n readonly #affixService = inject(SkyAffixService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #overlayService = inject(SkyOverlayService);\n readonly #scrollableHostService = inject(SkyScrollableHostService);\n readonly #stackingContext = inject(SKY_STACKING_CONTEXT, { optional: true });\n readonly #viewContainerRef = inject(ViewContainerRef);\n readonly #viewInit = new Subject<void>();\n\n constructor() {\n this.#hasStackingContext = !!this.#stackingContext;\n\n if (this.#stackingContext) {\n this.#stackingContext.zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n this.#zIndex.next(zIndex);\n });\n }\n effect(() => {\n const agGrid = this.agGrid();\n if (agGrid) {\n merge(\n agGrid.filterChanged,\n agGrid.firstDataRendered,\n agGrid.gridReady,\n agGrid.rowDataUpdated,\n agGrid.sortChanged,\n this.#viewInit,\n )\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n debounce(() => animationFrames()),\n )\n .subscribe(() => {\n this.#updateRowDeleteStates();\n });\n }\n });\n }\n\n public ngAfterContentInit(): void {\n this.#rowDeleteComponent = this.#dynamicComponentSvc.createComponent(\n SkyAgGridRowDeleteComponent,\n {\n environmentInjector: this.#environmentInjector,\n viewContainerRef: this.#viewContainerRef,\n },\n ).instance;\n }\n\n public ngAfterViewInit(): void {\n if (this.#hasStackingContext) {\n this.#scrollableHostService\n .watchScrollableHostClipPathChanges(this.#elementRef)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((clipPath) => {\n this.#clipPath.next(clipPath);\n });\n }\n this.#viewInit.next();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n Object.keys(this.#rowDeleteContents).forEach((id) => {\n this.#destroyRowDelete(id);\n });\n }\n\n public cancelRowDelete(row: IRowNode): void {\n if (row.id) {\n this.#rowDeleteConfigs = this.#rowDeleteConfigs.filter(\n (config) => config.id !== row.id,\n );\n this.rowDeleteCancel.emit({ id: row.id });\n\n this.#destroyRowDelete(row.id);\n }\n }\n\n public confirmRowDelete(row: IRowNode): void {\n if (row.id) {\n const rowConfig = this.#rowDeleteConfigs.find(\n (config) => config.id === row.id,\n );\n\n if (rowConfig) {\n rowConfig.pending = true;\n this.rowDeleteConfirm.emit({ id: row.id });\n }\n }\n }\n\n public getRowDeleteItem(row: IRowNode): SkyAgGridRowDeleteConfig | undefined {\n return this.#rowDeleteConfigs.find((rowDelete) => rowDelete.id === row.id);\n }\n\n #affixToRow(affixer: SkyAffixer, id: string): void {\n const rowElement = this.#elementRef.nativeElement.querySelector(`\n [row-id=\"${id}\"] div[aria-colindex],\n .ag-row.sky-ag-grid-row-${id} div[aria-colindex]\n `);\n\n affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false,\n });\n }\n\n #destroyRowDelete(id: string): void {\n const rowDeleteContents = this.#rowDeleteContents[id];\n rowDeleteContents?.affixer.destroy();\n this.#overlayService.close(rowDeleteContents?.overlay);\n delete this.#rowDeleteContents[id];\n this.#rowDeleteConfigs = this.#rowDeleteConfigs.filter(\n (config) => config.id !== id,\n );\n this.#rowDeleteIdsInternal = this.rowDeleteIds?.filter(\n (arrayId) => arrayId !== id,\n );\n this.rowDeleteIdsChange.emit(this.#rowDeleteIdsInternal);\n }\n\n #updateRowDeleteStates(): void {\n this.#rowDeleteConfigs.forEach((config: SkyAgGridRowDeleteConfig) => {\n if (!this.agGrid()?.api.getRowNode(config.id)) {\n this.#destroyRowDelete(config.id);\n } else {\n // We must reaffix things when the data changes because the rows rerender and the previous element that the delete was affixed\n // to is destroyed.\n this.#affixToRow(this.#rowDeleteContents[config.id].affixer, config.id);\n }\n });\n this.#changeDetector.markForCheck();\n }\n}\n","/** The initial action that a cell editor should take when initialized. */\nexport enum SkyAgGridCellEditorInitialAction {\n /** The cell should be cleared. */\n Delete = 0,\n /** The cell value should be highlighted. */\n Highlighted = 1,\n /** The cell value should be replaced with the initializing value. */\n Replace = 2,\n /** The cell should not be modified and the cursor is placed at the end of the value. */\n Untouched = 3,\n}\n","import { ICellEditorParams, KeyCode } from 'ag-grid-community';\n\nimport { SkyAgGridCellEditorInitialAction } from './cell-editor-initial-action';\n\nexport class SkyAgGridCellEditorUtils {\n /**\n * Gets the initial action that a cell editor should take when initialized.\n * @param params The editor's initializing parameters.\n */\n public static getEditorInitialAction(\n params: ICellEditorParams | undefined,\n ): SkyAgGridCellEditorInitialAction {\n if (params?.cellStartedEdit) {\n if (\n params.eventKey === KeyCode.BACKSPACE ||\n params.eventKey === KeyCode.DELETE\n ) {\n return SkyAgGridCellEditorInitialAction.Delete;\n } else if (params.eventKey?.length === 1) {\n return SkyAgGridCellEditorInitialAction.Replace;\n } else {\n if (params.eventKey !== KeyCode.F2) {\n return SkyAgGridCellEditorInitialAction.Highlighted;\n } else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n } else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n\n public static subtractOrZero(\n minuend: number | null | undefined,\n subtrahend: number,\n ): number {\n // Swapping minuend with subtrahend when minuend is null or undefined results in\n // the subtrahend being subtracted from itself, which will always be 0.\n return (minuend ?? subtrahend) - subtrahend;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\n\nimport { SkyAgGridAutocompleteProperties } from '../../types/autocomplete-properties';\nimport { SkyCellEditorAutocompleteParams } from '../../types/cell-editor-autocomplete-params';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-autocomplete',\n templateUrl: './cell-editor-autocomplete.component.html',\n styleUrls: ['./cell-editor-autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorAutocompleteComponent\n implements ICellEditorAngularComp\n{\n public columnHeader: string | undefined;\n public editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl(),\n });\n public rowNumber: number | undefined;\n public skyComponentProperties: SkyAgGridAutocompleteProperties = {};\n\n #autocompleteOpen = false;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n #params: SkyCellEditorAutocompleteParams | undefined;\n #elementRef = inject(ElementRef) as ElementRef<HTMLElement>;\n\n @ViewChild('skyCellEditorAutocomplete', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onBlur(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n } else {\n this.#stopEditingOnBlur();\n }\n }\n\n public agInit(params: SkyCellEditorAutocompleteParams): void {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('selection');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.rowNumber = (this.#params.node?.rowIndex ?? 0) + 1;\n this.skyComponentProperties = this.#params.skyComponentProperties || {};\n }\n\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n const charPress = this.#params?.eventKey as string;\n\n this.input.nativeElement.select();\n this.input.nativeElement.setRangeText(charPress);\n // Ensure the cursor is at the end of the text.\n this.input.nativeElement.setSelectionRange(\n charPress.length,\n charPress.length,\n );\n this.input.nativeElement.dispatchEvent(new Event('input'));\n }\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n\n public getValue(): any | undefined {\n const val = this.editorForm.get('selection')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n\n public onAutocompleteOpenChange($event: boolean): void {\n this.#autocompleteOpen = $event;\n this.#stopEditingOnBlur();\n }\n\n #stopEditingOnBlur(): void {\n if (\n !this.#autocompleteOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')\n ) {\n this.#params?.api.stopEditing();\n }\n }\n}\n","<div class=\"sky-ag-grid-cell-editor-autocomplete\" [formGroup]=\"editorForm\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n (openChange)=\"onAutocompleteOpenChange($event)\"\n >\n <input\n #skyCellEditorAutocomplete\n formControlName=\"selection\"\n skyAutocomplete\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyAutocompleteModule } from '@skyux/lookup';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellEditorAutocompleteComponent } from '../cell-editor-autocomplete/cell-editor-autocomplete.component';\n\n@NgModule({\n imports: [\n ReactiveFormsModule,\n SkyAgGridResourcesModule,\n SkyAutocompleteModule,\n ],\n declarations: [SkyAgGridCellEditorAutocompleteComponent],\n exports: [SkyAgGridCellEditorAutocompleteComponent],\n})\nexport class SkyAgGridCellEditorAutocompleteModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellEditorCurrencyParams } from '../../types/cell-editor-currency-params';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport { SkyAgGridCurrencyProperties } from '../../types/currency-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-currency',\n templateUrl: './cell-editor-currency.component.html',\n styleUrls: ['./cell-editor-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorCurrencyComponent\n implements ICellEditorAngularComp\n{\n public skyComponentProperties: SkyAgGridCurrencyProperties & {\n isCancellable: boolean;\n } = {\n isCancellable: false,\n };\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public currency = new UntypedFormControl();\n public editorForm = new UntypedFormGroup({\n currency: this.currency,\n });\n public params: SkyCellEditorCurrencyParams | undefined;\n public rowHeightWithoutBorders: number | undefined;\n public rowNumber: number | undefined;\n\n @ViewChild('skyCellEditorCurrency', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (event.relatedTarget && event.relatedTarget === this.params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n readonly #changeDetector = inject(ChangeDetectorRef);\n #initialized = false;\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorCurrencyParams): void {\n this.params = params;\n this.columnHeader = this.params.api.getDisplayNameForColumn(\n this.params.column,\n 'header',\n );\n this.rowNumber = this.params.rowIndex + 1;\n this.columnWidth = this.params.column.getActualWidth();\n this.rowHeightWithoutBorders = SkyAgGridCellEditorUtils.subtractOrZero(\n this.params.node?.rowHeight,\n 4,\n );\n this.skyComponentProperties = {\n ...(this.params.skyComponentProperties || {\n decimalPlaces: 2,\n currencySymbol: '$',\n }),\n isCancellable: false,\n };\n }\n\n public refresh(params: SkyCellEditorCurrencyParams): void {\n this.agInit(params);\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n this.input?.nativeElement.focus();\n\n // This setup is in `afterGuiAttached` due to the lifecycle of autonumeric which will highlight the initial value if it is in place when it renders.\n // Since we don't want that, we set the initial value after autonumeric initializes.\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(\n this.params,\n );\n const control = this.currency;\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(\n parseFloat(String(this.params?.eventKey)) || undefined,\n );\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(parseFloat(String(this.params?.value)));\n break;\n }\n }\n\n this.#changeDetector.markForCheck();\n\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted &&\n (this.params?.value ?? '') !== ''\n ) {\n this.input?.nativeElement.select();\n }\n\n // When the cell is initialized with the Enter key, we need to suppress the first `onPressEnter`.\n this.#initialized = this.params?.eventKey !== 'Enter';\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): number | undefined {\n return this.currency.value ?? undefined;\n }\n\n /**\n * The autoNumeric library's event handler suppresses the escape key event. This additional handler re-enables AG Grid's default functionality.\n */\n public onPressEscape(): void {\n if (this.params) {\n this.params.api.stopEditing(true);\n this.params.api.setFocusedCell(this.params.rowIndex, this.params.column);\n }\n }\n\n public onPressEnter(): void {\n if (this.params && this.#initialized) {\n this.params.stopEditing();\n }\n this.#initialized = true;\n }\n}\n","<ng-container [formGroup]=\"editorForm\">\n <input\n #skyCellEditorCurrency\n type=\"text\"\n [formControl]=\"currency\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_currency_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [skyAutonumeric]=\"skyComponentProperties\"\n [skyAutonumericFormChangesUnformatted]=\"params?.eventKey?.length === 1\"\n (keyup.enter)=\"onPressEnter()\"\n (keyup.escape)=\"onPressEscape()\"\n />\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyAutonumericModule } from '@skyux/autonumeric';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridCellEditorCurrencyComponent } from './cell-editor-currency.component';\n\n@NgModule({\n imports: [\n SkyAgGridResourcesModule,\n ReactiveFormsModule,\n SkyAutonumericModule,\n ],\n declarations: [SkyAgGridCellEditorCurrencyComponent],\n exports: [SkyAgGridCellEditorCurrencyComponent],\n})\nexport class SkyAgGridCellEditorCurrencyModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { PopupComponent } from 'ag-grid-community';\nimport { fromEvent } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { SkyCellEditorDatepickerParams } from '../../types/cell-editor-datepicker-params';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport { SkyAgGridDatepickerProperties } from '../../types/datepicker-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-datepicker',\n templateUrl: './cell-editor-datepicker.component.html',\n styleUrls: ['./cell-editor-datepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyAgGridCellEditorDatepickerComponent\n extends PopupComponent\n implements ICellEditorAngularComp\n{\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public columnWidthWithoutBorders: number | undefined;\n public editorForm = new UntypedFormGroup({\n date: new UntypedFormControl(),\n });\n public rowHeightWithoutBorders: number | null | undefined;\n public rowNumber: number | undefined;\n public skyComponentProperties: SkyAgGridDatepickerProperties = {};\n\n @ViewChild('skyCellEditorDatepickerInput', { read: ElementRef })\n public datepickerInput: ElementRef | undefined;\n\n protected resolvedDateFormat = '';\n\n #calendarOpen = false;\n #params: SkyCellEditorDatepickerParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n\n #elementRef = inject(ElementRef) as ElementRef<HTMLElement>;\n #changeDetector = inject(ChangeDetectorRef);\n #themeSvc = inject(SkyThemeService, { optional: true }) || undefined;\n\n constructor() {\n super();\n }\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the datepicker input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n } else if (event.target === this.datepickerInput?.nativeElement) {\n this.#stopEditingOnBlur();\n }\n }\n\n public onCalendarOpenChange(isOpen: boolean): void {\n this.#calendarOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n\n public onDateFormatChange(dateFormat: string): void {\n this.resolvedDateFormat = dateFormat;\n this.#changeDetector.markForCheck();\n }\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorDatepickerParams): void {\n this.#params = params;\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('date');\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(params.eventKey);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n }\n }\n this.#changeDetector.markForCheck();\n\n this.skyComponentProperties = this.#params.skyComponentProperties || {};\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.columnWidth = this.#params.column.getActualWidth();\n this.columnWidthWithoutBorders = this.columnWidth - 2;\n this.rowHeightWithoutBorders = (this.#params.node.rowHeight as number) - 3;\n this.rowNumber = this.#params.rowIndex + 1;\n this.#themeSvc?.settingsChange.subscribe((themeSettings) => {\n if (themeSettings.currentSettings.theme.name === 'modern') {\n this.columnWidthWithoutBorders = this.columnWidth;\n this.rowHeightWithoutBorders = this.#params?.node?.rowHeight;\n } else {\n this.columnWidthWithoutBorders =\n this.columnWidth === undefined ? undefined : this.columnWidth - 2;\n this.rowHeightWithoutBorders = SkyAgGridCellEditorUtils.subtractOrZero(\n this.#params?.node.rowHeight,\n 3,\n );\n }\n });\n }\n\n public getPopupPosition(): 'over' | 'under' | undefined {\n return 'over';\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const datepickerInputEl = this.datepickerInput?.nativeElement as\n | HTMLInputElement\n | undefined;\n\n if (datepickerInputEl) {\n datepickerInputEl.focus();\n\n // programmatically set the value of in the input; however, do not do this via the form control so that the value is not formatted when editing starts.\n // Watch for the first blur and fire a 'change' event as programmatic changes won't queue a change event, but we need to do this so that formatting happens if the user tabs to the calendar button.\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n fromEvent(datepickerInputEl, 'blur')\n .pipe(first())\n .subscribe(() => {\n datepickerInputEl.dispatchEvent(new Event('change'));\n });\n datepickerInputEl.select();\n\n const charPress = this.#params?.eventKey as string;\n\n if (charPress) {\n datepickerInputEl.setRangeText(charPress);\n // Ensure the cursor is at the end of the text.\n datepickerInputEl.setSelectionRange(\n charPress.length,\n charPress.length,\n );\n }\n }\n\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n datepickerInputEl.select();\n }\n }\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): Date {\n this.datepickerInput?.nativeElement.blur();\n return this.editorForm.get('date')?.value;\n }\n\n #stopEditingOnBlur(): void {\n if (\n !this.#calendarOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')\n ) {\n this.#params?.api.stopEditing();\n }\n }\n}\n","<div\n class=\"sky-ag-grid-cell-editor-datepicker\"\n [formGroup]=\"editorForm\"\n [style.width.px]=\"columnWidthWithoutBorders\"\n>\n <sky-datepicker\n data-sky-id=\"cell-datepicker\"\n pickerClass=\"ag-custom-component-popup\"\n (dateFormatChange)=\"onDateFormatChange($event)\"\n (openChange)=\"onCalendarOpenChange($event)\"\n >\n <input\n #skyCellEditorDatepickerInput\n formControlName=\"date\"\n skyDatepickerInput\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_datepicker_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [attr.title]=\"\n resolvedDateFormat\n ? ('skyux_datepicker_format_hint_text'\n | skyLibResources: resolvedDateFormat)\n : null\n \"\n [minDate]=\"skyComponentProperties.minDate\"\n [maxDate]=\"skyComponentProperties.maxDate\"\n [dateFormat]=\"skyComponentProperties.dateFormat\"\n [startingDay]=\"skyComponentProperties.startingDay\"\n [skyDatepickerNoValidate]=\"skyComponentProperties.skyDatepickerNoValidate\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n />\n </sky-datepicker>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellEditorDatepickerComponent } from '../cell-editor-datepicker/cell-editor-datepicker.component';\n\n@NgModule({\n imports: [SkyAgGridResourcesModule, SkyDatepickerModule, ReactiveFormsModule],\n declarations: [SkyAgGridCellEditorDatepickerComponent],\n exports: [SkyAgGridCellEditorDatepickerComponent],\n})\nexport class SkyAgGridCellEditorDatepickerModule {}\n","import { SkyAgGridLookupProperties } from './types/lookup-properties';\n\n/**\n * @internal\n */\nexport function applySkyLookupPropertiesDefaults(\n skyLookupProperties: SkyAgGridLookupProperties | undefined,\n): SkyAgGridLookupProperties {\n /* istanbul ignore if */\n if (!skyLookupProperties) {\n return {};\n }\n\n return {\n addClick: skyLookupProperties.addClick,\n ariaLabel: skyLookupProperties.ariaLabel || '',\n autocompleteAttribute: skyLookupProperties.autocompleteAttribute || 'off',\n data: skyLookupProperties.data || [],\n debounceTime: skyLookupProperties.debounceTime || 0,\n descriptorProperty: skyLookupProperties.descriptorProperty || 'name',\n disabled: skyLookupProperties.disabled || false,\n enableShowMore: skyLookupProperties.enableShowMore || false,\n idProperty: skyLookupProperties.idProperty,\n placeholderText: skyLookupProperties.placeholderText || '',\n propertiesToSearch: skyLookupProperties.propertiesToSearch,\n search: skyLookupProperties.search,\n searchAsync: skyLookupProperties.searchAsync,\n searchFilters: skyLookupProperties.searchFilters || [],\n searchResultsLimit: skyLookupProperties.searchResultsLimit,\n searchResultTemplate: skyLookupProperties.searchResultTemplate,\n searchTextMinimumCharacters:\n skyLookupProperties.searchTextMinimumCharacters || 1,\n selectMode: skyLookupProperties.selectMode,\n showAddButton: skyLookupProperties.showAddButton || false,\n showMoreConfig: skyLookupProperties.showMoreConfig || {},\n wrapperClass: 'ag-custom-component-popup',\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ColumnResizedEvent } from 'ag-grid-community';\n\nimport { applySkyLookupPropertiesDefaults } from '../../apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyCellEditorLookupParams } from '../../types/cell-editor-lookup-params';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport { SkyAgGridLookupProperties } from '../../types/lookup-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-lookup',\n templateUrl: './cell-editor-lookup.component.html',\n styleUrls: ['./cell-editor-lookup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorLookupComponent\n implements ICellEditorAngularComp\n{\n @HostBinding('style.width.px')\n public width: number | undefined;\n\n public skyComponentProperties?: SkyAgGridLookupProperties;\n public isAlive = false;\n public editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl({\n value: [],\n disabled: false,\n }),\n });\n public useAsyncSearch = false;\n\n protected labelText: string | undefined = undefined;\n\n #lookupOpen = false;\n #params: SkyCellEditorLookupParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n #changeDetector = inject(ChangeDetectorRef);\n #elementRef = inject(ElementRef<HTMLElement>);\n\n @HostListener('focusout', ['$event'])\n public onBlur(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n } else {\n this.#stopEditingOnBlur();\n }\n }\n\n public agInit(params: SkyCellEditorLookupParams): void {\n this.#params = params;\n if (!Array.isArray(this.#params.value)) {\n throw new Error(`Lookup value must be an array`);\n }\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('selection');\n this.labelText = params.skyComponentProperties?.ariaLabelledBy\n ? undefined\n : params.skyComponentProperties?.ariaLabel ||\n params.colDef.headerName ||\n params.colDef.headerTooltip ||\n params.colDef.field ||\n params.colDef.colId;\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue([]);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n\n if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n } else {\n control.enable();\n }\n }\n\n this.skyComponentProperties = this.#updateComponentProperties(this.#params);\n this.useAsyncSearch =\n typeof this.skyComponentProperties.searchAsync === 'function';\n this.isAlive = true;\n this.width = this.#params.column.getActualWidth();\n this.#params.api.addEventListener(\n 'columnResized',\n (event: ColumnResizedEvent) => {\n if (event.column?.getColId() === this.#params?.column.getColId()) {\n this.width = event.column?.getActualWidth();\n this.#changeDetector.markForCheck();\n }\n },\n );\n this.#changeDetector.markForCheck();\n }\n\n public isCancelAfterEnd(): boolean {\n // Shut down components to commit values before final value syncs to grid.\n this.isAlive = false;\n return false;\n }\n\n public getGui(): HTMLElement {\n return this.#elementRef.nativeElement;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getValue(): any[] {\n return this.editorForm.get('selection')?.value;\n }\n\n public isPopup(): boolean {\n return true;\n }\n\n public getPopupPosition(): 'over' | 'under' | undefined {\n return 'over';\n }\n\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const lookupInput: HTMLTextAreaElement =\n this.#elementRef.nativeElement.querySelector('.sky-lookup-input');\n lookupInput.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n lookupInput.select();\n lookupInput.setRangeText(`${this.#params?.eventKey}`);\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(\n lookupInput.value.length,\n lookupInput.value.length,\n );\n lookupInput.dispatchEvent(new Event('input'));\n }\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n lookupInput.select();\n }\n });\n }\n\n public onLookupOpenChange(isOpen: boolean): void {\n this.#lookupOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n\n #updateComponentProperties(\n params: SkyCellEditorLookupParams,\n ): SkyAgGridLookupProperties {\n const skyLookupProperties = params.skyComponentProperties;\n return applySkyLookupPropertiesDefaults(skyLookupProperties);\n }\n\n #stopEditingOnBlur(): void {\n if (\n !this.#lookupOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')\n ) {\n this.#params?.api.stopEditing();\n }\n }\n}\n","@if (isAlive && useAsyncSearch) {\n <sky-input-box\n [disabled]=\"skyComponentProperties?.disabled\"\n [formGroup]=\"editorForm\"\n >\n <sky-lookup\n formControlName=\"selection\"\n [ariaLabelledBy]=\"\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\n \"\n [autocompleteAttribute]=\"skyComponentProperties?.autocompleteAttribute\"\n [data]=\"skyComponentProperties?.data\"\n [debounceTime]=\"skyComponentProperties?.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties?.descriptorProperty\"\n [enableShowMore]=\"skyComponentProperties?.enableShowMore\"\n [idProperty]=\"skyComponentProperties?.idProperty\"\n [placeholderText]=\"skyComponentProperties?.placeholderText\"\n [propertiesToSearch]=\"skyComponentProperties?.propertiesToSearch\"\n [search]=\"skyComponentProperties?.search\"\n [searchFilters]=\"skyComponentProperties?.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties?.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties?.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties?.searchTextMinimumCharacters\n \"\n [selectMode]=\"skyComponentProperties?.selectMode\"\n [showAddButton]=\"skyComponentProperties?.showAddButton\"\n [showMoreConfig]=\"skyComponentProperties?.showMoreConfig\"\n [wrapperClass]=\"skyComponentProperties?.wrapperClass\"\n (searchAsync)=\"skyComponentProperties?.searchAsync?.($event)\"\n (addClick)=\"skyComponentProperties?.addClick?.($event)\"\n (openChange)=\"onLookupOpenChange($event)\"\n />\n </sky-input-box>\n}\n@if (isAlive && !useAsyncSearch) {\n <sky-input-box\n [disabled]=\"skyComponentProperties?.disabled\"\n [formGroup]=\"editorForm\"\n >\n <sky-lookup\n formControlName=\"selection\"\n [ariaLabelledBy]=\"\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\n \"\n [autocompleteAttribute]=\"skyComponentProperties?.autocompleteAttribute\"\n [data]=\"skyComponentProperties?.data\"\n [debounceTime]=\"skyComponentProperties?.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties?.descriptorProperty\"\n [enableShowMore]=\"skyComponentProperties?.enableShowMore\"\n [idProperty]=\"skyComponentProperties?.idProperty\"\n [placeholderText]=\"skyComponentProperties?.placeholderText\"\n [propertiesToSearch]=\"skyComponentProperties?.propertiesToSearch\"\n [search]=\"skyComponentProperties?.search\"\n [searchFilters]=\"skyComponentProperties?.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties?.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties?.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties?.searchTextMinimumCharacters\n \"\n [selectMode]=\"skyComponentProperties?.selectMode\"\n [showAddButton]=\"skyComponentProperties?.showAddButton\"\n [showMoreConfig]=\"skyComponentProperties?.showMoreConfig\"\n [wrapperClass]=\"skyComponentProperties?.wrapperClass\"\n (addClick)=\"skyComponentProperties?.addClick?.($event)\"\n (openChange)=\"onLookupOpenChange($event)\"\n />\n </sky-input-box>\n}\n<div #screenReaderLabel=\"skyId\" class=\"sky-screen-reader-only\" skyId>\n {{ labelText }}\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyLookupModule } from '@skyux/lookup';\n\nimport { SkyAgGridCellEditorLookupComponent } from './cell-editor-lookup.component';\n\n@NgModule({\n declarations: [SkyAgGridCellEditorLookupComponent],\n exports: [SkyAgGridCellEditorLookupComponent],\n imports: [\n ReactiveFormsModule,\n SkyIdModule,\n SkyInputBoxModule,\n SkyLookupModule,\n ],\n})\nexport class SkyAgGridCellEditorLookupModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ICellEditorParams } from 'ag-grid-community';\n\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyCellEditorNumberParams } from '../../types/cell-editor-number-params';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-number',\n templateUrl: './cell-editor-number.component.html',\n styleUrls: ['./cell-editor-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorNumberComponent\n implements ICellEditorAngularComp\n{\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public editorForm = new UntypedFormGroup({\n number: new UntypedFormControl(),\n });\n public rowHeightWithoutBorders: number | undefined;\n public rowNumber: number | undefined;\n public max: number | undefined;\n public min: number | undefined;\n\n @ViewChild('skyCellEditorNumber', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n\n #params: ICellEditorParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorNumberParams): void {\n this.#params = params;\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('number');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(\n parseFloat(this.#params?.eventKey as string) || undefined,\n );\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n\n this.max = params.skyComponentProperties?.max;\n this.min = params.skyComponentProperties?.min;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = (this.#params.node.rowHeight as number) - 4;\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): number | undefined {\n const val = this.editorForm.get('number')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n}\n","<ng-container [formGroup]=\"editorForm\">\n <input\n #skyCellEditorNumber\n formControlName=\"number\"\n type=\"number\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_number_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [max]=\"max ?? null\"\n [min]=\"min ?? null\"\n />\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellEditorNumberComponent } from '../cell-editor-number/cell-editor-number.component';\n\n@NgModule({\n imports: [SkyAgGridResourcesModule, ReactiveFormsModule],\n declarations: [SkyAgGridCellEditorNumberComponent],\n exports: [SkyAgGridCellEditorNumberComponent],\n})\nexport class SkyAgGridCellEditorNumberModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ICellEditorParams } from 'ag-grid-community';\n\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyCellEditorTextParams } from '../../types/cell-editor-text-params';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-text',\n templateUrl: './cell-editor-text.component.html',\n styleUrls: ['./cell-editor-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorTextComponent\n implements ICellEditorAngularComp\n{\n public textInputLabel: string | undefined;\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public editorForm = new UntypedFormGroup({\n text: new UntypedFormControl(),\n });\n public rowHeightWithoutBorders: number | undefined;\n public rowNumber: number | undefined;\n public maxlength: number | undefined;\n\n @ViewChild('skyCellEditorText', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n\n #params: ICellEditorParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorTextParams): void {\n this.#params = params;\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('text');\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(params.eventKey);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n\n this.maxlength = params.skyComponentProperties?.maxlength;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = (this.#params.node.rowHeight as number) - 4;\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): string | undefined {\n return this.editorForm.get('text')?.value || undefined;\n }\n}\n","<ng-container [formGroup]=\"editorForm\">\n <input\n #skyCellEditorText\n formControlName=\"text\"\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_text_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [maxlength]=\"maxlength ?? null\"\n />\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridCellEditorTextComponent } from './cell-editor-text.component';\n\n@NgModule({\n imports: [SkyAgGridResourcesModule, ReactiveFormsModule],\n declarations: [SkyAgGridCellEditorTextComponent],\n exports: [SkyAgGridCellEditorTextComponent],\n})\nexport class SkyAgGridCellEditorTextModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkyPopoverMessage, SkyPopoverMessageType } from '@skyux/popovers';\n\nimport { AgColumn, CellFocusedEvent } from 'ag-grid-community';\nimport { Subject } from 'rxjs';\n\nimport { SkyCellRendererValidatorParams } from '../types/cell-renderer-validator-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-validator-tooltip',\n styleUrls: ['ag-grid-cell-validator-tooltip.component.scss'],\n templateUrl: 'ag-grid-cell-validator-tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellValidatorTooltipComponent {\n @Input()\n public set params(value: SkyCellRendererValidatorParams | undefined) {\n this.cellRendererParams = value;\n\n value?.api?.addEventListener(\n 'cellFocused',\n (eventParams: CellFocusedEvent) => {\n // We want to close any popovers that are opened when other cells are focused, but open a popover if the current cell is focused.\n if (\n (eventParams.column as AgColumn).getColId() ===\n value?.column?.getColId() &&\n eventParams.rowIndex === value?.node?.rowIndex\n ) {\n this.showPopover();\n } else {\n this.hidePopover();\n }\n },\n );\n\n value?.api?.addEventListener('cellEditingStarted', () => {\n this.hidePopover();\n });\n\n if (typeof value?.skyComponentProperties?.validatorMessage === 'function') {\n this.validatorMessage = value.skyComponentProperties.validatorMessage(\n value.value,\n value.data,\n value?.node?.rowIndex,\n );\n } else {\n this.validatorMessage = value?.skyComponentProperties?.validatorMessage;\n }\n }\n\n public popoverMessageStream = new Subject<SkyPopoverMessage>();\n public validatorMessage: string | undefined;\n public cellRendererParams: SkyCellRendererValidatorParams | undefined;\n\n public hidePopover(): void {\n this.popoverMessageStream.next({ type: SkyPopoverMessageType.Close });\n }\n\n public showPopover(): void {\n if (this.#shouldShowPopover()) {\n this.popoverMessageStream.next({ type: SkyPopoverMessageType.Open });\n }\n }\n\n #shouldShowPopover(): boolean {\n if (!this.validatorMessage) {\n return false;\n }\n const editingCells = this.cellRendererParams?.api.getEditingCells() ?? [];\n if (editingCells.length > 0) {\n return false;\n }\n if (\n typeof this.cellRendererParams?.skyComponentProperties?.validator ===\n 'function'\n ) {\n return !this.cellRendererParams.skyComponentProperties.validator(\n this.cellRendererParams.value,\n this.cellRendererParams.data,\n this.cellRendererParams.node?.rowIndex,\n );\n } else {\n return true;\n }\n }\n}\n","<div\n skyPopoverTrigger=\"mouseenter\"\n class=\"sky-validator-cell\"\n [skyPopover]=\"validatorPopover\"\n [skyPopoverMessageStream]=\"popoverMessageStream\"\n>\n <ng-content />\n <sky-status-indicator\n descriptionType=\"none\"\n indicatorType=\"danger\"\n class=\"sky-pull-right\"\n />\n</div>\n<sky-popover\n #validatorPopover\n data-sky-id=\"validatorPopover\"\n popoverType=\"danger\"\n>\n {{ validatorMessage }}\n</sky-popover>\n","import { NgModule } from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyPopoverModule } from '@skyux/popovers';\n\nimport { SkyAgGridCellValidatorTooltipComponent } from './ag-grid-cell-validator-tooltip.component';\n\n@NgModule({\n declarations: [SkyAgGridCellValidatorTooltipComponent],\n exports: [SkyAgGridCellValidatorTooltipComponent],\n imports: [SkyPopoverModule, SkyStatusIndicatorModule],\n})\nexport class SkyAgGridCellValidatorModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkyNumericOptions } from '@skyux/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellRendererCurrencyParams } from '../../types/cell-renderer-currency-params';\nimport { SkyAgGridValidatorProperties } from '../../types/validator-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-currency',\n templateUrl: './cell-renderer-currency.component.html',\n styleUrls: ['./cell-renderer-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererCurrencyComponent\n implements ICellRendererAngularComp\n{\n @Input()\n public set params(value: SkyCellRendererCurrencyParams) {\n this.agInit(value);\n }\n\n public columnWidth: number | undefined;\n public rowHeightWithoutBorders: number | undefined;\n public skyComponentProperties: SkyNumericOptions &\n SkyAgGridValidatorProperties = {};\n public numericOptions: SkyNumericOptions = {};\n public value: number | undefined;\n\n /**\n * agInit is called by AG Grid once after the renderer is created and provides the renderer with the information it needs.\n */\n public agInit(params: SkyCellRendererCurrencyParams): void {\n this.#updateProperties(params);\n }\n\n /**\n * refresh is called by AG Grid to update the cell without destroying and recreating the component.\n */\n public refresh(params: SkyCellRendererCurrencyParams): boolean {\n this.agInit(params);\n return false;\n }\n\n #updateProperties(params: SkyCellRendererCurrencyParams): void {\n this.value = params.value;\n this.skyComponentProperties = params.skyComponentProperties || {};\n this.skyComponentProperties.format = 'currency';\n this.skyComponentProperties.minDigits = 2;\n this.skyComponentProperties.truncate = false;\n }\n}\n","{{\n value === undefined ? undefined : (value | skyNumeric: skyComponentProperties)\n}}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellRendererCurrencyParams } from '../../types/cell-renderer-currency-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-currency-validator',\n styles: `\n :host {\n display: contents;\n }\n `,\n templateUrl: 'cell-renderer-currency-validator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererCurrencyValidatorComponent\n implements ICellRendererAngularComp\n{\n @Input()\n public set parameters(value: SkyCellRendererCurrencyParams) {\n this.agInit(value);\n }\n\n protected cellRendererParams: SkyCellRendererCurrencyParams | undefined;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n /**\n * agInit is called by agGrid once after the renderer is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellRendererCurrencyParams): void {\n this.cellRendererParams = params;\n this.#changeDetector.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public isNumeric(value: any): boolean {\n return !isNaN(parseFloat(value));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public refresh(params: SkyCellRendererCurrencyParams): boolean {\n return false;\n }\n}\n","@if (cellRendererParams) {\n <sky-ag-grid-cell-validator-tooltip [params]=\"cellRendererParams\">\n @if (isNumeric(cellRendererParams.value)) {\n <sky-ag-grid-cell-renderer-currency [params]=\"cellRendererParams\" />\n } @else {\n {{ cellRendererParams.value }}\n }\n </sky-ag-grid-cell-validator-tooltip>\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyNumericModule } from '@skyux/core';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellValidatorModule } from '../../cell-validator/ag-grid-cell-validator.module';\n\nimport { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderer-currency-validator.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderer-currency.component';\n\n@NgModule({\n imports: [\n SkyAgGridResourcesModule,\n SkyAgGridCellValidatorModule,\n FormsModule,\n SkyNumericModule,\n ],\n declarations: [\n SkyAgGridCellRendererCurrencyComponent,\n SkyAgGridCellRendererCurrencyValidatorComponent,\n ],\n exports: [\n SkyAgGridCellRendererCurrencyComponent,\n SkyAgGridCellRendererCurrencyValidatorComponent,\n ],\n})\nexport class SkyAgGridCellRendererCurrencyModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellRendererLookupParams } from '../../types/cell-renderer-lookup-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-cell-renderer-lookup',\n templateUrl: './cell-renderer-lookup.component.html',\n styleUrls: ['./cell-renderer-lookup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererLookupComponent\n implements ICellRendererAngularComp\n{\n protected value = '';\n protected summaryCount = 0;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n public agInit(params: SkyCellRendererLookupParams): void {\n this.summaryCount = params.value?.length || 0;\n this.value = `${params.valueFormatted}`;\n this.#changeDetector.markForCheck();\n }\n\n public refresh(params: SkyCellRendererLookupParams): boolean {\n this.agInit(params);\n return true;\n }\n}\n","@if (summaryCount > 5) {\n {{ 'skyux_lookup_tokens_summary' | skyLibResources: summaryCount }}\n} @else {\n {{ value }}\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridCellRendererLookupComponent } from './cell-renderer-lookup.component';\n\n@NgModule({\n declarations: [SkyAgGridCellRendererLookupComponent],\n exports: [SkyAgGridCellRendererLookupComponent],\n imports: [SkyAgGridResourcesModule],\n})\nexport class SkyAgGridCellRendererLookupModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport {\n ICellRendererParams,\n IRowNode,\n RowNodeSelectedEvent,\n} from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Subscription,\n fromEventPattern,\n isObservable,\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-row-selector',\n templateUrl: './cell-renderer-row-selector.component.html',\n styleUrls: ['./cell-renderer-row-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyAgGridCellRendererRowSelectorComponent\n implements ICellRendererAngularComp, OnDestroy\n{\n public dataField: string | undefined;\n public rowNode: IRowNode | undefined;\n public rowNumber: number | undefined;\n\n protected checked = new BehaviorSubject(false);\n protected readonly disabled = new BehaviorSubject(false);\n protected readonly label = new BehaviorSubject('');\n\n readonly #labelResourceKey = 'sky_ag_grid_row_selector_aria_label';\n #params: ICellRendererParams | undefined;\n readonly #resources = inject(SkyLibResourcesService);\n #subscription = new Subscription();\n\n constructor() {\n this.#setLabel();\n }\n\n public ngOnDestroy(): void {\n this.#subscription.unsubscribe();\n }\n\n /**\n * agInit is called by agGrid once after the cell is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n public agInit(params: ICellRendererParams): void {\n this.#setParameters(params);\n }\n\n /**\n * Used by agGrid to update cell value after a user triggers a refresh.\n * Returning true tells agGrid that the refresh was successful.\n */\n public refresh(params: ICellRendererParams): boolean {\n this.#setParameters(params);\n return true;\n }\n\n public updateRow(rowChecked: boolean): void {\n this.checked.next(rowChecked);\n if (this.rowNode) {\n const rowSelected = this.rowNode.isSelected();\n if (rowSelected !== rowChecked) {\n this.rowNode.setSelected(rowChecked, undefined, 'checkboxSelected');\n }\n if (this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n }\n\n #setParameters(params: ICellRendererParams): void {\n this.#params = params;\n this.disabled.next(this.#params?.node?.selectable === false);\n this.dataField = this.#params?.colDef?.field;\n this.rowNode = this.#params?.node as IRowNode | undefined;\n const rowIndex = this.rowNode?.rowIndex ?? NaN;\n this.rowNumber = Number.isNaN(rowIndex) ? undefined : rowIndex + 1;\n\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n this.#setLabel();\n\n const rowSelected = !!this.#params.node?.isSelected();\n\n if (this.dataField) {\n this.checked.next(!!this.#params.value);\n if (rowSelected !== this.checked.value) {\n this.rowNode?.setSelected(this.checked.value);\n }\n } else {\n this.checked.next(rowSelected);\n }\n\n this.#subscription.add(\n fromEventPattern<RowNodeSelectedEvent>(\n (handler) => this.rowNode?.addEventListener('rowSelected', handler),\n (handler) => this.rowNode?.removeEventListener('rowSelected', handler),\n ).subscribe((event) => this.#rowSelectedListener(event)),\n );\n }\n\n #setLabel(): void {\n const cellRendererParamLabel =\n this.#params?.colDef?.cellRendererParams?.label;\n if (this.#params?.colDef && typeof cellRendererParamLabel === 'string') {\n this.label.next(this.#params.colDef.cellRendererParams.label);\n } else if (\n this.#params?.colDef &&\n typeof cellRendererParamLabel === 'function'\n ) {\n const label = this.#params.colDef.cellRendererParams.label(\n this.#params.data,\n );\n if (isObservable(label)) {\n this.#subscription.add(\n label.subscribe((value: unknown) => this.label.next(String(value))),\n );\n } else {\n this.label.next(label);\n }\n } else {\n this.#subscription.add(\n this.#resources\n .getString(this.#labelResourceKey, this.rowNumber ?? '')\n .subscribe((value) => this.label.next(value)),\n );\n }\n }\n\n #rowSelectedListener(event: RowNodeSelectedEvent): void {\n this.checked.next(!!event.node.isSelected());\n if (this.rowNode && this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n}\n","<sky-checkbox\n data-sky-id=\"row-checkbox\"\n [disabled]=\"(disabled | async) || false\"\n [tabindex]=\"0\"\n [labelHidden]=\"true\"\n [labelText]=\"(label | async) || ''\"\n [checked]=\"(checked | async) || false\"\n (change)=\"updateRow(!!$event.checked)\"\n/>\n","import { AsyncPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellRendererRowSelectorComponent } from '../cell-renderer-row-selector/cell-renderer-row-selector.component';\n\n@NgModule({\n imports: [AsyncPipe, SkyAgGridResourcesModule, SkyCheckboxModule],\n declarations: [SkyAgGridCellRendererRowSelectorComponent],\n exports: [SkyAgGridCellRendererRowSelectorComponent],\n})\nexport class SkyAgGridCellRendererRowSelectorModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ValueFormatterParams } from 'ag-grid-community';\n\nimport { SkyCellRendererValidatorParams } from '../../types/cell-renderer-validator-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-validator-tooltip',\n templateUrl: 'cell-renderer-validator-tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererValidatorTooltipComponent\n implements ICellRendererAngularComp\n{\n @Input()\n public set params(value: SkyCellRendererValidatorParams) {\n this.agInit(value);\n }\n\n public cellRendererParams: SkyCellRendererValidatorParams | undefined;\n public value: unknown;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n public agInit(params: SkyCellRendererValidatorParams): void {\n this.cellRendererParams = params;\n if (typeof params.colDef?.valueFormatter === 'function') {\n this.value = params.colDef.valueFormatter(params as ValueFormatterParams);\n } else {\n this.value = params.value;\n }\n this.#changeDetector.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public refresh(params: unknown): boolean {\n return false;\n }\n}\n","<sky-ag-grid-cell-validator-tooltip [params]=\"cellRendererParams\">\n {{ value }}\n</sky-ag-grid-cell-validator-tooltip>\n","import { NgModule } from '@angular/core';\n\nimport { SkyAgGridCellValidatorModule } from '../../cell-validator/ag-grid-cell-validator.module';\n\nimport { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderer-validator-tooltip.component';\n\n@NgModule({\n declarations: [SkyAgGridCellRendererValidatorTooltipComponent],\n exports: [SkyAgGridCellRendererValidatorTooltipComponent],\n imports: [SkyAgGridCellValidatorModule],\n})\nexport class SkyAgGridCellRendererValidatorTooltipModule {}\n","import { Injectable } from '@angular/core';\n\nimport { ColumnGroup } from 'ag-grid-community';\n\n/**\n * To display a help button beside the column group header, create a component containing\n * [`sky-help-inline`](https://developer.blackbaud.com/skyux/components/help-inline),\n * and inject SkyAgGridHeaderGroupInfo to access the column group\n * information, such as display name.\n * Add the component to the `headerGroupComponentParams.inlineHelpComponent`\n * property of the [column group definition](https://www.ag-grid.com/angular-data-grid/column-groups/).\n * @see SkyAgGridHeaderGroupParams\n */\n@Injectable()\nexport class SkyAgGridHeaderGroupInfo {\n /**\n * [Column group information from AG Grid](https://www.ag-grid.com/angular-data-grid/column-object-group/).\n */\n public columnGroup: ColumnGroup | undefined;\n /**\n * Display name of the column group.\n */\n public displayName: string | undefined;\n /**\n * AG Grid's [`context` field](https://www.ag-grid.com/angular-data-grid/context/).\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public context: any;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLocation,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { IHeaderGroupAngularComp } from 'ag-grid-angular';\nimport { ColumnGroupOpenedEvent, ProvidedColumnGroup } from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Observable,\n Subscription,\n fromEventPattern,\n} from 'rxjs';\n\nimport { SkyAgGridHeaderGroupInfo } from '../types/header-group-info';\nimport { SkyAgGridHeaderGroupParams } from '../types/header-group-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-header-group',\n templateUrl: './header-group.component.html',\n styleUrls: ['./header-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridHeaderGroupComponent\n implements IHeaderGroupAngularComp, OnDestroy, AfterViewInit\n{\n @ViewChild('inlineHelpContainer', { read: ElementRef, static: true })\n public inlineHelpContainer: ElementRef | undefined;\n\n protected params: SkyAgGridHeaderGroupParams | undefined = undefined;\n protected isExpandable$: Observable<boolean>;\n protected isExpanded$: Observable<boolean>;\n\n #columnGroup: ProvidedColumnGroup | undefined = undefined;\n #isExpandableSubject = new BehaviorSubject<boolean>(false);\n #isExpandedSubject = new BehaviorSubject<boolean>(false);\n #subscriptions = new Subscription();\n #viewInitialized = false;\n #agInitialized = false;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #environmentInjector = inject(EnvironmentInjector);\n\n constructor() {\n this.isExpandable$ = this.#isExpandableSubject.asObservable();\n this.isExpanded$ = this.#isExpandedSubject.asObservable();\n }\n\n public ngAfterViewInit(): void {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this.#subscriptions.unsubscribe();\n }\n\n public agInit(params: SkyAgGridHeaderGroupParams | undefined): void {\n this.#agInitialized = true;\n this.params = params;\n this.#subscriptions.unsubscribe();\n if (!params) {\n return;\n }\n this.#subscriptions = new Subscription();\n this.#columnGroup = params.columnGroup.getProvidedColumnGroup();\n this.#isExpandableSubject.next(this.#columnGroup.isExpandable());\n if (this.#isExpandableSubject.getValue()) {\n this.#subscriptions.add(\n fromEventPattern<ColumnGroupOpenedEvent>(\n (handler) =>\n params.api.addEventListener('columnGroupOpened', handler),\n (handler) =>\n params.api.removeEventListener('columnGroupOpened', handler),\n ).subscribe((event) => {\n if (\n this.#columnGroup &&\n event.columnGroups.includes(this.#columnGroup)\n ) {\n this.#isExpandedSubject.next(this.#columnGroup.isExpanded());\n }\n }),\n );\n }\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n\n public setExpanded($event: boolean): void {\n this.params?.setExpanded($event);\n }\n\n #updateInlineHelp(): void {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n\n const colGroupDef = this.params?.columnGroup?.getColGroupDef();\n const inlineHelpComponent =\n colGroupDef?.headerGroupComponentParams?.inlineHelpComponent;\n\n if (inlineHelpComponent) {\n const headerGroupInfo = new SkyAgGridHeaderGroupInfo();\n headerGroupInfo.columnGroup = this.params?.columnGroup;\n headerGroupInfo.context = this.params?.context;\n headerGroupInfo.displayName = this.params?.displayName;\n\n this.#dynamicComponentService.createComponent(inlineHelpComponent, {\n providers: [\n {\n provide: SkyAgGridHeaderGroupInfo,\n useValue: headerGroupInfo,\n },\n ],\n environmentInjector: this.#environmentInjector,\n referenceEl: this.inlineHelpContainer?.nativeElement,\n location: SkyDynamicComponentLocation.ElementBottom,\n });\n }\n }\n}\n","@if (params?.displayName) {\n <span\n class=\"header-group-text\"\n role=\"presentation\"\n [skyThemeClass]=\"{ 'sky-font-heading-4': 'modern' }\"\n >{{ params?.displayName }}</span\n >\n}\n@if (isExpandable$ | async) {\n @if (isExpanded$ | async) {\n <button\n class=\"sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n [attr.aria-label]=\"\n 'sky_ag_grid_column_group_header_collapse_aria_label'\n | skyLibResources: params?.displayName\n \"\n (click)=\"setExpanded(false)\"\n >\n <sky-icon icon=\"double-chevron-left\" />\n </button>\n } @else {\n <button\n class=\"sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n [attr.aria-label]=\"\n 'sky_ag_grid_column_group_header_expand_aria_label'\n | skyLibResources: params?.displayName\n \"\n (click)=\"setExpanded(true)\"\n >\n <sky-icon icon=\"double-chevron-right\" />\n </button>\n }\n}\n<span #inlineHelpContainer class=\"sky-control-help-container\"></span>\n","import { Injectable } from '@angular/core';\n\nimport { Column } from 'ag-grid-community';\n\n/**\n * To display a help button beside the column header, create a component containing\n * [`sky-help-inline`](https://developer.blackbaud.com/skyux/components/help-inline),\n * and inject SkyAgGridHeaderInfo to access the column information, such\n * as display name.\n * Add the component to the `headerComponentParams.inlineHelpComponent`\n * property of the [column definition](https://www.ag-grid.com/angular-data-grid/column-definitions/).\n * @see SkyAgGridHeaderParams\n */\n@Injectable()\nexport class SkyAgGridHeaderInfo {\n /**\n * [Column information from AG Grid](https://www.ag-grid.com/angular-data-grid/column-object/).\n */\n public column: Column | undefined;\n /**\n * Display name of the column.\n */\n public displayName: string | undefined;\n /**\n * AG Grid's [`context` field](https://www.ag-grid.com/angular-data-grid/context/).\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public context: any;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n ViewChild,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLocation,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { IHeaderAngularComp } from 'ag-grid-angular';\nimport { ColumnMovedEvent } from 'ag-grid-community';\nimport { BehaviorSubject, Subscription, fromEventPattern } from 'rxjs';\n\nimport { SkyAgGridHeaderInfo } from '../types/header-info';\nimport { SkyAgGridHeaderParams } from '../types/header-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.title]': 'accessibleHeaderText()',\n '[attr.aria-label]': 'displayName() || accessibleHeaderText()',\n '[attr.role]': '\"note\"',\n },\n})\nexport class SkyAgGridHeaderComponent\n implements IHeaderAngularComp, OnDestroy, AfterViewInit\n{\n public readonly filterEnabled$ = new BehaviorSubject<boolean>(false);\n\n // For accessibility, we need to set the title attribute on the header element if there is no visible header text.\n // https://dequeuniversity.com/rules/axe/4.5/empty-table-header?application=axeAPI\n protected readonly accessibleHeaderText = computed(() => {\n const params = this.params();\n if (\n params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden\n ) {\n return undefined;\n } else {\n return params?.displayName || params?.column.getColDef().field;\n }\n });\n\n @ViewChild('inlineHelpContainer', { read: ElementRef, static: true })\n protected inlineHelpContainer: ElementRef | undefined;\n\n protected readonly params = signal<SkyAgGridHeaderParams | undefined>(\n undefined,\n );\n protected sorted = '';\n protected readonly sortOrder$ = new BehaviorSubject<\n 'asc' | 'desc' | undefined\n >(undefined);\n protected readonly sortIndexDisplay$ = new BehaviorSubject<string>('');\n\n protected displayName = computed<string | undefined>(() => {\n const params = this.params();\n if (\n params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden\n ) {\n return params.displayName;\n } else {\n return undefined;\n }\n });\n\n #subscriptions = new Subscription();\n #inlineHelpComponentRef: ComponentRef<unknown> | undefined;\n #viewInitialized = false;\n #agInitialized = false;\n #leftPosition = 0;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #environmentInjector = inject(EnvironmentInjector);\n\n public ngAfterViewInit(): void {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n }\n\n public ngOnDestroy(): void {\n this.#subscriptions.unsubscribe();\n }\n\n public agInit(params: SkyAgGridHeaderParams | undefined): void {\n this.#agInitialized = true;\n this.params.set(params);\n this.#subscriptions.unsubscribe();\n if (!params) {\n return;\n }\n this.#leftPosition = params.column.getLeft() ?? 0;\n this.#subscriptions = new Subscription();\n if (params.column.isFilterAllowed()) {\n this.#subscriptions.add(\n fromEventPattern(\n (handler) => params.column.addEventListener('filterChanged', handler),\n (handler) =>\n params.column.removeEventListener('filterChanged', handler),\n ).subscribe(() => {\n const isFilterActive = params.column.isFilterActive();\n if (isFilterActive !== this.filterEnabled$.getValue()) {\n this.filterEnabled$.next(isFilterActive);\n }\n }),\n );\n }\n if (params.enableSorting) {\n // Column sort state changes\n this.#subscriptions.add(\n fromEventPattern(\n (handler) => params.column.addEventListener('sortChanged', handler),\n (handler) =>\n params.column.removeEventListener('sortChanged', handler),\n ).subscribe(() => {\n this.#updateSort();\n }),\n );\n // Other column sort state changes, for multi-column sorting\n this.#subscriptions.add(\n fromEventPattern(\n (handler) => params.api.addEventListener('sortChanged', handler),\n (handler) => params.api.removeEventListener('sortChanged', handler),\n ).subscribe(() => {\n this.#updateSortIndex();\n }),\n );\n this.#updateSort();\n this.#updateSortIndex();\n }\n\n // When the column is moved left via the keyboard, the element is detached\n // and reattached to the DOM to maintain DOM order, and its focus is lost.\n this.#subscriptions.add(\n fromEventPattern<ColumnMovedEvent>(\n (handler) => params.api.addEventListener('columnMoved', handler),\n (handler) => params.api.removeEventListener('columnMoved', handler),\n ).subscribe((event) => {\n const left = event.column?.getLeft() ?? 0;\n const oldLeft = this.#leftPosition;\n if (\n event.column === params.column &&\n event.source === 'uiColumnMoved' &&\n left < oldLeft\n ) {\n params.eGridHeader.focus();\n }\n this.#leftPosition = left;\n }),\n );\n\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n\n public onMenuClick($event: Event): void {\n this.params()?.showColumnMenu($event.target as HTMLElement);\n }\n\n public onSortRequested(event: MouseEvent): void {\n if (this.params()?.enableSorting) {\n this.params()?.progressSort(event.shiftKey);\n }\n }\n\n public refresh(params: SkyAgGridHeaderParams): boolean {\n this.agInit(params);\n return false;\n }\n\n #updateInlineHelp(): void {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n\n const inlineHelpComponent = this.params()?.inlineHelpComponent;\n\n if (\n inlineHelpComponent &&\n (!this.#inlineHelpComponentRef ||\n this.#inlineHelpComponentRef.componentType !== inlineHelpComponent)\n ) {\n this.#dynamicComponentService.removeComponent(\n this.#inlineHelpComponentRef,\n );\n\n const headerInfo = new SkyAgGridHeaderInfo();\n headerInfo.column = this.params()?.column;\n headerInfo.context = this.params()?.context;\n headerInfo.displayName = this.params()?.displayName;\n\n this.#inlineHelpComponentRef =\n this.#dynamicComponentService.createComponent(inlineHelpComponent, {\n providers: [\n {\n provide: SkyAgGridHeaderInfo,\n useValue: headerInfo,\n },\n ],\n environmentInjector: this.#environmentInjector,\n referenceEl: this.inlineHelpContainer?.nativeElement,\n location: SkyDynamicComponentLocation.ElementBottom,\n });\n } else if (!inlineHelpComponent) {\n this.#dynamicComponentService.removeComponent(\n this.#inlineHelpComponentRef,\n );\n }\n }\n\n #updateSort(): void {\n this.sortOrder$.next(this.params()?.column.getSort() || undefined);\n }\n\n #updateSortIndex(): void {\n const sortIndex = this.params()?.column.getSortIndex();\n const otherSortColumns = this.params()\n ?.api?.getColumns()\n ?.some(\n (column) =>\n column.getColId() !== this.params()?.column.getColId() &&\n !!column.getSort(),\n );\n if (sortIndex !== undefined && sortIndex !== null && otherSortColumns) {\n this.sortIndexDisplay$.next(`${sortIndex + 1}`);\n } else {\n this.sortIndexDisplay$.next('');\n }\n }\n}\n","<div class=\"ag-cell-label-container\" role=\"presentation\">\n @if (params()?.enableMenu) {\n <span\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n }\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n @if (params()?.enableSorting) {\n <button\n aria-hidden=\"true\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"accessibleHeaderText()\"\n [innerText]=\"displayName() ?? ''\"\n [skyThemeClass]=\"{ 'sky-font-heading-4': 'modern' }\"\n (click)=\"onSortRequested($event)\"\n ></button>\n } @else if (displayName()) {\n <span\n aria-hidden=\"true\"\n class=\"ag-header-cell-text\"\n [skyThemeClass]=\"{ 'sky-font-heading-4': 'modern' }\"\n >{{ displayName() }}</span\n >\n }\n @if (filterEnabled$ | async) {\n <span\n aria-hidden=\"true\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n ><sky-icon icon=\"filter\"\n /></span>\n }\n @if (params()?.enableSorting) {\n @if (sortOrder$ | async; as sortDirection) {\n <button\n class=\"ag-sort-indicator-container sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n (click)=\"onSortRequested($event)\"\n >\n @if (sortDirection === 'desc') {\n <span class=\"ag-header-icon ag-header-label-icon\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-down\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-down\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_desc'\n | skyLibResources: displayName() ?? accessibleHeaderText()\n }}</span></span\n >\n }\n @if (sortDirection === 'asc') {\n <span class=\"ag-header-icon ag-header-label-icon\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-up\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-up\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_asc'\n | skyLibResources: displayName() ?? accessibleHeaderText()\n }}</span></span\n >\n }\n\n @if (sortIndexDisplay$ | async; as sortIndexDisplay) {\n <span\n aria-hidden=\"true\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n >{{ sortIndexDisplay }}</span\n >\n }\n </button>\n } @else {\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted'\n | skyLibResources: displayName() ?? accessibleHeaderText()\n }}</span>\n }\n }\n </span>\n <span #inlineHelpContainer class=\"sky-control-help-container\"></span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyViewkeeperModule } from '@skyux/core';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyDatePipeModule } from '@skyux/datetime';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyAgGridResourcesModule } from '../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridDataManagerAdapterDirective } from './ag-grid-data-manager-adapter.directive';\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport { SkyAgGridRowDeleteDirective } from './ag-grid-row-delete.directive';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport { SkyAgGridCellEditorAutocompleteModule } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module';\nimport { SkyAgGridCellEditorCurrencyModule } from './cell-editors/cell-editor-currency/cell-editor-currency.module';\nimport { SkyAgGridCellEditorDatepickerModule } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.module';\nimport { SkyAgGridCellEditorLookupModule } from './cell-editors/cell-editor-lookup/cell-editor-lookup.module';\nimport { SkyAgGridCellEditorNumberModule } from './cell-editors/cell-editor-number/cell-editor-number.module';\nimport { SkyAgGridCellEditorTextModule } from './cell-editors/cell-editor-text/cell-editor-text.module';\nimport { SkyAgGridCellRendererCurrencyModule } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.module';\nimport { SkyAgGridCellRendererLookupModule } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module';\nimport { SkyAgGridCellRendererRowSelectorModule } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module';\nimport { SkyAgGridCellRendererValidatorTooltipModule } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module';\nimport { SkyAgGridCellValidatorModule } from './cell-validator/ag-grid-cell-validator.module';\nimport { SkyAgGridHeaderGroupComponent } from './header/header-group.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\n\n@NgModule({\n declarations: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridHeaderComponent,\n SkyAgGridHeaderGroupComponent,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n imports: [\n AgGridModule,\n CommonModule,\n SkyAgGridCellEditorAutocompleteModule,\n SkyAgGridCellEditorDatepickerModule,\n SkyAgGridCellEditorLookupModule,\n SkyAgGridCellEditorNumberModule,\n SkyAgGridCellEditorCurrencyModule,\n SkyAgGridCellRendererCurrencyModule,\n SkyAgGridCellRendererLookupModule,\n SkyAgGridCellRendererRowSelectorModule,\n SkyAgGridCellRendererValidatorTooltipModule,\n SkyAgGridCellValidatorModule,\n SkyAgGridCellEditorTextModule,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteComponent,\n SkyDataManagerModule,\n SkyDatePipeModule,\n SkyIconModule,\n SkyInlineDeleteModule,\n SkyViewkeeperModule,\n SkyThemeModule,\n ],\n exports: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteComponent,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n SkyAgGridHeaderComponent,\n SkyAgGridHeaderGroupComponent,\n ],\n})\nexport class SkyAgGridModule {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, TemplateRef } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\nimport { CellRendererTemplateContext } from './cell-renderer-template-context.type';\n\ntype CellState =\n | {\n hasTemplate: true;\n template: TemplateRef<CellRendererTemplateContext>;\n context: CellRendererTemplateContext;\n }\n | {\n hasTemplate: false;\n template: undefined;\n context?: unknown;\n };\n\n@Component({\n selector: 'sky-ag-grid-cell-renderer-template',\n standalone: true,\n template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`,\n imports: [NgTemplateOutlet],\n})\nexport class SkyAgGridCellRendererTemplateComponent\n implements ICellRendererAngularComp\n{\n protected state: CellState = {\n hasTemplate: false,\n template: undefined,\n context: { value: undefined, data: undefined },\n };\n\n public agInit(params: ICellRendererParams): void {\n const hasTemplate = !!(\n params.colDef?.cellRendererParams &&\n 'template' in params.colDef.cellRendererParams &&\n params.colDef.cellRendererParams.template\n );\n const template: TemplateRef<CellRendererTemplateContext> | undefined =\n hasTemplate\n ? (params.colDef?.cellRendererParams\n .template as TemplateRef<CellRendererTemplateContext>)\n : undefined;\n this.state = {\n hasTemplate,\n template,\n context: { value: params.value, row: params.data },\n } as CellState;\n }\n\n public refresh(params: ICellRendererParams): boolean {\n this.agInit(params);\n return false;\n }\n}\n","export const iconMap: Record<\n string,\n {\n faIcon: string;\n skyIcon?: string;\n }\n> = {\n sortDescending: {\n faIcon: 'caret-down',\n skyIcon: 'chevron-down',\n },\n sortAscending: {\n faIcon: 'caret-up',\n skyIcon: 'chevron-up',\n },\n columnMoveMove: {\n faIcon: 'arrows',\n },\n columnMoveHide: {\n faIcon: 'eye-slash',\n skyIcon: 'hide',\n },\n columnMoveLeft: {\n faIcon: 'arrows',\n },\n columnMoveRight: {\n faIcon: 'arrows',\n },\n columnMoveGroup: {\n faIcon: 'arrows',\n },\n columnMovePin: {\n faIcon: 'arrows',\n },\n columnGroupOpened: {\n faIcon: 'caret-right',\n skyIcon: 'double-chevron-right',\n },\n columnGroupClosed: {\n faIcon: 'caret-left',\n skyIcon: 'double-chevron-left',\n },\n dropNotAllowed: {\n faIcon: 'ban',\n skyIcon: 'ban',\n },\n menu: {\n faIcon: 'menu',\n skyIcon: 'bars-2',\n },\n filter: {\n faIcon: 'filter',\n skyIcon: 'filter',\n },\n columns: {\n faIcon: 'columns',\n skyIcon: 'columns',\n },\n last: {\n faIcon: 'step-forward',\n skyIcon: 'double-chevron-right',\n },\n next: {\n faIcon: 'caret-right',\n skyIcon: 'chevron-right',\n },\n previous: {\n faIcon: 'caret-left',\n skyIcon: 'chevron-left',\n },\n first: {\n faIcon: 'step-backward',\n skyIcon: 'double-chevron-left',\n },\n};\nexport type IconMapType = typeof iconMap;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { ILoadingOverlayAngularComp } from 'ag-grid-angular';\nimport { ILoadingOverlayParams } from 'ag-grid-community';\n\n@Component({\n selector: 'sky-ag-grid-loading',\n standalone: true,\n imports: [SkyWaitModule],\n templateUrl: './loading.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridLoadingComponent implements ILoadingOverlayAngularComp {\n public agInit(_params: ILoadingOverlayParams): void {\n // Do nothing.\n }\n\n public refresh(_params: ILoadingOverlayParams): void {\n // Do nothing.\n }\n}\n","<sky-wait [isWaiting]=\"true\" />\n","/**\n * @internal\n */\nexport enum SkyCellClass {\n Autocomplete = 'sky-ag-grid-cell-autocomplete',\n Currency = 'sky-ag-grid-cell-currency',\n Date = 'sky-ag-grid-cell-date',\n Editable = 'sky-ag-grid-cell-editable',\n Invalid = 'sky-ag-grid-cell-invalid',\n Lookup = 'sky-ag-grid-cell-lookup',\n Number = 'sky-ag-grid-cell-number',\n RightAligned = 'sky-ag-grid-cell-right-aligned',\n RowSelector = 'sky-ag-grid-cell-row-selector',\n Template = 'sky-ag-grid-cell-template',\n Text = 'sky-ag-grid-cell-text',\n Uneditable = 'sky-ag-grid-cell-uneditable',\n Validator = 'sky-ag-grid-cell-validator',\n}\n","/**\n * @internal\n */\nexport enum SkyHeaderClass {\n Resizable = 'sky-ag-grid-header-resizable',\n RightAligned = 'sky-ag-grid-header-right-aligned',\n}\n","import { Injectable, OnDestroy, Optional, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyDateService } from '@skyux/datetime';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeService, SkyThemeSettings } from '@skyux/theme';\n\nimport {\n CellClassParams,\n ColDef,\n EditableCallbackParams,\n GridOptions,\n HeaderClassParams,\n ICellRendererParams,\n RowClassParams,\n RowSelectionOptions,\n SuppressHeaderKeyboardEventParams,\n SuppressKeyboardEventParams,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\nimport { applySkyLookupPropertiesDefaults } from './apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorAutocompleteComponent } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nimport { SkyAgGridCellEditorCurrencyComponent } from './cell-editors/cell-editor-currency/cell-editor-currency.component';\nimport { SkyAgGridCellEditorDatepickerComponent } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nimport { SkyAgGridCellEditorLookupComponent } from './cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nimport { SkyAgGridCellEditorNumberComponent } from './cell-editors/cell-editor-number/cell-editor-number.component';\nimport { SkyAgGridCellEditorTextComponent } from './cell-editors/cell-editor-text/cell-editor-text.component';\nimport { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nimport { SkyAgGridCellRendererLookupComponent } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nimport { SkyAgGridCellRendererRowSelectorComponent } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nimport { SkyAgGridCellRendererTemplateComponent } from './cell-renderers/cell-renderer-template/cell-renderer-template.component';\nimport { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nimport { SkyAgGridHeaderGroupComponent } from './header/header-group.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\nimport { IconMapType, iconMap } from './icons/icon-map';\nimport { SkyAgGridLoadingComponent } from './loading/loading.component';\nimport { SkyCellClass } from './types/cell-class';\nimport { SkyCellType } from './types/cell-type';\nimport { SkyHeaderClass } from './types/header-class';\nimport { LastFocusedCell } from './types/last-focused.cell';\nimport { SkyGetGridOptionsArgs } from './types/sky-grid-options';\n\nfunction autocompleteComparator(\n value1: { name: string },\n value2: { name: string },\n): number {\n if (value1 && value2) {\n if (value1.name > value2.name) {\n return 1;\n }\n\n if (value1.name < value2.name) {\n return -1;\n }\n\n return 0;\n }\n\n return value1 ? 1 : -1;\n}\n\nfunction autocompleteFormatter(params: ValueFormatterParams): string {\n return params.value && params.value.name;\n}\n\nfunction dateComparator(date1: Date | string, date2: Date | string): number {\n let date1value = date1;\n let date2value = date2;\n\n if (typeof date1value === 'string') {\n date1value = new Date(date1);\n }\n\n if (typeof date2value === 'string') {\n date2value = new Date(date2);\n }\n\n if (date1value && date2value) {\n if (date1value > date2value) {\n return 1;\n }\n\n if (date1value < date2value) {\n return -1;\n }\n\n return 0;\n }\n\n return date1value ? 1 : -1;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getValidatorCellRendererSelector(component: string, fallback?: any) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (params: ICellRendererParams): any => {\n if (\n params.colDef &&\n typeof params.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function'\n ) {\n if (\n params.column?.isCellEditable(params.node) ||\n !params.colDef.cellRendererParams.skyComponentProperties.validator(\n params.value,\n params.data,\n params?.node?.rowIndex,\n )\n ) {\n return {\n component,\n params: {\n ...params.colDef.cellRendererParams,\n },\n };\n }\n }\n return fallback;\n };\n}\n\nlet rowNodeId = -1;\n\n/**\n * `SkyAgGridService` provides methods to get AG Grid `gridOptions` to ensure grids match SKY UX functionality. The `gridOptions` can be overridden, and include registered SKY UX column types.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAgGridService implements OnDestroy {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #keyMap = new WeakMap<any, string>();\n #ngUnsubscribe = new Subject<void>();\n #currentTheme: SkyThemeSettings | undefined = undefined;\n #agGridAdapterService: SkyAgGridAdapterService;\n #resources: SkyLibResourcesService | undefined;\n #dateService = inject(SkyDateService);\n #logService = inject(SkyLogService);\n\n constructor(\n agGridAdapterService: SkyAgGridAdapterService,\n @Optional() themeSvc?: SkyThemeService,\n @Optional() resources?: SkyLibResourcesService,\n ) {\n this.#agGridAdapterService = agGridAdapterService;\n this.#resources = resources;\n\n /*istanbul ignore else*/\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#currentTheme = settingsChange.currentSettings;\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell renderers registered for read-only grids.\n * @param args\n * @returns\n */\n public getGridOptions(args: SkyGetGridOptionsArgs): GridOptions {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(\n defaultGridOptions,\n args.gridOptions,\n );\n\n return mergedGridOptions;\n }\n\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell editors registered for editable grids.\n * @param args\n * @returns\n */\n public getEditableGridOptions(args: SkyGetGridOptionsArgs): GridOptions {\n const defaultGridOptions = this.#getDefaultEditableGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(\n defaultGridOptions,\n args.gridOptions,\n );\n\n return mergedGridOptions;\n }\n\n /**\n * @deprecated The `getHeaderHeight` method is no longer needed. Header height is managed in CSS.\n */\n public getHeaderHeight(): number {\n return this.#currentTheme?.theme?.name === 'modern' ? 60 : 37;\n }\n\n #mergeGridOptions(\n defaultGridOptions: GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n },\n providedGridOptions: GridOptions,\n ): GridOptions {\n if ('enableRangeSelection' in providedGridOptions) {\n if (providedGridOptions.enableRangeSelection) {\n providedGridOptions.cellSelection = true;\n }\n delete providedGridOptions.enableRangeSelection;\n }\n if (\n providedGridOptions.rowSelection === 'single' ||\n providedGridOptions.rowSelection === 'multiple'\n ) {\n const rowSelectionOptions: Record<string, RowSelectionOptions> = {\n single: { mode: 'singleRow' },\n multiple: { mode: 'multiRow' },\n };\n providedGridOptions.rowSelection =\n rowSelectionOptions[providedGridOptions.rowSelection];\n }\n if (\n defaultGridOptions.rowSelection &&\n providedGridOptions.rowSelection?.mode\n ) {\n providedGridOptions.rowSelection = {\n ...(defaultGridOptions.rowSelection as RowSelectionOptions),\n ...providedGridOptions.rowSelection,\n } as RowSelectionOptions;\n }\n\n const mergedGridOptions: GridOptions = {\n ...defaultGridOptions,\n ...providedGridOptions,\n components: {\n ...providedGridOptions.components,\n // Apply default components last to prevent consumers from overwriting our component types.\n ...defaultGridOptions.components,\n },\n context: {\n ...defaultGridOptions.context,\n ...providedGridOptions.context,\n },\n columnTypes: {\n ...providedGridOptions.columnTypes,\n // apply default second to prevent consumers from overwriting our default column types\n ...defaultGridOptions.columnTypes,\n },\n defaultColDef: {\n ...defaultGridOptions.defaultColDef,\n ...providedGridOptions.defaultColDef,\n // allow consumers to override all defaultColDef properties except cellClassRules, which we reserve for styling\n cellClassRules: defaultGridOptions.defaultColDef?.cellClassRules,\n headerClass: defaultGridOptions.defaultColDef?.headerClass,\n },\n defaultColGroupDef: {\n ...defaultGridOptions.defaultColGroupDef,\n ...providedGridOptions.defaultColGroupDef,\n headerClass: defaultGridOptions.defaultColGroupDef?.headerClass,\n },\n getRowClass: (params): string[] => {\n const defaultClasses = defaultGridOptions.getRowClass(\n params,\n ) as string[];\n const providedClasses = providedGridOptions.getRowClass?.(params) ?? [];\n const providedClassesArray = Array.isArray(providedClasses)\n ? providedClasses\n : [providedClasses];\n return [...defaultClasses, ...providedClassesArray];\n },\n icons: {\n ...defaultGridOptions.icons,\n ...providedGridOptions.icons,\n },\n onCellFocused: (event): void => {\n defaultGridOptions.onCellFocused?.(event);\n providedGridOptions.onCellFocused?.(event);\n },\n };\n\n // Enable text selection unless explicitly disabled or conflicting with another setting.\n if (\n mergedGridOptions.enableCellTextSelection ||\n (!('enableCellTextSelection' in mergedGridOptions) &&\n !mergedGridOptions.cellSelection &&\n !mergedGridOptions.columnDefs?.some((col: ColDef) => col.editable))\n ) {\n mergedGridOptions.context ||= {};\n mergedGridOptions.enableCellTextSelection ??= true;\n mergedGridOptions.context.enableCellTextSelection =\n mergedGridOptions.enableCellTextSelection;\n }\n\n return mergedGridOptions;\n }\n\n #getDefaultGridOptions(args: SkyGetGridOptionsArgs): GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } {\n // cellClassRules can be functions or string expressions\n const cellClassRuleTrueExpression = (): boolean => true;\n\n function getEditableFn(\n isUneditable?: boolean,\n ): (params: CellClassParams) => boolean {\n return function (params: CellClassParams): boolean {\n let isEditable = params.colDef.editable;\n\n if (typeof isEditable === 'function') {\n const column = params.api.getColumn(params.colDef);\n isEditable = isEditable({\n ...params,\n column,\n } as EditableCallbackParams);\n }\n\n return isUneditable ? !isEditable : !!isEditable;\n };\n }\n\n const editableCellClassRules = {\n [SkyCellClass.Editable]: getEditableFn(),\n [SkyCellClass.Uneditable]: getEditableFn(true),\n };\n\n function getValidatorFn(): (params: CellClassParams) => boolean {\n return function (param: CellClassParams) {\n if (\n param.colDef &&\n typeof param.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function'\n ) {\n return !param.colDef.cellRendererParams.skyComponentProperties.validator(\n param.value,\n param.data,\n param.node?.rowIndex,\n );\n }\n return false;\n };\n }\n\n const validatorCellClassRules = {\n [SkyCellClass.Invalid]: getValidatorFn(),\n [SkyCellClass.Validator]: cellClassRuleTrueExpression,\n };\n\n function getHeaderClass(\n ...classNames: string[]\n ): (params: HeaderClassParams) => string | string[] | undefined {\n return (params: HeaderClassParams): string | string[] | undefined => {\n // istanbul ignore next\n const minWidth = params.column?.getMinWidth() ?? 0;\n // istanbul ignore next\n const maxWidth = params.column?.getMaxWidth() ?? Infinity;\n if (params.column?.isResizable() && minWidth < maxWidth) {\n return [...classNames, SkyHeaderClass.Resizable];\n }\n return classNames;\n };\n }\n\n const defaultSkyGridOptions: GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } = {\n columnTypes: {\n [SkyCellType.Autocomplete]: {\n cellClassRules: {\n [SkyCellClass.Autocomplete]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorAutocompleteComponent,\n valueFormatter: autocompleteFormatter,\n comparator: autocompleteComparator,\n minWidth: 185,\n },\n [SkyCellType.Currency]: {\n cellClassRules: {\n [SkyCellClass.Currency]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-currency-validator',\n { component: 'sky-ag-grid-cell-renderer-currency' },\n ),\n cellEditor: SkyAgGridCellEditorCurrencyComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n minWidth: 185,\n suppressKeyboardEvent: (params) =>\n this.#suppressEnter(params) || this.#suppressTab(params),\n },\n [SkyCellType.Date]: {\n cellClassRules: {\n [SkyCellClass.Date]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorDatepickerComponent,\n comparator: dateComparator,\n minWidth: this.#currentTheme?.theme?.name === 'modern' ? 180 : 160,\n valueFormatter: (params: ValueFormatterParams) => {\n try {\n return (\n this.#dateService.format(\n params.value,\n args.locale,\n args.dateFormat || 'shortDate',\n ) || ''\n );\n } catch (err) {\n /* istanbul ignore else */\n if ((err as Error).stack) {\n this.#logService.error(`${(err as Error).stack}`);\n } else {\n this.#logService.error(`${err}`);\n }\n return '';\n }\n },\n },\n [SkyCellType.Lookup]: {\n cellClassRules: {\n [SkyCellClass.Lookup]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorLookupComponent,\n cellRenderer: SkyAgGridCellRendererLookupComponent,\n valueFormatter: (params) => {\n const lookupProperties = applySkyLookupPropertiesDefaults(\n params.colDef?.cellRendererParams?.skyComponentProperties ??\n params.colDef?.cellEditorParams?.skyComponentProperties ??\n {},\n );\n return (params.value || [])\n .map((value: Record<string, unknown>) => {\n return value[lookupProperties.descriptorProperty as string];\n })\n .filter((value: unknown) => value !== '' && value !== undefined)\n .join('; ');\n },\n minWidth: 185,\n },\n [SkyCellType.Number]: {\n cellClassRules: {\n [SkyCellClass.Number]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-validator-tooltip',\n ),\n cellEditor: SkyAgGridCellEditorNumberComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n },\n [SkyCellType.RightAligned]: {\n cellClassRules: {\n [SkyCellClass.RightAligned]: cellClassRuleTrueExpression,\n },\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n },\n [SkyCellType.RowSelector]: {\n cellClassRules: {\n [SkyCellClass.RowSelector]: cellClassRuleTrueExpression,\n [SkyCellClass.Uneditable]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererRowSelectorComponent,\n headerComponentParams: {\n headerHidden: true,\n },\n headerName: 'Row selection',\n minWidth: 55,\n maxWidth: 55,\n resizable: false,\n sortable: false,\n width: 55,\n },\n [SkyCellType.Template]: {\n cellClassRules: {\n [SkyCellClass.Template]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererTemplateComponent,\n cellEditor: SkyAgGridCellRendererTemplateComponent,\n },\n [SkyCellType.Text]: {\n cellClassRules: {\n [SkyCellClass.Text]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorTextComponent,\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-validator-tooltip',\n ),\n },\n [SkyCellType.Validator]: {\n cellClassRules: {\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-validator-tooltip',\n ),\n },\n },\n defaultColDef: {\n cellClassRules: editableCellClassRules,\n headerClass: getHeaderClass(),\n headerComponent: SkyAgGridHeaderComponent,\n minWidth: 100,\n suppressHeaderKeyboardEvent: (\n keypress: SuppressHeaderKeyboardEventParams,\n ) => keypress.event.code === 'Tab',\n suppressKeyboardEvent: (keypress: SuppressKeyboardEventParams) =>\n this.#suppressTab(keypress),\n },\n defaultColGroupDef: {\n headerGroupComponent: SkyAgGridHeaderGroupComponent,\n },\n domLayout: 'autoHeight',\n ensureDomOrder: true,\n components: {\n 'sky-ag-grid-cell-renderer-currency':\n SkyAgGridCellRendererCurrencyComponent,\n 'sky-ag-grid-cell-renderer-currency-validator':\n SkyAgGridCellRendererCurrencyValidatorComponent,\n 'sky-ag-grid-cell-renderer-validator-tooltip':\n SkyAgGridCellRendererValidatorTooltipComponent,\n },\n focusGridInnerElement: (params) => {\n const lastFocusedCell = params.context?.['lastFocusedCell'] as\n | LastFocusedCell\n | undefined;\n if (lastFocusedCell) {\n if (lastFocusedCell.rowIndex !== null) {\n params.api.setFocusedCell(\n lastFocusedCell.rowIndex,\n lastFocusedCell.column,\n );\n } else {\n params.api.setFocusedHeader(lastFocusedCell.column);\n }\n return true;\n }\n return false;\n },\n getRowId: (params) => {\n const dataId = params.data.id;\n if (dataId !== undefined) {\n return `${params.data.id}`;\n }\n if (!this.#keyMap.has(params.data)) {\n this.#keyMap.set(params.data, `${rowNodeId--}`);\n }\n return this.#keyMap.get(params.data) as string;\n },\n getRowClass: (params: RowClassParams): string[] => {\n if (params.node.id) {\n return [`sky-ag-grid-row-${params.node.id}`];\n } else {\n return [];\n }\n },\n icons: {\n sortDescending: this.#getIconTemplate('sortDescending'),\n sortAscending: this.#getIconTemplate('sortAscending'),\n columnMoveMove: this.#getIconTemplate('columnMoveMove'),\n columnMoveHide: this.#getIconTemplate('columnMoveHide'),\n columnMoveLeft: this.#getIconTemplate('columnMoveLeft'),\n columnMoveRight: this.#getIconTemplate('columnMoveRight'),\n columnMovePin: this.#getIconTemplate('columnMovePin'),\n },\n loadingOverlayComponent: SkyAgGridLoadingComponent,\n onCellFocused: () => this.#onCellFocused(),\n rowSelection: {\n mode: 'multiRow',\n enableClickSelection: false,\n enableSelectionWithoutKeys: true,\n checkboxes: false,\n headerCheckbox: false,\n },\n singleClickEdit: true,\n sortingOrder: ['desc', 'asc', null],\n suppressDragLeaveHidesColumns: true,\n };\n\n const columnTypes = defaultSkyGridOptions.columnTypes as Record<\n string,\n ColDef\n >;\n\n columnTypes[SkyCellType.CurrencyValidator] = {\n ...columnTypes[SkyCellType.Currency],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: string): boolean => {\n return !!`${value || ''}`.match(/^[^0-9]*(\\d+[,.]?)+\\d*[^0-9]*$/);\n },\n validatorMessage: 'Please enter a valid currency',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_currency_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[\n SkyCellType.CurrencyValidator\n ].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n }\n\n columnTypes[SkyCellType.NumberValidator] = {\n ...columnTypes[SkyCellType.Validator],\n ...columnTypes[SkyCellType.Number],\n cellClassRules: {\n ...columnTypes[SkyCellType.Validator].cellClassRules,\n ...columnTypes[SkyCellType.Number].cellClassRules,\n },\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: string): boolean => {\n return !!value && !isNaN(parseFloat(value));\n },\n validatorMessage: 'Please enter a valid number',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_number_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[\n SkyCellType.NumberValidator\n ].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n this.#resources\n .getString('sky_ag_grid_row_selector_column_heading')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.RowSelector].headerName = value;\n });\n }\n\n return defaultSkyGridOptions;\n }\n\n #onCellFocused(): void {\n const currentElement = this.#agGridAdapterService.getFocusedElement();\n\n this.#agGridAdapterService.focusOnFocusableChildren(currentElement);\n }\n\n #getDefaultEditableGridOptions(args: SkyGetGridOptionsArgs): GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n defaultGridOptions.rowSelection = undefined;\n return defaultGridOptions;\n }\n\n #getIconTemplate(iconName: keyof IconMapType): () => string {\n return () => {\n const icon = iconMap[iconName];\n if (this.#currentTheme?.theme.name === 'modern' && icon.skyIcon) {\n return `<i aria-hidden=\"true\" class=\"sky-i-${icon.skyIcon}\"></i>`;\n } else {\n return `<i aria-hidden=\"true\" class=\"fa fa-${icon.faIcon}\"></i>`;\n }\n };\n }\n\n #suppressTab(params: SuppressKeyboardEventParams): boolean {\n if (params.event.code === 'Tab') {\n if (params.editing) {\n const currentlyFocusedEl =\n this.#agGridAdapterService.getFocusedElement();\n // inline cell editors have the 'ag-cell' class, while popup editors have the 'ag-popup-editor' class\n const cellEl = this.#agGridAdapterService.getElementOrParentWithClass(\n currentlyFocusedEl,\n 'ag-cell',\n );\n const popupEl = this.#agGridAdapterService.getElementOrParentWithClass(\n currentlyFocusedEl,\n 'ag-popup-editor',\n );\n const parentEl = cellEl || popupEl;\n\n const nextFocusableElementInCell =\n this.#agGridAdapterService.getNextFocusableElement(\n currentlyFocusedEl,\n parentEl,\n params.event.shiftKey,\n );\n return !!nextFocusableElementInCell;\n }\n return true;\n }\n return false;\n }\n\n #suppressEnter(params: SuppressKeyboardEventParams): boolean {\n if (params.event.code === 'Enter') {\n return params.editing;\n }\n return false;\n }\n}\n","// Export any types that should be included in the root.\nexport { SkyAgGridModule } from './lib/modules/ag-grid/ag-grid.module';\nexport { SkyAgGridService } from './lib/modules/ag-grid/ag-grid.service';\nexport { SkyAgGridRowDeleteCancelArgs } from './lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args';\nexport { SkyAgGridRowDeleteConfirmArgs } from './lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args';\nexport {\n SkyAgGridAutocompleteProperties,\n SkyAutocompleteProperties,\n} from './lib/modules/ag-grid/types/autocomplete-properties';\nexport { SkyCellClass } from './lib/modules/ag-grid/types/cell-class';\nexport { SkyAgGridCellEditorInitialAction } from './lib/modules/ag-grid/types/cell-editor-initial-action';\nexport { SkyAgGridCellEditorUtils } from './lib/modules/ag-grid/types/cell-editor-utils';\nexport { SkyCellType } from './lib/modules/ag-grid/types/cell-type';\nexport { SkyAgGridCurrencyProperties } from './lib/modules/ag-grid/types/currency-properties';\nexport {\n SkyAgGridDatepickerProperties,\n SkyDatepickerProperties,\n} from './lib/modules/ag-grid/types/datepicker-properties';\nexport { SkyHeaderClass } from './lib/modules/ag-grid/types/header-class';\nexport { SkyAgGridHeaderGroupInfo } from './lib/modules/ag-grid/types/header-group-info';\nexport { SkyAgGridHeaderGroupParams } from './lib/modules/ag-grid/types/header-group-params';\nexport { SkyAgGridHeaderInfo } from './lib/modules/ag-grid/types/header-info';\nexport { SkyAgGridHeaderParams } from './lib/modules/ag-grid/types/header-params';\nexport { SkyAgGridLookupProperties } from './lib/modules/ag-grid/types/lookup-properties';\nexport { SkyAgGridNumberProperties } from './lib/modules/ag-grid/types/number-properties';\nexport { SkyGetGridOptionsArgs } from './lib/modules/ag-grid/types/sky-grid-options';\nexport { SkyAgGridTextProperties } from './lib/modules/ag-grid/types/text-properties';\nexport { SkyAgGridValidatorProperties } from './lib/modules/ag-grid/types/validator-properties';\n\n// Components and directives must be exported to support Angular's \"partial\" Ivy compiler.\n// Obscure names are used to indicate types are not part of the public API.\nexport { SkyAgGridDataManagerAdapterDirective as λ14 } from './lib/modules/ag-grid/ag-grid-data-manager-adapter.directive';\nexport { SkyAgGridRowDeleteComponent as λ6 } from './lib/modules/ag-grid/ag-grid-row-delete.component';\nexport { SkyAgGridRowDeleteDirective as λ13 } from './lib/modules/ag-grid/ag-grid-row-delete.directive';\nexport { SkyAgGridWrapperComponent as λ12 } from './lib/modules/ag-grid/ag-grid-wrapper.component';\nexport { SkyAgGridCellEditorAutocompleteComponent as λ1 } from './lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nexport { SkyAgGridCellEditorCurrencyComponent as λ3 } from './lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component';\nexport { SkyAgGridCellEditorDatepickerComponent as λ5 } from './lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nexport { SkyAgGridCellEditorLookupComponent as λ15 } from './lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nexport { SkyAgGridCellEditorNumberComponent as λ4 } from './lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component';\nexport { SkyAgGridCellEditorTextComponent as λ2 } from './lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component';\nexport { SkyAgGridCellRendererCurrencyValidatorComponent as λ8 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nexport { SkyAgGridCellRendererCurrencyComponent as λ9 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nexport { SkyAgGridCellRendererLookupComponent as λ16 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nexport { SkyAgGridCellRendererRowSelectorComponent as λ7 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nexport { SkyAgGridCellRendererValidatorTooltipComponent as λ10 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nexport { SkyAgGridCellValidatorTooltipComponent as λ11 } from './lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component';\nexport { SkyAgGridHeaderGroupComponent as λ18 } from './lib/modules/ag-grid/header/header-group.component';\nexport { SkyAgGridHeaderComponent as λ17 } from './lib/modules/ag-grid/header/header.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","takeUntil","i3","i4","i1.SkyAgGridCellValidatorTooltipComponent","i2.SkyAgGridCellRendererCurrencyComponent","i1.SkyAgGridAdapterService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-ag-grid.mjs","sources":["../../../../../libs/components/ag-grid/src/lib/modules/shared/sky-ag-grid-resources.module.ts","../../../../../libs/components/ag-grid/src/lib/styles/ag-grid-theme.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-adapter.service.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-type.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.directive.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-editor-initial-action.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-editor-utils.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/apply-lookup-properties-defaults.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/header-group-info.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header-group.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header-group.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/header-info.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.module.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/icons/icon-map.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/loading/loading.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/loading/loading.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/cell-class.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/types/header-class.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts","../../../../../libs/components/ag-grid/src/index.ts","../../../../../libs/components/ag-grid/src/skyux-ag-grid.ts"],"sourcesContent":["/* istanbul ignore file */\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-ag-grid' 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 sky_ag_grid_row_selector_aria_label: {\n message: 'Row selector for row {0}',\n },\n sky_ag_grid_row_selector_column_heading: { message: 'Row selection' },\n sky_ag_grid_cell_editor_datepicker_aria_label: {\n message: 'Editable date {0} for row {1}',\n },\n sky_ag_grid_cell_editor_datepicker_hint_text: {\n message: 'Use the format {0}.',\n },\n sky_ag_grid_cell_editor_number_aria_label: {\n message: 'Editable number {0} for row {1}',\n },\n sky_ag_grid_cell_editor_text_aria_label: {\n message: 'Editable text {0} for row {1}',\n },\n sky_ag_grid_cell_editor_autocomplete_aria_label: {\n message: 'Editable autocomplete {0} for row {1}',\n },\n sky_ag_grid_cell_renderer_number_validator_message: {\n message: 'Enter a valid number.',\n },\n sky_ag_grid_cell_renderer_currency_validator_message: {\n message: 'Enter a valid currency.',\n },\n skyux_lookup_tokens_summary: { message: '{0} items selected' },\n sky_ag_grid_cell_editor_currency_aria_label: {\n message: 'Editable currency {0} for row {1}',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_asc: {\n message: 'Sort column {0}, currently ascending',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_desc: {\n message: 'Sort column {0}, currently descending',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted: {\n message: 'Sort column {0}, not currently sorted',\n },\n sky_ag_grid_column_group_header_expand_aria_label: {\n message: 'Expand column group {0}',\n },\n sky_ag_grid_column_group_header_collapse_aria_label: {\n message: 'Collapse column group {0}',\n },\n },\n 'FR-CA': {\n sky_ag_grid_row_selector_aria_label: {\n message: 'Sélecteur de ligne pour la ligne {0}',\n },\n sky_ag_grid_row_selector_column_heading: {\n message: 'Sélection d’une ligne',\n },\n sky_ag_grid_cell_editor_datepicker_aria_label: {\n message: 'Date modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_editor_datepicker_hint_text: {\n message: 'Utilisez le format {0}.',\n },\n sky_ag_grid_cell_editor_number_aria_label: {\n message: 'Numéro modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_editor_text_aria_label: {\n message: 'Texte modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_editor_autocomplete_aria_label: {\n message: 'Saisie automatique modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_cell_renderer_number_validator_message: {\n message: 'Entrez un numéro valide.',\n },\n sky_ag_grid_cell_renderer_currency_validator_message: {\n message: 'Entrez une devise valide.',\n },\n skyux_lookup_tokens_summary: { message: '{0} articles sélectionnés' },\n sky_ag_grid_cell_editor_currency_aria_label: {\n message: 'Devise modifiable {0} pour la ligne {1}',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_asc: {\n message: 'Trier la colonne {0}, actuellement en ordre croissant',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_desc: {\n message: 'Trier la colonne {0}, actuellement en ordre décroissant',\n },\n sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted: {\n message: 'Trier la colonne {0}, actuellement non triée',\n },\n sky_ag_grid_column_group_header_expand_aria_label: {\n message: 'Agrandir le groupe de colonnes {0}',\n },\n sky_ag_grid_column_group_header_collapse_aria_label: {\n message: 'Réduire le groupe de colonnes {0}',\n },\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 SkyAgGridResourcesModule {}\n","import { SkyThemeSettings } from '@skyux/theme';\n\ntype SkyAgGridThemeType =\n `ag-theme-sky-${'data-entry-grid' | 'data-grid'}-${'default' | 'modern-light' | 'modern-dark' | 'modern-light-compact' | 'modern-dark-compact'}`;\n\nexport function agGridThemeIsCompact(\n themeSettings: SkyThemeSettings | undefined,\n compactLayout: boolean,\n): boolean {\n return (\n themeSettings?.theme.name === 'modern' &&\n (compactLayout || themeSettings?.spacing.name === 'compact')\n );\n}\n\nexport function agGridTheme(\n editable: boolean,\n themeSettings: SkyThemeSettings | undefined,\n compactLayout: boolean,\n): SkyAgGridThemeType {\n let theme = `ag-theme-sky-${editable ? 'data-entry-grid' : 'data-grid'}-`;\n if (themeSettings?.theme.name === 'modern') {\n theme += `modern-${themeSettings.mode.name}`;\n if (agGridThemeIsCompact(themeSettings, compactLayout)) {\n theme += `-compact`;\n }\n } else {\n theme += 'default';\n }\n return theme as SkyAgGridThemeType;\n}\n","import { Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAgGridAdapterService {\n #skyAdapterService: SkyCoreAdapterService;\n\n constructor(skyAdapterService: SkyCoreAdapterService) {\n this.#skyAdapterService = skyAdapterService;\n }\n\n public getElementOrParentWithClass(\n element: HTMLElement,\n className: string,\n ): HTMLElement | undefined {\n if (element && element.classList.contains(className)) {\n return element;\n } else if (element.parentElement) {\n return this.getElementOrParentWithClass(element.parentElement, className);\n }\n\n return undefined;\n }\n\n public setFocusedElementById(parentEl: HTMLElement, selector: string): void {\n const element = parentEl.querySelector(`#${selector}`) as HTMLElement;\n\n /* istanbul ignore else */\n if (element) {\n element.focus();\n }\n }\n\n public getFocusedElement(): HTMLElement {\n return document.activeElement as HTMLElement;\n }\n\n public getNextFocusableElement(\n currentEl: HTMLElement,\n parentEl?: HTMLElement,\n moveFocusLeft?: boolean,\n ): HTMLElement | undefined {\n if (parentEl) {\n const focusableChildren =\n this.#skyAdapterService.getFocusableChildren(parentEl);\n const currentElementIndex = focusableChildren.indexOf(currentEl);\n const nextIndex = moveFocusLeft\n ? currentElementIndex - 1\n : currentElementIndex + 1;\n\n if (\n (!moveFocusLeft && focusableChildren.length >= nextIndex) ||\n (moveFocusLeft && nextIndex >= 0)\n ) {\n return focusableChildren[nextIndex];\n }\n }\n\n return undefined;\n }\n\n public focusOnFocusableChildren(element: HTMLElement): void {\n const focusableChildren =\n this.#skyAdapterService.getFocusableChildren(element);\n\n if (focusableChildren.length) {\n focusableChildren[0].focus();\n }\n }\n}\n","/**\n * These column types can be used by setting the AG Grid [column definition `type`](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing) to one of the following values.\n * <br/>\n * Any [SKY UX component](https://developer.blackbaud.com/skyux/components) can be made into a [cell editor](https://www.ag-grid.com/javascript-grid-cell-editor/) or [cell renderer](https://www.ag-grid.com/javascript-grid-cell-rendering-components/) component. If you would like to use a component that does not have a column definition yet, please consider [contributing it](https://developer.blackbaud.com/skyux/contribute/contribution-process) to the SKY UX data entry grid module, or [file an issue](https://developer.blackbaud.com/skyux/contribute/contribution-process/file-issue) in the [`@skyux/ag-grid` repo](https://github.com/blackbaud/skyux-ag-grid).\n */\nexport enum SkyCellType {\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as [SKY UX autocomplete components](https://developer.blackbaud.com/skyux/components/autocomplete). You can set any of the autocomplete component's properties by passing `SkyCellEditorAutocompleteParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Text can be entered and a value selected from the provided list.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells the column will display the currently selected value's name property by default. If the autocomplete needs to show a different property or needs to be formatted in any way, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition.\n */\n Autocomplete = 'skyCellAutocomplete',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as a currency amount.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Formats the display as currency using [SKY UX numeric components](https://developer.blackbaud.com/skyux/components/numeric).\n */\n Currency = 'skyCellCurrency',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Combines SkyCellType.Currency and SkyCellType.Validator, where the value is displayed as a currency and passed to a validator function.\n */\n CurrencyValidator = 'skyCellCurrencyValidator',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as [SKY UX datepicker components](https://developer.blackbaud.com/skyux/components/datepicker). You can set any of the datepicker component's properties by passing `SkyCellEditorDatepickerParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Date values can be entered.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells in the column will display the currently selected date formatted as `MM-DD-YYYY`, or the date format of the locale passed to `getGridOptions()`. If you would like to overwrite this format, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition. See the demo for an example.\n */\n Date = 'skyCellDate',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as [SKY UX lookup components](https://developer.blackbaud.com/skyux-v5/components/lookup). You can set any of the lookup component's properties by passing `SkyCellEditorLookupParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Text can be entered and a value selected from the provided list.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells the column will display, by default, either: the name(s) of the selected value(s) if there are less than 6, or a summary count of the values if there are more than 5. If the lookup needs to show a different property or needs to be formatted in any way, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition.\n */\n Lookup = 'skyCellLookup',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as HTML number `inputs`. Only numbers can be entered.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells in the column will render as the number value.\n */\n Number = 'skyCellNumber',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Combines SkyCellType.Number and SkyCellType.Validator, where the value is displayed as a number and passed to a validator function.\n */\n NumberValidator = 'skyCellNumberValidator',\n /**\n * **Edit and read-only modes**\n * <br/>\n * The header and cells in the column will render right aligned.\n */\n RightAligned = 'skyCellRightAligned',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Cells in the column will render as [SKY UX checkbox components](https://developer.blackbaud.com/skyux/components/checkbox). It allows the user to select multiple rows, and adds a highlight to selected rows. The [Ag Grid `rowNode`](https://www.ag-grid.com/javascript-grid-row-node/) will be updated to reflect the selected state.\n */\n RowSelector = 'skyCellRowSelector',\n /**\n * **Read-only mode**\n * <br/>\n * Cells in the column will render in a `TemplateRef` passed in the column definition's `cellRendererParams.template` property, with `value` and `row` context. See the demo for an example.\n */\n Template = 'skyCellTemplate',\n /**\n * **Edit mode**\n * <br/>\n * Cells in the column will be edited as HTML text `inputs`. Any characters can be entered.\n * <br/><br/>\n * **Read-only mode**\n * <br/>\n * Cells in the column will render as their string value.\n */\n Text = 'skyCellText',\n /**\n * **Edit and read-only modes**\n * <br/>\n * Cells in the column will be passed to a validator function that flags erroneous entries. You can set the validator function and message by passing them to [column definition's `cellRendererParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing) as `skyComponentProperties.validator` and `skyComponentProperties.validatorMessage`. SkyCellType.Validator can be combined with other cell types, such as SkyCellType.Autocomplete or SkyCellType.Date, by using the array syntax for the [column definition's `type` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing).\n */\n Validator = 'skyCellValidator',\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n numberAttribute,\n} from '@angular/core';\nimport { SkyMutationObserverService } from '@skyux/core';\nimport {\n SkyThemeService,\n SkyThemeSettings,\n SkyThemeSettingsChange,\n} from '@skyux/theme';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n CellEditingStartedEvent,\n CellFocusedEvent,\n DetailGridInfo,\n HeaderFocusedEvent,\n ModuleNames,\n ModuleRegistry,\n} from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Observable,\n ReplaySubject,\n Subject,\n combineLatest,\n distinctUntilChanged,\n of,\n take,\n takeUntil,\n} from 'rxjs';\n\nimport { agGridTheme } from '../../styles/ag-grid-theme';\n\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\nimport { SkyCellType } from './types/cell-type';\n\nlet idIndex = 0;\n\n@Component({\n selector: 'sky-ag-grid-wrapper',\n templateUrl: './ag-grid-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridWrapperComponent\n implements AfterContentInit, AfterViewInit, OnDestroy, OnInit\n{\n @ContentChild(AgGridAngular, {\n static: true,\n })\n public agGrid: AgGridAngular | undefined;\n\n @HostBinding('class.sky-ag-grid-layout-normal')\n public isNormalLayout = false;\n\n /**\n * Enable a compact layout for the grid when using modern theme. Compact layout uses\n * a smaller font size and row height to display more data in a smaller space.\n */\n @Input({ transform: booleanAttribute })\n public set compact(value: boolean) {\n this.#isCompact.next(value);\n }\n\n /**\n * The minimum height of the grid in pixels. The default value is `50`.\n */\n public readonly minHeight = input<number, unknown>(50, {\n transform: numberAttribute,\n });\n\n public afterAnchorId: string;\n public beforeAnchorId: string;\n public gridId: string;\n public wrapperClasses$: Observable<string[]>;\n\n public get viewkeeperClasses(): string[] {\n return this.#_viewkeeperClasses;\n }\n\n public set viewkeeperClasses(value: string[]) {\n this.#_viewkeeperClasses = value;\n this.#changeDetector.markForCheck();\n }\n\n get #isInEditMode(): boolean {\n if (this.agGrid && this.agGrid.api) {\n const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;\n if (primaryGridEditing) {\n return true;\n } else if (\n ModuleRegistry.__isRegistered(\n ModuleNames.EnterpriseCoreModule,\n 'sky-ag-grid-wrapper',\n )\n ) {\n // AG Grid 32+ throws an error for calling this API without enterprise modules.\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid: DetailGridInfo) => {\n if (detailGrid?.api && detailGrid.api.getEditingCells().length > 0) {\n innerEditing = true;\n }\n });\n\n return innerEditing;\n }\n }\n return false;\n }\n\n protected readonly minHeightStyle = computed(() => {\n return `--sky-ag-grid-min-height: ${this.minHeight()}px;`;\n });\n\n #_viewkeeperClasses: string[] = [];\n readonly #ngUnsubscribe = new Subject<void>();\n readonly #themeSvc = inject(SkyThemeService, {\n optional: true,\n });\n readonly #wrapperClasses = new BehaviorSubject<string[]>([\n `ag-theme-sky-data-grid-default`,\n ]);\n readonly #adapterService = inject(SkyAgGridAdapterService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #parentChangeDetector = inject(ChangeDetectorRef, {\n optional: true,\n skipSelf: true,\n });\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #document = inject(DOCUMENT);\n readonly #mutationObserverService = inject(SkyMutationObserverService);\n readonly #isCompact = new BehaviorSubject<boolean>(false);\n readonly #hasEditableClass = new ReplaySubject<boolean>(1);\n\n constructor() {\n idIndex++;\n this.afterAnchorId = 'sky-ag-grid-nav-anchor-after-' + idIndex;\n this.beforeAnchorId = 'sky-ag-grid-nav-anchor-before-' + idIndex;\n this.gridId = 'sky-ag-grid-' + idIndex;\n this.wrapperClasses$ = this.#wrapperClasses.asObservable();\n }\n\n public ngAfterContentInit(): void {\n if (this.agGrid) {\n const domLayout = this.agGrid.gridOptions?.domLayout;\n if (domLayout === 'autoHeight') {\n if (this.agGrid.gridOptions?.context?.enableTopScroll) {\n this.viewkeeperClasses.push(\n '.ag-header',\n '.ag-body-horizontal-scroll',\n );\n } else {\n this.viewkeeperClasses.push('.ag-header');\n }\n } else if (domLayout === 'normal') {\n this.isNormalLayout = true;\n this.#parentChangeDetector?.detectChanges();\n }\n this.agGrid.gridReady\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#moveHorizontalScroll();\n });\n this.agGrid.firstDataRendered\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#moveHorizontalScroll();\n });\n this.agGrid.rowDataUpdated\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#moveHorizontalScroll();\n });\n this.agGrid.cellEditingStarted\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((params: CellEditingStartedEvent) => {\n if (params.colDef.type) {\n const types = Array.isArray(params.colDef.type)\n ? params.colDef.type\n : [params.colDef.type];\n const addClasses = types.map(\n (t) => `sky-ag-grid-cell-editing-${t}`,\n );\n this.#wrapperClasses.next([\n ...this.#wrapperClasses.getValue(),\n ...addClasses,\n ]);\n if (\n types.includes(SkyCellType.Template) &&\n params.rowIndex !== null\n ) {\n this.agGrid?.api.setFocusedCell(params.rowIndex, params.column);\n }\n }\n });\n this.agGrid.cellEditingStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#wrapperClasses.next(\n this.#wrapperClasses\n .getValue()\n .filter((c) => !c.startsWith('sky-ag-grid-cell-editing-')),\n );\n });\n this.agGrid.cellFocused\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: CellFocusedEvent) => {\n const context = event.context || {};\n\n context['lastFocusedCell'] = {\n rowIndex: event.rowIndex,\n column:\n typeof event.column === 'object'\n ? event.column?.getColId()\n : `${event.column}`,\n };\n\n event.api?.setGridOption('context', context);\n });\n\n this.agGrid.headerFocused\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: HeaderFocusedEvent) => {\n const context = event.context || {};\n\n context['lastFocusedCell'] = {\n rowIndex: null,\n column: event.column?.getUniqueId\n ? event.column.getUniqueId()\n : `${event.column}`,\n };\n\n event.api?.setGridOption('context', context);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#hasEditableClass.complete();\n this.#isCompact.complete();\n this.#wrapperClasses.complete();\n }\n\n public ngOnInit(): void {\n combineLatest<[boolean, boolean, SkyThemeSettingsChange | undefined]>([\n this.#hasEditableClass.pipe(distinctUntilChanged()),\n this.#isCompact.pipe(distinctUntilChanged()),\n this.#themeSvc?.settingsChange ?? of(undefined),\n ])\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(([hasEditableClass, isCompact, settings]) => {\n this.#updateGridTheme(\n hasEditableClass,\n isCompact,\n settings?.currentSettings,\n );\n });\n }\n\n public ngAfterViewInit(): void {\n const agGridElement: HTMLElement | undefined =\n this.#elementRef.nativeElement.querySelector('ag-grid-angular');\n const callback = (): void => {\n this.#hasEditableClass.next(\n !!agGridElement?.classList.contains('sky-ag-grid-editable'),\n );\n };\n if (agGridElement) {\n const agGridClassObserver =\n this.#mutationObserverService.create(callback);\n agGridClassObserver.observe(agGridElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n this.#ngUnsubscribe.pipe(take(1)).subscribe(() => {\n agGridClassObserver.disconnect();\n });\n }\n callback();\n }\n\n /**\n * Prevent closing a modal when focused in AG Grid.\n */\n public onKeyUpEscape($event: Event): void {\n $event.stopPropagation();\n this.agGrid?.api.stopEditing(true);\n }\n\n public onGridKeydown(event: KeyboardEvent): void {\n if (this.agGrid && !this.#isInEditMode && event.key === 'Tab') {\n const idToFocus = event.shiftKey\n ? this.beforeAnchorId\n : this.afterAnchorId;\n this.#adapterService.setFocusedElementById(\n this.#elementRef.nativeElement,\n idToFocus,\n );\n }\n }\n\n public onAnchorFocus(event: FocusEvent): void {\n const relatedTarget = event.relatedTarget as HTMLElement | undefined;\n const previousWasGrid =\n relatedTarget && this.#elementRef.nativeElement.contains(relatedTarget);\n\n if (this.agGrid && !previousWasGrid) {\n this.#elementRef.nativeElement\n .querySelector('.ag-tab-guard.ag-tab-guard-top')\n ?.focus();\n }\n }\n\n #moveHorizontalScroll(): void {\n const toTop = !!this.agGrid?.gridOptions?.context?.enableTopScroll;\n const root = this.#elementRef.nativeElement.querySelector('.ag-root');\n const header = root?.querySelector('.ag-header');\n const floatingBottom = root?.querySelector('.ag-floating-bottom');\n const scrollbar = root?.querySelector('.ag-body-horizontal-scroll');\n if (root && header && floatingBottom && scrollbar) {\n if (\n scrollbar.style.height !==\n scrollbar.style.getPropertyValue(\n '--sky-ag-body-horizontal-scroll-width',\n )\n ) {\n scrollbar.style.setProperty(\n '--sky-ag-body-horizontal-scroll-width',\n scrollbar.style.height,\n );\n }\n const isTop = root.children[1].matches('.ag-body-horizontal-scroll');\n if (toTop && !isTop) {\n const fragment = this.#document.createDocumentFragment();\n fragment.appendChild(scrollbar);\n header.after(fragment);\n } else if (!toTop && isTop) {\n const fragment = this.#document.createDocumentFragment();\n fragment.appendChild(scrollbar);\n floatingBottom.after(fragment);\n }\n }\n }\n\n #updateGridTheme(\n hasEditableClass: boolean,\n isCompact: boolean,\n themeSettings?: SkyThemeSettings,\n ): void {\n const agTheme = agGridTheme(hasEditableClass, themeSettings, isCompact);\n const previousValue = this.#wrapperClasses.getValue();\n let value = [\n ...previousValue.filter((c) => !c.startsWith('ag-theme-')),\n agTheme,\n ];\n const textSelectionClass = 'sky-ag-grid-text-selection';\n if (this.#getTextSelection(hasEditableClass)) {\n value.push(textSelectionClass);\n } else {\n value = value.filter((c) => c !== textSelectionClass);\n }\n this.#wrapperClasses.next([...new Set(value)]);\n }\n\n #getTextSelection(hasEditableClass: boolean): boolean {\n if (this.agGrid?.gridOptions?.context?.enableCellTextSelection) {\n return !hasEditableClass;\n } else {\n return false;\n }\n }\n}\n","<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n [style]=\"minHeightStyle()\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content />\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n Input,\n OnDestroy,\n contentChildren,\n effect,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyBreakpoint, SkyMediaQueryService } from '@skyux/core';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewColumnWidths,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColumnMovedEvent,\n ColumnResizedEvent,\n ColumnState,\n DragStoppedEvent,\n GridApi,\n IColumnLimit,\n RowSelectedEvent,\n} from 'ag-grid-community';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\n\nfunction toColumnWidthName(breakpoint: SkyBreakpoint): 'xs' | 'sm' {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyAgGridDataManagerAdapter]',\n})\nexport class SkyAgGridDataManagerAdapterDirective\n implements AfterContentInit, OnDestroy\n{\n @Input()\n public viewId: string | undefined;\n\n public readonly agGridList = contentChildren<AgGridAngular>(AgGridAngular, {\n descendants: true,\n });\n\n public skyAgGridWrapperList = contentChildren(SkyAgGridWrapperComponent, {\n descendants: true,\n });\n\n #currentAgGrid: AgGridAngular | undefined;\n #currentDataState: SkyDataManagerState | undefined;\n #currentSkyAgGridWrapper: SkyAgGridWrapperComponent | undefined;\n #dataStateSub: Subscription | undefined;\n #viewConfig: SkyDataViewConfig | undefined;\n #ngUnsubscribe = new Subject<void>();\n #changeDetector: ChangeDetectorRef;\n #dataManagerSvc: SkyDataManagerService;\n\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n constructor(\n changeDetector: ChangeDetectorRef,\n dataManagerSvc: SkyDataManagerService,\n ) {\n this.#changeDetector = changeDetector;\n this.#dataManagerSvc = dataManagerSvc;\n\n effect(() => {\n const list = this.agGridList();\n\n this.#checkForAgGrid(list);\n });\n\n effect(() => {\n const list = this.skyAgGridWrapperList();\n\n this.#checkForSkyAgGridWrapper(list);\n });\n\n effect(() => {\n const breakpoint = this.#breakpoint();\n\n if (breakpoint) {\n this.#applyColumnWidths(breakpoint);\n }\n });\n }\n\n public ngAfterContentInit(): void {\n if (this.viewId) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n this.#viewConfig = this.#dataManagerSvc.getViewById(this.viewId);\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #checkForAgGrid(agGridList: readonly AgGridAngular[]): void {\n const agGrid = agGridList[0];\n const agGridCount = agGridList.length;\n\n if (agGrid) {\n if (agGrid !== this.#currentAgGrid) {\n this.#registerAgGrid(agGrid);\n }\n\n if (agGridCount > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.',\n );\n }\n }\n }\n\n #checkForSkyAgGridWrapper(\n wrappers: readonly SkyAgGridWrapperComponent[],\n ): void {\n const count = wrappers.length;\n const wrapper = wrappers[0];\n\n /* istanbul ignore else */\n if (wrapper !== this.#currentSkyAgGridWrapper) {\n this.#registerSkyAgGridWrapper(wrapper);\n }\n\n if (count > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.',\n );\n }\n }\n\n #unregisterAgGrid(): void {\n this.#currentAgGrid = undefined;\n\n /* istanbul ignore if */\n if (this.#dataStateSub) {\n this.#dataStateSub.unsubscribe();\n }\n }\n\n #unregisterSkyAgGridWrapper(): void {\n this.#currentSkyAgGridWrapper = undefined;\n }\n\n #registerSkyAgGridWrapper(wrapper: SkyAgGridWrapperComponent): void {\n this.#unregisterSkyAgGridWrapper();\n this.#currentSkyAgGridWrapper = wrapper;\n\n setTimeout(() => {\n if (this.#currentSkyAgGridWrapper) {\n this.#currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n\n #registerAgGrid(agGrid: AgGridAngular): void {\n this.#unregisterAgGrid();\n\n this.#currentAgGrid = agGrid;\n\n if (agGrid) {\n agGrid.gridReady.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n if (this.#viewConfig && this.viewId) {\n this.#viewConfig.onSelectAllClick = () => agGrid.api.selectAll();\n this.#viewConfig.onClearAllClick = () => agGrid.api.deselectAll();\n this.#dataManagerSvc.updateViewConfig(this.#viewConfig);\n this.#dataStateSub = this.#dataManagerSvc\n .getDataStateUpdates(this.#viewConfig.id)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState: SkyDataManagerState) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n });\n\n if (agGrid.gridOptions?.context?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n\n this.#applyColumnWidths();\n }\n });\n\n agGrid.columnMoved\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n filter(\n (event: ColumnMovedEvent) =>\n ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source),\n ),\n )\n .subscribe((value: ColumnMovedEvent) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n\n agGrid.columnResized\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n filter(\n (event: ColumnResizedEvent) => event.source === 'uiColumnResized',\n ),\n )\n .subscribe((event: ColumnResizedEvent) => {\n const colId = event.column?.getColId();\n const width = event.column?.getActualWidth();\n const breakpoint = this.#breakpoint();\n\n if (colId && width && breakpoint) {\n this.#updateColumnWidth(colId, width, breakpoint);\n }\n });\n\n agGrid.dragStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: DragStoppedEvent) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n\n agGrid.rowSelected\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: RowSelectedEvent) => {\n if (this.#viewConfig && this.#currentDataState) {\n const row = event.node;\n const selectedIds = this.#currentDataState.selectedIds || [];\n const rowIndex = selectedIds.indexOf(row.data.id);\n\n if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n } else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n\n this.#currentDataState.selectedIds = selectedIds;\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState,\n this.#viewConfig.id,\n );\n\n this.#changeDetector.markForCheck();\n }\n });\n\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates: ColumnState[] = agGrid.api.getColumnState();\n\n const activeSortColumnState =\n gridColumnStates?.find(\n (aGridColumnState) => aGridColumnState.sortIndex === 0,\n ) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n\n if (this.#viewConfig && this.#currentDataState) {\n if (activeSortColumnState) {\n const activeSortColumnDef = agGrid.api.getColumnDef(\n activeSortColumnState.colId,\n );\n this.#currentDataState.activeSortOption = {\n descending: activeSortColumnState.sort === 'desc',\n id: activeSortColumnState.colId,\n propertyName: activeSortColumnDef?.field || '',\n label: activeSortColumnDef?.headerName || '',\n };\n } else {\n this.#currentDataState.activeSortOption = undefined;\n }\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState,\n this.#viewConfig.id,\n );\n }\n });\n }\n }\n\n #updateColumnsInCurrentDataState(api: GridApi): void {\n if (this.#viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n\n const viewState = this.#currentDataState.getViewStateById(\n this.#viewConfig.id,\n );\n\n if (\n viewState &&\n (viewState.displayedColumnIds.length !== columnOrder.length ||\n viewState.displayedColumnIds.some((col, i) => col !== columnOrder[i]))\n ) {\n viewState.displayedColumnIds = columnOrder;\n\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState.addOrUpdateView(\n this.#viewConfig.id,\n viewState,\n ),\n this.#viewConfig.id,\n );\n }\n }\n }\n\n #getColumnOrder(api: GridApi): string[] {\n return api\n .getColumnState()\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n\n #displayColumns(dataState: SkyDataManagerState): void {\n const agGrid = this.#currentAgGrid;\n\n if (agGrid && this.#viewConfig) {\n const viewState = dataState.getViewStateById(this.#viewConfig.id);\n let displayedColumnIds: string[] = [];\n\n /*istanbul ignore else*/\n if (viewState?.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n\n const columnOrder = this.#getColumnOrder(agGrid.api);\n\n if (\n displayedColumnIds.length !== columnOrder.length ||\n displayedColumnIds.some((col, i) => col !== columnOrder[i])\n ) {\n const hideColumns = agGrid.api\n .getColumnState()\n .map((col) => col.colId)\n .filter((colId) => !displayedColumnIds.includes(colId));\n\n agGrid.api.setColumnsVisible(hideColumns, false);\n agGrid.api.setColumnsVisible(displayedColumnIds, true);\n agGrid.api.moveColumns(displayedColumnIds, 0);\n this.#removeColumnWidths(hideColumns);\n }\n }\n }\n\n #applySort(dataState: SkyDataManagerState): void {\n const agGrid = this.#currentAgGrid;\n const activeSort = dataState.activeSortOption;\n\n if (activeSort) {\n agGrid?.api.applyColumnState({\n state: [\n {\n colId: activeSort.id,\n sort: activeSort.descending ? 'desc' : 'asc',\n },\n ],\n defaultState: { sort: null },\n });\n }\n }\n\n #updateColumnWidth(\n colId: string,\n width: number,\n breakpoint: SkyBreakpoint,\n ): void {\n const viewState =\n this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n\n currentWidths[toColumnWidthName(breakpoint)][colId] = width;\n\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState.addOrUpdateView(this.viewId, viewState),\n this.viewId,\n );\n }\n }\n\n #removeColumnWidths(colIds: string[]): void {\n const viewState =\n this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n\n for (const colId of colIds) {\n delete currentWidths['xs'][colId];\n delete currentWidths['sm'][colId];\n }\n\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(\n this.#currentDataState.addOrUpdateView(this.viewId, viewState),\n this.viewId,\n );\n }\n }\n\n #applyColumnWidths(breakpoint?: SkyBreakpoint): void {\n breakpoint ??= this.#breakpoint();\n\n if (breakpoint) {\n const viewState =\n this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(\n viewState.displayedColumnIds,\n viewState.columnWidths,\n toColumnWidthName(breakpoint),\n );\n\n this.#currentAgGrid?.api.sizeColumnsToFit({ columnLimits });\n }\n }\n }\n\n #getGridColumnLimits(\n displayedColumns: string[],\n currentWidths: SkyDataViewColumnWidths,\n breakpointName: keyof SkyDataViewColumnWidths,\n ): IColumnLimit[] {\n const gridColumnLimits: IColumnLimit[] = [];\n\n for (const column of displayedColumns) {\n const columnWidth = currentWidths[breakpointName][column];\n\n if (columnWidth) {\n gridColumnLimits.push({\n key: column,\n minWidth: columnWidth,\n maxWidth: columnWidth,\n });\n }\n }\n return gridColumnLimits;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\n\n/**\n * Component for rendering the inline delete template in the overlay.\n * @internal\n */\n@Component({\n standalone: true,\n selector: 'sky-ag-grid-row-delete',\n template: `\n <ng-template\n #inlineDeleteTemplateRef\n let-row\n let-tableWidth=\"tableWidth()\"\n let-getRowDeleteItem=\"getRowDeleteItem\"\n let-cancelRowDelete=\"cancelRowDelete\"\n let-confirmRowDelete=\"confirmRowDelete\"\n >\n <div\n #inlineDeleteRef\n class=\"sky-ag-grid-row-delete\"\n [id]=\"'row-delete-ref-' + row.id\"\n [ngStyle]=\"{\n height: row.rowHeight + 'px',\n position: 'fixed',\n width: tableWidth + 'px',\n }\"\n >\n <sky-inline-delete\n [pending]=\"getRowDeleteItem(row).pending\"\n (cancelTriggered)=\"cancelRowDelete(row)\"\n (deleteTriggered)=\"confirmRowDelete(row)\"\n />\n </div>\n </ng-template>\n `,\n imports: [CommonModule, SkyInlineDeleteModule],\n})\nexport class SkyAgGridRowDeleteComponent {\n @ViewChildren('inlineDeleteRef')\n public inlineDeleteRefs: QueryList<ElementRef> | undefined;\n\n @ViewChild('inlineDeleteTemplateRef', { read: TemplateRef })\n public inlineDeleteTemplateRef: TemplateRef<unknown> | undefined;\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewContainerRef,\n contentChild,\n effect,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAffixAutoFitContext,\n SkyAffixService,\n SkyAffixer,\n SkyDynamicComponentService,\n SkyOverlayService,\n SkyScrollableHostService,\n} from '@skyux/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { IRowNode } from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Subject,\n animationFrames,\n debounce,\n merge,\n} from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport { SkyAgGridRowDeleteCancelArgs } from './types/ag-grid-row-delete-cancel-args';\nimport { SkyAgGridRowDeleteConfig } from './types/ag-grid-row-delete-config';\nimport { SkyAgGridRowDeleteConfirmArgs } from './types/ag-grid-row-delete-confirm-args';\nimport { SkyAgGridRowDeleteContents } from './types/ag-grid-row-delete-contents';\n\n@Directive({\n selector: '[skyAgGridRowDelete]',\n})\nexport class SkyAgGridRowDeleteDirective\n implements AfterContentInit, AfterViewInit, OnDestroy\n{\n /**\n * The IDs of the data in the rows where the inline delete appears.\n */\n @Input()\n public set rowDeleteIds(value: string[] | undefined) {\n this.#rowDeleteIdsInternal = value;\n\n if (!value) {\n for (const config of this.#rowDeleteConfigs) {\n this.#destroyRowDelete(config.id);\n }\n\n this.#changeDetector.markForCheck();\n\n return;\n }\n\n for (const id of value) {\n const existingConfig = this.#rowDeleteConfigs.find(\n (config) => config.id === id,\n );\n if (existingConfig) {\n existingConfig.pending = false;\n } else if (this.#rowDeleteComponent && this.agGrid) {\n this.#rowDeleteConfigs.push({\n id: id,\n pending: false,\n });\n\n const overlay = this.#overlayService.create({\n enableScroll: true,\n environmentInjector: this.#environmentInjector,\n showBackdrop: false,\n closeOnNavigation: true,\n enableClose: false,\n enablePointerEvents: true,\n });\n\n if (this.#rowDeleteComponent.inlineDeleteTemplateRef) {\n overlay.attachTemplate(\n this.#rowDeleteComponent.inlineDeleteTemplateRef,\n {\n $implicit: this.agGrid()?.api.getRowNode(id),\n tableWidth: () =>\n this.#elementRef.nativeElement.querySelector('.sky-ag-grid')\n .offsetWidth,\n getRowDeleteItem: (row: IRowNode) => this.getRowDeleteItem(row),\n cancelRowDelete: (row: IRowNode) => this.cancelRowDelete(row),\n confirmRowDelete: (row: IRowNode) => this.confirmRowDelete(row),\n },\n );\n }\n\n /**\n * We are manually setting the z-index here because overlays will always be on top of\n * the omnibar. The default manual setting is 2 less than the omnibar's z-index of 1000 and one less than\n * the header row's viewkeeper which is 999. We discussed changing the overlay service to allow for this\n * but decided against that change at this time due to its niche nature.\n */\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n this.#clipPath\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((clipPath) => {\n overlay.componentRef.instance.updateClipPath(clipPath);\n });\n\n setTimeout(() => {\n const inlineDeleteRef = this.#rowDeleteComponent?.inlineDeleteRefs\n ?.toArray()\n .find(\n (elRef) => elRef.nativeElement.id === 'row-delete-ref-' + id,\n ) as ElementRef;\n const affixer = this.#affixService.createAffixer(inlineDeleteRef);\n\n this.#affixToRow(affixer, id);\n\n this.#rowDeleteContents[id] = {\n affixer: affixer,\n overlay: overlay,\n };\n });\n }\n }\n\n for (const config of this.#rowDeleteConfigs) {\n if (value.indexOf(config.id) < 0) {\n this.#destroyRowDelete(config.id);\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public get rowDeleteIds(): string[] | undefined {\n return this.#rowDeleteIdsInternal;\n }\n\n /**\n * Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.\n */\n @Output()\n public rowDeleteCancel = new EventEmitter<SkyAgGridRowDeleteCancelArgs>();\n\n /**\n * Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.\n */\n @Output()\n public rowDeleteConfirm = new EventEmitter<SkyAgGridRowDeleteConfirmArgs>();\n\n /**\n * Emits when the list of ids of the data in the rows where inline deletes are shown changes.\n */\n @Output()\n public rowDeleteIdsChange = new EventEmitter<string[]>();\n\n #rowDeleteConfigs: SkyAgGridRowDeleteConfig[] = [];\n\n public agGrid = contentChild(AgGridAngular);\n\n #ngUnsubscribe = new Subject<void>();\n #rowDeleteComponent: SkyAgGridRowDeleteComponent | undefined;\n #rowDeleteContents: Record<string, SkyAgGridRowDeleteContents> = {};\n\n #rowDeleteIdsInternal: string[] | undefined;\n #clipPath = new BehaviorSubject<string | undefined>(undefined);\n #zIndex = new BehaviorSubject(998);\n #hasStackingContext: boolean;\n\n readonly #affixService = inject(SkyAffixService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #overlayService = inject(SkyOverlayService);\n readonly #scrollableHostService = inject(SkyScrollableHostService);\n readonly #stackingContext = inject(SKY_STACKING_CONTEXT, { optional: true });\n readonly #viewContainerRef = inject(ViewContainerRef);\n readonly #viewInit = new Subject<void>();\n\n constructor() {\n this.#hasStackingContext = !!this.#stackingContext;\n\n if (this.#stackingContext) {\n this.#stackingContext.zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n this.#zIndex.next(zIndex);\n });\n }\n effect(() => {\n const agGrid = this.agGrid();\n if (agGrid) {\n merge(\n agGrid.filterChanged,\n agGrid.firstDataRendered,\n agGrid.gridReady,\n agGrid.rowDataUpdated,\n agGrid.sortChanged,\n this.#viewInit,\n )\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n debounce(() => animationFrames()),\n )\n .subscribe(() => {\n this.#updateRowDeleteStates();\n });\n }\n });\n }\n\n public ngAfterContentInit(): void {\n this.#rowDeleteComponent = this.#dynamicComponentSvc.createComponent(\n SkyAgGridRowDeleteComponent,\n {\n environmentInjector: this.#environmentInjector,\n viewContainerRef: this.#viewContainerRef,\n },\n ).instance;\n }\n\n public ngAfterViewInit(): void {\n if (this.#hasStackingContext) {\n this.#scrollableHostService\n .watchScrollableHostClipPathChanges(this.#elementRef)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((clipPath) => {\n this.#clipPath.next(clipPath);\n });\n }\n this.#viewInit.next();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n Object.keys(this.#rowDeleteContents).forEach((id) => {\n this.#destroyRowDelete(id);\n });\n }\n\n public cancelRowDelete(row: IRowNode): void {\n if (row.id) {\n this.#rowDeleteConfigs = this.#rowDeleteConfigs.filter(\n (config) => config.id !== row.id,\n );\n this.rowDeleteCancel.emit({ id: row.id });\n\n this.#destroyRowDelete(row.id);\n }\n }\n\n public confirmRowDelete(row: IRowNode): void {\n if (row.id) {\n const rowConfig = this.#rowDeleteConfigs.find(\n (config) => config.id === row.id,\n );\n\n if (rowConfig) {\n rowConfig.pending = true;\n this.rowDeleteConfirm.emit({ id: row.id });\n }\n }\n }\n\n public getRowDeleteItem(row: IRowNode): SkyAgGridRowDeleteConfig | undefined {\n return this.#rowDeleteConfigs.find((rowDelete) => rowDelete.id === row.id);\n }\n\n #affixToRow(affixer: SkyAffixer, id: string): void {\n const rowElement = this.#elementRef.nativeElement.querySelector(`\n [row-id=\"${id}\"] div[aria-colindex],\n .ag-row.sky-ag-grid-row-${id} div[aria-colindex]\n `);\n\n affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false,\n });\n }\n\n #destroyRowDelete(id: string): void {\n const rowDeleteContents = this.#rowDeleteContents[id];\n rowDeleteContents?.affixer.destroy();\n this.#overlayService.close(rowDeleteContents?.overlay);\n delete this.#rowDeleteContents[id];\n this.#rowDeleteConfigs = this.#rowDeleteConfigs.filter(\n (config) => config.id !== id,\n );\n this.#rowDeleteIdsInternal = this.rowDeleteIds?.filter(\n (arrayId) => arrayId !== id,\n );\n this.rowDeleteIdsChange.emit(this.#rowDeleteIdsInternal);\n }\n\n #updateRowDeleteStates(): void {\n this.#rowDeleteConfigs.forEach((config: SkyAgGridRowDeleteConfig) => {\n if (!this.agGrid()?.api.getRowNode(config.id)) {\n this.#destroyRowDelete(config.id);\n } else {\n // We must reaffix things when the data changes because the rows rerender and the previous element that the delete was affixed\n // to is destroyed.\n this.#affixToRow(this.#rowDeleteContents[config.id].affixer, config.id);\n }\n });\n this.#changeDetector.markForCheck();\n }\n}\n","/** The initial action that a cell editor should take when initialized. */\nexport enum SkyAgGridCellEditorInitialAction {\n /** The cell should be cleared. */\n Delete = 0,\n /** The cell value should be highlighted. */\n Highlighted = 1,\n /** The cell value should be replaced with the initializing value. */\n Replace = 2,\n /** The cell should not be modified and the cursor is placed at the end of the value. */\n Untouched = 3,\n}\n","import { ICellEditorParams, KeyCode } from 'ag-grid-community';\n\nimport { SkyAgGridCellEditorInitialAction } from './cell-editor-initial-action';\n\nexport class SkyAgGridCellEditorUtils {\n /**\n * Gets the initial action that a cell editor should take when initialized.\n * @param params The editor's initializing parameters.\n */\n public static getEditorInitialAction(\n params: ICellEditorParams | undefined,\n ): SkyAgGridCellEditorInitialAction {\n if (params?.cellStartedEdit) {\n if (\n params.eventKey === KeyCode.BACKSPACE ||\n params.eventKey === KeyCode.DELETE\n ) {\n return SkyAgGridCellEditorInitialAction.Delete;\n } else if (params.eventKey?.length === 1) {\n return SkyAgGridCellEditorInitialAction.Replace;\n } else {\n if (params.eventKey !== KeyCode.F2) {\n return SkyAgGridCellEditorInitialAction.Highlighted;\n } else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n } else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n\n public static subtractOrZero(\n minuend: number | null | undefined,\n subtrahend: number,\n ): number {\n // Swapping minuend with subtrahend when minuend is null or undefined results in\n // the subtrahend being subtracted from itself, which will always be 0.\n return (minuend ?? subtrahend) - subtrahend;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\n\nimport { SkyAgGridAutocompleteProperties } from '../../types/autocomplete-properties';\nimport { SkyCellEditorAutocompleteParams } from '../../types/cell-editor-autocomplete-params';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-autocomplete',\n templateUrl: './cell-editor-autocomplete.component.html',\n styleUrls: ['./cell-editor-autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorAutocompleteComponent\n implements ICellEditorAngularComp\n{\n public columnHeader: string | undefined;\n public editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl(),\n });\n public rowNumber: number | undefined;\n public skyComponentProperties: SkyAgGridAutocompleteProperties = {};\n\n #autocompleteOpen = false;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n #params: SkyCellEditorAutocompleteParams | undefined;\n #elementRef = inject(ElementRef) as ElementRef<HTMLElement>;\n\n @ViewChild('skyCellEditorAutocomplete', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onBlur(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n } else {\n this.#stopEditingOnBlur();\n }\n }\n\n public agInit(params: SkyCellEditorAutocompleteParams): void {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('selection');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.rowNumber = (this.#params.node?.rowIndex ?? 0) + 1;\n this.skyComponentProperties = this.#params.skyComponentProperties || {};\n }\n\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n const charPress = this.#params?.eventKey as string;\n\n this.input.nativeElement.select();\n this.input.nativeElement.setRangeText(charPress);\n // Ensure the cursor is at the end of the text.\n this.input.nativeElement.setSelectionRange(\n charPress.length,\n charPress.length,\n );\n this.input.nativeElement.dispatchEvent(new Event('input'));\n }\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n\n public getValue(): any | undefined {\n const val = this.editorForm.get('selection')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n\n public onAutocompleteOpenChange($event: boolean): void {\n this.#autocompleteOpen = $event;\n this.#stopEditingOnBlur();\n }\n\n #stopEditingOnBlur(): void {\n if (\n !this.#autocompleteOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')\n ) {\n this.#params?.api.stopEditing();\n }\n }\n}\n","<div class=\"sky-ag-grid-cell-editor-autocomplete\" [formGroup]=\"editorForm\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n (openChange)=\"onAutocompleteOpenChange($event)\"\n >\n <input\n #skyCellEditorAutocomplete\n formControlName=\"selection\"\n skyAutocomplete\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyAutocompleteModule } from '@skyux/lookup';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellEditorAutocompleteComponent } from '../cell-editor-autocomplete/cell-editor-autocomplete.component';\n\n@NgModule({\n imports: [\n ReactiveFormsModule,\n SkyAgGridResourcesModule,\n SkyAutocompleteModule,\n ],\n declarations: [SkyAgGridCellEditorAutocompleteComponent],\n exports: [SkyAgGridCellEditorAutocompleteComponent],\n})\nexport class SkyAgGridCellEditorAutocompleteModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellEditorCurrencyParams } from '../../types/cell-editor-currency-params';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport { SkyAgGridCurrencyProperties } from '../../types/currency-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-currency',\n templateUrl: './cell-editor-currency.component.html',\n styleUrls: ['./cell-editor-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorCurrencyComponent\n implements ICellEditorAngularComp\n{\n public skyComponentProperties: SkyAgGridCurrencyProperties & {\n isCancellable: boolean;\n } = {\n isCancellable: false,\n };\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public currency = new UntypedFormControl();\n public editorForm = new UntypedFormGroup({\n currency: this.currency,\n });\n public params: SkyCellEditorCurrencyParams | undefined;\n public rowHeightWithoutBorders: number | undefined;\n public rowNumber: number | undefined;\n\n @ViewChild('skyCellEditorCurrency', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (event.relatedTarget && event.relatedTarget === this.params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n readonly #changeDetector = inject(ChangeDetectorRef);\n #initialized = false;\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorCurrencyParams): void {\n this.params = params;\n this.columnHeader = this.params.api.getDisplayNameForColumn(\n this.params.column,\n 'header',\n );\n this.rowNumber = this.params.rowIndex + 1;\n this.columnWidth = this.params.column.getActualWidth();\n this.rowHeightWithoutBorders = SkyAgGridCellEditorUtils.subtractOrZero(\n this.params.node?.rowHeight,\n 4,\n );\n this.skyComponentProperties = {\n ...(this.params.skyComponentProperties || {\n decimalPlaces: 2,\n currencySymbol: '$',\n }),\n isCancellable: false,\n };\n }\n\n public refresh(params: SkyCellEditorCurrencyParams): void {\n this.agInit(params);\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n this.input?.nativeElement.focus();\n\n // This setup is in `afterGuiAttached` due to the lifecycle of autonumeric which will highlight the initial value if it is in place when it renders.\n // Since we don't want that, we set the initial value after autonumeric initializes.\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(\n this.params,\n );\n const control = this.currency;\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(\n parseFloat(String(this.params?.eventKey)) || undefined,\n );\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(parseFloat(String(this.params?.value)));\n break;\n }\n }\n\n this.#changeDetector.markForCheck();\n\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted &&\n (this.params?.value ?? '') !== ''\n ) {\n this.input?.nativeElement.select();\n }\n\n // When the cell is initialized with the Enter key, we need to suppress the first `onPressEnter`.\n this.#initialized = this.params?.eventKey !== 'Enter';\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): number | undefined {\n return this.currency.value ?? undefined;\n }\n\n /**\n * The autoNumeric library's event handler suppresses the escape key event. This additional handler re-enables AG Grid's default functionality.\n */\n public onPressEscape(): void {\n if (this.params) {\n this.params.api.stopEditing(true);\n this.params.api.setFocusedCell(this.params.rowIndex, this.params.column);\n }\n }\n\n public onPressEnter(): void {\n if (this.params && this.#initialized) {\n this.params.stopEditing();\n }\n this.#initialized = true;\n }\n}\n","<ng-container [formGroup]=\"editorForm\">\n <input\n #skyCellEditorCurrency\n type=\"text\"\n [formControl]=\"currency\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_currency_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [skyAutonumeric]=\"skyComponentProperties\"\n [skyAutonumericFormChangesUnformatted]=\"params?.eventKey?.length === 1\"\n (keyup.enter)=\"onPressEnter()\"\n (keyup.escape)=\"onPressEscape()\"\n />\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyAutonumericModule } from '@skyux/autonumeric';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridCellEditorCurrencyComponent } from './cell-editor-currency.component';\n\n@NgModule({\n imports: [\n SkyAgGridResourcesModule,\n ReactiveFormsModule,\n SkyAutonumericModule,\n ],\n declarations: [SkyAgGridCellEditorCurrencyComponent],\n exports: [SkyAgGridCellEditorCurrencyComponent],\n})\nexport class SkyAgGridCellEditorCurrencyModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { PopupComponent } from 'ag-grid-community';\nimport { fromEvent } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { SkyCellEditorDatepickerParams } from '../../types/cell-editor-datepicker-params';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport { SkyAgGridDatepickerProperties } from '../../types/datepicker-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-datepicker',\n templateUrl: './cell-editor-datepicker.component.html',\n styleUrls: ['./cell-editor-datepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyAgGridCellEditorDatepickerComponent\n extends PopupComponent\n implements ICellEditorAngularComp\n{\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public columnWidthWithoutBorders: number | undefined;\n public editorForm = new UntypedFormGroup({\n date: new UntypedFormControl(),\n });\n public rowHeightWithoutBorders: number | null | undefined;\n public rowNumber: number | undefined;\n public skyComponentProperties: SkyAgGridDatepickerProperties = {};\n\n @ViewChild('skyCellEditorDatepickerInput', { read: ElementRef })\n public datepickerInput: ElementRef | undefined;\n\n protected resolvedDateFormat = '';\n\n #calendarOpen = false;\n #params: SkyCellEditorDatepickerParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n\n #elementRef = inject(ElementRef) as ElementRef<HTMLElement>;\n #changeDetector = inject(ChangeDetectorRef);\n #themeSvc = inject(SkyThemeService, { optional: true }) || undefined;\n\n constructor() {\n super();\n }\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the datepicker input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n } else if (event.target === this.datepickerInput?.nativeElement) {\n this.#stopEditingOnBlur();\n }\n }\n\n public onCalendarOpenChange(isOpen: boolean): void {\n this.#calendarOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n\n public onDateFormatChange(dateFormat: string): void {\n this.resolvedDateFormat = dateFormat;\n this.#changeDetector.markForCheck();\n }\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorDatepickerParams): void {\n this.#params = params;\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('date');\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(params.eventKey);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n }\n }\n this.#changeDetector.markForCheck();\n\n this.skyComponentProperties = this.#params.skyComponentProperties || {};\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.columnWidth = this.#params.column.getActualWidth();\n this.columnWidthWithoutBorders = this.columnWidth - 2;\n this.rowHeightWithoutBorders = (this.#params.node.rowHeight as number) - 3;\n this.rowNumber = this.#params.rowIndex + 1;\n this.#themeSvc?.settingsChange.subscribe((themeSettings) => {\n if (themeSettings.currentSettings.theme.name === 'modern') {\n this.columnWidthWithoutBorders = this.columnWidth;\n this.rowHeightWithoutBorders = this.#params?.node?.rowHeight;\n } else {\n this.columnWidthWithoutBorders =\n this.columnWidth === undefined ? undefined : this.columnWidth - 2;\n this.rowHeightWithoutBorders = SkyAgGridCellEditorUtils.subtractOrZero(\n this.#params?.node.rowHeight,\n 3,\n );\n }\n });\n }\n\n public getPopupPosition(): 'over' | 'under' | undefined {\n return 'over';\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const datepickerInputEl = this.datepickerInput?.nativeElement as\n | HTMLInputElement\n | undefined;\n\n if (datepickerInputEl) {\n datepickerInputEl.focus();\n\n // programmatically set the value of in the input; however, do not do this via the form control so that the value is not formatted when editing starts.\n // Watch for the first blur and fire a 'change' event as programmatic changes won't queue a change event, but we need to do this so that formatting happens if the user tabs to the calendar button.\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n fromEvent(datepickerInputEl, 'blur')\n .pipe(first())\n .subscribe(() => {\n datepickerInputEl.dispatchEvent(new Event('change'));\n });\n datepickerInputEl.select();\n\n const charPress = this.#params?.eventKey as string;\n\n if (charPress) {\n datepickerInputEl.setRangeText(charPress);\n // Ensure the cursor is at the end of the text.\n datepickerInputEl.setSelectionRange(\n charPress.length,\n charPress.length,\n );\n }\n }\n\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n datepickerInputEl.select();\n }\n }\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): Date {\n this.datepickerInput?.nativeElement.blur();\n return this.editorForm.get('date')?.value;\n }\n\n #stopEditingOnBlur(): void {\n if (\n !this.#calendarOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')\n ) {\n this.#params?.api.stopEditing();\n }\n }\n}\n","<div\n class=\"sky-ag-grid-cell-editor-datepicker\"\n [formGroup]=\"editorForm\"\n [style.width.px]=\"columnWidthWithoutBorders\"\n>\n <sky-datepicker\n data-sky-id=\"cell-datepicker\"\n pickerClass=\"ag-custom-component-popup\"\n (dateFormatChange)=\"onDateFormatChange($event)\"\n (openChange)=\"onCalendarOpenChange($event)\"\n >\n <input\n #skyCellEditorDatepickerInput\n formControlName=\"date\"\n skyDatepickerInput\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_datepicker_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [attr.title]=\"\n resolvedDateFormat\n ? ('skyux_datepicker_format_hint_text'\n | skyLibResources: resolvedDateFormat)\n : null\n \"\n [minDate]=\"skyComponentProperties.minDate\"\n [maxDate]=\"skyComponentProperties.maxDate\"\n [dateFormat]=\"skyComponentProperties.dateFormat\"\n [startingDay]=\"skyComponentProperties.startingDay\"\n [skyDatepickerNoValidate]=\"skyComponentProperties.skyDatepickerNoValidate\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n />\n </sky-datepicker>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellEditorDatepickerComponent } from '../cell-editor-datepicker/cell-editor-datepicker.component';\n\n@NgModule({\n imports: [SkyAgGridResourcesModule, SkyDatepickerModule, ReactiveFormsModule],\n declarations: [SkyAgGridCellEditorDatepickerComponent],\n exports: [SkyAgGridCellEditorDatepickerComponent],\n})\nexport class SkyAgGridCellEditorDatepickerModule {}\n","import { SkyAgGridLookupProperties } from './types/lookup-properties';\n\n/**\n * @internal\n */\nexport function applySkyLookupPropertiesDefaults(\n skyLookupProperties: SkyAgGridLookupProperties | undefined,\n): SkyAgGridLookupProperties {\n /* istanbul ignore if */\n if (!skyLookupProperties) {\n return {};\n }\n\n return {\n addClick: skyLookupProperties.addClick,\n ariaLabel: skyLookupProperties.ariaLabel || '',\n autocompleteAttribute: skyLookupProperties.autocompleteAttribute || 'off',\n data: skyLookupProperties.data || [],\n debounceTime: skyLookupProperties.debounceTime || 0,\n descriptorProperty: skyLookupProperties.descriptorProperty || 'name',\n disabled: skyLookupProperties.disabled || false,\n enableShowMore: skyLookupProperties.enableShowMore || false,\n idProperty: skyLookupProperties.idProperty,\n placeholderText: skyLookupProperties.placeholderText || '',\n propertiesToSearch: skyLookupProperties.propertiesToSearch,\n search: skyLookupProperties.search,\n searchAsync: skyLookupProperties.searchAsync,\n searchFilters: skyLookupProperties.searchFilters || [],\n searchResultsLimit: skyLookupProperties.searchResultsLimit,\n searchResultTemplate: skyLookupProperties.searchResultTemplate,\n searchTextMinimumCharacters:\n skyLookupProperties.searchTextMinimumCharacters || 1,\n selectMode: skyLookupProperties.selectMode,\n showAddButton: skyLookupProperties.showAddButton || false,\n showMoreConfig: skyLookupProperties.showMoreConfig || {},\n wrapperClass: 'ag-custom-component-popup',\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ColumnResizedEvent } from 'ag-grid-community';\n\nimport { applySkyLookupPropertiesDefaults } from '../../apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyCellEditorLookupParams } from '../../types/cell-editor-lookup-params';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport { SkyAgGridLookupProperties } from '../../types/lookup-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-lookup',\n templateUrl: './cell-editor-lookup.component.html',\n styleUrls: ['./cell-editor-lookup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorLookupComponent\n implements ICellEditorAngularComp\n{\n @HostBinding('style.width.px')\n public width: number | undefined;\n\n public skyComponentProperties?: SkyAgGridLookupProperties;\n public isAlive = false;\n public editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl({\n value: [],\n disabled: false,\n }),\n });\n public useAsyncSearch = false;\n\n protected labelText: string | undefined = undefined;\n\n #lookupOpen = false;\n #params: SkyCellEditorLookupParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n #changeDetector = inject(ChangeDetectorRef);\n #elementRef = inject(ElementRef<HTMLElement>);\n\n @HostListener('focusout', ['$event'])\n public onBlur(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n } else {\n this.#stopEditingOnBlur();\n }\n }\n\n public agInit(params: SkyCellEditorLookupParams): void {\n this.#params = params;\n if (!Array.isArray(this.#params.value)) {\n throw new Error(`Lookup value must be an array`);\n }\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('selection');\n this.labelText = params.skyComponentProperties?.ariaLabelledBy\n ? undefined\n : params.skyComponentProperties?.ariaLabel ||\n params.colDef.headerName ||\n params.colDef.headerTooltip ||\n params.colDef.field ||\n params.colDef.colId;\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue([]);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n\n if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n } else {\n control.enable();\n }\n }\n\n this.skyComponentProperties = this.#updateComponentProperties(this.#params);\n this.useAsyncSearch =\n typeof this.skyComponentProperties.searchAsync === 'function';\n this.isAlive = true;\n this.width = this.#params.column.getActualWidth();\n this.#params.api.addEventListener(\n 'columnResized',\n (event: ColumnResizedEvent) => {\n if (event.column?.getColId() === this.#params?.column.getColId()) {\n this.width = event.column?.getActualWidth();\n this.#changeDetector.markForCheck();\n }\n },\n );\n this.#changeDetector.markForCheck();\n }\n\n public isCancelAfterEnd(): boolean {\n // Shut down components to commit values before final value syncs to grid.\n this.isAlive = false;\n return false;\n }\n\n public getGui(): HTMLElement {\n return this.#elementRef.nativeElement;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getValue(): any[] {\n return this.editorForm.get('selection')?.value;\n }\n\n public isPopup(): boolean {\n return true;\n }\n\n public getPopupPosition(): 'over' | 'under' | undefined {\n return 'over';\n }\n\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const lookupInput: HTMLTextAreaElement =\n this.#elementRef.nativeElement.querySelector('.sky-lookup-input');\n lookupInput.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n lookupInput.select();\n lookupInput.setRangeText(`${this.#params?.eventKey}`);\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(\n lookupInput.value.length,\n lookupInput.value.length,\n );\n lookupInput.dispatchEvent(new Event('input'));\n }\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n lookupInput.select();\n }\n });\n }\n\n public onLookupOpenChange(isOpen: boolean): void {\n this.#lookupOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n\n #updateComponentProperties(\n params: SkyCellEditorLookupParams,\n ): SkyAgGridLookupProperties {\n const skyLookupProperties = params.skyComponentProperties;\n return applySkyLookupPropertiesDefaults(skyLookupProperties);\n }\n\n #stopEditingOnBlur(): void {\n if (\n !this.#lookupOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')\n ) {\n this.#params?.api.stopEditing();\n }\n }\n}\n","@if (isAlive && useAsyncSearch) {\n <sky-input-box\n [disabled]=\"skyComponentProperties?.disabled\"\n [formGroup]=\"editorForm\"\n >\n <sky-lookup\n formControlName=\"selection\"\n [ariaLabelledBy]=\"\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\n \"\n [autocompleteAttribute]=\"skyComponentProperties?.autocompleteAttribute\"\n [data]=\"skyComponentProperties?.data\"\n [debounceTime]=\"skyComponentProperties?.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties?.descriptorProperty\"\n [enableShowMore]=\"skyComponentProperties?.enableShowMore\"\n [idProperty]=\"skyComponentProperties?.idProperty\"\n [placeholderText]=\"skyComponentProperties?.placeholderText\"\n [propertiesToSearch]=\"skyComponentProperties?.propertiesToSearch\"\n [search]=\"skyComponentProperties?.search\"\n [searchFilters]=\"skyComponentProperties?.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties?.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties?.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties?.searchTextMinimumCharacters\n \"\n [selectMode]=\"skyComponentProperties?.selectMode\"\n [showAddButton]=\"skyComponentProperties?.showAddButton\"\n [showMoreConfig]=\"skyComponentProperties?.showMoreConfig\"\n [wrapperClass]=\"skyComponentProperties?.wrapperClass\"\n (searchAsync)=\"skyComponentProperties?.searchAsync?.($event)\"\n (addClick)=\"skyComponentProperties?.addClick?.($event)\"\n (openChange)=\"onLookupOpenChange($event)\"\n />\n </sky-input-box>\n}\n@if (isAlive && !useAsyncSearch) {\n <sky-input-box\n [disabled]=\"skyComponentProperties?.disabled\"\n [formGroup]=\"editorForm\"\n >\n <sky-lookup\n formControlName=\"selection\"\n [ariaLabelledBy]=\"\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\n \"\n [autocompleteAttribute]=\"skyComponentProperties?.autocompleteAttribute\"\n [data]=\"skyComponentProperties?.data\"\n [debounceTime]=\"skyComponentProperties?.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties?.descriptorProperty\"\n [enableShowMore]=\"skyComponentProperties?.enableShowMore\"\n [idProperty]=\"skyComponentProperties?.idProperty\"\n [placeholderText]=\"skyComponentProperties?.placeholderText\"\n [propertiesToSearch]=\"skyComponentProperties?.propertiesToSearch\"\n [search]=\"skyComponentProperties?.search\"\n [searchFilters]=\"skyComponentProperties?.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties?.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties?.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties?.searchTextMinimumCharacters\n \"\n [selectMode]=\"skyComponentProperties?.selectMode\"\n [showAddButton]=\"skyComponentProperties?.showAddButton\"\n [showMoreConfig]=\"skyComponentProperties?.showMoreConfig\"\n [wrapperClass]=\"skyComponentProperties?.wrapperClass\"\n (addClick)=\"skyComponentProperties?.addClick?.($event)\"\n (openChange)=\"onLookupOpenChange($event)\"\n />\n </sky-input-box>\n}\n<div #screenReaderLabel=\"skyId\" class=\"sky-screen-reader-only\" skyId>\n {{ labelText }}\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyLookupModule } from '@skyux/lookup';\n\nimport { SkyAgGridCellEditorLookupComponent } from './cell-editor-lookup.component';\n\n@NgModule({\n declarations: [SkyAgGridCellEditorLookupComponent],\n exports: [SkyAgGridCellEditorLookupComponent],\n imports: [\n ReactiveFormsModule,\n SkyIdModule,\n SkyInputBoxModule,\n SkyLookupModule,\n ],\n})\nexport class SkyAgGridCellEditorLookupModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ICellEditorParams } from 'ag-grid-community';\n\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyCellEditorNumberParams } from '../../types/cell-editor-number-params';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-number',\n templateUrl: './cell-editor-number.component.html',\n styleUrls: ['./cell-editor-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorNumberComponent\n implements ICellEditorAngularComp\n{\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public editorForm = new UntypedFormGroup({\n number: new UntypedFormControl(),\n });\n public rowHeightWithoutBorders: number | undefined;\n public rowNumber: number | undefined;\n public max: number | undefined;\n public min: number | undefined;\n\n @ViewChild('skyCellEditorNumber', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n\n #params: ICellEditorParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorNumberParams): void {\n this.#params = params;\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('number');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(\n parseFloat(this.#params?.eventKey as string) || undefined,\n );\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n\n this.max = params.skyComponentProperties?.max;\n this.min = params.skyComponentProperties?.min;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = (this.#params.node.rowHeight as number) - 4;\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): number | undefined {\n const val = this.editorForm.get('number')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n}\n","<ng-container [formGroup]=\"editorForm\">\n <input\n #skyCellEditorNumber\n formControlName=\"number\"\n type=\"number\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_number_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [max]=\"max ?? null\"\n [min]=\"min ?? null\"\n />\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellEditorNumberComponent } from '../cell-editor-number/cell-editor-number.component';\n\n@NgModule({\n imports: [SkyAgGridResourcesModule, ReactiveFormsModule],\n declarations: [SkyAgGridCellEditorNumberComponent],\n exports: [SkyAgGridCellEditorNumberComponent],\n})\nexport class SkyAgGridCellEditorNumberModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ICellEditorParams } from 'ag-grid-community';\n\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyCellEditorTextParams } from '../../types/cell-editor-text-params';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-editor-text',\n templateUrl: './cell-editor-text.component.html',\n styleUrls: ['./cell-editor-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellEditorTextComponent\n implements ICellEditorAngularComp\n{\n public textInputLabel: string | undefined;\n public columnHeader: string | undefined;\n public columnWidth: number | undefined;\n public editorForm = new UntypedFormGroup({\n text: new UntypedFormControl(),\n });\n public rowHeightWithoutBorders: number | undefined;\n public rowNumber: number | undefined;\n public maxlength: number | undefined;\n\n @ViewChild('skyCellEditorText', { read: ElementRef })\n public input: ElementRef | undefined;\n\n @HostListener('focusout', ['$event'])\n public onFocusOut(event: FocusEvent): void {\n if (\n event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell\n ) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n\n #params: ICellEditorParams | undefined;\n #triggerType: SkyAgGridCellEditorInitialAction | undefined;\n\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellEditorTextParams): void {\n this.#params = params;\n\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('text');\n\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(params.eventKey);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n\n this.maxlength = params.skyComponentProperties?.maxlength;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(\n this.#params.column,\n 'header',\n );\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = (this.#params.node.rowHeight as number) - 4;\n }\n\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n public afterGuiAttached(): void {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted\n ) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n public getValue(): string | undefined {\n return this.editorForm.get('text')?.value || undefined;\n }\n}\n","<ng-container [formGroup]=\"editorForm\">\n <input\n #skyCellEditorText\n formControlName=\"text\"\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_text_aria_label'\n | skyLibResources: columnHeader : rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [maxlength]=\"maxlength ?? null\"\n />\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridCellEditorTextComponent } from './cell-editor-text.component';\n\n@NgModule({\n imports: [SkyAgGridResourcesModule, ReactiveFormsModule],\n declarations: [SkyAgGridCellEditorTextComponent],\n exports: [SkyAgGridCellEditorTextComponent],\n})\nexport class SkyAgGridCellEditorTextModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n signal,\n} from '@angular/core';\nimport { SkyPopoverMessage, SkyPopoverMessageType } from '@skyux/popovers';\n\nimport { AgColumn, CellFocusedEvent } from 'ag-grid-community';\nimport { Subject } from 'rxjs';\n\nimport { SkyCellRendererValidatorParams } from '../types/cell-renderer-validator-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-validator-tooltip',\n styleUrls: ['ag-grid-cell-validator-tooltip.component.scss'],\n templateUrl: 'ag-grid-cell-validator-tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellValidatorTooltipComponent {\n @Input()\n public set params(value: SkyCellRendererValidatorParams | undefined) {\n this.cellRendererParams = value;\n\n if (value?.api && !this.#listenersAdded) {\n this.#listenersAdded = true;\n\n value.api.addEventListener(\n 'cellFocused',\n (eventParams: CellFocusedEvent) => {\n // We want to close any popovers that are opened when other cells are focused, but open a popover if the current cell is focused.\n if (\n (eventParams.column as AgColumn).getColId() ===\n value.column?.getColId() &&\n eventParams.rowIndex === value.node?.rowIndex\n ) {\n this.showPopover();\n } else {\n this.hidePopover();\n }\n },\n );\n\n value.api.addEventListener('cellEditingStarted', () => {\n this.hidePopover();\n });\n }\n\n if (typeof value?.skyComponentProperties?.validatorMessage === 'function') {\n this.validatorMessage = value.skyComponentProperties.validatorMessage(\n value.value,\n value.data,\n value?.node?.rowIndex,\n );\n } else {\n this.validatorMessage = value?.skyComponentProperties?.validatorMessage;\n }\n\n this.showValidatorMessage.set(this.#showValidatorMessage());\n }\n\n public popoverMessageStream = new Subject<SkyPopoverMessage>();\n public validatorMessage: string | undefined;\n public cellRendererParams: SkyCellRendererValidatorParams | undefined;\n\n protected readonly showValidatorMessage = signal(false);\n\n #listenersAdded = false;\n\n public hidePopover(): void {\n this.popoverMessageStream.next({ type: SkyPopoverMessageType.Close });\n }\n\n public showPopover(): void {\n if (this.#shouldShowPopover()) {\n this.popoverMessageStream.next({ type: SkyPopoverMessageType.Open });\n }\n }\n\n #showValidatorMessage(): boolean {\n if (!this.validatorMessage) {\n return false;\n }\n if (\n typeof this.cellRendererParams?.skyComponentProperties?.validator ===\n 'function'\n ) {\n return !this.cellRendererParams.skyComponentProperties.validator(\n this.cellRendererParams.value,\n this.cellRendererParams.data,\n this.cellRendererParams.node?.rowIndex,\n );\n } else {\n return true;\n }\n }\n\n #shouldShowPopover(): boolean {\n if (!this.showValidatorMessage()) {\n return false;\n }\n const editingCells = this.cellRendererParams?.api.getEditingCells() ?? [];\n return editingCells.length === 0;\n }\n}\n","<ng-template #displayValue>\n <ng-content />\n</ng-template>\n\n@if (showValidatorMessage()) {\n <div\n skyPopoverTrigger=\"mouseenter\"\n class=\"sky-validator-cell\"\n [skyPopover]=\"validatorPopover\"\n [skyPopoverMessageStream]=\"popoverMessageStream\"\n >\n <ng-container *ngTemplateOutlet=\"displayValue\" />\n <sky-status-indicator\n descriptionType=\"none\"\n indicatorType=\"danger\"\n class=\"sky-pull-right\"\n />\n </div>\n <sky-popover\n #validatorPopover\n data-sky-id=\"validatorPopover\"\n popoverType=\"danger\"\n >\n {{ validatorMessage }}\n </sky-popover>\n} @else {\n <ng-container *ngTemplateOutlet=\"displayValue\" />\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyPopoverModule } from '@skyux/popovers';\n\nimport { SkyAgGridCellValidatorTooltipComponent } from './ag-grid-cell-validator-tooltip.component';\n\n@NgModule({\n declarations: [SkyAgGridCellValidatorTooltipComponent],\n exports: [SkyAgGridCellValidatorTooltipComponent],\n imports: [SkyPopoverModule, SkyStatusIndicatorModule, NgTemplateOutlet],\n})\nexport class SkyAgGridCellValidatorModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkyNumericOptions } from '@skyux/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellRendererCurrencyParams } from '../../types/cell-renderer-currency-params';\nimport { SkyAgGridValidatorProperties } from '../../types/validator-properties';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-currency',\n templateUrl: './cell-renderer-currency.component.html',\n styleUrls: ['./cell-renderer-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererCurrencyComponent\n implements ICellRendererAngularComp\n{\n @Input()\n public set params(value: SkyCellRendererCurrencyParams) {\n this.agInit(value);\n }\n\n public columnWidth: number | undefined;\n public rowHeightWithoutBorders: number | undefined;\n public skyComponentProperties: SkyNumericOptions &\n SkyAgGridValidatorProperties = {};\n public numericOptions: SkyNumericOptions = {};\n public value: number | undefined;\n\n /**\n * agInit is called by AG Grid once after the renderer is created and provides the renderer with the information it needs.\n */\n public agInit(params: SkyCellRendererCurrencyParams): void {\n this.#updateProperties(params);\n }\n\n /**\n * refresh is called by AG Grid to update the cell without destroying and recreating the component.\n */\n public refresh(params: SkyCellRendererCurrencyParams): boolean {\n this.agInit(params);\n return false;\n }\n\n #updateProperties(params: SkyCellRendererCurrencyParams): void {\n this.value = params.value;\n this.skyComponentProperties = params.skyComponentProperties || {};\n this.skyComponentProperties.format = 'currency';\n this.skyComponentProperties.minDigits = 2;\n this.skyComponentProperties.truncate = false;\n }\n}\n","{{\n value === undefined ? undefined : (value | skyNumeric: skyComponentProperties)\n}}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellRendererCurrencyParams } from '../../types/cell-renderer-currency-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-currency-validator',\n styles: `\n :host {\n display: contents;\n }\n `,\n templateUrl: 'cell-renderer-currency-validator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererCurrencyValidatorComponent\n implements ICellRendererAngularComp\n{\n @Input()\n public set parameters(value: SkyCellRendererCurrencyParams) {\n this.agInit(value);\n }\n\n protected cellRendererParams: SkyCellRendererCurrencyParams | undefined;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n /**\n * agInit is called by agGrid once after the renderer is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n public agInit(params: SkyCellRendererCurrencyParams): void {\n this.cellRendererParams = params;\n this.#changeDetector.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public isNumeric(value: any): boolean {\n return !isNaN(parseFloat(value));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public refresh(params: SkyCellRendererCurrencyParams): boolean {\n return false;\n }\n}\n","@if (cellRendererParams) {\n <sky-ag-grid-cell-validator-tooltip [params]=\"cellRendererParams\">\n @if (isNumeric(cellRendererParams.value)) {\n <sky-ag-grid-cell-renderer-currency [params]=\"cellRendererParams\" />\n } @else {\n {{ cellRendererParams.value }}\n }\n </sky-ag-grid-cell-validator-tooltip>\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyNumericModule } from '@skyux/core';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellValidatorModule } from '../../cell-validator/ag-grid-cell-validator.module';\n\nimport { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderer-currency-validator.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderer-currency.component';\n\n@NgModule({\n imports: [\n SkyAgGridResourcesModule,\n SkyAgGridCellValidatorModule,\n FormsModule,\n SkyNumericModule,\n ],\n declarations: [\n SkyAgGridCellRendererCurrencyComponent,\n SkyAgGridCellRendererCurrencyValidatorComponent,\n ],\n exports: [\n SkyAgGridCellRendererCurrencyComponent,\n SkyAgGridCellRendererCurrencyValidatorComponent,\n ],\n})\nexport class SkyAgGridCellRendererCurrencyModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nimport { SkyCellRendererLookupParams } from '../../types/cell-renderer-lookup-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-cell-renderer-lookup',\n templateUrl: './cell-renderer-lookup.component.html',\n styleUrls: ['./cell-renderer-lookup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererLookupComponent\n implements ICellRendererAngularComp\n{\n protected value = '';\n protected summaryCount = 0;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n public agInit(params: SkyCellRendererLookupParams): void {\n this.summaryCount = params.value?.length || 0;\n this.value = `${params.valueFormatted}`;\n this.#changeDetector.markForCheck();\n }\n\n public refresh(params: SkyCellRendererLookupParams): boolean {\n this.agInit(params);\n return true;\n }\n}\n","@if (summaryCount > 5) {\n {{ 'skyux_lookup_tokens_summary' | skyLibResources: summaryCount }}\n} @else {\n {{ value }}\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridCellRendererLookupComponent } from './cell-renderer-lookup.component';\n\n@NgModule({\n declarations: [SkyAgGridCellRendererLookupComponent],\n exports: [SkyAgGridCellRendererLookupComponent],\n imports: [SkyAgGridResourcesModule],\n})\nexport class SkyAgGridCellRendererLookupModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport {\n ICellRendererParams,\n IRowNode,\n RowNodeSelectedEvent,\n} from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Subscription,\n fromEventPattern,\n isObservable,\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-row-selector',\n templateUrl: './cell-renderer-row-selector.component.html',\n styleUrls: ['./cell-renderer-row-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyAgGridCellRendererRowSelectorComponent\n implements ICellRendererAngularComp, OnDestroy\n{\n public dataField: string | undefined;\n public rowNode: IRowNode | undefined;\n public rowNumber: number | undefined;\n\n protected checked = new BehaviorSubject(false);\n protected readonly disabled = new BehaviorSubject(false);\n protected readonly label = new BehaviorSubject('');\n\n readonly #labelResourceKey = 'sky_ag_grid_row_selector_aria_label';\n #params: ICellRendererParams | undefined;\n readonly #resources = inject(SkyLibResourcesService);\n #subscription = new Subscription();\n\n constructor() {\n this.#setLabel();\n }\n\n public ngOnDestroy(): void {\n this.#subscription.unsubscribe();\n }\n\n /**\n * agInit is called by agGrid once after the cell is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n public agInit(params: ICellRendererParams): void {\n this.#setParameters(params);\n }\n\n /**\n * Used by agGrid to update cell value after a user triggers a refresh.\n * Returning true tells agGrid that the refresh was successful.\n */\n public refresh(params: ICellRendererParams): boolean {\n this.#setParameters(params);\n return true;\n }\n\n public updateRow(rowChecked: boolean): void {\n this.checked.next(rowChecked);\n if (this.rowNode) {\n const rowSelected = this.rowNode.isSelected();\n if (rowSelected !== rowChecked) {\n this.rowNode.setSelected(rowChecked, undefined, 'checkboxSelected');\n }\n if (this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n }\n\n #setParameters(params: ICellRendererParams): void {\n this.#params = params;\n this.disabled.next(this.#params?.node?.selectable === false);\n this.dataField = this.#params?.colDef?.field;\n this.rowNode = this.#params?.node as IRowNode | undefined;\n const rowIndex = this.rowNode?.rowIndex ?? NaN;\n this.rowNumber = Number.isNaN(rowIndex) ? undefined : rowIndex + 1;\n\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n this.#setLabel();\n\n const rowSelected = !!this.#params.node?.isSelected();\n\n if (this.dataField) {\n this.checked.next(!!this.#params.value);\n if (rowSelected !== this.checked.value) {\n this.rowNode?.setSelected(this.checked.value);\n }\n } else {\n this.checked.next(rowSelected);\n }\n\n this.#subscription.add(\n fromEventPattern<RowNodeSelectedEvent>(\n (handler) => this.rowNode?.addEventListener('rowSelected', handler),\n (handler) => this.rowNode?.removeEventListener('rowSelected', handler),\n ).subscribe((event) => this.#rowSelectedListener(event)),\n );\n }\n\n #setLabel(): void {\n const cellRendererParamLabel =\n this.#params?.colDef?.cellRendererParams?.label;\n if (this.#params?.colDef && typeof cellRendererParamLabel === 'string') {\n this.label.next(this.#params.colDef.cellRendererParams.label);\n } else if (\n this.#params?.colDef &&\n typeof cellRendererParamLabel === 'function'\n ) {\n const label = this.#params.colDef.cellRendererParams.label(\n this.#params.data,\n );\n if (isObservable(label)) {\n this.#subscription.add(\n label.subscribe((value: unknown) => this.label.next(String(value))),\n );\n } else {\n this.label.next(label);\n }\n } else {\n this.#subscription.add(\n this.#resources\n .getString(this.#labelResourceKey, this.rowNumber ?? '')\n .subscribe((value) => this.label.next(value)),\n );\n }\n }\n\n #rowSelectedListener(event: RowNodeSelectedEvent): void {\n this.checked.next(!!event.node.isSelected());\n if (this.rowNode && this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n}\n","<sky-checkbox\n data-sky-id=\"row-checkbox\"\n [disabled]=\"(disabled | async) || false\"\n [tabindex]=\"0\"\n [labelHidden]=\"true\"\n [labelText]=\"(label | async) || ''\"\n [checked]=\"(checked | async) || false\"\n (change)=\"updateRow(!!$event.checked)\"\n/>\n","import { AsyncPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\n\nimport { SkyAgGridResourcesModule } from '../../../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridCellRendererRowSelectorComponent } from '../cell-renderer-row-selector/cell-renderer-row-selector.component';\n\n@NgModule({\n imports: [AsyncPipe, SkyAgGridResourcesModule, SkyCheckboxModule],\n declarations: [SkyAgGridCellRendererRowSelectorComponent],\n exports: [SkyAgGridCellRendererRowSelectorComponent],\n})\nexport class SkyAgGridCellRendererRowSelectorModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ValueFormatterParams } from 'ag-grid-community';\n\nimport { SkyCellRendererValidatorParams } from '../../types/cell-renderer-validator-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-cell-renderer-validator-tooltip',\n templateUrl: 'cell-renderer-validator-tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridCellRendererValidatorTooltipComponent\n implements ICellRendererAngularComp\n{\n @Input()\n public set params(value: SkyCellRendererValidatorParams) {\n this.agInit(value);\n }\n\n public cellRendererParams: SkyCellRendererValidatorParams | undefined;\n public value: unknown;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n public agInit(params: SkyCellRendererValidatorParams): void {\n this.cellRendererParams = params;\n if (typeof params.colDef?.valueFormatter === 'function') {\n this.value = params.colDef.valueFormatter(params as ValueFormatterParams);\n } else {\n this.value = params.value;\n }\n this.#changeDetector.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public refresh(params: unknown): boolean {\n return false;\n }\n}\n","<sky-ag-grid-cell-validator-tooltip [params]=\"cellRendererParams\">\n {{ value }}\n</sky-ag-grid-cell-validator-tooltip>\n","import { NgModule } from '@angular/core';\n\nimport { SkyAgGridCellValidatorModule } from '../../cell-validator/ag-grid-cell-validator.module';\n\nimport { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderer-validator-tooltip.component';\n\n@NgModule({\n declarations: [SkyAgGridCellRendererValidatorTooltipComponent],\n exports: [SkyAgGridCellRendererValidatorTooltipComponent],\n imports: [SkyAgGridCellValidatorModule],\n})\nexport class SkyAgGridCellRendererValidatorTooltipModule {}\n","import { Injectable } from '@angular/core';\n\nimport { ColumnGroup } from 'ag-grid-community';\n\n/**\n * To display a help button beside the column group header, create a component containing\n * [`sky-help-inline`](https://developer.blackbaud.com/skyux/components/help-inline),\n * and inject SkyAgGridHeaderGroupInfo to access the column group\n * information, such as display name.\n * Add the component to the `headerGroupComponentParams.inlineHelpComponent`\n * property of the [column group definition](https://www.ag-grid.com/angular-data-grid/column-groups/).\n * @see SkyAgGridHeaderGroupParams\n */\n@Injectable()\nexport class SkyAgGridHeaderGroupInfo {\n /**\n * [Column group information from AG Grid](https://www.ag-grid.com/angular-data-grid/column-object-group/).\n */\n public columnGroup: ColumnGroup | undefined;\n /**\n * Display name of the column group.\n */\n public displayName: string | undefined;\n /**\n * AG Grid's [`context` field](https://www.ag-grid.com/angular-data-grid/context/).\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public context: any;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLocation,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { IHeaderGroupAngularComp } from 'ag-grid-angular';\nimport { ColumnGroupOpenedEvent, ProvidedColumnGroup } from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Observable,\n Subscription,\n fromEventPattern,\n} from 'rxjs';\n\nimport { SkyAgGridHeaderGroupInfo } from '../types/header-group-info';\nimport { SkyAgGridHeaderGroupParams } from '../types/header-group-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-header-group',\n templateUrl: './header-group.component.html',\n styleUrls: ['./header-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridHeaderGroupComponent\n implements IHeaderGroupAngularComp, OnDestroy, AfterViewInit\n{\n @ViewChild('inlineHelpContainer', { read: ElementRef, static: true })\n public inlineHelpContainer: ElementRef | undefined;\n\n protected params: SkyAgGridHeaderGroupParams | undefined = undefined;\n protected isExpandable$: Observable<boolean>;\n protected isExpanded$: Observable<boolean>;\n\n #columnGroup: ProvidedColumnGroup | undefined = undefined;\n #isExpandableSubject = new BehaviorSubject<boolean>(false);\n #isExpandedSubject = new BehaviorSubject<boolean>(false);\n #subscriptions = new Subscription();\n #viewInitialized = false;\n #agInitialized = false;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #environmentInjector = inject(EnvironmentInjector);\n\n constructor() {\n this.isExpandable$ = this.#isExpandableSubject.asObservable();\n this.isExpanded$ = this.#isExpandedSubject.asObservable();\n }\n\n public ngAfterViewInit(): void {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this.#subscriptions.unsubscribe();\n }\n\n public agInit(params: SkyAgGridHeaderGroupParams | undefined): void {\n this.#agInitialized = true;\n this.params = params;\n this.#subscriptions.unsubscribe();\n if (!params) {\n return;\n }\n this.#subscriptions = new Subscription();\n this.#columnGroup = params.columnGroup.getProvidedColumnGroup();\n this.#isExpandableSubject.next(this.#columnGroup.isExpandable());\n if (this.#isExpandableSubject.getValue()) {\n this.#subscriptions.add(\n fromEventPattern<ColumnGroupOpenedEvent>(\n (handler) =>\n params.api.addEventListener('columnGroupOpened', handler),\n (handler) =>\n params.api.removeEventListener('columnGroupOpened', handler),\n ).subscribe((event) => {\n if (\n this.#columnGroup &&\n event.columnGroups.includes(this.#columnGroup)\n ) {\n this.#isExpandedSubject.next(this.#columnGroup.isExpanded());\n }\n }),\n );\n }\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n\n public setExpanded($event: boolean): void {\n this.params?.setExpanded($event);\n }\n\n #updateInlineHelp(): void {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n\n const colGroupDef = this.params?.columnGroup?.getColGroupDef();\n const inlineHelpComponent =\n colGroupDef?.headerGroupComponentParams?.inlineHelpComponent;\n\n if (inlineHelpComponent) {\n const headerGroupInfo = new SkyAgGridHeaderGroupInfo();\n headerGroupInfo.columnGroup = this.params?.columnGroup;\n headerGroupInfo.context = this.params?.context;\n headerGroupInfo.displayName = this.params?.displayName;\n\n this.#dynamicComponentService.createComponent(inlineHelpComponent, {\n providers: [\n {\n provide: SkyAgGridHeaderGroupInfo,\n useValue: headerGroupInfo,\n },\n ],\n environmentInjector: this.#environmentInjector,\n referenceEl: this.inlineHelpContainer?.nativeElement,\n location: SkyDynamicComponentLocation.ElementBottom,\n });\n }\n }\n}\n","@if (params?.displayName) {\n <span\n class=\"header-group-text\"\n role=\"presentation\"\n [skyThemeClass]=\"{ 'sky-font-heading-4': 'modern' }\"\n >{{ params?.displayName }}</span\n >\n}\n@if (isExpandable$ | async) {\n @if (isExpanded$ | async) {\n <button\n class=\"sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n [attr.aria-label]=\"\n 'sky_ag_grid_column_group_header_collapse_aria_label'\n | skyLibResources: params?.displayName\n \"\n (click)=\"setExpanded(false)\"\n >\n <sky-icon icon=\"double-chevron-left\" />\n </button>\n } @else {\n <button\n class=\"sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n [attr.aria-label]=\"\n 'sky_ag_grid_column_group_header_expand_aria_label'\n | skyLibResources: params?.displayName\n \"\n (click)=\"setExpanded(true)\"\n >\n <sky-icon icon=\"double-chevron-right\" />\n </button>\n }\n}\n<span #inlineHelpContainer class=\"sky-control-help-container\"></span>\n","import { Injectable } from '@angular/core';\n\nimport { Column } from 'ag-grid-community';\n\n/**\n * To display a help button beside the column header, create a component containing\n * [`sky-help-inline`](https://developer.blackbaud.com/skyux/components/help-inline),\n * and inject SkyAgGridHeaderInfo to access the column information, such\n * as display name.\n * Add the component to the `headerComponentParams.inlineHelpComponent`\n * property of the [column definition](https://www.ag-grid.com/angular-data-grid/column-definitions/).\n * @see SkyAgGridHeaderParams\n */\n@Injectable()\nexport class SkyAgGridHeaderInfo {\n /**\n * [Column information from AG Grid](https://www.ag-grid.com/angular-data-grid/column-object/).\n */\n public column: Column | undefined;\n /**\n * Display name of the column.\n */\n public displayName: string | undefined;\n /**\n * AG Grid's [`context` field](https://www.ag-grid.com/angular-data-grid/context/).\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public context: any;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n ViewChild,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLocation,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { IHeaderAngularComp } from 'ag-grid-angular';\nimport { ColumnMovedEvent } from 'ag-grid-community';\nimport { BehaviorSubject, Subscription, fromEventPattern } from 'rxjs';\n\nimport { SkyAgGridHeaderInfo } from '../types/header-info';\nimport { SkyAgGridHeaderParams } from '../types/header-params';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.title]': 'accessibleHeaderText()',\n '[attr.aria-label]': 'displayName() || accessibleHeaderText()',\n '[attr.role]': '\"note\"',\n },\n})\nexport class SkyAgGridHeaderComponent\n implements IHeaderAngularComp, OnDestroy, AfterViewInit\n{\n public readonly filterEnabled$ = new BehaviorSubject<boolean>(false);\n\n // For accessibility, we need to set the title attribute on the header element if there is no visible header text.\n // https://dequeuniversity.com/rules/axe/4.5/empty-table-header?application=axeAPI\n protected readonly accessibleHeaderText = computed(() => {\n const params = this.params();\n if (\n params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden\n ) {\n return undefined;\n } else {\n return params?.displayName || params?.column.getColDef().field;\n }\n });\n\n @ViewChild('inlineHelpContainer', { read: ElementRef, static: true })\n protected inlineHelpContainer: ElementRef | undefined;\n\n protected readonly params = signal<SkyAgGridHeaderParams | undefined>(\n undefined,\n );\n protected sorted = '';\n protected readonly sortOrder$ = new BehaviorSubject<\n 'asc' | 'desc' | undefined\n >(undefined);\n protected readonly sortIndexDisplay$ = new BehaviorSubject<string>('');\n\n protected displayName = computed<string | undefined>(() => {\n const params = this.params();\n if (\n params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden\n ) {\n return params.displayName;\n } else {\n return undefined;\n }\n });\n\n #subscriptions = new Subscription();\n #inlineHelpComponentRef: ComponentRef<unknown> | undefined;\n #viewInitialized = false;\n #agInitialized = false;\n #leftPosition = 0;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #environmentInjector = inject(EnvironmentInjector);\n\n public ngAfterViewInit(): void {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n }\n\n public ngOnDestroy(): void {\n this.#subscriptions.unsubscribe();\n }\n\n public agInit(params: SkyAgGridHeaderParams | undefined): void {\n this.#agInitialized = true;\n this.params.set(params);\n this.#subscriptions.unsubscribe();\n if (!params) {\n return;\n }\n this.#leftPosition = params.column.getLeft() ?? 0;\n this.#subscriptions = new Subscription();\n if (params.column.isFilterAllowed()) {\n this.#subscriptions.add(\n fromEventPattern(\n (handler) => params.column.addEventListener('filterChanged', handler),\n (handler) =>\n params.column.removeEventListener('filterChanged', handler),\n ).subscribe(() => {\n const isFilterActive = params.column.isFilterActive();\n if (isFilterActive !== this.filterEnabled$.getValue()) {\n this.filterEnabled$.next(isFilterActive);\n }\n }),\n );\n }\n if (params.enableSorting) {\n // Column sort state changes\n this.#subscriptions.add(\n fromEventPattern(\n (handler) => params.column.addEventListener('sortChanged', handler),\n (handler) =>\n params.column.removeEventListener('sortChanged', handler),\n ).subscribe(() => {\n this.#updateSort();\n }),\n );\n // Other column sort state changes, for multi-column sorting\n this.#subscriptions.add(\n fromEventPattern(\n (handler) => params.api.addEventListener('sortChanged', handler),\n (handler) => params.api.removeEventListener('sortChanged', handler),\n ).subscribe(() => {\n this.#updateSortIndex();\n }),\n );\n this.#updateSort();\n this.#updateSortIndex();\n }\n\n // When the column is moved left via the keyboard, the element is detached\n // and reattached to the DOM to maintain DOM order, and its focus is lost.\n this.#subscriptions.add(\n fromEventPattern<ColumnMovedEvent>(\n (handler) => params.api.addEventListener('columnMoved', handler),\n (handler) => params.api.removeEventListener('columnMoved', handler),\n ).subscribe((event) => {\n const left = event.column?.getLeft() ?? 0;\n const oldLeft = this.#leftPosition;\n if (\n event.column === params.column &&\n event.source === 'uiColumnMoved' &&\n left < oldLeft\n ) {\n params.eGridHeader.focus();\n }\n this.#leftPosition = left;\n }),\n );\n\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n\n public onMenuClick($event: Event): void {\n this.params()?.showColumnMenu($event.target as HTMLElement);\n }\n\n public onSortRequested(event: MouseEvent): void {\n if (this.params()?.enableSorting) {\n this.params()?.progressSort(event.shiftKey);\n }\n }\n\n public refresh(params: SkyAgGridHeaderParams): boolean {\n this.agInit(params);\n return false;\n }\n\n #updateInlineHelp(): void {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n\n const inlineHelpComponent = this.params()?.inlineHelpComponent;\n\n if (\n inlineHelpComponent &&\n (!this.#inlineHelpComponentRef ||\n this.#inlineHelpComponentRef.componentType !== inlineHelpComponent)\n ) {\n this.#dynamicComponentService.removeComponent(\n this.#inlineHelpComponentRef,\n );\n\n const headerInfo = new SkyAgGridHeaderInfo();\n headerInfo.column = this.params()?.column;\n headerInfo.context = this.params()?.context;\n headerInfo.displayName = this.params()?.displayName;\n\n this.#inlineHelpComponentRef =\n this.#dynamicComponentService.createComponent(inlineHelpComponent, {\n providers: [\n {\n provide: SkyAgGridHeaderInfo,\n useValue: headerInfo,\n },\n ],\n environmentInjector: this.#environmentInjector,\n referenceEl: this.inlineHelpContainer?.nativeElement,\n location: SkyDynamicComponentLocation.ElementBottom,\n });\n } else if (!inlineHelpComponent) {\n this.#dynamicComponentService.removeComponent(\n this.#inlineHelpComponentRef,\n );\n }\n }\n\n #updateSort(): void {\n this.sortOrder$.next(this.params()?.column.getSort() || undefined);\n }\n\n #updateSortIndex(): void {\n const sortIndex = this.params()?.column.getSortIndex();\n const otherSortColumns = this.params()\n ?.api?.getColumns()\n ?.some(\n (column) =>\n column.getColId() !== this.params()?.column.getColId() &&\n !!column.getSort(),\n );\n if (sortIndex !== undefined && sortIndex !== null && otherSortColumns) {\n this.sortIndexDisplay$.next(`${sortIndex + 1}`);\n } else {\n this.sortIndexDisplay$.next('');\n }\n }\n}\n","<div class=\"ag-cell-label-container\" role=\"presentation\">\n @if (params()?.enableMenu) {\n <span\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n }\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n @if (params()?.enableSorting) {\n <button\n aria-hidden=\"true\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"accessibleHeaderText()\"\n [innerText]=\"displayName() ?? ''\"\n [skyThemeClass]=\"{ 'sky-font-heading-4': 'modern' }\"\n (click)=\"onSortRequested($event)\"\n ></button>\n } @else if (displayName()) {\n <span\n aria-hidden=\"true\"\n class=\"ag-header-cell-text\"\n [skyThemeClass]=\"{ 'sky-font-heading-4': 'modern' }\"\n >{{ displayName() }}</span\n >\n }\n @if (filterEnabled$ | async) {\n <span\n aria-hidden=\"true\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n ><sky-icon icon=\"filter\"\n /></span>\n }\n @if (params()?.enableSorting) {\n @if (sortOrder$ | async; as sortDirection) {\n <button\n class=\"ag-sort-indicator-container sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n (click)=\"onSortRequested($event)\"\n >\n @if (sortDirection === 'desc') {\n <span class=\"ag-header-icon ag-header-label-icon\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-down\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-down\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_desc'\n | skyLibResources: displayName() ?? accessibleHeaderText()\n }}</span></span\n >\n }\n @if (sortDirection === 'asc') {\n <span class=\"ag-header-icon ag-header-label-icon\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-up\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-up\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_asc'\n | skyLibResources: displayName() ?? accessibleHeaderText()\n }}</span></span\n >\n }\n\n @if (sortIndexDisplay$ | async; as sortIndexDisplay) {\n <span\n aria-hidden=\"true\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n >{{ sortIndexDisplay }}</span\n >\n }\n </button>\n } @else {\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted'\n | skyLibResources: displayName() ?? accessibleHeaderText()\n }}</span>\n }\n }\n </span>\n <span #inlineHelpContainer class=\"sky-control-help-container\"></span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyViewkeeperModule } from '@skyux/core';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyDatePipeModule } from '@skyux/datetime';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyAgGridResourcesModule } from '../shared/sky-ag-grid-resources.module';\n\nimport { SkyAgGridDataManagerAdapterDirective } from './ag-grid-data-manager-adapter.directive';\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport { SkyAgGridRowDeleteDirective } from './ag-grid-row-delete.directive';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport { SkyAgGridCellEditorAutocompleteModule } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module';\nimport { SkyAgGridCellEditorCurrencyModule } from './cell-editors/cell-editor-currency/cell-editor-currency.module';\nimport { SkyAgGridCellEditorDatepickerModule } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.module';\nimport { SkyAgGridCellEditorLookupModule } from './cell-editors/cell-editor-lookup/cell-editor-lookup.module';\nimport { SkyAgGridCellEditorNumberModule } from './cell-editors/cell-editor-number/cell-editor-number.module';\nimport { SkyAgGridCellEditorTextModule } from './cell-editors/cell-editor-text/cell-editor-text.module';\nimport { SkyAgGridCellRendererCurrencyModule } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.module';\nimport { SkyAgGridCellRendererLookupModule } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module';\nimport { SkyAgGridCellRendererRowSelectorModule } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module';\nimport { SkyAgGridCellRendererValidatorTooltipModule } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module';\nimport { SkyAgGridCellValidatorModule } from './cell-validator/ag-grid-cell-validator.module';\nimport { SkyAgGridHeaderGroupComponent } from './header/header-group.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\n\n@NgModule({\n declarations: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridHeaderComponent,\n SkyAgGridHeaderGroupComponent,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n imports: [\n AgGridModule,\n CommonModule,\n SkyAgGridCellEditorAutocompleteModule,\n SkyAgGridCellEditorDatepickerModule,\n SkyAgGridCellEditorLookupModule,\n SkyAgGridCellEditorNumberModule,\n SkyAgGridCellEditorCurrencyModule,\n SkyAgGridCellRendererCurrencyModule,\n SkyAgGridCellRendererLookupModule,\n SkyAgGridCellRendererRowSelectorModule,\n SkyAgGridCellRendererValidatorTooltipModule,\n SkyAgGridCellValidatorModule,\n SkyAgGridCellEditorTextModule,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteComponent,\n SkyDataManagerModule,\n SkyDatePipeModule,\n SkyIconModule,\n SkyInlineDeleteModule,\n SkyViewkeeperModule,\n SkyThemeModule,\n ],\n exports: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteComponent,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n SkyAgGridHeaderComponent,\n SkyAgGridHeaderGroupComponent,\n ],\n})\nexport class SkyAgGridModule {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, TemplateRef } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\nimport { CellRendererTemplateContext } from './cell-renderer-template-context.type';\n\ntype CellState =\n | {\n hasTemplate: true;\n template: TemplateRef<CellRendererTemplateContext>;\n context: CellRendererTemplateContext;\n }\n | {\n hasTemplate: false;\n template: undefined;\n context?: unknown;\n };\n\n@Component({\n selector: 'sky-ag-grid-cell-renderer-template',\n standalone: true,\n template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`,\n imports: [NgTemplateOutlet],\n})\nexport class SkyAgGridCellRendererTemplateComponent\n implements ICellRendererAngularComp\n{\n protected state: CellState = {\n hasTemplate: false,\n template: undefined,\n context: { value: undefined, data: undefined },\n };\n\n public agInit(params: ICellRendererParams): void {\n const hasTemplate = !!(\n params.colDef?.cellRendererParams &&\n 'template' in params.colDef.cellRendererParams &&\n params.colDef.cellRendererParams.template\n );\n const template: TemplateRef<CellRendererTemplateContext> | undefined =\n hasTemplate\n ? (params.colDef?.cellRendererParams\n .template as TemplateRef<CellRendererTemplateContext>)\n : undefined;\n this.state = {\n hasTemplate,\n template,\n context: { value: params.value, row: params.data },\n } as CellState;\n }\n\n public refresh(params: ICellRendererParams): boolean {\n this.agInit(params);\n return false;\n }\n}\n","export const iconMap: Record<\n string,\n {\n faIcon: string;\n skyIcon?: string;\n }\n> = {\n sortDescending: {\n faIcon: 'caret-down',\n skyIcon: 'chevron-down',\n },\n sortAscending: {\n faIcon: 'caret-up',\n skyIcon: 'chevron-up',\n },\n columnMoveMove: {\n faIcon: 'arrows',\n },\n columnMoveHide: {\n faIcon: 'eye-slash',\n skyIcon: 'hide',\n },\n columnMoveLeft: {\n faIcon: 'arrows',\n },\n columnMoveRight: {\n faIcon: 'arrows',\n },\n columnMoveGroup: {\n faIcon: 'arrows',\n },\n columnMovePin: {\n faIcon: 'arrows',\n },\n columnGroupOpened: {\n faIcon: 'caret-right',\n skyIcon: 'double-chevron-right',\n },\n columnGroupClosed: {\n faIcon: 'caret-left',\n skyIcon: 'double-chevron-left',\n },\n dropNotAllowed: {\n faIcon: 'ban',\n skyIcon: 'ban',\n },\n menu: {\n faIcon: 'menu',\n skyIcon: 'bars-2',\n },\n filter: {\n faIcon: 'filter',\n skyIcon: 'filter',\n },\n columns: {\n faIcon: 'columns',\n skyIcon: 'columns',\n },\n last: {\n faIcon: 'step-forward',\n skyIcon: 'double-chevron-right',\n },\n next: {\n faIcon: 'caret-right',\n skyIcon: 'chevron-right',\n },\n previous: {\n faIcon: 'caret-left',\n skyIcon: 'chevron-left',\n },\n first: {\n faIcon: 'step-backward',\n skyIcon: 'double-chevron-left',\n },\n};\nexport type IconMapType = typeof iconMap;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { ILoadingOverlayAngularComp } from 'ag-grid-angular';\nimport { ILoadingOverlayParams } from 'ag-grid-community';\n\n@Component({\n selector: 'sky-ag-grid-loading',\n standalone: true,\n imports: [SkyWaitModule],\n templateUrl: './loading.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridLoadingComponent implements ILoadingOverlayAngularComp {\n public agInit(_params: ILoadingOverlayParams): void {\n // Do nothing.\n }\n\n public refresh(_params: ILoadingOverlayParams): void {\n // Do nothing.\n }\n}\n","<sky-wait [isWaiting]=\"true\" />\n","/**\n * @internal\n */\nexport enum SkyCellClass {\n Autocomplete = 'sky-ag-grid-cell-autocomplete',\n Currency = 'sky-ag-grid-cell-currency',\n Date = 'sky-ag-grid-cell-date',\n Editable = 'sky-ag-grid-cell-editable',\n Invalid = 'sky-ag-grid-cell-invalid',\n Lookup = 'sky-ag-grid-cell-lookup',\n Number = 'sky-ag-grid-cell-number',\n RightAligned = 'sky-ag-grid-cell-right-aligned',\n RowSelector = 'sky-ag-grid-cell-row-selector',\n Template = 'sky-ag-grid-cell-template',\n Text = 'sky-ag-grid-cell-text',\n Uneditable = 'sky-ag-grid-cell-uneditable',\n Validator = 'sky-ag-grid-cell-validator',\n}\n","/**\n * @internal\n */\nexport enum SkyHeaderClass {\n Resizable = 'sky-ag-grid-header-resizable',\n RightAligned = 'sky-ag-grid-header-right-aligned',\n}\n","import { Injectable, OnDestroy, Optional, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyDateService } from '@skyux/datetime';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeService, SkyThemeSettings } from '@skyux/theme';\n\nimport {\n CellClassParams,\n ColDef,\n EditableCallbackParams,\n GridOptions,\n HeaderClassParams,\n ICellRendererParams,\n RowClassParams,\n RowSelectionOptions,\n SuppressHeaderKeyboardEventParams,\n SuppressKeyboardEventParams,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\nimport { applySkyLookupPropertiesDefaults } from './apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorAutocompleteComponent } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nimport { SkyAgGridCellEditorCurrencyComponent } from './cell-editors/cell-editor-currency/cell-editor-currency.component';\nimport { SkyAgGridCellEditorDatepickerComponent } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nimport { SkyAgGridCellEditorLookupComponent } from './cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nimport { SkyAgGridCellEditorNumberComponent } from './cell-editors/cell-editor-number/cell-editor-number.component';\nimport { SkyAgGridCellEditorTextComponent } from './cell-editors/cell-editor-text/cell-editor-text.component';\nimport { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nimport { SkyAgGridCellRendererLookupComponent } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nimport { SkyAgGridCellRendererRowSelectorComponent } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nimport { SkyAgGridCellRendererTemplateComponent } from './cell-renderers/cell-renderer-template/cell-renderer-template.component';\nimport { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nimport { SkyAgGridHeaderGroupComponent } from './header/header-group.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\nimport { IconMapType, iconMap } from './icons/icon-map';\nimport { SkyAgGridLoadingComponent } from './loading/loading.component';\nimport { SkyCellClass } from './types/cell-class';\nimport { SkyCellType } from './types/cell-type';\nimport { SkyHeaderClass } from './types/header-class';\nimport { LastFocusedCell } from './types/last-focused.cell';\nimport { SkyGetGridOptionsArgs } from './types/sky-grid-options';\n\nfunction autocompleteComparator(\n value1: { name: string },\n value2: { name: string },\n): number {\n if (value1 && value2) {\n if (value1.name > value2.name) {\n return 1;\n }\n\n if (value1.name < value2.name) {\n return -1;\n }\n\n return 0;\n }\n\n return value1 ? 1 : -1;\n}\n\nfunction autocompleteFormatter(params: ValueFormatterParams): string {\n return params.value && params.value.name;\n}\n\nfunction dateComparator(date1: Date | string, date2: Date | string): number {\n let date1value = date1;\n let date2value = date2;\n\n if (typeof date1value === 'string') {\n date1value = new Date(date1);\n }\n\n if (typeof date2value === 'string') {\n date2value = new Date(date2);\n }\n\n if (date1value && date2value) {\n if (date1value > date2value) {\n return 1;\n }\n\n if (date1value < date2value) {\n return -1;\n }\n\n return 0;\n }\n\n return date1value ? 1 : -1;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getValidatorCellRendererSelector(component: string, fallback?: any) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (params: ICellRendererParams): any => {\n if (\n params.colDef &&\n typeof params.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function'\n ) {\n if (\n params.column?.isCellEditable(params.node) ||\n !params.colDef.cellRendererParams.skyComponentProperties.validator(\n params.value,\n params.data,\n params?.node?.rowIndex,\n )\n ) {\n return {\n component,\n params: {\n ...params.colDef.cellRendererParams,\n },\n };\n }\n }\n return fallback;\n };\n}\n\nlet rowNodeId = -1;\n\n/**\n * `SkyAgGridService` provides methods to get AG Grid `gridOptions` to ensure grids match SKY UX functionality. The `gridOptions` can be overridden, and include registered SKY UX column types.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAgGridService implements OnDestroy {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #keyMap = new WeakMap<any, string>();\n #ngUnsubscribe = new Subject<void>();\n #currentTheme: SkyThemeSettings | undefined = undefined;\n #agGridAdapterService: SkyAgGridAdapterService;\n #resources: SkyLibResourcesService | undefined;\n #dateService = inject(SkyDateService);\n #logService = inject(SkyLogService);\n\n constructor(\n agGridAdapterService: SkyAgGridAdapterService,\n @Optional() themeSvc?: SkyThemeService,\n @Optional() resources?: SkyLibResourcesService,\n ) {\n this.#agGridAdapterService = agGridAdapterService;\n this.#resources = resources;\n\n /*istanbul ignore else*/\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#currentTheme = settingsChange.currentSettings;\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell renderers registered for read-only grids.\n * @param args\n * @returns\n */\n public getGridOptions(args: SkyGetGridOptionsArgs): GridOptions {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(\n defaultGridOptions,\n args.gridOptions,\n );\n\n return mergedGridOptions;\n }\n\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell editors registered for editable grids.\n * @param args\n * @returns\n */\n public getEditableGridOptions(args: SkyGetGridOptionsArgs): GridOptions {\n const defaultGridOptions = this.#getDefaultEditableGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(\n defaultGridOptions,\n args.gridOptions,\n );\n\n return mergedGridOptions;\n }\n\n /**\n * @deprecated The `getHeaderHeight` method is no longer needed. Header height is managed in CSS.\n */\n public getHeaderHeight(): number {\n return this.#currentTheme?.theme?.name === 'modern' ? 60 : 37;\n }\n\n #mergeGridOptions(\n defaultGridOptions: GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n },\n providedGridOptions: GridOptions,\n ): GridOptions {\n if ('enableRangeSelection' in providedGridOptions) {\n if (providedGridOptions.enableRangeSelection) {\n providedGridOptions.cellSelection = true;\n }\n delete providedGridOptions.enableRangeSelection;\n }\n if (\n providedGridOptions.rowSelection === 'single' ||\n providedGridOptions.rowSelection === 'multiple'\n ) {\n const rowSelectionOptions: Record<string, RowSelectionOptions> = {\n single: { mode: 'singleRow' },\n multiple: { mode: 'multiRow' },\n };\n providedGridOptions.rowSelection =\n rowSelectionOptions[providedGridOptions.rowSelection];\n }\n if (\n defaultGridOptions.rowSelection &&\n providedGridOptions.rowSelection?.mode\n ) {\n providedGridOptions.rowSelection = {\n ...(defaultGridOptions.rowSelection as RowSelectionOptions),\n ...providedGridOptions.rowSelection,\n } as RowSelectionOptions;\n }\n\n const mergedGridOptions: GridOptions = {\n ...defaultGridOptions,\n ...providedGridOptions,\n components: {\n ...providedGridOptions.components,\n // Apply default components last to prevent consumers from overwriting our component types.\n ...defaultGridOptions.components,\n },\n context: {\n ...defaultGridOptions.context,\n ...providedGridOptions.context,\n },\n columnTypes: {\n ...providedGridOptions.columnTypes,\n // apply default second to prevent consumers from overwriting our default column types\n ...defaultGridOptions.columnTypes,\n },\n defaultColDef: {\n ...defaultGridOptions.defaultColDef,\n ...providedGridOptions.defaultColDef,\n // allow consumers to override all defaultColDef properties except cellClassRules, which we reserve for styling\n cellClassRules: defaultGridOptions.defaultColDef?.cellClassRules,\n headerClass: defaultGridOptions.defaultColDef?.headerClass,\n },\n defaultColGroupDef: {\n ...defaultGridOptions.defaultColGroupDef,\n ...providedGridOptions.defaultColGroupDef,\n headerClass: defaultGridOptions.defaultColGroupDef?.headerClass,\n },\n getRowClass: (params): string[] => {\n const defaultClasses = defaultGridOptions.getRowClass(\n params,\n ) as string[];\n const providedClasses = providedGridOptions.getRowClass?.(params) ?? [];\n const providedClassesArray = Array.isArray(providedClasses)\n ? providedClasses\n : [providedClasses];\n return [...defaultClasses, ...providedClassesArray];\n },\n icons: {\n ...defaultGridOptions.icons,\n ...providedGridOptions.icons,\n },\n onCellFocused: (event): void => {\n defaultGridOptions.onCellFocused?.(event);\n providedGridOptions.onCellFocused?.(event);\n },\n };\n\n // Enable text selection unless explicitly disabled or conflicting with another setting.\n if (\n mergedGridOptions.enableCellTextSelection ||\n (!('enableCellTextSelection' in mergedGridOptions) &&\n !mergedGridOptions.cellSelection &&\n !mergedGridOptions.columnDefs?.some((col: ColDef) => col.editable))\n ) {\n mergedGridOptions.context ||= {};\n mergedGridOptions.enableCellTextSelection ??= true;\n mergedGridOptions.context.enableCellTextSelection =\n mergedGridOptions.enableCellTextSelection;\n }\n\n return mergedGridOptions;\n }\n\n #getDefaultGridOptions(args: SkyGetGridOptionsArgs): GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } {\n // cellClassRules can be functions or string expressions\n const cellClassRuleTrueExpression = (): boolean => true;\n\n function getEditableFn(\n isUneditable?: boolean,\n ): (params: CellClassParams) => boolean {\n return function (params: CellClassParams): boolean {\n let isEditable = params.colDef.editable;\n\n if (typeof isEditable === 'function') {\n const column = params.api.getColumn(params.colDef);\n isEditable = isEditable({\n ...params,\n column,\n } as EditableCallbackParams);\n }\n\n return isUneditable ? !isEditable : !!isEditable;\n };\n }\n\n const editableCellClassRules = {\n [SkyCellClass.Editable]: getEditableFn(),\n [SkyCellClass.Uneditable]: getEditableFn(true),\n };\n\n function getValidatorFn(): (params: CellClassParams) => boolean {\n return function (param: CellClassParams) {\n if (\n param.colDef &&\n typeof param.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function'\n ) {\n return !param.colDef.cellRendererParams.skyComponentProperties.validator(\n param.value,\n param.data,\n param.node?.rowIndex,\n );\n }\n return false;\n };\n }\n\n const validatorCellClassRules = {\n [SkyCellClass.Invalid]: getValidatorFn(),\n [SkyCellClass.Validator]: cellClassRuleTrueExpression,\n };\n\n function getHeaderClass(\n ...classNames: string[]\n ): (params: HeaderClassParams) => string | string[] | undefined {\n return (params: HeaderClassParams): string | string[] | undefined => {\n // istanbul ignore next\n const minWidth = params.column?.getMinWidth() ?? 0;\n // istanbul ignore next\n const maxWidth = params.column?.getMaxWidth() ?? Infinity;\n if (params.column?.isResizable() && minWidth < maxWidth) {\n return [...classNames, SkyHeaderClass.Resizable];\n }\n return classNames;\n };\n }\n\n const defaultSkyGridOptions: GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } = {\n columnTypes: {\n [SkyCellType.Autocomplete]: {\n cellClassRules: {\n [SkyCellClass.Autocomplete]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorAutocompleteComponent,\n valueFormatter: autocompleteFormatter,\n comparator: autocompleteComparator,\n minWidth: 185,\n },\n [SkyCellType.Currency]: {\n cellClassRules: {\n [SkyCellClass.Currency]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-currency-validator',\n { component: 'sky-ag-grid-cell-renderer-currency' },\n ),\n cellEditor: SkyAgGridCellEditorCurrencyComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n minWidth: 185,\n suppressKeyboardEvent: (params) =>\n this.#suppressEnter(params) || this.#suppressTab(params),\n },\n [SkyCellType.Date]: {\n cellClassRules: {\n [SkyCellClass.Date]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorDatepickerComponent,\n comparator: dateComparator,\n minWidth: this.#currentTheme?.theme?.name === 'modern' ? 180 : 160,\n valueFormatter: (params: ValueFormatterParams) => {\n try {\n return (\n this.#dateService.format(\n params.value,\n args.locale,\n args.dateFormat || 'shortDate',\n ) || ''\n );\n } catch (err) {\n /* istanbul ignore else */\n if ((err as Error).stack) {\n this.#logService.error(`${(err as Error).stack}`);\n } else {\n this.#logService.error(`${err}`);\n }\n return '';\n }\n },\n },\n [SkyCellType.Lookup]: {\n cellClassRules: {\n [SkyCellClass.Lookup]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorLookupComponent,\n cellRenderer: SkyAgGridCellRendererLookupComponent,\n valueFormatter: (params) => {\n const lookupProperties = applySkyLookupPropertiesDefaults(\n params.colDef?.cellRendererParams?.skyComponentProperties ??\n params.colDef?.cellEditorParams?.skyComponentProperties ??\n {},\n );\n return (params.value || [])\n .map((value: Record<string, unknown>) => {\n return value[lookupProperties.descriptorProperty as string];\n })\n .filter((value: unknown) => value !== '' && value !== undefined)\n .join('; ');\n },\n minWidth: 185,\n },\n [SkyCellType.Number]: {\n cellClassRules: {\n [SkyCellClass.Number]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-validator-tooltip',\n ),\n cellEditor: SkyAgGridCellEditorNumberComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n },\n [SkyCellType.RightAligned]: {\n cellClassRules: {\n [SkyCellClass.RightAligned]: cellClassRuleTrueExpression,\n },\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n },\n [SkyCellType.RowSelector]: {\n cellClassRules: {\n [SkyCellClass.RowSelector]: cellClassRuleTrueExpression,\n [SkyCellClass.Uneditable]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererRowSelectorComponent,\n headerComponentParams: {\n headerHidden: true,\n },\n headerName: 'Row selection',\n minWidth: 55,\n maxWidth: 55,\n resizable: false,\n sortable: false,\n width: 55,\n },\n [SkyCellType.Template]: {\n cellClassRules: {\n [SkyCellClass.Template]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererTemplateComponent,\n cellEditor: SkyAgGridCellRendererTemplateComponent,\n },\n [SkyCellType.Text]: {\n cellClassRules: {\n [SkyCellClass.Text]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorTextComponent,\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-validator-tooltip',\n ),\n },\n [SkyCellType.Validator]: {\n cellClassRules: {\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector(\n 'sky-ag-grid-cell-renderer-validator-tooltip',\n ),\n },\n },\n defaultColDef: {\n cellClassRules: editableCellClassRules,\n headerClass: getHeaderClass(),\n headerComponent: SkyAgGridHeaderComponent,\n minWidth: 100,\n suppressHeaderKeyboardEvent: (\n keypress: SuppressHeaderKeyboardEventParams,\n ) => keypress.event.code === 'Tab',\n suppressKeyboardEvent: (keypress: SuppressKeyboardEventParams) =>\n this.#suppressTab(keypress),\n },\n defaultColGroupDef: {\n headerGroupComponent: SkyAgGridHeaderGroupComponent,\n },\n domLayout: 'autoHeight',\n ensureDomOrder: true,\n components: {\n 'sky-ag-grid-cell-renderer-currency':\n SkyAgGridCellRendererCurrencyComponent,\n 'sky-ag-grid-cell-renderer-currency-validator':\n SkyAgGridCellRendererCurrencyValidatorComponent,\n 'sky-ag-grid-cell-renderer-validator-tooltip':\n SkyAgGridCellRendererValidatorTooltipComponent,\n },\n focusGridInnerElement: (params) => {\n const lastFocusedCell = params.context?.['lastFocusedCell'] as\n | LastFocusedCell\n | undefined;\n if (lastFocusedCell) {\n if (lastFocusedCell.rowIndex !== null) {\n params.api.setFocusedCell(\n lastFocusedCell.rowIndex,\n lastFocusedCell.column,\n );\n } else {\n params.api.setFocusedHeader(lastFocusedCell.column);\n }\n return true;\n }\n return false;\n },\n getRowId: (params) => {\n const dataId = params.data.id;\n if (dataId !== undefined) {\n return `${params.data.id}`;\n }\n if (!this.#keyMap.has(params.data)) {\n this.#keyMap.set(params.data, `${rowNodeId--}`);\n }\n return this.#keyMap.get(params.data) as string;\n },\n getRowClass: (params: RowClassParams): string[] => {\n if (params.node.id) {\n return [`sky-ag-grid-row-${params.node.id}`];\n } else {\n return [];\n }\n },\n icons: {\n sortDescending: this.#getIconTemplate('sortDescending'),\n sortAscending: this.#getIconTemplate('sortAscending'),\n columnMoveMove: this.#getIconTemplate('columnMoveMove'),\n columnMoveHide: this.#getIconTemplate('columnMoveHide'),\n columnMoveLeft: this.#getIconTemplate('columnMoveLeft'),\n columnMoveRight: this.#getIconTemplate('columnMoveRight'),\n columnMovePin: this.#getIconTemplate('columnMovePin'),\n },\n loadingOverlayComponent: SkyAgGridLoadingComponent,\n onCellFocused: () => this.#onCellFocused(),\n rowSelection: {\n mode: 'multiRow',\n enableClickSelection: false,\n enableSelectionWithoutKeys: true,\n checkboxes: false,\n headerCheckbox: false,\n },\n singleClickEdit: true,\n sortingOrder: ['desc', 'asc', null],\n suppressDragLeaveHidesColumns: true,\n };\n\n const columnTypes = defaultSkyGridOptions.columnTypes as Record<\n string,\n ColDef\n >;\n\n columnTypes[SkyCellType.CurrencyValidator] = {\n ...columnTypes[SkyCellType.Currency],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: string): boolean => {\n return !!`${value || ''}`.match(/^[^0-9]*(\\d+[,.]?)+\\d*[^0-9]*$/);\n },\n validatorMessage: 'Please enter a valid currency',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_currency_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[\n SkyCellType.CurrencyValidator\n ].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n }\n\n columnTypes[SkyCellType.NumberValidator] = {\n ...columnTypes[SkyCellType.Validator],\n ...columnTypes[SkyCellType.Number],\n cellClassRules: {\n ...columnTypes[SkyCellType.Validator].cellClassRules,\n ...columnTypes[SkyCellType.Number].cellClassRules,\n },\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: string): boolean => {\n return !!value && !isNaN(parseFloat(value));\n },\n validatorMessage: 'Please enter a valid number',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_number_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[\n SkyCellType.NumberValidator\n ].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n this.#resources\n .getString('sky_ag_grid_row_selector_column_heading')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.RowSelector].headerName = value;\n });\n }\n\n return defaultSkyGridOptions;\n }\n\n #onCellFocused(): void {\n const currentElement = this.#agGridAdapterService.getFocusedElement();\n\n this.#agGridAdapterService.focusOnFocusableChildren(currentElement);\n }\n\n #getDefaultEditableGridOptions(args: SkyGetGridOptionsArgs): GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n defaultGridOptions.rowSelection = undefined;\n return defaultGridOptions;\n }\n\n #getIconTemplate(iconName: keyof IconMapType): () => string {\n return () => {\n const icon = iconMap[iconName];\n if (this.#currentTheme?.theme.name === 'modern' && icon.skyIcon) {\n return `<i aria-hidden=\"true\" class=\"sky-i-${icon.skyIcon}\"></i>`;\n } else {\n return `<i aria-hidden=\"true\" class=\"fa fa-${icon.faIcon}\"></i>`;\n }\n };\n }\n\n #suppressTab(params: SuppressKeyboardEventParams): boolean {\n if (params.event.code === 'Tab') {\n if (params.editing) {\n const currentlyFocusedEl =\n this.#agGridAdapterService.getFocusedElement();\n // inline cell editors have the 'ag-cell' class, while popup editors have the 'ag-popup-editor' class\n const cellEl = this.#agGridAdapterService.getElementOrParentWithClass(\n currentlyFocusedEl,\n 'ag-cell',\n );\n const popupEl = this.#agGridAdapterService.getElementOrParentWithClass(\n currentlyFocusedEl,\n 'ag-popup-editor',\n );\n const parentEl = cellEl || popupEl;\n\n const nextFocusableElementInCell =\n this.#agGridAdapterService.getNextFocusableElement(\n currentlyFocusedEl,\n parentEl,\n params.event.shiftKey,\n );\n return !!nextFocusableElementInCell;\n }\n return true;\n }\n return false;\n }\n\n #suppressEnter(params: SuppressKeyboardEventParams): boolean {\n if (params.event.code === 'Enter') {\n return params.editing;\n }\n return false;\n }\n}\n","// Export any types that should be included in the root.\nexport { SkyAgGridModule } from './lib/modules/ag-grid/ag-grid.module';\nexport { SkyAgGridService } from './lib/modules/ag-grid/ag-grid.service';\nexport { SkyAgGridRowDeleteCancelArgs } from './lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args';\nexport { SkyAgGridRowDeleteConfirmArgs } from './lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args';\nexport {\n SkyAgGridAutocompleteProperties,\n SkyAutocompleteProperties,\n} from './lib/modules/ag-grid/types/autocomplete-properties';\nexport { SkyCellClass } from './lib/modules/ag-grid/types/cell-class';\nexport { SkyAgGridCellEditorInitialAction } from './lib/modules/ag-grid/types/cell-editor-initial-action';\nexport { SkyAgGridCellEditorUtils } from './lib/modules/ag-grid/types/cell-editor-utils';\nexport { SkyCellType } from './lib/modules/ag-grid/types/cell-type';\nexport { SkyAgGridCurrencyProperties } from './lib/modules/ag-grid/types/currency-properties';\nexport {\n SkyAgGridDatepickerProperties,\n SkyDatepickerProperties,\n} from './lib/modules/ag-grid/types/datepicker-properties';\nexport { SkyHeaderClass } from './lib/modules/ag-grid/types/header-class';\nexport { SkyAgGridHeaderGroupInfo } from './lib/modules/ag-grid/types/header-group-info';\nexport { SkyAgGridHeaderGroupParams } from './lib/modules/ag-grid/types/header-group-params';\nexport { SkyAgGridHeaderInfo } from './lib/modules/ag-grid/types/header-info';\nexport { SkyAgGridHeaderParams } from './lib/modules/ag-grid/types/header-params';\nexport { SkyAgGridLookupProperties } from './lib/modules/ag-grid/types/lookup-properties';\nexport { SkyAgGridNumberProperties } from './lib/modules/ag-grid/types/number-properties';\nexport { SkyGetGridOptionsArgs } from './lib/modules/ag-grid/types/sky-grid-options';\nexport { SkyAgGridTextProperties } from './lib/modules/ag-grid/types/text-properties';\nexport { SkyAgGridValidatorProperties } from './lib/modules/ag-grid/types/validator-properties';\n\n// Components and directives must be exported to support Angular's \"partial\" Ivy compiler.\n// Obscure names are used to indicate types are not part of the public API.\nexport { SkyAgGridDataManagerAdapterDirective as λ14 } from './lib/modules/ag-grid/ag-grid-data-manager-adapter.directive';\nexport { SkyAgGridRowDeleteComponent as λ6 } from './lib/modules/ag-grid/ag-grid-row-delete.component';\nexport { SkyAgGridRowDeleteDirective as λ13 } from './lib/modules/ag-grid/ag-grid-row-delete.directive';\nexport { SkyAgGridWrapperComponent as λ12 } from './lib/modules/ag-grid/ag-grid-wrapper.component';\nexport { SkyAgGridCellEditorAutocompleteComponent as λ1 } from './lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nexport { SkyAgGridCellEditorCurrencyComponent as λ3 } from './lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component';\nexport { SkyAgGridCellEditorDatepickerComponent as λ5 } from './lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nexport { SkyAgGridCellEditorLookupComponent as λ15 } from './lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nexport { SkyAgGridCellEditorNumberComponent as λ4 } from './lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component';\nexport { SkyAgGridCellEditorTextComponent as λ2 } from './lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component';\nexport { SkyAgGridCellRendererCurrencyValidatorComponent as λ8 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nexport { SkyAgGridCellRendererCurrencyComponent as λ9 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nexport { SkyAgGridCellRendererLookupComponent as λ16 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nexport { SkyAgGridCellRendererRowSelectorComponent as λ7 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nexport { SkyAgGridCellRendererValidatorTooltipComponent as λ10 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nexport { SkyAgGridCellValidatorTooltipComponent as λ11 } from './lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component';\nexport { SkyAgGridHeaderGroupComponent as λ18 } from './lib/modules/ag-grid/header/header-group.component';\nexport { SkyAgGridHeaderComponent as λ17 } from './lib/modules/ag-grid/header/header.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","takeUntil","i3","i4","i1.SkyAgGridCellValidatorTooltipComponent","i2.SkyAgGridCellRendererCurrencyComponent","i1.SkyAgGridAdapterService"],"mappings":"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"}