@skyux/ag-grid 12.23.0 → 13.0.0-alpha.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.
Files changed (63) hide show
  1. package/fesm2022/skyux-ag-grid.mjs +85 -85
  2. package/fesm2022/skyux-ag-grid.mjs.map +1 -1
  3. package/index.d.ts +937 -42
  4. package/package.json +16 -16
  5. package/lib/modules/ag-grid/ag-grid-adapter.service.d.ts +0 -16
  6. package/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +0 -19
  7. package/lib/modules/ag-grid/ag-grid-row-delete-context.d.ts +0 -20
  8. package/lib/modules/ag-grid/ag-grid-row-delete.component.d.ts +0 -23
  9. package/lib/modules/ag-grid/ag-grid-row-delete.directive.d.ts +0 -27
  10. package/lib/modules/ag-grid/ag-grid-wrapper.component.d.ts +0 -39
  11. package/lib/modules/ag-grid/ag-grid.module.d.ts +0 -12
  12. package/lib/modules/ag-grid/ag-grid.service.d.ts +0 -29
  13. package/lib/modules/ag-grid/apply-lookup-properties-defaults.d.ts +0 -5
  14. package/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.d.ts +0 -24
  15. package/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.d.ts +0 -43
  16. package/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.d.ts +0 -42
  17. package/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +0 -29
  18. package/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.d.ts +0 -35
  19. package/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.d.ts +0 -33
  20. package/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.d.ts +0 -22
  21. package/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.d.ts +0 -27
  22. package/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.d.ts +0 -17
  23. package/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.d.ts +0 -32
  24. package/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template-context.type.d.ts +0 -4
  25. package/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template.component.d.ts +0 -22
  26. package/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.d.ts +0 -20
  27. package/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.d.ts +0 -21
  28. package/lib/modules/ag-grid/header/header-group.component.d.ts +0 -22
  29. package/lib/modules/ag-grid/header/header-row-selector/header-row-selector.component.d.ts +0 -17
  30. package/lib/modules/ag-grid/header/header.component.d.ts +0 -27
  31. package/lib/modules/ag-grid/icons/icon-map.d.ts +0 -5
  32. package/lib/modules/ag-grid/loading/loading.component.d.ts +0 -9
  33. package/lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args.d.ts +0 -9
  34. package/lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args.d.ts +0 -9
  35. package/lib/modules/ag-grid/types/autocomplete-properties.d.ts +0 -21
  36. package/lib/modules/ag-grid/types/cell-class.d.ts +0 -18
  37. package/lib/modules/ag-grid/types/cell-editor-autocomplete-params.d.ts +0 -5
  38. package/lib/modules/ag-grid/types/cell-editor-currency-params.d.ts +0 -8
  39. package/lib/modules/ag-grid/types/cell-editor-datepicker-params.d.ts +0 -5
  40. package/lib/modules/ag-grid/types/cell-editor-initial-action.d.ts +0 -11
  41. package/lib/modules/ag-grid/types/cell-editor-lookup-params.d.ts +0 -5
  42. package/lib/modules/ag-grid/types/cell-editor-number-params.d.ts +0 -8
  43. package/lib/modules/ag-grid/types/cell-editor-text-params.d.ts +0 -8
  44. package/lib/modules/ag-grid/types/cell-editor-utils.d.ts +0 -10
  45. package/lib/modules/ag-grid/types/cell-renderer-currency-params.d.ts +0 -9
  46. package/lib/modules/ag-grid/types/cell-renderer-lookup-params.d.ts +0 -8
  47. package/lib/modules/ag-grid/types/cell-renderer-validator-params.d.ts +0 -8
  48. package/lib/modules/ag-grid/types/cell-type.d.ts +0 -102
  49. package/lib/modules/ag-grid/types/currency-properties.d.ts +0 -5
  50. package/lib/modules/ag-grid/types/datepicker-properties.d.ts +0 -13
  51. package/lib/modules/ag-grid/types/header-class.d.ts +0 -7
  52. package/lib/modules/ag-grid/types/header-group-info.d.ts +0 -27
  53. package/lib/modules/ag-grid/types/header-group-params.d.ts +0 -14
  54. package/lib/modules/ag-grid/types/header-info.d.ts +0 -27
  55. package/lib/modules/ag-grid/types/header-params.d.ts +0 -20
  56. package/lib/modules/ag-grid/types/last-focused.cell.d.ts +0 -4
  57. package/lib/modules/ag-grid/types/lookup-properties.d.ts +0 -27
  58. package/lib/modules/ag-grid/types/number-properties.d.ts +0 -4
  59. package/lib/modules/ag-grid/types/sky-grid-options.d.ts +0 -16
  60. package/lib/modules/ag-grid/types/text-properties.d.ts +0 -3
  61. package/lib/modules/ag-grid/types/validator-properties.d.ts +0 -18
  62. package/lib/modules/shared/sky-ag-grid-resources.module.d.ts +0 -10
  63. package/lib/styles/ag-grid-theme.d.ts +0 -7
@@ -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-context.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.component.html","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.directive.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.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/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-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-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-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-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-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-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-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-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-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-template/cell-renderer-template.component.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/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/header/header-row-selector/header-row-selector.component.ts","../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/header/header-row-selector/header-row-selector.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/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\nimport {\n Theme,\n ThemeDefaultParams,\n colorSchemeLight,\n themeQuartz,\n} from 'ag-grid-community';\n\nconst defaultsForAllThemes: Partial<ThemeDefaultParams> = {\n backgroundColor:\n 'var(--sky-override-ag-grid-background-color, var(--sky-background-color-page-default))',\n borderColor:\n 'var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n borderRadius:\n 'var(--sky-override-ag-grid-border-radius, var(--sky-border-radius-s))',\n cardShadow: 'none',\n cellHorizontalPadding:\n 'var(--sky-override-ag-grid-cell-horizontal-padding, var(--sky-space-inset-letterbox-2_3-left-m))',\n cellEditingBorder:\n 'var(--sky-override-ag-grid-cell-focus-border-width, var(--sky-border-width-input-focus)) solid var(--sky-override-ag-grid-cell-focus-border-color, var(--sky-color-border-input-focus))',\n checkboxCheckedBackgroundColor:\n 'var(--sky-override-ag-grid-checkbox-selected-background-color, var(--sky-color-background-selected-heavy))',\n checkboxCheckedBorderColor: { ref: 'checkboxCheckedShapeColor' },\n checkboxCheckedShapeColor:\n 'var(--sky-override-switch-checked-color, var(--sky-color-icon-inverse, var(--sky-text-color-default)))',\n checkboxIndeterminateBackgroundColor:\n 'var(--sky-override-switch-checked-color, var(--sky-color-icon-inverse, transparent))',\n checkboxUncheckedBackgroundColor: 'transparent',\n checkboxUncheckedBorderColor: `var(\n --sky-override-ag-grid-checkbox-unchecked-border-color,\n var(--sky-color-border-input-base)\n )`,\n checkboxCheckedShapeImage: {\n svg: `<svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.9884 3.54756C13.6244 3.16685 13.0164 3.1491 12.6302 3.50792L5.62682 10.0157L3.64517 8.03282C3.27275 7.66016 2.66443 7.65572 2.28646 8.0229C1.90848 8.39007 1.90397 8.98983 2.2764 9.36248L4.85162 11.9393C5.25487 12.3428 5.91121 12.3548 6.32932 11.9663L13.9482 4.88659C14.3343 4.52777 14.3523 3.92827 13.9884 3.54756Z\" fill=\"#212121\"/></svg>`,\n },\n fontFamily:\n 'var(--sky-override-ag-grid-font-family, var(--sky-font-family-primary))',\n fontSize:\n 'var(--sky-override-ag-grid-font-size, var(--sky-font-size-body-m))',\n foregroundColor:\n 'var(--sky-override-ag-grid-foreground-color, var(--sky-color-text-default))',\n headerBackgroundColor: 'var(--sky-background-color-page-default)',\n headerColumnBorder:\n 'var(--sky-override-ag-grid-border-width, var(--sky-border-width-divider)) var(--sky-override-ag-grid-border-style, var(--sky-border-style-divider)) var(--sky-override-ag-grid-border-color, transparent)',\n headerColumnBorderHeight: '100%',\n headerColumnResizeHandleColor:\n 'var(--sky-override-ag-grid-column-divider-color, var(--sky-color-border-column_divider))',\n headerColumnResizeHandleHeight:\n 'var(--sky-override-ag-grid-header-resize-height, calc(var(--sky-font-line_height-body-m) * var(--sky-font-size-body-m)))',\n headerColumnResizeHandleWidth:\n 'var(--sky-override-ag-grid-header-divider-width, var(--sky-border-width-divider))',\n headerFontFamily: { ref: 'fontFamily' },\n headerHeight:\n 'var(--sky-override-ag-grid-header-height, calc(calc(var(--sky-font-line_height-body-m) * var(--sky-font-size-body-m)) + calc(var(--sky-space-inset-letterbox-2_3-top-m) + var(--sky-space-inset-letterbox-2_3-bottom-m))))',\n headerRowBorder:\n 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-separator-row)) var(--sky-override-ag-grid-header-row-border-style, var(--sky-border-style-separator-row)) var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n iconSize: 12,\n inputDisabledBackgroundColor: 'transparent',\n inputFocusBorder: 'transparent',\n inputFocusShadow: 'none',\n invalidColor:\n 'var(--sky-override-ag-grid-invalid-color, var(--sky-color-background-action-danger-base))',\n listItemHeight: { ref: 'rowHeight' },\n oddRowBackgroundColor: 'var(--sky-background-color-page-default)',\n pickerListBackgroundColor: { ref: 'backgroundColor' },\n popupShadow:\n 'var(--sky-override-ag-grid-popup-shadow, var(--sky-elevation-overlay-300))',\n rangeSelectionBorderColor:\n 'var(--sky-override-ag-grid-range-selection-border-color, var(--sky-color-border-input-focus))',\n rowBorder:\n 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-separator-row)) var(--sky-override-ag-grid-row-border-style, var(--sky-border-style-separator-row)) var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n rowHeight:\n 'var(--sky-override-ag-grid-row-height, calc(calc(var(--sky-font-line_height-body-m) * var(--sky-font-size-body-m)) + calc(var(--sky-space-inset-letterbox-2_3-top-m) + var(--sky-space-inset-letterbox-2_3-bottom-m))))',\n rowHoverColor: 'transparent',\n selectedRowBackgroundColor:\n 'var(--sky-override-ag-grid-row-selected-color, var(--sky-color-background-selected-soft))',\n // TODO: investigate removing this in 13. Does not appear to be impacting anything, but it could be used by features we have not tested so major version removal is safest.\n spacing: 4,\n textColor:\n 'var(--sky-override-ag-grid-text-color, var(--sky-color-text-default))',\n tooltipBackgroundColor:\n 'var(--sky-override-ag-grid-tooltip-background-color, var(--sky-color-background-container-base))',\n wrapperBorderRadius: 0,\n};\n\nconst defaultsForDataEntryGrid = {\n columnBorder:\n 'var(--sky-override-ag-grid-column-border, var(--sky-border-width-separator-row) solid var(--sky-color-border-separator-row))',\n popupShadow: 'none',\n rowBorder:\n 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-separator-row)) solid var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n headerRowBorder:\n 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-emphasized)) solid var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n};\n\nconst SkyAgGridDataGrid = themeQuartz\n .withoutPart('iconSet')\n .withPart(colorSchemeLight)\n .withParams(defaultsForAllThemes);\n\nconst SkyAgGridDataEntryGrid = SkyAgGridDataGrid.withParams(\n defaultsForDataEntryGrid,\n);\n\nexport function getSkyAgGridTheme(\n grid: 'data-entry-grid' | 'data-grid',\n): Theme {\n if (grid === 'data-grid') {\n return SkyAgGridDataGrid;\n } else {\n return SkyAgGridDataEntryGrid;\n }\n}\n\ntype SkyAgGridThemeType =\n `ag-theme-sky-${'data-entry-grid' | 'data-grid'}-${'default' | 'modern-light' | 'modern-light-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 getSkyAgGridThemeClassName(\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 [focusChild] = this.#skyAdapterService.getFocusableChildren(element);\n\n if (focusChild?.offsetParent) {\n focusChild.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 * 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 *\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 *\n * **Read-only mode**\n *\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 *\n * Cells in the column will be edited as a currency amount.\n *\n * **Read-only mode**\n *\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 *\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 *\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 *\n * **Read-only mode**\n *\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 *\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 *\n * **Read-only mode**\n *\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 *\n * Cells in the column will be edited as HTML number `inputs`. Only numbers can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will render as the number value.\n */\n Number = 'skyCellNumber',\n /**\n * **Edit and read-only modes**\n *\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 *\n * The header and cells in the column will render right aligned.\n */\n RightAligned = 'skyCellRightAligned',\n /**\n * **Edit and read-only modes**\n *\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 *\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 *\n * Cells in the column will be edited as HTML text `inputs`. Any characters can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will render as their string value.\n */\n Text = 'skyCellText',\n /**\n * **Edit and read-only modes**\n *\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 a `SkyAgGridValidatorProperties` object as `skyComponentProperties` to [column definition's `cellRendererParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing), like `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 { AsyncPipe, DOCUMENT, NgClass } 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 effect,\n inject,\n input,\n numberAttribute,\n viewChild,\n} from '@angular/core';\nimport { SkyIdModule, SkyMutationObserverService } from '@skyux/core';\nimport { SkyViewkeeperModule } 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 HeaderFocusedEvent,\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 {\n getSkyAgGridTheme,\n getSkyAgGridThemeClassName,\n} 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 imports: [AsyncPipe, NgClass, SkyIdModule, SkyViewkeeperModule],\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 (this.agGrid.api.getGridOption('masterDetail')) {\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid) => {\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 skyAgGridDiv =\n viewChild<ElementRef<HTMLElement>>('skyAgGridDiv');\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 effect(() => {\n const minHeight = this.minHeight();\n const skyAgGridDiv = this.skyAgGridDiv()?.nativeElement;\n skyAgGridDiv?.style.setProperty(\n '--sky-ag-grid-min-height',\n `${minHeight}px`,\n );\n });\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 skyAgGridTheme = getSkyAgGridTheme(\n hasEditableClass ? 'data-entry-grid' : 'data-grid',\n );\n this.agGrid?.api.setGridOption('theme', skyAgGridTheme);\n const skyAgGridThemeClassName = getSkyAgGridThemeClassName(\n hasEditableClass,\n themeSettings,\n isCompact,\n );\n const previousValue = this.#wrapperClasses.getValue();\n let value = [\n ...previousValue.filter((c) => !c.startsWith('ag-theme-')),\n skyAgGridThemeClassName,\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 #skyAgGridDiv\n class=\"sky-ag-grid\"\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\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 (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({ selector: '[skyAgGridDataManagerAdapter]' })\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 = (): void =>\n agGrid.api.selectAll();\n this.#viewConfig.onClearAllClick = (): void =>\n 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 {\n ElementRef,\n InjectionToken,\n Signal,\n WritableSignal,\n} from '@angular/core';\n\nimport { GridApi } from 'ag-grid-community';\nimport { Subject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\nexport const SKY_AG_GRID_ROW_DELETE_CONTEXT =\n new InjectionToken<SkyAgGridRowDeleteContext>('SkyAgGridRowDeleteContext');\n\n/**\n * Used to provide dependencies to the `SkyAgGridRowDeleteComponent` overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteContext {\n public readonly cancelRowDelete = new Subject<string>();\n public readonly confirmRowDelete = new Subject<string>();\n public readonly subscription = new Subscription();\n\n constructor(\n public readonly rows: Signal<string[]>,\n public readonly gridElement: Signal<ElementRef<HTMLElement>[] | undefined>,\n public readonly gridApi: WritableSignal<GridApi | undefined>,\n ) {\n this.subscription.add(() => {\n this.cancelRowDelete.complete();\n this.confirmRowDelete.complete();\n });\n }\n}\n","import { Component, ElementRef, computed, inject, signal } from '@angular/core';\nimport {\n takeUntilDestroyed,\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport { SkyAffixModule, SkyResizeObserverService } from '@skyux/core';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\n\nimport { GridApi } from 'ag-grid-community';\nimport {\n filter,\n fromEvent,\n map,\n merge,\n of,\n scan,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { SKY_AG_GRID_ROW_DELETE_CONTEXT } from './ag-grid-row-delete-context';\n\n/**\n * Component for rendering the inline delete template in the overlay.\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-row-delete',\n templateUrl: './ag-grid-row-delete.component.html',\n styleUrl: './ag-grid-row-delete.component.css',\n imports: [SkyInlineDeleteModule, SkyAffixModule],\n host: {\n '[style]': '\"--table-width: \" + tableWidthStyle()',\n },\n})\nexport class SkyAgGridRowDeleteComponent {\n public readonly service = inject(SKY_AG_GRID_ROW_DELETE_CONTEXT);\n\n protected tableWidthStyle = computed(() => {\n const tableWidth = this.tableWidth();\n if (tableWidth > 0) {\n return `${tableWidth}px`;\n }\n return 'auto';\n });\n\n protected rowsWithElements = computed(\n (): { rowId: string; increment: string; element: HTMLElement | null }[] => {\n const rows = this.service.rows();\n const gridElement = this.service.gridElement();\n const gridApi = this.service.gridApi();\n const increment = this.gridChanges();\n if (!gridElement || !gridApi) {\n return [];\n }\n return rows\n .filter((rowId) => !!rowId && !!gridApi.getRowNode(rowId))\n .map((rowId) => {\n const element = gridElement[0]?.nativeElement\n .querySelector<HTMLElement>(`\n [row-id=\"${rowId}\"] div[aria-colindex],\n .ag-row.sky-ag-grid-row-${rowId} div[aria-colindex]\n `);\n return { rowId, element, increment: `${rowId}-${increment}` };\n });\n },\n );\n\n protected readonly pending = signal<string[]>([]);\n protected readonly tableWidth = signal<number>(0);\n\n // Force redrawing overlays when the grid changes by incrementing a number.\n protected readonly gridChanges = toSignal(\n toObservable(this.service.gridApi).pipe(\n switchMap((gridApi) =>\n gridApi\n ? merge(\n fromEvent(gridApi, 'componentStateChanged'),\n fromEvent(gridApi, 'firstDataRendered'),\n fromEvent(gridApi, 'gridSizeChanged'),\n fromEvent(gridApi, 'modelUpdated'),\n fromEvent(gridApi, 'rowDataUpdated'),\n ).pipe(takeUntil(fromEvent(gridApi, 'gridPreDestroyed')))\n : of(undefined),\n ),\n startWith(1),\n map(() => 1),\n scan((acc, val) => acc + val),\n ),\n { initialValue: 0 },\n );\n\n readonly #resizeObserverSvc = inject(SkyResizeObserverService);\n\n constructor() {\n // Maintain table width when the grid is resized.\n toObservable(this.service.gridElement)\n .pipe(\n filter(\n (el): el is ElementRef<HTMLElement>[] => Array.isArray(el) && !!el[0],\n ),\n switchMap((gridElement) =>\n this.#resizeObserverSvc\n .observe(gridElement[0])\n .pipe(map(() => gridElement[0].nativeElement.offsetWidth)),\n ),\n takeUntilDestroyed(),\n )\n .subscribe((tableWidth) => {\n this.tableWidth.set(tableWidth);\n });\n\n // Clean up pending rows when the grid data is updated.\n toObservable(this.service.gridApi)\n .pipe(\n filter((gridApi): gridApi is GridApi => !!gridApi),\n switchMap((gridApi) =>\n fromEvent(gridApi, 'rowDataUpdated').pipe(\n takeUntil(fromEvent(gridApi, 'gridPreDestroyed')),\n map(() => gridApi),\n ),\n ),\n takeUntilDestroyed(),\n )\n .subscribe((gridApi) => {\n this.pending.update((pending) =>\n pending.filter((rowId) => !!gridApi.getRowNode(rowId)),\n );\n });\n }\n\n protected cancelDelete(rowId: string): void {\n this.service.cancelRowDelete.next(rowId);\n }\n\n protected confirmDelete(rowId: string): void {\n this.pending.update((pending) => pending.concat(rowId));\n this.service.confirmRowDelete.next(rowId);\n }\n}\n","@for (row of rowsWithElements(); track row.increment) {\n @if (row.element?.offsetParent && row.element; as element) {\n <div\n class=\"sky-ag-grid-row-delete\"\n affixPlacement=\"above\"\n affixVerticalAlignment=\"top\"\n affixHorizontalAlignment=\"left\"\n [id]=\"'row-delete-ref-' + row.rowId\"\n [style.height]=\"element.offsetHeight + 'px'\"\n [skyAffixTo]=\"element\"\n [affixIsSticky]=\"true\"\n >\n <sky-inline-delete\n [pending]=\"pending().includes(row.rowId ?? '')\"\n (cancelTriggered)=\"cancelDelete(row.rowId)\"\n (deleteTriggered)=\"confirmDelete(row.rowId)\"\n />\n </div>\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Directive,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n contentChild,\n inject,\n linkedSignal,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport {\n SKY_STACKING_CONTEXT,\n SkyOverlayService,\n SkyScrollableHostService,\n} from '@skyux/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { GridApi, GridOptions } from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Subject,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs';\n\nimport {\n SKY_AG_GRID_ROW_DELETE_CONTEXT,\n SkyAgGridRowDeleteContext,\n} from './ag-grid-row-delete-context';\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport { SkyAgGridRowDeleteCancelArgs } from './types/ag-grid-row-delete-cancel-args';\nimport { SkyAgGridRowDeleteConfirmArgs } from './types/ag-grid-row-delete-confirm-args';\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 public readonly rowDeleteIds = model<string[]>([]);\n\n /**\n * Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.\n */\n public rowDeleteCancel = output<SkyAgGridRowDeleteCancelArgs>();\n\n /**\n * Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.\n */\n public rowDeleteConfirm = output<SkyAgGridRowDeleteConfirmArgs>();\n\n protected readonly agGrid = contentChild(AgGridAngular);\n\n readonly #agGridBodyViewport = new BehaviorSubject<\n ElementRef<HTMLDivElement>[]\n >([]);\n readonly #agGridBodyClipElements = new BehaviorSubject<\n ElementRef<HTMLDivElement>[]\n >([]);\n readonly #ngUnsubscribe = new Subject<void>();\n readonly #rowDeleteIdsInternal = linkedSignal<unknown[], string[]>({\n source: this.rowDeleteIds,\n computation: (value) =>\n [...new Set(value)]\n .filter(Boolean)\n .map(String)\n .sort((a, b) => a.localeCompare(b)),\n equal: (a, b) => a.length === b.length && a.every((v, i) => v === b[i]),\n });\n readonly #clipPath = new BehaviorSubject<string | undefined>(undefined);\n readonly #zIndex = new BehaviorSubject(998);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #overlayService = inject(SkyOverlayService);\n readonly #rowDeleteSvc: SkyAgGridRowDeleteContext;\n readonly #scrollableHostService = inject(SkyScrollableHostService);\n readonly #stackingContext = inject(SKY_STACKING_CONTEXT, { optional: true });\n\n constructor() {\n if (this.#stackingContext) {\n this.#stackingContext.zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n this.#zIndex.next(zIndex);\n });\n }\n\n this.#rowDeleteSvc = new SkyAgGridRowDeleteContext(\n this.#rowDeleteIdsInternal.asReadonly(),\n toSignal(this.#agGridBodyViewport),\n signal<GridApi | undefined>(undefined),\n );\n\n this.#rowDeleteSvc.cancelRowDelete\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((rowId) => {\n if (rowId) {\n this.rowDeleteIds.update((rowIds) =>\n rowIds.filter((id) => id !== rowId),\n );\n this.rowDeleteCancel.emit({ id: rowId });\n }\n });\n\n this.#rowDeleteSvc.confirmRowDelete\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((rowId) => {\n if (rowId) {\n this.rowDeleteConfirm.emit({ id: rowId });\n }\n });\n\n const agGrid = toObservable(this.agGrid);\n const agGridReady = agGrid.pipe(\n filter((agGrid) => !!agGrid),\n switchMap((agGrid: AgGridAngular) => agGrid.gridReady),\n take(1),\n takeUntil(this.#ngUnsubscribe),\n );\n agGridReady.subscribe((ready) => {\n this.#agGridBodyViewport.next([\n new ElementRef(\n this.#elementRef.nativeElement.querySelector(\n 'div.ag-root-wrapper',\n ) as HTMLDivElement,\n ),\n ]);\n this.#rowDeleteSvc.gridApi.set(ready.api);\n });\n agGrid\n .pipe(\n filter((grid) => !!grid),\n switchMap((grid) =>\n merge(\n grid.firstDataRendered.asObservable(),\n grid.rowDataUpdated.asObservable(),\n agGridReady.pipe(\n switchMap(() => fromEvent(grid.api, 'gridOptionsChanged')),\n ),\n ).pipe(\n takeUntil(this.#ngUnsubscribe),\n takeUntil(\n agGridReady.pipe(\n switchMap(() =>\n fromEvent(grid.api, 'gridPreDestroyed').pipe(take(1)),\n ),\n ),\n ),\n startWith(grid.api?.getGridOption('domLayout')),\n map(() => grid.api?.getGridOption('domLayout')),\n switchMap((domLayout: GridOptions['domLayout']) => {\n if (domLayout === 'normal') {\n return this.#agGridBodyViewport.asObservable();\n }\n return of([]);\n }),\n ),\n ),\n )\n .subscribe((agGridBodyClipElements) => {\n // When using AG Grid's `domLayout: 'autoHeight'` option,\n // the grid's body viewport is clipped by the scrollable host.\n // But when using `domLayout: 'normal'`, the grid's body viewport\n // should be used as the scrollable host for the row delete overlay.\n this.#agGridBodyClipElements.next(agGridBodyClipElements);\n });\n\n agGrid\n .pipe(\n filter((agGrid) => !!agGrid),\n switchMap((agGrid: AgGridAngular) => agGrid.rowDataUpdated),\n takeUntil(this.#ngUnsubscribe),\n )\n .subscribe((evt) => {\n this.rowDeleteIds.update((rowIds) =>\n (rowIds ?? []).filter((id) => !!evt.api.getRowNode(id)),\n );\n });\n }\n\n public ngAfterContentInit(): void {\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 overlay.attachComponent(SkyAgGridRowDeleteComponent, [\n {\n provide: SKY_AG_GRID_ROW_DELETE_CONTEXT,\n useValue: this.#rowDeleteSvc,\n },\n ]);\n this.#zIndex\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n takeUntil(overlay.closed),\n distinctUntilChanged(),\n )\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n this.#clipPath\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n takeUntil(overlay.closed),\n distinctUntilChanged(),\n )\n .subscribe((clipPath) => {\n overlay.componentRef.instance.updateClipPath(clipPath);\n });\n }\n\n public ngAfterViewInit(): void {\n this.#scrollableHostService\n .watchScrollableHostClipPathChanges(\n this.#elementRef,\n this.#agGridBodyClipElements.asObservable(),\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((clipPath) => {\n this.#clipPath.next(clipPath);\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#rowDeleteSvc.subscription.unsubscribe();\n this.#overlayService.closeAll();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AgGridAngular } 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 { SkyAgGridRowDeleteDirective } from './ag-grid-row-delete.directive';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\n\n@NgModule({\n imports: [\n AgGridAngular,\n CommonModule,\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n exports: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n})\nexport class SkyAgGridModule {}\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","/** 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 {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAutocompleteModule } from '@skyux/lookup';\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 imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyAutocompleteModule,\n SkyI18nModule,\n ],\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 [allowAnyValue]=\"skyComponentProperties.allowAnyValue\"\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [highlightSearchText]=\"skyComponentProperties.highlightSearchText ?? true\"\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 {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyAutonumericModule } from '@skyux/autonumeric';\nimport { SkyI18nModule } from '@skyux/i18n';\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 imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyAutonumericModule,\n SkyI18nModule,\n ],\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 currency = new UntypedFormControl();\n public editorForm = new UntypedFormGroup({\n currency: this.currency,\n });\n public params: SkyCellEditorCurrencyParams | 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.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 [skyAutonumeric]=\"skyComponentProperties\"\n [skyAutonumericFormChangesUnformatted]=\"params?.eventKey?.length === 1\"\n (keyup.enter)=\"onPressEnter()\"\n (keyup.escape)=\"onPressEscape()\"\n />\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\nimport { SkyI18nModule } from '@skyux/i18n';\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 imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyDatepickerModule,\n SkyI18nModule,\n ],\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\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 {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n} from '@angular/core';\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyLookupModule } from '@skyux/lookup';\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 imports: [\n SkyInputBoxModule,\n FormsModule,\n ReactiveFormsModule,\n SkyLookupModule,\n SkyIdModule,\n ],\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 #selectionModalOpen = 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.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 } else if (\n this.#triggerType === SkyAgGridCellEditorInitialAction.Untouched\n ) {\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(\n lookupInput.value.length,\n lookupInput.value.length,\n );\n }\n });\n }\n\n public onLookupOpenChange(isOpen: boolean): void {\n this.#lookupOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n\n public onSelectionModalOpenChange(isOpen: boolean): void {\n this.#selectionModalOpen = 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.#selectionModalOpen &&\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 (selectionModalOpenChange)=\"onSelectionModalOpenChange($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 (selectionModalOpenChange)=\"onSelectionModalOpenChange($event)\"\n />\n </sky-input-box>\n}\n<div #screenReaderLabel=\"skyId\" class=\"sky-screen-reader-only\" skyId>\n {{ labelText }}\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n} from '@angular/core';\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\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 imports: [FormsModule, ReactiveFormsModule, SkyI18nModule],\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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n} from '@angular/core';\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\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 imports: [FormsModule, ReactiveFormsModule, SkyI18nModule],\n})\nexport class SkyAgGridCellEditorTextComponent\n implements ICellEditorAngularComp\n{\n public textInputLabel: string | undefined;\n public columnHeader: string | undefined;\n public editorForm = new UntypedFormGroup({\n text: new UntypedFormControl(),\n });\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 }\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 [maxlength]=\"maxlength ?? null\"\n />\n</ng-container>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n inject,\n signal,\n} from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyPopoverMessage, SkyPopoverMessageType } from '@skyux/popovers';\nimport { SkyPopoverModule } 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 imports: [NgTemplateOutlet, SkyPopoverModule, SkyStatusIndicatorModule],\n})\nexport class SkyAgGridCellValidatorTooltipComponent implements OnDestroy {\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 value.api.addEventListener('cellFocused', this.#cellFocusHandler);\n value.api.addEventListener('cellEditingStarted', this.#blurHandler);\n value.eGridCell?.addEventListener('keyup', this.#keyupHandler);\n value.eGridCell?.addEventListener('mouseenter', this.#focusHandler);\n value.eGridCell?.addEventListener('mouseleave', this.#blurHandler);\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 this.#changeDetector.markForCheck();\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 readonly #changeDetector = inject(ChangeDetectorRef);\n #listenersAdded = false;\n\n readonly #keyupHandler = (event: KeyboardEvent): void => {\n if (\n ['ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp'].includes(event.key)\n ) {\n this.showPopover();\n }\n };\n readonly #focusHandler = (): void => this.showPopover();\n readonly #cellFocusHandler = (eventParams: CellFocusedEvent): void => {\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 this.cellRendererParams?.column?.getColId() &&\n eventParams.rowIndex === this.cellRendererParams?.node?.rowIndex\n ) {\n this.showPopover();\n } else {\n this.hidePopover();\n }\n };\n readonly #blurHandler = (): void => this.hidePopover();\n\n public ngOnDestroy(): void {\n const params = this.cellRendererParams;\n if (params?.api && (!params.api.isDestroyed || !params.api.isDestroyed())) {\n params.api.removeEventListener('cellFocused', this.#cellFocusHandler);\n params.api.removeEventListener('cellEditingStarted', this.#blurHandler);\n }\n if (params?.eGridCell) {\n params.eGridCell.removeEventListener('keyup', this.#keyupHandler);\n params.eGridCell.removeEventListener('mouseenter', this.#focusHandler);\n params.eGridCell.removeEventListener('mouseleave', this.#blurHandler);\n }\n }\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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkyNumericOptions } from '@skyux/core';\nimport { SkyNumericModule } 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 imports: [SkyNumericModule],\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 { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport { SkyCellRendererCurrencyParams } from '../../types/cell-renderer-currency-params';\n\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderer-currency.component';\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 imports: [\n SkyAgGridCellValidatorTooltipComponent,\n SkyAgGridCellRendererCurrencyComponent,\n ],\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 {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\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 imports: [SkyI18nModule],\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 { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\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 imports: [SkyCheckboxModule, AsyncPipe],\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 class=\"sky-ag-grid-row-selector\"\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 { 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 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","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n inject,\n} from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\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 imports: [SkyAgGridCellValidatorTooltipComponent, AsyncPipe],\n})\nexport class SkyAgGridCellRendererValidatorTooltipComponent\n implements ICellRendererAngularComp, OnDestroy\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 protected valueObservable = new BehaviorSubject('');\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n #valueSubscription: Subscription | undefined;\n\n public ngOnDestroy(): void {\n this.#valueSubscription?.unsubscribe();\n this.valueObservable.complete();\n }\n\n public agInit(params: SkyCellRendererValidatorParams): void {\n this.cellRendererParams = params;\n this.#valueSubscription?.unsubscribe();\n this.#valueSubscription = new Subscription();\n if (\n typeof params.skyComponentProperties?.valueResourceObservable ===\n 'function'\n ) {\n this.#valueSubscription.add(\n params.skyComponentProperties\n .valueResourceObservable(\n params.value,\n params.data,\n params.node?.rowIndex,\n )\n .subscribe((result) => {\n this.valueObservable.next(result);\n }),\n );\n } else {\n this.valueObservable.next(params.valueFormatted ?? params.value);\n }\n this.#changeDetector.markForCheck();\n }\n\n public refresh(params: SkyCellRendererValidatorParams): boolean {\n this.agInit(params);\n return false;\n }\n}\n","<sky-ag-grid-cell-validator-tooltip [params]=\"cellRendererParams\">\n {{ valueObservable | async }}\n</sky-ag-grid-cell-validator-tooltip>\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 { AsyncPipe } from '@angular/common';\nimport {\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';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { IHeaderGroupAngularComp } from 'ag-grid-angular';\nimport { ColumnGroupOpenedEvent, ProvidedColumnGroup } from 'ag-grid-community';\nimport {\n BehaviorSubject,\n Observable,\n Subscription,\n fromEvent,\n takeUntil,\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 imports: [SkyThemeModule, SkyIconModule, AsyncPipe, SkyI18nModule],\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 fromEvent<ColumnGroupOpenedEvent>(params.api, 'columnGroupOpened')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\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 iconName=\"chevron-double-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 iconName=\"chevron-double-right\" />\n </button>\n }\n}\n<span #inlineHelpContainer class=\"sky-control-help-container\"></span>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n model,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyCheckboxChange, SkyCheckboxModule } from '@skyux/forms';\n\nimport { IHeaderAngularComp } from 'ag-grid-angular';\nimport {\n GridApi,\n RowDataUpdatedEvent,\n SelectionChangedEvent,\n} from 'ag-grid-community';\nimport { IHeaderParams } from 'ag-grid-community/dist/types/src/interfaces/iHeader';\nimport { asyncScheduler, fromEvent, observeOn } from 'rxjs';\n\n@Component({\n selector: 'sky-ag-grid-row-selector-header',\n imports: [SkyCheckboxModule],\n templateUrl: './header-row-selector.component.html',\n styleUrl: './header-row-selector.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.title]': 'label()',\n '[attr.role]': '\"note\"',\n },\n})\nexport class SkyAgGridHeaderRowSelectorComponent implements IHeaderAngularComp {\n protected readonly checked = model(false);\n protected readonly indeterminate = signal(false);\n protected readonly multiSelect = signal(false);\n protected readonly params = signal<IHeaderParams | undefined>(undefined);\n protected readonly label = computed(() => {\n const params = this.params();\n return params?.displayName || params?.column.getColDef().field;\n });\n\n #api: GridApi<unknown> | undefined;\n readonly #destroyRef = inject(DestroyRef);\n\n public agInit(params: IHeaderParams): void {\n this.params.set(params);\n this.#api = params.api;\n\n // Row selection behavior can only be set when the grid is created.\n // It only changes if the grid is recreated.\n const rowSelection = params.api.getGridOption('rowSelection');\n this.multiSelect.set(\n rowSelection === 'multiple' ||\n (typeof rowSelection === 'object' && rowSelection?.mode === 'multiRow'),\n );\n\n if (this.multiSelect()) {\n fromEvent<SelectionChangedEvent>(params.api, 'selectionChanged')\n .pipe(takeUntilDestroyed(this.#destroyRef), observeOn(asyncScheduler))\n .subscribe((change): void => {\n if (change.source.match(/selectall/i)) {\n // Either select all or clear selection.\n this.indeterminate.set(false);\n this.checked.set(!!change.selectedNodes?.length);\n } else {\n this.indeterminate.set(!!change.selectedNodes?.length);\n this.checked.set(false);\n }\n });\n\n fromEvent<RowDataUpdatedEvent>(params.api, 'rowDataUpdated')\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((): void => {\n this.indeterminate.set(!!this.#api?.getSelectedNodes().length);\n this.checked.set(false);\n });\n }\n }\n\n public refresh(): boolean {\n return false;\n }\n\n protected toggleCheckbox($event: SkyCheckboxChange): void {\n if ($event.checked) {\n this.#api?.selectAll();\n } else {\n this.#api?.deselectAll();\n }\n }\n}\n","@if (multiSelect()) {\n <sky-checkbox\n labelHidden\n data-sky-id=\"header-row-selector\"\n [checked]=\"checked()\"\n [labelText]=\"label()\"\n [indeterminate]=\"indeterminate()\"\n (change)=\"toggleCheckbox($event)\"\n />\n}\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 { AsyncPipe } from '@angular/common';\nimport {\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';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { IHeaderAngularComp } from 'ag-grid-angular';\nimport { ColumnMovedEvent } from 'ag-grid-community';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil } 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 imports: [SkyIconModule, SkyThemeModule, AsyncPipe, SkyI18nModule],\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 fromEvent(params.column, 'filterChanged')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\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 fromEvent(params.column, 'sortChanged')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe(() => {\n this.#updateSort();\n }),\n );\n // Other column sort state changes, for multi-column sorting\n this.#subscriptions.add(\n fromEvent(params.api, 'sortChanged')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\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 fromEvent<ColumnMovedEvent>(params.api, 'columnMoved')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\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 iconName=\"more-actions\" />\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 iconName=\"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 iconName=\"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 iconName=\"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","export const iconMap: Record<\n string,\n {\n name: string;\n size: number;\n }\n> = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: {\n name: 'chevron-double-left',\n size: 16,\n },\n\n // header column group shown when contracted (click to expand)\n columnGroupClosed: {\n name: 'chevron-double-right',\n size: 16,\n },\n\n // column tool panel column group contracted (click to expand)\n columnSelectClosed: {\n name: 'chevron-right',\n size: 24,\n },\n\n // column tool panel column group expanded (click to contract)\n columnSelectOpen: {\n name: 'chevron-down',\n size: 24,\n },\n\n // column tool panel header expand/collapse all button, shown\n // when some children are expanded and others are collapsed\n columnSelectIndeterminate: {\n name: 'subtract',\n size: 16,\n },\n\n // accordion open (filter tool panel group, charts group)\n accordionOpen: {\n name: 'chevron-down',\n size: 24,\n },\n\n // accordion closed (filter tool panel group, charts group)\n accordionClosed: {\n name: 'chevron-right',\n size: 24,\n },\n\n // accordion indeterminate - shown when some children are expanded and\n // others are collapsed (filter tool panel group, charts group)\n accordionIndeterminate: {\n name: 'subtract',\n size: 16,\n },\n\n // shown on drag and drop image component icon while dragging\n // column to the side of the grid to pin\n columnMovePin: {\n name: 'arrow-move',\n size: 20,\n },\n\n // shown on drag and drop image component icon while dragging over\n // part of the page that is not a drop zone\n columnMoveHide: {\n name: 'eye-off',\n size: 16,\n },\n\n // shown on drag and drop image component icon while dragging\n // columns to reorder\n columnMoveMove: {\n name: 'arrow-move',\n size: 20,\n },\n\n // animating icon shown when dragging a column to the right of\n // the grid causes horizontal scrolling\n columnMoveLeft: {\n name: 'arrow-move',\n size: 20,\n },\n\n // animating icon shown when dragging a column to the left of\n // the grid causes horizontal scrolling\n columnMoveRight: {\n name: 'arrow-move',\n size: 20,\n },\n\n // shown on drag and drop image component icon while dragging\n // over Row Groups drop zone\n columnMoveGroup: {\n name: 'group',\n size: 20,\n },\n\n // shown on drag and drop image component icon while dragging\n // over Values drop zone\n columnMoveValue: {\n name: 'calculator',\n size: 16,\n },\n\n // shown on drag and drop image component icon while dragging\n // over pivot drop zone\n columnMovePivot: {\n name: 'table-freeze-column',\n size: 16,\n },\n\n // shown on drag and drop image component icon while dragging\n // over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: {\n name: 'prohibited',\n size: 16,\n },\n\n // shown on row group when contracted (click to expand)\n groupContracted: {\n name: 'chevron-right',\n size: 24,\n },\n\n // shown on row group when expanded (click to contract)\n groupExpanded: {\n name: 'chevron-down',\n size: 24,\n },\n\n // set filter tree list group contracted (click to expand)\n setFilterGroupClosed: {\n name: 'chevron-right',\n size: 24,\n },\n\n // set filter tree list group expanded (click to contract)\n setFilterGroupOpen: {\n name: 'chevron-down',\n size: 24,\n },\n\n // set filter tree list expand/collapse all button, shown when\n // some children are expanded and\n // others are collapsed\n setFilterGroupIndeterminate: {\n name: 'subtract',\n size: 16,\n },\n\n // set filter async values loading\n setFilterLoading: {\n name: 'spinner-ios',\n size: 16,\n },\n\n // context menu chart item\n chart: {\n name: 'data-bar-vertical-ascending',\n size: 16,\n },\n\n // dialog title bar\n close: {\n name: 'close',\n size: 24,\n },\n\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: {\n name: 'close',\n size: 24,\n },\n\n // indicates the currently active pin state in the \"Pin column\"\n // sub-menu of the column menu\n check: {\n name: 'checkmark',\n size: 20,\n },\n\n // \"go to first\" button in pagination controls\n first: {\n name: 'arrow-previous',\n size: 16,\n },\n\n // \"go to previous\" button in pagination controls\n previous: {\n name: 'chevron-left',\n size: 24,\n },\n\n // \"go to next\" button in pagination controls\n next: {\n name: 'chevron-right',\n size: 24,\n },\n\n // \"go to last\" button in pagination controls\n last: {\n name: 'arrow-next',\n size: 16,\n },\n\n // shown on top right of chart when chart is linked to range\n // data (click to unlink)\n linked: {\n name: 'link-dismiss',\n size: 16,\n },\n\n // shown on top right of chart when chart is not linked to\n // range data (click to link)\n unlinked: {\n name: 'link',\n size: 16,\n },\n\n // rotating spinner shown by the loading cell renderer\n groupLoading: {\n name: 'spinner-ios',\n size: 16,\n },\n\n // button to launch legacy column menu\n menu: {\n name: 'more-actions',\n size: 24,\n },\n\n // button to launch new enterprise column menu\n menuAlt: {\n name: 'more-actions',\n size: 24,\n },\n\n // menu tab icon in legacy tabbed enterprise column menu\n legacyMenu: {\n name: 'more-actions',\n size: 24,\n },\n\n // open filter button - header, floating filter, menu\n filter: {\n name: 'filter',\n size: 16,\n },\n\n // filter is applied - header (legacy column menu), filter tool panel\n filterActive: {\n name: 'filter',\n size: 16,\n },\n\n // filter tab icon in legacy tabbed enterprise column menu\n filterTab: {\n name: 'filter',\n size: 16,\n },\n\n // filter tool panel tab\n filtersToolPanel: {\n name: 'filter',\n size: 16,\n },\n\n // columns in menu (column chooser / columns tab)\n columns: {\n name: 'layout-column-three',\n size: 16,\n },\n\n // column tool panel tab\n columnsToolPanel: {\n name: 'layout-column-three',\n size: 16,\n },\n\n // button in chart regular size window title bar (click to maximise)\n maximize: {\n name: 'arrow-maximize',\n size: 16,\n },\n\n // button in chart maximised window title bar (click to make regular size)\n minimize: {\n name: 'arrow-minimize',\n size: 16,\n },\n\n // \"Pin column\" item in column header menu\n menuPin: {\n name: 'pin',\n size: 16,\n },\n\n // \"Value aggregation\" column menu item (shown on numeric\n // columns when grouping is active)\"\n menuValue: {\n name: 'calculator',\n size: 16,\n },\n\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: {\n name: 'arrow-collapse-all',\n size: 16,\n },\n\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: {\n name: 'arrow-collapse-all',\n size: 16,\n },\n\n // context menu copy item\n clipboardCopy: {\n name: 'copy',\n size: 16,\n },\n\n // context menu cut item\n clipboardCut: {\n name: 'cut',\n size: 16,\n },\n\n // context menu paste item\n clipboardPaste: {\n name: 'clipboard-arrow-right',\n size: 16,\n },\n\n // identifies the pivot drop zone\n pivotPanel: {\n name: 'pivot',\n size: 16,\n },\n\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: {\n name: 'group',\n size: 20,\n },\n\n // columns tool panel Values drop zone\n valuePanel: {\n name: 'calculator',\n size: 16,\n },\n\n // drag handle used to pick up draggable columns\n columnDrag: {\n name: 're-order-dots-vertical',\n size: 16,\n },\n\n // drag handle used to pick up draggable rows\n rowDrag: {\n name: 'arrow-bidirectional-up-down',\n size: 16,\n },\n\n // context menu export item\n save: {\n name: 'arrow-download',\n size: 16,\n },\n\n // csv export\n csvExport: {\n name: 'document-text',\n size: 16,\n },\n\n // excel export\n excelExport: {\n name: 'document-xls',\n size: 16,\n },\n\n // icon on select dropdowns (select cell editor, charts tool panels)\n selectOpen: {\n name: 'chevron-down',\n size: 24,\n },\n\n // open icon for rich select editor\n richSelectOpen: {\n name: 'chevron-down',\n size: 24,\n },\n\n // remove for rich select editor pills\n richSelectRemove: {\n name: 'close',\n size: 24,\n },\n\n // icon for sub menu item\n subMenuOpen: {\n name: 'arrow-right',\n size: 16,\n },\n\n // version of subMenuOpen used in RTL mode\n subMenuOpenRtl: {\n name: 'arrow-left',\n size: 16,\n },\n\n // separator between column 'pills' when you add multiple\n // columns to the header drop zone\n panelDelimiter: {\n name: 'chevron-right',\n size: 16,\n },\n\n // version of panelDelimiter used in RTL mode\n panelDelimiterRtl: {\n name: 'arrow-left',\n size: 16,\n },\n\n // show on column header when column is sorted ascending\n sortAscending: {\n name: 'chevron-up',\n size: 24,\n },\n\n // show on column header when column is sorted descending\n sortDescending: {\n name: 'chevron-down',\n size: 24,\n },\n\n // show on column header when column has no sort, only when\n // enabled with colDef.unSortIcon=true\n sortUnSort: {\n name: 'subtract',\n size: 16,\n },\n\n // Builder button in Advanced Filter\n advancedFilterBuilder: {\n name: 'group',\n size: 20,\n },\n\n // drag handle used to pick up Advanced Filter Builder rows\n advancedFilterBuilderDrag: {\n name: 're-order-dots-vertical',\n size: 16,\n },\n\n // Advanced Filter Builder row validation error\n advancedFilterBuilderInvalid: {\n name: 'prohibited',\n size: 16,\n },\n\n // shown on Advanced Filter Builder rows to move them up\n advancedFilterBuilderMoveUp: {\n name: 'chevron-up',\n size: 24,\n },\n\n // shown on Advanced Filter Builder rows to move them down\n advancedFilterBuilderMoveDown: {\n name: 'chevron-down',\n size: 24,\n },\n\n // shown on Advanced Filter Builder rows to add new rows\n advancedFilterBuilderAdd: {\n name: 'add-circle',\n size: 24,\n },\n\n // shown on Advanced Filter Builder rows to remove row\n advancedFilterBuilderRemove: {\n name: 'subtract-circle',\n size: 16,\n },\n\n // shown on Advanced Filter Builder selection pills\n advancedFilterBuilderSelect: {\n name: 'chevron-down',\n size: 24,\n },\n\n // icon to open charts menu\n chartsMenu: {\n name: 'more-actions',\n size: 24,\n },\n\n // Edit Chart menu item shown in Integrated Charts menu\n chartsMenuEdit: {\n name: 'data-bar-vertical-ascending',\n size: 16,\n },\n\n // Advanced Settings menu item shown in Integrated Charts menu\n chartsMenuAdvancedSettings: {\n name: 'settings',\n size: 16,\n },\n\n // shown in Integrated Charts menu add fields\n chartsMenuAdd: {\n name: 'add',\n size: 24,\n },\n\n // shown in Integrated Charts tool panel color picker\n chartsColorPicker: {\n name: 'chevron-down',\n size: 24,\n },\n\n // previous in Integrated Charts settings tool panel theme switcher\n chartsThemePrevious: {\n name: 'chevron-left',\n size: 24,\n },\n\n // next in Integrated Charts settings tool panel theme switcher\n chartsThemeNext: {\n name: 'chevron-right',\n size: 24,\n },\n\n // download chart\n chartsDownload: {\n name: 'arrow-download',\n size: 16,\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 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 {\n CSP_NONCE,\n Injectable,\n OnDestroy,\n Optional,\n inject,\n} 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 AgColumn,\n CellClassParams,\n CellFocusedEvent,\n CellRendererSelectorFunc,\n CellRendererSelectorResult,\n ColDef,\n EditableCallbackParams,\n GridOptions,\n HeaderClassParams,\n ICellRendererParams,\n RowClassParams,\n RowNode,\n RowSelectionOptions,\n SuppressHeaderKeyboardEventParams,\n SuppressKeyboardEventParams,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { getSkyAgGridTheme } from '../../styles/ag-grid-theme';\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 { SkyAgGridHeaderRowSelectorComponent } from './header/header-row-selector/header-row-selector.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\nfunction getValidatorCellRendererSelector(\n component: string,\n fallback?: CellRendererSelectorResult,\n): CellRendererSelectorFunc {\n return (params: ICellRendererParams) => {\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 readonly #cspNonce = inject(CSP_NONCE, { optional: true });\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 #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', checkboxes: false },\n multiple: { mode: 'multiRow', checkboxes: false },\n };\n providedGridOptions.rowSelection =\n rowSelectionOptions[providedGridOptions.rowSelection];\n }\n if (providedGridOptions.rowSelection?.mode) {\n providedGridOptions.rowSelection = {\n ...((defaultGridOptions.rowSelection as RowSelectionOptions) ?? {\n checkboxes: false,\n }),\n ...providedGridOptions.rowSelection,\n } as RowSelectionOptions;\n }\n if ('enableCellChangeFlash' in providedGridOptions) {\n providedGridOptions.defaultColDef ??= {};\n providedGridOptions.defaultColDef.enableCellChangeFlash ??=\n !!providedGridOptions.enableCellChangeFlash;\n delete providedGridOptions.enableCellChangeFlash;\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 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 (\n (params.columnGroup?.isResizable() || params.column?.isResizable()) &&\n minWidth < maxWidth\n ) {\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 sortingOrder: [null, 'desc', 'asc'],\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 sortingOrder: [null, 'desc', 'asc'],\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 headerComponent: SkyAgGridHeaderRowSelectorComponent,\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: Object.fromEntries(\n Object.keys(iconMap).map((iconKey) => [\n iconKey,\n this.#getIconTemplate(iconKey as keyof IconMapType),\n ]),\n ),\n loadingOverlayComponent: SkyAgGridLoadingComponent,\n onCellFocused: (event: CellFocusedEvent) => this.#onCellFocused(event),\n rowModelType: 'clientSide',\n rowSelection: {\n mode: 'multiRow',\n enableClickSelection: false,\n enableSelectionWithoutKeys: true,\n checkboxes: false,\n headerCheckbox: false,\n },\n singleClickEdit: true,\n styleNonce: this.#cspNonce ?? undefined,\n suppressDragLeaveHidesColumns: true,\n theme: getSkyAgGridTheme('data-grid'),\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(event: CellFocusedEvent): void {\n const shouldFocus = this.#shouldFocusChildren(event);\n if (shouldFocus) {\n const currentElement = this.#agGridAdapterService.getFocusedElement();\n this.#agGridAdapterService.focusOnFocusableChildren(currentElement);\n }\n }\n\n #shouldFocusChildren(event: CellFocusedEvent): boolean {\n let shouldFocus = true;\n // The API says the column can be string or null, but should be an object.\n shouldFocus &&= typeof event.column === 'object';\n // Row index can be number or null.\n const rowNode =\n Number.isInteger(event.rowIndex) &&\n event.api.getDisplayedRowAtIndex(event.rowIndex as number);\n shouldFocus &&= !!rowNode;\n // Do not change focus if the cell is a row drag or dnd source.\n shouldFocus &&= !(event.column as AgColumn).isRowDrag(rowNode as RowNode);\n shouldFocus &&= !(event.column as AgColumn).isDndSource(rowNode as RowNode);\n return shouldFocus;\n }\n\n #getDefaultEditableGridOptions(args: SkyGetGridOptionsArgs): GridOptions & {\n getRowClass: (params: RowClassParams) => string[];\n } {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n defaultGridOptions.rowSelection = undefined;\n defaultGridOptions.theme = getSkyAgGridTheme('data-entry-grid');\n return defaultGridOptions;\n }\n\n #getIconTemplate(iconKey: keyof IconMapType): () => string {\n return () => {\n const iconInfo = iconMap[iconKey];\n return `<svg height=\"16\" width=\"16\"><use xlink:href=\"#sky-i-${iconInfo.name}-${iconInfo.size}-solid\"></use></svg>`;\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 { SkyCellEditorAutocompleteParams } from './lib/modules/ag-grid/types/cell-editor-autocomplete-params';\nexport { SkyCellEditorDatepickerParams } from './lib/modules/ag-grid/types/cell-editor-datepicker-params';\nexport { SkyAgGridCellEditorInitialAction } from './lib/modules/ag-grid/types/cell-editor-initial-action';\nexport { SkyCellEditorLookupParams } from './lib/modules/ag-grid/types/cell-editor-lookup-params';\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":["takeUntil","i1","filter","i2","i3","i4","i1.SkyAgGridAdapterService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-ag-grid.mjs","sources":["../tmp-esm2022/lib/modules/shared/sky-ag-grid-resources.module.js","../tmp-esm2022/lib/styles/ag-grid-theme.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid-adapter.service.js","../tmp-esm2022/lib/modules/ag-grid/types/cell-type.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid-wrapper.component.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid-row-delete-context.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid-row-delete.component.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid-row-delete.directive.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid.module.js","../tmp-esm2022/lib/modules/ag-grid/apply-lookup-properties-defaults.js","../tmp-esm2022/lib/modules/ag-grid/types/cell-editor-initial-action.js","../tmp-esm2022/lib/modules/ag-grid/types/cell-editor-utils.js","../tmp-esm2022/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template.component.js","../tmp-esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js","../tmp-esm2022/lib/modules/ag-grid/types/header-group-info.js","../tmp-esm2022/lib/modules/ag-grid/header/header-group.component.js","../tmp-esm2022/lib/modules/ag-grid/header/header-row-selector/header-row-selector.component.js","../tmp-esm2022/lib/modules/ag-grid/types/header-info.js","../tmp-esm2022/lib/modules/ag-grid/header/header.component.js","../tmp-esm2022/lib/modules/ag-grid/icons/icon-map.js","../tmp-esm2022/lib/modules/ag-grid/loading/loading.component.js","../tmp-esm2022/lib/modules/ag-grid/types/cell-class.js","../tmp-esm2022/lib/modules/ag-grid/types/header-class.js","../tmp-esm2022/lib/modules/ag-grid/ag-grid.service.js","../tmp-esm2022/index.js","../tmp-esm2022/skyux-ag-grid.js"],"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 { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\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};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyAgGridResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsbUNBQW1DLEVBQUU7WUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUNyRSw2Q0FBNkMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHlDQUF5QyxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCx1Q0FBdUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsK0NBQStDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGtEQUFrRCxFQUFFO1lBQ2xELE9BQU8sRUFBRSx1QkFBdUI7U0FDakM7UUFDRCxvREFBb0QsRUFBRTtZQUNwRCxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDOUQsMkNBQTJDLEVBQUU7WUFDM0MsT0FBTyxFQUFFLG1DQUFtQztTQUM3QztRQUNELDhEQUE4RCxFQUFFO1lBQzlELE9BQU8sRUFBRSxzQ0FBc0M7U0FDaEQ7UUFDRCwrREFBK0QsRUFBRTtZQUMvRCxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QscUVBQXFFLEVBQUU7WUFDckUsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGlEQUFpRCxFQUFFO1lBQ2pELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCxtREFBbUQsRUFBRTtZQUNuRCxPQUFPLEVBQUUsMkJBQTJCO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsc0NBQXNDO1NBQ2hEO1FBQ0QsdUNBQXVDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELDZDQUE2QyxFQUFFO1lBQzdDLE9BQU8sRUFBRSx1Q0FBdUM7U0FDakQ7UUFDRCw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLHlDQUF5QztTQUNuRDtRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSx3Q0FBd0M7U0FDbEQ7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUscURBQXFEO1NBQy9EO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRTtRQUNyRSwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUseUNBQXlDO1NBQ25EO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLHVEQUF1RDtTQUNqRTtRQUNELCtEQUErRCxFQUFFO1lBQy9ELE9BQU8sRUFBRSx5REFBeUQ7U0FDbkU7UUFDRCxxRUFBcUUsRUFBRTtZQUNyRSxPQUFPLEVBQUUsOENBQThDO1NBQ3hEO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSxtQ0FBbUM7U0FDN0M7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUZ6QixhQUFhOytHQUVaLHdCQUF3QixZQUZ6QixhQUFhOzsyRkFFWix3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1hZy1ncmlkJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSb3cgc2VsZWN0b3IgZm9yIHJvdyB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2NvbHVtbl9oZWFkaW5nOiB7IG1lc3NhZ2U6ICdSb3cgc2VsZWN0aW9uJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGRhdGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfaGludF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIG51bWJlciB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfdGV4dF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgdGV4dCB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBhdXRvY29tcGxldGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnRW50ZXIgYSB2YWxpZCBudW1iZXIuJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIGN1cnJlbmN5LicsXG4gICAgfSxcbiAgICBza3l1eF9sb29rdXBfdG9rZW5zX3N1bW1hcnk6IHsgbWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgY3VycmVuY3kgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfYXNjOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBjdXJyZW50bHkgYXNjZW5kaW5nJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1NvcnQgY29sdW1uIHswfSwgY3VycmVudGx5IGRlc2NlbmRpbmcnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBub3QgY3VycmVudGx5IHNvcnRlZCcsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRXhwYW5kIGNvbHVtbiBncm91cCB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQ29sbGFwc2UgY29sdW1uIGdyb3VwIHswfScsXG4gICAgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGV1ciBkZSBsaWduZSBwb3VyIGxhIGxpZ25lIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmc6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9uIGTigJl1bmUgbGlnbmUnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfZGF0ZXBpY2tlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRGF0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2hpbnRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1V0aWxpc2V6IGxlIGZvcm1hdCB7MH0uJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnTnVtw6lybyBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdUZXh0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1NhaXNpZSBhdXRvbWF0aXF1ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1biBudW3DqXJvIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1bmUgZGV2aXNlIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5OiB7IG1lc3NhZ2U6ICd7MH0gYXJ0aWNsZXMgc8OpbGVjdGlvbm7DqXMnIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0RldmlzZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgZMOpY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfbm90X3NvcnRlZDoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgbm9uIHRyacOpZScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQWdyYW5kaXIgbGUgZ3JvdXBlIGRlIGNvbG9ubmVzIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2NvbGxhcHNlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSw6lkdWlyZSBsZSBncm91cGUgZGUgY29sb25uZXMgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=","import { colorSchemeLight, themeQuartz, } from 'ag-grid-community';\nconst defaultsForAllThemes = {\n backgroundColor: 'var(--sky-override-ag-grid-background-color, var(--sky-background-color-page-default))',\n borderColor: 'var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n borderRadius: 'var(--sky-override-ag-grid-border-radius, var(--sky-border-radius-s))',\n cardShadow: 'none',\n cellHorizontalPadding: 'var(--sky-override-ag-grid-cell-horizontal-padding, var(--sky-space-inset-letterbox-2_3-left-m))',\n cellEditingBorder: 'var(--sky-override-ag-grid-cell-focus-border-width, var(--sky-border-width-input-focus)) solid var(--sky-override-ag-grid-cell-focus-border-color, var(--sky-color-border-input-focus))',\n checkboxCheckedBackgroundColor: 'var(--sky-override-ag-grid-checkbox-selected-background-color, var(--sky-color-background-selected-heavy))',\n checkboxCheckedBorderColor: { ref: 'checkboxCheckedShapeColor' },\n checkboxCheckedShapeColor: 'var(--sky-override-switch-checked-color, var(--sky-color-icon-inverse, var(--sky-text-color-default)))',\n checkboxIndeterminateBackgroundColor: 'var(--sky-override-switch-checked-color, var(--sky-color-icon-inverse, transparent))',\n checkboxUncheckedBackgroundColor: 'transparent',\n checkboxUncheckedBorderColor: `var(\n --sky-override-ag-grid-checkbox-unchecked-border-color,\n var(--sky-color-border-input-base)\n )`,\n checkboxCheckedShapeImage: {\n svg: `<svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.9884 3.54756C13.6244 3.16685 13.0164 3.1491 12.6302 3.50792L5.62682 10.0157L3.64517 8.03282C3.27275 7.66016 2.66443 7.65572 2.28646 8.0229C1.90848 8.39007 1.90397 8.98983 2.2764 9.36248L4.85162 11.9393C5.25487 12.3428 5.91121 12.3548 6.32932 11.9663L13.9482 4.88659C14.3343 4.52777 14.3523 3.92827 13.9884 3.54756Z\" fill=\"#212121\"/></svg>`,\n },\n fontFamily: 'var(--sky-override-ag-grid-font-family, var(--sky-font-family-primary))',\n fontSize: 'var(--sky-override-ag-grid-font-size, var(--sky-font-size-body-m))',\n foregroundColor: 'var(--sky-override-ag-grid-foreground-color, var(--sky-color-text-default))',\n headerBackgroundColor: 'var(--sky-background-color-page-default)',\n headerColumnBorder: 'var(--sky-override-ag-grid-border-width, var(--sky-border-width-divider)) var(--sky-override-ag-grid-border-style, var(--sky-border-style-divider)) var(--sky-override-ag-grid-border-color, transparent)',\n headerColumnBorderHeight: '100%',\n headerColumnResizeHandleColor: 'var(--sky-override-ag-grid-column-divider-color, var(--sky-color-border-column_divider))',\n headerColumnResizeHandleHeight: 'var(--sky-override-ag-grid-header-resize-height, calc(var(--sky-font-line_height-body-m) * var(--sky-font-size-body-m)))',\n headerColumnResizeHandleWidth: 'var(--sky-override-ag-grid-header-divider-width, var(--sky-border-width-divider))',\n headerFontFamily: { ref: 'fontFamily' },\n headerHeight: 'var(--sky-override-ag-grid-header-height, calc(calc(var(--sky-font-line_height-body-m) * var(--sky-font-size-body-m)) + calc(var(--sky-space-inset-letterbox-2_3-top-m) + var(--sky-space-inset-letterbox-2_3-bottom-m))))',\n headerRowBorder: 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-separator-row)) var(--sky-override-ag-grid-header-row-border-style, var(--sky-border-style-separator-row)) var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n iconSize: 12,\n inputDisabledBackgroundColor: 'transparent',\n inputFocusBorder: 'transparent',\n inputFocusShadow: 'none',\n invalidColor: 'var(--sky-override-ag-grid-invalid-color, var(--sky-color-background-action-danger-base))',\n listItemHeight: { ref: 'rowHeight' },\n oddRowBackgroundColor: 'var(--sky-background-color-page-default)',\n pickerListBackgroundColor: { ref: 'backgroundColor' },\n popupShadow: 'var(--sky-override-ag-grid-popup-shadow, var(--sky-elevation-overlay-300))',\n rangeSelectionBorderColor: 'var(--sky-override-ag-grid-range-selection-border-color, var(--sky-color-border-input-focus))',\n rowBorder: 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-separator-row)) var(--sky-override-ag-grid-row-border-style, var(--sky-border-style-separator-row)) var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n rowHeight: 'var(--sky-override-ag-grid-row-height, calc(calc(var(--sky-font-line_height-body-m) * var(--sky-font-size-body-m)) + calc(var(--sky-space-inset-letterbox-2_3-top-m) + var(--sky-space-inset-letterbox-2_3-bottom-m))))',\n rowHoverColor: 'transparent',\n selectedRowBackgroundColor: 'var(--sky-override-ag-grid-row-selected-color, var(--sky-color-background-selected-soft))',\n // TODO: investigate removing this in 13. Does not appear to be impacting anything, but it could be used by features we have not tested so major version removal is safest.\n spacing: 4,\n textColor: 'var(--sky-override-ag-grid-text-color, var(--sky-color-text-default))',\n tooltipBackgroundColor: 'var(--sky-override-ag-grid-tooltip-background-color, var(--sky-color-background-container-base))',\n wrapperBorderRadius: 0,\n};\nconst defaultsForDataEntryGrid = {\n columnBorder: 'var(--sky-override-ag-grid-column-border, var(--sky-border-width-separator-row) solid var(--sky-color-border-separator-row))',\n popupShadow: 'none',\n rowBorder: 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-separator-row)) solid var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n headerRowBorder: 'var(--sky-override-ag-grid-row-border-width, var(--sky-border-width-emphasized)) solid var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row))',\n};\nconst SkyAgGridDataGrid = themeQuartz\n .withoutPart('iconSet')\n .withPart(colorSchemeLight)\n .withParams(defaultsForAllThemes);\nconst SkyAgGridDataEntryGrid = SkyAgGridDataGrid.withParams(defaultsForDataEntryGrid);\nexport function getSkyAgGridTheme(grid) {\n if (grid === 'data-grid') {\n return SkyAgGridDataGrid;\n }\n else {\n return SkyAgGridDataEntryGrid;\n }\n}\nexport function agGridThemeIsCompact(themeSettings, compactLayout) {\n return (themeSettings?.theme.name === 'modern' &&\n (compactLayout || themeSettings?.spacing.name === 'compact'));\n}\nexport function getSkyAgGridThemeClassName(editable, themeSettings, compactLayout) {\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 }\n else {\n theme += 'default';\n }\n return theme;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvc3R5bGVzL2FnLWdyaWQtdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixXQUFXLEdBQ1osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixNQUFNLG9CQUFvQixHQUFnQztJQUN4RCxlQUFlLEVBQ2Isd0ZBQXdGO0lBQzFGLFdBQVcsRUFDVCxpRkFBaUY7SUFDbkYsWUFBWSxFQUNWLHVFQUF1RTtJQUN6RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixxQkFBcUIsRUFDbkIsa0dBQWtHO0lBQ3BHLGlCQUFpQixFQUNmLHlMQUF5TDtJQUMzTCw4QkFBOEIsRUFDNUIsNEdBQTRHO0lBQzlHLDBCQUEwQixFQUFFLEVBQUUsR0FBRyxFQUFFLDJCQUEyQixFQUFFO0lBQ2hFLHlCQUF5QixFQUN2Qix3R0FBd0c7SUFDMUcsb0NBQW9DLEVBQ2xDLHNGQUFzRjtJQUN4RixnQ0FBZ0MsRUFBRSxhQUFhO0lBQy9DLDRCQUE0QixFQUFFOzs7SUFHNUI7SUFDRix5QkFBeUIsRUFBRTtRQUN6QixHQUFHLEVBQUUsZ2NBQWdjO0tBQ3RjO0lBQ0QsVUFBVSxFQUNSLHlFQUF5RTtJQUMzRSxRQUFRLEVBQ04sb0VBQW9FO0lBQ3RFLGVBQWUsRUFDYiw2RUFBNkU7SUFDL0UscUJBQXFCLEVBQUUsMENBQTBDO0lBQ2pFLGtCQUFrQixFQUNoQiwyTUFBMk07SUFDN00sd0JBQXdCLEVBQUUsTUFBTTtJQUNoQyw2QkFBNkIsRUFDM0IsMEZBQTBGO0lBQzVGLDhCQUE4QixFQUM1QiwwSEFBMEg7SUFDNUgsNkJBQTZCLEVBQzNCLG1GQUFtRjtJQUNyRixnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7SUFDdkMsWUFBWSxFQUNWLDROQUE0TjtJQUM5TixlQUFlLEVBQ2IsZ1FBQWdRO0lBQ2xRLFFBQVEsRUFBRSxFQUFFO0lBQ1osNEJBQTRCLEVBQUUsYUFBYTtJQUMzQyxnQkFBZ0IsRUFBRSxhQUFhO0lBQy9CLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsWUFBWSxFQUNWLDJGQUEyRjtJQUM3RixjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFO0lBQ3BDLHFCQUFxQixFQUFFLDBDQUEwQztJQUNqRSx5QkFBeUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTtJQUNyRCxXQUFXLEVBQ1QsNEVBQTRFO0lBQzlFLHlCQUF5QixFQUN2QiwrRkFBK0Y7SUFDakcsU0FBUyxFQUNQLHlQQUF5UDtJQUMzUCxTQUFTLEVBQ1AseU5BQXlOO0lBQzNOLGFBQWEsRUFBRSxhQUFhO0lBQzVCLDBCQUEwQixFQUN4QiwyRkFBMkY7SUFDN0YsMktBQTJLO0lBQzNLLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUNQLHVFQUF1RTtJQUN6RSxzQkFBc0IsRUFDcEIsa0dBQWtHO0lBQ3BHLG1CQUFtQixFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsWUFBWSxFQUNWLDhIQUE4SDtJQUNoSSxXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQ1AsMktBQTJLO0lBQzdLLGVBQWUsRUFDYix3S0FBd0s7Q0FDM0ssQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsV0FBVztLQUNsQyxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQ3RCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztLQUMxQixVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVwQyxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FDekQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQXFDO0lBRXJDLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxhQUEyQyxFQUMzQyxhQUFzQjtJQUV0QixPQUFPLENBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUN0QyxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FDN0QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFFBQWlCLEVBQ2pCLGFBQTJDLEVBQzNDLGFBQXNCO0lBRXRCLElBQUksS0FBSyxHQUFHLGdCQUFnQixRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQztJQUMxRSxJQUFJLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNDLEtBQUssSUFBSSxVQUFVLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxLQUFLLElBQUksVUFBVSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssSUFBSSxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sS0FBMkIsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFRoZW1lLFxuICBUaGVtZURlZmF1bHRQYXJhbXMsXG4gIGNvbG9yU2NoZW1lTGlnaHQsXG4gIHRoZW1lUXVhcnR6LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmNvbnN0IGRlZmF1bHRzRm9yQWxsVGhlbWVzOiBQYXJ0aWFsPFRoZW1lRGVmYXVsdFBhcmFtcz4gPSB7XG4gIGJhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYmFja2dyb3VuZC1jb2xvciwgdmFyKC0tc2t5LWJhY2tncm91bmQtY29sb3ItcGFnZS1kZWZhdWx0KSknLFxuICBib3JkZXJDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYm9yZGVyLXNlcGFyYXRvci1yb3cpKScsXG4gIGJvcmRlclJhZGl1czpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLXJhZGl1cywgdmFyKC0tc2t5LWJvcmRlci1yYWRpdXMtcykpJyxcbiAgY2FyZFNoYWRvdzogJ25vbmUnLFxuICBjZWxsSG9yaXpvbnRhbFBhZGRpbmc6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nLCB2YXIoLS1za3ktc3BhY2UtaW5zZXQtbGV0dGVyYm94LTJfMy1sZWZ0LW0pKScsXG4gIGNlbGxFZGl0aW5nQm9yZGVyOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jZWxsLWZvY3VzLWJvcmRlci13aWR0aCwgdmFyKC0tc2t5LWJvcmRlci13aWR0aC1pbnB1dC1mb2N1cykpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWNlbGwtZm9jdXMtYm9yZGVyLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYm9yZGVyLWlucHV0LWZvY3VzKSknLFxuICBjaGVja2JveENoZWNrZWRCYWNrZ3JvdW5kQ29sb3I6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWNoZWNrYm94LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLXNlbGVjdGVkLWhlYXZ5KSknLFxuICBjaGVja2JveENoZWNrZWRCb3JkZXJDb2xvcjogeyByZWY6ICdjaGVja2JveENoZWNrZWRTaGFwZUNvbG9yJyB9LFxuICBjaGVja2JveENoZWNrZWRTaGFwZUNvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtc3dpdGNoLWNoZWNrZWQtY29sb3IsIHZhcigtLXNreS1jb2xvci1pY29uLWludmVyc2UsIHZhcigtLXNreS10ZXh0LWNvbG9yLWRlZmF1bHQpKSknLFxuICBjaGVja2JveEluZGV0ZXJtaW5hdGVCYWNrZ3JvdW5kQ29sb3I6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1zd2l0Y2gtY2hlY2tlZC1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWljb24taW52ZXJzZSwgdHJhbnNwYXJlbnQpKScsXG4gIGNoZWNrYm94VW5jaGVja2VkQmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICBjaGVja2JveFVuY2hlY2tlZEJvcmRlckNvbG9yOiBgdmFyKFxuICAgIC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2hlY2tib3gtdW5jaGVja2VkLWJvcmRlci1jb2xvcixcbiAgICB2YXIoLS1za3ktY29sb3ItYm9yZGVyLWlucHV0LWJhc2UpXG4gIClgLFxuICBjaGVja2JveENoZWNrZWRTaGFwZUltYWdlOiB7XG4gICAgc3ZnOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMy45ODg0IDMuNTQ3NTZDMTMuNjI0NCAzLjE2Njg1IDEzLjAxNjQgMy4xNDkxIDEyLjYzMDIgMy41MDc5Mkw1LjYyNjgyIDEwLjAxNTdMMy42NDUxNyA4LjAzMjgyQzMuMjcyNzUgNy42NjAxNiAyLjY2NDQzIDcuNjU1NzIgMi4yODY0NiA4LjAyMjlDMS45MDg0OCA4LjM5MDA3IDEuOTAzOTcgOC45ODk4MyAyLjI3NjQgOS4zNjI0OEw0Ljg1MTYyIDExLjkzOTNDNS4yNTQ4NyAxMi4zNDI4IDUuOTExMjEgMTIuMzU0OCA2LjMyOTMyIDExLjk2NjNMMTMuOTQ4MiA0Ljg4NjU5QzE0LjMzNDMgNC41Mjc3NyAxNC4zNTIzIDMuOTI4MjcgMTMuOTg4NCAzLjU0NzU2WlwiIGZpbGw9XCIjMjEyMTIxXCIvPjwvc3ZnPmAsXG4gIH0sXG4gIGZvbnRGYW1pbHk6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWZvbnQtZmFtaWx5LCB2YXIoLS1za3ktZm9udC1mYW1pbHktcHJpbWFyeSkpJyxcbiAgZm9udFNpemU6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWZvbnQtc2l6ZSwgdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKScsXG4gIGZvcmVncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtZm9yZWdyb3VuZC1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLXRleHQtZGVmYXVsdCkpJyxcbiAgaGVhZGVyQmFja2dyb3VuZENvbG9yOiAndmFyKC0tc2t5LWJhY2tncm91bmQtY29sb3ItcGFnZS1kZWZhdWx0KScsXG4gIGhlYWRlckNvbHVtbkJvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLXdpZHRoLCB2YXIoLS1za3ktYm9yZGVyLXdpZHRoLWRpdmlkZXIpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItc3R5bGUsIHZhcigtLXNreS1ib3JkZXItc3R5bGUtZGl2aWRlcikpIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpJyxcbiAgaGVhZGVyQ29sdW1uQm9yZGVySGVpZ2h0OiAnMTAwJScsXG4gIGhlYWRlckNvbHVtblJlc2l6ZUhhbmRsZUNvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jb2x1bW4tZGl2aWRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1jb2x1bW5fZGl2aWRlcikpJyxcbiAgaGVhZGVyQ29sdW1uUmVzaXplSGFuZGxlSGVpZ2h0OlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1oZWFkZXItcmVzaXplLWhlaWdodCwgY2FsYyh2YXIoLS1za3ktZm9udC1saW5lX2hlaWdodC1ib2R5LW0pICogdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKSknLFxuICBoZWFkZXJDb2x1bW5SZXNpemVIYW5kbGVXaWR0aDpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtaGVhZGVyLWRpdmlkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtZGl2aWRlcikpJyxcbiAgaGVhZGVyRm9udEZhbWlseTogeyByZWY6ICdmb250RmFtaWx5JyB9LFxuICBoZWFkZXJIZWlnaHQ6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWhlYWRlci1oZWlnaHQsIGNhbGMoY2FsYyh2YXIoLS1za3ktZm9udC1saW5lX2hlaWdodC1ib2R5LW0pICogdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKSArIGNhbGModmFyKC0tc2t5LXNwYWNlLWluc2V0LWxldHRlcmJveC0yXzMtdG9wLW0pICsgdmFyKC0tc2t5LXNwYWNlLWluc2V0LWxldHRlcmJveC0yXzMtYm90dG9tLW0pKSkpJyxcbiAgaGVhZGVyUm93Qm9yZGVyOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctYm9yZGVyLXdpZHRoLCB2YXIoLS1za3ktYm9yZGVyLXdpZHRoLXNlcGFyYXRvci1yb3cpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1oZWFkZXItcm93LWJvcmRlci1zdHlsZSwgdmFyKC0tc2t5LWJvcmRlci1zdHlsZS1zZXBhcmF0b3Itcm93KSkgdmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYm9yZGVyLXNlcGFyYXRvci1yb3cpKScsXG4gIGljb25TaXplOiAxMixcbiAgaW5wdXREaXNhYmxlZEJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgaW5wdXRGb2N1c0JvcmRlcjogJ3RyYW5zcGFyZW50JyxcbiAgaW5wdXRGb2N1c1NoYWRvdzogJ25vbmUnLFxuICBpbnZhbGlkQ29sb3I6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWludmFsaWQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLWFjdGlvbi1kYW5nZXItYmFzZSkpJyxcbiAgbGlzdEl0ZW1IZWlnaHQ6IHsgcmVmOiAncm93SGVpZ2h0JyB9LFxuICBvZGRSb3dCYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1za3ktYmFja2dyb3VuZC1jb2xvci1wYWdlLWRlZmF1bHQpJyxcbiAgcGlja2VyTGlzdEJhY2tncm91bmRDb2xvcjogeyByZWY6ICdiYWNrZ3JvdW5kQ29sb3InIH0sXG4gIHBvcHVwU2hhZG93OlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1wb3B1cC1zaGFkb3csIHZhcigtLXNreS1lbGV2YXRpb24tb3ZlcmxheS0zMDApKScsXG4gIHJhbmdlU2VsZWN0aW9uQm9yZGVyQ29sb3I6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJhbmdlLXNlbGVjdGlvbi1ib3JkZXItY29sb3IsIHZhcigtLXNreS1jb2xvci1ib3JkZXItaW5wdXQtZm9jdXMpKScsXG4gIHJvd0JvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LWJvcmRlci13aWR0aCwgdmFyKC0tc2t5LWJvcmRlci13aWR0aC1zZXBhcmF0b3Itcm93KSkgdmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LWJvcmRlci1zdHlsZSwgdmFyKC0tc2t5LWJvcmRlci1zdHlsZS1zZXBhcmF0b3Itcm93KSkgdmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYm9yZGVyLXNlcGFyYXRvci1yb3cpKScsXG4gIHJvd0hlaWdodDpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LWhlaWdodCwgY2FsYyhjYWxjKHZhcigtLXNreS1mb250LWxpbmVfaGVpZ2h0LWJvZHktbSkgKiB2YXIoLS1za3ktZm9udC1zaXplLWJvZHktbSkpICsgY2FsYyh2YXIoLS1za3ktc3BhY2UtaW5zZXQtbGV0dGVyYm94LTJfMy10b3AtbSkgKyB2YXIoLS1za3ktc3BhY2UtaW5zZXQtbGV0dGVyYm94LTJfMy1ib3R0b20tbSkpKSknLFxuICByb3dIb3ZlckNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICBzZWxlY3RlZFJvd0JhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LXNlbGVjdGVkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYmFja2dyb3VuZC1zZWxlY3RlZC1zb2Z0KSknLFxuICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSByZW1vdmluZyB0aGlzIGluIDEzLiBEb2VzIG5vdCBhcHBlYXIgdG8gYmUgaW1wYWN0aW5nIGFueXRoaW5nLCBidXQgaXQgY291bGQgYmUgdXNlZCBieSBmZWF0dXJlcyB3ZSBoYXZlIG5vdCB0ZXN0ZWQgc28gbWFqb3IgdmVyc2lvbiByZW1vdmFsIGlzIHNhZmVzdC5cbiAgc3BhY2luZzogNCxcbiAgdGV4dENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC10ZXh0LWNvbG9yLCB2YXIoLS1za3ktY29sb3ItdGV4dC1kZWZhdWx0KSknLFxuICB0b29sdGlwQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRhaW5lci1iYXNlKSknLFxuICB3cmFwcGVyQm9yZGVyUmFkaXVzOiAwLFxufTtcblxuY29uc3QgZGVmYXVsdHNGb3JEYXRhRW50cnlHcmlkID0ge1xuICBjb2x1bW5Cb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWNvbHVtbi1ib3JkZXIsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtc2VwYXJhdG9yLXJvdykgc29saWQgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBwb3B1cFNoYWRvdzogJ25vbmUnLFxuICByb3dCb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJvdy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtc2VwYXJhdG9yLXJvdykpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBoZWFkZXJSb3dCb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJvdy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtZW1waGFzaXplZCkpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxufTtcblxuY29uc3QgU2t5QWdHcmlkRGF0YUdyaWQgPSB0aGVtZVF1YXJ0elxuICAud2l0aG91dFBhcnQoJ2ljb25TZXQnKVxuICAud2l0aFBhcnQoY29sb3JTY2hlbWVMaWdodClcbiAgLndpdGhQYXJhbXMoZGVmYXVsdHNGb3JBbGxUaGVtZXMpO1xuXG5jb25zdCBTa3lBZ0dyaWREYXRhRW50cnlHcmlkID0gU2t5QWdHcmlkRGF0YUdyaWQud2l0aFBhcmFtcyhcbiAgZGVmYXVsdHNGb3JEYXRhRW50cnlHcmlkLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNreUFnR3JpZFRoZW1lKFxuICBncmlkOiAnZGF0YS1lbnRyeS1ncmlkJyB8ICdkYXRhLWdyaWQnLFxuKTogVGhlbWUge1xuICBpZiAoZ3JpZCA9PT0gJ2RhdGEtZ3JpZCcpIHtcbiAgICByZXR1cm4gU2t5QWdHcmlkRGF0YUdyaWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFNreUFnR3JpZERhdGFFbnRyeUdyaWQ7XG4gIH1cbn1cblxudHlwZSBTa3lBZ0dyaWRUaGVtZVR5cGUgPVxuICBgYWctdGhlbWUtc2t5LSR7J2RhdGEtZW50cnktZ3JpZCcgfCAnZGF0YS1ncmlkJ30tJHsnZGVmYXVsdCcgfCAnbW9kZXJuLWxpZ2h0JyB8ICdtb2Rlcm4tbGlnaHQtY29tcGFjdCd9YDtcblxuZXhwb3J0IGZ1bmN0aW9uIGFnR3JpZFRoZW1lSXNDb21wYWN0KFxuICB0aGVtZVNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkLFxuICBjb21wYWN0TGF5b3V0OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdGhlbWVTZXR0aW5ncz8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiZcbiAgICAoY29tcGFjdExheW91dCB8fCB0aGVtZVNldHRpbmdzPy5zcGFjaW5nLm5hbWUgPT09ICdjb21wYWN0JylcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lKFxuICBlZGl0YWJsZTogYm9vbGVhbixcbiAgdGhlbWVTZXR0aW5nczogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdExheW91dDogYm9vbGVhbixcbik6IFNreUFnR3JpZFRoZW1lVHlwZSB7XG4gIGxldCB0aGVtZSA9IGBhZy10aGVtZS1za3ktJHtlZGl0YWJsZSA/ICdkYXRhLWVudHJ5LWdyaWQnIDogJ2RhdGEtZ3JpZCd9LWA7XG4gIGlmICh0aGVtZVNldHRpbmdzPy50aGVtZS5uYW1lID09PSAnbW9kZXJuJykge1xuICAgIHRoZW1lICs9IGBtb2Rlcm4tJHt0aGVtZVNldHRpbmdzLm1vZGUubmFtZX1gO1xuICAgIGlmIChhZ0dyaWRUaGVtZUlzQ29tcGFjdCh0aGVtZVNldHRpbmdzLCBjb21wYWN0TGF5b3V0KSkge1xuICAgICAgdGhlbWUgKz0gYC1jb21wYWN0YDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhlbWUgKz0gJ2RlZmF1bHQnO1xuICB9XG4gIHJldHVybiB0aGVtZSBhcyBTa3lBZ0dyaWRUaGVtZVR5cGU7XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * @internal\n */\nexport class SkyAgGridAdapterService {\n #skyAdapterService;\n constructor(skyAdapterService) {\n this.#skyAdapterService = skyAdapterService;\n }\n getElementOrParentWithClass(element, className) {\n if (element && element.classList.contains(className)) {\n return element;\n }\n else if (element.parentElement) {\n return this.getElementOrParentWithClass(element.parentElement, className);\n }\n return undefined;\n }\n setFocusedElementById(parentEl, selector) {\n const element = parentEl.querySelector(`#${selector}`);\n /* istanbul ignore else */\n if (element) {\n element.focus();\n }\n }\n getFocusedElement() {\n return document.activeElement;\n }\n getNextFocusableElement(currentEl, parentEl, moveFocusLeft) {\n if (parentEl) {\n const focusableChildren = this.#skyAdapterService.getFocusableChildren(parentEl);\n const currentElementIndex = focusableChildren.indexOf(currentEl);\n const nextIndex = moveFocusLeft\n ? currentElementIndex - 1\n : currentElementIndex + 1;\n if ((!moveFocusLeft && focusableChildren.length >= nextIndex) ||\n (moveFocusLeft && nextIndex >= 0)) {\n return focusableChildren[nextIndex];\n }\n }\n return undefined;\n }\n focusOnFocusableChildren(element) {\n const [focusChild] = this.#skyAdapterService.getFocusableChildren(element);\n if (focusChild?.offsetParent) {\n focusChild.focus();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGtCQUFrQixDQUF3QjtJQUUxQyxZQUFZLGlCQUF3QztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUIsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxFQUFFLENBQWdCLENBQUM7UUFFdEUsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXNCLEVBQ3RCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsTUFBTSxTQUFTLEdBQUcsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFFNUIsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7Z0JBQ3pELENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFDakMsQ0FBQztnQkFDRCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQW9CO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0UsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDOzhHQS9EVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Uge1xuICAjc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihza3lBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UgPSBza3lBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRFbGVtZW50QnlJZChwYXJlbnRFbDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gcGFyZW50RWwucXVlcnlTZWxlY3RvcihgIyR7c2VsZWN0b3J9YCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvY3VzZWRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICBjdXJyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIHBhcmVudEVsPzogSFRNTEVsZW1lbnQsXG4gICAgbW92ZUZvY3VzTGVmdD86IGJvb2xlYW4sXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4ocGFyZW50RWwpO1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuLmluZGV4T2YoY3VycmVudEVsKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IG1vdmVGb2N1c0xlZnRcbiAgICAgICAgPyBjdXJyZW50RWxlbWVudEluZGV4IC0gMVxuICAgICAgICA6IGN1cnJlbnRFbGVtZW50SW5kZXggKyAxO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghbW92ZUZvY3VzTGVmdCAmJiBmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPj0gbmV4dEluZGV4KSB8fFxuICAgICAgICAobW92ZUZvY3VzTGVmdCAmJiBuZXh0SW5kZXggPj0gMClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9jdXNhYmxlQ2hpbGRyZW5bbmV4dEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IFtmb2N1c0NoaWxkXSA9IHRoaXMuI3NreUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuXG4gICAgaWYgKGZvY3VzQ2hpbGQ/Lm9mZnNldFBhcmVudCkge1xuICAgICAgZm9jdXNDaGlsZC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19","/**\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 * 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 var SkyCellType;\n(function (SkyCellType) {\n /**\n * **Edit mode**\n *\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 *\n * **Read-only mode**\n *\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 SkyCellType[\"Autocomplete\"] = \"skyCellAutocomplete\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as a currency amount.\n *\n * **Read-only mode**\n *\n * Formats the display as currency using [SKY UX numeric components](https://developer.blackbaud.com/skyux/components/numeric).\n */\n SkyCellType[\"Currency\"] = \"skyCellCurrency\";\n /**\n * **Edit and read-only modes**\n *\n * Combines SkyCellType.Currency and SkyCellType.Validator, where the value is displayed as a currency and passed to a validator function.\n */\n SkyCellType[\"CurrencyValidator\"] = \"skyCellCurrencyValidator\";\n /**\n * **Edit mode**\n *\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 *\n * **Read-only mode**\n *\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 SkyCellType[\"Date\"] = \"skyCellDate\";\n /**\n * **Edit mode**\n *\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 *\n * **Read-only mode**\n *\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 SkyCellType[\"Lookup\"] = \"skyCellLookup\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as HTML number `inputs`. Only numbers can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will render as the number value.\n */\n SkyCellType[\"Number\"] = \"skyCellNumber\";\n /**\n * **Edit and read-only modes**\n *\n * Combines SkyCellType.Number and SkyCellType.Validator, where the value is displayed as a number and passed to a validator function.\n */\n SkyCellType[\"NumberValidator\"] = \"skyCellNumberValidator\";\n /**\n * **Edit and read-only modes**\n *\n * The header and cells in the column will render right aligned.\n */\n SkyCellType[\"RightAligned\"] = \"skyCellRightAligned\";\n /**\n * **Edit and read-only modes**\n *\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 SkyCellType[\"RowSelector\"] = \"skyCellRowSelector\";\n /**\n * **Read-only mode**\n *\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 SkyCellType[\"Template\"] = \"skyCellTemplate\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as HTML text `inputs`. Any characters can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will render as their string value.\n */\n SkyCellType[\"Text\"] = \"skyCellText\";\n /**\n * **Edit and read-only modes**\n *\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 a `SkyAgGridValidatorProperties` object as `skyComponentProperties` to [column definition's `cellRendererParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing), like `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 SkyCellType[\"Validator\"] = \"skyCellValidator\";\n})(SkyCellType || (SkyCellType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBaUdYO0FBakdELFdBQVksV0FBVztJQUNyQjs7Ozs7Ozs7T0FRRztJQUNILG1EQUFvQyxDQUFBO0lBQ3BDOzs7Ozs7OztPQVFHO0lBQ0gsMkNBQTRCLENBQUE7SUFDNUI7Ozs7T0FJRztJQUNILDZEQUE4QyxDQUFBO0lBQzlDOzs7Ozs7OztPQVFHO0lBQ0gsbUNBQW9CLENBQUE7SUFDcEI7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7Ozs7Ozs7T0FRRztJQUNILHVDQUF3QixDQUFBO0lBQ3hCOzs7O09BSUc7SUFDSCx5REFBMEMsQ0FBQTtJQUMxQzs7OztPQUlHO0lBQ0gsbURBQW9DLENBQUE7SUFDcEM7Ozs7T0FJRztJQUNILGlEQUFrQyxDQUFBO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBNEIsQ0FBQTtJQUM1Qjs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7O09BSUc7SUFDSCw2Q0FBOEIsQ0FBQTtBQUNoQyxDQUFDLEVBakdXLFdBQVcsS0FBWCxXQUFXLFFBaUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlc2UgY29sdW1uIHR5cGVzIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIEFHIEdyaWQgW2NvbHVtbiBkZWZpbml0aW9uIGB0eXBlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKSB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMuXG4gKiBBbnkgW1NLWSBVWCBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cykgY2FuIGJlIG1hZGUgaW50byBhIFtjZWxsIGVkaXRvcl0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdG9yLykgb3IgW2NlbGwgcmVuZGVyZXJdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLXJlbmRlcmluZy1jb21wb25lbnRzLykgY29tcG9uZW50LiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgYSBjb21wb25lbnQgdGhhdCBkb2VzIG5vdCBoYXZlIGEgY29sdW1uIGRlZmluaXRpb24geWV0LCBwbGVhc2UgY29uc2lkZXIgW2NvbnRyaWJ1dGluZyBpdF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb250cmlidXRlL2NvbnRyaWJ1dGlvbi1wcm9jZXNzKSB0byB0aGUgU0tZIFVYIGRhdGEgZW50cnkgZ3JpZCBtb2R1bGUsIG9yIFtmaWxlIGFuIGlzc3VlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbnRyaWJ1dGUvY29udHJpYnV0aW9uLXByb2Nlc3MvZmlsZS1pc3N1ZSkgaW4gdGhlIFtgQHNreXV4L2FnLWdyaWRgIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2JhdWQvc2t5dXgtYWctZ3JpZCkuXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxUeXBlIHtcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGF1dG9jb21wbGV0ZSBjb21wb25lbnRzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKS4gWW91IGNhbiBzZXQgYW55IG9mIHRoZSBhdXRvY29tcGxldGUgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zYCBpbiB0aGUgW2NvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxFZGl0b3JQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLiBUaGVzZSBwYXJhbXMgY2FuIGJlIHVwZGF0ZWQgYXMgb3RoZXIgY2VsbCBlZGl0cyBhcmUgbWFkZSBvciBbcHJvdmlkZWQgZHluYW1pY2FsbHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLWVkaXRpbmcvI2R5bmFtaWMtcGFyYW1ldGVycykgYmFzZWQgb24gb3RoZXIgY2VsbCB2YWx1ZXMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS4gVGV4dCBjYW4gYmUgZW50ZXJlZCBhbmQgYSB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSBwcm92aWRlZCBsaXN0LlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZSdzIG5hbWUgcHJvcGVydHkgYnkgZGVmYXVsdC4gSWYgdGhlIGF1dG9jb21wbGV0ZSBuZWVkcyB0byBzaG93IGEgZGlmZmVyZW50IHByb3BlcnR5IG9yIG5lZWRzIHRvIGJlIGZvcm1hdHRlZCBpbiBhbnkgd2F5LCB5b3UgY2FuIFtkZWZpbmUgYSBgdmFsdWVGb3JtYXR0ZXJgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtdmFsdWUtZm9ybWF0dGVycy8pIG9uIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICovXG4gIEF1dG9jb21wbGV0ZSA9ICdza3lDZWxsQXV0b2NvbXBsZXRlJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBhIGN1cnJlbmN5IGFtb3VudC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIEZvcm1hdHMgdGhlIGRpc3BsYXkgYXMgY3VycmVuY3kgdXNpbmcgW1NLWSBVWCBudW1lcmljIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9udW1lcmljKS5cbiAgICovXG4gIEN1cnJlbmN5ID0gJ3NreUNlbGxDdXJyZW5jeScsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqXG4gICAqIENvbWJpbmVzIFNreUNlbGxUeXBlLkN1cnJlbmN5IGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBjdXJyZW5jeSBhbmQgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uLlxuICAgKi9cbiAgQ3VycmVuY3lWYWxpZGF0b3IgPSAnc2t5Q2VsbEN1cnJlbmN5VmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGRhdGVwaWNrZXIgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtc2AgaW4gdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsRWRpdG9yUGFyYW1zYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS4gVGhlc2UgcGFyYW1zIGNhbiBiZSB1cGRhdGVkIGFzIG90aGVyIGNlbGwgZWRpdHMgYXJlIG1hZGUgb3IgW3Byb3ZpZGVkIGR5bmFtaWNhbGx5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0aW5nLyNkeW5hbWljLXBhcmFtZXRlcnMpIGJhc2VkIG9uIG90aGVyIGNlbGwgdmFsdWVzLiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuIERhdGUgdmFsdWVzIGNhbiBiZSBlbnRlcmVkLlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGZvcm1hdHRlZCBhcyBgTU0tREQtWVlZWWAsIG9yIHRoZSBkYXRlIGZvcm1hdCBvZiB0aGUgbG9jYWxlIHBhc3NlZCB0byBgZ2V0R3JpZE9wdGlvbnMoKWAuIElmIHlvdSB3b3VsZCBsaWtlIHRvIG92ZXJ3cml0ZSB0aGlzIGZvcm1hdCwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIERhdGUgPSAnc2t5Q2VsbERhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIFtTS1kgVVggbG9va3VwIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtdjUvY29tcG9uZW50cy9sb29rdXApLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGxvb2t1cCBjb21wb25lbnQncyBwcm9wZXJ0aWVzIGJ5IHBhc3NpbmcgYFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBUZXh0IGNhbiBiZSBlbnRlcmVkIGFuZCBhIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGxpc3QuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyB0aGUgY29sdW1uIHdpbGwgZGlzcGxheSwgYnkgZGVmYXVsdCwgZWl0aGVyOiB0aGUgbmFtZShzKSBvZiB0aGUgc2VsZWN0ZWQgdmFsdWUocykgaWYgdGhlcmUgYXJlIGxlc3MgdGhhbiA2LCBvciBhIHN1bW1hcnkgY291bnQgb2YgdGhlIHZhbHVlcyBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIDUuIElmIHRoZSBsb29rdXAgbmVlZHMgdG8gc2hvdyBhIGRpZmZlcmVudCBwcm9wZXJ0eSBvciBuZWVkcyB0byBiZSBmb3JtYXR0ZWQgaW4gYW55IHdheSwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqL1xuICBMb29rdXAgPSAnc2t5Q2VsbExvb2t1cCcsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgSFRNTCBudW1iZXIgYGlucHV0c2AuIE9ubHkgbnVtYmVycyBjYW4gYmUgZW50ZXJlZC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgYXMgdGhlIG51bWJlciB2YWx1ZS5cbiAgICovXG4gIE51bWJlciA9ICdza3lDZWxsTnVtYmVyJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogQ29tYmluZXMgU2t5Q2VsbFR5cGUuTnVtYmVyIGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBudW1iZXIgYW5kIHBhc3NlZCB0byBhIHZhbGlkYXRvciBmdW5jdGlvbi5cbiAgICovXG4gIE51bWJlclZhbGlkYXRvciA9ICdza3lDZWxsTnVtYmVyVmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogVGhlIGhlYWRlciBhbmQgY2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIHJlbmRlciByaWdodCBhbGlnbmVkLlxuICAgKi9cbiAgUmlnaHRBbGlnbmVkID0gJ3NreUNlbGxSaWdodEFsaWduZWQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIFtTS1kgVVggY2hlY2tib3ggY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94KS4gSXQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBtdWx0aXBsZSByb3dzLCBhbmQgYWRkcyBhIGhpZ2hsaWdodCB0byBzZWxlY3RlZCByb3dzLiBUaGUgW0FnIEdyaWQgYHJvd05vZGVgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcm93LW5vZGUvKSB3aWxsIGJlIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc3RhdGUuXG4gICAqL1xuICBSb3dTZWxlY3RvciA9ICdza3lDZWxsUm93U2VsZWN0b3InLFxuICAvKipcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgaW4gYSBgVGVtcGxhdGVSZWZgIHBhc3NlZCBpbiB0aGUgY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlYCBwcm9wZXJ0eSwgd2l0aCBgdmFsdWVgIGFuZCBgcm93YCBjb250ZXh0LiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuXG4gICAqL1xuICBUZW1wbGF0ZSA9ICdza3lDZWxsVGVtcGxhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIEhUTUwgdGV4dCBgaW5wdXRzYC4gQW55IGNoYXJhY3RlcnMgY2FuIGJlIGVudGVyZWQuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZWlyIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIFRleHQgPSAnc2t5Q2VsbFRleHQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgZmxhZ3MgZXJyb25lb3VzIGVudHJpZXMuIFlvdSBjYW4gc2V0IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24gYW5kIG1lc3NhZ2UgYnkgcGFzc2luZyBhIGBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzYCBvYmplY3QgYXMgYHNreUNvbXBvbmVudFByb3BlcnRpZXNgIHRvIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLCBsaWtlIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcmAgYW5kIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2VgLiBTa3lDZWxsVHlwZS5WYWxpZGF0b3IgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgY2VsbCB0eXBlcywgc3VjaCBhcyBTa3lDZWxsVHlwZS5BdXRvY29tcGxldGUgb3IgU2t5Q2VsbFR5cGUuRGF0ZSwgYnkgdXNpbmcgdGhlIGFycmF5IHN5bnRheCBmb3IgdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGB0eXBlYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS5cbiAgICovXG4gIFZhbGlkYXRvciA9ICdza3lDZWxsVmFsaWRhdG9yJyxcbn1cbiJdfQ==","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, DOCUMENT, ElementRef, HostBinding, Input, booleanAttribute, effect, inject, input, numberAttribute, viewChild, } from '@angular/core';\nimport { SkyIdModule, SkyMutationObserverService } from '@skyux/core';\nimport { SkyViewkeeperModule } from '@skyux/core';\nimport { SkyThemeService, } from '@skyux/theme';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { BehaviorSubject, ReplaySubject, Subject, combineLatest, distinctUntilChanged, of, take, takeUntil, } from 'rxjs';\nimport { getSkyAgGridTheme, getSkyAgGridThemeClassName, } from '../../styles/ag-grid-theme';\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\nimport { SkyCellType } from './types/cell-type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\nlet idIndex = 0;\nexport class SkyAgGridWrapperComponent {\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 set compact(value) {\n this.#isCompact.next(value);\n }\n get viewkeeperClasses() {\n return this.#_viewkeeperClasses;\n }\n set viewkeeperClasses(value) {\n this.#_viewkeeperClasses = value;\n this.#changeDetector.markForCheck();\n }\n get #isInEditMode() {\n if (this.agGrid && this.agGrid.api) {\n const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;\n if (primaryGridEditing) {\n return true;\n }\n else if (this.agGrid.api.getGridOption('masterDetail')) {\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid) => {\n if (detailGrid?.api && detailGrid.api.getEditingCells().length > 0) {\n innerEditing = true;\n }\n });\n return innerEditing;\n }\n }\n return false;\n }\n #_viewkeeperClasses;\n #ngUnsubscribe;\n #themeSvc;\n #wrapperClasses;\n #adapterService;\n #changeDetector;\n #parentChangeDetector;\n #elementRef;\n #document;\n #mutationObserverService;\n #isCompact;\n #hasEditableClass;\n constructor() {\n this.isNormalLayout = false;\n /**\n * The minimum height of the grid in pixels. The default value is `50`.\n */\n this.minHeight = input(50, {\n transform: numberAttribute,\n });\n this.skyAgGridDiv = viewChild('skyAgGridDiv');\n this.#_viewkeeperClasses = [];\n this.#ngUnsubscribe = new Subject();\n this.#themeSvc = inject(SkyThemeService, {\n optional: true,\n });\n this.#wrapperClasses = new BehaviorSubject([\n `ag-theme-sky-data-grid-default`,\n ]);\n this.#adapterService = inject(SkyAgGridAdapterService);\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#parentChangeDetector = inject(ChangeDetectorRef, {\n optional: true,\n skipSelf: true,\n });\n this.#elementRef = inject((ElementRef));\n this.#document = inject(DOCUMENT);\n this.#mutationObserverService = inject(SkyMutationObserverService);\n this.#isCompact = new BehaviorSubject(false);\n this.#hasEditableClass = new ReplaySubject(1);\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 effect(() => {\n const minHeight = this.minHeight();\n const skyAgGridDiv = this.skyAgGridDiv()?.nativeElement;\n skyAgGridDiv?.style.setProperty('--sky-ag-grid-min-height', `${minHeight}px`);\n });\n }\n ngAfterContentInit() {\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('.ag-header', '.ag-body-horizontal-scroll');\n }\n else {\n this.viewkeeperClasses.push('.ag-header');\n }\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) => {\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((t) => `sky-ag-grid-cell-editing-${t}`);\n this.#wrapperClasses.next([\n ...this.#wrapperClasses.getValue(),\n ...addClasses,\n ]);\n if (types.includes(SkyCellType.Template) &&\n params.rowIndex !== null) {\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(this.#wrapperClasses\n .getValue()\n .filter((c) => !c.startsWith('sky-ag-grid-cell-editing-')));\n });\n this.agGrid.cellFocused\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const context = event.context || {};\n context['lastFocusedCell'] = {\n rowIndex: event.rowIndex,\n column: typeof event.column === 'object'\n ? event.column?.getColId()\n : `${event.column}`,\n };\n event.api?.setGridOption('context', context);\n });\n this.agGrid.headerFocused\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const context = event.context || {};\n context['lastFocusedCell'] = {\n rowIndex: null,\n column: event.column?.getUniqueId\n ? event.column.getUniqueId()\n : `${event.column}`,\n };\n event.api?.setGridOption('context', context);\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#hasEditableClass.complete();\n this.#isCompact.complete();\n this.#wrapperClasses.complete();\n }\n ngOnInit() {\n combineLatest([\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(hasEditableClass, isCompact, settings?.currentSettings);\n });\n }\n ngAfterViewInit() {\n const agGridElement = this.#elementRef.nativeElement.querySelector('ag-grid-angular');\n const callback = () => {\n this.#hasEditableClass.next(!!agGridElement?.classList.contains('sky-ag-grid-editable'));\n };\n if (agGridElement) {\n const agGridClassObserver = 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 * Prevent closing a modal when focused in AG Grid.\n */\n onKeyUpEscape($event) {\n $event.stopPropagation();\n this.agGrid?.api.stopEditing(true);\n }\n onGridKeydown(event) {\n if (this.agGrid && !this.#isInEditMode && event.key === 'Tab') {\n const idToFocus = event.shiftKey\n ? this.beforeAnchorId\n : this.afterAnchorId;\n this.#adapterService.setFocusedElementById(this.#elementRef.nativeElement, idToFocus);\n }\n }\n onAnchorFocus(event) {\n const relatedTarget = event.relatedTarget;\n const previousWasGrid = relatedTarget && this.#elementRef.nativeElement.contains(relatedTarget);\n if (this.agGrid && !previousWasGrid) {\n this.#elementRef.nativeElement\n .querySelector('.ag-tab-guard.ag-tab-guard-top')\n ?.focus();\n }\n }\n #moveHorizontalScroll() {\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 (scrollbar.style.height !==\n scrollbar.style.getPropertyValue('--sky-ag-body-horizontal-scroll-width')) {\n scrollbar.style.setProperty('--sky-ag-body-horizontal-scroll-width', scrollbar.style.height);\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 }\n else if (!toTop && isTop) {\n const fragment = this.#document.createDocumentFragment();\n fragment.appendChild(scrollbar);\n floatingBottom.after(fragment);\n }\n }\n }\n #updateGridTheme(hasEditableClass, isCompact, themeSettings) {\n const skyAgGridTheme = getSkyAgGridTheme(hasEditableClass ? 'data-entry-grid' : 'data-grid');\n this.agGrid?.api.setGridOption('theme', skyAgGridTheme);\n const skyAgGridThemeClassName = getSkyAgGridThemeClassName(hasEditableClass, themeSettings, isCompact);\n const previousValue = this.#wrapperClasses.getValue();\n let value = [\n ...previousValue.filter((c) => !c.startsWith('ag-theme-')),\n skyAgGridThemeClassName,\n ];\n const textSelectionClass = 'sky-ag-grid-text-selection';\n if (this.#getTextSelection(hasEditableClass)) {\n value.push(textSelectionClass);\n }\n else {\n value = value.filter((c) => c !== textSelectionClass);\n }\n this.#wrapperClasses.next([...new Set(value)]);\n }\n #getTextSelection(hasEditableClass) {\n if (this.agGrid?.gridOptions?.context?.enableCellTextSelection) {\n return !hasEditableClass;\n }\n else {\n return false;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.5\", type: SkyAgGridWrapperComponent, isStandalone: true, selector: \"sky-ag-grid-wrapper\", inputs: { compact: { classPropertyName: \"compact\", publicName: \"compact\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, minHeight: { classPropertyName: \"minHeight\", publicName: \"minHeight\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.sky-ag-grid-layout-normal\": \"this.isNormalLayout\" } }, queries: [{ propertyName: \"agGrid\", first: true, predicate: AgGridAngular, descendants: true, static: true }], viewQueries: [{ propertyName: \"skyAgGridDiv\", first: true, predicate: [\"skyAgGridDiv\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<span\\n class=\\\"nav-anchor\\\"\\n tabindex=\\\"0\\\"\\n [id]=\\\"beforeAnchorId\\\"\\n (focusin)=\\\"onAnchorFocus($event)\\\"\\n>\\n</span>\\n<div\\n #skyAgGridDiv\\n class=\\\"sky-ag-grid\\\"\\n skyViewkeeperOmitShadow=\\\".ag-body-horizontal-scroll\\\"\\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 (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\", dependencies: [{ kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"ngmodule\", type: SkyViewkeeperModule }, { kind: \"directive\", type: i1.λ3, selector: \"[skyViewkeeper]\", inputs: [\"skyViewkeeper\", \"skyViewkeeperOmitShadow\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, NgClass, SkyIdModule, SkyViewkeeperModule], template: \"<span\\n class=\\\"nav-anchor\\\"\\n tabindex=\\\"0\\\"\\n [id]=\\\"beforeAnchorId\\\"\\n (focusin)=\\\"onAnchorFocus($event)\\\"\\n>\\n</span>\\n<div\\n #skyAgGridDiv\\n class=\\\"sky-ag-grid\\\"\\n skyViewkeeperOmitShadow=\\\".ag-body-horizontal-scroll\\\"\\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 (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\" }]\n }], ctorParameters: () => [], propDecorators: { agGrid: [{\n type: ContentChild,\n args: [AgGridAngular, {\n static: true,\n }]\n }], isNormalLayout: [{\n type: HostBinding,\n args: ['class.sky-ag-grid-layout-normal']\n }], compact: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEQsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDBCQUEwQixHQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBD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LEVBQUUsSUFBSTtxQkFDYjtnQkFJTSxjQUFjO3NCQURwQixXQUFXO3VCQUFDLGlDQUFpQztnQkFRbkMsT0FBTztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzLFxuICBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlLFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50LFxuICBDZWxsRm9jdXNlZEV2ZW50LFxuICBIZWFkZXJGb2N1c2VkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG9mLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBnZXRTa3lBZ0dyaWRUaGVtZSxcbiAgZ2V0U2t5QWdHcmlkVGhlbWVDbGFzc05hbWUsXG59IGZyb20gJy4uLy4uL3N0eWxlcy9hZy1ncmlkLXRoZW1lJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nQ2xhc3MsIFNreUlkTW9kdWxlLCBTa3lWaWV3a2VlcGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlIGEgY29tcGFjdCBsYXlvdXQgZm9yIHRoZSBncmlkIHdoZW4gdXNpbmcgbW9kZXJuIHRoZW1lLiBDb21wYWN0IGxheW91dCB1c2VzXG4gICAqIGEgc21hbGxlciBmb250IHNpemUgYW5kIHJvdyBoZWlnaHQgdG8gZGlzcGxheSBtb3JlIGRhdGEgaW4gYSBzbWFsbGVyIHNwYWNlLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI2lzQ29tcGFjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGdyaWQgaW4gcGl4ZWxzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgNTBgLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1pbkhlaWdodCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4oNTAsIHtcbiAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIGFmdGVyQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGJlZm9yZUFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBncmlkSWQ6IHN0cmluZztcbiAgcHVibGljIHdyYXBwZXJDbGFzc2VzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgcHVibGljIGdldCB2aWV3a2VlcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlld2tlZXBlckNsYXNzZXModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgI2lzSW5FZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgdGhpcy5hZ0dyaWQuYXBpKSB7XG4gICAgICBjb25zdCBwcmltYXJ5R3JpZEVkaXRpbmcgPSB0aGlzLmFnR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMDtcbiAgICAgIGlmIChwcmltYXJ5R3JpZEVkaXRpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuYWdHcmlkLmFwaS5nZXRHcmlkT3B0aW9uKCdtYXN0ZXJEZXRhaWwnKSkge1xuICAgICAgICBsZXQgaW5uZXJFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5mb3JFYWNoRGV0YWlsR3JpZEluZm8oKGRldGFpbEdyaWQpID0+IHtcbiAgICAgICAgICBpZiAoZGV0YWlsR3JpZD8uYXBpICYmIGRldGFpbEdyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlubmVyRWRpdGluZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW5uZXJFZGl0aW5nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2t5QWdHcmlkRGl2ID1cbiAgICB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdza3lBZ0dyaWREaXYnKTtcblxuICAjX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICN3cmFwcGVyQ2xhc3NlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtcbiAgICBgYWctdGhlbWUtc2t5LWRhdGEtZ3JpZC1kZWZhdWx0YCxcbiAgXSk7XG4gIHJlYWRvbmx5ICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNwYXJlbnRDaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNraXBTZWxmOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbXV0YXRpb25PYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UpO1xuICByZWFkb25seSAjaXNDb21wYWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5ICNoYXNFZGl0YWJsZUNsYXNzID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWRJbmRleCsrO1xuICAgIHRoaXMuYWZ0ZXJBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWFmdGVyLScgKyBpZEluZGV4O1xuICAgIHRoaXMuYmVmb3JlQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1iZWZvcmUtJyArIGlkSW5kZXg7XG4gICAgdGhpcy5ncmlkSWQgPSAnc2t5LWFnLWdyaWQtJyArIGlkSW5kZXg7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3NlcyQgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5hc09ic2VydmFibGUoKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBtaW5IZWlnaHQgPSB0aGlzLm1pbkhlaWdodCgpO1xuICAgICAgY29uc3Qgc2t5QWdHcmlkRGl2ID0gdGhpcy5za3lBZ0dyaWREaXYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgIHNreUFnR3JpZERpdj8uc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICctLXNreS1hZy1ncmlkLW1pbi1oZWlnaHQnLFxuICAgICAgICBgJHttaW5IZWlnaHR9cHhgLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkKSB7XG4gICAgICBjb25zdCBkb21MYXlvdXQgPSB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uZG9tTGF5b3V0O1xuICAgICAgaWYgKGRvbUxheW91dCA9PT0gJ2F1dG9IZWlnaHQnKSB7XG4gICAgICAgIGlmICh0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsKSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKFxuICAgICAgICAgICAgJy5hZy1oZWFkZXInLFxuICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaCgnLmFnLWhlYWRlcicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRvbUxheW91dCA9PT0gJ25vcm1hbCcpIHtcbiAgICAgICAgdGhpcy5pc05vcm1hbExheW91dCA9IHRydWU7XG4gICAgICAgIHRoaXMuI3BhcmVudENoYW5nZURldGVjdG9yPy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmZpcnN0RGF0YVJlbmRlcmVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5yb3dEYXRhVXBkYXRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdGFydGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwYXJhbXMuY29sRGVmLnR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheShwYXJhbXMuY29sRGVmLnR5cGUpXG4gICAgICAgICAgICAgID8gcGFyYW1zLmNvbERlZi50eXBlXG4gICAgICAgICAgICAgIDogW3BhcmFtcy5jb2xEZWYudHlwZV07XG4gICAgICAgICAgICBjb25zdCBhZGRDbGFzc2VzID0gdHlwZXMubWFwKFxuICAgICAgICAgICAgICAodCkgPT4gYHNreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0ke3R9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFtcbiAgICAgICAgICAgICAgLi4udGhpcy4jd3JhcHBlckNsYXNzZXMuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgICAgLi4uYWRkQ2xhc3NlcyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0eXBlcy5pbmNsdWRlcyhTa3lDZWxsVHlwZS5UZW1wbGF0ZSkgJiZcbiAgICAgICAgICAgICAgcGFyYW1zLnJvd0luZGV4ICE9PSBudWxsXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5hZ0dyaWQ/LmFwaS5zZXRGb2N1c2VkQ2VsbChwYXJhbXMucm93SW5kZXgsIHBhcmFtcy5jb2x1bW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFxuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXNcbiAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLScpKSxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZXZlbnQuY29udGV4dCB8fCB7fTtcblxuICAgICAgICAgIGNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IGV2ZW50LnJvd0luZGV4LFxuICAgICAgICAgICAgY29sdW1uOlxuICAgICAgICAgICAgICB0eXBlb2YgZXZlbnQuY29sdW1uID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgID8gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpXG4gICAgICAgICAgICAgICAgOiBgJHtldmVudC5jb2x1bW59YCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZXZlbnQuYXBpPy5zZXRHcmlkT3B0aW9uKCdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFnR3JpZC5oZWFkZXJGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEhlYWRlckZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgICAgY29udGV4dFsnbGFzdEZvY3VzZWRDZWxsJ10gPSB7XG4gICAgICAgICAgICByb3dJbmRleDogbnVsbCxcbiAgICAgICAgICAgIGNvbHVtbjogZXZlbnQuY29sdW1uPy5nZXRVbmlxdWVJZFxuICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbi5nZXRVbmlxdWVJZCgpXG4gICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGV2ZW50LmFwaT8uc2V0R3JpZE9wdGlvbignY29udGV4dCcsIGNvbnRleHQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MuY29tcGxldGUoKTtcbiAgICB0aGlzLiNpc0NvbXBhY3QuY29tcGxldGUoKTtcbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3Q8W2Jvb2xlYW4sIGJvb2xlYW4sIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UgfCB1bmRlZmluZWRdPihbXG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiNpc0NvbXBhY3QucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSA/PyBvZih1bmRlZmluZWQpLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChbaGFzRWRpdGFibGVDbGFzcywgaXNDb21wYWN0LCBzZXR0aW5nc10pID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlR3JpZFRoZW1lKFxuICAgICAgICAgIGhhc0VkaXRhYmxlQ2xhc3MsXG4gICAgICAgICAgaXNDb21wYWN0LFxuICAgICAgICAgIHNldHRpbmdzPy5jdXJyZW50U2V0dGluZ3MsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FnLWdyaWQtYW5ndWxhcicpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5uZXh0KFxuICAgICAgICAhIWFnR3JpZEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnc2t5LWFnLWdyaWQtZWRpdGFibGUnKSxcbiAgICAgICk7XG4gICAgfTtcbiAgICBpZiAoYWdHcmlkRWxlbWVudCkge1xuICAgICAgY29uc3QgYWdHcmlkQ2xhc3NPYnNlcnZlciA9XG4gICAgICAgIHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLmNyZWF0ZShjYWxsYmFjayk7XG4gICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLm9ic2VydmUoYWdHcmlkRWxlbWVudCwge1xuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy4jbmdVbnN1YnNjcmliZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBjbG9zaW5nIGEgbW9kYWwgd2hlbiBmb2N1c2VkIGluIEFHIEdyaWQuXG4gICAqL1xuICBwdWJsaWMgb25LZXlVcEVzY2FwZSgkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWdHcmlkPy5hcGkuc3RvcEVkaXRpbmcodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhdGhpcy4jaXNJbkVkaXRNb2RlICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIGNvbnN0IGlkVG9Gb2N1cyA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgID8gdGhpcy5iZWZvcmVBbmNob3JJZFxuICAgICAgICA6IHRoaXMuYWZ0ZXJBbmNob3JJZDtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEZvY3VzZWRFbGVtZW50QnlJZChcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpZFRvRm9jdXMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFuY2hvckZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJldmlvdXNXYXNHcmlkID1cbiAgICAgIHJlbGF0ZWRUYXJnZXQgJiYgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpO1xuXG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICFwcmV2aW91c1dhc0dyaWQpIHtcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAucXVlcnlTZWxlY3RvcignLmFnLXRhYi1ndWFyZC5hZy10YWItZ3VhcmQtdG9wJylcbiAgICAgICAgPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCB0b1RvcCA9ICEhdGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGw7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctcm9vdCcpO1xuICAgIGNvbnN0IGhlYWRlciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1oZWFkZXInKTtcbiAgICBjb25zdCBmbG9hdGluZ0JvdHRvbSA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1mbG9hdGluZy1ib3R0b20nKTtcbiAgICBjb25zdCBzY3JvbGxiYXIgPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgIGlmIChyb290ICYmIGhlYWRlciAmJiBmbG9hdGluZ0JvdHRvbSAmJiBzY3JvbGxiYXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCAhPT1cbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJyxcbiAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNUb3AgPSByb290LmNoaWxkcmVuWzFdLm1hdGNoZXMoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgICBpZiAodG9Ub3AgJiYgIWlzVG9wKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICBoZWFkZXIuYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfSBlbHNlIGlmICghdG9Ub3AgJiYgaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGZsb2F0aW5nQm90dG9tLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjdXBkYXRlR3JpZFRoZW1lKFxuICAgIGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4sXG4gICAgaXNDb21wYWN0OiBib29sZWFuLFxuICAgIHRoZW1lU2V0dGluZ3M/OiBTa3lUaGVtZVNldHRpbmdzLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBza3lBZ0dyaWRUaGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKFxuICAgICAgaGFzRWRpdGFibGVDbGFzcyA/ICdkYXRhLWVudHJ5LWdyaWQnIDogJ2RhdGEtZ3JpZCcsXG4gICAgKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEdyaWRPcHRpb24oJ3RoZW1lJywgc2t5QWdHcmlkVGhlbWUpO1xuICAgIGNvbnN0IHNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lID0gZ2V0U2t5QWdHcmlkVGhlbWVDbGFzc05hbWUoXG4gICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgdGhlbWVTZXR0aW5ncyxcbiAgICAgIGlzQ29tcGFjdCxcbiAgICApO1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpO1xuICAgIGxldCB2YWx1ZSA9IFtcbiAgICAgIC4uLnByZXZpb3VzVmFsdWUuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSksXG4gICAgICBza3lBZ0dyaWRUaGVtZUNsYXNzTmFtZSxcbiAgICBdO1xuICAgIGNvbnN0IHRleHRTZWxlY3Rpb25DbGFzcyA9ICdza3ktYWctZ3JpZC10ZXh0LXNlbGVjdGlvbic7XG4gICAgaWYgKHRoaXMuI2dldFRleHRTZWxlY3Rpb24oaGFzRWRpdGFibGVDbGFzcykpIHtcbiAgICAgIHZhbHVlLnB1c2godGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoKGMpID0+IGMgIT09IHRleHRTZWxlY3Rpb25DbGFzcyk7XG4gICAgfVxuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoWy4uLm5ldyBTZXQodmFsdWUpXSk7XG4gIH1cblxuICAjZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiAhaGFzRWRpdGFibGVDbGFzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJuYXYtYW5jaG9yXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2lkXT1cImJlZm9yZUFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbjxkaXZcbiAgI3NreUFnR3JpZERpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgc2t5Vmlld2tlZXBlck9taXRTaGFkb3c9XCIuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbFwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtjbGFzcy5za3ktYWctZ3JpZC10b3Atc2Nyb2xsYmFyXT1cIlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQgJiZcbiAgICBhZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0WydlbmFibGVUb3BTY3JvbGwnXVxuICBcIlxuICBbbmdDbGFzc109XCJ3cmFwcGVyQ2xhc3NlcyQgfCBhc3luY1wiXG4gIFtpZF09XCJncmlkSWRcIlxuICBbc2t5Vmlld2tlZXBlcl09XCJ2aWV3a2VlcGVyQ2xhc3Nlc1wiXG4gIChrZXlkb3duKT1cIm9uR3JpZEtleWRvd24oJGV2ZW50KVwiXG4gIChrZXl1cC5lc2NhcGUpPVwib25LZXlVcEVzY2FwZSgkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuPHNwYW5cbiAgdGFiaW5kZXg9XCIwXCJcbiAgY2xhc3M9XCJuYXYtYW5jaG9yXCJcbiAgW2lkXT1cImFmdGVyQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuIl19","import { Directive, Input, contentChildren, effect, inject, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/data-manager\";\nfunction toColumnWidthName(breakpoint) {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n/**\n * @internal\n */\nexport class SkyAgGridDataManagerAdapterDirective {\n #currentAgGrid;\n #currentDataState;\n #currentSkyAgGridWrapper;\n #dataStateSub;\n #viewConfig;\n #ngUnsubscribe;\n #changeDetector;\n #dataManagerSvc;\n #breakpoint;\n constructor(changeDetector, dataManagerSvc) {\n this.agGridList = contentChildren(AgGridAngular, {\n descendants: true,\n });\n this.skyAgGridWrapperList = contentChildren(SkyAgGridWrapperComponent, {\n descendants: true,\n });\n this.#ngUnsubscribe = new Subject();\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n this.#changeDetector = changeDetector;\n this.#dataManagerSvc = dataManagerSvc;\n effect(() => {\n const list = this.agGridList();\n this.#checkForAgGrid(list);\n });\n effect(() => {\n const list = this.skyAgGridWrapperList();\n this.#checkForSkyAgGridWrapper(list);\n });\n effect(() => {\n const breakpoint = this.#breakpoint();\n if (breakpoint) {\n this.#applyColumnWidths(breakpoint);\n }\n });\n }\n ngAfterContentInit() {\n if (this.viewId) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n this.#viewConfig = this.#dataManagerSvc.getViewById(this.viewId);\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #checkForAgGrid(agGridList) {\n const agGrid = agGridList[0];\n const agGridCount = agGridList.length;\n if (agGrid) {\n if (agGrid !== this.#currentAgGrid) {\n this.#registerAgGrid(agGrid);\n }\n if (agGridCount > 1) {\n console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');\n }\n }\n }\n #checkForSkyAgGridWrapper(wrappers) {\n const count = wrappers.length;\n const wrapper = wrappers[0];\n /* istanbul ignore else */\n if (wrapper !== this.#currentSkyAgGridWrapper) {\n this.#registerSkyAgGridWrapper(wrapper);\n }\n if (count > 1) {\n console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');\n }\n }\n #unregisterAgGrid() {\n this.#currentAgGrid = undefined;\n /* istanbul ignore if */\n if (this.#dataStateSub) {\n this.#dataStateSub.unsubscribe();\n }\n }\n #unregisterSkyAgGridWrapper() {\n this.#currentSkyAgGridWrapper = undefined;\n }\n #registerSkyAgGridWrapper(wrapper) {\n this.#unregisterSkyAgGridWrapper();\n this.#currentSkyAgGridWrapper = wrapper;\n setTimeout(() => {\n if (this.#currentSkyAgGridWrapper) {\n this.#currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n #registerAgGrid(agGrid) {\n this.#unregisterAgGrid();\n this.#currentAgGrid = agGrid;\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) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n });\n if (agGrid.gridOptions?.context?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n this.#applyColumnWidths();\n }\n });\n agGrid.columnMoved\n .pipe(takeUntil(this.#ngUnsubscribe), filter((event) => ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source)))\n .subscribe((value) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n agGrid.columnResized\n .pipe(takeUntil(this.#ngUnsubscribe), filter((event) => event.source === 'uiColumnResized'))\n .subscribe((event) => {\n const colId = event.column?.getColId();\n const width = event.column?.getActualWidth();\n const breakpoint = this.#breakpoint();\n if (colId && width && breakpoint) {\n this.#updateColumnWidth(colId, width, breakpoint);\n }\n });\n agGrid.dragStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n agGrid.rowSelected\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\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 if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n }\n else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n this.#currentDataState.selectedIds = selectedIds;\n this.#dataManagerSvc.updateDataState(this.#currentDataState, this.#viewConfig.id);\n this.#changeDetector.markForCheck();\n }\n });\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates = agGrid.api.getColumnState();\n const activeSortColumnState = gridColumnStates?.find((aGridColumnState) => aGridColumnState.sortIndex === 0) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n if (this.#viewConfig && this.#currentDataState) {\n if (activeSortColumnState) {\n const activeSortColumnDef = agGrid.api.getColumnDef(activeSortColumnState.colId);\n this.#currentDataState.activeSortOption = {\n descending: activeSortColumnState.sort === 'desc',\n id: activeSortColumnState.colId,\n propertyName: activeSortColumnDef?.field || '',\n label: activeSortColumnDef?.headerName || '',\n };\n }\n else {\n this.#currentDataState.activeSortOption = undefined;\n }\n this.#dataManagerSvc.updateDataState(this.#currentDataState, this.#viewConfig.id);\n }\n });\n }\n }\n #updateColumnsInCurrentDataState(api) {\n if (this.#viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n const viewState = this.#currentDataState.getViewStateById(this.#viewConfig.id);\n if (viewState &&\n (viewState.displayedColumnIds.length !== columnOrder.length ||\n viewState.displayedColumnIds.some((col, i) => col !== columnOrder[i]))) {\n viewState.displayedColumnIds = columnOrder;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.#viewConfig.id, viewState), this.#viewConfig.id);\n }\n }\n }\n #getColumnOrder(api) {\n return api\n .getColumnState()\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n #displayColumns(dataState) {\n const agGrid = this.#currentAgGrid;\n if (agGrid && this.#viewConfig) {\n const viewState = dataState.getViewStateById(this.#viewConfig.id);\n let displayedColumnIds = [];\n /*istanbul ignore else*/\n if (viewState?.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n const columnOrder = this.#getColumnOrder(agGrid.api);\n if (displayedColumnIds.length !== columnOrder.length ||\n displayedColumnIds.some((col, i) => col !== columnOrder[i])) {\n const hideColumns = agGrid.api\n .getColumnState()\n .map((col) => col.colId)\n .filter((colId) => !displayedColumnIds.includes(colId));\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 #applySort(dataState) {\n const agGrid = this.#currentAgGrid;\n const activeSort = dataState.activeSortOption;\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 #updateColumnWidth(colId, width, breakpoint) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n currentWidths[toColumnWidthName(breakpoint)][colId] = width;\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.viewId, viewState), this.viewId);\n }\n }\n #removeColumnWidths(colIds) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n for (const colId of colIds) {\n delete currentWidths['xs'][colId];\n delete currentWidths['sm'][colId];\n }\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.viewId, viewState), this.viewId);\n }\n }\n #applyColumnWidths(breakpoint) {\n breakpoint ??= this.#breakpoint();\n if (breakpoint) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(viewState.displayedColumnIds, viewState.columnWidths, toColumnWidthName(breakpoint));\n this.#currentAgGrid?.api.sizeColumnsToFit({ columnLimits });\n }\n }\n }\n #getGridColumnLimits(displayedColumns, currentWidths, breakpointName) {\n const gridColumnLimits = [];\n for (const column of displayedColumns) {\n const columnWidth = currentWidths[breakpointName][column];\n if (columnWidth) {\n gridColumnLimits.push({\n key: column,\n minWidth: columnWidth,\n maxWidth: columnWidth,\n });\n }\n }\n return gridColumnLimits;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.5\", type: SkyAgGridDataManagerAdapterDirective, isStandalone: true, selector: \"[skyAgGridDataManagerAdapter]\", inputs: { viewId: \"viewId\" }, queries: [{ propertyName: \"agGridList\", predicate: AgGridAngular, descendants: true, isSignal: true }, { propertyName: \"skyAgGridWrapperList\", predicate: SkyAgGridWrapperComponent, descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[skyAgGridDataManagerAdapter]' }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }], propDecorators: { viewId: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFLFNBQVMsaUJBQWlCLENBQUMsVUFBeUI7SUFDbEQsT0FBTyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0NBQW9DO0lBYy9DLGNBQWMsQ0FBNEI7SUFDMUMsaUJBQWlCLENBQWtDO0lBQ25ELHdCQUF3QixDQUF3QztJQUNoRSxhQUFhLENBQTJCO0lBQ3hDLFdBQVcsQ0FBZ0M7SUFDM0MsY0FBYyxDQUF1QjtJQUNyQyxlQUFlLENBQW9CO0lBQ25DLGVBQWUsQ0FBd0I7SUFFOUIsV0FBVyxDQUVsQjtJQUVGLFlBQ0UsY0FBaUMs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QUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsZ0JBQTBCLEVBQzFCLGFBQXNDLEVBQ3RDLGNBQTZDO1FBRTdDLE1BQU0sZ0JBQWdCLEdBQW1CLEVBQUUsQ0FBQztRQUU1QyxLQUFLLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTFELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDcEIsR0FBRyxFQUFFLE1BQU07b0JBQ1gsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxXQUFXO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs4R0E5WlUsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msa0pBTWEsYUFBYSwwRkFJM0IseUJBQXlCOzsyRkFWNUQsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFOzBIQUsvQyxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICBTa3lEYXRhVmlld0NvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2RhdGEtbWFuYWdlcic7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uUmVzaXplZEV2ZW50LFxuICBDb2x1bW5TdGF0ZSxcbiAgRHJhZ1N0b3BwZWRFdmVudCxcbiAgR3JpZEFwaSxcbiAgSUNvbHVtbkxpbWl0LFxuICBSb3dTZWxlY3RlZEV2ZW50LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcblxuZnVuY3Rpb24gdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludDogU2t5QnJlYWtwb2ludCk6ICd4cycgfCAnc20nIHtcbiAgcmV0dXJuIGJyZWFrcG9pbnQgPT09ICd4cycgPyAneHMnIDogJ3NtJztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlcl0nIH0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWV3SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWdHcmlkTGlzdCA9IGNvbnRlbnRDaGlsZHJlbjxBZ0dyaWRBbmd1bGFyPihBZ0dyaWRBbmd1bGFyLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyBza3lBZ0dyaWRXcmFwcGVyTGlzdCA9IGNvbnRlbnRDaGlsZHJlbihTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50LCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gICNjdXJyZW50QWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudERhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjZGF0YVN0YXRlU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICN2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZyB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZGF0YU1hbmFnZXJTdmM6IFNreURhdGFNYW5hZ2VyU2VydmljZTtcblxuICByZWFkb25seSAjYnJlYWtwb2ludCA9IHRvU2lnbmFsKFxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSkuYnJlYWtwb2ludENoYW5nZSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgZGF0YU1hbmFnZXJTdmM6IFNreURhdGFNYW5hZ2VyU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclN2YyA9IGRhdGFNYW5hZ2VyU3ZjO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmFnR3JpZExpc3QoKTtcblxuICAgICAgdGhpcy4jY2hlY2tGb3JBZ0dyaWQobGlzdCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuc2t5QWdHcmlkV3JhcHBlckxpc3QoKTtcblxuICAgICAgdGhpcy4jY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKGxpc3QpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKGJyZWFrcG9pbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aWV3SWQpIHtcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbJy5hZy1oZWFkZXInXSk7XG4gICAgICB0aGlzLiN2aWV3Q29uZmlnID0gdGhpcy4jZGF0YU1hbmFnZXJTdmMuZ2V0Vmlld0J5SWQodGhpcy52aWV3SWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjY2hlY2tGb3JBZ0dyaWQoYWdHcmlkTGlzdDogcmVhZG9ubHkgQWdHcmlkQW5ndWxhcltdKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gYWdHcmlkTGlzdFswXTtcbiAgICBjb25zdCBhZ0dyaWRDb3VudCA9IGFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgaWYgKGFnR3JpZCkge1xuICAgICAgaWYgKGFnR3JpZCAhPT0gdGhpcy4jY3VycmVudEFnR3JpZCkge1xuICAgICAgICB0aGlzLiNyZWdpc3RlckFnR3JpZChhZ0dyaWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWdHcmlkQ291bnQgPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2NoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcihcbiAgICB3cmFwcGVyczogcmVhZG9ubHkgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFtdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9IHdyYXBwZXJzLmxlbmd0aDtcbiAgICBjb25zdCB3cmFwcGVyID0gd3JhcHBlcnNbMF07XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh3cmFwcGVyICE9PSB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgdGhpcy4jcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXIpO1xuICAgIH1cblxuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ01vcmUgdGhhbiBvbmUgYWctZ3JpZCBjaGlsZCBjb21wb25lbnQgd2FzIGZvdW5kLiBVc2luZyB0aGUgZmlyc3QgYWctR3JpZC4nLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjdW5yZWdpc3RlckFnR3JpZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjdXJyZW50QWdHcmlkID0gdW5kZWZpbmVkO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHRoaXMuI2RhdGFTdGF0ZVN1Yikge1xuICAgICAgdGhpcy4jZGF0YVN0YXRlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgI3VucmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgI3JlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcih3cmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTtcbiAgICB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlciA9IHdyYXBwZXI7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgICB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlci52aWV3a2VlcGVyQ2xhc3NlcyA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZDogQWdHcmlkQW5ndWxhcik6IHZvaWQge1xuICAgIHRoaXMuI3VucmVnaXN0ZXJBZ0dyaWQoKTtcblxuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQgPSBhZ0dyaWQ7XG5cbiAgICBpZiAoYWdHcmlkKSB7XG4gICAgICBhZ0dyaWQuZ3JpZFJlYWR5LnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy4jdmlld0NvbmZpZyAmJiB0aGlzLnZpZXdJZCkge1xuICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcub25TZWxlY3RBbGxDbGljayA9ICgpOiB2b2lkID0+XG4gICAgICAgICAgICBhZ0dyaWQuYXBpLnNlbGVjdEFsbCgpO1xuICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcub25DbGVhckFsbENsaWNrID0gKCk6IHZvaWQgPT5cbiAgICAgICAgICAgIGFnR3JpZC5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMuI3ZpZXdDb25maWcpO1xuICAgICAgICAgIHRoaXMuI2RhdGFTdGF0ZVN1YiA9IHRoaXMuI2RhdGFNYW5hZ2VyU3ZjXG4gICAgICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiN2aWV3Q29uZmlnLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZSk7XG4gICAgICAgICAgICAgIHRoaXMuI2FwcGx5U29ydChkYXRhU3RhdGUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbXG4gICAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgIVtcbiAgICAgICAgICAgICAgICAnZ3JpZEluaXRpYWxpemluZycsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uRHJhZ2dlZCcsXG4gICAgICAgICAgICAgICAgJ2FwaScsXG4gICAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZSh2YWx1ZS5hcGkpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtblJlc2l6ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uUmVzaXplZEV2ZW50KSA9PiBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbElkID0gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpO1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZXZlbnQuY29sdW1uPy5nZXRBY3R1YWxXaWR0aCgpO1xuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgICAgICBpZiAoY29sSWQgJiYgd2lkdGggJiYgYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uV2lkdGgoY29sSWQsIHdpZHRoLCBicmVha3BvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuZHJhZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogRHJhZ1N0b3BwZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5yb3dTZWxlY3RlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGNvbHVtbk9yZGVyID0gdGhpcy4jZ2V0Q29sdW1uT3JkZXIoYXBpKTtcblxuICAgICAgY29uc3Qgdmlld1N0YXRlID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKFxuICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICB2aWV3U3RhdGUgJiZcbiAgICAgICAgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMubGVuZ3RoICE9PSBjb2x1bW5PcmRlci5sZW5ndGggfHxcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpXG4gICAgICApIHtcbiAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICB2aWV3U3RhdGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGFwaVxuICAgICAgLmdldENvbHVtblN0YXRlKClcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQgJiYgdGhpcy4jdmlld0NvbmZpZykge1xuICAgICAgY29uc3Qgdmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodGhpcy4jdmlld0NvbmZpZy5pZCk7XG4gICAgICBsZXQgZGlzcGxheWVkQ29sdW1uSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmICh2aWV3U3RhdGU/LmRpc3BsYXllZENvbHVtbklkcykge1xuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5PcmRlciA9IHRoaXMuI2dldENvbHVtbk9yZGVyKGFnR3JpZC5hcGkpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGRpc3BsYXllZENvbHVtbklkcy5sZW5ndGggIT09IGNvbHVtbk9yZGVyLmxlbmd0aCB8fFxuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMuc29tZSgoY29sLCBpKSA9PiBjb2wgIT09IGNvbHVtbk9yZGVyW2ldKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGhpZGVDb2x1bW5zID0gYWdHcmlkLmFwaVxuICAgICAgICAgIC5nZXRDb2x1bW5TdGF0ZSgpXG4gICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuY29sSWQpXG4gICAgICAgICAgLmZpbHRlcigoY29sSWQpID0+ICFkaXNwbGF5ZWRDb2x1bW5JZHMuaW5jbHVkZXMoY29sSWQpKTtcblxuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGhpZGVDb2x1bW5zLCBmYWxzZSk7XG4gICAgICAgIGFnR3JpZC5hcGkuc2V0Q29sdW1uc1Zpc2libGUoZGlzcGxheWVkQ29sdW1uSWRzLCB0cnVlKTtcbiAgICAgICAgYWdHcmlkLmFwaS5tb3ZlQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5JZHMsIDApO1xuICAgICAgICB0aGlzLiNyZW1vdmVDb2x1bW5XaWR0aHMoaGlkZUNvbHVtbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNhcHBseVNvcnQoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCBhY3RpdmVTb3J0ID0gZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb247XG5cbiAgICBpZiAoYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkPy5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sSWQ6IGFjdGl2ZVNvcnQuaWQsXG4gICAgICAgICAgICBzb3J0OiBhY3RpdmVTb3J0LmRlc2NlbmRpbmcgPyAnZGVzYycgOiAnYXNjJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHsgc29ydDogbnVsbCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNvbHVtbldpZHRoKFxuICAgIGNvbElkOiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lCcmVha3BvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgaWYgKHZpZXdTdGF0ZSAmJiB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGN1cnJlbnRXaWR0aHNbdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCldW2NvbElkXSA9IHdpZHRoO1xuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodGhpcy52aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHRoaXMudmlld0lkLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQ29sdW1uV2lkdGhzKGNvbElkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG5cbiAgICBpZiAodmlld1N0YXRlICYmIHRoaXMudmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgZm9yIChjb25zdCBjb2xJZCBvZiBjb2xJZHMpIHtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3hzJ11bY29sSWRdO1xuICAgICAgICBkZWxldGUgY3VycmVudFdpZHRoc1snc20nXVtjb2xJZF07XG4gICAgICB9XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh0aGlzLnZpZXdJZCwgdmlld1N0YXRlKSxcbiAgICAgICAgdGhpcy52aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50PzogU2t5QnJlYWtwb2ludCk6IHZvaWQge1xuICAgIGJyZWFrcG9pbnQgPz89IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgICB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlPy5nZXRWaWV3U3RhdGVCeUlkKHRoaXMudmlld0lkKTtcblxuICAgICAgaWYgKHZpZXdTdGF0ZSAmJiB2aWV3U3RhdGUuY29sdW1uV2lkdGhzICYmIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uTGltaXRzID0gdGhpcy4jZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLFxuICAgICAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMsXG4gICAgICAgICAgdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jY3VycmVudEFnR3JpZD8uYXBpLnNpemVDb2x1bW5zVG9GaXQoeyBjb2x1bW5MaW1pdHMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dldEdyaWRDb2x1bW5MaW1pdHMoXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10sXG4gICAgY3VycmVudFdpZHRoczogU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMsXG4gICAgYnJlYWtwb2ludE5hbWU6IGtleW9mIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICApOiBJQ29sdW1uTGltaXRbXSB7XG4gICAgY29uc3QgZ3JpZENvbHVtbkxpbWl0czogSUNvbHVtbkxpbWl0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGRpc3BsYXllZENvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY3VycmVudFdpZHRoc1ticmVha3BvaW50TmFtZV1bY29sdW1uXTtcblxuICAgICAgaWYgKGNvbHVtbldpZHRoKSB7XG4gICAgICAgIGdyaWRDb2x1bW5MaW1pdHMucHVzaCh7XG4gICAgICAgICAga2V5OiBjb2x1bW4sXG4gICAgICAgICAgbWluV2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICAgIG1heFdpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBncmlkQ29sdW1uTGltaXRzO1xuICB9XG59XG4iXX0=","import { InjectionToken, } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n/**\n * @internal\n */\nexport const SKY_AG_GRID_ROW_DELETE_CONTEXT = new InjectionToken('SkyAgGridRowDeleteContext');\n/**\n * Used to provide dependencies to the `SkyAgGridRowDeleteComponent` overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteContext {\n constructor(rows, gridElement, gridApi) {\n this.rows = rows;\n this.gridElement = gridElement;\n this.gridApi = gridApi;\n this.cancelRowDelete = new Subject();\n this.confirmRowDelete = new Subject();\n this.subscription = new Subscription();\n this.subscription.add(() => {\n this.cancelRowDelete.complete();\n this.confirmRowDelete.complete();\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsY0FBYyxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3pDLElBQUksY0FBYyxDQUE0QiwyQkFBMkIsQ0FBQyxDQUFDO0FBRTdFOzs7R0FHRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFLcEMsWUFDa0IsSUFBc0IsRUFDdEIsV0FBMEQsRUFDMUQsT0FBNEM7UUFGNUMsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQStDO1FBQzFELFlBQU8sR0FBUCxPQUFPLENBQXFDO1FBUDlDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9oRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgU2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0PignU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dCcpO1xuXG4vKipcbiAqIFVzZWQgdG8gcHJvdmlkZSBkZXBlbmRlbmNpZXMgdG8gdGhlIGBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnRgIG92ZXJsYXkuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRleHQge1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuY2VsUm93RGVsZXRlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlybVJvd0RlbGV0ZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcm93czogU2lnbmFsPHN0cmluZ1tdPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEVsZW1lbnQ6IFNpZ25hbDxFbGVtZW50UmVmPEhUTUxFbGVtZW50PltdIHwgdW5kZWZpbmVkPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEFwaTogV3JpdGFibGVTaWduYWw8R3JpZEFwaSB8IHVuZGVmaW5lZD4sXG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCgoKSA9PiB7XG4gICAgICB0aGlzLmNhbmNlbFJvd0RlbGV0ZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5jb25maXJtUm93RGVsZXRlLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal, } from '@angular/core/rxjs-interop';\nimport { SkyAffixModule, SkyResizeObserverService } from '@skyux/core';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\nimport { filter, fromEvent, map, merge, of, scan, startWith, switchMap, takeUntil, } from 'rxjs';\nimport { SKY_AG_GRID_ROW_DELETE_CONTEXT } from './ag-grid-row-delete-context';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\nimport * as i2 from \"@skyux/core\";\n/**\n * Component for rendering the inline delete template in the overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteComponent {\n #resizeObserverSvc;\n constructor() {\n this.service = inject(SKY_AG_GRID_ROW_DELETE_CONTEXT);\n this.tableWidthStyle = computed(() => {\n const tableWidth = this.tableWidth();\n if (tableWidth > 0) {\n return `${tableWidth}px`;\n }\n return 'auto';\n });\n this.rowsWithElements = computed(() => {\n const rows = this.service.rows();\n const gridElement = this.service.gridElement();\n const gridApi = this.service.gridApi();\n const increment = this.gridChanges();\n if (!gridElement || !gridApi) {\n return [];\n }\n return rows\n .filter((rowId) => !!rowId && !!gridApi.getRowNode(rowId))\n .map((rowId) => {\n const element = gridElement[0]?.nativeElement\n .querySelector(`\n [row-id=\"${rowId}\"] div[aria-colindex],\n .ag-row.sky-ag-grid-row-${rowId} div[aria-colindex]\n `);\n return { rowId, element, increment: `${rowId}-${increment}` };\n });\n });\n this.pending = signal([]);\n this.tableWidth = signal(0);\n // Force redrawing overlays when the grid changes by incrementing a number.\n this.gridChanges = toSignal(toObservable(this.service.gridApi).pipe(switchMap((gridApi) => gridApi\n ? merge(fromEvent(gridApi, 'componentStateChanged'), fromEvent(gridApi, 'firstDataRendered'), fromEvent(gridApi, 'gridSizeChanged'), fromEvent(gridApi, 'modelUpdated'), fromEvent(gridApi, 'rowDataUpdated')).pipe(takeUntil(fromEvent(gridApi, 'gridPreDestroyed')))\n : of(undefined)), startWith(1), map(() => 1), scan((acc, val) => acc + val)), { initialValue: 0 });\n this.#resizeObserverSvc = inject(SkyResizeObserverService);\n // Maintain table width when the grid is resized.\n toObservable(this.service.gridElement)\n .pipe(filter((el) => Array.isArray(el) && !!el[0]), switchMap((gridElement) => this.#resizeObserverSvc\n .observe(gridElement[0])\n .pipe(map(() => gridElement[0].nativeElement.offsetWidth))), takeUntilDestroyed())\n .subscribe((tableWidth) => {\n this.tableWidth.set(tableWidth);\n });\n // Clean up pending rows when the grid data is updated.\n toObservable(this.service.gridApi)\n .pipe(filter((gridApi) => !!gridApi), switchMap((gridApi) => fromEvent(gridApi, 'rowDataUpdated').pipe(takeUntil(fromEvent(gridApi, 'gridPreDestroyed')), map(() => gridApi))), takeUntilDestroyed())\n .subscribe((gridApi) => {\n this.pending.update((pending) => pending.filter((rowId) => !!gridApi.getRowNode(rowId)));\n });\n }\n cancelDelete(rowId) {\n this.service.cancelRowDelete.next(rowId);\n }\n confirmDelete(rowId) {\n this.pending.update((pending) => pending.concat(rowId));\n this.service.confirmRowDelete.next(rowId);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridRowDeleteComponent, isStandalone: true, selector: \"sky-ag-grid-row-delete\", host: { properties: { \"style\": \"\\\"--table-width: \\\" + tableWidthStyle()\" } }, ngImport: i0, template: \"@for (row of rowsWithElements(); track row.increment) {\\n @if (row.element?.offsetParent && row.element; as element) {\\n <div\\n class=\\\"sky-ag-grid-row-delete\\\"\\n affixPlacement=\\\"above\\\"\\n affixVerticalAlignment=\\\"top\\\"\\n affixHorizontalAlignment=\\\"left\\\"\\n [id]=\\\"'row-delete-ref-' + row.rowId\\\"\\n [style.height]=\\\"element.offsetHeight + 'px'\\\"\\n [skyAffixTo]=\\\"element\\\"\\n [affixIsSticky]=\\\"true\\\"\\n >\\n <sky-inline-delete\\n [pending]=\\\"pending().includes(row.rowId ?? '')\\\"\\n (cancelTriggered)=\\\"cancelDelete(row.rowId)\\\"\\n (deleteTriggered)=\\\"confirmDelete(row.rowId)\\\"\\n />\\n </div>\\n }\\n}\\n\", styles: [\":host{display:block}.sky-ag-grid-row-delete{position:fixed;top:-100vh;width:var(--table-width, 100%)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyInlineDeleteModule }, { kind: \"component\", type: i1.λ8, selector: \"sky-inline-delete\", inputs: [\"pending\"], outputs: [\"cancelTriggered\", \"deleteTriggered\"] }, { kind: \"ngmodule\", type: SkyAffixModule }, { kind: \"directive\", type: i2.λ1, selector: \"[skyAffixTo]\", inputs: [\"skyAffixTo\", \"affixAutoFitContext\", \"affixAutoFitOverflowOffset\", \"affixEnableAutoFit\", \"affixHorizontalAlignment\", \"affixIsSticky\", \"affixPlacement\", \"affixPosition\", \"affixVerticalAlignment\"], outputs: [\"affixOffsetChange\", \"affixOverflowScroll\", \"affixPlacementChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridRowDeleteComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-row-delete', imports: [SkyInlineDeleteModule, SkyAffixModule], host: {\n '[style]': '\"--table-width: \" + tableWidthStyle()',\n }, template: \"@for (row of rowsWithElements(); track row.increment) {\\n @if (row.element?.offsetParent && row.element; as element) {\\n <div\\n class=\\\"sky-ag-grid-row-delete\\\"\\n affixPlacement=\\\"above\\\"\\n affixVerticalAlignment=\\\"top\\\"\\n affixHorizontalAlignment=\\\"left\\\"\\n [id]=\\\"'row-delete-ref-' + row.rowId\\\"\\n [style.height]=\\\"element.offsetHeight + 'px'\\\"\\n [skyAffixTo]=\\\"element\\\"\\n [affixIsSticky]=\\\"true\\\"\\n >\\n <sky-inline-delete\\n [pending]=\\\"pending().includes(row.rowId ?? '')\\\"\\n (cancelTriggered)=\\\"cancelDelete(row.rowId)\\\"\\n (deleteTriggered)=\\\"confirmDelete(row.rowId)\\\"\\n />\\n </div>\\n }\\n}\\n\", styles: [\":host{display:block}.sky-ag-grid-row-delete{position:fixed;top:-100vh;width:var(--table-width, 100%)}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixRQUFRLEdBQ1QsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUU5RTs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sMkJBQTJCO0lBeUQ3QixrQkFBa0IsQ0FBb0M7SUFFL0Q7UUExRGdCLFlBQU8sR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUV2RCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLEdBQUcsVUFBVSxJQUFJLENBQUM7WUFDM0IsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRU8scUJBQWdCLEdBQUcsUUFBUSxDQUNuQyxHQUF3RSxFQUFFO1lBQ3hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sSUFBSTtpQkFDUixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3pELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNiLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhO3FCQUMxQyxhQUFhLENBQWM7cUJBQ25CLEtBQUs7b0NBQ1UsS0FBSztTQUNoQyxDQUFDLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQ0YsQ0FBQztRQUVpQixZQUFPLEdBQUcsTUFBTSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLGVBQVUsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFbEQsMkVBQTJFO1FBQ3hELGdCQUFXLEdBQUcsUUFBUSxDQUN2QyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3JDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3BCLE9BQU87WUFDTCxDQUFDLENBQUMsS0FBSyxDQUNILFNBQVMsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsRUFDM0MsU0FBUyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxFQUN2QyxTQUFTLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLEVBQ3JDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLEVBQ2xDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FDckMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQzNELENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQ2xCLEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNaLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDWixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQzlCLEVBQ0QsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQ3BCLENBQUM7UUFFTyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUc3RCxpREFBaUQ7UUFDakQsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQ25DLElBQUksQ0FDSCxNQUFNLENBQ0osQ0FBQyxFQUFFLEVBQW1DLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3RFLEVBQ0QsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUM3RCxFQUNELGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFTCx1REFBdUQ7UUFDdkQsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQy9CLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQ2xELFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3BCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQ3ZDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUMsRUFDakQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUNuQixDQUNGLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDckI7YUFDQSxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxZQUFZLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs4R0F2R1UsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0tDckN4Qyx5cUJBb0JBLGdLRFlZLHFCQUFxQix1S0FBRSxjQUFjOzsyRkFLcEMsMkJBQTJCO2tCQVR2QyxTQUFTOytCQUNFLHdCQUF3QixXQUd6QixDQUFDLHFCQUFxQixFQUFFLGNBQWMsQ0FBQyxRQUMxQzt3QkFDSixTQUFTLEVBQUUsdUNBQXVDO3FCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0YWtlVW50aWxEZXN0cm95ZWQsXG4gIHRvT2JzZXJ2YWJsZSxcbiAgdG9TaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNreUFmZml4TW9kdWxlLCBTa3lSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJbmxpbmVEZWxldGVNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuaW1wb3J0IHsgR3JpZEFwaSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBvZixcbiAgc2NhbixcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCB9IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgcmVuZGVyaW5nIHRoZSBpbmxpbmUgZGVsZXRlIHRlbXBsYXRlIGluIHRoZSBvdmVybGF5LlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXJvdy1kZWxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQuY3NzJyxcbiAgaW1wb3J0czogW1NreUlubGluZURlbGV0ZU1vZHVsZSwgU2t5QWZmaXhNb2R1bGVdLFxuICBob3N0OiB7XG4gICAgJ1tzdHlsZV0nOiAnXCItLXRhYmxlLXdpZHRoOiBcIiArIHRhYmxlV2lkdGhTdHlsZSgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2UgPSBpbmplY3QoU0tZX0FHX0dSSURfUk9XX0RFTEVURV9DT05URVhUKTtcblxuICBwcm90ZWN0ZWQgdGFibGVXaWR0aFN0eWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRhYmxlV2lkdGggPSB0aGlzLnRhYmxlV2lkdGgoKTtcbiAgICBpZiAodGFibGVXaWR0aCA+IDApIHtcbiAgICAgIHJldHVybiBgJHt0YWJsZVdpZHRofXB4YDtcbiAgICB9XG4gICAgcmV0dXJuICdhdXRvJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJvd3NXaXRoRWxlbWVudHMgPSBjb21wdXRlZChcbiAgICAoKTogeyByb3dJZDogc3RyaW5nOyBpbmNyZW1lbnQ6IHN0cmluZzsgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsIH1bXSA9PiB7XG4gICAgICBjb25zdCByb3dzID0gdGhpcy5zZXJ2aWNlLnJvd3MoKTtcbiAgICAgIGNvbnN0IGdyaWRFbGVtZW50ID0gdGhpcy5zZXJ2aWNlLmdyaWRFbGVtZW50KCk7XG4gICAgICBjb25zdCBncmlkQXBpID0gdGhpcy5zZXJ2aWNlLmdyaWRBcGkoKTtcbiAgICAgIGNvbnN0IGluY3JlbWVudCA9IHRoaXMuZ3JpZENoYW5nZXMoKTtcbiAgICAgIGlmICghZ3JpZEVsZW1lbnQgfHwgIWdyaWRBcGkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJvd3NcbiAgICAgICAgLmZpbHRlcigocm93SWQpID0+ICEhcm93SWQgJiYgISFncmlkQXBpLmdldFJvd05vZGUocm93SWQpKVxuICAgICAgICAubWFwKChyb3dJZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBncmlkRWxlbWVudFswXT8ubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGBcbiAgICAgICAgICBbcm93LWlkPVwiJHtyb3dJZH1cIl0gZGl2W2FyaWEtY29saW5kZXhdLFxuICAgICAgICAgIC5hZy1yb3cuc2t5LWFnLWdyaWQtcm93LSR7cm93SWR9IGRpdlthcmlhLWNvbGluZGV4XVxuICAgICAgICBgKTtcbiAgICAgICAgICByZXR1cm4geyByb3dJZCwgZWxlbWVudCwgaW5jcmVtZW50OiBgJHtyb3dJZH0tJHtpbmNyZW1lbnR9YCB9O1xuICAgICAgICB9KTtcbiAgICB9LFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwZW5kaW5nID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWJsZVdpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgLy8gRm9yY2UgcmVkcmF3aW5nIG92ZXJsYXlzIHdoZW4gdGhlIGdyaWQgY2hhbmdlcyBieSBpbmNyZW1lbnRpbmcgYSBudW1iZXIuXG4gIHByb3RlY3RlZCByZWFkb25seSBncmlkQ2hhbmdlcyA9IHRvU2lnbmFsKFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnNlcnZpY2UuZ3JpZEFwaSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZ3JpZEFwaSkgPT5cbiAgICAgICAgZ3JpZEFwaVxuICAgICAgICAgID8gbWVyZ2UoXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAnY29tcG9uZW50U3RhdGVDaGFuZ2VkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAnZmlyc3REYXRhUmVuZGVyZWQnKSxcbiAgICAgICAgICAgICAgZnJvbUV2ZW50KGdyaWRBcGksICdncmlkU2l6ZUNoYW5nZWQnKSxcbiAgICAgICAgICAgICAgZnJvbUV2ZW50KGdyaWRBcGksICdtb2RlbFVwZGF0ZWQnKSxcbiAgICAgICAgICAgICAgZnJvbUV2ZW50KGdyaWRBcGksICdyb3dEYXRhVXBkYXRlZCcpLFxuICAgICAgICAgICAgKS5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQoZ3JpZEFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgOiBvZih1bmRlZmluZWQpLFxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aCgxKSxcbiAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgIHNjYW4oKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwpLFxuICAgICksXG4gICAgeyBpbml0aWFsVmFsdWU6IDAgfSxcbiAgKTtcblxuICByZWFkb25seSAjcmVzaXplT2JzZXJ2ZXJTdmMgPSBpbmplY3QoU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBNYWludGFpbiB0YWJsZSB3aWR0aCB3aGVuIHRoZSBncmlkIGlzIHJlc2l6ZWQuXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuc2VydmljZS5ncmlkRWxlbWVudClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGVsKTogZWwgaXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD5bXSA9PiBBcnJheS5pc0FycmF5KGVsKSAmJiAhIWVsWzBdLFxuICAgICAgICApLFxuICAgICAgICBzd2l0Y2hNYXAoKGdyaWRFbGVtZW50KSA9PlxuICAgICAgICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyU3ZjXG4gICAgICAgICAgICAub2JzZXJ2ZShncmlkRWxlbWVudFswXSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgoKSA9PiBncmlkRWxlbWVudFswXS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSksXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGFibGVXaWR0aCkgPT4ge1xuICAgICAgICB0aGlzLnRhYmxlV2lkdGguc2V0KHRhYmxlV2lkdGgpO1xuICAgICAgfSk7XG5cbiAgICAvLyBDbGVhbiB1cCBwZW5kaW5nIHJvd3Mgd2hlbiB0aGUgZ3JpZCBkYXRhIGlzIHVwZGF0ZWQuXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuc2VydmljZS5ncmlkQXBpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZ3JpZEFwaSk6IGdyaWRBcGkgaXMgR3JpZEFwaSA9PiAhIWdyaWRBcGkpLFxuICAgICAgICBzd2l0Y2hNYXAoKGdyaWRBcGkpID0+XG4gICAgICAgICAgZnJvbUV2ZW50KGdyaWRBcGksICdyb3dEYXRhVXBkYXRlZCcpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwoZnJvbUV2ZW50KGdyaWRBcGksICdncmlkUHJlRGVzdHJveWVkJykpLFxuICAgICAgICAgICAgbWFwKCgpID0+IGdyaWRBcGkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZ3JpZEFwaSkgPT4ge1xuICAgICAgICB0aGlzLnBlbmRpbmcudXBkYXRlKChwZW5kaW5nKSA9PlxuICAgICAgICAgIHBlbmRpbmcuZmlsdGVyKChyb3dJZCkgPT4gISFncmlkQXBpLmdldFJvd05vZGUocm93SWQpKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbmNlbERlbGV0ZShyb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmNhbmNlbFJvd0RlbGV0ZS5uZXh0KHJvd0lkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maXJtRGVsZXRlKHJvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmcudXBkYXRlKChwZW5kaW5nKSA9PiBwZW5kaW5nLmNvbmNhdChyb3dJZCkpO1xuICAgIHRoaXMuc2VydmljZS5jb25maXJtUm93RGVsZXRlLm5leHQocm93SWQpO1xuICB9XG59XG4iLCJAZm9yIChyb3cgb2Ygcm93c1dpdGhFbGVtZW50cygpOyB0cmFjayByb3cuaW5jcmVtZW50KSB7XG4gIEBpZiAocm93LmVsZW1lbnQ/Lm9mZnNldFBhcmVudCAmJiByb3cuZWxlbWVudDsgYXMgZWxlbWVudCkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWFnLWdyaWQtcm93LWRlbGV0ZVwiXG4gICAgICBhZmZpeFBsYWNlbWVudD1cImFib3ZlXCJcbiAgICAgIGFmZml4VmVydGljYWxBbGlnbm1lbnQ9XCJ0b3BcIlxuICAgICAgYWZmaXhIb3Jpem9udGFsQWxpZ25tZW50PVwibGVmdFwiXG4gICAgICBbaWRdPVwiJ3Jvdy1kZWxldGUtcmVmLScgKyByb3cucm93SWRcIlxuICAgICAgW3N0eWxlLmhlaWdodF09XCJlbGVtZW50Lm9mZnNldEhlaWdodCArICdweCdcIlxuICAgICAgW3NreUFmZml4VG9dPVwiZWxlbWVudFwiXG4gICAgICBbYWZmaXhJc1N0aWNreV09XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8c2t5LWlubGluZS1kZWxldGVcbiAgICAgICAgW3BlbmRpbmddPVwicGVuZGluZygpLmluY2x1ZGVzKHJvdy5yb3dJZCA/PyAnJylcIlxuICAgICAgICAoY2FuY2VsVHJpZ2dlcmVkKT1cImNhbmNlbERlbGV0ZShyb3cucm93SWQpXCJcbiAgICAgICAgKGRlbGV0ZVRyaWdnZXJlZCk9XCJjb25maXJtRGVsZXRlKHJvdy5yb3dJZClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19","import { Directive, ElementRef, EnvironmentInjector, contentChild, inject, linkedSignal, model, output, signal, } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SKY_STACKING_CONTEXT, SkyOverlayService, SkyScrollableHostService, } from '@skyux/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { BehaviorSubject, Subject, distinctUntilChanged, filter, fromEvent, map, merge, of, startWith, switchMap, take, takeUntil, } from 'rxjs';\nimport { SKY_AG_GRID_ROW_DELETE_CONTEXT, SkyAgGridRowDeleteContext, } from './ag-grid-row-delete-context';\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyAgGridRowDeleteDirective {\n #agGridBodyViewport;\n #agGridBodyClipElements;\n #ngUnsubscribe;\n #rowDeleteIdsInternal;\n #clipPath;\n #zIndex;\n #elementRef;\n #environmentInjector;\n #overlayService;\n #rowDeleteSvc;\n #scrollableHostService;\n #stackingContext;\n constructor() {\n /**\n * The IDs of the data in the rows where the inline delete appears.\n */\n this.rowDeleteIds = model([]);\n /**\n * Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.\n */\n this.rowDeleteCancel = output();\n /**\n * Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.\n */\n this.rowDeleteConfirm = output();\n this.agGrid = contentChild(AgGridAngular);\n this.#agGridBodyViewport = new BehaviorSubject([]);\n this.#agGridBodyClipElements = new BehaviorSubject([]);\n this.#ngUnsubscribe = new Subject();\n this.#rowDeleteIdsInternal = linkedSignal({\n source: this.rowDeleteIds,\n computation: (value) => [...new Set(value)]\n .filter(Boolean)\n .map(String)\n .sort((a, b) => a.localeCompare(b)),\n equal: (a, b) => a.length === b.length && a.every((v, i) => v === b[i]),\n });\n this.#clipPath = new BehaviorSubject(undefined);\n this.#zIndex = new BehaviorSubject(998);\n this.#elementRef = inject((ElementRef));\n this.#environmentInjector = inject(EnvironmentInjector);\n this.#overlayService = inject(SkyOverlayService);\n this.#scrollableHostService = inject(SkyScrollableHostService);\n this.#stackingContext = inject(SKY_STACKING_CONTEXT, { optional: true });\n if (this.#stackingContext) {\n this.#stackingContext.zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n this.#zIndex.next(zIndex);\n });\n }\n this.#rowDeleteSvc = new SkyAgGridRowDeleteContext(this.#rowDeleteIdsInternal.asReadonly(), toSignal(this.#agGridBodyViewport), signal(undefined));\n this.#rowDeleteSvc.cancelRowDelete\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((rowId) => {\n if (rowId) {\n this.rowDeleteIds.update((rowIds) => rowIds.filter((id) => id !== rowId));\n this.rowDeleteCancel.emit({ id: rowId });\n }\n });\n this.#rowDeleteSvc.confirmRowDelete\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((rowId) => {\n if (rowId) {\n this.rowDeleteConfirm.emit({ id: rowId });\n }\n });\n const agGrid = toObservable(this.agGrid);\n const agGridReady = agGrid.pipe(filter((agGrid) => !!agGrid), switchMap((agGrid) => agGrid.gridReady), take(1), takeUntil(this.#ngUnsubscribe));\n agGridReady.subscribe((ready) => {\n this.#agGridBodyViewport.next([\n new ElementRef(this.#elementRef.nativeElement.querySelector('div.ag-root-wrapper')),\n ]);\n this.#rowDeleteSvc.gridApi.set(ready.api);\n });\n agGrid\n .pipe(filter((grid) => !!grid), switchMap((grid) => merge(grid.firstDataRendered.asObservable(), grid.rowDataUpdated.asObservable(), agGridReady.pipe(switchMap(() => fromEvent(grid.api, 'gridOptionsChanged')))).pipe(takeUntil(this.#ngUnsubscribe), takeUntil(agGridReady.pipe(switchMap(() => fromEvent(grid.api, 'gridPreDestroyed').pipe(take(1))))), startWith(grid.api?.getGridOption('domLayout')), map(() => grid.api?.getGridOption('domLayout')), switchMap((domLayout) => {\n if (domLayout === 'normal') {\n return this.#agGridBodyViewport.asObservable();\n }\n return of([]);\n }))))\n .subscribe((agGridBodyClipElements) => {\n // When using AG Grid's `domLayout: 'autoHeight'` option,\n // the grid's body viewport is clipped by the scrollable host.\n // But when using `domLayout: 'normal'`, the grid's body viewport\n // should be used as the scrollable host for the row delete overlay.\n this.#agGridBodyClipElements.next(agGridBodyClipElements);\n });\n agGrid\n .pipe(filter((agGrid) => !!agGrid), switchMap((agGrid) => agGrid.rowDataUpdated), takeUntil(this.#ngUnsubscribe))\n .subscribe((evt) => {\n this.rowDeleteIds.update((rowIds) => (rowIds ?? []).filter((id) => !!evt.api.getRowNode(id)));\n });\n }\n ngAfterContentInit() {\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 overlay.attachComponent(SkyAgGridRowDeleteComponent, [\n {\n provide: SKY_AG_GRID_ROW_DELETE_CONTEXT,\n useValue: this.#rowDeleteSvc,\n },\n ]);\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe), takeUntil(overlay.closed), distinctUntilChanged())\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n this.#clipPath\n .pipe(takeUntil(this.#ngUnsubscribe), takeUntil(overlay.closed), distinctUntilChanged())\n .subscribe((clipPath) => {\n overlay.componentRef.instance.updateClipPath(clipPath);\n });\n }\n ngAfterViewInit() {\n this.#scrollableHostService\n .watchScrollableHostClipPathChanges(this.#elementRef, this.#agGridBodyClipElements.asObservable())\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((clipPath) => {\n this.#clipPath.next(clipPath);\n });\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#rowDeleteSvc.subscription.unsubscribe();\n this.#overlayService.closeAll();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.5\", type: SkyAgGridRowDeleteDirective, isStandalone: true, selector: \"[skyAgGridRowDelete]\", inputs: { rowDeleteIds: { classPropertyName: \"rowDeleteIds\", publicName: \"rowDeleteIds\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowDeleteIds: \"rowDeleteIdsChange\", rowDeleteCancel: \"rowDeleteCancel\", rowDeleteConfirm: \"rowDeleteConfirm\" }, queries: [{ propertyName: \"agGrid\", first: true, predicate: AgGridAngular, descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyAgGridRowDelete]',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHlCQUF5QixHQUMxQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sMkJBQTJCO0lBb0I3QixtQkFBbUIsQ0FFdEI7SUFDRyx1QkFBdUIsQ0FFMUI7SUFDRyxjQUFjLENBQXVCO0lBQ3JDLHFCQUFxQixDQVEzQjtJQUNNLFNBQVMsQ0FBc0Q7SUFDL0QsT0FBTyxDQUE0QjtJQUNuQyxXQUFXLENB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LENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7OEdBeE1VLDJCQUEyQjtrR0FBM0IsMkJBQTJCLHdZQWtCRyxhQUFhOzsyRkFsQjNDLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBjb250ZW50Q2hpbGQsXG4gIGluamVjdCxcbiAgbGlua2VkU2lnbmFsLFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIFNLWV9TVEFDS0lOR19DT05URVhULFxuICBTa3lPdmVybGF5U2VydmljZSxcbiAgU2t5U2Nyb2xsYWJsZUhvc3RTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZEFwaSwgR3JpZE9wdGlvbnMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIFN1YmplY3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQsXG4gIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRleHQsXG59IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3MgfSBmcm9tICcuL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jYW5jZWwtYXJncyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNvbmZpcm0tYXJncyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBZ0dyaWRSb3dEZWxldGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBkYXRhIGluIHRoZSByb3dzIHdoZXJlIHRoZSBpbmxpbmUgZGVsZXRlIGFwcGVhcnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm93RGVsZXRlSWRzID0gbW9kZWw8c3RyaW5nW10+KFtdKTtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJnc2Agb2JqZWN0IHdoZW4gYSByb3cncyBpbmxpbmUgZGVsZXRlIGlzIGNhbmNlbGxlZC5cbiAgICovXG4gIHB1YmxpYyByb3dEZWxldGVDYW5jZWwgPSBvdXRwdXQ8U2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJncz4oKTtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3NgIG9iamVjdCB3aGVuIGEgcm93J3MgaW5saW5lIGRlbGV0ZSBpcyBjb25maXJtZWQuXG4gICAqL1xuICBwdWJsaWMgcm93RGVsZXRlQ29uZmlybSA9IG91dHB1dDxTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncz4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWdHcmlkID0gY29udGVudENoaWxkKEFnR3JpZEFuZ3VsYXIpO1xuXG4gIHJlYWRvbmx5ICNhZ0dyaWRCb2R5Vmlld3BvcnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+W11cbiAgPihbXSk7XG4gIHJlYWRvbmx5ICNhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PltdXG4gID4oW10pO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNyb3dEZWxldGVJZHNJbnRlcm5hbCA9IGxpbmtlZFNpZ25hbDx1bmtub3duW10sIHN0cmluZ1tdPih7XG4gICAgc291cmNlOiB0aGlzLnJvd0RlbGV0ZUlkcyxcbiAgICBjb21wdXRhdGlvbjogKHZhbHVlKSA9PlxuICAgICAgWy4uLm5ldyBTZXQodmFsdWUpXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5tYXAoU3RyaW5nKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKSxcbiAgICBlcXVhbDogKGEsIGIpID0+IGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2LCBpKSA9PiB2ID09PSBiW2ldKSxcbiAgfSk7XG4gIHJlYWRvbmx5ICNjbGlwUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSAjekluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdCg5OTgpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICByZWFkb25seSAjb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoU2t5T3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSAjcm93RGVsZXRlU3ZjOiBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0O1xuICByZWFkb25seSAjc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlID0gaW5qZWN0KFNreVNjcm9sbGFibGVIb3N0U2VydmljZSk7XG4gIHJlYWRvbmx5ICNzdGFja2luZ0NvbnRleHQgPSBpbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuI3N0YWNraW5nQ29udGV4dCkge1xuICAgICAgdGhpcy4jc3RhY2tpbmdDb250ZXh0LnpJbmRleFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHpJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3pJbmRleC5uZXh0KHpJbmRleCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuI3Jvd0RlbGV0ZVN2YyA9IG5ldyBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0KFxuICAgICAgdGhpcy4jcm93RGVsZXRlSWRzSW50ZXJuYWwuYXNSZWFkb25seSgpLFxuICAgICAgdG9TaWduYWwodGhpcy4jYWdHcmlkQm9keVZpZXdwb3J0KSxcbiAgICAgIHNpZ25hbDxHcmlkQXBpIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpLFxuICAgICk7XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuY2FuY2VsUm93RGVsZXRlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyb3dJZCkgPT4ge1xuICAgICAgICBpZiAocm93SWQpIHtcbiAgICAgICAgICB0aGlzLnJvd0RlbGV0ZUlkcy51cGRhdGUoKHJvd0lkcykgPT5cbiAgICAgICAgICAgIHJvd0lkcy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gcm93SWQpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVDYW5jZWwuZW1pdCh7IGlkOiByb3dJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuY29uZmlybVJvd0RlbGV0ZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocm93SWQpID0+IHtcbiAgICAgICAgaWYgKHJvd0lkKSB7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVDb25maXJtLmVtaXQoeyBpZDogcm93SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYWdHcmlkID0gdG9PYnNlcnZhYmxlKHRoaXMuYWdHcmlkKTtcbiAgICBjb25zdCBhZ0dyaWRSZWFkeSA9IGFnR3JpZC5waXBlKFxuICAgICAgZmlsdGVyKChhZ0dyaWQpID0+ICEhYWdHcmlkKSxcbiAgICAgIHN3aXRjaE1hcCgoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKSA9PiBhZ0dyaWQuZ3JpZFJlYWR5KSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgKTtcbiAgICBhZ0dyaWRSZWFkeS5zdWJzY3JpYmUoKHJlYWR5KSA9PiB7XG4gICAgICB0aGlzLiNhZ0dyaWRCb2R5Vmlld3BvcnQubmV4dChbXG4gICAgICAgIG5ldyBFbGVtZW50UmVmKFxuICAgICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgJ2Rpdi5hZy1yb290LXdyYXBwZXInLFxuICAgICAgICAgICkgYXMgSFRNTERpdkVsZW1lbnQsXG4gICAgICAgICksXG4gICAgICBdKTtcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZVN2Yy5ncmlkQXBpLnNldChyZWFkeS5hcGkpO1xuICAgIH0pO1xuICAgIGFnR3JpZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZ3JpZCkgPT4gISFncmlkKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkKSA9PlxuICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZ3JpZC5maXJzdERhdGFSZW5kZXJlZC5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIGdyaWQucm93RGF0YVVwZGF0ZWQuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgICAgICBhZ0dyaWRSZWFkeS5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbUV2ZW50KGdyaWQuYXBpLCAnZ3JpZE9wdGlvbnNDaGFuZ2VkJykpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgIGFnR3JpZFJlYWR5LnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZC5hcGksICdncmlkUHJlRGVzdHJveWVkJykucGlwZSh0YWtlKDEpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aChncmlkLmFwaT8uZ2V0R3JpZE9wdGlvbignZG9tTGF5b3V0JykpLFxuICAgICAgICAgICAgbWFwKCgpID0+IGdyaWQuYXBpPy5nZXRHcmlkT3B0aW9uKCdkb21MYXlvdXQnKSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGRvbUxheW91dDogR3JpZE9wdGlvbnNbJ2RvbUxheW91dCddKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2FnR3JpZEJvZHlWaWV3cG9ydC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGFnR3JpZEJvZHlDbGlwRWxlbWVudHMpID0+IHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBBRyBHcmlkJ3MgYGRvbUxheW91dDogJ2F1dG9IZWlnaHQnYCBvcHRpb24sXG4gICAgICAgIC8vIHRoZSBncmlkJ3MgYm9keSB2aWV3cG9ydCBpcyBjbGlwcGVkIGJ5IHRoZSBzY3JvbGxhYmxlIGhvc3QuXG4gICAgICAgIC8vIEJ1dCB3aGVuIHVzaW5nIGBkb21MYXlvdXQ6ICdub3JtYWwnYCwgdGhlIGdyaWQncyBib2R5IHZpZXdwb3J0XG4gICAgICAgIC8vIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBzY3JvbGxhYmxlIGhvc3QgZm9yIHRoZSByb3cgZGVsZXRlIG92ZXJsYXkuXG4gICAgICAgIHRoaXMuI2FnR3JpZEJvZHlDbGlwRWxlbWVudHMubmV4dChhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzKTtcbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChhZ0dyaWQpID0+ICEhYWdHcmlkKSxcbiAgICAgICAgc3dpdGNoTWFwKChhZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIpID0+IGFnR3JpZC5yb3dEYXRhVXBkYXRlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0RlbGV0ZUlkcy51cGRhdGUoKHJvd0lkcykgPT5cbiAgICAgICAgICAocm93SWRzID8/IFtdKS5maWx0ZXIoKGlkKSA9PiAhIWV2dC5hcGkuZ2V0Um93Tm9kZShpZCkpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNvdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy4jZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgIHNob3dCYWNrZHJvcDogZmFsc2UsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgIGVuYWJsZVBvaW50ZXJFdmVudHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBvdmVybGF5LmF0dGFjaENvbXBvbmVudChTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQsIFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogU0tZX0FHX0dSSURfUk9XX0RFTEVURV9DT05URVhULFxuICAgICAgICB1c2VWYWx1ZTogdGhpcy4jcm93RGVsZXRlU3ZjLFxuICAgICAgfSxcbiAgICBdKTtcbiAgICB0aGlzLiN6SW5kZXhcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5LmNsb3NlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgb3ZlcmxheS5jb21wb25lbnRSZWYuaW5zdGFuY2UuekluZGV4ID0gekluZGV4LnRvU3RyaW5nKDEwKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuI2NsaXBQYXRoXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICB0YWtlVW50aWwob3ZlcmxheS5jbG9zZWQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2xpcFBhdGgpID0+IHtcbiAgICAgICAgb3ZlcmxheS5jb21wb25lbnRSZWYuaW5zdGFuY2UudXBkYXRlQ2xpcFBhdGgoY2xpcFBhdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3Njcm9sbGFibGVIb3N0U2VydmljZVxuICAgICAgLndhdGNoU2Nyb2xsYWJsZUhvc3RDbGlwUGF0aENoYW5nZXMoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYsXG4gICAgICAgIHRoaXMuI2FnR3JpZEJvZHlDbGlwRWxlbWVudHMuYXNPYnNlcnZhYmxlKCksXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjbGlwUGF0aCkgPT4ge1xuICAgICAgICB0aGlzLiNjbGlwUGF0aC5uZXh0KGNsaXBQYXRoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4jb3ZlcmxheVNlcnZpY2UuY2xvc2VBbGwoKTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { SkyAgGridResourcesModule } from '../shared/sky-ag-grid-resources.module';\nimport { SkyAgGridDataManagerAdapterDirective } from './ag-grid-data-manager-adapter.directive';\nimport { SkyAgGridRowDeleteDirective } from './ag-grid-row-delete.directive';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyAgGridModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridModule, imports: [AgGridAngular,\n CommonModule,\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent], exports: [SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridModule, imports: [AgGridAngular,\n CommonModule,\n SkyAgGridResourcesModule,\n SkyAgGridWrapperComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AgGridAngular,\n CommonModule,\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n exports: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBaUJ4RSxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFDWixvQ0FBb0M7WUFDcEMsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix5QkFBeUIsYUFHekIsb0NBQW9DO1lBQ3BDLDJCQUEyQjtZQUMzQix5QkFBeUI7K0dBR2hCLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFFWix3QkFBd0I7WUFFeEIseUJBQXlCOzsyRkFRaEIsZUFBZTtrQkFmM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9DQUFvQzt3QkFDcEMsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQWdHcmlkQW5ndWxhcixcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlLFxuICAgIFNreUFnR3JpZFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkTW9kdWxlIHt9XG4iXX0=","/**\n * @internal\n */\nexport function applySkyLookupPropertiesDefaults(skyLookupProperties) {\n /* istanbul ignore if */\n if (!skyLookupProperties) {\n return {};\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: 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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsbUJBQTBEO0lBRTFELHdCQUF3QjtJQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7UUFDdEMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQzlDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLHFCQUFxQixJQUFJLEtBQUs7UUFDekUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3BDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLElBQUksQ0FBQztRQUNuRCxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxrQkFBa0IsSUFBSSxNQUFNO1FBQ3BFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLElBQUksS0FBSztRQUMvQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxJQUFJLEtBQUs7UUFDM0QsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFVBQVU7UUFDMUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsSUFBSSxFQUFFO1FBQzFELGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLGtCQUFrQjtRQUMxRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtRQUNsQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsV0FBVztRQUM1QyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxJQUFJLEVBQUU7UUFDdEQsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsa0JBQWtCO1FBQzFELG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLG9CQUFvQjtRQUM5RCwyQkFBMkIsRUFDekIsbUJBQW1CLENBQUMsMkJBQTJCLElBQUksQ0FBQztRQUN0RCxVQUFVLEVBQUUsbUJBQW1CLENBQUMsVUFBVTtRQUMxQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxJQUFJLEtBQUs7UUFDekQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQ3hELFlBQVksRUFBRSwyQkFBMkI7S0FDMUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lBZ0dyaWRMb29rdXBQcm9wZXJ0aWVzIH0gZnJvbSAnLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhcbiAgc2t5TG9va3VwUHJvcGVydGllczogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB8IHVuZGVmaW5lZCxcbik6IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFza3lMb29rdXBQcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRDbGljazogc2t5TG9va3VwUHJvcGVydGllcy5hZGRDbGljayxcbiAgICBhcmlhTGFiZWw6IHNreUxvb2t1cFByb3BlcnRpZXMuYXJpYUxhYmVsIHx8ICcnLFxuICAgIGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTogc2t5TG9va3VwUHJvcGVydGllcy5hdXRvY29tcGxldGVBdHRyaWJ1dGUgfHwgJ29mZicsXG4gICAgZGF0YTogc2t5TG9va3VwUHJvcGVydGllcy5kYXRhIHx8IFtdLFxuICAgIGRlYm91bmNlVGltZTogc2t5TG9va3VwUHJvcGVydGllcy5kZWJvdW5jZVRpbWUgfHwgMCxcbiAgICBkZXNjcmlwdG9yUHJvcGVydHk6IHNreUxvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IHx8ICduYW1lJyxcbiAgICBkaXNhYmxlZDogc2t5TG9va3VwUHJvcGVydGllcy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICBlbmFibGVTaG93TW9yZTogc2t5TG9va3VwUHJvcGVydGllcy5lbmFibGVTaG93TW9yZSB8fCBmYWxzZSxcbiAgICBpZFByb3BlcnR5OiBza3lMb29rdXBQcm9wZXJ0aWVzLmlkUHJvcGVydHksXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBza3lMb29rdXBQcm9wZXJ0aWVzLnBsYWNlaG9sZGVyVGV4dCB8fCAnJyxcbiAgICBwcm9wZXJ0aWVzVG9TZWFyY2g6IHNreUxvb2t1cFByb3BlcnRpZXMucHJvcGVydGllc1RvU2VhcmNoLFxuICAgIHNlYXJjaDogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2gsXG4gICAgc2VhcmNoQXN5bmM6IHNreUxvb2t1cFByb3BlcnRpZXMuc2VhcmNoQXN5bmMsXG4gICAgc2VhcmNoRmlsdGVyczogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzIHx8IFtdLFxuICAgIHNlYXJjaFJlc3VsdHNMaW1pdDogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hSZXN1bHRzTGltaXQsXG4gICAgc2VhcmNoUmVzdWx0VGVtcGxhdGU6IHNreUxvb2t1cFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0VGVtcGxhdGUsXG4gICAgc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzOlxuICAgICAgc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnMgfHwgMSxcbiAgICBzZWxlY3RNb2RlOiBza3lMb29rdXBQcm9wZXJ0aWVzLnNlbGVjdE1vZGUsXG4gICAgc2hvd0FkZEJ1dHRvbjogc2t5TG9va3VwUHJvcGVydGllcy5zaG93QWRkQnV0dG9uIHx8IGZhbHNlLFxuICAgIHNob3dNb3JlQ29uZmlnOiBza3lMb29rdXBQcm9wZXJ0aWVzLnNob3dNb3JlQ29uZmlnIHx8IHt9LFxuICAgIHdyYXBwZXJDbGFzczogJ2FnLWN1c3RvbS1jb21wb25lbnQtcG9wdXAnLFxuICB9O1xufVxuIl19","/** The initial action that a cell editor should take when initialized. */\nexport var SkyAgGridCellEditorInitialAction;\n(function (SkyAgGridCellEditorInitialAction) {\n /** The cell should be cleared. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Delete\"] = 0] = \"Delete\";\n /** The cell value should be highlighted. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Highlighted\"] = 1] = \"Highlighted\";\n /** The cell value should be replaced with the initializing value. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Replace\"] = 2] = \"Replace\";\n /** The cell should not be modified and the cursor is placed at the end of the value. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Untouched\"] = 3] = \"Untouched\";\n})(SkyAgGridCellEditorInitialAction || (SkyAgGridCellEditorInitialAction = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsTUFBTSxDQUFOLElBQVksZ0NBU1g7QUFURCxXQUFZLGdDQUFnQztJQUMxQyxrQ0FBa0M7SUFDbEMsMkZBQVUsQ0FBQTtJQUNWLDRDQUE0QztJQUM1QyxxR0FBZSxDQUFBO0lBQ2YscUVBQXFFO0lBQ3JFLDZGQUFXLENBQUE7SUFDWCx3RkFBd0Y7SUFDeEYsaUdBQWEsQ0FBQTtBQUNmLENBQUMsRUFUVyxnQ0FBZ0MsS0FBaEMsZ0NBQWdDLFFBUzNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRoZSBpbml0aWFsIGFjdGlvbiB0aGF0IGEgY2VsbCBlZGl0b3Igc2hvdWxkIHRha2Ugd2hlbiBpbml0aWFsaXplZC4gKi9cbmV4cG9ydCBlbnVtIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHtcbiAgLyoqIFRoZSBjZWxsIHNob3VsZCBiZSBjbGVhcmVkLiAqL1xuICBEZWxldGUgPSAwLFxuICAvKiogVGhlIGNlbGwgdmFsdWUgc2hvdWxkIGJlIGhpZ2hsaWdodGVkLiAqL1xuICBIaWdobGlnaHRlZCA9IDEsXG4gIC8qKiBUaGUgY2VsbCB2YWx1ZSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgaW5pdGlhbGl6aW5nIHZhbHVlLiAqL1xuICBSZXBsYWNlID0gMixcbiAgLyoqIFRoZSBjZWxsIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgYW5kIHRoZSBjdXJzb3IgaXMgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHZhbHVlLiAqL1xuICBVbnRvdWNoZWQgPSAzLFxufVxuIl19","import { KeyCode } from 'ag-grid-community';\nimport { SkyAgGridCellEditorInitialAction } from './cell-editor-initial-action';\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 static getEditorInitialAction(params) {\n if (params?.cellStartedEdit) {\n if (params.eventKey === KeyCode.BACKSPACE ||\n params.eventKey === KeyCode.DELETE) {\n return SkyAgGridCellEditorInitialAction.Delete;\n }\n else if (params.eventKey?.length === 1) {\n return SkyAgGridCellEditorInitialAction.Replace;\n }\n else {\n if (params.eventKey !== KeyCode.F2) {\n return SkyAgGridCellEditorInitialAction.Highlighted;\n }\n else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n }\n else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n static subtractOrZero(minuend, subtrahend) {\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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUNsQyxNQUFxQztRQUVyQyxJQUFJLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUM1QixJQUNFLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFNBQVM7Z0JBQ3JDLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFDbEMsQ0FBQztnQkFDRCxPQUFPLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQztZQUNqRCxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sZ0NBQWdDLENBQUMsT0FBTyxDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNuQyxPQUFPLGdDQUFnQyxDQUFDLFdBQVcsQ0FBQztnQkFDdEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNwRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUMxQixPQUFrQyxFQUNsQyxVQUFrQjtRQUVsQixnRkFBZ0Y7UUFDaEYsdUVBQXVFO1FBQ3ZFLE9BQU8sQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDZWxsRWRpdG9yUGFyYW1zLCBLZXlDb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4vY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGluaXRpYWwgYWN0aW9uIHRoYXQgYSBjZWxsIGVkaXRvciBzaG91bGQgdGFrZSB3aGVuIGluaXRpYWxpemVkLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBlZGl0b3IncyBpbml0aWFsaXppbmcgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihcbiAgICBwYXJhbXM6IElDZWxsRWRpdG9yUGFyYW1zIHwgdW5kZWZpbmVkLFxuICApOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB7XG4gICAgaWYgKHBhcmFtcz8uY2VsbFN0YXJ0ZWRFZGl0KSB7XG4gICAgICBpZiAoXG4gICAgICAgIHBhcmFtcy5ldmVudEtleSA9PT0gS2V5Q29kZS5CQUNLU1BBQ0UgfHxcbiAgICAgICAgcGFyYW1zLmV2ZW50S2V5ID09PSBLZXlDb2RlLkRFTEVURVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU7XG4gICAgICB9IGVsc2UgaWYgKHBhcmFtcy5ldmVudEtleT8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHBhcmFtcy5ldmVudEtleSAhPT0gS2V5Q29kZS5GMikge1xuICAgICAgICAgIHJldHVybiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdWJ0cmFjdE9yWmVybyhcbiAgICBtaW51ZW5kOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIHN1YnRyYWhlbmQ6IG51bWJlcixcbiAgKTogbnVtYmVyIHtcbiAgICAvLyBTd2FwcGluZyBtaW51ZW5kIHdpdGggc3VidHJhaGVuZCB3aGVuIG1pbnVlbmQgaXMgbnVsbCBvciB1bmRlZmluZWQgcmVzdWx0cyBpblxuICAgIC8vIHRoZSBzdWJ0cmFoZW5kIGJlaW5nIHN1YnRyYWN0ZWQgZnJvbSBpdHNlbGYsIHdoaWNoIHdpbGwgYWx3YXlzIGJlIDAuXG4gICAgcmV0dXJuIChtaW51ZW5kID8/IHN1YnRyYWhlbmQpIC0gc3VidHJhaGVuZDtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAutocompleteModule } from '@skyux/lookup';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/lookup\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorAutocompleteComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl(),\n });\n this.skyComponentProperties = {};\n this.#autocompleteOpen = false;\n this.#elementRef = inject(ElementRef);\n }\n #autocompleteOpen;\n #triggerType;\n #params;\n #elementRef;\n onBlur(event) {\n if (event.relatedTarget &&\n 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 else {\n this.#stopEditingOnBlur();\n }\n }\n agInit(params) {\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 this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = (this.#params.node?.rowIndex ?? 0) + 1;\n this.skyComponentProperties = this.#params.skyComponentProperties || {};\n }\n afterGuiAttached() {\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;\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(charPress.length, charPress.length);\n this.input.nativeElement.dispatchEvent(new Event('input'));\n }\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n getValue() {\n const val = this.editorForm.get('selection')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n onAutocompleteOpenChange($event) {\n this.#autocompleteOpen = $event;\n this.#stopEditingOnBlur();\n }\n #stopEditingOnBlur() {\n if (!this.#autocompleteOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellEditorAutocompleteComponent, isStandalone: true, selector: \"sky-ag-grid-cell-editor-autocomplete\", host: { listeners: { \"focusout\": \"onBlur($event)\" } }, viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"skyCellEditorAutocomplete\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<div class=\\\"sky-ag-grid-cell-editor-autocomplete\\\" [formGroup]=\\\"editorForm\\\">\\n <sky-autocomplete\\n [allowAnyValue]=\\\"skyComponentProperties.allowAnyValue\\\"\\n [data]=\\\"skyComponentProperties.data\\\"\\n [debounceTime]=\\\"skyComponentProperties.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties.descriptorProperty\\\"\\n [highlightSearchText]=\\\"skyComponentProperties.highlightSearchText ?? true\\\"\\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\", styles: [\"sky-autocomplete input{background-color:transparent;border:none;box-shadow:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: SkyAutocompleteModule }, { kind: \"component\", type: i2.λ2, selector: \"sky-autocomplete\", inputs: [\"ariaLabelledBy\", \"data\", \"debounceTime\", \"descriptorProperty\", \"dropdownHintText\", \"enableShowMore\", \"messageStream\", \"wrapperClass\", \"propertiesToSearch\", \"search\", \"searchResultTemplate\", \"searchTextMinimumCharacters\", \"searchFilters\", \"searchResultsLimit\", \"showAddButton\", \"noResultsFoundText\", \"searchAsyncDisabled\", \"allowAnyValue\", \"highlightSearchText\"], outputs: [\"addClick\", \"showMoreClick\", \"selectionChange\", \"searchAsync\", \"openChange\"] }, { kind: \"directive\", type: i2.λ1, selector: \"input[skyAutocomplete], textarea[skyAutocomplete]\", inputs: [\"autocompleteAttribute\", \"disabled\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyAutocompleteModule,\n SkyI18nModule,\n ], template: \"<div class=\\\"sky-ag-grid-cell-editor-autocomplete\\\" [formGroup]=\\\"editorForm\\\">\\n <sky-autocomplete\\n [allowAnyValue]=\\\"skyComponentProperties.allowAnyValue\\\"\\n [data]=\\\"skyComponentProperties.data\\\"\\n [debounceTime]=\\\"skyComponentProperties.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties.descriptorProperty\\\"\\n [highlightSearchText]=\\\"skyComponentProperties.highlightSearchText ?? true\\\"\\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\", styles: [\"sky-autocomplete input{background-color:transparent;border:none;box-shadow:none}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorAutocomplete', { read: ElementRef }]\n }], onBlur: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBRXpFOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdDQUF3QztJQVpyRDtRQWdCUyxlQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUN2QyxTQUFTLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtTQUNwQyxDQUFDLENBQUM7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bkIscUJBQXFCO3dCQUNyQixhQUFhO3FCQUNkOzhCQWtCTSxLQUFLO3NCQURYLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlyRCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBdXRvY29tcGxldGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0b2NvbXBsZXRlLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHNlbGVjdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyA9IHt9O1xuXG4gICNhdXRvY29tcGxldGVPcGVuID0gZmFsc2U7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gKHRoaXMuI3BhcmFtcy5ub2RlPy5yb3dJbmRleCA/PyAwKSArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICAvLyBBRyBHcmlkIHNldHMgZm9jdXMgdG8gdGhlIGNlbGwgdmlhIHNldFRpbWVvdXQsIGFuZCB0aGlzIHF1ZXVlcyB0aGUgaW5wdXQgdG8gZm9jdXMgYWZ0ZXIgdGhhdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgICBjb25zdCBjaGFyUHJlc3MgPSB0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZztcblxuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0UmFuZ2VUZXh0KGNoYXJQcmVzcyk7XG4gICAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpPy52YWx1ZTtcbiAgICByZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsID8gdmFsIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlT3BlbkNoYW5nZSgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNhdXRvY29tcGxldGVPcGVuID0gJGV2ZW50O1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2F1dG9jb21wbGV0ZU9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpXG4gICAgKSB7XG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZVwiIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8c2t5LWF1dG9jb21wbGV0ZVxuICAgIFthbGxvd0FueVZhbHVlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuYWxsb3dBbnlWYWx1ZVwiXG4gICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kYXRhXCJcbiAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVib3VuY2VUaW1lXCJcbiAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICBbaGlnaGxpZ2h0U2VhcmNoVGV4dF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmhpZ2hsaWdodFNlYXJjaFRleHQgPz8gdHJ1ZVwiXG4gICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFwiXG4gICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzXCJcbiAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlxuICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UgJiZcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVxuICAgIFwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25BdXRvY29tcGxldGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjc2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2F1dG9jb21wbGV0ZV9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9za3ktYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyAutonumericModule } from '@skyux/autonumeric';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/autonumeric\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorCurrencyComponent {\n constructor() {\n this.skyComponentProperties = {\n isCancellable: false,\n };\n this.currency = new UntypedFormControl();\n this.editorForm = new UntypedFormGroup({\n currency: this.currency,\n });\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#initialized = false;\n }\n onFocusOut(event) {\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 #triggerType;\n #changeDetector;\n #initialized;\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 agInit(params) {\n this.params = params;\n this.columnHeader = this.params.api.getDisplayNameForColumn(this.params.column, 'header');\n this.rowNumber = this.params.rowIndex + 1;\n this.skyComponentProperties = {\n ...(this.params.skyComponentProperties || {\n decimalPlaces: 2,\n currencySymbol: '$',\n }),\n isCancellable: false,\n };\n }\n refresh(params) {\n this.agInit(params);\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 afterGuiAttached() {\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 // 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(this.params);\n const control = this.currency;\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(parseFloat(String(this.params?.eventKey)) || undefined);\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 this.#changeDetector.markForCheck();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted &&\n (this.params?.value ?? '') !== '') {\n this.input?.nativeElement.select();\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 * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n return this.currency.value ?? undefined;\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 onPressEscape() {\n if (this.params) {\n this.params.api.stopEditing(true);\n this.params.api.setFocusedCell(this.params.rowIndex, this.params.column);\n }\n }\n onPressEnter() {\n if (this.params && this.#initialized) {\n this.params.stopEditing();\n }\n this.#initialized = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellEditorCurrencyComponent, isStandalone: true, selector: \"sky-ag-grid-cell-editor-currency\", host: { listeners: { \"focusout\": \"onFocusOut($event)\" } }, viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"skyCellEditorCurrency\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<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 [skyAutonumeric]=\\\"skyComponentProperties\\\"\\n [skyAutonumericFormChangesUnformatted]=\\\"params?.eventKey?.length === 1\\\"\\n (keyup.enter)=\\\"onPressEnter()\\\"\\n (keyup.escape)=\\\"onPressEscape()\\\"\\n />\\n</ng-container>\\n\", styles: [\"input:not(.sky-theme-modern *){--sky-override-ag-grid-currency-editor-left-padding: 9px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) input{--sky-override-ag-grid-currency-editor-left-padding: 10px}:host{height:100%;width:100%}input{background-color:transparent;border:none;height:100%;width:100%;padding-left:var(--sky-override-ag-grid-currency-editor-left-padding, calc(var(--sky-space-inset-letterbox-2_3-left-m) - var(--sky-border-width-input-focus)))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: SkyAutonumericModule }, { kind: \"directive\", type: i2.λ1, selector: \"input[skyAutonumeric]\", inputs: [\"skyAutonumeric\", \"skyAutonumericFormChangesUnformatted\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorCurrencyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-currency', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyAutonumericModule,\n SkyI18nModule,\n ], template: \"<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 [skyAutonumeric]=\\\"skyComponentProperties\\\"\\n [skyAutonumericFormChangesUnformatted]=\\\"params?.eventKey?.length === 1\\\"\\n (keyup.enter)=\\\"onPressEnter()\\\"\\n (keyup.escape)=\\\"onPressEscape()\\\"\\n />\\n</ng-container>\\n\", styles: [\"input:not(.sky-theme-modern *){--sky-override-ag-grid-currency-editor-left-padding: 9px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) input{--sky-override-ag-grid-currency-editor-left-padding: 10px}:host{height:100%;width:100%}input{background-color:transparent;border:none;height:100%;width:100%;padding-left:var(--sky-override-ag-grid-currency-editor-left-padding, calc(var(--sky-space-inset-letterbox-2_3-left-m) - var(--sky-border-width-input-focus)))}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorCurrency', { read: ElementRef }]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUd6RTs7R0FFRztBQWFILE1BQU0sT0FBTyxvQ0FBb0M7SUFaakQ7UUFlUywyQkFBc0IsR0FFekI7WUFDRixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDO1FBRUssYUFBUSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztR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c0JBRFgsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSWpELFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5QXV0b251bWVyaWNNb2R1bGUgfSBmcm9tICdAc2t5dXgvYXV0b251bWVyaWMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWN1cnJlbmN5LXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcbmltcG9ydCB7IFNreUFnR3JpZEN1cnJlbmN5UHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2N1cnJlbmN5LXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1jdXJyZW5jeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lBdXRvbnVtZXJpY01vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiBTa3lBZ0dyaWRDdXJyZW5jeVByb3BlcnRpZXMgJiB7XG4gICAgaXNDYW5jZWxsYWJsZTogYm9vbGVhbjtcbiAgfSA9IHtcbiAgICBpc0NhbmNlbGxhYmxlOiBmYWxzZSxcbiAgfTtcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY3VycmVuY3kgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5LFxuICB9KTtcbiAgcHVibGljIHBhcmFtczogU2t5Q2VsbEVkaXRvckN1cnJlbmN5UGFyYW1zIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcm93TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvckN1cnJlbmN5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiYgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy5wYXJhbXM/LmVHcmlkQ2VsbCkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIGVkaXRvciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgY2VsbCBlZGl0b3IgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvckN1cnJlbmN5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLnBhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLnBhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy5wYXJhbXMucm93SW5kZXggKyAxO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHtcbiAgICAgIC4uLih0aGlzLnBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHtcbiAgICAgICAgZGVjaW1hbFBsYWNlczogMixcbiAgICAgICAgY3VycmVuY3lTeW1ib2w6ICckJyxcbiAgICAgIH0pLFxuICAgICAgaXNDYW5jZWxsYWJsZTogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbEVkaXRvckN1cnJlbmN5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAvLyBUaGlzIHNldHVwIGlzIGluIGBhZnRlckd1aUF0dGFjaGVkYCBkdWUgdG8gdGhlIGxpZmVjeWNsZSBvZiBhdXRvbnVtZXJpYyB3aGljaCB3aWxsIGhpZ2hsaWdodCB0aGUgaW5pdGlhbCB2YWx1ZSBpZiBpdCBpcyBpbiBwbGFjZSB3aGVuIGl0IHJlbmRlcnMuXG4gICAgICAvLyBTaW5jZSB3ZSBkb24ndCB3YW50IHRoYXQsIHdlIHNldCB0aGUgaW5pdGlhbCB2YWx1ZSBhZnRlciBhdXRvbnVtZXJpYyBpbml0aWFsaXplcy5cbiAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24oXG4gICAgICAgIHRoaXMucGFyYW1zLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmN1cnJlbmN5O1xuXG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICBwYXJzZUZsb2F0KFN0cmluZyh0aGlzLnBhcmFtcz8uZXZlbnRLZXkpKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJzZUZsb2F0KFN0cmluZyh0aGlzLnBhcmFtcz8udmFsdWUpKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQgJiZcbiAgICAgICAgKHRoaXMucGFyYW1zPy52YWx1ZSA/PyAnJykgIT09ICcnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgIH1cblxuICAgICAgLy8gV2hlbiB0aGUgY2VsbCBpcyBpbml0aWFsaXplZCB3aXRoIHRoZSBFbnRlciBrZXksIHdlIG5lZWQgdG8gc3VwcHJlc3MgdGhlIGZpcnN0IGBvblByZXNzRW50ZXJgLlxuICAgICAgdGhpcy4jaW5pdGlhbGl6ZWQgPSB0aGlzLnBhcmFtcz8uZXZlbnRLZXkgIT09ICdFbnRlcic7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5LnZhbHVlID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXV0b051bWVyaWMgbGlicmFyeSdzIGV2ZW50IGhhbmRsZXIgc3VwcHJlc3NlcyB0aGUgZXNjYXBlIGtleSBldmVudC4gVGhpcyBhZGRpdGlvbmFsIGhhbmRsZXIgcmUtZW5hYmxlcyBBRyBHcmlkJ3MgZGVmYXVsdCBmdW5jdGlvbmFsaXR5LlxuICAgKi9cbiAgcHVibGljIG9uUHJlc3NFc2NhcGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zKSB7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkuc3RvcEVkaXRpbmcodHJ1ZSk7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkuc2V0Rm9jdXNlZENlbGwodGhpcy5wYXJhbXMucm93SW5kZXgsIHRoaXMucGFyYW1zLmNvbHVtbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUHJlc3NFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbXMgJiYgdGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMucGFyYW1zLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICAgIHRoaXMuI2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIj5cbiAgPGlucHV0XG4gICAgI3NreUNlbGxFZGl0b3JDdXJyZW5jeVxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3VycmVuY3lcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW3NreUF1dG9udW1lcmljXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXNcIlxuICAgIFtza3lBdXRvbnVtZXJpY0Zvcm1DaGFuZ2VzVW5mb3JtYXR0ZWRdPVwicGFyYW1zPy5ldmVudEtleT8ubGVuZ3RoID09PSAxXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwib25QcmVzc0VudGVyKClcIlxuICAgIChrZXl1cC5lc2NhcGUpPVwib25QcmVzc0VzY2FwZSgpXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild, ViewEncapsulation, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyThemeService } from '@skyux/theme';\nimport { PopupComponent } from 'ag-grid-community';\nimport { fromEvent } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/datetime\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorDatepickerComponent extends PopupComponent {\n #calendarOpen;\n #params;\n #triggerType;\n #elementRef;\n #changeDetector;\n #themeSvc;\n constructor() {\n super();\n this.editorForm = new UntypedFormGroup({\n date: new UntypedFormControl(),\n });\n this.skyComponentProperties = {};\n this.resolvedDateFormat = '';\n this.#calendarOpen = false;\n this.#elementRef = inject(ElementRef);\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#themeSvc = inject(SkyThemeService, { optional: true }) || undefined;\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\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 }\n else if (event.target === this.datepickerInput?.nativeElement) {\n this.#stopEditingOnBlur();\n }\n }\n onCalendarOpenChange(isOpen) {\n this.#calendarOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n onDateFormatChange(dateFormat) {\n this.resolvedDateFormat = dateFormat;\n this.#changeDetector.markForCheck();\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 agInit(params) {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('date');\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 this.skyComponentProperties = this.#params.skyComponentProperties || {};\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.columnWidth = this.#params.column.getActualWidth();\n this.columnWidthWithoutBorders = this.columnWidth - 2;\n this.rowHeightWithoutBorders = this.#params.node.rowHeight - 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 }\n else {\n this.columnWidthWithoutBorders =\n this.columnWidth === undefined ? undefined : this.columnWidth - 2;\n this.rowHeightWithoutBorders = SkyAgGridCellEditorUtils.subtractOrZero(this.#params?.node.rowHeight, 3);\n }\n });\n }\n getPopupPosition() {\n return 'over';\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 afterGuiAttached() {\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;\n if (datepickerInputEl) {\n datepickerInputEl.focus();\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 const charPress = this.#params?.eventKey;\n if (charPress) {\n datepickerInputEl.setRangeText(charPress);\n // Ensure the cursor is at the end of the text.\n datepickerInputEl.setSelectionRange(charPress.length, charPress.length);\n }\n }\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n datepickerInputEl.select();\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 getValue() {\n this.datepickerInput?.nativeElement.blur();\n return this.editorForm.get('date')?.value;\n }\n #stopEditingOnBlur() {\n if (!this.#calendarOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellEditorDatepickerComponent, isStandalone: true, selector: \"sky-ag-grid-cell-editor-datepicker\", host: { listeners: { \"focusout\": \"onFocusOut($event)\" } }, viewQueries: [{ propertyName: \"datepickerInput\", first: true, predicate: [\"skyCellEditorDatepickerInput\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"<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\", styles: [\".sky-ag-grid-cell-editor-datepicker:not(.sky-theme-modern *){--sky-override-ag-grid-datepicker-editor-border-width: 1px;--sky-override-ag-grid-datepicker-editor-border-color: transparent #cdcfd2 transparent transparent;--sky-override-ag-grid-datepicker-editor-position: relative;--sky-override-ag-grid-datepicker-editor-top-left: 1px}.sky-ag-grid-cell-editor-datepicker{position:var(--sky-override-ag-grid-datepicker-editor-position, static);top:var(--sky-override-ag-grid-datepicker-editor-top-left, initial);left:var(--sky-override-ag-grid-datepicker-editor-top-left, initial)}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{background-color:var(--ag-background-color);box-shadow:none;border-width:var(--sky-override-ag-grid-datepicker-editor-border-width, var(--sky-border-width-input-base));border-style:solid;border-color:var(--sky-override-ag-grid-datepicker-editor-border-color, var(--sky-color-border-input-focus))}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:var(--sky-override-ag-grid-datepicker-editor-border-width, var(--sky-border-width-input-focus))}.sky-ag-grid-cell-editor-datepicker sky-datepicker .sky-input-group-datepicker-btn{border-radius:0}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: SkyDatepickerModule }, { kind: \"component\", type: i2.λ2, selector: \"sky-datepicker\", inputs: [\"pickerClass\"], outputs: [\"calendarDateRangeChange\", \"dateFormatChange\", \"openChange\", \"calendarDateChange\"] }, { kind: \"directive\", type: i2.λ3, selector: \"[skyDatepickerInput]\", inputs: [\"dateFormat\", \"disabled\", \"maxDate\", \"minDate\", \"startAtDate\", \"skyDatepickerInput\", \"skyDatepickerNoValidate\", \"startingDay\", \"strict\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyDatepickerModule,\n SkyI18nModule,\n ], template: \"<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\", styles: [\".sky-ag-grid-cell-editor-datepicker:not(.sky-theme-modern *){--sky-override-ag-grid-datepicker-editor-border-width: 1px;--sky-override-ag-grid-datepicker-editor-border-color: transparent #cdcfd2 transparent transparent;--sky-override-ag-grid-datepicker-editor-position: relative;--sky-override-ag-grid-datepicker-editor-top-left: 1px}.sky-ag-grid-cell-editor-datepicker{position:var(--sky-override-ag-grid-datepicker-editor-position, static);top:var(--sky-override-ag-grid-datepicker-editor-top-left, initial);left:var(--sky-override-ag-grid-datepicker-editor-top-left, initial)}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{background-color:var(--ag-background-color);box-shadow:none;border-width:var(--sky-override-ag-grid-datepicker-editor-border-width, var(--sky-border-width-input-base));border-style:solid;border-color:var(--sky-override-ag-grid-datepicker-editor-border-color, var(--sky-color-border-input-focus))}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:var(--sky-override-ag-grid-datepicker-editor-border-width, var(--sky-border-width-input-focus))}.sky-ag-grid-cell-editor-datepicker sky-datepicker .sky-input-group-datepicker-btn{border-radius:0}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { datepickerInput: [{\n type: ViewChild,\n args: ['skyCellEditorDatepickerInput', { read: ElementRef }]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBR3pFOztHQUVHO0FBY0gsTUFBTSxPQUFPLHNDQUNYLFNBQVEsY0FBYztJQWtCdEIsYUFBYSxDQUFTO0lBQ3RCLE9BQU8sQ0FBNEM7SUFDbkQsWUFBWSxDQUErQztJQUUzRCxXQUFXLENBQWlEO0lBQzVELGVBQWUsQ0FBNkI7SUFDNUMsU0FBUyxDQUE0RDtJQUVyRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBckJILGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3ZDLElBQUksRUFBRSxJQUFJLGtCQUFrQixFQUFFO1NBQy9CLENBQUMsQ0FBQztRQUdJLDJCQUFzQixHQUFrQyxFQUFFLENBQUM7UUFLeEQsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSXRCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztRQUM1RCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDO0lBSXJFLENBQUM7SUFHTSxVQUFVLENBQUMsS0FBaUI7UUFDakMsSUFDRSxLQUFLLENBQUMsYUFBYTtZQUNuQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUMvQyxDQUFDO1lBQ0Qsa0ZBQWtGO1lBQ2xGLG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFlO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxVQUFrQjtRQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFxQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxnQ0FBZ0MsQ0FBQyxNQUFNO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssZ0NBQWdDLENBQUMsT0FBTztvQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1IsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELEtBQUssZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNoRDtvQkFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsTUFBTTtZQUNWLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUNuQixRQUFRLENBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyx1QkFBdUIsR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFvQixHQUFHLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN6RCxJQUFJLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyx5QkFBeUI7b0JBQzVCLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsd0JBQXdCLENBQUMsY0FBYyxDQUNwRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQzVCLENBQUMsQ0FDRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDckIsZ0dBQWdHO1FBQ2hHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFFbkMsQ0FBQztZQUVkLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBRTFCLHVKQUF1SjtnQkFDdkosb01BQW9NO2dCQUNwTSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssZ0NBQWdDLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ25FLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7eUJBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt5QkFDYixTQUFTLENBQUMsR0FBRyxFQUFFO3dCQUNkLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDLENBQUMsQ0FBQztvQkFDTCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFFM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFrQixDQUFDO29CQUVuRCxJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUNkLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDMUMsK0NBQStDO3dCQUMvQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FDakMsU0FBUyxDQUFDLE1BQU0sRUFDaEIsU0FBUyxDQUFDLE1BQU0sQ0FDakIsQ0FBQztvQkFDSixDQUFDO2dCQUNILENBQUM7Z0JBRUQsSUFDRSxJQUFJLENBQUMsWUFBWSxLQUFLLGdDQUFnQyxDQUFDLFdBQVcsRUFDbEUsQ0FBQztvQkFDRCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQ0UsQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUM7WUFDaEUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQ3hELENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQzs4R0E5S1Usc0NBQXNDO2tHQUF0QyxzQ0FBc0MscVFBY0UsVUFBVSxvREM1RC9ELG1xQ0FrQ0EsZ3hDRE1JLFdBQVcsa2pCQUNYLG1CQUFtQiwrVUFDbkIsbUJBQW1CLDhhQUNuQixhQUFhOzsyRkFHSixzQ0FBc0M7a0JBYmxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2Q7d0RBaUJNLGVBQWU7c0JBRHJCLFNBQVM7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQWtCeEQsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9kYXRldGltZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBQb3B1cENvbXBvbmVudCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWREYXRlcGlja2VyUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2RhdGVwaWNrZXItcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreURhdGVwaWNrZXJNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBQb3B1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd0hlaWdodFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcm93TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiBTa3lBZ0dyaWREYXRlcGlja2VyUHJvcGVydGllcyA9IHt9O1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JEYXRlcGlja2VySW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGRhdGVwaWNrZXJJbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVzb2x2ZWREYXRlRm9ybWF0ID0gJyc7XG5cbiAgI2NhbGVuZGFyT3BlbiA9IGZhbHNlO1xuICAjcGFyYW1zOiBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKSBhcyBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBkYXRlcGlja2VyIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuZGF0ZXBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNhbGVuZGFyT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNjYWxlbmRhck9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGVGb3JtYXRDaGFuZ2UoZGF0ZUZvcm1hdDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlZERhdGVGb3JtYXQgPSBkYXRlRm9ybWF0O1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3BhcmFtcyA9IHBhcmFtcztcblxuICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24ocGFyYW1zKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnZGF0ZScpO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMuZXZlbnRLZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMuY29sdW1uV2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5jb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzID0gdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9ICh0aGlzLiNwYXJhbXMubm9kZS5yb3dIZWlnaHQgYXMgbnVtYmVyKSAtIDM7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuXG4gICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlLnN1YnNjcmliZSgodGhlbWVTZXR0aW5ncykgPT4ge1xuICAgICAgaWYgKHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzLnRoZW1lLm5hbWUgPT09ICdtb2Rlcm4nKSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9IHRoaXMuY29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSB0aGlzLiNwYXJhbXM/Lm5vZGU/LnJvd0hlaWdodDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9XG4gICAgICAgICAgdGhpcy5jb2x1bW5XaWR0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuc3VidHJhY3RPclplcm8oXG4gICAgICAgICAgdGhpcy4jcGFyYW1zPy5ub2RlLnJvd0hlaWdodCxcbiAgICAgICAgICAzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFBvcHVwUG9zaXRpb24oKTogJ292ZXInIHwgJ3VuZGVyJyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICdvdmVyJztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0ZXBpY2tlcklucHV0RWwgPSB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudCBhc1xuICAgICAgICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChkYXRlcGlja2VySW5wdXRFbCkge1xuICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5mb2N1cygpO1xuXG4gICAgICAgIC8vIHByb2dyYW1tYXRpY2FsbHkgc2V0IHRoZSB2YWx1ZSBvZiBpbiB0aGUgaW5wdXQ7IGhvd2V2ZXIsIGRvIG5vdCBkbyB0aGlzIHZpYSB0aGUgZm9ybSBjb250cm9sIHNvIHRoYXQgdGhlIHZhbHVlIGlzIG5vdCBmb3JtYXR0ZWQgd2hlbiBlZGl0aW5nIHN0YXJ0cy5cbiAgICAgICAgLy8gV2F0Y2ggZm9yIHRoZSBmaXJzdCBibHVyIGFuZCBmaXJlIGEgJ2NoYW5nZScgZXZlbnQgYXMgcHJvZ3JhbW1hdGljIGNoYW5nZXMgd29uJ3QgcXVldWUgYSBjaGFuZ2UgZXZlbnQsIGJ1dCB3ZSBuZWVkIHRvIGRvIHRoaXMgc28gdGhhdCBmb3JtYXR0aW5nIGhhcHBlbnMgaWYgdGhlIHVzZXIgdGFicyB0byB0aGUgY2FsZW5kYXIgYnV0dG9uLlxuICAgICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgICBmcm9tRXZlbnQoZGF0ZXBpY2tlcklucHV0RWwsICdibHVyJylcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNlbGVjdCgpO1xuXG4gICAgICAgICAgY29uc3QgY2hhclByZXNzID0gdGhpcy4jcGFyYW1zPy5ldmVudEtleSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICBpZiAoY2hhclByZXNzKSB7XG4gICAgICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5zZXRSYW5nZVRleHQoY2hhclByZXNzKTtcbiAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldFZhbHVlIGlzIGNhbGxlZCBieSBhZ0dyaWQgd2hlbiBlZGl0aW5nIGlzIHN0b3BwZWQgdG8gZ2V0IHRoZSBuZXcgdmFsdWUgb2YgdGhlIGNlbGwuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogRGF0ZSB7XG4gICAgdGhpcy5kYXRlcGlja2VySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIHJldHVybiB0aGlzLmVkaXRvckZvcm0uZ2V0KCdkYXRlJyk/LnZhbHVlO1xuICB9XG5cbiAgI3N0b3BFZGl0aW5nT25CbHVyKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLiNjYWxlbmRhck9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpXG4gICAgKSB7XG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWRhdGVwaWNrZXJcIlxuICBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIlxuICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVyc1wiXG4+XG4gIDxza3ktZGF0ZXBpY2tlclxuICAgIGRhdGEtc2t5LWlkPVwiY2VsbC1kYXRlcGlja2VyXCJcbiAgICBwaWNrZXJDbGFzcz1cImFnLWN1c3RvbS1jb21wb25lbnQtcG9wdXBcIlxuICAgIChkYXRlRm9ybWF0Q2hhbmdlKT1cIm9uRGF0ZUZvcm1hdENoYW5nZSgkZXZlbnQpXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvbkNhbGVuZGFyT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgI3NreUNlbGxFZGl0b3JEYXRlcGlja2VySW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVcIlxuICAgICAgc2t5RGF0ZXBpY2tlcklucHV0XG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfZGF0ZXBpY2tlcl9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICAgIFwiXG4gICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgcmVzb2x2ZWREYXRlRm9ybWF0XG4gICAgICAgICAgPyAoJ3NreXV4X2RhdGVwaWNrZXJfZm9ybWF0X2hpbnRfdGV4dCdcbiAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiByZXNvbHZlZERhdGVGb3JtYXQpXG4gICAgICAgICAgOiBudWxsXG4gICAgICBcIlxuICAgICAgW21pbkRhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5taW5EYXRlXCJcbiAgICAgIFttYXhEYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMubWF4RGF0ZVwiXG4gICAgICBbZGF0ZUZvcm1hdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRhdGVGb3JtYXRcIlxuICAgICAgW3N0YXJ0aW5nRGF5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc3RhcnRpbmdEYXlcIlxuICAgICAgW3NreURhdGVwaWNrZXJOb1ZhbGlkYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2t5RGF0ZXBpY2tlck5vVmFsaWRhdGVcIlxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJyb3dIZWlnaHRXaXRob3V0Qm9yZGVyc1wiXG4gICAgLz5cbiAgPC9za3ktZGF0ZXBpY2tlcj5cbjwvZGl2PlxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyLookupModule } from '@skyux/lookup';\nimport { applySkyLookupPropertiesDefaults } from '../../apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@skyux/lookup\";\nimport * as i4 from \"@skyux/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorLookupComponent {\n constructor() {\n this.isAlive = false;\n this.editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl({\n value: [],\n disabled: false,\n }),\n });\n this.useAsyncSearch = false;\n this.labelText = undefined;\n this.#lookupOpen = false;\n this.#selectionModalOpen = false;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#elementRef = inject((ElementRef));\n }\n #lookupOpen;\n #selectionModalOpen;\n #params;\n #triggerType;\n #changeDetector;\n #elementRef;\n onBlur(event) {\n if (event.relatedTarget &&\n 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 else {\n this.#stopEditingOnBlur();\n }\n }\n agInit(params) {\n this.#params = params;\n if (!Array.isArray(this.#params.value)) {\n throw new Error(`Lookup value must be an array`);\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 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 if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n }\n else {\n control.enable();\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('columnResized', (event) => {\n if (event.column?.getColId() === this.#params?.column.getColId()) {\n this.width = event.column?.getActualWidth();\n this.#changeDetector.markForCheck();\n }\n });\n this.#changeDetector.markForCheck();\n }\n isCancelAfterEnd() {\n // Shut down components to commit values before final value syncs to grid.\n this.isAlive = false;\n return false;\n }\n getGui() {\n return this.#elementRef.nativeElement;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getValue() {\n return this.editorForm.get('selection')?.value;\n }\n isPopup() {\n return true;\n }\n getPopupPosition() {\n return 'over';\n }\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const lookupInput = this.#elementRef.nativeElement.querySelector('.sky-lookup-input');\n lookupInput.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n lookupInput.setRangeText(`${this.#params?.eventKey}`);\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(lookupInput.value.length, lookupInput.value.length);\n lookupInput.dispatchEvent(new Event('input'));\n }\n else if (this.#triggerType === SkyAgGridCellEditorInitialAction.Untouched) {\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(lookupInput.value.length, lookupInput.value.length);\n }\n });\n }\n onLookupOpenChange(isOpen) {\n this.#lookupOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n onSelectionModalOpenChange(isOpen) {\n this.#selectionModalOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n #updateComponentProperties(params) {\n const skyLookupProperties = params.skyComponentProperties;\n return applySkyLookupPropertiesDefaults(skyLookupProperties);\n }\n #stopEditingOnBlur() {\n if (!this.#lookupOpen &&\n !this.#selectionModalOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridCellEditorLookupComponent, isStandalone: true, selector: \"sky-ag-grid-cell-editor-lookup\", host: { listeners: { \"focusout\": \"onBlur($event)\" }, properties: { \"style.width.px\": \"this.width\" } }, ngImport: i0, template: \"@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 (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($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 (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($event)\\\"\\n />\\n </sky-input-box>\\n}\\n<div #screenReaderLabel=\\\"skyId\\\" class=\\\"sky-screen-reader-only\\\" skyId>\\n {{ labelText }}\\n</div>\\n\", styles: [\":host{display:block}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyInputBoxModule }, { kind: \"component\", type: i1.λ10, selector: \"sky-input-box\", inputs: [\"hasErrors\", \"disabled\", \"labelText\", \"characterLimit\", \"stacked\", \"helpPopoverTitle\", \"helpPopoverContent\", \"helpKey\", \"hintText\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: SkyLookupModule }, { kind: \"component\", type: i3.λ4, selector: \"sky-lookup\", inputs: [\"ariaLabel\", \"ariaLabelledBy\", \"autocompleteAttribute\", \"data\", \"disabled\", \"required\", \"enableShowMore\", \"placeholderText\", \"idProperty\", \"showAddButton\", \"showMoreConfig\", \"selectMode\", \"wrapperClass\"], outputs: [\"addClick\", \"openChange\", \"selectionModalOpenChange\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i4.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-lookup', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyInputBoxModule,\n FormsModule,\n ReactiveFormsModule,\n SkyLookupModule,\n SkyIdModule,\n ], template: \"@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 (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($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 (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($event)\\\"\\n />\\n </sky-input-box>\\n}\\n<div #screenReaderLabel=\\\"skyId\\\" class=\\\"sky-screen-reader-only\\\" skyId>\\n {{ labelText }}\\n</div>\\n\", styles: [\":host{display:block}\\n\"] }]\n }], propDecorators: { width: [{\n type: HostBinding,\n args: ['style.width.px']\n }], onBlur: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLaEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUd6RTs7R0FFRztBQWNILE1BQU0sT0FBTyxrQ0FBa0M7SUFiL0M7UUFvQlMsWUFBTyxH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QUVELDBCQUEwQixDQUN4QixNQUFpQztRQUVqQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUMxRCxPQUFPLGdDQUFnQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUNFLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDakIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztZQUNoRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXZLVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxpTUM1Qy9DLGsvR0EwRUEsK0VEckNJLGlCQUFpQiw0T0FDakIsV0FBVyxrU0FDWCxtQkFBbUIsK1VBQ25CLGVBQWUsaVhBQ2YsV0FBVzs7MkZBR0Ysa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7cUJBQ1o7OEJBTU0sS0FBSztzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQjtnQkF1QnRCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TG9va3VwTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29sdW1uUmVzaXplZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4uLy4uL2FwcGx5LWxvb2t1cC1wcm9wZXJ0aWVzLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWxvb2t1cC1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2xvb2t1cC1wcm9wZXJ0aWVzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItbG9va3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFNreUlucHV0Qm94TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2t5TG9va3VwTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgcHVibGljIHdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM/OiBTa3lBZ0dyaWRMb29rdXBQcm9wZXJ0aWVzO1xuICBwdWJsaWMgaXNBbGl2ZSA9IGZhbHNlO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBzZWxlY3Rpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woe1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9KTtcbiAgcHVibGljIHVzZUFzeW5jU2VhcmNoID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICNsb29rdXBPcGVuID0gZmFsc2U7XG4gICNzZWxlY3Rpb25Nb2RhbE9wZW4gPSBmYWxzZTtcbiAgI3BhcmFtczogU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuI3BhcmFtcy52YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9va3VwIHZhbHVlIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICB9XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgIHRoaXMubGFiZWxUZXh0ID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbGxlZEJ5XG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsIHx8XG4gICAgICAgIHBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZSB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmhlYWRlclRvb2x0aXAgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5maWVsZCB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmNvbElkO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLiN1cGRhdGVDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMuI3BhcmFtcyk7XG4gICAgdGhpcy51c2VBc3luY1NlYXJjaCA9XG4gICAgICB0eXBlb2YgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaEFzeW5jID09PSAnZnVuY3Rpb24nO1xuICAgIHRoaXMuaXNBbGl2ZSA9IHRydWU7XG4gICAgdGhpcy53aWR0aCA9IHRoaXMuI3BhcmFtcy5jb2x1bW4uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICB0aGlzLiNwYXJhbXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY29sdW1uUmVzaXplZCcsXG4gICAgICAoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpID09PSB0aGlzLiNwYXJhbXM/LmNvbHVtbi5nZXRDb2xJZCgpKSB7XG4gICAgICAgICAgdGhpcy53aWR0aCA9IGV2ZW50LmNvbHVtbj8uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGlzQ2FuY2VsQWZ0ZXJFbmQoKTogYm9vbGVhbiB7XG4gICAgLy8gU2h1dCBkb3duIGNvbXBvbmVudHMgdG8gY29tbWl0IHZhbHVlcyBiZWZvcmUgZmluYWwgdmFsdWUgc3luY3MgdG8gZ3JpZC5cbiAgICB0aGlzLmlzQWxpdmUgPSBmYWxzZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0R3VpKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGdldFZhbHVlKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JGb3JtLmdldCgnc2VsZWN0aW9uJyk/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGlzUG9wdXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9wdXBQb3NpdGlvbigpOiAnb3ZlcicgfCAndW5kZXInIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gJ292ZXInO1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBsb29rdXBJbnB1dDogSFRNTFRleHRBcmVhRWxlbWVudCA9XG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWxvb2t1cC1pbnB1dCcpO1xuICAgICAgbG9va3VwSW5wdXQuZm9jdXMoKTtcbiAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZSkge1xuICAgICAgICBsb29rdXBJbnB1dC5zZXRSYW5nZVRleHQoYCR7dGhpcy4jcGFyYW1zPy5ldmVudEtleX1gKTtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgbG9va3VwSW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgbG9va3VwSW5wdXQudmFsdWUubGVuZ3RoLFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgKTtcbiAgICAgICAgbG9va3VwSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZFxuICAgICAgKSB7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgIGxvb2t1cElucHV0LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Mb29rdXBPcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI2xvb2t1cE9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbk1vZGFsT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNzZWxlY3Rpb25Nb2RhbE9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gICN1cGRhdGVDb21wb25lbnRQcm9wZXJ0aWVzKFxuICAgIHBhcmFtczogU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyxcbiAgKTogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB7XG4gICAgY29uc3Qgc2t5TG9va3VwUHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzO1xuICAgIHJldHVybiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhza3lMb29rdXBQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gICNzdG9wRWRpdGluZ09uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy4jbG9va3VwT3BlbiAmJlxuICAgICAgIXRoaXMuI3NlbGVjdGlvbk1vZGFsT3BlbiAmJlxuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGlzQWxpdmUgJiYgdXNlQXN5bmNTZWFyY2gpIHtcbiAgPHNreS1pbnB1dC1ib3hcbiAgICBbZGlzYWJsZWRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGlzYWJsZWRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gID5cbiAgICA8c2t5LWxvb2t1cFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsbGVkQnkgPz8gc2NyZWVuUmVhZGVyTGFiZWwuaWRcbiAgICAgIFwiXG4gICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICBbZGF0YV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kYXRhXCJcbiAgICAgIFtkZWJvdW5jZVRpbWVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVib3VuY2VUaW1lXCJcbiAgICAgIFtkZXNjcmlwdG9yUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICAgIFtlbmFibGVTaG93TW9yZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5lbmFibGVTaG93TW9yZVwiXG4gICAgICBbaWRQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5pZFByb3BlcnR5XCJcbiAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoXCJcbiAgICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEZpbHRlcnNcIlxuICAgICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgICAgXCJcbiAgICAgIFtzZWxlY3RNb2RlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlbGVjdE1vZGVcIlxuICAgICAgW3Nob3dBZGRCdXR0b25dPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd0FkZEJ1dHRvblwiXG4gICAgICBbc2hvd01vcmVDb25maWddPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd01vcmVDb25maWdcIlxuICAgICAgW3dyYXBwZXJDbGFzc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy53cmFwcGVyQ2xhc3NcIlxuICAgICAgKHNlYXJjaEFzeW5jKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEFzeW5jPy4oJGV2ZW50KVwiXG4gICAgICAoYWRkQ2xpY2spPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYWRkQ2xpY2s/LigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uTG9va3VwT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UpPVwib25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9za3ktaW5wdXQtYm94PlxufVxuQGlmIChpc0FsaXZlICYmICF1c2VBc3luY1NlYXJjaCkge1xuICA8c2t5LWlucHV0LWJveFxuICAgIFtkaXNhYmxlZF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCJcbiAgPlxuICAgIDxza3ktbG9va3VwXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3Rpb25cIlxuICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hcmlhTGFiZWxsZWRCeSA/PyBzY3JlZW5SZWFkZXJMYWJlbC5pZFxuICAgICAgXCJcbiAgICAgIFthdXRvY29tcGxldGVBdHRyaWJ1dGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXV0b2NvbXBsZXRlQXR0cmlidXRlXCJcbiAgICAgIFtkYXRhXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRhdGFcIlxuICAgICAgW2RlYm91bmNlVGltZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kZWJvdW5jZVRpbWVcIlxuICAgICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kZXNjcmlwdG9yUHJvcGVydHlcIlxuICAgICAgW2VuYWJsZVNob3dNb3JlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmVuYWJsZVNob3dNb3JlXCJcbiAgICAgIFtpZFByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmlkUHJvcGVydHlcIlxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5wbGFjZWhvbGRlclRleHRcIlxuICAgICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5wcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hcIlxuICAgICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoRmlsdGVyc1wiXG4gICAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgICBcIlxuICAgICAgW3NlbGVjdE1vZGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VsZWN0TW9kZVwiXG4gICAgICBbc2hvd0FkZEJ1dHRvbl09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zaG93QWRkQnV0dG9uXCJcbiAgICAgIFtzaG93TW9yZUNvbmZpZ109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zaG93TW9yZUNvbmZpZ1wiXG4gICAgICBbd3JhcHBlckNsYXNzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LndyYXBwZXJDbGFzc1wiXG4gICAgICAoYWRkQ2xpY2spPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYWRkQ2xpY2s/LigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uTG9va3VwT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UpPVwib25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9za3ktaW5wdXQtYm94PlxufVxuPGRpdiAjc2NyZWVuUmVhZGVyTGFiZWw9XCJza3lJZFwiIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiIHNreUlkPlxuICB7eyBsYWJlbFRleHQgfX1cbjwvZGl2PlxuIl19","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorNumberComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n number: new UntypedFormControl(),\n });\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n 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 #params;\n #triggerType;\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 agInit(params) {\n this.#params = params;\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(parseFloat(this.#params?.eventKey) || undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n this.max = params.skyComponentProperties?.max;\n this.min = params.skyComponentProperties?.min;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = this.#params.node.rowHeight - 4;\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 afterGuiAttached() {\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.Highlighted) {\n this.input.nativeElement.select();\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 getValue() {\n const val = this.editorForm.get('number')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellEditorNumberComponent, isStandalone: true, selector: \"sky-ag-grid-cell-editor-number\", host: { listeners: { \"focusout\": \"onFocusOut($event)\" } }, viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"skyCellEditorNumber\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<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\", styles: [\"input{background-color:transparent;border:none;text-align:right}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.MinValidator, selector: \"input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]\", inputs: [\"min\"] }, { kind: \"directive\", type: i1.MaxValidator, selector: \"input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]\", inputs: [\"max\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i2.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-number', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, ReactiveFormsModule, SkyI18nModule], template: \"<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\", styles: [\"input{background-color:transparent;border:none;text-align:right}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorNumber', { read: ElementRef }]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVlTLGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixFQUFFO1NBQ2pDLENBQUMsQ0FBQztLQXNGSjtJQTVFUSxVQUFVLENBQUMsS0FBaUI7UUFDakMsSUFDRSxLQUFLLENBQUMsYUFBYTtZQUNuQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUks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Vywwa0NBQUUsbUJBQW1CLCtVQUFFLGFBQWE7OzJGQUU5QyxrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQzs4QkFnQm5ELEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSS9DLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yTnVtYmVyUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItbnVtYmVyLXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIG51bWJlcjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd0hlaWdodFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG1heDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWluOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvck51bWJlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgI3BhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yTnVtYmVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdudW1iZXInKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1heCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5tYXg7XG4gICAgdGhpcy5taW4gPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8ubWluO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy4jcGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLmNvbHVtbldpZHRoID0gdGhpcy4jcGFyYW1zLmNvbHVtbi5nZXRBY3R1YWxXaWR0aCgpO1xuICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSAodGhpcy4jcGFyYW1zLm5vZGUucm93SGVpZ2h0IGFzIG51bWJlcikgLSA0O1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmFsID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnbnVtYmVyJyk/LnZhbHVlO1xuICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCI+XG4gIDxpbnB1dFxuICAgICNza3lDZWxsRWRpdG9yTnVtYmVyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyXCJcbiAgICB0eXBlPVwibnVtYmVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uV2lkdGhcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicm93SGVpZ2h0V2l0aG91dEJvcmRlcnNcIlxuICAgIFttYXhdPVwibWF4ID8/IG51bGxcIlxuICAgIFttaW5dPVwibWluID8/IG51bGxcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorTextComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n text: new UntypedFormControl(),\n });\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n 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 #params;\n #triggerType;\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 agInit(params) {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('text');\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 this.maxlength = params.skyComponentProperties?.maxlength;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = this.#params.rowIndex + 1;\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 afterGuiAttached() {\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.Highlighted) {\n this.input.nativeElement.select();\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 getValue() {\n return this.editorForm.get('text')?.value || undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellEditorTextComponent, isStandalone: true, selector: \"sky-ag-grid-cell-editor-text\", host: { listeners: { \"focusout\": \"onFocusOut($event)\" } }, viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"skyCellEditorText\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<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 [maxlength]=\\\"maxlength ?? null\\\"\\n />\\n</ng-container>\\n\", styles: [\"input:not(.sky-theme-modern *){--sky-override-ag-grid-text-editor-left-padding: 9px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) input{--sky-override-ag-grid-text-editor-left-padding: 10px}:host{height:100%;width:100%;display:flex}input{background-color:transparent;border:none;height:100%;width:100%;padding-left:var(--sky-override-ag-grid-text-editor-left-padding, calc(var(--sky-space-inset-letterbox-2_3-left-m) - var(--sky-border-width-input-focus)))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.MaxLengthValidator, selector: \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", inputs: [\"maxlength\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i2.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellEditorTextComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-text', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, ReactiveFormsModule, SkyI18nModule], template: \"<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 [maxlength]=\\\"maxlength ?? null\\\"\\n />\\n</ng-container>\\n\", styles: [\"input:not(.sky-theme-modern *){--sky-override-ag-grid-text-editor-left-padding: 9px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) input{--sky-override-ag-grid-text-editor-left-padding: 10px}:host{height:100%;width:100%;display:flex}input{background-color:transparent;border:none;height:100%;width:100%;padding-left:var(--sky-override-ag-grid-text-editor-left-padding, calc(var(--sky-space-inset-letterbox-2_3-left-m) - var(--sky-border-width-input-focus)))}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorText', { read: ElementRef }]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0NBQWdDO0lBUDdDO1FBWVMsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0tBK0VKO0lBdkVRLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQy9DLENBQUM7WUFDRCx1RUFBdUU7WUFDdkUsb0RBQW9EO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFnQztJQUN2QyxZQUFZLENBQStDO0lBRTNEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUErQjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxnQ0FBZ0MsQ0FBQyxNQUFNO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssZ0NBQWdDLENBQUMsT0FBTztvQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1IsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELEtBQUssZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNoRDtvQkFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUNuQixRQUFRLENBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixnR0FBZ0c7UUFDaEcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqQyxJQUNFLElBQUksQ0FBQyxZQUFZLEtBQUssZ0NBQWdDLENBQUMsV0FBVyxFQUNsRSxDQUFDO29CQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLFNBQVMsQ0FBQztJQUN6RCxDQUFDOzhHQXJGVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywwT0FXSCxVQUFVLDZCQzNDcEQsc1VBWUEsa2hCRGtCWSxXQUFXLHF0QkFBRSxtQkFBbUIsK1VBQUUsYUFBYTs7MkZBRTlDLGdDQUFnQztrQkFQNUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDOzhCQWNuRCxLQUFLO3NCQURYLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUk3QyxVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUNlbGxFZGl0b3JQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvclRleHRQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci10ZXh0LXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLXRleHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgdGV4dElucHV0TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICB0ZXh0OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pO1xuICBwdWJsaWMgcm93TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBtYXhsZW5ndGg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yVGV4dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgI3BhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yVGV4dFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3BhcmFtcyA9IHBhcmFtcztcblxuICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24ocGFyYW1zKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0b3JGb3JtLmdldCgndGV4dCcpO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMuZXZlbnRLZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5tYXhsZW5ndGggPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8ubWF4bGVuZ3RoO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy4jcGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckZvcm0uZ2V0KCd0ZXh0Jyk/LnZhbHVlIHx8IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIj5cbiAgPGlucHV0XG4gICAgI3NreUNlbGxFZGl0b3JUZXh0XG4gICAgZm9ybUNvbnRyb2xOYW1lPVwidGV4dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfdGV4dF9hcmlhX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgXCJcbiAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aCA/PyBudWxsXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject, signal, } from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyPopoverMessageType } from '@skyux/popovers';\nimport { SkyPopoverModule } from '@skyux/popovers';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/popovers\";\nimport * as i2 from \"@skyux/indicators\";\n/**\n * @internal\n */\nexport class SkyAgGridCellValidatorTooltipComponent {\n constructor() {\n this.popoverMessageStream = new Subject();\n this.showValidatorMessage = signal(false);\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#listenersAdded = false;\n this.#keyupHandler = (event) => {\n if (['ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp'].includes(event.key)) {\n this.showPopover();\n }\n };\n this.#focusHandler = () => this.showPopover();\n this.#cellFocusHandler = (eventParams) => {\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 (eventParams.column.getColId() ===\n this.cellRendererParams?.column?.getColId() &&\n eventParams.rowIndex === this.cellRendererParams?.node?.rowIndex) {\n this.showPopover();\n }\n else {\n this.hidePopover();\n }\n };\n this.#blurHandler = () => this.hidePopover();\n }\n set params(value) {\n this.cellRendererParams = value;\n if (value?.api && !this.#listenersAdded) {\n this.#listenersAdded = true;\n value.api.addEventListener('cellFocused', this.#cellFocusHandler);\n value.api.addEventListener('cellEditingStarted', this.#blurHandler);\n value.eGridCell?.addEventListener('keyup', this.#keyupHandler);\n value.eGridCell?.addEventListener('mouseenter', this.#focusHandler);\n value.eGridCell?.addEventListener('mouseleave', this.#blurHandler);\n }\n if (typeof value?.skyComponentProperties?.validatorMessage === 'function') {\n this.validatorMessage = value.skyComponentProperties.validatorMessage(value.value, value.data, value?.node?.rowIndex);\n }\n else {\n this.validatorMessage = value?.skyComponentProperties?.validatorMessage;\n }\n this.showValidatorMessage.set(this.#showValidatorMessage());\n this.#changeDetector.markForCheck();\n }\n #changeDetector;\n #listenersAdded;\n #keyupHandler;\n #focusHandler;\n #cellFocusHandler;\n #blurHandler;\n ngOnDestroy() {\n const params = this.cellRendererParams;\n if (params?.api && (!params.api.isDestroyed || !params.api.isDestroyed())) {\n params.api.removeEventListener('cellFocused', this.#cellFocusHandler);\n params.api.removeEventListener('cellEditingStarted', this.#blurHandler);\n }\n if (params?.eGridCell) {\n params.eGridCell.removeEventListener('keyup', this.#keyupHandler);\n params.eGridCell.removeEventListener('mouseenter', this.#focusHandler);\n params.eGridCell.removeEventListener('mouseleave', this.#blurHandler);\n }\n }\n hidePopover() {\n this.popoverMessageStream.next({ type: SkyPopoverMessageType.Close });\n }\n showPopover() {\n if (this.#shouldShowPopover()) {\n this.popoverMessageStream.next({ type: SkyPopoverMessageType.Open });\n }\n }\n #showValidatorMessage() {\n if (!this.validatorMessage) {\n return false;\n }\n if (typeof this.cellRendererParams?.skyComponentProperties?.validator ===\n 'function') {\n return !this.cellRendererParams.skyComponentProperties.validator(this.cellRendererParams.value, this.cellRendererParams.data, this.cellRendererParams.node?.rowIndex);\n }\n else {\n return true;\n }\n }\n #shouldShowPopover() {\n if (!this.showValidatorMessage()) {\n return false;\n }\n const editingCells = this.cellRendererParams?.api.getEditingCells() ?? [];\n return editingCells.length === 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridCellValidatorTooltipComponent, isStandalone: true, selector: \"sky-ag-grid-cell-validator-tooltip\", inputs: { params: \"params\" }, ngImport: i0, template: \"<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\", styles: [\".sky-validator-cell:not(.sky-theme-modern *){--sky-override-cell-validator-space: 5px}:host{--sky-staus-indicator-padding-right: 0;display:contents}:host div.sky-validator-cell{height:100%;min-height:var(--ag-row-height);width:100%}:host div.sky-validator-cell:focus{outline:none}sky-status-indicator{margin-left:var(--sky-override-cell-validator-space, var(--sky-space-gap-icon-s))}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: SkyPopoverModule }, { kind: \"component\", type: i1.λ6, selector: \"sky-popover\", inputs: [\"alignment\", \"placement\", \"popoverTitle\", \"popoverType\"], outputs: [\"popoverClosed\", \"popoverOpened\"] }, { kind: \"directive\", type: i1.λ7, selector: \"[skyPopover]\", inputs: [\"skyPopover\", \"skyPopoverAlignment\", \"skyPopoverMessageStream\", \"skyPopoverPlacement\", \"skyPopoverTrigger\"] }, { kind: \"ngmodule\", type: SkyStatusIndicatorModule }, { kind: \"component\", type: i2.λ10, selector: \"sky-status-indicator\", inputs: [\"indicatorType\", \"descriptionType\", \"customDescription\", \"helpPopoverContent\", \"helpPopoverTitle\", \"helpKey\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellValidatorTooltipComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-validator-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, SkyPopoverModule, SkyStatusIndicatorModule], template: \"<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\", styles: [\".sky-validator-cell:not(.sky-theme-modern *){--sky-override-cell-validator-space: 5px}:host{--sky-staus-indicator-padding-right: 0;display:contents}:host div.sky-validator-cell{height:100%;min-height:var(--ag-row-height);width:100%}:host div.sky-validator-cell:focus{outline:none}sky-status-indicator{margin-left:var(--sky-override-cell-validator-space, var(--sky-space-gap-icon-s))}\\n\"] }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSS9COztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQW1DUyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUk1Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLEtBQUss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QUFFLHNCQUFzQixFQUFFLFNBQVM7WUFDakUsVUFBVSxFQUNWLENBQUM7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxRQUFRLENBQ3ZDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUUsT0FBTyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQTFHVSxzQ0FBc0M7a0dBQXRDLHNDQUFzQyw0SEM3Qm5ELDhyQkE0QkEsMmJERFksZ0JBQWdCLG1KQUFFLGdCQUFnQiwrWEFBRSx3QkFBd0I7OzJGQUUzRCxzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLENBQUM7OEJBSTVELE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lTdGF0dXNJbmRpY2F0b3JNb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyTWVzc2FnZSwgU2t5UG9wb3Zlck1lc3NhZ2VUeXBlIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcbmltcG9ydCB7IFNreVBvcG92ZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuXG5pbXBvcnQgeyBBZ0NvbHVtbiwgQ2VsbEZvY3VzZWRFdmVudCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCcsXG4gIHN0eWxlVXJsczogWydhZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdhZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFNreVBvcG92ZXJNb2R1bGUsIFNreVN0YXR1c0luZGljYXRvck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbXModmFsdWU6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWU/LmFwaSAmJiAhdGhpcy4jbGlzdGVuZXJzQWRkZWQpIHtcbiAgICAgIHRoaXMuI2xpc3RlbmVyc0FkZGVkID0gdHJ1ZTtcbiAgICAgIHZhbHVlLmFwaS5hZGRFdmVudExpc3RlbmVyKCdjZWxsRm9jdXNlZCcsIHRoaXMuI2NlbGxGb2N1c0hhbmRsZXIpO1xuICAgICAgdmFsdWUuYXBpLmFkZEV2ZW50TGlzdGVuZXIoJ2NlbGxFZGl0aW5nU3RhcnRlZCcsIHRoaXMuI2JsdXJIYW5kbGVyKTtcbiAgICAgIHZhbHVlLmVHcmlkQ2VsbD8uYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLiNrZXl1cEhhbmRsZXIpO1xuICAgICAgdmFsdWUuZUdyaWRDZWxsPy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy4jZm9jdXNIYW5kbGVyKTtcbiAgICAgIHZhbHVlLmVHcmlkQ2VsbD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuI2JsdXJIYW5kbGVyKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3JNZXNzYWdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZS5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UoXG4gICAgICAgIHZhbHVlLnZhbHVlLFxuICAgICAgICB2YWx1ZS5kYXRhLFxuICAgICAgICB2YWx1ZT8ubm9kZT8ucm93SW5kZXgsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZT8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yTWVzc2FnZTtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dWYWxpZGF0b3JNZXNzYWdlLnNldCh0aGlzLiNzaG93VmFsaWRhdG9yTWVzc2FnZSgpKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBwb3BvdmVyTWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreVBvcG92ZXJNZXNzYWdlPigpO1xuICBwdWJsaWMgdmFsaWRhdG9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dWYWxpZGF0b3JNZXNzYWdlID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjbGlzdGVuZXJzQWRkZWQgPSBmYWxzZTtcblxuICByZWFkb25seSAja2V5dXBIYW5kbGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgWydBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCddLmluY2x1ZGVzKGV2ZW50LmtleSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIoKTtcbiAgICB9XG4gIH07XG4gIHJlYWRvbmx5ICNmb2N1c0hhbmRsZXIgPSAoKTogdm9pZCA9PiB0aGlzLnNob3dQb3BvdmVyKCk7XG4gIHJlYWRvbmx5ICNjZWxsRm9jdXNIYW5kbGVyID0gKGV2ZW50UGFyYW1zOiBDZWxsRm9jdXNlZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gV2Ugd2FudCB0byBjbG9zZSBhbnkgcG9wb3ZlcnMgdGhhdCBhcmUgb3BlbmVkIHdoZW4gb3RoZXIgY2VsbHMgYXJlIGZvY3VzZWQsIGJ1dCBvcGVuIGEgcG9wb3ZlciBpZiB0aGUgY3VycmVudCBjZWxsIGlzIGZvY3VzZWQuXG4gICAgaWYgKFxuICAgICAgKGV2ZW50UGFyYW1zLmNvbHVtbiBhcyBBZ0NvbHVtbikuZ2V0Q29sSWQoKSA9PT1cbiAgICAgICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM/LmNvbHVtbj8uZ2V0Q29sSWQoKSAmJlxuICAgICAgZXZlbnRQYXJhbXMucm93SW5kZXggPT09IHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zPy5ub2RlPy5yb3dJbmRleFxuICAgICkge1xuICAgICAgdGhpcy5zaG93UG9wb3ZlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGVQb3BvdmVyKCk7XG4gICAgfVxuICB9O1xuICByZWFkb25seSAjYmx1ckhhbmRsZXIgPSAoKTogdm9pZCA9PiB0aGlzLmhpZGVQb3BvdmVyKCk7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zO1xuICAgIGlmIChwYXJhbXM/LmFwaSAmJiAoIXBhcmFtcy5hcGkuaXNEZXN0cm95ZWQgfHwgIXBhcmFtcy5hcGkuaXNEZXN0cm95ZWQoKSkpIHtcbiAgICAgIHBhcmFtcy5hcGkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2VsbEZvY3VzZWQnLCB0aGlzLiNjZWxsRm9jdXNIYW5kbGVyKTtcbiAgICAgIHBhcmFtcy5hcGkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2VsbEVkaXRpbmdTdGFydGVkJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgIH1cbiAgICBpZiAocGFyYW1zPy5lR3JpZENlbGwpIHtcbiAgICAgIHBhcmFtcy5lR3JpZENlbGwucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLiNrZXl1cEhhbmRsZXIpO1xuICAgICAgcGFyYW1zLmVHcmlkQ2VsbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy4jZm9jdXNIYW5kbGVyKTtcbiAgICAgIHBhcmFtcy5lR3JpZENlbGwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuI2JsdXJIYW5kbGVyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyTWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLkNsb3NlIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dQb3BvdmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNzaG91bGRTaG93UG9wb3ZlcigpKSB7XG4gICAgICB0aGlzLnBvcG92ZXJNZXNzYWdlU3RyZWFtLm5leHQoeyB0eXBlOiBTa3lQb3BvdmVyTWVzc2FnZVR5cGUuT3BlbiB9KTtcbiAgICB9XG4gIH1cblxuICAjc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRvck1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3IgPT09XG4gICAgICAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICByZXR1cm4gIXRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSxcbiAgICAgICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuZGF0YSxcbiAgICAgICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMubm9kZT8ucm93SW5kZXgsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAjc2hvdWxkU2hvd1BvcG92ZXIoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNob3dWYWxpZGF0b3JNZXNzYWdlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZWRpdGluZ0NlbGxzID0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM/LmFwaS5nZXRFZGl0aW5nQ2VsbHMoKSA/PyBbXTtcbiAgICByZXR1cm4gZWRpdGluZ0NlbGxzLmxlbmd0aCA9PT0gMDtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNkaXNwbGF5VmFsdWU+XG4gIDxuZy1jb250ZW50IC8+XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKHNob3dWYWxpZGF0b3JNZXNzYWdlKCkpIHtcbiAgPGRpdlxuICAgIHNreVBvcG92ZXJUcmlnZ2VyPVwibW91c2VlbnRlclwiXG4gICAgY2xhc3M9XCJza3ktdmFsaWRhdG9yLWNlbGxcIlxuICAgIFtza3lQb3BvdmVyXT1cInZhbGlkYXRvclBvcG92ZXJcIlxuICAgIFtza3lQb3BvdmVyTWVzc2FnZVN0cmVhbV09XCJwb3BvdmVyTWVzc2FnZVN0cmVhbVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlzcGxheVZhbHVlXCIgLz5cbiAgICA8c2t5LXN0YXR1cy1pbmRpY2F0b3JcbiAgICAgIGRlc2NyaXB0aW9uVHlwZT1cIm5vbmVcIlxuICAgICAgaW5kaWNhdG9yVHlwZT1cImRhbmdlclwiXG4gICAgICBjbGFzcz1cInNreS1wdWxsLXJpZ2h0XCJcbiAgICAvPlxuICA8L2Rpdj5cbiAgPHNreS1wb3BvdmVyXG4gICAgI3ZhbGlkYXRvclBvcG92ZXJcbiAgICBkYXRhLXNreS1pZD1cInZhbGlkYXRvclBvcG92ZXJcIlxuICAgIHBvcG92ZXJUeXBlPVwiZGFuZ2VyXCJcbiAgPlxuICAgIHt7IHZhbGlkYXRvck1lc3NhZ2UgfX1cbiAgPC9za3ktcG9wb3Zlcj5cbn0gQGVsc2Uge1xuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlzcGxheVZhbHVlXCIgLz5cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkyNumericModule } from '@skyux/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererCurrencyComponent {\n constructor() {\n this.skyComponentProperties = {};\n this.numericOptions = {};\n }\n set params(value) {\n this.agInit(value);\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 agInit(params) {\n this.#updateProperties(params);\n }\n /**\n * refresh is called by AG Grid to update the cell without destroying and recreating the component.\n */\n refresh(params) {\n this.agInit(params);\n return false;\n }\n #updateProperties(params) {\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellRendererCurrencyComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-currency\", inputs: { params: \"params\" }, ngImport: i0, template: \"{{\\n value === undefined ? undefined : (value | skyNumeric: skyComponentProperties)\\n}}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: SkyNumericModule }, { kind: \"pipe\", type: i1.SkyNumericPipe, name: \"skyNumeric\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-currency', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyNumericModule], template: \"{{\\n value === undefined ? undefined : (value | skyNumeric: skyComponentProperties)\\n}}\\n\" }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTy9DOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQWlCUywyQkFBc0IsR0FDSSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO0tBeUIvQztJQWxDQyxJQUNXLE1BQU0sQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFTRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFxQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE1BQXFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7OEdBcENVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDRIQ25CbkQsNEZBR0EseUREY1ksZ0JBQWdCOzsyRkFFZixzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7OEJBTWhCLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TnVtZXJpY09wdGlvbnMgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lOdW1lcmljTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItY3VycmVuY3ktcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZFZhbGlkYXRvclByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy92YWxpZGF0b3ItcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lOdW1lcmljTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbXModmFsdWU6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKSB7XG4gICAgdGhpcy5hZ0luaXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dIZWlnaHRXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5TnVtZXJpY09wdGlvbnMgJlxuICAgIFNreUFnR3JpZFZhbGlkYXRvclByb3BlcnRpZXMgPSB7fTtcbiAgcHVibGljIG51bWVyaWNPcHRpb25zOiBTa3lOdW1lcmljT3B0aW9ucyA9IHt9O1xuICBwdWJsaWMgdmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBBRyBHcmlkIG9uY2UgYWZ0ZXIgdGhlIHJlbmRlcmVyIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSByZW5kZXJlciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVByb3BlcnRpZXMocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWZyZXNoIGlzIGNhbGxlZCBieSBBRyBHcmlkIHRvIHVwZGF0ZSB0aGUgY2VsbCB3aXRob3V0IGRlc3Ryb3lpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICN1cGRhdGVQcm9wZXJ0aWVzKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5mb3JtYXQgPSAnY3VycmVuY3knO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5taW5EaWdpdHMgPSAyO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy50cnVuY2F0ZSA9IGZhbHNlO1xuICB9XG59XG4iLCJ7e1xuICB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKHZhbHVlIHwgc2t5TnVtZXJpYzogc2t5Q29tcG9uZW50UHJvcGVydGllcylcbn19XG4iXX0=","import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderer-currency.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererCurrencyValidatorComponent {\n set parameters(value) {\n this.agInit(value);\n }\n #changeDetector;\n constructor(changeDetector) {\n this.#changeDetector = changeDetector;\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 agInit(params) {\n this.cellRendererParams = params;\n this.#changeDetector.markForCheck();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isNumeric(value) {\n return !isNaN(parseFloat(value));\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refresh(params) {\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererCurrencyValidatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridCellRendererCurrencyValidatorComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-currency-validator\", inputs: { parameters: \"parameters\" }, ngImport: i0, template: \"@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\", styles: [\":host{display:contents}\\n\"], dependencies: [{ kind: \"component\", type: SkyAgGridCellValidatorTooltipComponent, selector: \"sky-ag-grid-cell-validator-tooltip\", inputs: [\"params\"] }, { kind: \"component\", type: SkyAgGridCellRendererCurrencyComponent, selector: \"sky-ag-grid-cell-renderer-currency\", inputs: [\"params\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererCurrencyValidatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-currency-validator', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyAgGridCellValidatorTooltipComponent,\n SkyAgGridCellRendererCurrencyComponent,\n ], template: \"@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\", styles: [\":host{display:contents}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { parameters: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUd2SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFNUY7O0dBRUc7QUFlSCxNQUFNLE9BQU8sK0NBQStDO0lBRzFELElBQ1csVUFBVSxDQUFDLEtBQW9DO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQXFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELFNBQVMsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxPQUFPLENBQUMsTUFBcUM7UUFDbEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWpDVSwrQ0FBK0M7a0dBQS9DLCtDQUErQyw4SUMvQjVELDZVQVNBLG1GRGtCSSxzQ0FBc0MsbUdBQ3RDLHNDQUFzQzs7MkZBRzdCLCtDQUErQztrQkFkM0QsU0FBUzsrQkFDRSw4Q0FBOEMsbUJBT3ZDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asc0NBQXNDO3dCQUN0QyxzQ0FBc0M7cUJBQ3ZDO3NGQU1VLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXBhcmFtcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgc3R5bGVzOiBgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuICBgLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbWV0ZXJzKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcykge1xuICAgIHRoaXMuYWdJbml0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsUmVuZGVyZXJQYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgcmVuZGVyZXIgd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgcmVuZGVyZXIgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpc051bWVyaWModmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCJAaWYgKGNlbGxSZW5kZXJlclBhcmFtcykge1xuICA8c2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiPlxuICAgIEBpZiAoaXNOdW1lcmljKGNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSkpIHtcbiAgICAgIDxza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5IFtwYXJhbXNdPVwiY2VsbFJlbmRlcmVyUGFyYW1zXCIgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIHt7IGNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSB9fVxuICAgIH1cbiAgPC9za3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwPlxufVxuIl19","import { ChangeDetectionStrategy, Component, } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererLookupComponent {\n #changeDetector;\n constructor(changeDetector) {\n this.value = '';\n this.summaryCount = 0;\n this.#changeDetector = changeDetector;\n }\n agInit(params) {\n this.summaryCount = params.value?.length || 0;\n this.value = `${params.valueFormatted}`;\n this.#changeDetector.markForCheck();\n }\n refresh(params) {\n this.agInit(params);\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererLookupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridCellRendererLookupComponent, isStandalone: true, selector: \"sky-cell-renderer-lookup\", ngImport: i0, template: \"@if (summaryCount > 5) {\\n {{ 'skyux_lookup_tokens_summary' | skyLibResources: summaryCount }}\\n} @else {\\n {{ value }}\\n}\\n\", styles: [\":host{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i1.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererLookupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-cell-renderer-lookup', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyI18nModule], template: \"@if (summaryCount > 5) {\\n {{ 'skyux_lookup_tokens_summary' | skyLibResources: summaryCount }}\\n} @else {\\n {{ value }}\\n}\\n\", styles: [\":host{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTTVDOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9DQUFvQztJQU0vQyxlQUFlLENBQW9CO0lBRW5DLFlBQVksY0FBaUM7UUFMbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBS3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBckJVLG9DQUFvQztrR0FBcEMsb0NBQW9DLG9GQ3JCakQsZ0lBS0EsMkhEY1ksYUFBYTs7MkZBRVosb0NBQW9DO2tCQVBoRCxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItbG9va3VwLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jZWxsLXJlbmRlcmVyLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcFxue1xuICBwcm90ZWN0ZWQgdmFsdWUgPSAnJztcbiAgcHJvdGVjdGVkIHN1bW1hcnlDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuc3VtbWFyeUNvdW50ID0gcGFyYW1zLnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICB0aGlzLnZhbHVlID0gYCR7cGFyYW1zLnZhbHVlRm9ybWF0dGVkfWA7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIkBpZiAoc3VtbWFyeUNvdW50ID4gNSkge1xuICB7eyAnc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5JyB8IHNreUxpYlJlc291cmNlczogc3VtbWFyeUNvdW50IH19XG59IEBlbHNlIHtcbiAge3sgdmFsdWUgfX1cbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, } from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { BehaviorSubject, Subscription, fromEventPattern, isObservable, } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererRowSelectorComponent {\n #labelResourceKey;\n #params;\n #resources;\n #subscription;\n constructor() {\n this.checked = new BehaviorSubject(false);\n this.disabled = new BehaviorSubject(false);\n this.label = new BehaviorSubject('');\n this.#labelResourceKey = 'sky_ag_grid_row_selector_aria_label';\n this.#resources = inject(SkyLibResourcesService);\n this.#subscription = new Subscription();\n this.#setLabel();\n }\n ngOnDestroy() {\n this.#subscription.unsubscribe();\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 agInit(params) {\n this.#setParameters(params);\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 refresh(params) {\n this.#setParameters(params);\n return true;\n }\n updateRow(rowChecked) {\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 #setParameters(params) {\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;\n const rowIndex = this.rowNode?.rowIndex ?? NaN;\n this.rowNumber = Number.isNaN(rowIndex) ? undefined : rowIndex + 1;\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n this.#setLabel();\n const rowSelected = !!this.#params.node?.isSelected();\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 }\n else {\n this.checked.next(rowSelected);\n }\n this.#subscription.add(fromEventPattern((handler) => this.rowNode?.addEventListener('rowSelected', handler), (handler) => this.rowNode?.removeEventListener('rowSelected', handler)).subscribe((event) => this.#rowSelectedListener(event)));\n }\n #setLabel() {\n const cellRendererParamLabel = this.#params?.colDef?.cellRendererParams?.label;\n if (this.#params?.colDef && typeof cellRendererParamLabel === 'string') {\n this.label.next(this.#params.colDef.cellRendererParams.label);\n }\n else if (this.#params?.colDef &&\n typeof cellRendererParamLabel === 'function') {\n const label = this.#params.colDef.cellRendererParams.label(this.#params.data);\n if (isObservable(label)) {\n this.#subscription.add(label.subscribe((value) => this.label.next(String(value))));\n }\n else {\n this.label.next(label);\n }\n }\n else {\n this.#subscription.add(this.#resources\n .getString(this.#labelResourceKey, this.rowNumber ?? '')\n .subscribe((value) => this.label.next(value)));\n }\n }\n #rowSelectedListener(event) {\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellRendererRowSelectorComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-row-selector\", ngImport: i0, template: \"<sky-checkbox\\n data-sky-id=\\\"row-checkbox\\\"\\n class=\\\"sky-ag-grid-row-selector\\\"\\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\", styles: [\"sky-checkbox.sky-ag-grid-row-selector{display:block!important;margin-top:var(--sky-override-ag-grid-row-selector-margin-top, var(--sky-space-inset-letterbox-2_3-top-m))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyCheckboxModule }, { kind: \"component\", type: i1.λ3, selector: \"sky-checkbox\", inputs: [\"label\", \"labelledBy\", \"id\", \"disabled\", \"tabindex\", \"name\", \"helpPopoverContent\", \"helpPopoverTitle\", \"icon\", \"iconName\", \"checkboxType\", \"checked\", \"indeterminate\", \"required\", \"labelText\", \"labelHidden\", \"hintText\", \"stacked\", \"helpKey\"], outputs: [\"change\", \"checkedChange\", \"disabledChange\", \"indeterminateChange\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererRowSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-row-selector', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [SkyCheckboxModule, AsyncPipe], template: \"<sky-checkbox\\n data-sky-id=\\\"row-checkbox\\\"\\n class=\\\"sky-ag-grid-row-selector\\\"\\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\", styles: [\"sky-checkbox.sky-ag-grid-row-selector{display:block!important;margin-top:var(--sky-override-ag-grid-row-selector-margin-top, var(--sky-space-inset-letterbox-2_3-top-m))}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFyRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDOzs7QUFFZDs7R0FFRztBQVNILE1BQU0sT0FBTyx5Q0FBeUM7SUFXM0MsaUJBQWlCLENBQXlDO0lBQ25FLE9BQU8sQ0FBa0M7SUFDaEMsVUFBVSxDQUFrQztJQUNyRCxhQUFhLENBQXNCO0lBRW5DO1FBVFUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxJQUFJLGVBQWUs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Q0FBQyxJQUFJLFdBQzVCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgSUNlbGxSZW5kZXJlclBhcmFtcyxcbiAgSVJvd05vZGUsXG4gIFJvd05vZGVTZWxlY3RlZEV2ZW50LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgZnJvbUV2ZW50UGF0dGVybixcbiAgaXNPYnNlcnZhYmxlLFxufSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1NreUNoZWNrYm94TW9kdWxlLCBBc3luY1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95XG57XG4gIHB1YmxpYyBkYXRhRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd05vZGU6IElSb3dOb2RlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcm93TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNoZWNrZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuXG4gIHJlYWRvbmx5ICNsYWJlbFJlc291cmNlS2V5ID0gJ3NreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsJztcbiAgI3BhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgI3Jlc291cmNlcyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNzZXRMYWJlbCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGNlbGwgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIHJlbmRlcmVyIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIHJlbmRlcmVyIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNzZXRQYXJhbWV0ZXJzKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBhZ0dyaWQgdG8gdXBkYXRlIGNlbGwgdmFsdWUgYWZ0ZXIgYSB1c2VyIHRyaWdnZXJzIGEgcmVmcmVzaC5cbiAgICogUmV0dXJuaW5nIHRydWUgdGVsbHMgYWdHcmlkIHRoYXQgdGhlIHJlZnJlc2ggd2FzIHN1Y2Nlc3NmdWwuXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLiNzZXRQYXJhbWV0ZXJzKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUm93KHJvd0NoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQubmV4dChyb3dDaGVja2VkKTtcbiAgICBpZiAodGhpcy5yb3dOb2RlKSB7XG4gICAgICBjb25zdCByb3dTZWxlY3RlZCA9IHRoaXMucm93Tm9kZS5pc1NlbGVjdGVkKCk7XG4gICAgICBpZiAocm93U2VsZWN0ZWQgIT09IHJvd0NoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5yb3dOb2RlLnNldFNlbGVjdGVkKHJvd0NoZWNrZWQsIHVuZGVmaW5lZCwgJ2NoZWNrYm94U2VsZWN0ZWQnKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRhdGFGaWVsZCkge1xuICAgICAgICB0aGlzLnJvd05vZGUuZGF0YVt0aGlzLmRhdGFGaWVsZF0gPSB0aGlzLmNoZWNrZWQudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3NldFBhcmFtZXRlcnMocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuZGlzYWJsZWQubmV4dCh0aGlzLiNwYXJhbXM/Lm5vZGU/LnNlbGVjdGFibGUgPT09IGZhbHNlKTtcbiAgICB0aGlzLmRhdGFGaWVsZCA9IHRoaXMuI3BhcmFtcz8uY29sRGVmPy5maWVsZDtcbiAgICB0aGlzLnJvd05vZGUgPSB0aGlzLiNwYXJhbXM/Lm5vZGUgYXMgSVJvd05vZGUgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLnJvd05vZGU/LnJvd0luZGV4ID8/IE5hTjtcbiAgICB0aGlzLnJvd051bWJlciA9IE51bWJlci5pc05hTihyb3dJbmRleCkgPyB1bmRlZmluZWQgOiByb3dJbmRleCArIDE7XG5cbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy4jc2V0TGFiZWwoKTtcblxuICAgIGNvbnN0IHJvd1NlbGVjdGVkID0gISF0aGlzLiNwYXJhbXMubm9kZT8uaXNTZWxlY3RlZCgpO1xuXG4gICAgaWYgKHRoaXMuZGF0YUZpZWxkKSB7XG4gICAgICB0aGlzLmNoZWNrZWQubmV4dCghIXRoaXMuI3BhcmFtcy52YWx1ZSk7XG4gICAgICBpZiAocm93U2VsZWN0ZWQgIT09IHRoaXMuY2hlY2tlZC52YWx1ZSkge1xuICAgICAgICB0aGlzLnJvd05vZGU/LnNldFNlbGVjdGVkKHRoaXMuY2hlY2tlZC52YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hlY2tlZC5uZXh0KHJvd1NlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKFxuICAgICAgZnJvbUV2ZW50UGF0dGVybjxSb3dOb2RlU2VsZWN0ZWRFdmVudD4oXG4gICAgICAgIChoYW5kbGVyKSA9PiB0aGlzLnJvd05vZGU/LmFkZEV2ZW50TGlzdGVuZXIoJ3Jvd1NlbGVjdGVkJywgaGFuZGxlciksXG4gICAgICAgIChoYW5kbGVyKSA9PiB0aGlzLnJvd05vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jvd1NlbGVjdGVkJywgaGFuZGxlciksXG4gICAgICApLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuI3Jvd1NlbGVjdGVkTGlzdGVuZXIoZXZlbnQpKSxcbiAgICApO1xuICB9XG5cbiAgI3NldExhYmVsKCk6IHZvaWQge1xuICAgIGNvbnN0IGNlbGxSZW5kZXJlclBhcmFtTGFiZWwgPVxuICAgICAgdGhpcy4jcGFyYW1zPy5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8ubGFiZWw7XG4gICAgaWYgKHRoaXMuI3BhcmFtcz8uY29sRGVmICYmIHR5cGVvZiBjZWxsUmVuZGVyZXJQYXJhbUxhYmVsID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5sYWJlbC5uZXh0KHRoaXMuI3BhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLmxhYmVsKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy4jcGFyYW1zPy5jb2xEZWYgJiZcbiAgICAgIHR5cGVvZiBjZWxsUmVuZGVyZXJQYXJhbUxhYmVsID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMuI3BhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLmxhYmVsKFxuICAgICAgICB0aGlzLiNwYXJhbXMuZGF0YSxcbiAgICAgICk7XG4gICAgICBpZiAoaXNPYnNlcnZhYmxlKGxhYmVsKSkge1xuICAgICAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgIGxhYmVsLnN1YnNjcmliZSgodmFsdWU6IHVua25vd24pID0+IHRoaXMubGFiZWwubmV4dChTdHJpbmcodmFsdWUpKSksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxhYmVsLm5leHQobGFiZWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICB0aGlzLiNyZXNvdXJjZXNcbiAgICAgICAgICAuZ2V0U3RyaW5nKHRoaXMuI2xhYmVsUmVzb3VyY2VLZXksIHRoaXMucm93TnVtYmVyID8/ICcnKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLmxhYmVsLm5leHQodmFsdWUpKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3Jvd1NlbGVjdGVkTGlzdGVuZXIoZXZlbnQ6IFJvd05vZGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkLm5leHQoISFldmVudC5ub2RlLmlzU2VsZWN0ZWQoKSk7XG4gICAgaWYgKHRoaXMucm93Tm9kZSAmJiB0aGlzLmRhdGFGaWVsZCkge1xuICAgICAgdGhpcy5yb3dOb2RlLmRhdGFbdGhpcy5kYXRhRmllbGRdID0gdGhpcy5jaGVja2VkLnZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiPHNreS1jaGVja2JveFxuICBkYXRhLXNreS1pZD1cInJvdy1jaGVja2JveFwiXG4gIGNsYXNzPVwic2t5LWFnLWdyaWQtcm93LXNlbGVjdG9yXCJcbiAgW2Rpc2FibGVkXT1cIihkaXNhYmxlZCB8IGFzeW5jKSB8fCBmYWxzZVwiXG4gIFt0YWJpbmRleF09XCIwXCJcbiAgW2xhYmVsSGlkZGVuXT1cInRydWVcIlxuICBbbGFiZWxUZXh0XT1cIihsYWJlbCB8IGFzeW5jKSB8fCAnJ1wiXG4gIFtjaGVja2VkXT1cIihjaGVja2VkIHwgYXN5bmMpIHx8IGZhbHNlXCJcbiAgKGNoYW5nZSk9XCJ1cGRhdGVSb3coISEkZXZlbnQuY2hlY2tlZClcIlxuLz5cbiJdfQ==","import { NgTemplateOutlet } from '@angular/common';\nimport { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SkyAgGridCellRendererTemplateComponent {\n constructor() {\n this.state = {\n hasTemplate: false,\n template: undefined,\n context: { value: undefined, data: undefined },\n };\n }\n agInit(params) {\n const hasTemplate = !!(params.colDef?.cellRendererParams &&\n 'template' in params.colDef.cellRendererParams &&\n params.colDef.cellRendererParams.template);\n const template = hasTemplate\n ? params.colDef?.cellRendererParams\n .template\n : undefined;\n this.state = {\n hasTemplate,\n template,\n context: { value: params.value, row: params.data },\n };\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridCellRendererTemplateComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-template\", ngImport: i0, template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'sky-ag-grid-cell-renderer-template',\n template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`,\n imports: [NgTemplateOutlet],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBMEJ2RCxNQUFNLE9BQU8sc0NBQXNDO0lBUG5EO1FBVVksVUFBSyxHQUFjO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMvQyxDQUFDO0tBd0JIO0lBdEJRLE1BQU0sQ0FBQyxNQUEyQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0I7WUFDakMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQ1osV0FBVztZQUNULENBQUMsQ0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGtCQUFrQjtpQkFDL0IsUUFBcUQ7WUFDMUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVztZQUNYLFFBQVE7WUFDUixPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtTQUN0QyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBMkI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBOUJVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDhGQUx2Qzs7SUFFUiw0REFDUSxnQkFBZ0I7OzJGQUVmLHNDQUFzQztrQkFQbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxRQUFRLEVBQUU7O0lBRVI7b0JBQ0YsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUtY29udGV4dC50eXBlJztcblxudHlwZSBDZWxsU3RhdGUgPVxuICB8IHtcbiAgICAgIGhhc1RlbXBsYXRlOiB0cnVlO1xuICAgICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD47XG4gICAgICBjb250ZXh0OiBDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGhhc1RlbXBsYXRlOiBmYWxzZTtcbiAgICAgIHRlbXBsYXRlOiB1bmRlZmluZWQ7XG4gICAgICBjb250ZXh0PzogdW5rbm93bjtcbiAgICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXRlbXBsYXRlJyxcbiAgdGVtcGxhdGU6IGBAaWYgKHN0YXRlLmhhc1RlbXBsYXRlKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXRlLnRlbXBsYXRlOyBjb250ZXh0OiBzdGF0ZS5jb250ZXh0XCIgLz5cbiAgfWAsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgcHJvdGVjdGVkIHN0YXRlOiBDZWxsU3RhdGUgPSB7XG4gICAgaGFzVGVtcGxhdGU6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiB1bmRlZmluZWQsXG4gICAgY29udGV4dDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkYXRhOiB1bmRlZmluZWQgfSxcbiAgfTtcblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IGhhc1RlbXBsYXRlID0gISEoXG4gICAgICBwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMgJiZcbiAgICAgICd0ZW1wbGF0ZScgaW4gcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMgJiZcbiAgICAgIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlXG4gICAgKTtcbiAgICBjb25zdCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0PiB8IHVuZGVmaW5lZCA9XG4gICAgICBoYXNUZW1wbGF0ZVxuICAgICAgICA/IChwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXNcbiAgICAgICAgICAgIC50ZW1wbGF0ZSBhcyBUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaGFzVGVtcGxhdGUsXG4gICAgICB0ZW1wbGF0ZSxcbiAgICAgIGNvbnRleHQ6IHsgdmFsdWU6IHBhcmFtcy52YWx1ZSwgcm93OiBwYXJhbXMuZGF0YSB9LFxuICAgIH0gYXMgQ2VsbFN0YXRlO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject, } from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererValidatorTooltipComponent {\n constructor() {\n this.valueObservable = new BehaviorSubject('');\n this.#changeDetector = inject(ChangeDetectorRef);\n }\n set params(value) {\n this.agInit(value);\n }\n #changeDetector;\n #valueSubscription;\n ngOnDestroy() {\n this.#valueSubscription?.unsubscribe();\n this.valueObservable.complete();\n }\n agInit(params) {\n this.cellRendererParams = params;\n this.#valueSubscription?.unsubscribe();\n this.#valueSubscription = new Subscription();\n if (typeof params.skyComponentProperties?.valueResourceObservable ===\n 'function') {\n this.#valueSubscription.add(params.skyComponentProperties\n .valueResourceObservable(params.value, params.data, params.node?.rowIndex)\n .subscribe((result) => {\n this.valueObservable.next(result);\n }));\n }\n else {\n this.valueObservable.next(params.valueFormatted ?? params.value);\n }\n this.#changeDetector.markForCheck();\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridCellRendererValidatorTooltipComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-validator-tooltip\", inputs: { params: \"params\" }, ngImport: i0, template: \"<sky-ag-grid-cell-validator-tooltip [params]=\\\"cellRendererParams\\\">\\n {{ valueObservable | async }}\\n</sky-ag-grid-cell-validator-tooltip>\\n\", dependencies: [{ kind: \"component\", type: SkyAgGridCellValidatorTooltipComponent, selector: \"sky-ag-grid-cell-validator-tooltip\", inputs: [\"params\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-validator-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyAgGridCellValidatorTooltipComponent, AsyncPipe], template: \"<sky-ag-grid-cell-validator-tooltip [params]=\\\"cellRendererParams\\\">\\n {{ valueObservable | async }}\\n</sky-ag-grid-cell-validator-tooltip>\\n\" }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFHdkg7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOENBQThDO0lBTjNEO1FBaUJZLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFDdEQ7SUEvQ0MsSUFDVyxNQUFNLENBQUMsS0FBcUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBT1EsZUFBZSxDQUE2QjtJQUNyRCxrQkFBa0IsQ0FBMkI7SUFFdEMsV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXNDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLElBQ0UsT0FBTyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsdUJBQXVCO1lBQzdELFVBQVUsRUFDVixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDekIsTUFBTSxDQUFDLHNCQUFzQjtpQkFDMUIsdUJBQXVCLENBQ3RCLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FDdEI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBc0M7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBakRVLDhDQUE4QztrR0FBOUMsOENBQThDLHFJQ3pCM0QsZ0pBR0EsNENEb0JZLHNDQUFzQyw4RkFBRSxTQUFTOzsyRkFFaEQsOENBQThDO2tCQU4xRCxTQUFTOytCQUNFLDZDQUE2QyxtQkFFdEMsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHNDQUFzQyxFQUFFLFNBQVMsQ0FBQzs4QkFNakQsTUFBTTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2VsbC12YWxpZGF0b3IvYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICdjZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFnSW5pdCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyB2YWx1ZTogdW5rbm93bjtcblxuICBwcm90ZWN0ZWQgdmFsdWVPYnNlcnZhYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3ZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudmFsdWVPYnNlcnZhYmxlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWx1ZVJlc291cmNlT2JzZXJ2YWJsZSA9PT1cbiAgICAgICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgICAudmFsdWVSZXNvdXJjZU9ic2VydmFibGUoXG4gICAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgICBwYXJhbXMuZGF0YSxcbiAgICAgICAgICAgIHBhcmFtcy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5uZXh0KHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA/PyBwYXJhbXMudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxza3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwIFtwYXJhbXNdPVwiY2VsbFJlbmRlcmVyUGFyYW1zXCI+XG4gIHt7IHZhbHVlT2JzZXJ2YWJsZSB8IGFzeW5jIH19XG48L3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXA+XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\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 */\nexport class SkyAgGridHeaderGroupInfo {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderGroupInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWdyb3VwLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItZ3JvdXAtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW5Hcm91cCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuLyoqXG4gKiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBjb2x1bW4gZ3JvdXAgaGVhZGVyLCBjcmVhdGUgYSBjb21wb25lbnQgY29udGFpbmluZ1xuICogW2Bza3ktaGVscC1pbmxpbmVgXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpLFxuICogYW5kIGluamVjdCBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gdG8gYWNjZXNzIHRoZSBjb2x1bW4gZ3JvdXBcbiAqIGluZm9ybWF0aW9uLCBzdWNoIGFzIGRpc3BsYXkgbmFtZS5cbiAqIEFkZCB0aGUgY29tcG9uZW50IHRvIHRoZSBgaGVhZGVyR3JvdXBDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGdyb3VwIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1ncm91cHMvKS5cbiAqIEBzZWUgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyB7XG4gIC8qKlxuICAgKiBbQ29sdW1uIGdyb3VwIGluZm9ybWF0aW9uIGZyb20gQUcgR3JpZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLW9iamVjdC1ncm91cC8pLlxuICAgKi9cbiAgcHVibGljIGNvbHVtbkdyb3VwOiBDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, ViewChild, inject, } from '@angular/core';\nimport { SkyDynamicComponentLocation, SkyDynamicComponentService, } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil, } from 'rxjs';\nimport { SkyAgGridHeaderGroupInfo } from '../types/header-group-info';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@skyux/icon\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridHeaderGroupComponent {\n #columnGroup;\n #isExpandableSubject;\n #isExpandedSubject;\n #subscriptions;\n #viewInitialized;\n #agInitialized;\n #changeDetector;\n #dynamicComponentService;\n #environmentInjector;\n constructor() {\n this.params = undefined;\n this.#columnGroup = undefined;\n this.#isExpandableSubject = new BehaviorSubject(false);\n this.#isExpandedSubject = new BehaviorSubject(false);\n this.#subscriptions = new Subscription();\n this.#viewInitialized = false;\n this.#agInitialized = false;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#environmentInjector = inject(EnvironmentInjector);\n this.isExpandable$ = this.#isExpandableSubject.asObservable();\n this.isExpanded$ = this.#isExpandedSubject.asObservable();\n }\n ngAfterViewInit() {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n ngOnDestroy() {\n this.#subscriptions.unsubscribe();\n }\n agInit(params) {\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(fromEvent(params.api, 'columnGroupOpened')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe((event) => {\n if (this.#columnGroup &&\n event.columnGroups.includes(this.#columnGroup)) {\n this.#isExpandedSubject.next(this.#columnGroup.isExpanded());\n }\n }));\n }\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n setExpanded($event) {\n this.params?.setExpanded($event);\n }\n #updateInlineHelp() {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n const colGroupDef = this.params?.columnGroup?.getColGroupDef();\n const inlineHelpComponent = colGroupDef?.headerGroupComponentParams?.inlineHelpComponent;\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 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridHeaderGroupComponent, isStandalone: true, selector: \"sky-header-group\", viewQueries: [{ propertyName: \"inlineHelpContainer\", first: true, predicate: [\"inlineHelpContainer\"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: \"@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 iconName=\\\"chevron-double-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 iconName=\\\"chevron-double-right\\\" />\\n </button>\\n }\\n}\\n<span #inlineHelpContainer class=\\\"sky-control-help-container\\\"></span>\\n\", styles: [\"button:not(.sky-theme-modern *){--sky-override-ag-grid-header-button-margin-left: var(--sky-margin-inline-sm)}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) button{--sky-override-ag-grid-header-button-margin-left: var(--sky-margin-inline-sm)}:host{display:flex;max-width:100%;align-items:center;align-content:center}.header-group-text{flex-grow:0;flex-shrink:1;overflow:hidden;text-overflow:ellipsis}button{cursor:pointer;margin-left:var(--sky-override-ag-grid-header-button-margin-left, var(--sky-space-gap-text_action-xs));flex-grow:0;flex-shrink:1}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i1.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i2.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderGroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-header-group', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyThemeModule, SkyIconModule, AsyncPipe, SkyI18nModule], template: \"@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 iconName=\\\"chevron-double-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 iconName=\\\"chevron-double-right\\\" />\\n </button>\\n }\\n}\\n<span #inlineHelpContainer class=\\\"sky-control-help-container\\\"></span>\\n\", styles: [\"button:not(.sky-theme-modern *){--sky-override-ag-grid-header-button-margin-left: var(--sky-margin-inline-sm)}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) button{--sky-override-ag-grid-header-button-margin-left: var(--sky-margin-inline-sm)}:host{display:flex;max-width:100%;align-items:center;align-content:center}.header-group-text{flex-grow:0;flex-shrink:1;overflow:hidden;text-overflow:ellipsis}button{cursor:pointer;margin-left:var(--sky-override-ag-grid-header-button-margin-left, var(--sky-space-gap-text_action-xs));flex-grow:0;flex-shrink:1}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { inlineHelpContainer: [{\n type: ViewChild,\n args: ['inlineHelpContainer', { read: ElementRef, static: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixtQkFBbUIsRUFFbkIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDBCQUEwQixHQUMzQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk5QyxPQUFPLEVBQ0wsZUFBZSxFQUVmLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBR3RFOztHQUVHO0FBUUgsTUFBTSxPQUFPLDZCQUE2QjtJQVV4QyxZQUFZLENBQThDO0lBQzFELG9CQUFvQixDQUF1QztJQUMzRCxrQkFBa0IsQ0FBdUM7SUFDekQsY0FBYyxDQUFzQjtJQUNwQyxnQkFBZ0IsQ0FBUztJQUN6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LGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQzt3REFNM0QsbUJBQW1CO3NCQUR6QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbixcbiAgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBJSGVhZGVyR3JvdXBBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDb2x1bW5Hcm91cE9wZW5lZEV2ZW50LCBQcm92aWRlZENvbHVtbkdyb3VwIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIGZyb21FdmVudCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBJbmZvIH0gZnJvbSAnLi4vdHlwZXMvaGVhZGVyLWdyb3VwLWluZm8nO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9oZWFkZXItZ3JvdXAtcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWhlYWRlci1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lUaGVtZU1vZHVsZSwgU2t5SWNvbk1vZHVsZSwgQXN5bmNQaXBlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJSGVhZGVyR3JvdXBBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ2lubGluZUhlbHBDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgaW5saW5lSGVscENvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByb3RlY3RlZCBpc0V4cGFuZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAjY29sdW1uR3JvdXA6IFByb3ZpZGVkQ29sdW1uR3JvdXAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNpc0V4cGFuZGFibGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICNpc0V4cGFuZGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAjc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgI3ZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuICAjYWdJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaXNFeHBhbmRhYmxlJCA9IHRoaXMuI2lzRXhwYW5kYWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5pc0V4cGFuZGVkJCA9IHRoaXMuI2lzRXhwYW5kZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiNhZ0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKCFwYXJhbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLiNjb2x1bW5Hcm91cCA9IHBhcmFtcy5jb2x1bW5Hcm91cC5nZXRQcm92aWRlZENvbHVtbkdyb3VwKCk7XG4gICAgdGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5uZXh0KHRoaXMuI2NvbHVtbkdyb3VwLmlzRXhwYW5kYWJsZSgpKTtcbiAgICBpZiAodGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50PENvbHVtbkdyb3VwT3BlbmVkRXZlbnQ+KHBhcmFtcy5hcGksICdjb2x1bW5Hcm91cE9wZW5lZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLiNjb2x1bW5Hcm91cCAmJlxuICAgICAgICAgICAgICBldmVudC5jb2x1bW5Hcm91cHMuaW5jbHVkZXModGhpcy4jY29sdW1uR3JvdXApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy4jaXNFeHBhbmRlZFN1YmplY3QubmV4dCh0aGlzLiNjb2x1bW5Hcm91cC5pc0V4cGFuZGVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldEV4cGFuZGVkKCRldmVudDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zPy5zZXRFeHBhbmRlZCgkZXZlbnQpO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xHcm91cERlZiA9IHRoaXMucGFyYW1zPy5jb2x1bW5Hcm91cD8uZ2V0Q29sR3JvdXBEZWYoKTtcbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID1cbiAgICAgIGNvbEdyb3VwRGVmPy5oZWFkZXJHcm91cENvbXBvbmVudFBhcmFtcz8uaW5saW5lSGVscENvbXBvbmVudDtcblxuICAgIGlmIChpbmxpbmVIZWxwQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBoZWFkZXJHcm91cEluZm8gPSBuZXcgU2t5QWdHcmlkSGVhZGVyR3JvdXBJbmZvKCk7XG4gICAgICBoZWFkZXJHcm91cEluZm8uY29sdW1uR3JvdXAgPSB0aGlzLnBhcmFtcz8uY29sdW1uR3JvdXA7XG4gICAgICBoZWFkZXJHcm91cEluZm8uY29udGV4dCA9IHRoaXMucGFyYW1zPy5jb250ZXh0O1xuICAgICAgaGVhZGVyR3JvdXBJbmZvLmRpc3BsYXlOYW1lID0gdGhpcy5wYXJhbXM/LmRpc3BsYXlOYW1lO1xuXG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoaW5saW5lSGVscENvbXBvbmVudCwge1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8sXG4gICAgICAgICAgICB1c2VWYWx1ZTogaGVhZGVyR3JvdXBJbmZvLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLmlubGluZUhlbHBDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGxvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChwYXJhbXM/LmRpc3BsYXlOYW1lKSB7XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJoZWFkZXItZ3JvdXAtdGV4dFwiXG4gICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwieyAnc2t5LWZvbnQtaGVhZGluZy00JzogJ21vZGVybicgfVwiXG4gICAgPnt7IHBhcmFtcz8uZGlzcGxheU5hbWUgfX08L3NwYW5cbiAgPlxufVxuQGlmIChpc0V4cGFuZGFibGUkIHwgYXN5bmMpIHtcbiAgQGlmIChpc0V4cGFuZGVkJCB8IGFzeW5jKSB7XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreV9hZ19ncmlkX2NvbHVtbl9ncm91cF9oZWFkZXJfY29sbGFwc2VfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tZG91YmxlLWxlZnRcIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9IEBlbHNlIHtcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9leHBhbmRfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzZXRFeHBhbmRlZCh0cnVlKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtcmlnaHRcIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9XG59XG48c3BhbiAjaW5saW5lSGVscENvbnRhaW5lciBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+PC9zcGFuPlxuIl19","import { ChangeDetectionStrategy, Component, DestroyRef, computed, inject, model, signal, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { asyncScheduler, fromEvent, observeOn } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\nexport class SkyAgGridHeaderRowSelectorComponent {\n constructor() {\n this.checked = model(false);\n this.indeterminate = signal(false);\n this.multiSelect = signal(false);\n this.params = signal(undefined);\n this.label = computed(() => {\n const params = this.params();\n return params?.displayName || params?.column.getColDef().field;\n });\n this.#destroyRef = inject(DestroyRef);\n }\n #api;\n #destroyRef;\n agInit(params) {\n this.params.set(params);\n this.#api = params.api;\n // Row selection behavior can only be set when the grid is created.\n // It only changes if the grid is recreated.\n const rowSelection = params.api.getGridOption('rowSelection');\n this.multiSelect.set(rowSelection === 'multiple' ||\n (typeof rowSelection === 'object' && rowSelection?.mode === 'multiRow'));\n if (this.multiSelect()) {\n fromEvent(params.api, 'selectionChanged')\n .pipe(takeUntilDestroyed(this.#destroyRef), observeOn(asyncScheduler))\n .subscribe((change) => {\n if (change.source.match(/selectall/i)) {\n // Either select all or clear selection.\n this.indeterminate.set(false);\n this.checked.set(!!change.selectedNodes?.length);\n }\n else {\n this.indeterminate.set(!!change.selectedNodes?.length);\n this.checked.set(false);\n }\n });\n fromEvent(params.api, 'rowDataUpdated')\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\n this.indeterminate.set(!!this.#api?.getSelectedNodes().length);\n this.checked.set(false);\n });\n }\n }\n refresh() {\n return false;\n }\n toggleCheckbox($event) {\n if ($event.checked) {\n this.#api?.selectAll();\n }\n else {\n this.#api?.deselectAll();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridHeaderRowSelectorComponent, isStandalone: true, selector: \"sky-ag-grid-row-selector-header\", inputs: { checked: { classPropertyName: \"checked\", publicName: \"checked\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: \"checkedChange\" }, host: { properties: { \"attr.title\": \"label()\", \"attr.role\": \"\\\"note\\\"\" } }, ngImport: i0, template: \"@if (multiSelect()) {\\n <sky-checkbox\\n labelHidden\\n data-sky-id=\\\"header-row-selector\\\"\\n [checked]=\\\"checked()\\\"\\n [labelText]=\\\"label()\\\"\\n [indeterminate]=\\\"indeterminate()\\\"\\n (change)=\\\"toggleCheckbox($event)\\\"\\n />\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: SkyCheckboxModule }, { kind: \"component\", type: i1.λ3, selector: \"sky-checkbox\", inputs: [\"label\", \"labelledBy\", \"id\", \"disabled\", \"tabindex\", \"name\", \"helpPopoverContent\", \"helpPopoverTitle\", \"icon\", \"iconName\", \"checkboxType\", \"checked\", \"indeterminate\", \"required\", \"labelText\", \"labelHidden\", \"hintText\", \"stacked\", \"helpKey\"], outputs: [\"change\", \"checkedChange\", \"disabledChange\", \"indeterminateChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-row-selector-header', imports: [SkyCheckboxModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[attr.title]': 'label()',\n '[attr.role]': '\"note\"',\n }, template: \"@if (multiSelect()) {\\n <sky-checkbox\\n labelHidden\\n data-sky-id=\\\"header-row-selector\\\"\\n [checked]=\\\"checked()\\\"\\n [labelText]=\\\"label()\\\"\\n [indeterminate]=\\\"indeterminate()\\\"\\n (change)=\\\"toggleCheckbox($event)\\\"\\n />\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9oZWFkZXIvaGVhZGVyLXJvdy1zZWxlY3Rvci9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBU3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBYTVELE1BQU0sT0FBTyxtQ0FBbUM7SUFYaEQ7UUFZcUIsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsTUFBTSxDQUE0QixTQUFTLENBQUMsQ0FBQztRQUN0RCxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJ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QyxtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLGNBQWMsRUFBRSxTQUFTO3dCQUN6QixhQUFhLEVBQUUsUUFBUTtxQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNreUNoZWNrYm94Q2hhbmdlLCBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5cbmltcG9ydCB7IElIZWFkZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBHcmlkQXBpLFxuICBJSGVhZGVyUGFyYW1zLFxuICBSb3dEYXRhVXBkYXRlZEV2ZW50LFxuICBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBmcm9tRXZlbnQsIG9ic2VydmVPbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctc2VsZWN0b3ItaGVhZGVyJyxcbiAgaW1wb3J0czogW1NreUNoZWNrYm94TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIudGl0bGVdJzogJ2xhYmVsKCknLFxuICAgICdbYXR0ci5yb2xlXSc6ICdcIm5vdGVcIicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlclJvd1NlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgSUhlYWRlckFuZ3VsYXJDb21wIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrZWQgPSBtb2RlbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbmRldGVybWluYXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG11bHRpU2VsZWN0ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtcyA9IHNpZ25hbDxJSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5wYXJhbXMoKTtcbiAgICByZXR1cm4gcGFyYW1zPy5kaXNwbGF5TmFtZSB8fCBwYXJhbXM/LmNvbHVtbi5nZXRDb2xEZWYoKS5maWVsZDtcbiAgfSk7XG5cbiAgI2FwaTogR3JpZEFwaTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IElIZWFkZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcy5zZXQocGFyYW1zKTtcbiAgICB0aGlzLiNhcGkgPSBwYXJhbXMuYXBpO1xuXG4gICAgLy8gUm93IHNlbGVjdGlvbiBiZWhhdmlvciBjYW4gb25seSBiZSBzZXQgd2hlbiB0aGUgZ3JpZCBpcyBjcmVhdGVkLlxuICAgIC8vIEl0IG9ubHkgY2hhbmdlcyBpZiB0aGUgZ3JpZCBpcyByZWNyZWF0ZWQuXG4gICAgY29uc3Qgcm93U2VsZWN0aW9uID0gcGFyYW1zLmFwaS5nZXRHcmlkT3B0aW9uKCdyb3dTZWxlY3Rpb24nKTtcbiAgICB0aGlzLm11bHRpU2VsZWN0LnNldChcbiAgICAgIHJvd1NlbGVjdGlvbiA9PT0gJ211bHRpcGxlJyB8fFxuICAgICAgICAodHlwZW9mIHJvd1NlbGVjdGlvbiA9PT0gJ29iamVjdCcgJiYgcm93U2VsZWN0aW9uPy5tb2RlID09PSAnbXVsdGlSb3cnKSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMubXVsdGlTZWxlY3QoKSkge1xuICAgICAgZnJvbUV2ZW50PFNlbGVjdGlvbkNoYW5nZWRFdmVudD4ocGFyYW1zLmFwaSwgJ3NlbGVjdGlvbkNoYW5nZWQnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksIG9ic2VydmVPbihhc3luY1NjaGVkdWxlcikpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSk6IHZvaWQgPT4ge1xuICAgICAgICAgIGlmIChjaGFuZ2Uuc291cmNlLm1hdGNoKC9zZWxlY3RhbGwvaSkpIHtcbiAgICAgICAgICAgIC8vIEVpdGhlciBzZWxlY3QgYWxsIG9yIGNsZWFyIHNlbGVjdGlvbi5cbiAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZS5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkLnNldCghIWNoYW5nZS5zZWxlY3RlZE5vZGVzPy5sZW5ndGgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUuc2V0KCEhY2hhbmdlLnNlbGVjdGVkTm9kZXM/Lmxlbmd0aCk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBmcm9tRXZlbnQ8Um93RGF0YVVwZGF0ZWRFdmVudD4ocGFyYW1zLmFwaSwgJ3Jvd0RhdGFVcGRhdGVkJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUuc2V0KCEhdGhpcy4jYXBpPy5nZXRTZWxlY3RlZE5vZGVzKCkubGVuZ3RoKTtcbiAgICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUNoZWNrYm94KCRldmVudDogU2t5Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuI2FwaT8uc2VsZWN0QWxsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FwaT8uZGVzZWxlY3RBbGwoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAobXVsdGlTZWxlY3QoKSkge1xuICA8c2t5LWNoZWNrYm94XG4gICAgbGFiZWxIaWRkZW5cbiAgICBkYXRhLXNreS1pZD1cImhlYWRlci1yb3ctc2VsZWN0b3JcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWQoKVwiXG4gICAgW2xhYmVsVGV4dF09XCJsYWJlbCgpXCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlKClcIlxuICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goJGV2ZW50KVwiXG4gIC8+XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\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 */\nexport class SkyAgGridHeaderInfo {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbi8qKlxuICogVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uIGJlc2lkZSB0aGUgY29sdW1uIGhlYWRlciwgY3JlYXRlIGEgY29tcG9uZW50IGNvbnRhaW5pbmdcbiAqIFtgc2t5LWhlbHAtaW5saW5lYF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSxcbiAqIGFuZCBpbmplY3QgU2t5QWdHcmlkSGVhZGVySW5mbyB0byBhY2Nlc3MgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiwgc3VjaFxuICogYXMgZGlzcGxheSBuYW1lLlxuICogQWRkIHRoZSBjb21wb25lbnQgdG8gdGhlIGBoZWFkZXJDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1kZWZpbml0aW9ucy8pLlxuICogQHNlZSBTa3lBZ0dyaWRIZWFkZXJQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckluZm8ge1xuICAvKipcbiAgICogW0NvbHVtbiBpbmZvcm1hdGlvbiBmcm9tIEFHIEdyaWRdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1vYmplY3QvKS5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW46IENvbHVtbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, ViewChild, computed, inject, signal, } from '@angular/core';\nimport { SkyDynamicComponentLocation, SkyDynamicComponentService, } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil } from 'rxjs';\nimport { SkyAgGridHeaderInfo } from '../types/header-info';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/icon\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridHeaderComponent {\n constructor() {\n this.filterEnabled$ = new BehaviorSubject(false);\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 this.accessibleHeaderText = computed(() => {\n const params = this.params();\n if (params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden) {\n return undefined;\n }\n else {\n return params?.displayName || params?.column.getColDef().field;\n }\n });\n this.params = signal(undefined);\n this.sorted = '';\n this.sortOrder$ = new BehaviorSubject(undefined);\n this.sortIndexDisplay$ = new BehaviorSubject('');\n this.displayName = computed(() => {\n const params = this.params();\n if (params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden) {\n return params.displayName;\n }\n else {\n return undefined;\n }\n });\n this.#subscriptions = new Subscription();\n this.#viewInitialized = false;\n this.#agInitialized = false;\n this.#leftPosition = 0;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#environmentInjector = inject(EnvironmentInjector);\n }\n #subscriptions;\n #inlineHelpComponentRef;\n #viewInitialized;\n #agInitialized;\n #leftPosition;\n #changeDetector;\n #dynamicComponentService;\n #environmentInjector;\n ngAfterViewInit() {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n }\n ngOnDestroy() {\n this.#subscriptions.unsubscribe();\n }\n agInit(params) {\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(fromEvent(params.column, 'filterChanged')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe(() => {\n const isFilterActive = params.column.isFilterActive();\n if (isFilterActive !== this.filterEnabled$.getValue()) {\n this.filterEnabled$.next(isFilterActive);\n }\n }));\n }\n if (params.enableSorting) {\n // Column sort state changes\n this.#subscriptions.add(fromEvent(params.column, 'sortChanged')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe(() => {\n this.#updateSort();\n }));\n // Other column sort state changes, for multi-column sorting\n this.#subscriptions.add(fromEvent(params.api, 'sortChanged')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe(() => {\n this.#updateSortIndex();\n }));\n this.#updateSort();\n this.#updateSortIndex();\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(fromEvent(params.api, 'columnMoved')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe((event) => {\n const left = event.column?.getLeft() ?? 0;\n const oldLeft = this.#leftPosition;\n if (event.column === params.column &&\n event.source === 'uiColumnMoved' &&\n left < oldLeft) {\n params.eGridHeader.focus();\n }\n this.#leftPosition = left;\n }));\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n onMenuClick($event) {\n this.params()?.showColumnMenu($event.target);\n }\n onSortRequested(event) {\n if (this.params()?.enableSorting) {\n this.params()?.progressSort(event.shiftKey);\n }\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n #updateInlineHelp() {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n const inlineHelpComponent = this.params()?.inlineHelpComponent;\n if (inlineHelpComponent &&\n (!this.#inlineHelpComponentRef ||\n this.#inlineHelpComponentRef.componentType !== inlineHelpComponent)) {\n this.#dynamicComponentService.removeComponent(this.#inlineHelpComponentRef);\n const headerInfo = new SkyAgGridHeaderInfo();\n headerInfo.column = this.params()?.column;\n headerInfo.context = this.params()?.context;\n headerInfo.displayName = this.params()?.displayName;\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 }\n else if (!inlineHelpComponent) {\n this.#dynamicComponentService.removeComponent(this.#inlineHelpComponentRef);\n }\n }\n #updateSort() {\n this.sortOrder$.next(this.params()?.column.getSort() || undefined);\n }\n #updateSortIndex() {\n const sortIndex = this.params()?.column.getSortIndex();\n const otherSortColumns = this.params()\n ?.api?.getColumns()\n ?.some((column) => column.getColId() !== this.params()?.column.getColId() &&\n !!column.getSort());\n if (sortIndex !== undefined && sortIndex !== null && otherSortColumns) {\n this.sortIndexDisplay$.next(`${sortIndex + 1}`);\n }\n else {\n this.sortIndexDisplay$.next('');\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAgGridHeaderComponent, isStandalone: true, selector: \"sky-ag-grid-header\", host: { properties: { \"attr.title\": \"accessibleHeaderText()\", \"attr.aria-label\": \"displayName() || accessibleHeaderText()\", \"attr.role\": \"\\\"note\\\"\" } }, viewQueries: [{ propertyName: \"inlineHelpContainer\", first: true, predicate: [\"inlineHelpContainer\"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: \"<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 iconName=\\\"more-actions\\\" />\\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 iconName=\\\"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 iconName=\\\"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 iconName=\\\"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\", styles: [\":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-label-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-menu-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-icon{line-height:0;margin-left:var(--sky-override-ag-grid-header-icon-spacing, var(--sky-space-gap-text_action-xs))}.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless{margin-left:var(--sky-override-ag-grid-header-icon-spacing, var(--sky-space-gap-text_action-xs))}.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless .ag-header-label-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless .ag-header-menu-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless .ag-header-icon{margin-left:0}button.ag-header-cell-label{max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-override-ag-grid-header-icon-spacing, var(--sky-space-gap-text_action-xs))}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;align-items:center}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container{color:var(--sky-override-ag-grid-sort-color, var(--sky-color-text-deemphasized));width:initial;height:initial}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:hover{border:none}button{cursor:pointer;flex-grow:0;flex-shrink:1}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i1.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i2.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-header', changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[attr.title]': 'accessibleHeaderText()',\n '[attr.aria-label]': 'displayName() || accessibleHeaderText()',\n '[attr.role]': '\"note\"',\n }, imports: [SkyIconModule, SkyThemeModule, AsyncPipe, SkyI18nModule], template: \"<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 iconName=\\\"more-actions\\\" />\\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 iconName=\\\"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 iconName=\\\"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 iconName=\\\"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\", styles: [\":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-label-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-menu-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-icon{line-height:0;margin-left:var(--sky-override-ag-grid-header-icon-spacing, var(--sky-space-gap-text_action-xs))}.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless{margin-left:var(--sky-override-ag-grid-header-icon-spacing, var(--sky-space-gap-text_action-xs))}.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless .ag-header-label-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless .ag-header-menu-icon,.ag-header-cell-label .ag-header-cell-label-and-icons .sky-btn.sky-btn-icon-borderless .ag-header-icon{margin-left:0}button.ag-header-cell-label{max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-override-ag-grid-header-icon-spacing, var(--sky-space-gap-text_action-xs))}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;align-items:center}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container{color:var(--sky-override-ag-grid-sort-color, var(--sky-color-text-deemphasized));width:initial;height:initial}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:hover{border:none}button{cursor:pointer;flex-grow:0;flex-shrink:1}\\n\"] }]\n }], propDecorators: { inlineHelpContainer: [{\n type: ViewChild,\n args: ['inlineHelpContainer', { read: ElementRef, static: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixtQkFBbUIsRUFFbkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNEOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdCQUF3QjtJQVpyQztRQWVrQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJFLGtIQUFrSDtRQUNsSCxrRkFBa0Y7UUFDL0QseUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFDRSxNQUFNLEVBQUUsV0FBVztnQkFDbkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFDL0QsQ0FBQztnQkFDRCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxNQUFNLEVBQUUsV0FBVyxJQUFJLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUtnQixXQUFNLEdBQUcsTUFBTSxDQUNoQyxTQUFTLENBQ1YsQ0FBQztRQUNRLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDSCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBRWpELFNBQVMsQ0FBQyxDQUFDO1FBQ00sc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFN0QsZ0JBQVcsR0FBRyxRQUFRLENBQXFCLEdBQUcsRUFBRTtZQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFDRSxNQUFNLEVBQUUsV0FBVztnQkFDbkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFDL0QsQ0FBQztnQkFDRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFVCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLDZCQUF3QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlELHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBc0o3RDtJQTlKQyxjQUFjLENBQXNCO0lBQ3BDLHVCQUF1QixDQUFvQztJQUMzRCxnQkFBZ0IsQ0FBUztJQUN6QixjQUFjLENBQVM7SUFDdkIsYUFBYSxDQUFLO0lBRVQsZUFBZSxDQUE2QjtJQUM1Qyx3QkFBd0IsQ0FBc0M7SUFDOUQsb0JBQW9CLENBQStCO0lBRXJELGVBQWU7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBeUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUM7aUJBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2lCQUMxRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RELElBQUksY0FBYyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzNDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLDRCQUE0QjtZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDO2lCQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztpQkFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztZQUNGLDREQUE0RDtZQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO2lCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztpQkFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FDTCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCwwRUFBMEU7UUFDMUUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixTQUFTLENBQW1CLE1BQU0sQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO2FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2FBQzFELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDbkMsSUFDRSxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNO2dCQUM5QixLQUFLLENBQUMsTUFBTSxLQUFLLGVBQWU7Z0JBQ2hDLElBQUksR0FBRyxPQUFPLEVBQ2QsQ0FBQztnQkFDRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBcUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxlQUFlLENBQUMsS0FBaUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFTSxPQUFPLENBQUMsTUFBNkI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsbUJBQW1CLENBQUM7UUFFL0QsSUFDRSxtQkFBbUI7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUI7Z0JBQzVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEtBQUssbUJBQW1CLENBQUMsRUFDckUsQ0FBQztZQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQzNDLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0IsQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUM3QyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUM7WUFDMUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQztZQUVwRCxJQUFJLENBQUMsdUJBQXVCO2dCQUMxQixJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFO29CQUNqRSxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLFVBQVU7eUJBQ3JCO3FCQUNGO29CQUNELG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7b0JBQzlDLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsYUFBYTtvQkFDcEQsUUFBUSxFQUFFLDJCQUEyQixDQUFDLGFBQWE7aUJBQ3BELENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQzdCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNwQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDbkIsRUFBRSxJQUFJLENBQ0osQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNULE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN0RCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUNyQixDQUFDO1FBQ0osSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXhNVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4VUFtQk8sVUFBVSwyQ0NoRXRELHFxR0FtRkEsOHZFRHhDWSxhQUFhLCtLQUFFLGNBQWMsK0hBQUUsU0FBUyw2Q0FBRSxhQUFhOzsyRkFFdEQsd0JBQXdCO2tCQVpwQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLGNBQWMsRUFBRSx3QkFBd0I7d0JBQ3hDLG1CQUFtQixFQUFFLHlDQUF5Qzt3QkFDOUQsYUFBYSxFQUFFLFFBQVE7cUJBQ3hCLFdBQ1EsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUM7OEJBc0J4RCxtQkFBbUI7c0JBRDVCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24sXG4gIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtbk1vdmVkRXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVySW5mbyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1pbmZvJztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRpdGxlXSc6ICdhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnZGlzcGxheU5hbWUoKSB8fCBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpJyxcbiAgICAnW2F0dHIucm9sZV0nOiAnXCJub3RlXCInLFxuICB9LFxuICBpbXBvcnRzOiBbU2t5SWNvbk1vZHVsZSwgU2t5VGhlbWVNb2R1bGUsIEFzeW5jUGlwZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJFbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIEZvciBhY2Nlc3NpYmlsaXR5LCB3ZSBuZWVkIHRvIHNldCB0aGUgdGl0bGUgYXR0cmlidXRlIG9uIHRoZSBoZWFkZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBubyB2aXNpYmxlIGhlYWRlciB0ZXh0LlxuICAvLyBodHRwczovL2RlcXVldW5pdmVyc2l0eS5jb20vcnVsZXMvYXhlLzQuNS9lbXB0eS10YWJsZS1oZWFkZXI/YXBwbGljYXRpb249YXhlQVBJXG4gIHByb3RlY3RlZCByZWFkb25seSBhY2Nlc3NpYmxlSGVhZGVyVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIGlmIChcbiAgICAgIHBhcmFtcz8uZGlzcGxheU5hbWUgJiZcbiAgICAgICFwYXJhbXM/LmNvbHVtbi5nZXRDb2xEZWYoKS5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmhlYWRlckhpZGRlblxuICAgICkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcmFtcz8uZGlzcGxheU5hbWUgfHwgcGFyYW1zPy5jb2x1bW4uZ2V0Q29sRGVmKCkuZmllbGQ7XG4gICAgfVxuICB9KTtcblxuICBAVmlld0NoaWxkKCdpbmxpbmVIZWxwQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGlubGluZUhlbHBDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtcyA9IHNpZ25hbDxTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgcHJvdGVjdGVkIHNvcnRlZCA9ICcnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydE9yZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgJ2FzYycgfCAnZGVzYycgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydEluZGV4RGlzcGxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5TmFtZSA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyYW1zKCk7XG4gICAgaWYgKFxuICAgICAgcGFyYW1zPy5kaXNwbGF5TmFtZSAmJlxuICAgICAgIXBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmhlYWRlckNvbXBvbmVudFBhcmFtcz8uaGVhZGVySGlkZGVuXG4gICAgKSB7XG4gICAgICByZXR1cm4gcGFyYW1zLmRpc3BsYXlOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG5cbiAgI3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICNpbmxpbmVIZWxwQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICN2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2FnSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2xlZnRQb3NpdGlvbiA9IDA7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy4jYWdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMuc2V0KHBhcmFtcyk7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIGlmICghcGFyYW1zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuI2xlZnRQb3NpdGlvbiA9IHBhcmFtcy5jb2x1bW4uZ2V0TGVmdCgpID8/IDA7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBpZiAocGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuY29sdW1uLCAnZmlsdGVyQ2hhbmdlZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzRmlsdGVyQWN0aXZlID0gcGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFjdGl2ZSgpO1xuICAgICAgICAgICAgaWYgKGlzRmlsdGVyQWN0aXZlICE9PSB0aGlzLmZpbHRlckVuYWJsZWQkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJFbmFibGVkJC5uZXh0KGlzRmlsdGVyQWN0aXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuZW5hYmxlU29ydGluZykge1xuICAgICAgLy8gQ29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlc1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuY29sdW1uLCAnc29ydENoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgLy8gT3RoZXIgY29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlcywgZm9yIG11bHRpLWNvbHVtbiBzb3J0aW5nXG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50KHBhcmFtcy5hcGksICdzb3J0Q2hhbmdlZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuI3VwZGF0ZVNvcnQoKTtcbiAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIGNvbHVtbiBpcyBtb3ZlZCBsZWZ0IHZpYSB0aGUga2V5Ym9hcmQsIHRoZSBlbGVtZW50IGlzIGRldGFjaGVkXG4gICAgLy8gYW5kIHJlYXR0YWNoZWQgdG8gdGhlIERPTSB0byBtYWludGFpbiBET00gb3JkZXIsIGFuZCBpdHMgZm9jdXMgaXMgbG9zdC5cbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudDxDb2x1bW5Nb3ZlZEV2ZW50PihwYXJhbXMuYXBpLCAnY29sdW1uTW92ZWQnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBldmVudC5jb2x1bW4/LmdldExlZnQoKSA/PyAwO1xuICAgICAgICAgIGNvbnN0IG9sZExlZnQgPSB0aGlzLiNsZWZ0UG9zaXRpb247XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuY29sdW1uID09PSBwYXJhbXMuY29sdW1uICYmXG4gICAgICAgICAgICBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtbk1vdmVkJyAmJlxuICAgICAgICAgICAgbGVmdCA8IG9sZExlZnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHBhcmFtcy5lR3JpZEhlYWRlci5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiNsZWZ0UG9zaXRpb24gPSBsZWZ0O1xuICAgICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG9uTWVudUNsaWNrKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcygpPy5zaG93Q29sdW1uTWVudSgkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNvcnRSZXF1ZXN0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgdGhpcy5wYXJhbXMoKT8ucHJvZ3Jlc3NTb3J0KGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID0gdGhpcy5wYXJhbXMoKT8uaW5saW5lSGVscENvbXBvbmVudDtcblxuICAgIGlmIChcbiAgICAgIGlubGluZUhlbHBDb21wb25lbnQgJiZcbiAgICAgICghdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZiB8fFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLmNvbXBvbmVudFR5cGUgIT09IGlubGluZUhlbHBDb21wb25lbnQpXG4gICAgKSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoXG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBoZWFkZXJJbmZvID0gbmV3IFNreUFnR3JpZEhlYWRlckluZm8oKTtcbiAgICAgIGhlYWRlckluZm8uY29sdW1uID0gdGhpcy5wYXJhbXMoKT8uY29sdW1uO1xuICAgICAgaGVhZGVySW5mby5jb250ZXh0ID0gdGhpcy5wYXJhbXMoKT8uY29udGV4dDtcbiAgICAgIGhlYWRlckluZm8uZGlzcGxheU5hbWUgPSB0aGlzLnBhcmFtcygpPy5kaXNwbGF5TmFtZTtcblxuICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZiA9XG4gICAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChpbmxpbmVIZWxwQ29tcG9uZW50LCB7XG4gICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByb3ZpZGU6IFNreUFnR3JpZEhlYWRlckluZm8sXG4gICAgICAgICAgICAgIHVzZVZhbHVlOiBoZWFkZXJJbmZvLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgcmVmZXJlbmNlRWw6IHRoaXMuaW5saW5lSGVscENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBsb2NhdGlvbjogU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b20sXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIWlubGluZUhlbHBDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudChcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVNvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0T3JkZXIkLm5leHQodGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldFNvcnQoKSB8fCB1bmRlZmluZWQpO1xuICB9XG5cbiAgI3VwZGF0ZVNvcnRJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCBzb3J0SW5kZXggPSB0aGlzLnBhcmFtcygpPy5jb2x1bW4uZ2V0U29ydEluZGV4KCk7XG4gICAgY29uc3Qgb3RoZXJTb3J0Q29sdW1ucyA9IHRoaXMucGFyYW1zKClcbiAgICAgID8uYXBpPy5nZXRDb2x1bW5zKClcbiAgICAgID8uc29tZShcbiAgICAgICAgKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4uZ2V0Q29sSWQoKSAhPT0gdGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldENvbElkKCkgJiZcbiAgICAgICAgICAhIWNvbHVtbi5nZXRTb3J0KCksXG4gICAgICApO1xuICAgIGlmIChzb3J0SW5kZXggIT09IHVuZGVmaW5lZCAmJiBzb3J0SW5kZXggIT09IG51bGwgJiYgb3RoZXJTb3J0Q29sdW1ucykge1xuICAgICAgdGhpcy5zb3J0SW5kZXhEaXNwbGF5JC5uZXh0KGAke3NvcnRJbmRleCArIDF9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc29ydEluZGV4RGlzcGxheSQubmV4dCgnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWctY2VsbC1sYWJlbC1jb250YWluZXJcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gIEBpZiAocGFyYW1zKCk/LmVuYWJsZU1lbnUpIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvblwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cIm1vcmUtYWN0aW9uc1wiIC8+XG4gICAgPC9zcGFuPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsLWFuZC1pY29uc1wiPlxuICAgICAgQGlmIChwYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHQgYWctaGVhZGVyLWNlbGwtbGFiZWwtc29ydGFibGUgc2t5LWJ0bi1saW5rLWlubGluZVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXCJcbiAgICAgICAgICBbaW5uZXJUZXh0XT1cImRpc3BsYXlOYW1lKCkgPz8gJydcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cInsgJ3NreS1mb250LWhlYWRpbmctNCc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIH0gQGVsc2UgaWYgKGRpc3BsYXlOYW1lKCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtdGV4dFwiXG4gICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwieyAnc2t5LWZvbnQtaGVhZGluZy00JzogJ21vZGVybicgfVwiXG4gICAgICAgICAgPnt7IGRpc3BsYXlOYW1lKCkgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgfVxuICAgICAgQGlmIChmaWx0ZXJFbmFibGVkJCB8IGFzeW5jKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uIGFnLWZpbHRlci1pY29uXCJcbiAgICAgICAgICA+PHNreS1pY29uIGljb25OYW1lPVwiZmlsdGVyXCJcbiAgICAgICAgLz48L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHBhcmFtcygpPy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICAgIEBpZiAoc29ydE9yZGVyJCB8IGFzeW5jOyBhcyBzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhZy1zb3J0LWluZGljYXRvci1jb250YWluZXIgc2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzc1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChzb3J0RGlyZWN0aW9uID09PSAnZGVzYycpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tZG93blwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2Rlc2MnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkaXNwbGF5TmFtZSgpID8/IGFjY2Vzc2libGVIZWFkZXJUZXh0KClcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj48L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzb3J0RGlyZWN0aW9uID09PSAnYXNjJykge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi11cFwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYydcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGRpc3BsYXlOYW1lKCkgPz8gYWNjZXNzaWJsZUhlYWRlclRleHQoKVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPjwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoc29ydEluZGV4RGlzcGxheSQgfCBhc3luYzsgYXMgc29ydEluZGV4RGlzcGxheSkge1xuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZy1zb3J0LWluZGljYXRvci1pY29uIGFnLXNvcnQtb3JkZXJcIlxuICAgICAgICAgICAgICAgID57eyBzb3J0SW5kZXhEaXNwbGF5IH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X25vdF9zb3J0ZWQnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkaXNwbGF5TmFtZSgpID8/IGFjY2Vzc2libGVIZWFkZXJUZXh0KClcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAjaW5saW5lSGVscENvbnRhaW5lciBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","export const iconMap = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: {\n name: 'chevron-double-left',\n size: 16,\n },\n // header column group shown when contracted (click to expand)\n columnGroupClosed: {\n name: 'chevron-double-right',\n size: 16,\n },\n // column tool panel column group contracted (click to expand)\n columnSelectClosed: {\n name: 'chevron-right',\n size: 24,\n },\n // column tool panel column group expanded (click to contract)\n columnSelectOpen: {\n name: 'chevron-down',\n size: 24,\n },\n // column tool panel header expand/collapse all button, shown\n // when some children are expanded and others are collapsed\n columnSelectIndeterminate: {\n name: 'subtract',\n size: 16,\n },\n // accordion open (filter tool panel group, charts group)\n accordionOpen: {\n name: 'chevron-down',\n size: 24,\n },\n // accordion closed (filter tool panel group, charts group)\n accordionClosed: {\n name: 'chevron-right',\n size: 24,\n },\n // accordion indeterminate - shown when some children are expanded and\n // others are collapsed (filter tool panel group, charts group)\n accordionIndeterminate: {\n name: 'subtract',\n size: 16,\n },\n // shown on drag and drop image component icon while dragging\n // column to the side of the grid to pin\n columnMovePin: {\n name: 'arrow-move',\n size: 20,\n },\n // shown on drag and drop image component icon while dragging over\n // part of the page that is not a drop zone\n columnMoveHide: {\n name: 'eye-off',\n size: 16,\n },\n // shown on drag and drop image component icon while dragging\n // columns to reorder\n columnMoveMove: {\n name: 'arrow-move',\n size: 20,\n },\n // animating icon shown when dragging a column to the right of\n // the grid causes horizontal scrolling\n columnMoveLeft: {\n name: 'arrow-move',\n size: 20,\n },\n // animating icon shown when dragging a column to the left of\n // the grid causes horizontal scrolling\n columnMoveRight: {\n name: 'arrow-move',\n size: 20,\n },\n // shown on drag and drop image component icon while dragging\n // over Row Groups drop zone\n columnMoveGroup: {\n name: 'group',\n size: 20,\n },\n // shown on drag and drop image component icon while dragging\n // over Values drop zone\n columnMoveValue: {\n name: 'calculator',\n size: 16,\n },\n // shown on drag and drop image component icon while dragging\n // over pivot drop zone\n columnMovePivot: {\n name: 'table-freeze-column',\n size: 16,\n },\n // shown on drag and drop image component icon while dragging\n // over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: {\n name: 'prohibited',\n size: 16,\n },\n // shown on row group when contracted (click to expand)\n groupContracted: {\n name: 'chevron-right',\n size: 24,\n },\n // shown on row group when expanded (click to contract)\n groupExpanded: {\n name: 'chevron-down',\n size: 24,\n },\n // set filter tree list group contracted (click to expand)\n setFilterGroupClosed: {\n name: 'chevron-right',\n size: 24,\n },\n // set filter tree list group expanded (click to contract)\n setFilterGroupOpen: {\n name: 'chevron-down',\n size: 24,\n },\n // set filter tree list expand/collapse all button, shown when\n // some children are expanded and\n // others are collapsed\n setFilterGroupIndeterminate: {\n name: 'subtract',\n size: 16,\n },\n // set filter async values loading\n setFilterLoading: {\n name: 'spinner-ios',\n size: 16,\n },\n // context menu chart item\n chart: {\n name: 'data-bar-vertical-ascending',\n size: 16,\n },\n // dialog title bar\n close: {\n name: 'close',\n size: 24,\n },\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: {\n name: 'close',\n size: 24,\n },\n // indicates the currently active pin state in the \"Pin column\"\n // sub-menu of the column menu\n check: {\n name: 'checkmark',\n size: 20,\n },\n // \"go to first\" button in pagination controls\n first: {\n name: 'arrow-previous',\n size: 16,\n },\n // \"go to previous\" button in pagination controls\n previous: {\n name: 'chevron-left',\n size: 24,\n },\n // \"go to next\" button in pagination controls\n next: {\n name: 'chevron-right',\n size: 24,\n },\n // \"go to last\" button in pagination controls\n last: {\n name: 'arrow-next',\n size: 16,\n },\n // shown on top right of chart when chart is linked to range\n // data (click to unlink)\n linked: {\n name: 'link-dismiss',\n size: 16,\n },\n // shown on top right of chart when chart is not linked to\n // range data (click to link)\n unlinked: {\n name: 'link',\n size: 16,\n },\n // rotating spinner shown by the loading cell renderer\n groupLoading: {\n name: 'spinner-ios',\n size: 16,\n },\n // button to launch legacy column menu\n menu: {\n name: 'more-actions',\n size: 24,\n },\n // button to launch new enterprise column menu\n menuAlt: {\n name: 'more-actions',\n size: 24,\n },\n // menu tab icon in legacy tabbed enterprise column menu\n legacyMenu: {\n name: 'more-actions',\n size: 24,\n },\n // open filter button - header, floating filter, menu\n filter: {\n name: 'filter',\n size: 16,\n },\n // filter is applied - header (legacy column menu), filter tool panel\n filterActive: {\n name: 'filter',\n size: 16,\n },\n // filter tab icon in legacy tabbed enterprise column menu\n filterTab: {\n name: 'filter',\n size: 16,\n },\n // filter tool panel tab\n filtersToolPanel: {\n name: 'filter',\n size: 16,\n },\n // columns in menu (column chooser / columns tab)\n columns: {\n name: 'layout-column-three',\n size: 16,\n },\n // column tool panel tab\n columnsToolPanel: {\n name: 'layout-column-three',\n size: 16,\n },\n // button in chart regular size window title bar (click to maximise)\n maximize: {\n name: 'arrow-maximize',\n size: 16,\n },\n // button in chart maximised window title bar (click to make regular size)\n minimize: {\n name: 'arrow-minimize',\n size: 16,\n },\n // \"Pin column\" item in column header menu\n menuPin: {\n name: 'pin',\n size: 16,\n },\n // \"Value aggregation\" column menu item (shown on numeric\n // columns when grouping is active)\"\n menuValue: {\n name: 'calculator',\n size: 16,\n },\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: {\n name: 'arrow-collapse-all',\n size: 16,\n },\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: {\n name: 'arrow-collapse-all',\n size: 16,\n },\n // context menu copy item\n clipboardCopy: {\n name: 'copy',\n size: 16,\n },\n // context menu cut item\n clipboardCut: {\n name: 'cut',\n size: 16,\n },\n // context menu paste item\n clipboardPaste: {\n name: 'clipboard-arrow-right',\n size: 16,\n },\n // identifies the pivot drop zone\n pivotPanel: {\n name: 'pivot',\n size: 16,\n },\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: {\n name: 'group',\n size: 20,\n },\n // columns tool panel Values drop zone\n valuePanel: {\n name: 'calculator',\n size: 16,\n },\n // drag handle used to pick up draggable columns\n columnDrag: {\n name: 're-order-dots-vertical',\n size: 16,\n },\n // drag handle used to pick up draggable rows\n rowDrag: {\n name: 'arrow-bidirectional-up-down',\n size: 16,\n },\n // context menu export item\n save: {\n name: 'arrow-download',\n size: 16,\n },\n // csv export\n csvExport: {\n name: 'document-text',\n size: 16,\n },\n // excel export\n excelExport: {\n name: 'document-xls',\n size: 16,\n },\n // icon on select dropdowns (select cell editor, charts tool panels)\n selectOpen: {\n name: 'chevron-down',\n size: 24,\n },\n // open icon for rich select editor\n richSelectOpen: {\n name: 'chevron-down',\n size: 24,\n },\n // remove for rich select editor pills\n richSelectRemove: {\n name: 'close',\n size: 24,\n },\n // icon for sub menu item\n subMenuOpen: {\n name: 'arrow-right',\n size: 16,\n },\n // version of subMenuOpen used in RTL mode\n subMenuOpenRtl: {\n name: 'arrow-left',\n size: 16,\n },\n // separator between column 'pills' when you add multiple\n // columns to the header drop zone\n panelDelimiter: {\n name: 'chevron-right',\n size: 16,\n },\n // version of panelDelimiter used in RTL mode\n panelDelimiterRtl: {\n name: 'arrow-left',\n size: 16,\n },\n // show on column header when column is sorted ascending\n sortAscending: {\n name: 'chevron-up',\n size: 24,\n },\n // show on column header when column is sorted descending\n sortDescending: {\n name: 'chevron-down',\n size: 24,\n },\n // show on column header when column has no sort, only when\n // enabled with colDef.unSortIcon=true\n sortUnSort: {\n name: 'subtract',\n size: 16,\n },\n // Builder button in Advanced Filter\n advancedFilterBuilder: {\n name: 'group',\n size: 20,\n },\n // drag handle used to pick up Advanced Filter Builder rows\n advancedFilterBuilderDrag: {\n name: 're-order-dots-vertical',\n size: 16,\n },\n // Advanced Filter Builder row validation error\n advancedFilterBuilderInvalid: {\n name: 'prohibited',\n size: 16,\n },\n // shown on Advanced Filter Builder rows to move them up\n advancedFilterBuilderMoveUp: {\n name: 'chevron-up',\n size: 24,\n },\n // shown on Advanced Filter Builder rows to move them down\n advancedFilterBuilderMoveDown: {\n name: 'chevron-down',\n size: 24,\n },\n // shown on Advanced Filter Builder rows to add new rows\n advancedFilterBuilderAdd: {\n name: 'add-circle',\n size: 24,\n },\n // shown on Advanced Filter Builder rows to remove row\n advancedFilterBuilderRemove: {\n name: 'subtract-circle',\n size: 16,\n },\n // shown on Advanced Filter Builder selection pills\n advancedFilterBuilderSelect: {\n name: 'chevron-down',\n size: 24,\n },\n // icon to open charts menu\n chartsMenu: {\n name: 'more-actions',\n size: 24,\n },\n // Edit Chart menu item shown in Integrated Charts menu\n chartsMenuEdit: {\n name: 'data-bar-vertical-ascending',\n size: 16,\n },\n // Advanced Settings menu item shown in Integrated Charts menu\n chartsMenuAdvancedSettings: {\n name: 'settings',\n size: 16,\n },\n // shown in Integrated Charts menu add fields\n chartsMenuAdd: {\n name: 'add',\n size: 24,\n },\n // shown in Integrated Charts tool panel color picker\n chartsColorPicker: {\n name: 'chevron-down',\n size: 24,\n },\n // previous in Integrated Charts settings tool panel theme switcher\n chartsThemePrevious: {\n name: 'chevron-left',\n size: 24,\n },\n // next in Integrated Charts settings tool panel theme switcher\n chartsThemeNext: {\n name: 'chevron-right',\n size: 24,\n },\n // download chart\n chartsDownload: {\n name: 'arrow-download',\n size: 16,\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9pY29ucy9pY29uLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBTWhCO0lBQ0YsOERBQThEO0lBQzlELGlCQUFpQixFQUFFO1FBQ2pCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxpQkFBaUIsRUFBRTtRQUNqQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4REFBOEQ7SUFDOUQsa0JBQWtCLEVBQUU7UUFDbEIsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxnQkFBZ0IsRUFBRTtRQUNoQixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkRBQTZEO0lBQzdELDJEQUEyRDtJQUMzRCx5QkFBeUIsRUFBRTtRQUN6QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQseURBQXlEO0lBQ3pELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyREFBMkQ7SUFDM0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHNFQUFzRTtJQUN0RSwrREFBK0Q7SUFDL0Qsc0JBQXNCLEVBQUU7UUFDdEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZEQUE2RDtJQUM3RCx3Q0FBd0M7SUFDeEMsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELGtFQUFrRTtJQUNsRSwyQ0FBMkM7SUFDM0MsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkRBQTZEO0lBQzdELHFCQUFxQjtJQUNyQixjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsOERBQThEO0lBQzlELHVDQUF1QztJQUN2QyxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkRBQTZEO0lBQzdELHVDQUF1QztJQUN2QyxlQUFlLEVBQUU7UUFDZixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkRBQTZEO0lBQzdELDRCQUE0QjtJQUM1QixlQUFlLEVBQUU7UUFDZixJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw2REFBNkQ7SUFDN0Qsd0JBQXdCO0lBQ3hCLGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw2REFBNkQ7SUFDN0QsdUJBQXVCO0lBQ3ZCLGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZEQUE2RDtJQUM3RCwrQ0FBK0M7SUFDL0MsMkNBQTJDO0lBQzNDLGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCx1REFBdUQ7SUFDdkQsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHVEQUF1RDtJQUN2RCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsMERBQTBEO0lBQzFELG9CQUFvQixFQUFFO1FBQ3BCLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwwREFBMEQ7SUFDMUQsa0JBQWtCLEVBQUU7UUFDbEIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxpQ0FBaUM7SUFDakMsdUJBQXVCO0lBQ3ZCLDJCQUEyQixFQUFFO1FBQzNCLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxrQ0FBa0M7SUFDbEMsZ0JBQWdCLEVBQUU7UUFDaEIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDBCQUEwQjtJQUMxQixLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxtQkFBbUI7SUFDbkIsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsa0VBQWtFO0lBQ2xFLE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELCtEQUErRDtJQUMvRCw4QkFBOEI7SUFDOUIsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhDQUE4QztJQUM5QyxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxpREFBaUQ7SUFDakQsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZDQUE2QztJQUM3QyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkNBQTZDO0lBQzdDLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw0REFBNEQ7SUFDNUQseUJBQXlCO0lBQ3pCLE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwwREFBMEQ7SUFDMUQsNkJBQTZCO0lBQzdCLFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHNEQUFzRDtJQUN0RCxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsYUFBYTtRQUNuQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsc0NBQXNDO0lBQ3RDLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4Q0FBOEM7SUFDOUMsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHdEQUF3RDtJQUN4RCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQscURBQXFEO0lBQ3JELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHFFQUFxRTtJQUNyRSxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwwREFBMEQ7SUFDMUQsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsd0JBQXdCO0lBQ3hCLGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELGlEQUFpRDtJQUNqRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCx3QkFBd0I7SUFDeEIsZ0JBQWdCLEVBQUU7UUFDaEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsb0VBQW9FO0lBQ3BFLFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDBFQUEwRTtJQUMxRSxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwwQ0FBMEM7SUFDMUMsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLEtBQUs7UUFDWCxJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQseURBQXlEO0lBQ3pELG9DQUFvQztJQUNwQyxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsc0RBQXNEO0lBQ3RELGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHlEQUF5RDtJQUN6RCxrQkFBa0IsRUFBRTtRQUNsQixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCx5QkFBeUI7SUFDekIsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsd0JBQXdCO0lBQ3hCLFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxLQUFLO1FBQ1gsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDBCQUEwQjtJQUMxQixjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxpQ0FBaUM7SUFDakMsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsOENBQThDO0lBQzlDLGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHNDQUFzQztJQUN0QyxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsZ0RBQWdEO0lBQ2hELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZDQUE2QztJQUM3QyxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsYUFBYTtJQUNiLFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxlQUFlO0lBQ2YsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELG9FQUFvRTtJQUNwRSxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsbUNBQW1DO0lBQ25DLGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxzQ0FBc0M7SUFDdEMsZ0JBQWdCLEVBQUU7UUFDaEIsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQseUJBQXlCO0lBQ3pCLFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxhQUFhO1FBQ25CLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwwQ0FBMEM7SUFDMUMsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHlEQUF5RDtJQUN6RCxrQ0FBa0M7SUFDbEMsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZDQUE2QztJQUM3QyxpQkFBaUIsRUFBRTtRQUNqQixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsd0RBQXdEO0lBQ3hELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCx5REFBeUQ7SUFDekQsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDJEQUEyRDtJQUMzRCxzQ0FBc0M7SUFDdEMsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELG9DQUFvQztJQUNwQyxxQkFBcUIsRUFBRTtRQUNyQixJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyREFBMkQ7SUFDM0QseUJBQXlCLEVBQUU7UUFDekIsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsK0NBQStDO0lBQy9DLDRCQUE0QixFQUFFO1FBQzVCLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCx3REFBd0Q7SUFDeEQsMkJBQTJCLEVBQUU7UUFDM0IsSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDBEQUEwRDtJQUMxRCw2QkFBNkIsRUFBRTtRQUM3QixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsd0RBQXdEO0lBQ3hELHdCQUF3QixFQUFFO1FBQ3hCLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxzREFBc0Q7SUFDdEQsMkJBQTJCLEVBQUU7UUFDM0IsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsbURBQW1EO0lBQ25ELDJCQUEyQixFQUFFO1FBQzNCLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyQkFBMkI7SUFDM0IsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHVEQUF1RDtJQUN2RCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4REFBOEQ7SUFDOUQsMEJBQTBCLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZDQUE2QztJQUM3QyxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxxREFBcUQ7SUFDckQsaUJBQWlCLEVBQUU7UUFDakIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELG1FQUFtRTtJQUNuRSxtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsK0RBQStEO0lBQy9ELGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxpQkFBaUI7SUFDakIsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsRUFBRTtLQUNUO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpY29uTWFwOiBSZWNvcmQ8XG4gIHN0cmluZyxcbiAge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzaXplOiBudW1iZXI7XG4gIH1cbj4gPSB7XG4gIC8vIGhlYWRlciBjb2x1bW4gZ3JvdXAgc2hvd24gd2hlbiBleHBhbmRlZCAoY2xpY2sgdG8gY29udHJhY3QpXG4gIGNvbHVtbkdyb3VwT3BlbmVkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG91YmxlLWxlZnQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGhlYWRlciBjb2x1bW4gZ3JvdXAgc2hvd24gd2hlbiBjb250cmFjdGVkIChjbGljayB0byBleHBhbmQpXG4gIGNvbHVtbkdyb3VwQ2xvc2VkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG91YmxlLXJpZ2h0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb2x1bW4gdG9vbCBwYW5lbCBjb2x1bW4gZ3JvdXAgY29udHJhY3RlZCAoY2xpY2sgdG8gZXhwYW5kKVxuICBjb2x1bW5TZWxlY3RDbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gY29sdW1uIHRvb2wgcGFuZWwgY29sdW1uIGdyb3VwIGV4cGFuZGVkIChjbGljayB0byBjb250cmFjdClcbiAgY29sdW1uU2VsZWN0T3Blbjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIGNvbHVtbiB0b29sIHBhbmVsIGhlYWRlciBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiwgc2hvd25cbiAgLy8gd2hlbiBzb21lIGNoaWxkcmVuIGFyZSBleHBhbmRlZCBhbmQgb3RoZXJzIGFyZSBjb2xsYXBzZWRcbiAgY29sdW1uU2VsZWN0SW5kZXRlcm1pbmF0ZToge1xuICAgIG5hbWU6ICdzdWJ0cmFjdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gYWNjb3JkaW9uIG9wZW4gKGZpbHRlciB0b29sIHBhbmVsIGdyb3VwLCBjaGFydHMgZ3JvdXApXG4gIGFjY29yZGlvbk9wZW46IHtcbiAgICBuYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBhY2NvcmRpb24gY2xvc2VkIChmaWx0ZXIgdG9vbCBwYW5lbCBncm91cCwgY2hhcnRzIGdyb3VwKVxuICBhY2NvcmRpb25DbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gYWNjb3JkaW9uIGluZGV0ZXJtaW5hdGUgLSBzaG93biB3aGVuIHNvbWUgY2hpbGRyZW4gYXJlIGV4cGFuZGVkIGFuZFxuICAvLyBvdGhlcnMgYXJlIGNvbGxhcHNlZCAoZmlsdGVyIHRvb2wgcGFuZWwgZ3JvdXAsIGNoYXJ0cyBncm91cClcbiAgYWNjb3JkaW9uSW5kZXRlcm1pbmF0ZToge1xuICAgIG5hbWU6ICdzdWJ0cmFjdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBjb2x1bW4gdG8gdGhlIHNpZGUgb2YgdGhlIGdyaWQgdG8gcGluXG4gIGNvbHVtbk1vdmVQaW46IHtcbiAgICBuYW1lOiAnYXJyb3ctbW92ZScsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZyBvdmVyXG4gIC8vIHBhcnQgb2YgdGhlIHBhZ2UgdGhhdCBpcyBub3QgYSBkcm9wIHpvbmVcbiAgY29sdW1uTW92ZUhpZGU6IHtcbiAgICBuYW1lOiAnZXllLW9mZicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBjb2x1bW5zIHRvIHJlb3JkZXJcbiAgY29sdW1uTW92ZU1vdmU6IHtcbiAgICBuYW1lOiAnYXJyb3ctbW92ZScsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gYW5pbWF0aW5nIGljb24gc2hvd24gd2hlbiBkcmFnZ2luZyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgb2ZcbiAgLy8gdGhlIGdyaWQgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gIGNvbHVtbk1vdmVMZWZ0OiB7XG4gICAgbmFtZTogJ2Fycm93LW1vdmUnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGFuaW1hdGluZyBpY29uIHNob3duIHdoZW4gZHJhZ2dpbmcgYSBjb2x1bW4gdG8gdGhlIGxlZnQgb2ZcbiAgLy8gdGhlIGdyaWQgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gIGNvbHVtbk1vdmVSaWdodDoge1xuICAgIG5hbWU6ICdhcnJvdy1tb3ZlJyxcbiAgICBzaXplOiAyMCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBkcmFnIGFuZCBkcm9wIGltYWdlIGNvbXBvbmVudCBpY29uIHdoaWxlIGRyYWdnaW5nXG4gIC8vIG92ZXIgUm93IEdyb3VwcyBkcm9wIHpvbmVcbiAgY29sdW1uTW92ZUdyb3VwOiB7XG4gICAgbmFtZTogJ2dyb3VwJyxcbiAgICBzaXplOiAyMCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBkcmFnIGFuZCBkcm9wIGltYWdlIGNvbXBvbmVudCBpY29uIHdoaWxlIGRyYWdnaW5nXG4gIC8vIG92ZXIgVmFsdWVzIGRyb3Agem9uZVxuICBjb2x1bW5Nb3ZlVmFsdWU6IHtcbiAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBvdmVyIHBpdm90IGRyb3Agem9uZVxuICBjb2x1bW5Nb3ZlUGl2b3Q6IHtcbiAgICBuYW1lOiAndGFibGUtZnJlZXplLWNvbHVtbicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBvdmVyIGRyb3Agem9uZSB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBpdCwgZS5nLlxuICAvLyBzdHJpbmcgY29sdW1uIG92ZXIgYWdncmVnYXRpb24gZHJvcCB6b25lXG4gIGRyb3BOb3RBbGxvd2VkOiB7XG4gICAgbmFtZTogJ3Byb2hpYml0ZWQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIHJvdyBncm91cCB3aGVuIGNvbnRyYWN0ZWQgKGNsaWNrIHRvIGV4cGFuZClcbiAgZ3JvdXBDb250cmFjdGVkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIHJvdyBncm91cCB3aGVuIGV4cGFuZGVkIChjbGljayB0byBjb250cmFjdClcbiAgZ3JvdXBFeHBhbmRlZDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNldCBmaWx0ZXIgdHJlZSBsaXN0IGdyb3VwIGNvbnRyYWN0ZWQgKGNsaWNrIHRvIGV4cGFuZClcbiAgc2V0RmlsdGVyR3JvdXBDbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gc2V0IGZpbHRlciB0cmVlIGxpc3QgZ3JvdXAgZXhwYW5kZWQgKGNsaWNrIHRvIGNvbnRyYWN0KVxuICBzZXRGaWx0ZXJHcm91cE9wZW46IHtcbiAgICBuYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBzZXQgZmlsdGVyIHRyZWUgbGlzdCBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiwgc2hvd24gd2hlblxuICAvLyBzb21lIGNoaWxkcmVuIGFyZSBleHBhbmRlZCBhbmRcbiAgLy8gb3RoZXJzIGFyZSBjb2xsYXBzZWRcbiAgc2V0RmlsdGVyR3JvdXBJbmRldGVybWluYXRlOiB7XG4gICAgbmFtZTogJ3N1YnRyYWN0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzZXQgZmlsdGVyIGFzeW5jIHZhbHVlcyBsb2FkaW5nXG4gIHNldEZpbHRlckxvYWRpbmc6IHtcbiAgICBuYW1lOiAnc3Bpbm5lci1pb3MnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbnRleHQgbWVudSBjaGFydCBpdGVtXG4gIGNoYXJ0OiB7XG4gICAgbmFtZTogJ2RhdGEtYmFyLXZlcnRpY2FsLWFzY2VuZGluZycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZGlhbG9nIHRpdGxlIGJhclxuICBjbG9zZToge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gWCAocmVtb3ZlKSBvbiBjb2x1bW4gJ3BpbGwnIGFmdGVyIGFkZGluZyBpdCB0byBhIGRyb3Agem9uZSBsaXN0XG4gIGNhbmNlbDoge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gaW5kaWNhdGVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBpbiBzdGF0ZSBpbiB0aGUgXCJQaW4gY29sdW1uXCJcbiAgLy8gc3ViLW1lbnUgb2YgdGhlIGNvbHVtbiBtZW51XG4gIGNoZWNrOiB7XG4gICAgbmFtZTogJ2NoZWNrbWFyaycsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gXCJnbyB0byBmaXJzdFwiIGJ1dHRvbiBpbiBwYWdpbmF0aW9uIGNvbnRyb2xzXG4gIGZpcnN0OiB7XG4gICAgbmFtZTogJ2Fycm93LXByZXZpb3VzJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBcImdvIHRvIHByZXZpb3VzXCIgYnV0dG9uIGluIHBhZ2luYXRpb24gY29udHJvbHNcbiAgcHJldmlvdXM6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1sZWZ0JyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBcImdvIHRvIG5leHRcIiBidXR0b24gaW4gcGFnaW5hdGlvbiBjb250cm9sc1xuICBuZXh0OiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIFwiZ28gdG8gbGFzdFwiIGJ1dHRvbiBpbiBwYWdpbmF0aW9uIGNvbnRyb2xzXG4gIGxhc3Q6IHtcbiAgICBuYW1lOiAnYXJyb3ctbmV4dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gdG9wIHJpZ2h0IG9mIGNoYXJ0IHdoZW4gY2hhcnQgaXMgbGlua2VkIHRvIHJhbmdlXG4gIC8vIGRhdGEgKGNsaWNrIHRvIHVubGluaylcbiAgbGlua2VkOiB7XG4gICAgbmFtZTogJ2xpbmstZGlzbWlzcycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gdG9wIHJpZ2h0IG9mIGNoYXJ0IHdoZW4gY2hhcnQgaXMgbm90IGxpbmtlZCB0b1xuICAvLyByYW5nZSBkYXRhIChjbGljayB0byBsaW5rKVxuICB1bmxpbmtlZDoge1xuICAgIG5hbWU6ICdsaW5rJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyByb3RhdGluZyBzcGlubmVyIHNob3duIGJ5IHRoZSBsb2FkaW5nIGNlbGwgcmVuZGVyZXJcbiAgZ3JvdXBMb2FkaW5nOiB7XG4gICAgbmFtZTogJ3NwaW5uZXItaW9zJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBidXR0b24gdG8gbGF1bmNoIGxlZ2FjeSBjb2x1bW4gbWVudVxuICBtZW51OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gYnV0dG9uIHRvIGxhdW5jaCBuZXcgZW50ZXJwcmlzZSBjb2x1bW4gbWVudVxuICBtZW51QWx0OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gbWVudSB0YWIgaWNvbiBpbiBsZWdhY3kgdGFiYmVkIGVudGVycHJpc2UgY29sdW1uIG1lbnVcbiAgbGVnYWN5TWVudToge1xuICAgIG5hbWU6ICdtb3JlLWFjdGlvbnMnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIG9wZW4gZmlsdGVyIGJ1dHRvbiAtIGhlYWRlciwgZmxvYXRpbmcgZmlsdGVyLCBtZW51XG4gIGZpbHRlcjoge1xuICAgIG5hbWU6ICdmaWx0ZXInLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGZpbHRlciBpcyBhcHBsaWVkIC0gaGVhZGVyIChsZWdhY3kgY29sdW1uIG1lbnUpLCBmaWx0ZXIgdG9vbCBwYW5lbFxuICBmaWx0ZXJBY3RpdmU6IHtcbiAgICBuYW1lOiAnZmlsdGVyJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBmaWx0ZXIgdGFiIGljb24gaW4gbGVnYWN5IHRhYmJlZCBlbnRlcnByaXNlIGNvbHVtbiBtZW51XG4gIGZpbHRlclRhYjoge1xuICAgIG5hbWU6ICdmaWx0ZXInLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGZpbHRlciB0b29sIHBhbmVsIHRhYlxuICBmaWx0ZXJzVG9vbFBhbmVsOiB7XG4gICAgbmFtZTogJ2ZpbHRlcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY29sdW1ucyBpbiBtZW51IChjb2x1bW4gY2hvb3NlciAvIGNvbHVtbnMgdGFiKVxuICBjb2x1bW5zOiB7XG4gICAgbmFtZTogJ2xheW91dC1jb2x1bW4tdGhyZWUnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbHVtbiB0b29sIHBhbmVsIHRhYlxuICBjb2x1bW5zVG9vbFBhbmVsOiB7XG4gICAgbmFtZTogJ2xheW91dC1jb2x1bW4tdGhyZWUnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGJ1dHRvbiBpbiBjaGFydCByZWd1bGFyIHNpemUgd2luZG93IHRpdGxlIGJhciAoY2xpY2sgdG8gbWF4aW1pc2UpXG4gIG1heGltaXplOiB7XG4gICAgbmFtZTogJ2Fycm93LW1heGltaXplJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBidXR0b24gaW4gY2hhcnQgbWF4aW1pc2VkIHdpbmRvdyB0aXRsZSBiYXIgKGNsaWNrIHRvIG1ha2UgcmVndWxhciBzaXplKVxuICBtaW5pbWl6ZToge1xuICAgIG5hbWU6ICdhcnJvdy1taW5pbWl6ZScsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gXCJQaW4gY29sdW1uXCIgaXRlbSBpbiBjb2x1bW4gaGVhZGVyIG1lbnVcbiAgbWVudVBpbjoge1xuICAgIG5hbWU6ICdwaW4nLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiVmFsdWUgYWdncmVnYXRpb25cIiBjb2x1bW4gbWVudSBpdGVtIChzaG93biBvbiBudW1lcmljXG4gIC8vIGNvbHVtbnMgd2hlbiBncm91cGluZyBpcyBhY3RpdmUpXCJcbiAgbWVudVZhbHVlOiB7XG4gICAgbmFtZTogJ2NhbGN1bGF0b3InLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiR3JvdXAgYnkge2NvbHVtbi1uYW1lfVwiIGl0ZW0gaW4gY29sdW1uIGhlYWRlciBtZW51XG4gIG1lbnVBZGRSb3dHcm91cDoge1xuICAgIG5hbWU6ICdhcnJvdy1jb2xsYXBzZS1hbGwnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiVW4tR3JvdXAgYnkge2NvbHVtbi1uYW1lfVwiIGl0ZW0gaW4gY29sdW1uIGhlYWRlciBtZW51XG4gIG1lbnVSZW1vdmVSb3dHcm91cDoge1xuICAgIG5hbWU6ICdhcnJvdy1jb2xsYXBzZS1hbGwnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbnRleHQgbWVudSBjb3B5IGl0ZW1cbiAgY2xpcGJvYXJkQ29weToge1xuICAgIG5hbWU6ICdjb3B5JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb250ZXh0IG1lbnUgY3V0IGl0ZW1cbiAgY2xpcGJvYXJkQ3V0OiB7XG4gICAgbmFtZTogJ2N1dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY29udGV4dCBtZW51IHBhc3RlIGl0ZW1cbiAgY2xpcGJvYXJkUGFzdGU6IHtcbiAgICBuYW1lOiAnY2xpcGJvYXJkLWFycm93LXJpZ2h0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBpZGVudGlmaWVzIHRoZSBwaXZvdCBkcm9wIHpvbmVcbiAgcGl2b3RQYW5lbDoge1xuICAgIG5hbWU6ICdwaXZvdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gXCJSb3cgZ3JvdXBzXCIgZHJvcCB6b25lIGluIGNvbHVtbiB0b29sIHBhbmVsXG4gIHJvd0dyb3VwUGFuZWw6IHtcbiAgICBuYW1lOiAnZ3JvdXAnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGNvbHVtbnMgdG9vbCBwYW5lbCBWYWx1ZXMgZHJvcCB6b25lXG4gIHZhbHVlUGFuZWw6IHtcbiAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZHJhZyBoYW5kbGUgdXNlZCB0byBwaWNrIHVwIGRyYWdnYWJsZSBjb2x1bW5zXG4gIGNvbHVtbkRyYWc6IHtcbiAgICBuYW1lOiAncmUtb3JkZXItZG90cy12ZXJ0aWNhbCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZHJhZyBoYW5kbGUgdXNlZCB0byBwaWNrIHVwIGRyYWdnYWJsZSByb3dzXG4gIHJvd0RyYWc6IHtcbiAgICBuYW1lOiAnYXJyb3ctYmlkaXJlY3Rpb25hbC11cC1kb3duJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb250ZXh0IG1lbnUgZXhwb3J0IGl0ZW1cbiAgc2F2ZToge1xuICAgIG5hbWU6ICdhcnJvdy1kb3dubG9hZCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY3N2IGV4cG9ydFxuICBjc3ZFeHBvcnQ6IHtcbiAgICBuYW1lOiAnZG9jdW1lbnQtdGV4dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZXhjZWwgZXhwb3J0XG4gIGV4Y2VsRXhwb3J0OiB7XG4gICAgbmFtZTogJ2RvY3VtZW50LXhscycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gaWNvbiBvbiBzZWxlY3QgZHJvcGRvd25zIChzZWxlY3QgY2VsbCBlZGl0b3IsIGNoYXJ0cyB0b29sIHBhbmVscylcbiAgc2VsZWN0T3Blbjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIG9wZW4gaWNvbiBmb3IgcmljaCBzZWxlY3QgZWRpdG9yXG4gIHJpY2hTZWxlY3RPcGVuOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG93bicsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gcmVtb3ZlIGZvciByaWNoIHNlbGVjdCBlZGl0b3IgcGlsbHNcbiAgcmljaFNlbGVjdFJlbW92ZToge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gaWNvbiBmb3Igc3ViIG1lbnUgaXRlbVxuICBzdWJNZW51T3Blbjoge1xuICAgIG5hbWU6ICdhcnJvdy1yaWdodCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gdmVyc2lvbiBvZiBzdWJNZW51T3BlbiB1c2VkIGluIFJUTCBtb2RlXG4gIHN1Yk1lbnVPcGVuUnRsOiB7XG4gICAgbmFtZTogJ2Fycm93LWxlZnQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNlcGFyYXRvciBiZXR3ZWVuIGNvbHVtbiAncGlsbHMnIHdoZW4geW91IGFkZCBtdWx0aXBsZVxuICAvLyBjb2x1bW5zIHRvIHRoZSBoZWFkZXIgZHJvcCB6b25lXG4gIHBhbmVsRGVsaW1pdGVyOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHZlcnNpb24gb2YgcGFuZWxEZWxpbWl0ZXIgdXNlZCBpbiBSVEwgbW9kZVxuICBwYW5lbERlbGltaXRlclJ0bDoge1xuICAgIG5hbWU6ICdhcnJvdy1sZWZ0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93IG9uIGNvbHVtbiBoZWFkZXIgd2hlbiBjb2x1bW4gaXMgc29ydGVkIGFzY2VuZGluZ1xuICBzb3J0QXNjZW5kaW5nOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tdXAnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3cgb24gY29sdW1uIGhlYWRlciB3aGVuIGNvbHVtbiBpcyBzb3J0ZWQgZGVzY2VuZGluZ1xuICBzb3J0RGVzY2VuZGluZzoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3cgb24gY29sdW1uIGhlYWRlciB3aGVuIGNvbHVtbiBoYXMgbm8gc29ydCwgb25seSB3aGVuXG4gIC8vIGVuYWJsZWQgd2l0aCBjb2xEZWYudW5Tb3J0SWNvbj10cnVlXG4gIHNvcnRVblNvcnQ6IHtcbiAgICBuYW1lOiAnc3VidHJhY3QnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIEJ1aWxkZXIgYnV0dG9uIGluIEFkdmFuY2VkIEZpbHRlclxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXI6IHtcbiAgICBuYW1lOiAnZ3JvdXAnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGRyYWcgaGFuZGxlIHVzZWQgdG8gcGljayB1cCBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlckRyYWc6IHtcbiAgICBuYW1lOiAncmUtb3JkZXItZG90cy12ZXJ0aWNhbCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgcm93IHZhbGlkYXRpb24gZXJyb3JcbiAgYWR2YW5jZWRGaWx0ZXJCdWlsZGVySW52YWxpZDoge1xuICAgIG5hbWU6ICdwcm9oaWJpdGVkJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93biBvbiBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzIHRvIG1vdmUgdGhlbSB1cFxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXJNb3ZlVXA6IHtcbiAgICBuYW1lOiAnY2hldnJvbi11cCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgcm93cyB0byBtb3ZlIHRoZW0gZG93blxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXJNb3ZlRG93bjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIEFkdmFuY2VkIEZpbHRlciBCdWlsZGVyIHJvd3MgdG8gYWRkIG5ldyByb3dzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlckFkZDoge1xuICAgIG5hbWU6ICdhZGQtY2lyY2xlJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzIHRvIHJlbW92ZSByb3dcbiAgYWR2YW5jZWRGaWx0ZXJCdWlsZGVyUmVtb3ZlOiB7XG4gICAgbmFtZTogJ3N1YnRyYWN0LWNpcmNsZScsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgc2VsZWN0aW9uIHBpbGxzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlclNlbGVjdDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIGljb24gdG8gb3BlbiBjaGFydHMgbWVudVxuICBjaGFydHNNZW51OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gRWRpdCBDaGFydCBtZW51IGl0ZW0gc2hvd24gaW4gSW50ZWdyYXRlZCBDaGFydHMgbWVudVxuICBjaGFydHNNZW51RWRpdDoge1xuICAgIG5hbWU6ICdkYXRhLWJhci12ZXJ0aWNhbC1hc2NlbmRpbmcnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIEFkdmFuY2VkIFNldHRpbmdzIG1lbnUgaXRlbSBzaG93biBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBtZW51XG4gIGNoYXJ0c01lbnVBZHZhbmNlZFNldHRpbmdzOiB7XG4gICAgbmFtZTogJ3NldHRpbmdzJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93biBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBtZW51IGFkZCBmaWVsZHNcbiAgY2hhcnRzTWVudUFkZDoge1xuICAgIG5hbWU6ICdhZGQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIGluIEludGVncmF0ZWQgQ2hhcnRzIHRvb2wgcGFuZWwgY29sb3IgcGlja2VyXG4gIGNoYXJ0c0NvbG9yUGlja2VyOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG93bicsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gcHJldmlvdXMgaW4gSW50ZWdyYXRlZCBDaGFydHMgc2V0dGluZ3MgdG9vbCBwYW5lbCB0aGVtZSBzd2l0Y2hlclxuICBjaGFydHNUaGVtZVByZXZpb3VzOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tbGVmdCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gbmV4dCBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBzZXR0aW5ncyB0b29sIHBhbmVsIHRoZW1lIHN3aXRjaGVyXG4gIGNoYXJ0c1RoZW1lTmV4dDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBkb3dubG9hZCBjaGFydFxuICBjaGFydHNEb3dubG9hZDoge1xuICAgIG5hbWU6ICdhcnJvdy1kb3dubG9hZCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG59O1xuZXhwb3J0IHR5cGUgSWNvbk1hcFR5cGUgPSB0eXBlb2YgaWNvbk1hcDtcbiJdfQ==","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyWaitModule } from '@skyux/indicators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/indicators\";\nexport class SkyAgGridLoadingComponent {\n agInit(_params) {\n // Do nothing.\n }\n refresh(_params) {\n // Do nothing.\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAgGridLoadingComponent, isStandalone: true, selector: \"sky-ag-grid-loading\", ngImport: i0, template: \"<sky-wait [isWaiting]=\\\"true\\\" />\\n\", dependencies: [{ kind: \"ngmodule\", type: SkyWaitModule }, { kind: \"component\", type: i1.λ14, selector: \"sky-wait\", inputs: [\"ariaLabel\", \"isWaiting\", \"isFullPage\", \"isNonBlocking\", \"screenReaderCompletedText\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridLoadingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-loading', imports: [SkyWaitModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<sky-wait [isWaiting]=\\\"true\\\" />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixNQUFNLENBQUMsT0FBOEI7UUFDMUMsY0FBYztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQThCO1FBQzNDLGNBQWM7SUFDaEIsQ0FBQzs4R0FQVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrRUNadEMscUNBQ0EsMkNET1ksYUFBYTs7MkZBSVoseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixXQUN0QixDQUFDLGFBQWEsQ0FBQyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5V2FpdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5UGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1sb2FkaW5nJyxcbiAgaW1wb3J0czogW1NreVdhaXRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAge1xuICBwdWJsaWMgYWdJbml0KF9wYXJhbXM6IElMb2FkaW5nT3ZlcmxheVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuXG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChfcGFyYW1zOiBJTG9hZGluZ092ZXJsYXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG59XG4iLCI8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJ0cnVlXCIgLz5cbiJdfQ==","/**\n * @internal\n */\nexport var SkyCellClass;\n(function (SkyCellClass) {\n SkyCellClass[\"Autocomplete\"] = \"sky-ag-grid-cell-autocomplete\";\n SkyCellClass[\"Currency\"] = \"sky-ag-grid-cell-currency\";\n SkyCellClass[\"Date\"] = \"sky-ag-grid-cell-date\";\n SkyCellClass[\"Editable\"] = \"sky-ag-grid-cell-editable\";\n SkyCellClass[\"Invalid\"] = \"sky-ag-grid-cell-invalid\";\n SkyCellClass[\"Lookup\"] = \"sky-ag-grid-cell-lookup\";\n SkyCellClass[\"Number\"] = \"sky-ag-grid-cell-number\";\n SkyCellClass[\"RightAligned\"] = \"sky-ag-grid-cell-right-aligned\";\n SkyCellClass[\"RowSelector\"] = \"sky-ag-grid-cell-row-selector\";\n SkyCellClass[\"Template\"] = \"sky-ag-grid-cell-template\";\n SkyCellClass[\"Text\"] = \"sky-ag-grid-cell-text\";\n SkyCellClass[\"Uneditable\"] = \"sky-ag-grid-cell-uneditable\";\n SkyCellClass[\"Validator\"] = \"sky-ag-grid-cell-validator\";\n})(SkyCellClass || (SkyCellClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxZQWNYO0FBZEQsV0FBWSxZQUFZO0lBQ3RCLDhEQUE4QyxDQUFBO0lBQzlDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLHNEQUFzQyxDQUFBO0lBQ3RDLG9EQUFvQyxDQUFBO0lBQ3BDLGtEQUFrQyxDQUFBO0lBQ2xDLGtEQUFrQyxDQUFBO0lBQ2xDLCtEQUErQyxDQUFBO0lBQy9DLDZEQUE2QyxDQUFBO0lBQzdDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLDBEQUEwQyxDQUFBO0lBQzFDLHdEQUF3QyxDQUFBO0FBQzFDLENBQUMsRUFkVyxZQUFZLEtBQVosWUFBWSxRQWN2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxDbGFzcyB7XG4gIEF1dG9jb21wbGV0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWF1dG9jb21wbGV0ZScsXG4gIEN1cnJlbmN5ID0gJ3NreS1hZy1ncmlkLWNlbGwtY3VycmVuY3knLFxuICBEYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtZGF0ZScsXG4gIEVkaXRhYmxlID0gJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGFibGUnLFxuICBJbnZhbGlkID0gJ3NreS1hZy1ncmlkLWNlbGwtaW52YWxpZCcsXG4gIExvb2t1cCA9ICdza3ktYWctZ3JpZC1jZWxsLWxvb2t1cCcsXG4gIE51bWJlciA9ICdza3ktYWctZ3JpZC1jZWxsLW51bWJlcicsXG4gIFJpZ2h0QWxpZ25lZCA9ICdza3ktYWctZ3JpZC1jZWxsLXJpZ2h0LWFsaWduZWQnLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRlbXBsYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtdGVtcGxhdGUnLFxuICBUZXh0ID0gJ3NreS1hZy1ncmlkLWNlbGwtdGV4dCcsXG4gIFVuZWRpdGFibGUgPSAnc2t5LWFnLWdyaWQtY2VsbC11bmVkaXRhYmxlJyxcbiAgVmFsaWRhdG9yID0gJ3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yJyxcbn1cbiJdfQ==","/**\n * @internal\n */\nexport var SkyHeaderClass;\n(function (SkyHeaderClass) {\n SkyHeaderClass[\"Resizable\"] = \"sky-ag-grid-header-resizable\";\n SkyHeaderClass[\"RightAligned\"] = \"sky-ag-grid-header-right-aligned\";\n})(SkyHeaderClass || (SkyHeaderClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4Qiw0REFBMEMsQ0FBQTtJQUMxQyxtRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZW51bSBTa3lIZWFkZXJDbGFzcyB7XG4gIFJlc2l6YWJsZSA9ICdza3ktYWctZ3JpZC1oZWFkZXItcmVzaXphYmxlJyxcbiAgUmlnaHRBbGlnbmVkID0gJ3NreS1hZy1ncmlkLWhlYWRlci1yaWdodC1hbGlnbmVkJyxcbn1cbiJdfQ==","import { CSP_NONCE, Injectable, Optional, inject, } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyDateService } from '@skyux/datetime';\nimport { Subject, takeUntil } from 'rxjs';\nimport { getSkyAgGridTheme } from '../../styles/ag-grid-theme';\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 { SkyAgGridHeaderRowSelectorComponent } from './header/header-row-selector/header-row-selector.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\nimport { 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 * as i0 from \"@angular/core\";\nimport * as i1 from \"./ag-grid-adapter.service\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"@skyux/i18n\";\nfunction autocompleteComparator(value1, value2) {\n if (value1 && value2) {\n if (value1.name > value2.name) {\n return 1;\n }\n if (value1.name < value2.name) {\n return -1;\n }\n return 0;\n }\n return value1 ? 1 : -1;\n}\nfunction autocompleteFormatter(params) {\n return params.value && params.value.name;\n}\nfunction dateComparator(date1, date2) {\n let date1value = date1;\n let date2value = date2;\n if (typeof date1value === 'string') {\n date1value = new Date(date1);\n }\n if (typeof date2value === 'string') {\n date2value = new Date(date2);\n }\n if (date1value && date2value) {\n if (date1value > date2value) {\n return 1;\n }\n if (date1value < date2value) {\n return -1;\n }\n return 0;\n }\n return date1value ? 1 : -1;\n}\nfunction getValidatorCellRendererSelector(component, fallback) {\n return (params) => {\n if (params.colDef &&\n typeof params.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function') {\n if (params.column?.isCellEditable(params.node) ||\n !params.colDef.cellRendererParams.skyComponentProperties.validator(params.value, params.data, params?.node?.rowIndex)) {\n return {\n component,\n params: {\n ...params.colDef.cellRendererParams,\n },\n };\n }\n }\n return fallback;\n };\n}\nlet rowNodeId = -1;\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 */\nexport class SkyAgGridService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #keyMap = new WeakMap();\n #ngUnsubscribe = new Subject();\n #currentTheme = undefined;\n #agGridAdapterService;\n #resources;\n #dateService = inject(SkyDateService);\n #logService = inject(SkyLogService);\n #cspNonce = inject(CSP_NONCE, { optional: true });\n constructor(agGridAdapterService, themeSvc, resources) {\n this.#agGridAdapterService = agGridAdapterService;\n this.#resources = resources;\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 ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\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 getGridOptions(args) {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(defaultGridOptions, args.gridOptions);\n return mergedGridOptions;\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 getEditableGridOptions(args) {\n const defaultGridOptions = this.#getDefaultEditableGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(defaultGridOptions, args.gridOptions);\n return mergedGridOptions;\n }\n #mergeGridOptions(defaultGridOptions, providedGridOptions) {\n if ('enableRangeSelection' in providedGridOptions) {\n if (providedGridOptions.enableRangeSelection) {\n providedGridOptions.cellSelection = true;\n }\n delete providedGridOptions.enableRangeSelection;\n }\n if (providedGridOptions.rowSelection === 'single' ||\n providedGridOptions.rowSelection === 'multiple') {\n const rowSelectionOptions = {\n single: { mode: 'singleRow', checkboxes: false },\n multiple: { mode: 'multiRow', checkboxes: false },\n };\n providedGridOptions.rowSelection =\n rowSelectionOptions[providedGridOptions.rowSelection];\n }\n if (providedGridOptions.rowSelection?.mode) {\n providedGridOptions.rowSelection = {\n ...(defaultGridOptions.rowSelection ?? {\n checkboxes: false,\n }),\n ...providedGridOptions.rowSelection,\n };\n }\n if ('enableCellChangeFlash' in providedGridOptions) {\n providedGridOptions.defaultColDef ??= {};\n providedGridOptions.defaultColDef.enableCellChangeFlash ??=\n !!providedGridOptions.enableCellChangeFlash;\n delete providedGridOptions.enableCellChangeFlash;\n }\n const mergedGridOptions = {\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) => {\n const defaultClasses = defaultGridOptions.getRowClass(params);\n const providedClasses = providedGridOptions.getRowClass?.(params) ?? [];\n const providedClassesArray = Array.isArray(providedClasses)\n ? providedClasses\n : [providedClasses];\n return [...defaultClasses, ...providedClassesArray];\n },\n onCellFocused: (event) => {\n defaultGridOptions.onCellFocused?.(event);\n providedGridOptions.onCellFocused?.(event);\n },\n };\n // Enable text selection unless explicitly disabled or conflicting with another setting.\n if (mergedGridOptions.enableCellTextSelection ||\n (!('enableCellTextSelection' in mergedGridOptions) &&\n !mergedGridOptions.cellSelection &&\n !mergedGridOptions.columnDefs?.some((col) => col.editable))) {\n mergedGridOptions.context ||= {};\n mergedGridOptions.enableCellTextSelection ??= true;\n mergedGridOptions.context.enableCellTextSelection =\n mergedGridOptions.enableCellTextSelection;\n }\n return mergedGridOptions;\n }\n #getDefaultGridOptions(args) {\n // cellClassRules can be functions or string expressions\n const cellClassRuleTrueExpression = () => true;\n function getEditableFn(isUneditable) {\n return function (params) {\n let isEditable = params.colDef.editable;\n if (typeof isEditable === 'function') {\n const column = params.api.getColumn(params.colDef);\n isEditable = isEditable({\n ...params,\n column,\n });\n }\n return isUneditable ? !isEditable : !!isEditable;\n };\n }\n const editableCellClassRules = {\n [SkyCellClass.Editable]: getEditableFn(),\n [SkyCellClass.Uneditable]: getEditableFn(true),\n };\n function getValidatorFn() {\n return function (param) {\n if (param.colDef &&\n typeof param.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function') {\n return !param.colDef.cellRendererParams.skyComponentProperties.validator(param.value, param.data, param.node?.rowIndex);\n }\n return false;\n };\n }\n const validatorCellClassRules = {\n [SkyCellClass.Invalid]: getValidatorFn(),\n [SkyCellClass.Validator]: cellClassRuleTrueExpression,\n };\n function getHeaderClass(...classNames) {\n return (params) => {\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.columnGroup?.isResizable() || params.column?.isResizable()) &&\n minWidth < maxWidth) {\n return [...classNames, SkyHeaderClass.Resizable];\n }\n return classNames;\n };\n }\n const defaultSkyGridOptions = {\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('sky-ag-grid-cell-renderer-currency-validator', { component: 'sky-ag-grid-cell-renderer-currency' }),\n cellEditor: SkyAgGridCellEditorCurrencyComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n minWidth: 185,\n sortingOrder: [null, 'desc', 'asc'],\n suppressKeyboardEvent: (params) => 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) => {\n try {\n return (this.#dateService.format(params.value, args.locale, args.dateFormat || 'shortDate') || '');\n }\n catch (err) {\n /* istanbul ignore else */\n if (err.stack) {\n this.#logService.error(`${err.stack}`);\n }\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(params.colDef?.cellRendererParams?.skyComponentProperties ??\n params.colDef?.cellEditorParams?.skyComponentProperties ??\n {});\n return (params.value || [])\n .map((value) => {\n return value[lookupProperties.descriptorProperty];\n })\n .filter((value) => 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('sky-ag-grid-cell-renderer-validator-tooltip'),\n cellEditor: SkyAgGridCellEditorNumberComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n sortingOrder: [null, 'desc', 'asc'],\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 headerComponent: SkyAgGridHeaderRowSelectorComponent,\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('sky-ag-grid-cell-renderer-validator-tooltip'),\n },\n [SkyCellType.Validator]: {\n cellClassRules: {\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n },\n },\n defaultColDef: {\n cellClassRules: editableCellClassRules,\n headerClass: getHeaderClass(),\n headerComponent: SkyAgGridHeaderComponent,\n minWidth: 100,\n suppressHeaderKeyboardEvent: (keypress) => keypress.event.code === 'Tab',\n suppressKeyboardEvent: (keypress) => 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': SkyAgGridCellRendererCurrencyComponent,\n 'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,\n 'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent,\n },\n focusGridInnerElement: (params) => {\n const lastFocusedCell = params.context?.['lastFocusedCell'];\n if (lastFocusedCell) {\n if (lastFocusedCell.rowIndex !== null) {\n params.api.setFocusedCell(lastFocusedCell.rowIndex, 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);\n },\n getRowClass: (params) => {\n if (params.node.id) {\n return [`sky-ag-grid-row-${params.node.id}`];\n }\n else {\n return [];\n }\n },\n icons: Object.fromEntries(Object.keys(iconMap).map((iconKey) => [\n iconKey,\n this.#getIconTemplate(iconKey),\n ])),\n loadingOverlayComponent: SkyAgGridLoadingComponent,\n onCellFocused: (event) => this.#onCellFocused(event),\n rowModelType: 'clientSide',\n rowSelection: {\n mode: 'multiRow',\n enableClickSelection: false,\n enableSelectionWithoutKeys: true,\n checkboxes: false,\n headerCheckbox: false,\n },\n singleClickEdit: true,\n styleNonce: this.#cspNonce ?? undefined,\n suppressDragLeaveHidesColumns: true,\n theme: getSkyAgGridTheme('data-grid'),\n };\n const columnTypes = defaultSkyGridOptions.columnTypes;\n columnTypes[SkyCellType.CurrencyValidator] = {\n ...columnTypes[SkyCellType.Currency],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value) => {\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[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;\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) => {\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[SkyCellType.NumberValidator].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 return defaultSkyGridOptions;\n }\n #onCellFocused(event) {\n const shouldFocus = this.#shouldFocusChildren(event);\n if (shouldFocus) {\n const currentElement = this.#agGridAdapterService.getFocusedElement();\n this.#agGridAdapterService.focusOnFocusableChildren(currentElement);\n }\n }\n #shouldFocusChildren(event) {\n let shouldFocus = true;\n // The API says the column can be string or null, but should be an object.\n shouldFocus &&= typeof event.column === 'object';\n // Row index can be number or null.\n const rowNode = Number.isInteger(event.rowIndex) &&\n event.api.getDisplayedRowAtIndex(event.rowIndex);\n shouldFocus &&= !!rowNode;\n // Do not change focus if the cell is a row drag or dnd source.\n shouldFocus &&= !event.column.isRowDrag(rowNode);\n shouldFocus &&= !event.column.isDndSource(rowNode);\n return shouldFocus;\n }\n #getDefaultEditableGridOptions(args) {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n defaultGridOptions.rowSelection = undefined;\n defaultGridOptions.theme = getSkyAgGridTheme('data-entry-grid');\n return defaultGridOptions;\n }\n #getIconTemplate(iconKey) {\n return () => {\n const iconInfo = iconMap[iconKey];\n return `<svg height=\"16\" width=\"16\"><use xlink:href=\"#sky-i-${iconInfo.name}-${iconInfo.size}-solid\"></use></svg>`;\n };\n }\n #suppressTab(params) {\n if (params.event.code === 'Tab') {\n if (params.editing) {\n const currentlyFocusedEl = 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(currentlyFocusedEl, 'ag-cell');\n const popupEl = this.#agGridAdapterService.getElementOrParentWithClass(currentlyFocusedEl, 'ag-popup-editor');\n const parentEl = cellEl || popupEl;\n const nextFocusableElementInCell = this.#agGridAdapterService.getNextFocusableElement(currentlyFocusedEl, parentEl, params.event.shiftKey);\n return !!nextFocusableElementInCell;\n }\n return true;\n }\n return false;\n }\n #suppressEnter(params) {\n if (params.event.code === 'Enter') {\n return params.editing;\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridService, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i2.SkyThemeService, optional: true }, { token: i3.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAgGridService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyAgGridAdapterService }, { type: i2.SkyThemeService, decorators: [{\n type: Optional\n }] }, { type: i3.SkyLibResourcesService, decorators: [{\n type: Optional\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFzQmpELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzFILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3JKLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzVILE9BQU8sRUFB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LFFBQVEsQ0FDdEIsQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQW1DO1FBQ2hELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBaGxCVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDU1BfTk9OQ0UsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5RGF0ZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIEFnQ29sdW1uLFxuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIENlbGxSZW5kZXJlclNlbGVjdG9yRnVuYyxcbiAgQ2VsbFJlbmRlcmVyU2VsZWN0b3JSZXN1bHQsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93Tm9kZSxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0U2t5QWdHcmlkVGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvYWctZ3JpZC10aGVtZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4vYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUFnR3JpZExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbENsYXNzIH0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuaW1wb3J0IHsgU2t5SGVhZGVyQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBMYXN0Rm9jdXNlZENlbGwgfSBmcm9tICcuL3R5cGVzL2xhc3QtZm9jdXNlZC5jZWxsJztcbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IoXG4gIHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSxcbiAgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9LFxuKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IERhdGUgfCBzdHJpbmcsIGRhdGUyOiBEYXRlIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gIGNvbXBvbmVudDogc3RyaW5nLFxuICBmYWxsYmFjaz86IENlbGxSZW5kZXJlclNlbGVjdG9yUmVzdWx0LFxuKTogQ2VsbFJlbmRlcmVyU2VsZWN0b3JGdW5jIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zLmNvbHVtbj8uaXNDZWxsRWRpdGFibGUocGFyYW1zLm5vZGUpIHx8XG4gICAgICAgICFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgcGFyYW1zPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gLTE7XG5cbi8qKlxuICogYFNreUFnR3JpZFNlcnZpY2VgIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IEFHIEdyaWQgYGdyaWRPcHRpb25zYCB0byBlbnN1cmUgZ3JpZHMgbWF0Y2ggU0tZIFVYIGZ1bmN0aW9uYWxpdHkuIFRoZSBgZ3JpZE9wdGlvbnNgIGNhbiBiZSBvdmVycmlkZGVuLCBhbmQgaW5jbHVkZSByZWdpc3RlcmVkIFNLWSBVWCBjb2x1bW4gdHlwZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgI2tleU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgc3RyaW5nPigpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICNyZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICNkYXRlU2VydmljZSA9IGluamVjdChTa3lEYXRlU2VydmljZSk7XG4gICNsb2dTZXJ2aWNlID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjY3NwTm9uY2UgPSBpbmplY3QoQ1NQX05PTkNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZSA9IGFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIGVkaXRvcnMgcmVnaXN0ZXJlZCBmb3IgZWRpdGFibGUgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSxcbiAgICBwcm92aWRlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyxcbiAgKTogR3JpZE9wdGlvbnMge1xuICAgIGlmICgnZW5hYmxlUmFuZ2VTZWxlY3Rpb24nIGluIHByb3ZpZGVkR3JpZE9wdGlvbnMpIHtcbiAgICAgIGlmIChwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZVJhbmdlU2VsZWN0aW9uKSB7XG4gICAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBkZWxldGUgcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdzaW5nbGUnIHx8XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9PT0gJ211bHRpcGxlJ1xuICAgICkge1xuICAgICAgY29uc3Qgcm93U2VsZWN0aW9uT3B0aW9uczogUmVjb3JkPHN0cmluZywgUm93U2VsZWN0aW9uT3B0aW9ucz4gPSB7XG4gICAgICAgIHNpbmdsZTogeyBtb2RlOiAnc2luZ2xlUm93JywgY2hlY2tib3hlczogZmFsc2UgfSxcbiAgICAgICAgbXVsdGlwbGU6IHsgbW9kZTogJ211bHRpUm93JywgY2hlY2tib3hlczogZmFsc2UgfSxcbiAgICAgIH07XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9XG4gICAgICAgIHJvd1NlbGVjdGlvbk9wdGlvbnNbcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb25dO1xuICAgIH1cbiAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24/Lm1vZGUpIHtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xuICAgICAgICAuLi4oKGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gYXMgUm93U2VsZWN0aW9uT3B0aW9ucykgPz8ge1xuICAgICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24sXG4gICAgICB9IGFzIFJvd1NlbGVjdGlvbk9wdGlvbnM7XG4gICAgfVxuICAgIGlmICgnZW5hYmxlQ2VsbENoYW5nZUZsYXNoJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYgPz89IHt9O1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaCA/Pz1cbiAgICAgICAgISFwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaDtcbiAgICAgIGRlbGV0ZSBwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaDtcbiAgICB9XG5cbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29tcG9uZW50cyBsYXN0IHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGNvbXBvbmVudCB0eXBlcy5cbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29udGV4dDoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29udGV4dCxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb250ZXh0LFxuICAgICAgfSxcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICAgIC8vIGFwcGx5IGRlZmF1bHQgc2Vjb25kIHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGRlZmF1bHQgY29sdW1uIHR5cGVzXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDbGFzczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmhlYWRlckNsYXNzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWY/LmhlYWRlckNsYXNzLFxuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zKTogc3RyaW5nW10gPT4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2xhc3NlcyA9IGRlZmF1bHRHcmlkT3B0aW9ucy5nZXRSb3dDbGFzcyhcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICkgYXMgc3RyaW5nW107XG4gICAgICAgIGNvbnN0IHByb3ZpZGVkQ2xhc3NlcyA9IHByb3ZpZGVkR3JpZE9wdGlvbnMuZ2V0Um93Q2xhc3M/LihwYXJhbXMpID8/IFtdO1xuICAgICAgICBjb25zdCBwcm92aWRlZENsYXNzZXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvdmlkZWRDbGFzc2VzKVxuICAgICAgICAgID8gcHJvdmlkZWRDbGFzc2VzXG4gICAgICAgICAgOiBbcHJvdmlkZWRDbGFzc2VzXTtcbiAgICAgICAgcmV0dXJuIFsuLi5kZWZhdWx0Q2xhc3NlcywgLi4ucHJvdmlkZWRDbGFzc2VzQXJyYXldO1xuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkZWZhdWx0R3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5vbkNlbGxGb2N1c2VkPy4oZXZlbnQpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gRW5hYmxlIHRleHQgc2VsZWN0aW9uIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkIG9yIGNvbmZsaWN0aW5nIHdpdGggYW5vdGhlciBzZXR0aW5nLlxuICAgIGlmIChcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIHx8XG4gICAgICAoISgnZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24nIGluIG1lcmdlZEdyaWRPcHRpb25zKSAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY29sdW1uRGVmcz8uc29tZSgoY29sOiBDb2xEZWYpID0+IGNvbC5lZGl0YWJsZSkpXG4gICAgKSB7XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0IHx8PSB7fTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uID8/PSB0cnVlO1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dC5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA9XG4gICAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgLy8gY2VsbENsYXNzUnVsZXMgY2FuIGJlIGZ1bmN0aW9ucyBvciBzdHJpbmcgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihcbiAgICAgIGlzVW5lZGl0YWJsZT86IGJvb2xlYW4sXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5hcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogISFpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtLmNvbERlZiAmJlxuICAgICAgICAgIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgICBwYXJhbS52YWx1ZSxcbiAgICAgICAgICAgIHBhcmFtLmRhdGEsXG4gICAgICAgICAgICBwYXJhbS5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgICAgW1NreUNlbGxDbGFzcy5WYWxpZGF0b3JdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldEhlYWRlckNsYXNzKFxuICAgICAgLi4uY2xhc3NOYW1lczogc3RyaW5nW11cbiAgICApOiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcykgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIChwYXJhbXM6IEhlYWRlckNsYXNzUGFyYW1zKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgPT4ge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHBhcmFtcy5jb2x1bW4/LmdldE1pbldpZHRoKCkgPz8gMDtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNYXhXaWR0aCgpID8/IEluZmluaXR5O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHBhcmFtcy5jb2x1bW5Hcm91cD8uaXNSZXNpemFibGUoKSB8fCBwYXJhbXMuY29sdW1uPy5pc1Jlc2l6YWJsZSgpKSAmJlxuICAgICAgICAgIG1pbldpZHRoIDwgbWF4V2lkdGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5jbGFzc05hbWVzLCBTa3lIZWFkZXJDbGFzcy5SZXNpemFibGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWVzO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zICYge1xuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgICB9ID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICAgIHNvcnRpbmdPcmRlcjogW251bGwsICdkZXNjJywgJ2FzYyddLFxuICAgICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIHRoaXMuI3N1cHByZXNzRW50ZXIocGFyYW1zKSB8fCB0aGlzLiNzdXBwcmVzc1RhYihwYXJhbXMpLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuRGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5EYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGRhdGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDE4MCA6IDE2MCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy4jZGF0ZVNlcnZpY2UuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgYXJncy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICBhcmdzLmRhdGVGb3JtYXQgfHwgJ3Nob3J0RGF0ZScsXG4gICAgICAgICAgICAgICAgKSB8fCAnJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmICgoZXJyIGFzIEVycm9yKS5zdGFjaykge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7KGVyciBhcyBFcnJvcikuc3RhY2t9YCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jbG9nU2VydmljZS5lcnJvcihgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Mb29rdXBdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTG9va3VwXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvb2t1cFByb3BlcnRpZXMgPSBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhcbiAgICAgICAgICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID8/XG4gICAgICAgICAgICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbEVkaXRvclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAocGFyYW1zLnZhbHVlIHx8IFtdKVxuICAgICAgICAgICAgICAubWFwKCh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVbbG9va3VwUHJvcGVydGllcy5kZXNjcmlwdG9yUHJvcGVydHkgYXMgc3RyaW5nXTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IHVua25vd24pID0+IHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAuam9pbignOyAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5OdW1iZXJdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTnVtYmVyXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgICBzb3J0aW5nT3JkZXI6IFtudWxsLCAnZGVzYycsICdhc2MnXSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJpZ2h0QWxpZ25lZF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5SaWdodEFsaWduZWRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICdSb3cgc2VsZWN0aW9uJyxcbiAgICAgICAgICBtaW5XaWR0aDogNTUsXG4gICAgICAgICAgbWF4V2lkdGg6IDU1LFxuICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRlbXBsYXRlXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRlbXBsYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRleHRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVGV4dF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoKSxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIG1pbldpZHRoOiAxMDAsXG4gICAgICAgIHN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudDogKFxuICAgICAgICAgIGtleXByZXNzOiBTdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnRQYXJhbXMsXG4gICAgICAgICkgPT4ga2V5cHJlc3MuZXZlbnQuY29kZSA9PT0gJ1RhYicsXG4gICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKGtleXByZXNzOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpID0+XG4gICAgICAgICAgdGhpcy4jc3VwcHJlc3NUYWIoa2V5cHJlc3MpLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICBoZWFkZXJHcm91cENvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZG9tTGF5b3V0OiAnYXV0b0hlaWdodCcsXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCc6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBmb2N1c0dyaWRJbm5lckVsZW1lbnQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzZWRDZWxsID0gcGFyYW1zLmNvbnRleHQ/LlsnbGFzdEZvY3VzZWRDZWxsJ10gYXNcbiAgICAgICAgICB8IExhc3RGb2N1c2VkQ2VsbFxuICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAobGFzdEZvY3VzZWRDZWxsKSB7XG4gICAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyYW1zLmFwaS5zZXRGb2N1c2VkQ2VsbChcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLnJvd0luZGV4LFxuICAgICAgICAgICAgICBsYXN0Rm9jdXNlZENlbGwuY29sdW1uLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLmFwaS5zZXRGb2N1c2VkSGVhZGVyKGxhc3RGb2N1c2VkQ2VsbC5jb2x1bW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZ2V0Um93SWQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YUlkID0gcGFyYW1zLmRhdGEuaWQ7XG4gICAgICAgIGlmIChkYXRhSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbXMuZGF0YS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy4ja2V5TWFwLmhhcyhwYXJhbXMuZGF0YSkpIHtcbiAgICAgICAgICB0aGlzLiNrZXlNYXAuc2V0KHBhcmFtcy5kYXRhLCBgJHtyb3dOb2RlSWQtLX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy4ja2V5TWFwLmdldChwYXJhbXMuZGF0YSkgYXMgc3RyaW5nO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgaWYgKHBhcmFtcy5ub2RlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIFtgc2t5LWFnLWdyaWQtcm93LSR7cGFyYW1zLm5vZGUuaWR9YF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaWNvbnM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmtleXMoaWNvbk1hcCkubWFwKChpY29uS2V5KSA9PiBbXG4gICAgICAgICAgaWNvbktleSxcbiAgICAgICAgICB0aGlzLiNnZXRJY29uVGVtcGxhdGUoaWNvbktleSBhcyBrZXlvZiBJY29uTWFwVHlwZSksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50OiBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50LFxuICAgICAgb25DZWxsRm9jdXNlZDogKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KSA9PiB0aGlzLiNvbkNlbGxGb2N1c2VkKGV2ZW50KSxcbiAgICAgIHJvd01vZGVsVHlwZTogJ2NsaWVudFNpZGUnLFxuICAgICAgcm93U2VsZWN0aW9uOiB7XG4gICAgICAgIG1vZGU6ICdtdWx0aVJvdycsXG4gICAgICAgIGVuYWJsZUNsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlU2VsZWN0aW9uV2l0aG91dEtleXM6IHRydWUsXG4gICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICBoZWFkZXJDaGVja2JveDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc3R5bGVOb25jZTogdGhpcy4jY3NwTm9uY2UgPz8gdW5kZWZpbmVkLFxuICAgICAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnM6IHRydWUsXG4gICAgICB0aGVtZTogZ2V0U2t5QWdHcmlkVGhlbWUoJ2RhdGEtZ3JpZCcpLFxuICAgIH07XG5cbiAgICBjb25zdCBjb2x1bW5UeXBlcyA9IGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyBhcyBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICBDb2xEZWZcbiAgICA+O1xuXG4gICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFgJHt2YWx1ZSB8fCAnJ31gLm1hdGNoKC9eW14wLTldKihcXGQrWywuXT8pK1xcZCpbXjAtOV0qJC8pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGN1cnJlbmN5JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jcmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNcbiAgICAgICAgLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9jb2x1bW5faGVhZGluZycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl0uaGVhZGVyTmFtZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgI29uQ2VsbEZvY3VzZWQoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGRGb2N1cyA9IHRoaXMuI3Nob3VsZEZvY3VzQ2hpbGRyZW4oZXZlbnQpO1xuICAgIGlmIChzaG91bGRGb2N1cykge1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAjc2hvdWxkRm9jdXNDaGlsZHJlbihldmVudDogQ2VsbEZvY3VzZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBzaG91bGRGb2N1cyA9IHRydWU7XG4gICAgLy8gVGhlIEFQSSBzYXlzIHRoZSBjb2x1bW4gY2FuIGJlIHN0cmluZyBvciBudWxsLCBidXQgc2hvdWxkIGJlIGFuIG9iamVjdC5cbiAgICBzaG91bGRGb2N1cyAmJj0gdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCc7XG4gICAgLy8gUm93IGluZGV4IGNhbiBiZSBudW1iZXIgb3IgbnVsbC5cbiAgICBjb25zdCByb3dOb2RlID1cbiAgICAgIE51bWJlci5pc0ludGVnZXIoZXZlbnQucm93SW5kZXgpICYmXG4gICAgICBldmVudC5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChldmVudC5yb3dJbmRleCBhcyBudW1iZXIpO1xuICAgIHNob3VsZEZvY3VzICYmPSAhIXJvd05vZGU7XG4gICAgLy8gRG8gbm90IGNoYW5nZSBmb2N1cyBpZiB0aGUgY2VsbCBpcyBhIHJvdyBkcmFnIG9yIGRuZCBzb3VyY2UuXG4gICAgc2hvdWxkRm9jdXMgJiY9ICEoZXZlbnQuY29sdW1uIGFzIEFnQ29sdW1uKS5pc1Jvd0RyYWcocm93Tm9kZSBhcyBSb3dOb2RlKTtcbiAgICBzaG91bGRGb2N1cyAmJj0gIShldmVudC5jb2x1bW4gYXMgQWdDb2x1bW4pLmlzRG5kU291cmNlKHJvd05vZGUgYXMgUm93Tm9kZSk7XG4gICAgcmV0dXJuIHNob3VsZEZvY3VzO1xuICB9XG5cbiAgI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy50aGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWVudHJ5LWdyaWQnKTtcbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI2dldEljb25UZW1wbGF0ZShpY29uS2V5OiBrZXlvZiBJY29uTWFwVHlwZSk6ICgpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IGljb25JbmZvID0gaWNvbk1hcFtpY29uS2V5XTtcbiAgICAgIHJldHVybiBgPHN2ZyBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTZcIj48dXNlIHhsaW5rOmhyZWY9XCIjc2t5LWktJHtpY29uSW5mby5uYW1lfS0ke2ljb25JbmZvLnNpemV9LXNvbGlkXCI+PC91c2U+PC9zdmc+YDtcbiAgICB9O1xuICB9XG5cbiAgI3N1cHByZXNzVGFiKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgaWYgKHBhcmFtcy5lZGl0aW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRseUZvY3VzZWRFbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctY2VsbCcsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBvcHVwRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1wb3B1cC1lZGl0b3InLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9IGNlbGxFbCB8fCBwb3B1cEVsO1xuXG4gICAgICAgIGNvbnN0IG5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAgIHBhcmVudEVsLFxuICAgICAgICAgICAgcGFyYW1zLmV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNzdXBwcmVzc0VudGVyKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICByZXR1cm4gcGFyYW1zLmVkaXRpbmc7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","// 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 { 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 { SkyHeaderClass } from './lib/modules/ag-grid/types/header-class';\nexport { SkyAgGridHeaderGroupInfo } from './lib/modules/ag-grid/types/header-group-info';\nexport { SkyAgGridHeaderInfo } from './lib/modules/ag-grid/types/header-info';\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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQU96RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFMUcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVE5RSwwRkFBMEY7QUFDMUYsMkVBQTJFO0FBQzNFLE9BQU8sRUFBRSxvQ0FBb0MsSUFBSSxHQUFHLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLElBQUksRUFBRSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkcsT0FBTyxFQUFFLDJCQUEyQixJQUFJLEdBQUcsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxHQUFHLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0NBQXdDLElBQUksRUFBRSxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7QUFDaEssT0FBTyxFQUFFLG9DQUFvQyxJQUFJLEVBQUUsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BKLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUMxSixPQUFPLEVBQUUsa0NBQWtDLElBQUksR0FBRyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDL0ksT0FBTyxFQUFFLGtDQUFrQyxJQUFJLEVBQUUsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQzlJLE9BQU8sRUFBRSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUN4SSxPQUFPLEVBQUUsK0NBQStDLElBQUksRUFBRSxFQUFFLE1BQU0sd0dBQXdHLENBQUM7QUFDL0ssT0FBTyxFQUFFLHNDQUFzQyxJQUFJLEVBQUUsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzVKLE9BQU8sRUFBRSxvQ0FBb0MsSUFBSSxHQUFHLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUN2SixPQUFPLEVBQUUseUNBQXlDLElBQUksRUFBRSxFQUFFLE1BQU0sc0dBQXNHLENBQUM7QUFDdkssT0FBTyxFQUFFLDhDQUE4QyxJQUFJLEdBQUcsRUFBRSxNQUFNLGdIQUFnSCxDQUFDO0FBQ3ZMLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxHQUFHLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUM5SSxPQUFPLEVBQUUsNkJBQTZCLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0csT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IGFueSB0eXBlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcm9vdC5cbmV4cG9ydCB7IFNreUFnR3JpZE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lBZ0dyaWRTZXJ2aWNlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQuc2VydmljZSc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jYW5jZWwtYXJncyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlybS1hcmdzJztcbmV4cG9ydCB7XG4gIFNreUFnR3JpZEF1dG9jb21wbGV0ZVByb3BlcnRpZXMsXG4gIFNreUF1dG9jb21wbGV0ZVByb3BlcnRpZXMsXG59IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9hdXRvY29tcGxldGUtcHJvcGVydGllcyc7XG5leHBvcnQgeyBTa3lDZWxsQ2xhc3MgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1jbGFzcyc7XG5leHBvcnQgeyBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuZXhwb3J0IHsgU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci1wYXJhbXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuZXhwb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci1sb29rdXAtcGFyYW1zJztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5leHBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLXR5cGUnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2N1cnJlbmN5LXByb3BlcnRpZXMnO1xuZXhwb3J0IHtcbiAgU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMsXG4gIFNreURhdGVwaWNrZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvZGF0ZXBpY2tlci1wcm9wZXJ0aWVzJztcbmV4cG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWdyb3VwLWluZm8nO1xuZXhwb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWdyb3VwLXBhcmFtcyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJJbmZvIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2hlYWRlci1pbmZvJztcbmV4cG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItcGFyYW1zJztcbmV4cG9ydCB7IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvbG9va3VwLXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkTnVtYmVyUHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9udW1iZXItcHJvcGVydGllcyc7XG5leHBvcnQgeyBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRUZXh0UHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy90ZXh0LXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkVmFsaWRhdG9yUHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy92YWxpZGF0b3ItcHJvcGVydGllcyc7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSBhcyDOuzE0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtZGF0YS1tYW5hZ2VyLWFkYXB0ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUgYXMgzrsxMyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgYXMgzrsxMiB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgYXMgzrsxIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQgYXMgzrszIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgYXMgzrs1IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQgYXMgzrsxNSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbG9va3VwL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCBhcyDOuzQgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCBhcyDOuzggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQgYXMgzrs5IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IGFzIM67MTYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IGFzIM67NyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCBhcyDOuzEwIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgYXMgzrsxMSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IGFzIM67MTggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50IGFzIM67MTcgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYWctZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9za3l1eC1hZy1ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["takeUntil","i1","filter","i2","i3","i4","i1.SkyAgGridAdapterService"],"mappings":"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"}