@skyux/ag-grid 13.11.1 → 13.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
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.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsbUNBQW1DLEVBQUU7WUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUNyRSw2Q0FBNkMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHlDQUF5QyxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCx1Q0FBdUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsK0NBQStDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGtEQUFrRCxFQUFFO1lBQ2xELE9BQU8sRUFBRSx1QkFBdUI7U0FDakM7UUFDRCxvREFBb0QsRUFBRTtZQUNwRCxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDOUQsMkNBQTJDLEVBQUU7WUFDM0MsT0FBTyxFQUFFLG1DQUFtQztTQUM3QztRQUNELDhEQUE4RCxFQUFFO1lBQzlELE9BQU8sRUFBRSxzQ0FBc0M7U0FDaEQ7UUFDRCwrREFBK0QsRUFBRTtZQUMvRCxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QscUVBQXFFLEVBQUU7WUFDckUsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGlEQUFpRCxFQUFFO1lBQ2pELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCxtREFBbUQsRUFBRTtZQUNuRCxPQUFPLEVBQUUsMkJBQTJCO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsc0NBQXNDO1NBQ2hEO1FBQ0QsdUNBQXVDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELDZDQUE2QyxFQUFFO1lBQzdDLE9BQU8sRUFBRSx1Q0FBdUM7U0FDakQ7UUFDRCw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLHlDQUF5QztTQUNuRDtRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSx3Q0FBd0M7U0FDbEQ7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUscURBQXFEO1NBQy9EO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRTtRQUNyRSwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUseUNBQXlDO1NBQ25EO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLHVEQUF1RDtTQUNqRTtRQUNELCtEQUErRCxFQUFFO1lBQy9ELE9BQU8sRUFBRSx5REFBeUQ7U0FDbkU7UUFDRCxxRUFBcUUsRUFBRTtZQUNyRSxPQUFPLEVBQUUsOENBQThDO1NBQ3hEO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSxtQ0FBbUM7U0FDN0M7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCOytHQUF4Qix3QkFBd0I7Z0hBQXhCLHdCQUF3QixZQUZ6QixhQUFhO2dIQUVaLHdCQUF3QixZQUZ6QixhQUFhOzs0RkFFWix3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1hZy1ncmlkJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSb3cgc2VsZWN0b3IgZm9yIHJvdyB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2NvbHVtbl9oZWFkaW5nOiB7IG1lc3NhZ2U6ICdSb3cgc2VsZWN0aW9uJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGRhdGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfaGludF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIG51bWJlciB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfdGV4dF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgdGV4dCB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBhdXRvY29tcGxldGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnRW50ZXIgYSB2YWxpZCBudW1iZXIuJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIGN1cnJlbmN5LicsXG4gICAgfSxcbiAgICBza3l1eF9sb29rdXBfdG9rZW5zX3N1bW1hcnk6IHsgbWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgY3VycmVuY3kgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfYXNjOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBjdXJyZW50bHkgYXNjZW5kaW5nJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1NvcnQgY29sdW1uIHswfSwgY3VycmVudGx5IGRlc2NlbmRpbmcnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBub3QgY3VycmVudGx5IHNvcnRlZCcsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRXhwYW5kIGNvbHVtbiBncm91cCB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQ29sbGFwc2UgY29sdW1uIGdyb3VwIHswfScsXG4gICAgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGV1ciBkZSBsaWduZSBwb3VyIGxhIGxpZ25lIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmc6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9uIGTigJl1bmUgbGlnbmUnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfZGF0ZXBpY2tlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRGF0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2hpbnRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1V0aWxpc2V6IGxlIGZvcm1hdCB7MH0uJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnTnVtw6lybyBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdUZXh0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1NhaXNpZSBhdXRvbWF0aXF1ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1biBudW3DqXJvIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1bmUgZGV2aXNlIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5OiB7IG1lc3NhZ2U6ICd7MH0gYXJ0aWNsZXMgc8OpbGVjdGlvbm7DqXMnIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0RldmlzZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgZMOpY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfbm90X3NvcnRlZDoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgbm9uIHRyacOpZScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQWdyYW5kaXIgbGUgZ3JvdXBlIGRlIGNvbG9ubmVzIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2NvbGxhcHNlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSw6lkdWlyZSBsZSBncm91cGUgZGUgY29sb25uZXMgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=","import { colorSchemeLight, themeQuartz, } from 'ag-grid-community';\nconst defaultsForAllThemes = {\n backgroundColor: 'var(--sky-override-ag-grid-background-color, var(--sky-color-background-row-base))',\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-comp-grid-cell-space-inset-left))',\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 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: 'var(--sky-override-ag-grid-checkbox-unchecked-background-color, var(--sky-color-background-input-base))',\n checkboxUncheckedBorderColor: `var(\n --sky-override-ag-grid-checkbox-unchecked-border-color,\n var(--sky-color-border-switch-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-comp-override-list-header-background-color, 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-comp-grid-cell-space-inset-top) + var(--sky-comp-grid-cell-space-inset-bottom))))',\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-override-ag-grid-odd-row-background-color, var(--sky-color-background-row-base))',\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-comp-grid-cell-space-inset-top) + var(--sky-comp-grid-cell-space-inset-bottom))))',\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvc3R5bGVzL2FnLWdyaWQtdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixXQUFXLEdBQ1osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixNQUFNLG9CQUFvQixHQUFnQztJQUN4RCxlQUFlLEVBQ2Isb0ZBQW9GO0lBQ3RGLFdBQVcsRUFDVCxpRkFBaUY7SUFDbkYsWUFBWSxFQUNWLHVFQUF1RTtJQUN6RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixxQkFBcUIsRUFDbkIsaUdBQWlHO0lBQ25HLGlCQUFpQixFQUNmLHlMQUF5TDtJQUMzTCwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSwyQkFBMkIsRUFBRTtJQUNoRSx5QkFBeUIsRUFDdkIsd0dBQXdHO0lBQzFHLG9DQUFvQyxFQUNsQyxzRkFBc0Y7SUFDeEYsZ0NBQWdDLEVBQzlCLHlHQUF5RztJQUMzRyw0QkFBNEIsRUFBRTs7O0lBRzVCO0lBQ0YseUJBQXlCLEVBQUU7UUFDekIsR0FBRyxFQUFFLGdjQUFnYztLQUN0YztJQUNELFVBQVUsRUFDUix5RUFBeUU7SUFDM0UsUUFBUSxFQUNOLG9FQUFvRTtJQUN0RSxlQUFlLEVBQ2IsNkVBQTZFO0lBQy9FLHFCQUFxQixFQUNuQixpR0FBaUc7SUFDbkcsa0JBQWtCLEVBQ2hCLDJNQUEyTTtJQUM3TSx3QkFBd0IsRUFBRSxNQUFNO0lBQ2hDLDZCQUE2QixFQUMzQiwwRkFBMEY7SUFDNUYsOEJBQThCLEVBQzVCLDBIQUEwSDtJQUM1SCw2QkFBNkIsRUFDM0IsbUZBQW1GO0lBQ3JGLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtJQUN2QyxZQUFZLEVBQ1YsME5BQTBOO0lBQzVOLGVBQWUsRUFDYixnUUFBZ1E7SUFDbFEsUUFBUSxFQUFFLEVBQUU7SUFDWiw0QkFBNEIsRUFBRSxhQUFhO0lBQzNDLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixZQUFZLEVBQ1YsMkZBQTJGO0lBQzdGLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUU7SUFDcEMscUJBQXFCLEVBQ25CLDRGQUE0RjtJQUM5Rix5QkFBeUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTtJQUNyRCxXQUFXLEVBQ1QsNEVBQTRFO0lBQzlFLHlCQUF5QixFQUN2QiwrRkFBK0Y7SUFDakcsU0FBUyxFQUNQLHlQQUF5UDtJQUMzUCxTQUFTLEVBQ1AsdU5BQXVOO0lBQ3pOLGFBQWEsRUFBRSxhQUFhO0lBQzVCLDBCQUEwQixFQUN4QiwyRkFBMkY7SUFDN0YsMktBQTJLO0lBQzNLLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUNQLHVFQUF1RTtJQUN6RSxzQkFBc0IsRUFDcEIsa0dBQWtHO0lBQ3BHLG1CQUFtQixFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsWUFBWSxFQUNWLDhIQUE4SDtJQUNoSSxXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQ1AsMktBQTJLO0lBQzdLLGVBQWUsRUFDYix3S0FBd0s7Q0FDM0ssQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsV0FBVztLQUNsQyxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQ3RCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztLQUMxQixVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVwQyxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FDekQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQXFDO0lBRXJDLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxhQUEyQyxFQUMzQyxhQUFzQjtJQUV0QixPQUFPLENBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUN0QyxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FDN0QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFFBQWlCLEVBQ2pCLGFBQTJDLEVBQzNDLGFBQXNCO0lBRXRCLElBQUksS0FBSyxHQUFHLGdCQUFnQixRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQztJQUMxRSxJQUFJLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNDLEtBQUssSUFBSSxVQUFVLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxLQUFLLElBQUksVUFBVSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssSUFBSSxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sS0FBMkIsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFRoZW1lLFxuICBUaGVtZURlZmF1bHRQYXJhbXMsXG4gIGNvbG9yU2NoZW1lTGlnaHQsXG4gIHRoZW1lUXVhcnR6LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmNvbnN0IGRlZmF1bHRzRm9yQWxsVGhlbWVzOiBQYXJ0aWFsPFRoZW1lRGVmYXVsdFBhcmFtcz4gPSB7XG4gIGJhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYmFja2dyb3VuZC1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJhY2tncm91bmQtcm93LWJhc2UpKScsXG4gIGJvcmRlckNvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItY29sb3IsIHZhcigtLXNreS1jb2xvci1ib3JkZXItc2VwYXJhdG9yLXJvdykpJyxcbiAgYm9yZGVyUmFkaXVzOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItcmFkaXVzLCB2YXIoLS1za3ktYm9yZGVyLXJhZGl1cy1zKSknLFxuICBjYXJkU2hhZG93OiAnbm9uZScsXG4gIGNlbGxIb3Jpem9udGFsUGFkZGluZzpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcsIHZhcigtLXNreS1jb21wLWdyaWQtY2VsbC1zcGFjZS1pbnNldC1sZWZ0KSknLFxuICBjZWxsRWRpdGluZ0JvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2VsbC1mb2N1cy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtaW5wdXQtZm9jdXMpKSBzb2xpZCB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jZWxsLWZvY3VzLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1pbnB1dC1mb2N1cykpJyxcbiAgY2hlY2tib3hDaGVja2VkQm9yZGVyQ29sb3I6IHsgcmVmOiAnY2hlY2tib3hDaGVja2VkU2hhcGVDb2xvcicgfSxcbiAgY2hlY2tib3hDaGVja2VkU2hhcGVDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLXN3aXRjaC1jaGVja2VkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItaWNvbi1pbnZlcnNlLCB2YXIoLS1za3ktdGV4dC1jb2xvci1kZWZhdWx0KSkpJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtc3dpdGNoLWNoZWNrZWQtY29sb3IsIHZhcigtLXNreS1jb2xvci1pY29uLWludmVyc2UsIHRyYW5zcGFyZW50KSknLFxuICBjaGVja2JveFVuY2hlY2tlZEJhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2hlY2tib3gtdW5jaGVja2VkLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLWlucHV0LWJhc2UpKScsXG4gIGNoZWNrYm94VW5jaGVja2VkQm9yZGVyQ29sb3I6IGB2YXIoXG4gICAgLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jaGVja2JveC11bmNoZWNrZWQtYm9yZGVyLWNvbG9yLFxuICAgIHZhcigtLXNreS1jb2xvci1ib3JkZXItc3dpdGNoLWJhc2UpXG4gIClgLFxuICBjaGVja2JveENoZWNrZWRTaGFwZUltYWdlOiB7XG4gICAgc3ZnOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMy45ODg0IDMuNTQ3NTZDMTMuNjI0NCAzLjE2Njg1IDEzLjAxNjQgMy4xNDkxIDEyLjYzMDIgMy41MDc5Mkw1LjYyNjgyIDEwLjAxNTdMMy42NDUxNyA4LjAzMjgyQzMuMjcyNzUgNy42NjAxNiAyLjY2NDQzIDcuNjU1NzIgMi4yODY0NiA4LjAyMjlDMS45MDg0OCA4LjM5MDA3IDEuOTAzOTcgOC45ODk4MyAyLjI3NjQgOS4zNjI0OEw0Ljg1MTYyIDExLjkzOTNDNS4yNTQ4NyAxMi4zNDI4IDUuOTExMjEgMTIuMzU0OCA2LjMyOTMyIDExLjk2NjNMMTMuOTQ4MiA0Ljg4NjU5QzE0LjMzNDMgNC41Mjc3NyAxNC4zNTIzIDMuOTI4MjcgMTMuOTg4NCAzLjU0NzU2WlwiIGZpbGw9XCIjMjEyMTIxXCIvPjwvc3ZnPmAsXG4gIH0sXG4gIGZvbnRGYW1pbHk6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWZvbnQtZmFtaWx5LCB2YXIoLS1za3ktZm9udC1mYW1pbHktcHJpbWFyeSkpJyxcbiAgZm9udFNpemU6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWZvbnQtc2l6ZSwgdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKScsXG4gIGZvcmVncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtZm9yZWdyb3VuZC1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLXRleHQtZGVmYXVsdCkpJyxcbiAgaGVhZGVyQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktY29tcC1vdmVycmlkZS1saXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1za3ktYmFja2dyb3VuZC1jb2xvci1wYWdlLWRlZmF1bHQpKScsXG4gIGhlYWRlckNvbHVtbkJvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLXdpZHRoLCB2YXIoLS1za3ktYm9yZGVyLXdpZHRoLWRpdmlkZXIpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItc3R5bGUsIHZhcigtLXNreS1ib3JkZXItc3R5bGUtZGl2aWRlcikpIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpJyxcbiAgaGVhZGVyQ29sdW1uQm9yZGVySGVpZ2h0OiAnMTAwJScsXG4gIGhlYWRlckNvbHVtblJlc2l6ZUhhbmRsZUNvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jb2x1bW4tZGl2aWRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1jb2x1bW5fZGl2aWRlcikpJyxcbiAgaGVhZGVyQ29sdW1uUmVzaXplSGFuZGxlSGVpZ2h0OlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1oZWFkZXItcmVzaXplLWhlaWdodCwgY2FsYyh2YXIoLS1za3ktZm9udC1saW5lX2hlaWdodC1ib2R5LW0pICogdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKSknLFxuICBoZWFkZXJDb2x1bW5SZXNpemVIYW5kbGVXaWR0aDpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtaGVhZGVyLWRpdmlkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtZGl2aWRlcikpJyxcbiAgaGVhZGVyRm9udEZhbWlseTogeyByZWY6ICdmb250RmFtaWx5JyB9LFxuICBoZWFkZXJIZWlnaHQ6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWhlYWRlci1oZWlnaHQsIGNhbGMoY2FsYyh2YXIoLS1za3ktZm9udC1saW5lX2hlaWdodC1ib2R5LW0pICogdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKSArIGNhbGModmFyKC0tc2t5LWNvbXAtZ3JpZC1jZWxsLXNwYWNlLWluc2V0LXRvcCkgKyB2YXIoLS1za3ktY29tcC1ncmlkLWNlbGwtc3BhY2UtaW5zZXQtYm90dG9tKSkpKScsXG4gIGhlYWRlclJvd0JvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LWJvcmRlci13aWR0aCwgdmFyKC0tc2t5LWJvcmRlci13aWR0aC1zZXBhcmF0b3Itcm93KSkgdmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtaGVhZGVyLXJvdy1ib3JkZXItc3R5bGUsIHZhcigtLXNreS1ib3JkZXItc3R5bGUtc2VwYXJhdG9yLXJvdykpIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBpY29uU2l6ZTogMTIsXG4gIGlucHV0RGlzYWJsZWRCYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gIGlucHV0Rm9jdXNCb3JkZXI6ICd0cmFuc3BhcmVudCcsXG4gIGlucHV0Rm9jdXNTaGFkb3c6ICdub25lJyxcbiAgaW52YWxpZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1pbnZhbGlkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYmFja2dyb3VuZC1hY3Rpb24tZGFuZ2VyLWJhc2UpKScsXG4gIGxpc3RJdGVtSGVpZ2h0OiB7IHJlZjogJ3Jvd0hlaWdodCcgfSxcbiAgb2RkUm93QmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1vZGQtcm93LWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLXJvdy1iYXNlKSknLFxuICBwaWNrZXJMaXN0QmFja2dyb3VuZENvbG9yOiB7IHJlZjogJ2JhY2tncm91bmRDb2xvcicgfSxcbiAgcG9wdXBTaGFkb3c6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXBvcHVwLXNoYWRvdywgdmFyKC0tc2t5LWVsZXZhdGlvbi1vdmVybGF5LTMwMCkpJyxcbiAgcmFuZ2VTZWxlY3Rpb25Cb3JkZXJDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1pbnB1dC1mb2N1cykpJyxcbiAgcm93Qm9yZGVyOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctYm9yZGVyLXdpZHRoLCB2YXIoLS1za3ktYm9yZGVyLXdpZHRoLXNlcGFyYXRvci1yb3cpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctYm9yZGVyLXN0eWxlLCB2YXIoLS1za3ktYm9yZGVyLXN0eWxlLXNlcGFyYXRvci1yb3cpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItY29sb3IsIHZhcigtLXNreS1jb2xvci1ib3JkZXItc2VwYXJhdG9yLXJvdykpJyxcbiAgcm93SGVpZ2h0OlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctaGVpZ2h0LCBjYWxjKGNhbGModmFyKC0tc2t5LWZvbnQtbGluZV9oZWlnaHQtYm9keS1tKSAqIHZhcigtLXNreS1mb250LXNpemUtYm9keS1tKSkgKyBjYWxjKHZhcigtLXNreS1jb21wLWdyaWQtY2VsbC1zcGFjZS1pbnNldC10b3ApICsgdmFyKC0tc2t5LWNvbXAtZ3JpZC1jZWxsLXNwYWNlLWluc2V0LWJvdHRvbSkpKSknLFxuICByb3dIb3ZlckNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICBzZWxlY3RlZFJvd0JhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LXNlbGVjdGVkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYmFja2dyb3VuZC1zZWxlY3RlZC1zb2Z0KSknLFxuICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSByZW1vdmluZyB0aGlzIGluIDEzLiBEb2VzIG5vdCBhcHBlYXIgdG8gYmUgaW1wYWN0aW5nIGFueXRoaW5nLCBidXQgaXQgY291bGQgYmUgdXNlZCBieSBmZWF0dXJlcyB3ZSBoYXZlIG5vdCB0ZXN0ZWQgc28gbWFqb3IgdmVyc2lvbiByZW1vdmFsIGlzIHNhZmVzdC5cbiAgc3BhY2luZzogNCxcbiAgdGV4dENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC10ZXh0LWNvbG9yLCB2YXIoLS1za3ktY29sb3ItdGV4dC1kZWZhdWx0KSknLFxuICB0b29sdGlwQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRhaW5lci1iYXNlKSknLFxuICB3cmFwcGVyQm9yZGVyUmFkaXVzOiAwLFxufTtcblxuY29uc3QgZGVmYXVsdHNGb3JEYXRhRW50cnlHcmlkID0ge1xuICBjb2x1bW5Cb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWNvbHVtbi1ib3JkZXIsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtc2VwYXJhdG9yLXJvdykgc29saWQgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBwb3B1cFNoYWRvdzogJ25vbmUnLFxuICByb3dCb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJvdy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtc2VwYXJhdG9yLXJvdykpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBoZWFkZXJSb3dCb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJvdy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtZW1waGFzaXplZCkpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxufTtcblxuY29uc3QgU2t5QWdHcmlkRGF0YUdyaWQgPSB0aGVtZVF1YXJ0elxuICAud2l0aG91dFBhcnQoJ2ljb25TZXQnKVxuICAud2l0aFBhcnQoY29sb3JTY2hlbWVMaWdodClcbiAgLndpdGhQYXJhbXMoZGVmYXVsdHNGb3JBbGxUaGVtZXMpO1xuXG5jb25zdCBTa3lBZ0dyaWREYXRhRW50cnlHcmlkID0gU2t5QWdHcmlkRGF0YUdyaWQud2l0aFBhcmFtcyhcbiAgZGVmYXVsdHNGb3JEYXRhRW50cnlHcmlkLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNreUFnR3JpZFRoZW1lKFxuICBncmlkOiAnZGF0YS1lbnRyeS1ncmlkJyB8ICdkYXRhLWdyaWQnLFxuKTogVGhlbWUge1xuICBpZiAoZ3JpZCA9PT0gJ2RhdGEtZ3JpZCcpIHtcbiAgICByZXR1cm4gU2t5QWdHcmlkRGF0YUdyaWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFNreUFnR3JpZERhdGFFbnRyeUdyaWQ7XG4gIH1cbn1cblxudHlwZSBTa3lBZ0dyaWRUaGVtZVR5cGUgPVxuICBgYWctdGhlbWUtc2t5LSR7J2RhdGEtZW50cnktZ3JpZCcgfCAnZGF0YS1ncmlkJ30tJHsnZGVmYXVsdCcgfCAnbW9kZXJuLWxpZ2h0JyB8ICdtb2Rlcm4tbGlnaHQtY29tcGFjdCd9YDtcblxuZXhwb3J0IGZ1bmN0aW9uIGFnR3JpZFRoZW1lSXNDb21wYWN0KFxuICB0aGVtZVNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkLFxuICBjb21wYWN0TGF5b3V0OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdGhlbWVTZXR0aW5ncz8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiZcbiAgICAoY29tcGFjdExheW91dCB8fCB0aGVtZVNldHRpbmdzPy5zcGFjaW5nLm5hbWUgPT09ICdjb21wYWN0JylcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lKFxuICBlZGl0YWJsZTogYm9vbGVhbixcbiAgdGhlbWVTZXR0aW5nczogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdExheW91dDogYm9vbGVhbixcbik6IFNreUFnR3JpZFRoZW1lVHlwZSB7XG4gIGxldCB0aGVtZSA9IGBhZy10aGVtZS1za3ktJHtlZGl0YWJsZSA/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.3.15\", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGtCQUFrQixDQUF3QjtJQUUxQyxZQUFZLGlCQUF3QztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUIsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxFQUFFLENBQWdCLENBQUM7UUFFdEUsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXNCLEVBQ3RCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsTUFBTSxTQUFTLEdBQUcsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFFNUIsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7Z0JBQ3pELENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFDakMsQ0FBQztnQkFDRCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQW9CO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0UsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDOytHQS9EVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Uge1xuICAjc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihza3lBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UgPSBza3lBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRFbGVtZW50QnlJZChwYXJlbnRFbDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gcGFyZW50RWwucXVlcnlTZWxlY3RvcihgIyR7c2VsZWN0b3J9YCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvY3VzZWRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICBjdXJyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIHBhcmVudEVsPzogSFRNTEVsZW1lbnQsXG4gICAgbW92ZUZvY3VzTGVmdD86IGJvb2xlYW4sXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4ocGFyZW50RWwpO1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuLmluZGV4T2YoY3VycmVudEVsKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IG1vdmVGb2N1c0xlZnRcbiAgICAgICAgPyBjdXJyZW50RWxlbWVudEluZGV4IC0gMVxuICAgICAgICA6IGN1cnJlbnRFbGVtZW50SW5kZXggKyAxO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghbW92ZUZvY3VzTGVmdCAmJiBmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPj0gbmV4dEluZGV4KSB8fFxuICAgICAgICAobW92ZUZvY3VzTGVmdCAmJiBuZXh0SW5kZXggPj0gMClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9jdXNhYmxlQ2hpbGRyZW5bbmV4dEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IFtmb2N1c0NoaWxkXSA9IHRoaXMuI3NreUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuXG4gICAgaWYgKGZvY3VzQ2hpbGQ/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://github.com/blackbaud/skyux/blob/main/CONTRIBUTING.md) to the SKY UX data entry grid module.\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBaUdYO0FBakdELFdBQVksV0FBVztJQUNyQjs7Ozs7Ozs7T0FRRztJQUNILG1EQUFvQyxDQUFBO0lBQ3BDOzs7Ozs7OztPQVFHO0lBQ0gsMkNBQTRCLENBQUE7SUFDNUI7Ozs7T0FJRztJQUNILDZEQUE4QyxDQUFBO0lBQzlDOzs7Ozs7OztPQVFHO0lBQ0gsbUNBQW9CLENBQUE7SUFDcEI7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7Ozs7Ozs7T0FRRztJQUNILHVDQUF3QixDQUFBO0lBQ3hCOzs7O09BSUc7SUFDSCx5REFBMEMsQ0FBQTtJQUMxQzs7OztPQUlHO0lBQ0gsbURBQW9DLENBQUE7SUFDcEM7Ozs7T0FJRztJQUNILGlEQUFrQyxDQUFBO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBNEIsQ0FBQTtJQUM1Qjs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7O09BSUc7SUFDSCw2Q0FBOEIsQ0FBQTtBQUNoQyxDQUFDLEVBakdXLFdBQVcsS0FBWCxXQUFXLFFBaUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlc2UgY29sdW1uIHR5cGVzIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIEFHIEdyaWQgW2NvbHVtbiBkZWZpbml0aW9uIGB0eXBlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKSB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMuXG4gKiBBbnkgW1NLWSBVWCBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cykgY2FuIGJlIG1hZGUgaW50byBhIFtjZWxsIGVkaXRvcl0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdG9yLykgb3IgW2NlbGwgcmVuZGVyZXJdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLXJlbmRlcmluZy1jb21wb25lbnRzLykgY29tcG9uZW50LiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgYSBjb21wb25lbnQgdGhhdCBkb2VzIG5vdCBoYXZlIGEgY29sdW1uIGRlZmluaXRpb24geWV0LCBwbGVhc2UgY29uc2lkZXIgW2NvbnRyaWJ1dGluZyBpdF0oaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9za3l1eC9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKSB0byB0aGUgU0tZIFVYIGRhdGEgZW50cnkgZ3JpZCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxUeXBlIHtcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGF1dG9jb21wbGV0ZSBjb21wb25lbnRzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKS4gWW91IGNhbiBzZXQgYW55IG9mIHRoZSBhdXRvY29tcGxldGUgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zYCBpbiB0aGUgW2NvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxFZGl0b3JQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLiBUaGVzZSBwYXJhbXMgY2FuIGJlIHVwZGF0ZWQgYXMgb3RoZXIgY2VsbCBlZGl0cyBhcmUgbWFkZSBvciBbcHJvdmlkZWQgZHluYW1pY2FsbHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLWVkaXRpbmcvI2R5bmFtaWMtcGFyYW1ldGVycykgYmFzZWQgb24gb3RoZXIgY2VsbCB2YWx1ZXMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS4gVGV4dCBjYW4gYmUgZW50ZXJlZCBhbmQgYSB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSBwcm92aWRlZCBsaXN0LlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZSdzIG5hbWUgcHJvcGVydHkgYnkgZGVmYXVsdC4gSWYgdGhlIGF1dG9jb21wbGV0ZSBuZWVkcyB0byBzaG93IGEgZGlmZmVyZW50IHByb3BlcnR5IG9yIG5lZWRzIHRvIGJlIGZvcm1hdHRlZCBpbiBhbnkgd2F5LCB5b3UgY2FuIFtkZWZpbmUgYSBgdmFsdWVGb3JtYXR0ZXJgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtdmFsdWUtZm9ybWF0dGVycy8pIG9uIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICovXG4gIEF1dG9jb21wbGV0ZSA9ICdza3lDZWxsQXV0b2NvbXBsZXRlJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBhIGN1cnJlbmN5IGFtb3VudC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIEZvcm1hdHMgdGhlIGRpc3BsYXkgYXMgY3VycmVuY3kgdXNpbmcgW1NLWSBVWCBudW1lcmljIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9udW1lcmljKS5cbiAgICovXG4gIEN1cnJlbmN5ID0gJ3NreUNlbGxDdXJyZW5jeScsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqXG4gICAqIENvbWJpbmVzIFNreUNlbGxUeXBlLkN1cnJlbmN5IGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBjdXJyZW5jeSBhbmQgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uLlxuICAgKi9cbiAgQ3VycmVuY3lWYWxpZGF0b3IgPSAnc2t5Q2VsbEN1cnJlbmN5VmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGRhdGVwaWNrZXIgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtc2AgaW4gdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsRWRpdG9yUGFyYW1zYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS4gVGhlc2UgcGFyYW1zIGNhbiBiZSB1cGRhdGVkIGFzIG90aGVyIGNlbGwgZWRpdHMgYXJlIG1hZGUgb3IgW3Byb3ZpZGVkIGR5bmFtaWNhbGx5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0aW5nLyNkeW5hbWljLXBhcmFtZXRlcnMpIGJhc2VkIG9uIG90aGVyIGNlbGwgdmFsdWVzLiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuIERhdGUgdmFsdWVzIGNhbiBiZSBlbnRlcmVkLlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGZvcm1hdHRlZCBhcyBgTU0tREQtWVlZWWAsIG9yIHRoZSBkYXRlIGZvcm1hdCBvZiB0aGUgbG9jYWxlIHBhc3NlZCB0byBgZ2V0R3JpZE9wdGlvbnMoKWAuIElmIHlvdSB3b3VsZCBsaWtlIHRvIG92ZXJ3cml0ZSB0aGlzIGZvcm1hdCwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIERhdGUgPSAnc2t5Q2VsbERhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIFtTS1kgVVggbG9va3VwIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtdjUvY29tcG9uZW50cy9sb29rdXApLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGxvb2t1cCBjb21wb25lbnQncyBwcm9wZXJ0aWVzIGJ5IHBhc3NpbmcgYFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBUZXh0IGNhbiBiZSBlbnRlcmVkIGFuZCBhIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGxpc3QuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyB0aGUgY29sdW1uIHdpbGwgZGlzcGxheSwgYnkgZGVmYXVsdCwgZWl0aGVyOiB0aGUgbmFtZShzKSBvZiB0aGUgc2VsZWN0ZWQgdmFsdWUocykgaWYgdGhlcmUgYXJlIGxlc3MgdGhhbiA2LCBvciBhIHN1bW1hcnkgY291bnQgb2YgdGhlIHZhbHVlcyBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIDUuIElmIHRoZSBsb29rdXAgbmVlZHMgdG8gc2hvdyBhIGRpZmZlcmVudCBwcm9wZXJ0eSBvciBuZWVkcyB0byBiZSBmb3JtYXR0ZWQgaW4gYW55IHdheSwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqL1xuICBMb29rdXAgPSAnc2t5Q2VsbExvb2t1cCcsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgSFRNTCBudW1iZXIgYGlucHV0c2AuIE9ubHkgbnVtYmVycyBjYW4gYmUgZW50ZXJlZC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgYXMgdGhlIG51bWJlciB2YWx1ZS5cbiAgICovXG4gIE51bWJlciA9ICdza3lDZWxsTnVtYmVyJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogQ29tYmluZXMgU2t5Q2VsbFR5cGUuTnVtYmVyIGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBudW1iZXIgYW5kIHBhc3NlZCB0byBhIHZhbGlkYXRvciBmdW5jdGlvbi5cbiAgICovXG4gIE51bWJlclZhbGlkYXRvciA9ICdza3lDZWxsTnVtYmVyVmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogVGhlIGhlYWRlciBhbmQgY2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIHJlbmRlciByaWdodCBhbGlnbmVkLlxuICAgKi9cbiAgUmlnaHRBbGlnbmVkID0gJ3NreUNlbGxSaWdodEFsaWduZWQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIFtTS1kgVVggY2hlY2tib3ggY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94KS4gSXQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBtdWx0aXBsZSByb3dzLCBhbmQgYWRkcyBhIGhpZ2hsaWdodCB0byBzZWxlY3RlZCByb3dzLiBUaGUgW0FnIEdyaWQgYHJvd05vZGVgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcm93LW5vZGUvKSB3aWxsIGJlIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc3RhdGUuXG4gICAqL1xuICBSb3dTZWxlY3RvciA9ICdza3lDZWxsUm93U2VsZWN0b3InLFxuICAvKipcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgaW4gYSBgVGVtcGxhdGVSZWZgIHBhc3NlZCBpbiB0aGUgY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlYCBwcm9wZXJ0eSwgd2l0aCBgdmFsdWVgIGFuZCBgcm93YCBjb250ZXh0LiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuXG4gICAqL1xuICBUZW1wbGF0ZSA9ICdza3lDZWxsVGVtcGxhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIEhUTUwgdGV4dCBgaW5wdXRzYC4gQW55IGNoYXJhY3RlcnMgY2FuIGJlIGVudGVyZWQuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZWlyIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIFRleHQgPSAnc2t5Q2VsbFRleHQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgZmxhZ3MgZXJyb25lb3VzIGVudHJpZXMuIFlvdSBjYW4gc2V0IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24gYW5kIG1lc3NhZ2UgYnkgcGFzc2luZyBhIGBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzYCBvYmplY3QgYXMgYHNreUNvbXBvbmVudFByb3BlcnRpZXNgIHRvIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLCBsaWtlIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcmAgYW5kIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2VgLiBTa3lDZWxsVHlwZS5WYWxpZGF0b3IgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgY2VsbCB0eXBlcywgc3VjaCBhcyBTa3lDZWxsVHlwZS5BdXRvY29tcGxldGUgb3IgU2t5Q2VsbFR5cGUuRGF0ZSwgYnkgdXNpbmcgdGhlIGFycmF5IHN5bnRheCBmb3IgdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGB0eXBlYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS5cbiAgICovXG4gIFZhbGlkYXRvciA9ICdza3lDZWxsVmFsaWRhdG9yJyxcbn1cbiJdfQ==","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, ...(ngDevMode ? [{ debugName: \"minHeight\", transform: numberAttribute }] : [{\n transform: numberAttribute,\n }]));\n this.skyAgGridDiv = viewChild('skyAgGridDiv', ...(ngDevMode ? [{ debugName: \"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.3.15\", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.15\", 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: \"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\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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 }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: \"minHeight\", required: false }] }], skyAgGridDiv: [{ type: i0.ViewChild, args: ['skyAgGridDiv', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEQsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDBCQUEwQixHQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRWhELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQVFoQixNQUFNLE9BQU8seUJBQXlCO0lBV3BDOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQWNELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLGlCQUFpQixDQUFDLEtBQWU7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDeEUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO29CQUNuRCxJQUFJLFVBQVUsRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ25FLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3RCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFLRCxtQkFBbUIsQ0FBZ0I7SUFDMUIsY0FBYyxDQUF1QjtJQUNyQyxTQUFTLENBRWY7SUFDTSxlQUFlLENBRXJCO0lBQ00sZUFBZSxDQUFtQztJQUNsRCxlQUFlLENBQTZCO0lBQzVDLHFCQUFxQixDQUczQjtJQUNNLFdBQVcsQ0FBbUM7SUFDOUMsU0FBUyxDQUFvQjtJQUM3Qix3QkFBd0IsQ0FBc0M7SUFDOUQsVUFBVSxDQUF1QztJQUNqRCxpQkFBaUIsQ0FBaUM7SUFFM0Q7UUExRU8sbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFXOUI7O1dBRUc7UUFDYSxjQUFTLEdBQUcsS0FBSyxDQUFrQixFQUFFLDZDQUNuRCxTQUFTLEVBQUUsZUFBZSxPQUQyQjtnQkFDckQsU0FBUyxFQUFFLGVBQWU7YUFDM0IsR0FBQyxDQUFDO1FBbUNnQixpQkFBWSxHQUM3QixTQUFTLENBQTBCLGNBQWMsd0RBQUMsQ0FBQztRQUVyRCx3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JDLGNBQVMsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzNDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBQ00sb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVztZQUN2RCxnQ0FBZ0M7U0FDakMsQ0FBQyxDQUFDO1FBQ00sb0JBQWUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtZQUN6RCxRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLDZCQUF3QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqRCxzQkFBaUIsR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUd6RCxPQUFPLEVBQUUsQ0FBQztRQUNWLElBQUksQ0FBQyxhQUFhLEdBQUcsK0JBQStCLEdBQUcsT0FBTyxDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLEdBQUcsZ0NBQWdDLEdBQUcsT0FBTyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO1lBQ3hELFlBQVksRUFBRSxLQUFLLENBQUMsV0FBVyxDQUM3QiwwQkFBMEIsRUFDMUIsR0FBRyxTQUFTLElBQUksQ0FDakIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7WUFDckQsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQy9CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO29CQUN0RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN6QixZQUFZLEVBQ1osNEJBQTRCLENBQzdCLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzVDLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7aUJBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUI7aUJBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjO2lCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCO2lCQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQzdDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUk7d0JBQ3BCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQzFCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQ3ZDLENBQUM7b0JBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7d0JBQ3hCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQ2xDLEdBQUcsVUFBVTtxQkFDZCxDQUFDLENBQUM7b0JBQ0gsSUFDRSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7d0JBQ3BDLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUN4QixDQUFDO3dCQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbEUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtpQkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQ3BDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3ZCLElBQUksQ0FBQyxlQUFlO3FCQUNqQixRQUFRLEVBQUU7cUJBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUM3RCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7aUJBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUF1QixFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUVwQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRztvQkFDM0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUN4QixNQUFNLEVBQ0osT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLFFBQVE7d0JBQzlCLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTt3QkFDMUIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtpQkFDeEIsQ0FBQztnQkFFRixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7WUFFTCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWE7aUJBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUF5QixFQUFFLEVBQUU7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUVwQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRztvQkFDM0IsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVzt3QkFDL0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO3dCQUM1QixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO2lCQUN0QixDQUFDO2dCQUVGLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sUUFBUTtRQUNiLGFBQWEsQ0FBeUQ7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUNoRCxDQUFDO2FBQ0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQ25CLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsUUFBUSxFQUFFLGVBQWUsQ0FDMUIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN6QixDQUFDLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FDNUQsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUNGLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsTUFBTSxtQkFBbUIsR0FDdkIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN6QyxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQzNCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9DLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYSxDQUFDLE1BQWE7UUFDaEMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQW9CO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM5RCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUTtnQkFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjO2dCQUNyQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsU0FBUyxDQUNWLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFpQjtRQUNwQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBd0MsQ0FBQztRQUNyRSxNQUFNLGVBQWUsR0FDbkIsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUxRSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWE7aUJBQzNCLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDaEQsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBQ25FLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLElBQUksRUFBRSxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDcEUsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLGNBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUNFLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDdEIsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDOUIsdUNBQXVDLENBQ3hDLEVBQ0QsQ0FBQztnQkFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDekIsdUNBQXVDLEVBQ3ZDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN2QixDQUFDO1lBQ0osQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDckUsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUN6RCxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUN6RCxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNoQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUNkLGdCQUF5QixFQUN6QixTQUFrQixFQUNsQixhQUFnQztRQUVoQyxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FDdEMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQ3hELGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsU0FBUyxDQUNWLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RELElBQUksS0FBSyxHQUFHO1lBQ1YsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUQsdUJBQXVCO1NBQ3hCLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM3QyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGlCQUFpQixDQUFDLGdCQUF5QjtRQUN6QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7K0dBbFZVLHlCQUF5QjttR0FBekIseUJBQXlCLHdMQWVoQixnQkFBZ0IsMFJBWnRCLGFBQWEsNExDbEU3Qix3dEJBK0JBLDRDRDhCdUIsT0FBTyxtRkFBRSxXQUFXLDhCQUFFLG1CQUFtQixpSkFBcEQsU0FBUzs7NEZBRVIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUM7O3NCQUs5RCxZQUFZO3VCQUFDLGFBQWEsRUFBRTt3QkFDM0IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7O3NCQUdBLFdBQVc7dUJBQUMsaUNBQWlDOztzQkFPN0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs4SkE4Q0QsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzLFxuICBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlLFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50LFxuICBDZWxsRm9jdXNlZEV2ZW50LFxuICBIZWFkZXJGb2N1c2VkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG9mLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBnZXRTa3lBZ0dyaWRUaGVtZSxcbiAgZ2V0U2t5QWdHcmlkVGhlbWVDbGFzc05hbWUsXG59IGZyb20gJy4uLy4uL3N0eWxlcy9hZy1ncmlkLXRoZW1lJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nQ2xhc3MsIFNreUlkTW9kdWxlLCBTa3lWaWV3a2VlcGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlIGEgY29tcGFjdCBsYXlvdXQgZm9yIHRoZSBncmlkIHdoZW4gdXNpbmcgbW9kZXJuIHRoZW1lLiBDb21wYWN0IGxheW91dCB1c2VzXG4gICAqIGEgc21hbGxlciBmb250IHNpemUgYW5kIHJvdyBoZWlnaHQgdG8gZGlzcGxheSBtb3JlIGRhdGEgaW4gYSBzbWFsbGVyIHNwYWNlLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI2lzQ29tcGFjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGdyaWQgaW4gcGl4ZWxzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgNTBgLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1pbkhlaWdodCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4oNTAsIHtcbiAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIGFmdGVyQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGJlZm9yZUFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBncmlkSWQ6IHN0cmluZztcbiAgcHVibGljIHdyYXBwZXJDbGFzc2VzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgcHVibGljIGdldCB2aWV3a2VlcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlld2tlZXBlckNsYXNzZXModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgI2lzSW5FZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgdGhpcy5hZ0dyaWQuYXBpKSB7XG4gICAgICBjb25zdCBwcmltYXJ5R3JpZEVkaXRpbmcgPSB0aGlzLmFnR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMDtcbiAgICAgIGlmIChwcmltYXJ5R3JpZEVkaXRpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuYWdHcmlkLmFwaS5nZXRHcmlkT3B0aW9uKCdtYXN0ZXJEZXRhaWwnKSkge1xuICAgICAgICBsZXQgaW5uZXJFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5mb3JFYWNoRGV0YWlsR3JpZEluZm8oKGRldGFpbEdyaWQpID0+IHtcbiAgICAgICAgICBpZiAoZGV0YWlsR3JpZD8uYXBpICYmIGRldGFpbEdyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlubmVyRWRpdGluZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW5uZXJFZGl0aW5nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2t5QWdHcmlkRGl2ID1cbiAgICB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdza3lBZ0dyaWREaXYnKTtcblxuICAjX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICN3cmFwcGVyQ2xhc3NlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtcbiAgICBgYWctdGhlbWUtc2t5LWRhdGEtZ3JpZC1kZWZhdWx0YCxcbiAgXSk7XG4gIHJlYWRvbmx5ICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNwYXJlbnRDaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNraXBTZWxmOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbXV0YXRpb25PYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UpO1xuICByZWFkb25seSAjaXNDb21wYWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5ICNoYXNFZGl0YWJsZUNsYXNzID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWRJbmRleCsrO1xuICAgIHRoaXMuYWZ0ZXJBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWFmdGVyLScgKyBpZEluZGV4O1xuICAgIHRoaXMuYmVmb3JlQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1iZWZvcmUtJyArIGlkSW5kZXg7XG4gICAgdGhpcy5ncmlkSWQgPSAnc2t5LWFnLWdyaWQtJyArIGlkSW5kZXg7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3NlcyQgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5hc09ic2VydmFibGUoKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBtaW5IZWlnaHQgPSB0aGlzLm1pbkhlaWdodCgpO1xuICAgICAgY29uc3Qgc2t5QWdHcmlkRGl2ID0gdGhpcy5za3lBZ0dyaWREaXYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgIHNreUFnR3JpZERpdj8uc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICctLXNreS1hZy1ncmlkLW1pbi1oZWlnaHQnLFxuICAgICAgICBgJHttaW5IZWlnaHR9cHhgLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkKSB7XG4gICAgICBjb25zdCBkb21MYXlvdXQgPSB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uZG9tTGF5b3V0O1xuICAgICAgaWYgKGRvbUxheW91dCA9PT0gJ2F1dG9IZWlnaHQnKSB7XG4gICAgICAgIGlmICh0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsKSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKFxuICAgICAgICAgICAgJy5hZy1oZWFkZXInLFxuICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaCgnLmFnLWhlYWRlcicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRvbUxheW91dCA9PT0gJ25vcm1hbCcpIHtcbiAgICAgICAgdGhpcy5pc05vcm1hbExheW91dCA9IHRydWU7XG4gICAgICAgIHRoaXMuI3BhcmVudENoYW5nZURldGVjdG9yPy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmZpcnN0RGF0YVJlbmRlcmVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5yb3dEYXRhVXBkYXRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdGFydGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwYXJhbXMuY29sRGVmLnR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheShwYXJhbXMuY29sRGVmLnR5cGUpXG4gICAgICAgICAgICAgID8gcGFyYW1zLmNvbERlZi50eXBlXG4gICAgICAgICAgICAgIDogW3BhcmFtcy5jb2xEZWYudHlwZV07XG4gICAgICAgICAgICBjb25zdCBhZGRDbGFzc2VzID0gdHlwZXMubWFwKFxuICAgICAgICAgICAgICAodCkgPT4gYHNreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0ke3R9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFtcbiAgICAgICAgICAgICAgLi4udGhpcy4jd3JhcHBlckNsYXNzZXMuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgICAgLi4uYWRkQ2xhc3NlcyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0eXBlcy5pbmNsdWRlcyhTa3lDZWxsVHlwZS5UZW1wbGF0ZSkgJiZcbiAgICAgICAgICAgICAgcGFyYW1zLnJvd0luZGV4ICE9PSBudWxsXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5hZ0dyaWQ/LmFwaS5zZXRGb2N1c2VkQ2VsbChwYXJhbXMucm93SW5kZXgsIHBhcmFtcy5jb2x1bW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFxuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXNcbiAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLScpKSxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZXZlbnQuY29udGV4dCB8fCB7fTtcblxuICAgICAgICAgIGNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IGV2ZW50LnJvd0luZGV4LFxuICAgICAgICAgICAgY29sdW1uOlxuICAgICAgICAgICAgICB0eXBlb2YgZXZlbnQuY29sdW1uID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgID8gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpXG4gICAgICAgICAgICAgICAgOiBgJHtldmVudC5jb2x1bW59YCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZXZlbnQuYXBpPy5zZXRHcmlkT3B0aW9uKCdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFnR3JpZC5oZWFkZXJGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEhlYWRlckZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgICAgY29udGV4dFsnbGFzdEZvY3VzZWRDZWxsJ10gPSB7XG4gICAgICAgICAgICByb3dJbmRleDogbnVsbCxcbiAgICAgICAgICAgIGNvbHVtbjogZXZlbnQuY29sdW1uPy5nZXRVbmlxdWVJZFxuICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbi5nZXRVbmlxdWVJZCgpXG4gICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGV2ZW50LmFwaT8uc2V0R3JpZE9wdGlvbignY29udGV4dCcsIGNvbnRleHQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MuY29tcGxldGUoKTtcbiAgICB0aGlzLiNpc0NvbXBhY3QuY29tcGxldGUoKTtcbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3Q8W2Jvb2xlYW4sIGJvb2xlYW4sIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UgfCB1bmRlZmluZWRdPihbXG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiNpc0NvbXBhY3QucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSA/PyBvZih1bmRlZmluZWQpLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChbaGFzRWRpdGFibGVDbGFzcywgaXNDb21wYWN0LCBzZXR0aW5nc10pID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlR3JpZFRoZW1lKFxuICAgICAgICAgIGhhc0VkaXRhYmxlQ2xhc3MsXG4gICAgICAgICAgaXNDb21wYWN0LFxuICAgICAgICAgIHNldHRpbmdzPy5jdXJyZW50U2V0dGluZ3MsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FnLWdyaWQtYW5ndWxhcicpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5uZXh0KFxuICAgICAgICAhIWFnR3JpZEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnc2t5LWFnLWdyaWQtZWRpdGFibGUnKSxcbiAgICAgICk7XG4gICAgfTtcbiAgICBpZiAoYWdHcmlkRWxlbWVudCkge1xuICAgICAgY29uc3QgYWdHcmlkQ2xhc3NPYnNlcnZlciA9XG4gICAgICAgIHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLmNyZWF0ZShjYWxsYmFjayk7XG4gICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLm9ic2VydmUoYWdHcmlkRWxlbWVudCwge1xuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy4jbmdVbnN1YnNjcmliZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBjbG9zaW5nIGEgbW9kYWwgd2hlbiBmb2N1c2VkIGluIEFHIEdyaWQuXG4gICAqL1xuICBwdWJsaWMgb25LZXlVcEVzY2FwZSgkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWdHcmlkPy5hcGkuc3RvcEVkaXRpbmcodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhdGhpcy4jaXNJbkVkaXRNb2RlICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIGNvbnN0IGlkVG9Gb2N1cyA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgID8gdGhpcy5iZWZvcmVBbmNob3JJZFxuICAgICAgICA6IHRoaXMuYWZ0ZXJBbmNob3JJZDtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEZvY3VzZWRFbGVtZW50QnlJZChcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpZFRvRm9jdXMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFuY2hvckZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJldmlvdXNXYXNHcmlkID1cbiAgICAgIHJlbGF0ZWRUYXJnZXQgJiYgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpO1xuXG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICFwcmV2aW91c1dhc0dyaWQpIHtcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAucXVlcnlTZWxlY3RvcignLmFnLXRhYi1ndWFyZC5hZy10YWItZ3VhcmQtdG9wJylcbiAgICAgICAgPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCB0b1RvcCA9ICEhdGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGw7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctcm9vdCcpO1xuICAgIGNvbnN0IGhlYWRlciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1oZWFkZXInKTtcbiAgICBjb25zdCBmbG9hdGluZ0JvdHRvbSA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1mbG9hdGluZy1ib3R0b20nKTtcbiAgICBjb25zdCBzY3JvbGxiYXIgPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgIGlmIChyb290ICYmIGhlYWRlciAmJiBmbG9hdGluZ0JvdHRvbSAmJiBzY3JvbGxiYXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCAhPT1cbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJyxcbiAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNUb3AgPSByb290LmNoaWxkcmVuWzFdLm1hdGNoZXMoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgICBpZiAodG9Ub3AgJiYgIWlzVG9wKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICBoZWFkZXIuYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfSBlbHNlIGlmICghdG9Ub3AgJiYgaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGZsb2F0aW5nQm90dG9tLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjdXBkYXRlR3JpZFRoZW1lKFxuICAgIGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4sXG4gICAgaXNDb21wYWN0OiBib29sZWFuLFxuICAgIHRoZW1lU2V0dGluZ3M/OiBTa3lUaGVtZVNldHRpbmdzLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBza3lBZ0dyaWRUaGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKFxuICAgICAgaGFzRWRpdGFibGVDbGFzcyA/ICdkYXRhLWVudHJ5LWdyaWQnIDogJ2RhdGEtZ3JpZCcsXG4gICAgKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEdyaWRPcHRpb24oJ3RoZW1lJywgc2t5QWdHcmlkVGhlbWUpO1xuICAgIGNvbnN0IHNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lID0gZ2V0U2t5QWdHcmlkVGhlbWVDbGFzc05hbWUoXG4gICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgdGhlbWVTZXR0aW5ncyxcbiAgICAgIGlzQ29tcGFjdCxcbiAgICApO1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpO1xuICAgIGxldCB2YWx1ZSA9IFtcbiAgICAgIC4uLnByZXZpb3VzVmFsdWUuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSksXG4gICAgICBza3lBZ0dyaWRUaGVtZUNsYXNzTmFtZSxcbiAgICBdO1xuICAgIGNvbnN0IHRleHRTZWxlY3Rpb25DbGFzcyA9ICdza3ktYWctZ3JpZC10ZXh0LXNlbGVjdGlvbic7XG4gICAgaWYgKHRoaXMuI2dldFRleHRTZWxlY3Rpb24oaGFzRWRpdGFibGVDbGFzcykpIHtcbiAgICAgIHZhbHVlLnB1c2godGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoKGMpID0+IGMgIT09IHRleHRTZWxlY3Rpb25DbGFzcyk7XG4gICAgfVxuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoWy4uLm5ldyBTZXQodmFsdWUpXSk7XG4gIH1cblxuICAjZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiAhaGFzRWRpdGFibGVDbGFzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJuYXYtYW5jaG9yXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2lkXT1cImJlZm9yZUFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbjxkaXZcbiAgI3NreUFnR3JpZERpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgc2t5Vmlld2tlZXBlck9taXRTaGFkb3c9XCIuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbFwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtjbGFzcy5za3ktYWctZ3JpZC10b3Atc2Nyb2xsYmFyXT1cIlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQgJiZcbiAgICBhZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0WydlbmFibGVUb3BTY3JvbGwnXVxuICBcIlxuICBbbmdDbGFzc109XCJ3cmFwcGVyQ2xhc3NlcyQgfCBhc3luY1wiXG4gIFtpZF09XCJncmlkSWRcIlxuICBbc2t5Vmlld2tlZXBlcl09XCJ2aWV3a2VlcGVyQ2xhc3Nlc1wiXG4gIChrZXlkb3duKT1cIm9uR3JpZEtleWRvd24oJGV2ZW50KVwiXG4gIChrZXl1cC5lc2NhcGUpPVwib25LZXlVcEVzY2FwZSgkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuPHNwYW5cbiAgdGFiaW5kZXg9XCIwXCJcbiAgY2xhc3M9XCJuYXYtYW5jaG9yXCJcbiAgW2lkXT1cImFmdGVyQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuIl19","import { ChangeDetectorRef, Directive, computed, contentChildren, effect, inject, input, linkedSignal, signal, untracked, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyDataManagerService, } from '@skyux/data-manager';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { Subject, filter, fromEvent, of, switchMap, takeUntil } from 'rxjs';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport * as i0 from \"@angular/core\";\nfunction toColumnWidthName(breakpoint) {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n/**\n * @internal\n */\nexport class SkyAgGridDataManagerAdapterDirective {\n #currentAgGrid;\n #isAgGridReady;\n #currentAgGridReady;\n #currentDataState;\n #currentSkyAgGridWrapper;\n #ngUnsubscribe;\n #changeDetector;\n #dataManagerSvc;\n #viewConfigs;\n #viewConfig;\n #activeView;\n #isActiveView;\n #breakpoint;\n constructor() {\n this.viewId = input(...(ngDevMode ? [undefined, { debugName: \"viewId\" }] : []));\n this.agGridList = contentChildren(AgGridAngular, ...(ngDevMode ? [{ debugName: \"agGridList\", descendants: true }] : [{\n descendants: true,\n }]));\n this.skyAgGridWrapperList = contentChildren(SkyAgGridWrapperComponent, ...(ngDevMode ? [{ debugName: \"skyAgGridWrapperList\", descendants: true }] : [{\n descendants: true,\n }]));\n this.#currentAgGrid = signal(undefined, ...(ngDevMode ? [{ debugName: \"#currentAgGrid\" }] : []));\n this.#isAgGridReady = linkedSignal(computed(() => {\n this.#currentAgGrid();\n return false;\n }), ...(ngDevMode ? [{ debugName: \"#isAgGridReady\" }] : []));\n this.#currentAgGridReady = computed(() => {\n const agGrid = this.#currentAgGrid();\n if (this.#isAgGridReady()) {\n return agGrid;\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"#currentAgGridReady\" }] : []));\n this.#ngUnsubscribe = new Subject();\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#dataManagerSvc = inject(SkyDataManagerService);\n this.#viewConfigs = toSignal(this.#dataManagerSvc.getDataViewsUpdates(), {\n initialValue: [],\n });\n this.#viewConfig = computed(() => {\n const viewId = this.viewId();\n return this.#viewConfigs().find((vc) => vc.id === viewId);\n }, ...(ngDevMode ? [{ debugName: \"#viewConfig\" }] : []));\n this.#activeView = toSignal(this.#dataManagerSvc.getActiveViewIdUpdates());\n this.#isActiveView = computed(() => {\n const activeViewId = this.#activeView();\n const viewId = this.viewId();\n return activeViewId === viewId;\n }, ...(ngDevMode ? [{ debugName: \"#isActiveView\" }] : []));\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\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 effect(() => {\n const viewId = this.viewId();\n const agGrid = this.#currentAgGridReady();\n if (viewId && agGrid) {\n if (agGrid.api.getGridOption('context')?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n else {\n this.#dataManagerSvc.setViewkeeperClasses(viewId, ['.ag-header']);\n }\n }\n });\n effect(() => {\n const isActiveView = this.#isActiveView();\n const agGrid = untracked(this.#currentAgGridReady);\n if (isActiveView && agGrid) {\n agGrid.api.refreshCells();\n }\n });\n }\n ngOnDestroy() {\n this.#unregisterAgGrid();\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.#ngUnsubscribe.next();\n this.#currentAgGrid.set(undefined);\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.set(agGrid);\n if (agGrid) {\n agGrid.gridReady\n .pipe(takeUntil(this.#ngUnsubscribe), switchMap(() => {\n const viewConfig = this.#viewConfig();\n if (viewConfig) {\n viewConfig.onSelectAllClick = () => agGrid.api.selectAll();\n viewConfig.onClearAllClick = () => agGrid.api.deselectAll();\n this.#dataManagerSvc.updateViewConfig(viewConfig);\n this.#applyColumnWidths();\n return this.#dataManagerSvc.getDataStateUpdates(viewConfig.id);\n }\n /* istanbul ignore next */\n return of(undefined);\n }), filter(Boolean))\n .subscribe((dataState) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n this.#isAgGridReady.set(true);\n });\n agGrid.gridReady\n .pipe(takeUntil(this.#ngUnsubscribe), switchMap(() => fromEvent(agGrid.api, 'gridPreDestroyed')))\n .subscribe(() => {\n this.#unregisterAgGrid();\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 const viewConfig = this.#viewConfig();\n if (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, viewConfig.id);\n this.#changeDetector.markForCheck();\n }\n });\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates = agGrid.api.getColumnState();\n const viewConfig = this.#viewConfig();\n const activeSortColumnState = gridColumnStates?.find((aGridColumnState) => aGridColumnState.sortIndex === 0) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n if (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, viewConfig.id);\n }\n });\n }\n }\n #updateColumnsInCurrentDataState(api) {\n const viewConfig = this.#viewConfig();\n if (viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n const viewState = this.#currentDataState.getViewStateById(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(viewConfig.id, viewState), viewConfig.id);\n }\n }\n }\n #getColumnOrder(api) {\n /* istanbul ignore next */\n return (api?.getColumnState() ?? [])\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n #displayColumns(dataState) {\n const agGrid = this.#currentAgGrid();\n const viewConfig = this.#viewConfig();\n if (agGrid && viewConfig) {\n const viewState = dataState.getViewStateById(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 agGrid.api) {\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 viewId = this.viewId();\n const viewState = viewId && this.#currentDataState?.getViewStateById(viewId);\n if (viewState && 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(viewId, viewState), viewId);\n }\n }\n #removeColumnWidths(colIds) {\n const viewId = this.viewId();\n const viewState = viewId && this.#currentDataState?.getViewStateById(viewId);\n if (viewState && 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(viewId, viewState), viewId);\n }\n }\n #applyColumnWidths(breakpoint) {\n breakpoint ??= this.#breakpoint();\n const currentAgGrid = this.#currentAgGrid();\n const viewId = this.viewId();\n if (breakpoint) {\n const viewState = viewId && this.#currentDataState?.getViewStateById(viewId);\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(viewState.displayedColumnIds, viewState.columnWidths, toColumnWidthName(breakpoint));\n 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.3.15\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.15\", type: SkyAgGridDataManagerAdapterDirective, isStandalone: true, selector: \"[skyAgGridDataManagerAdapter]\", inputs: { viewId: { classPropertyName: \"viewId\", publicName: \"viewId\", isSignal: true, isRequired: false, transformFunction: null } }, 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.3.15\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[skyAgGridDataManagerAdapter]' }]\n }], ctorParameters: () => [], propDecorators: { viewId: [{ type: i0.Input, args: [{ isSignal: true, alias: \"viewId\", required: false }] }], agGridList: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AgGridAngular), { ...{\n descendants: true,\n }, isSignal: true }] }], skyAgGridWrapperList: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SkyAgGridWrapperComponent), { ...{\n descendants: true,\n }, isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxxQkFBcUIsR0FHdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV4RSxTQUFTLGlCQUFpQixDQUFDLFVBQXlCO0lBQ2xELE9BQU8sVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9DQUFvQztJQVd0QyxjQUFjLENBQWdEO0lBQzlELGNBQWMsQ0FLckI7SUFDTyxtQkFBbUIsQ0FNekI7SUFDSCxpQkFBaUIsQ0FBa0M7SUFDbkQsd0JB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UyxDQUFDLFlBQVksRUFDdEIsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQzlCLENBQUM7Z0JBRUYsYUFBYSxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLGdCQUEwQixFQUMxQixhQUFzQyxFQUN0QyxjQUE2QztRQUU3QyxNQUFNLGdCQUFnQixHQUFtQixFQUFFLENBQUM7UUFFNUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxRCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsRUFBRSxNQUFNO29CQUNYLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsV0FBVztpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7K0dBdGNVLG9DQUFvQzttR0FBcEMsb0NBQW9DLDJQQUdhLGFBQWEsMEZBSTNCLHlCQUF5Qjs7NEZBUDVELG9DQUFvQztrQkFEaEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsRUFBRTt3TkFJTSxhQUFhLFFBQUU7NEJBQ3pFLFdBQVcsRUFBRSxJQUFJO3lCQUNsQixzR0FFNkMseUJBQXlCLFFBQUU7NEJBQ3ZFLFdBQVcsRUFBRSxJQUFJO3lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIE9uRGVzdHJveSxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxufSBmcm9tICdAc2t5dXgvZGF0YS1tYW5hZ2VyJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDb2x1bW5Nb3ZlZEV2ZW50LFxuICBDb2x1bW5SZXNpemVkRXZlbnQsXG4gIENvbHVtblN0YXRlLFxuICBEcmFnU3RvcHBlZEV2ZW50LFxuICBHcmlkQXBpLFxuICBJQ29sdW1uTGltaXQsXG4gIFJvd1NlbGVjdGVkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgZnJvbUV2ZW50LCBvZiwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIHRvQ29sdW1uV2lkdGhOYW1lKGJyZWFrcG9pbnQ6IFNreUJyZWFrcG9pbnQpOiAneHMnIHwgJ3NtJyB7XG4gIHJldHVybiBicmVha3BvaW50ID09PSAneHMnID8gJ3hzJyA6ICdzbSc7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tza3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJdJyB9KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSB2aWV3SWQgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFnR3JpZExpc3QgPSBjb250ZW50Q2hpbGRyZW48QWdHcmlkQW5ndWxhcj4oQWdHcmlkQW5ndWxhciwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgc2t5QWdHcmlkV3JhcHBlckxpc3QgPSBjb250ZW50Q2hpbGRyZW4oU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICByZWFkb25seSAjY3VycmVudEFnR3JpZCA9IHNpZ25hbDxBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSAjaXNBZ0dyaWRSZWFkeSA9IGxpbmtlZFNpZ25hbChcbiAgICBjb21wdXRlZCgoKSA9PiB7XG4gICAgICB0aGlzLiNjdXJyZW50QWdHcmlkKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSksXG4gICk7XG4gIHJlYWRvbmx5ICNjdXJyZW50QWdHcmlkUmVhZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZCgpO1xuICAgIGlmICh0aGlzLiNpc0FnR3JpZFJlYWR5KCkpIHtcbiAgICAgIHJldHVybiBhZ0dyaWQ7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0pO1xuICAjY3VycmVudERhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkYXRhTWFuYWdlclN2YyA9IGluamVjdChTa3lEYXRhTWFuYWdlclNlcnZpY2UpO1xuICByZWFkb25seSAjdmlld0NvbmZpZ3MgPSB0b1NpZ25hbCh0aGlzLiNkYXRhTWFuYWdlclN2Yy5nZXREYXRhVmlld3NVcGRhdGVzKCksIHtcbiAgICBpbml0aWFsVmFsdWU6IFtdLFxuICB9KTtcbiAgcmVhZG9ubHkgI3ZpZXdDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcbiAgICByZXR1cm4gdGhpcy4jdmlld0NvbmZpZ3MoKS5maW5kKCh2YykgPT4gdmMuaWQgPT09IHZpZXdJZCk7XG4gIH0pO1xuICByZWFkb25seSAjYWN0aXZlVmlldyA9IHRvU2lnbmFsKFxuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLmdldEFjdGl2ZVZpZXdJZFVwZGF0ZXMoKSxcbiAgKTtcbiAgcmVhZG9ubHkgI2lzQWN0aXZlVmlldyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBhY3RpdmVWaWV3SWQgPSB0aGlzLiNhY3RpdmVWaWV3KCk7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcbiAgICByZXR1cm4gYWN0aXZlVmlld0lkID09PSB2aWV3SWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5hZ0dyaWRMaXN0KCk7XG5cbiAgICAgIHRoaXMuI2NoZWNrRm9yQWdHcmlkKGxpc3QpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0KCk7XG5cbiAgICAgIHRoaXMuI2NoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcihsaXN0KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgICBpZiAoYnJlYWtwb2ludCkge1xuICAgICAgICB0aGlzLiNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLnZpZXdJZCgpO1xuICAgICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZFJlYWR5KCk7XG4gICAgICBpZiAodmlld0lkICYmIGFnR3JpZCkge1xuICAgICAgICBpZiAoYWdHcmlkLmFwaS5nZXRHcmlkT3B0aW9uKCdjb250ZXh0Jyk/LmVuYWJsZVRvcFNjcm9sbCkge1xuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHZpZXdJZCwgW1xuICAgICAgICAgICAgJy5hZy1oZWFkZXInLFxuICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy5zZXRWaWV3a2VlcGVyQ2xhc3Nlcyh2aWV3SWQsIFsnLmFnLWhlYWRlciddKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlVmlldyA9IHRoaXMuI2lzQWN0aXZlVmlldygpO1xuICAgICAgY29uc3QgYWdHcmlkID0gdW50cmFja2VkKHRoaXMuI2N1cnJlbnRBZ0dyaWRSZWFkeSk7XG4gICAgICBpZiAoaXNBY3RpdmVWaWV3ICYmIGFnR3JpZCkge1xuICAgICAgICBhZ0dyaWQuYXBpLnJlZnJlc2hDZWxscygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3VucmVnaXN0ZXJBZ0dyaWQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjY2hlY2tGb3JBZ0dyaWQoYWdHcmlkTGlzdDogcmVhZG9ubHkgQWdHcmlkQW5ndWxhcltdKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gYWdHcmlkTGlzdFswXTtcbiAgICBjb25zdCBhZ0dyaWRDb3VudCA9IGFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgaWYgKGFnR3JpZCkge1xuICAgICAgaWYgKGFnR3JpZCAhPT0gdGhpcy4jY3VycmVudEFnR3JpZCgpKSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhZ0dyaWRDb3VudCA+IDEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKFxuICAgIHdyYXBwZXJzOiByZWFkb25seSBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50W10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvdW50ID0gd3JhcHBlcnMubGVuZ3RoO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB3cmFwcGVyc1swXTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHdyYXBwZXIgIT09IHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICB0aGlzLiNyZWdpc3RlclNreUFnR3JpZFdyYXBwZXIod3JhcHBlcik7XG4gICAgfVxuXG4gICAgaWYgKGNvdW50ID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1bnJlZ2lzdGVyQWdHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAjdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy4jY3VycmVudFNreUFnR3JpZFdyYXBwZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAjcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLiN1bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gd3JhcHBlcjtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyLnZpZXdrZWVwZXJDbGFzc2VzID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAjcmVnaXN0ZXJBZ0dyaWQoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlckFnR3JpZCgpO1xuXG4gICAgdGhpcy4jY3VycmVudEFnR3JpZC5zZXQoYWdHcmlkKTtcblxuICAgIGlmIChhZ0dyaWQpIHtcbiAgICAgIGFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2aWV3Q29uZmlnID0gdGhpcy4jdmlld0NvbmZpZygpO1xuICAgICAgICAgICAgaWYgKHZpZXdDb25maWcpIHtcbiAgICAgICAgICAgICAgdmlld0NvbmZpZy5vblNlbGVjdEFsbENsaWNrID0gKCk6IHZvaWQgPT4gYWdHcmlkLmFwaS5zZWxlY3RBbGwoKTtcbiAgICAgICAgICAgICAgdmlld0NvbmZpZy5vbkNsZWFyQWxsQ2xpY2sgPSAoKTogdm9pZCA9PiBhZ0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gICAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZVZpZXdDb25maWcodmlld0NvbmZpZyk7XG5cbiAgICAgICAgICAgICAgdGhpcy4jYXBwbHlDb2x1bW5XaWR0aHMoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLmdldERhdGFTdGF0ZVVwZGF0ZXModmlld0NvbmZpZy5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgdGhpcy4jZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlKTtcbiAgICAgICAgICB0aGlzLiNhcHBseVNvcnQoZGF0YVN0YXRlKTtcbiAgICAgICAgICB0aGlzLiNpc0FnR3JpZFJlYWR5LnNldCh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tRXZlbnQoYWdHcmlkLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdW5yZWdpc3RlckFnR3JpZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtbk1vdmVkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAoZXZlbnQ6IENvbHVtbk1vdmVkRXZlbnQpID0+XG4gICAgICAgICAgICAgICFbXG4gICAgICAgICAgICAgICAgJ2dyaWRJbml0aWFsaXppbmcnLFxuICAgICAgICAgICAgICAgICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICAgICAgICd1aUNvbHVtbkRyYWdnZWQnLFxuICAgICAgICAgICAgICAgICdhcGknLFxuICAgICAgICAgICAgICBdLmluY2x1ZGVzKGV2ZW50LnNvdXJjZSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogQ29sdW1uTW92ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5jb2x1bW5SZXNpemVkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4gZXZlbnQuc291cmNlID09PSAndWlDb2x1bW5SZXNpemVkJyxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDb2x1bW5SZXNpemVkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2xJZCA9IGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKTtcbiAgICAgICAgICBjb25zdCB3aWR0aCA9IGV2ZW50LmNvbHVtbj8uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICAgICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgICAgICAgaWYgKGNvbElkICYmIHdpZHRoICYmIGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbldpZHRoKGNvbElkLCB3aWR0aCwgYnJlYWtwb2ludCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmRyYWdTdG9wcGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IERyYWdTdG9wcGVkRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKHZhbHVlLmFwaSk7XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQucm93U2VsZWN0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUm93U2VsZWN0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLiN2aWV3Q29uZmlnKCk7XG4gICAgICAgICAgaWYgKHZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcbiAgICAgICAgY29uc3Qgdmlld0NvbmZpZyA9IHRoaXMuI3ZpZXdDb25maWcoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLiN2aWV3Q29uZmlnKCk7XG4gICAgaWYgKHZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgY29uc3QgY29sdW1uT3JkZXIgPSB0aGlzLiNnZXRDb2x1bW5PcmRlcihhcGkpO1xuXG4gICAgICBjb25zdCB2aWV3U3RhdGUgPSB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodmlld0NvbmZpZy5pZCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdmlld1N0YXRlICYmXG4gICAgICAgICh2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLmxlbmd0aCAhPT0gY29sdW1uT3JkZXIubGVuZ3RoIHx8XG4gICAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcy5zb21lKChjb2wsIGkpID0+IGNvbCAhPT0gY29sdW1uT3JkZXJbaV0pKVxuICAgICAgKSB7XG4gICAgICAgIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPSBjb2x1bW5PcmRlcjtcblxuICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodmlld0NvbmZpZy5pZCwgdmlld1N0YXRlKSxcbiAgICAgICAgICB2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gKGFwaT8uZ2V0Q29sdW1uU3RhdGUoKSA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZCgpO1xuICAgIGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLiN2aWV3Q29uZmlnKCk7XG5cbiAgICBpZiAoYWdHcmlkICYmIHZpZXdDb25maWcpIHtcbiAgICAgIGNvbnN0IHZpZXdTdGF0ZSA9IGRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHZpZXdDb25maWcuaWQpO1xuICAgICAgbGV0IGRpc3BsYXllZENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICBpZiAodmlld1N0YXRlPy5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgZGlzcGxheWVkQ29sdW1uSWRzID0gdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcztcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29sdW1uT3JkZXIgPSB0aGlzLiNnZXRDb2x1bW5PcmRlcihhZ0dyaWQuYXBpKTtcblxuICAgICAgaWYgKFxuICAgICAgICAoZGlzcGxheWVkQ29sdW1uSWRzLmxlbmd0aCAhPT0gY29sdW1uT3JkZXIubGVuZ3RoIHx8XG4gICAgICAgICAgZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpICYmXG4gICAgICAgIGFnR3JpZC5hcGlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBoaWRlQ29sdW1ucyA9IGFnR3JpZC5hcGlcbiAgICAgICAgICAuZ2V0Q29sdW1uU3RhdGUoKVxuICAgICAgICAgIC5tYXAoKGNvbCkgPT4gY29sLmNvbElkKVxuICAgICAgICAgIC5maWx0ZXIoKGNvbElkKSA9PiAhZGlzcGxheWVkQ29sdW1uSWRzLmluY2x1ZGVzKGNvbElkKSk7XG5cbiAgICAgICAgYWdHcmlkLmFwaS5zZXRDb2x1bW5zVmlzaWJsZShoaWRlQ29sdW1ucywgZmFsc2UpO1xuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGRpc3BsYXllZENvbHVtbklkcywgdHJ1ZSk7XG4gICAgICAgIGFnR3JpZC5hcGkubW92ZUNvbHVtbnMoZGlzcGxheWVkQ29sdW1uSWRzLCAwKTtcbiAgICAgICAgdGhpcy4jcmVtb3ZlQ29sdW1uV2lkdGhzKGhpZGVDb2x1bW5zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjYXBwbHlTb3J0KGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZCA9IHRoaXMuI2N1cnJlbnRBZ0dyaWQoKTtcbiAgICBjb25zdCBhY3RpdmVTb3J0ID0gZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb247XG5cbiAgICBpZiAoYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkPy5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sSWQ6IGFjdGl2ZVNvcnQuaWQsXG4gICAgICAgICAgICBzb3J0OiBhY3RpdmVTb3J0LmRlc2NlbmRpbmcgPyAnZGVzYycgOiAnYXNjJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHsgc29ydDogbnVsbCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNvbHVtbldpZHRoKFxuICAgIGNvbElkOiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lCcmVha3BvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3SWQgPSB0aGlzLnZpZXdJZCgpO1xuICAgIGNvbnN0IHZpZXdTdGF0ZSA9XG4gICAgICB2aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh2aWV3SWQpO1xuICAgIGlmICh2aWV3U3RhdGUgJiYgdmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgY3VycmVudFdpZHRoc1t0b0NvbHVtbldpZHRoTmFtZShicmVha3BvaW50KV1bY29sSWRdID0gd2lkdGg7XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh2aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHZpZXdJZCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3JlbW92ZUNvbHVtbldpZHRocyhjb2xJZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGU/LmdldFZpZXdTdGF0ZUJ5SWQodmlld0lkKTtcblxuICAgIGlmICh2aWV3U3RhdGUgJiYgdmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgZm9yIChjb25zdCBjb2xJZCBvZiBjb2xJZHMpIHtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3hzJ11bY29sSWRdO1xuICAgICAgICBkZWxldGUgY3VycmVudFdpZHRoc1snc20nXVtjb2xJZF07XG4gICAgICB9XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh2aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHZpZXdJZCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI2FwcGx5Q29sdW1uV2lkdGhzKGJyZWFrcG9pbnQ/OiBTa3lCcmVha3BvaW50KTogdm9pZCB7XG4gICAgYnJlYWtwb2ludCA/Pz0gdGhpcy4jYnJlYWtwb2ludCgpO1xuICAgIGNvbnN0IGN1cnJlbnRBZ0dyaWQgPSB0aGlzLiNjdXJyZW50QWdHcmlkKCk7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcblxuICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgICB2aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh2aWV3SWQpO1xuXG4gICAgICBpZiAodmlld1N0YXRlICYmIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgJiYgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcykge1xuICAgICAgICBjb25zdCBjb2x1bW5MaW1pdHMgPSB0aGlzLiNnZXRHcmlkQ29sdW1uTGltaXRzKFxuICAgICAgICAgIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMsXG4gICAgICAgICAgdmlld1N0YXRlLmNvbHVtbldpZHRocyxcbiAgICAgICAgICB0b0NvbHVtbldpZHRoTmFtZShicmVha3BvaW50KSxcbiAgICAgICAgKTtcblxuICAgICAgICBjdXJyZW50QWdHcmlkPy5hcGkuc2l6ZUNvbHVtbnNUb0ZpdCh7IGNvbHVtbkxpbWl0cyB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSxcbiAgICBjdXJyZW50V2lkdGhzOiBTa3lEYXRhVmlld0NvbHVtbldpZHRocyxcbiAgICBicmVha3BvaW50TmFtZToga2V5b2YgU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMsXG4gICk6IElDb2x1bW5MaW1pdFtdIHtcbiAgICBjb25zdCBncmlkQ29sdW1uTGltaXRzOiBJQ29sdW1uTGltaXRbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1ucykge1xuICAgICAgY29uc3QgY29sdW1uV2lkdGggPSBjdXJyZW50V2lkdGhzW2JyZWFrcG9pbnROYW1lXVtjb2x1bW5dO1xuXG4gICAgICBpZiAoY29sdW1uV2lkdGgpIHtcbiAgICAgICAgZ3JpZENvbHVtbkxpbWl0cy5wdXNoKHtcbiAgICAgICAgICBrZXk6IGNvbHVtbixcbiAgICAgICAgICBtaW5XaWR0aDogY29sdW1uV2lkdGgsXG4gICAgICAgICAgbWF4V2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdyaWRDb2x1bW5MaW1pdHM7XG4gIH1cbn1cbiJdfQ==","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 }, ...(ngDevMode ? [{ debugName: \"tableWidthStyle\" }] : []));\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 }, ...(ngDevMode ? [{ debugName: \"rowsWithElements\" }] : []));\n this.pending = signal([], ...(ngDevMode ? [{ debugName: \"pending\" }] : []));\n this.tableWidth = signal(0, ...(ngDevMode ? [{ debugName: \"tableWidth\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixRQUFRLEdBQ1QsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUU5RTs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sMkJBQTJCO0lBeUQ3QixrQkFBa0IsQ0FBb0M7SUFFL0Q7UUExRGdCLFlBQU8sR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUV2RCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFB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WUFBWSxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUyxhQUFhLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7K0dBdkdVLDJCQUEyQjttR0FBM0IsMkJBQTJCLGdLQ3JDeEMseXFCQW9CQSxnS0RZWSxxQkFBcUIsdUtBQUUsY0FBYzs7NEZBS3BDLDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDRSx3QkFBd0IsV0FHekIsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLENBQUMsUUFDMUM7d0JBQ0osU0FBUyxFQUFFLHVDQUF1QztxQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTa3lBZmZpeE1vZHVsZSwgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5saW5lRGVsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHNjYW4sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQgfSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS1jb250ZXh0JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5saW5lIGRlbGV0ZSB0ZW1wbGF0ZSBpbiB0aGUgb3ZlcmxheS5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctZGVsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50LmNzcycsXG4gIGltcG9ydHM6IFtTa3lJbmxpbmVEZWxldGVNb2R1bGUsIFNreUFmZml4TW9kdWxlXSxcbiAgaG9zdDoge1xuICAgICdbc3R5bGVdJzogJ1wiLS10YWJsZS13aWR0aDogXCIgKyB0YWJsZVdpZHRoU3R5bGUoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCk7XG5cbiAgcHJvdGVjdGVkIHRhYmxlV2lkdGhTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0YWJsZVdpZHRoID0gdGhpcy50YWJsZVdpZHRoKCk7XG4gICAgaWYgKHRhYmxlV2lkdGggPiAwKSB7XG4gICAgICByZXR1cm4gYCR7dGFibGVXaWR0aH1weGA7XG4gICAgfVxuICAgIHJldHVybiAnYXV0byc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByb3dzV2l0aEVsZW1lbnRzID0gY29tcHV0ZWQoXG4gICAgKCk6IHsgcm93SWQ6IHN0cmluZzsgaW5jcmVtZW50OiBzdHJpbmc7IGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCB9W10gPT4ge1xuICAgICAgY29uc3Qgcm93cyA9IHRoaXMuc2VydmljZS5yb3dzKCk7XG4gICAgICBjb25zdCBncmlkRWxlbWVudCA9IHRoaXMuc2VydmljZS5ncmlkRWxlbWVudCgpO1xuICAgICAgY29uc3QgZ3JpZEFwaSA9IHRoaXMuc2VydmljZS5ncmlkQXBpKCk7XG4gICAgICBjb25zdCBpbmNyZW1lbnQgPSB0aGlzLmdyaWRDaGFuZ2VzKCk7XG4gICAgICBpZiAoIWdyaWRFbGVtZW50IHx8ICFncmlkQXBpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByb3dzXG4gICAgICAgIC5maWx0ZXIoKHJvd0lkKSA9PiAhIXJvd0lkICYmICEhZ3JpZEFwaS5nZXRSb3dOb2RlKHJvd0lkKSlcbiAgICAgICAgLm1hcCgocm93SWQpID0+IHtcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZ3JpZEVsZW1lbnRbMF0/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihgXG4gICAgICAgICAgW3Jvdy1pZD1cIiR7cm93SWR9XCJdIGRpdlthcmlhLWNvbGluZGV4XSxcbiAgICAgICAgICAuYWctcm93LnNreS1hZy1ncmlkLXJvdy0ke3Jvd0lkfSBkaXZbYXJpYS1jb2xpbmRleF1cbiAgICAgICAgYCk7XG4gICAgICAgICAgcmV0dXJuIHsgcm93SWQsIGVsZW1lbnQsIGluY3JlbWVudDogYCR7cm93SWR9LSR7aW5jcmVtZW50fWAgfTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVuZGluZyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFibGVXaWR0aCA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIC8vIEZvcmNlIHJlZHJhd2luZyBvdmVybGF5cyB3aGVuIHRoZSBncmlkIGNoYW5nZXMgYnkgaW5jcmVtZW50aW5nIGEgbnVtYmVyLlxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JpZENoYW5nZXMgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5zZXJ2aWNlLmdyaWRBcGkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGdyaWRBcGkpID0+XG4gICAgICAgIGdyaWRBcGlcbiAgICAgICAgICA/IG1lcmdlKFxuICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZEFwaSwgJ2NvbXBvbmVudFN0YXRlQ2hhbmdlZCcpLFxuICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZEFwaSwgJ2ZpcnN0RGF0YVJlbmRlcmVkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAnZ3JpZFNpemVDaGFuZ2VkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAnbW9kZWxVcGRhdGVkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAncm93RGF0YVVwZGF0ZWQnKSxcbiAgICAgICAgICAgICkucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KGdyaWRBcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAgIDogb2YodW5kZWZpbmVkKSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoMSksXG4gICAgICBtYXAoKCkgPT4gMSksXG4gICAgICBzY2FuKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsKSxcbiAgICApLFxuICAgIHsgaW5pdGlhbFZhbHVlOiAwIH0sXG4gICk7XG5cbiAgcmVhZG9ubHkgI3Jlc2l6ZU9ic2VydmVyU3ZjID0gaW5qZWN0KFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gTWFpbnRhaW4gdGFibGUgd2lkdGggd2hlbiB0aGUgZ3JpZCBpcyByZXNpemVkLlxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnNlcnZpY2UuZ3JpZEVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChlbCk6IGVsIGlzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+W10gPT4gQXJyYXkuaXNBcnJheShlbCkgJiYgISFlbFswXSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkRWxlbWVudCkgPT5cbiAgICAgICAgICB0aGlzLiNyZXNpemVPYnNlcnZlclN2Y1xuICAgICAgICAgICAgLm9ic2VydmUoZ3JpZEVsZW1lbnRbMF0pXG4gICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gZ3JpZEVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkpLFxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHRhYmxlV2lkdGgpID0+IHtcbiAgICAgICAgdGhpcy50YWJsZVdpZHRoLnNldCh0YWJsZVdpZHRoKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gQ2xlYW4gdXAgcGVuZGluZyByb3dzIHdoZW4gdGhlIGdyaWQgZGF0YSBpcyB1cGRhdGVkLlxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnNlcnZpY2UuZ3JpZEFwaSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGdyaWRBcGkpOiBncmlkQXBpIGlzIEdyaWRBcGkgPT4gISFncmlkQXBpKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkQXBpKSA9PlxuICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAncm93RGF0YVVwZGF0ZWQnKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKGZyb21FdmVudChncmlkQXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBncmlkQXBpKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGdyaWRBcGkpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nLnVwZGF0ZSgocGVuZGluZykgPT5cbiAgICAgICAgICBwZW5kaW5nLmZpbHRlcigocm93SWQpID0+ICEhZ3JpZEFwaS5nZXRSb3dOb2RlKHJvd0lkKSksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5jZWxEZWxldGUocm93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jYW5jZWxSb3dEZWxldGUubmV4dChyb3dJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlybURlbGV0ZShyb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nLnVwZGF0ZSgocGVuZGluZykgPT4gcGVuZGluZy5jb25jYXQocm93SWQpKTtcbiAgICB0aGlzLnNlcnZpY2UuY29uZmlybVJvd0RlbGV0ZS5uZXh0KHJvd0lkKTtcbiAgfVxufVxuIiwiQGZvciAocm93IG9mIHJvd3NXaXRoRWxlbWVudHMoKTsgdHJhY2sgcm93LmluY3JlbWVudCkge1xuICBAaWYgKHJvdy5lbGVtZW50Py5vZmZzZXRQYXJlbnQgJiYgcm93LmVsZW1lbnQ7IGFzIGVsZW1lbnQpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1hZy1ncmlkLXJvdy1kZWxldGVcIlxuICAgICAgYWZmaXhQbGFjZW1lbnQ9XCJhYm92ZVwiXG4gICAgICBhZmZpeFZlcnRpY2FsQWxpZ25tZW50PVwidG9wXCJcbiAgICAgIGFmZml4SG9yaXpvbnRhbEFsaWdubWVudD1cImxlZnRcIlxuICAgICAgW2lkXT1cIidyb3ctZGVsZXRlLXJlZi0nICsgcm93LnJvd0lkXCJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnXCJcbiAgICAgIFtza3lBZmZpeFRvXT1cImVsZW1lbnRcIlxuICAgICAgW2FmZml4SXNTdGlja3ldPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPHNreS1pbmxpbmUtZGVsZXRlXG4gICAgICAgIFtwZW5kaW5nXT1cInBlbmRpbmcoKS5pbmNsdWRlcyhyb3cucm93SWQgPz8gJycpXCJcbiAgICAgICAgKGNhbmNlbFRyaWdnZXJlZCk9XCJjYW5jZWxEZWxldGUocm93LnJvd0lkKVwiXG4gICAgICAgIChkZWxldGVUcmlnZ2VyZWQpPVwiY29uZmlybURlbGV0ZShyb3cucm93SWQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIH1cbn1cbiJdfQ==","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 #overlay;\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([], ...(ngDevMode ? [{ debugName: \"rowDeleteIds\" }] : []));\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, ...(ngDevMode ? [{ debugName: \"agGrid\" }] : []));\n this.#agGridBodyViewport = new BehaviorSubject([]);\n this.#agGridBodyClipElements = new BehaviorSubject([]);\n this.#ngUnsubscribe = new Subject();\n this.#rowDeleteIdsInternal = linkedSignal(...(ngDevMode ? [{ debugName: \"#rowDeleteIdsInternal\", 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 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 this.#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 this.#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(this.#overlay.closed), distinctUntilChanged())\n .subscribe((zIndex) => {\n if (this.#overlay) {\n this.#overlay.componentRef.instance.zIndex = zIndex.toString(10);\n }\n });\n this.#clipPath\n .pipe(takeUntil(this.#ngUnsubscribe), takeUntil(this.#overlay.closed), distinctUntilChanged())\n .subscribe((clipPath) => {\n this.#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 if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.15\", 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.3.15\", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyAgGridRowDelete]',\n }]\n }], ctorParameters: () => [], propDecorators: { rowDeleteIds: [{ type: i0.Input, args: [{ isSignal: true, alias: \"rowDeleteIds\", required: false }] }, { type: i0.Output, args: [\"rowDeleteIdsChange\"] }], rowDeleteCancel: [{ type: i0.Output, args: [\"rowDeleteCancel\"] }], rowDeleteConfirm: [{ type: i0.Output, args: [\"rowDeleteConfirm\"] }], agGrid: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AgGridAngular), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHlCQUF5QixHQUMxQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sMkJBQTJCO0lBb0I3QixtQkFBbUIsQ0FFdEI7SUFDRyx1QkFBdUIsQ0FFMUI7SUFDRyxjQUFjLENBQXVCO0lBQ3JDLHFCQUFxQixDQVEzQjtJQUNNLFNBQVMsQ0FBc0Q7SUFDL0QsT0FBTyxDQUE0QjtJQUNuQyxXQUFXLENB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SHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7d1pBbUIwQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIGNvbnRlbnRDaGlsZCxcbiAgaW5qZWN0LFxuICBsaW5rZWRTaWduYWwsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgU0tZX1NUQUNLSU5HX0NPTlRFWFQsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG4gIFNreVNjcm9sbGFibGVIb3N0U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRBcGksIEdyaWRPcHRpb25zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmcm9tRXZlbnQsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU0tZX0FHX0dSSURfUk9XX0RFTEVURV9DT05URVhULFxuICBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0LFxufSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS1jb250ZXh0JztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY2FuY2VsLWFyZ3MnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3MgfSBmcm9tICcuL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jb25maXJtLWFyZ3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5QWdHcmlkUm93RGVsZXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZURpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIElEcyBvZiB0aGUgZGF0YSBpbiB0aGUgcm93cyB3aGVyZSB0aGUgaW5saW5lIGRlbGV0ZSBhcHBlYXJzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvd0RlbGV0ZUlkcyA9IG1vZGVsPHN0cmluZ1tdPihbXSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3NgIG9iamVjdCB3aGVuIGEgcm93J3MgaW5saW5lIGRlbGV0ZSBpcyBjYW5jZWxsZWQuXG4gICAqL1xuICBwdWJsaWMgcm93RGVsZXRlQ2FuY2VsID0gb3V0cHV0PFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzYCBvYmplY3Qgd2hlbiBhIHJvdydzIGlubGluZSBkZWxldGUgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgcHVibGljIHJvd0RlbGV0ZUNvbmZpcm0gPSBvdXRwdXQ8U2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3M+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFnR3JpZCA9IGNvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyKTtcblxuICByZWFkb25seSAjYWdHcmlkQm9keVZpZXdwb3J0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PltdXG4gID4oW10pO1xuICByZWFkb25seSAjYWdHcmlkQm9keUNsaXBFbGVtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5bXVxuICA+KFtdKTtcbiAgcmVhZG9ubHkgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjcm93RGVsZXRlSWRzSW50ZXJuYWwgPSBsaW5rZWRTaWduYWw8dW5rbm93bltdLCBzdHJpbmdbXT4oe1xuICAgIHNvdXJjZTogdGhpcy5yb3dEZWxldGVJZHMsXG4gICAgY29tcHV0YXRpb246ICh2YWx1ZSkgPT5cbiAgICAgIFsuLi5uZXcgU2V0KHZhbHVlKV1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAubWFwKFN0cmluZylcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSksXG4gICAgZXF1YWw6IChhLCBiKSA9PiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgodiwgaSkgPT4gdiA9PT0gYltpXSksXG4gIH0pO1xuICByZWFkb25seSAjY2xpcFBhdGggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgI3pJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3QoOTk4KTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICByZWFkb25seSAjZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgcmVhZG9ubHkgI292ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KFNreU92ZXJsYXlTZXJ2aWNlKTtcbiAgI292ZXJsYXk6IFNreU92ZXJsYXlJbnN0YW5jZSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgI3Jvd0RlbGV0ZVN2YzogU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dDtcbiAgcmVhZG9ubHkgI3Njcm9sbGFibGVIb3N0U2VydmljZSA9IGluamVjdChTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2UpO1xuICByZWFkb25seSAjc3RhY2tpbmdDb250ZXh0ID0gaW5qZWN0KFNLWV9TVEFDS0lOR19DT05URVhULCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh0aGlzLiNzdGFja2luZ0NvbnRleHQpIHtcbiAgICAgIHRoaXMuI3N0YWNraW5nQ29udGV4dC56SW5kZXhcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLiN6SW5kZXgubmV4dCh6SW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMgPSBuZXcgU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dChcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZUlkc0ludGVybmFsLmFzUmVhZG9ubHkoKSxcbiAgICAgIHRvU2lnbmFsKHRoaXMuI2FnR3JpZEJvZHlWaWV3cG9ydCksXG4gICAgICBzaWduYWw8R3JpZEFwaSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcbiAgICApO1xuXG4gICAgdGhpcy4jcm93RGVsZXRlU3ZjLmNhbmNlbFJvd0RlbGV0ZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocm93SWQpID0+IHtcbiAgICAgICAgaWYgKHJvd0lkKSB7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVJZHMudXBkYXRlKChyb3dJZHMpID0+XG4gICAgICAgICAgICByb3dJZHMuZmlsdGVyKChpZCkgPT4gaWQgIT09IHJvd0lkKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMucm93RGVsZXRlQ2FuY2VsLmVtaXQoeyBpZDogcm93SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcm93RGVsZXRlU3ZjLmNvbmZpcm1Sb3dEZWxldGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJvd0lkKSA9PiB7XG4gICAgICAgIGlmIChyb3dJZCkge1xuICAgICAgICAgIHRoaXMucm93RGVsZXRlQ29uZmlybS5lbWl0KHsgaWQ6IHJvd0lkIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGFnR3JpZCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmFnR3JpZCk7XG4gICAgY29uc3QgYWdHcmlkUmVhZHkgPSBhZ0dyaWQucGlwZShcbiAgICAgIGZpbHRlcigoYWdHcmlkKSA9PiAhIWFnR3JpZCksXG4gICAgICBzd2l0Y2hNYXAoKGFnR3JpZDogQWdHcmlkQW5ndWxhcikgPT4gYWdHcmlkLmdyaWRSZWFkeSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICk7XG4gICAgYWdHcmlkUmVhZHkuc3Vic2NyaWJlKChyZWFkeSkgPT4ge1xuICAgICAgdGhpcy4jYWdHcmlkQm9keVZpZXdwb3J0Lm5leHQoW1xuICAgICAgICBuZXcgRWxlbWVudFJlZihcbiAgICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICdkaXYuYWctcm9vdC13cmFwcGVyJyxcbiAgICAgICAgICApIGFzIEhUTUxEaXZFbGVtZW50LFxuICAgICAgICApLFxuICAgICAgXSk7XG4gICAgICB0aGlzLiNyb3dEZWxldGVTdmMuZ3JpZEFwaS5zZXQocmVhZHkuYXBpKTtcbiAgICB9KTtcbiAgICBhZ0dyaWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGdyaWQpID0+ICEhZ3JpZCksXG4gICAgICAgIHN3aXRjaE1hcCgoZ3JpZCkgPT5cbiAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGdyaWQuZmlyc3REYXRhUmVuZGVyZWQuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgICAgICBncmlkLnJvd0RhdGFVcGRhdGVkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgICAgICAgYWdHcmlkUmVhZHkucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb21FdmVudChncmlkLmFwaSwgJ2dyaWRPcHRpb25zQ2hhbmdlZCcpKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgICBhZ0dyaWRSZWFkeS5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgZnJvbUV2ZW50KGdyaWQuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpLnBpcGUodGFrZSgxKSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFydFdpdGgoZ3JpZC5hcGk/LmdldEdyaWRPcHRpb24oJ2RvbUxheW91dCcpKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBncmlkLmFwaT8uZ2V0R3JpZE9wdGlvbignZG9tTGF5b3V0JykpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChkb21MYXlvdXQ6IEdyaWRPcHRpb25zWydkb21MYXlvdXQnXSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiNhZ0dyaWRCb2R5Vmlld3BvcnQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgQUcgR3JpZCdzIGBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0J2Agb3B0aW9uLFxuICAgICAgICAvLyB0aGUgZ3JpZCdzIGJvZHkgdmlld3BvcnQgaXMgY2xpcHBlZCBieSB0aGUgc2Nyb2xsYWJsZSBob3N0LlxuICAgICAgICAvLyBCdXQgd2hlbiB1c2luZyBgZG9tTGF5b3V0OiAnbm9ybWFsJ2AsIHRoZSBncmlkJ3MgYm9keSB2aWV3cG9ydFxuICAgICAgICAvLyBzaG91bGQgYmUgdXNlZCBhcyB0aGUgc2Nyb2xsYWJsZSBob3N0IGZvciB0aGUgcm93IGRlbGV0ZSBvdmVybGF5LlxuICAgICAgICB0aGlzLiNhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzLm5leHQoYWdHcmlkQm9keUNsaXBFbGVtZW50cyk7XG4gICAgICB9KTtcblxuICAgIGFnR3JpZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoYWdHcmlkKSA9PiAhIWFnR3JpZCksXG4gICAgICAgIHN3aXRjaE1hcCgoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKSA9PiBhZ0dyaWQucm93RGF0YVVwZGF0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgdGhpcy5yb3dEZWxldGVJZHMudXBkYXRlKChyb3dJZHMpID0+XG4gICAgICAgICAgKHJvd0lkcyA/PyBbXSkuZmlsdGVyKChpZCkgPT4gISFldnQuYXBpLmdldFJvd05vZGUoaWQpKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNvdmVybGF5ID0gdGhpcy4jb3ZlcmxheVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICBzaG93QmFja2Ryb3A6IGZhbHNlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBlbmFibGVDbG9zZTogZmFsc2UsXG4gICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy4jb3ZlcmxheS5hdHRhY2hDb21wb25lbnQoU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50LCBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCxcbiAgICAgICAgdXNlVmFsdWU6IHRoaXMuI3Jvd0RlbGV0ZVN2YyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgdGhpcy4jekluZGV4XG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jb3ZlcmxheS5jbG9zZWQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoekluZGV4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLiNvdmVybGF5KSB7XG4gICAgICAgICAgdGhpcy4jb3ZlcmxheS5jb21wb25lbnRSZWYuaW5zdGFuY2UuekluZGV4ID0gekluZGV4LnRvU3RyaW5nKDEwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy4jY2xpcFBhdGhcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNvdmVybGF5LmNsb3NlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjbGlwUGF0aCkgPT4ge1xuICAgICAgICB0aGlzLiNvdmVybGF5Py5jb21wb25lbnRSZWYuaW5zdGFuY2UudXBkYXRlQ2xpcFBhdGgoY2xpcFBhdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3Njcm9sbGFibGVIb3N0U2VydmljZVxuICAgICAgLndhdGNoU2Nyb2xsYWJsZUhvc3RDbGlwUGF0aENoYW5nZXMoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYsXG4gICAgICAgIHRoaXMuI2FnR3JpZEJvZHlDbGlwRWxlbWVudHMuYXNPYnNlcnZhYmxlKCksXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjbGlwUGF0aCkgPT4ge1xuICAgICAgICB0aGlzLiNjbGlwUGF0aC5uZXh0KGNsaXBQYXRoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgIH1cbiAgfVxufVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", ngImport: i0, type: SkyAgGridModule, imports: [AgGridAngular,\n CommonModule,\n SkyAgGridResourcesModule,\n SkyAgGridWrapperComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBaUJ4RSxNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO2dIQUFmLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFDWixvQ0FBb0M7WUFDcEMsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix5QkFBeUIsYUFHekIsb0NBQW9DO1lBQ3BDLDJCQUEyQjtZQUMzQix5QkFBeUI7Z0hBR2hCLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFFWix3QkFBd0I7WUFFeEIseUJBQXlCOzs0RkFRaEIsZUFBZTtrQkFmM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9DQUFvQzt3QkFDcEMsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQWdHcmlkQW5ndWxhcixcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlLFxuICAgIFNreUFnR3JpZFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkTW9kdWxlIHt9XG4iXX0=","/**\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 /**\n * Returns the difference between the minuend and subtrahend. If the minuend is not defined, returns 0.\n * @param minuend The number from which another number is subtracted.\n * @param subtrahend The number that is subtracted from the minuend.\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUNsQyxNQUFxQztRQUVyQyxJQUFJLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUM1QixJQUNFLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFNBQVM7Z0JBQ3JDLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFDbEMsQ0FBQztnQkFDRCxPQUFPLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQztZQUNqRCxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sZ0NBQWdDLENBQUMsT0FBTyxDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNuQyxPQUFPLGdDQUFnQyxDQUFDLFdBQVcsQ0FBQztnQkFDdEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNwRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FDMUIsT0FBa0MsRUFDbEMsVUFBa0I7UUFFbEIsZ0ZBQWdGO1FBQ2hGLHVFQUF1RTtRQUN2RSxPQUFPLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcywgS2V5Q29kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpbml0aWFsIGFjdGlvbiB0aGF0IGEgY2VsbCBlZGl0b3Igc2hvdWxkIHRha2Ugd2hlbiBpbml0aWFsaXplZC5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgZWRpdG9yJ3MgaW5pdGlhbGl6aW5nIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldEVkaXRvckluaXRpYWxBY3Rpb24oXG4gICAgcGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyB8IHVuZGVmaW5lZCxcbiAgKTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24ge1xuICAgIGlmIChwYXJhbXM/LmNlbGxTdGFydGVkRWRpdCkge1xuICAgICAgaWYgKFxuICAgICAgICBwYXJhbXMuZXZlbnRLZXkgPT09IEtleUNvZGUuQkFDS1NQQUNFIHx8XG4gICAgICAgIHBhcmFtcy5ldmVudEtleSA9PT0gS2V5Q29kZS5ERUxFVEVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlO1xuICAgICAgfSBlbHNlIGlmIChwYXJhbXMuZXZlbnRLZXk/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwYXJhbXMuZXZlbnRLZXkgIT09IEtleUNvZGUuRjIpIHtcbiAgICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIG1pbnVlbmQgYW5kIHN1YnRyYWhlbmQuIElmIHRoZSBtaW51ZW5kIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIDAuXG4gICAqIEBwYXJhbSBtaW51ZW5kIFRoZSBudW1iZXIgZnJvbSB3aGljaCBhbm90aGVyIG51bWJlciBpcyBzdWJ0cmFjdGVkLlxuICAgKiBAcGFyYW0gc3VidHJhaGVuZCBUaGUgbnVtYmVyIHRoYXQgaXMgc3VidHJhY3RlZCBmcm9tIHRoZSBtaW51ZW5kLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdWJ0cmFjdE9yWmVybyhcbiAgICBtaW51ZW5kOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIHN1YnRyYWhlbmQ6IG51bWJlcixcbiAgKTogbnVtYmVyIHtcbiAgICAvLyBTd2FwcGluZyBtaW51ZW5kIHdpdGggc3VidHJhaGVuZCB3aGVuIG1pbnVlbmQgaXMgbnVsbCBvciB1bmRlZmluZWQgcmVzdWx0cyBpblxuICAgIC8vIHRoZSBzdWJ0cmFoZW5kIGJlaW5nIHN1YnRyYWN0ZWQgZnJvbSBpdHNlbGYsIHdoaWNoIHdpbGwgYWx3YXlzIGJlIDAuXG4gICAgcmV0dXJuIChtaW51ZW5kID8/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.3.15\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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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bkIscUJBQXFCO3dCQUNyQixhQUFhO3FCQUNkOztzQkFpQkEsU0FBUzt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O3NCQUczRCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2F1dG9jb21wbGV0ZS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBzZWxlY3Rpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZEF1dG9jb21wbGV0ZVByb3BlcnRpZXMgPSB7fTtcblxuICAjYXV0b2NvbXBsZXRlT3BlbiA9IGZhbHNlO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuICAjcGFyYW1zOiBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKSBhcyBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24ocGFyYW1zKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnc2VsZWN0aW9uJyk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMuI3BhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLiNwYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLnJvd051bWJlciA9ICh0aGlzLiNwYXJhbXMubm9kZT8ucm93SW5kZXggPz8gMCkgKyAxO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlKSB7XG4gICAgICAgICAgY29uc3QgY2hhclByZXNzID0gdGhpcy4jcGFyYW1zPy5ldmVudEtleSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICAgIGNoYXJQcmVzcy5sZW5ndGgsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKT8udmFsdWU7XG4gICAgcmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCA/IHZhbCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9jb21wbGV0ZU9wZW5DaGFuZ2UoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jYXV0b2NvbXBsZXRlT3BlbiA9ICRldmVudDtcbiAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICB9XG5cbiAgI3N0b3BFZGl0aW5nT25CbHVyKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLiNhdXRvY29tcGxldGVPcGVuICYmXG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5nZXRHcmlkT3B0aW9uKCdzdG9wRWRpdGluZ1doZW5DZWxsc0xvc2VGb2N1cycpICYmXG4gICAgICAhdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm1hdGNoZXMoJzpmb2N1cy13aXRoaW4nKVxuICAgICkge1xuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuc3RvcEVkaXRpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1hdXRvY29tcGxldGVcIiBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIj5cbiAgPHNreS1hdXRvY29tcGxldGVcbiAgICBbYWxsb3dBbnlWYWx1ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmFsbG93QW55VmFsdWVcIlxuICAgIFtkYXRhXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGF0YVwiXG4gICAgW2RlYm91bmNlVGltZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRlYm91bmNlVGltZVwiXG4gICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgW2hpZ2hsaWdodFNlYXJjaFRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5oaWdobGlnaHRTZWFyY2hUZXh0ID8/IHRydWVcIlxuICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5wcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hcIlxuICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoRmlsdGVyc1wiXG4gICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgIFwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJcbiAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VsZWN0aW9uQ2hhbmdlICYmXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VsZWN0aW9uQ2hhbmdlKCRldmVudClcbiAgICBcIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uQXV0b2NvbXBsZXRlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgI3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGVcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGlvblwiXG4gICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgICBcIlxuICAgIC8+XG4gIDwvc2t5LWF1dG9jb21wbGV0ZT5cbjwvZGl2PlxuIl19","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 else if (event.target === this.input?.nativeElement) {\n this.#stopEditingOnBlur();\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 #stopEditingOnBlur() {\n if (this.params?.api.getGridOption('stopEditingWhenCellsLoseFocus')) {\n this.params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellEditorCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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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O1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQXJJVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyxrUEFnQkgsVUFBVSw2QkN4RHhELHVmQWVBLG9aRG1CSSxXQUFXLGtqQkFDWCxtQkFBbUIsa1dBQ25CLG9CQUFvQix5S0FDcEIsYUFBYTs7NEZBR0osb0NBQW9DO2tCQVpoRCxTQUFTOytCQUNFLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixhQUFhO3FCQUNkOztzQkFrQkEsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O3NCQUd2RCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUF1dG9udW1lcmljTW9kdWxlIH0gZnJvbSAnQHNreXV4L2F1dG9udW1lcmljJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1jdXJyZW5jeS1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDdXJyZW5jeVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9jdXJyZW5jeS1wcm9wZXJ0aWVzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItY3VycmVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2t5QXV0b251bWVyaWNNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzICYge1xuICAgIGlzQ2FuY2VsbGFibGU6IGJvb2xlYW47XG4gIH0gPSB7XG4gICAgaXNDYW5jZWxsYWJsZTogZmFsc2UsXG4gIH07XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGN1cnJlbmN5ID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeSxcbiAgfSk7XG4gIHB1YmxpYyBwYXJhbXM6IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JDdXJyZW5jeScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMucGFyYW1zPy5lR3JpZENlbGwpIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgaW5wdXQuXG4gICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmVmcmVzaENlbGxzIEFQSSBpcyBjYWxsZWQuXG4gICAgICB0aGlzLmFmdGVyR3VpQXR0YWNoZWQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy5wYXJhbXMuYXBpLmdldERpc3BsYXlOYW1lRm9yQ29sdW1uKFxuICAgICAgdGhpcy5wYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMucGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB7XG4gICAgICAuLi4odGhpcy5wYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyB8fCB7XG4gICAgICAgIGRlY2ltYWxQbGFjZXM6IDIsXG4gICAgICAgIGN1cnJlbmN5U3ltYm9sOiAnJCcsXG4gICAgICB9KSxcbiAgICAgIGlzQ2FuY2VsbGFibGU6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogYWZ0ZXJHdWlBdHRhY2hlZCBpcyBjYWxsZWQgYnkgYWdHcmlkIGFmdGVyIHRoZSBlZGl0b3IgaXMgcmVuZGVyZWQgaW4gdGhlIERPTS4gT25jZSBpdCBpcyBhdHRhY2hlZCB0aGUgZWRpdG9yIGlzIHJlYWR5IHRvIGJlIGZvY3VzZWQgb24uXG4gICAqL1xuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICAvLyBBRyBHcmlkIHNldHMgZm9jdXMgdG8gdGhlIGNlbGwgdmlhIHNldFRpbWVvdXQsIGFuZCB0aGlzIHF1ZXVlcyB0aGUgaW5wdXQgdG8gZm9jdXMgYWZ0ZXIgdGhhdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgLy8gVGhpcyBzZXR1cCBpcyBpbiBgYWZ0ZXJHdWlBdHRhY2hlZGAgZHVlIHRvIHRoZSBsaWZlY3ljbGUgb2YgYXV0b251bWVyaWMgd2hpY2ggd2lsbCBoaWdobGlnaHQgdGhlIGluaXRpYWwgdmFsdWUgaWYgaXQgaXMgaW4gcGxhY2Ugd2hlbiBpdCByZW5kZXJzLlxuICAgICAgLy8gU2luY2Ugd2UgZG9uJ3Qgd2FudCB0aGF0LCB3ZSBzZXQgdGhlIGluaXRpYWwgdmFsdWUgYWZ0ZXIgYXV0b251bWVyaWMgaW5pdGlhbGl6ZXMuXG4gICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKFxuICAgICAgICB0aGlzLnBhcmFtcyxcbiAgICAgICk7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jdXJyZW5jeTtcblxuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgcGFyc2VGbG9hdChTdHJpbmcodGhpcy5wYXJhbXM/LmV2ZW50S2V5KSkgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyc2VGbG9hdChTdHJpbmcodGhpcy5wYXJhbXM/LnZhbHVlKSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkICYmXG4gICAgICAgICh0aGlzLnBhcmFtcz8udmFsdWUgPz8gJycpICE9PSAnJ1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gdGhlIGNlbGwgaXMgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgRW50ZXIga2V5LCB3ZSBuZWVkIHRvIHN1cHByZXNzIHRoZSBmaXJzdCBgb25QcmVzc0VudGVyYC5cbiAgICAgIHRoaXMuI2luaXRpYWxpemVkID0gdGhpcy5wYXJhbXM/LmV2ZW50S2V5ICE9PSAnRW50ZXInO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldFZhbHVlIGlzIGNhbGxlZCBieSBhZ0dyaWQgd2hlbiBlZGl0aW5nIGlzIHN0b3BwZWQgdG8gZ2V0IHRoZSBuZXcgdmFsdWUgb2YgdGhlIGNlbGwuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeS52YWx1ZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGF1dG9OdW1lcmljIGxpYnJhcnkncyBldmVudCBoYW5kbGVyIHN1cHByZXNzZXMgdGhlIGVzY2FwZSBrZXkgZXZlbnQuIFRoaXMgYWRkaXRpb25hbCBoYW5kbGVyIHJlLWVuYWJsZXMgQUcgR3JpZCdzIGRlZmF1bHQgZnVuY3Rpb25hbGl0eS5cbiAgICovXG4gIHB1YmxpYyBvblByZXNzRXNjYXBlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmFtcykge1xuICAgICAgdGhpcy5wYXJhbXMuYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICAgICAgdGhpcy5wYXJhbXMuYXBpLnNldEZvY3VzZWRDZWxsKHRoaXMucGFyYW1zLnJvd0luZGV4LCB0aGlzLnBhcmFtcy5jb2x1bW4pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblByZXNzRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zICYmIHRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLnBhcmFtcy5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgICB0aGlzLiNpbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSkge1xuICAgICAgdGhpcy5wYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIj5cbiAgPGlucHV0XG4gICAgI3NreUNlbGxFZGl0b3JDdXJyZW5jeVxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3VycmVuY3lcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW3NreUF1dG9udW1lcmljXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXNcIlxuICAgIFtza3lBdXRvbnVtZXJpY0Zvcm1DaGFuZ2VzVW5mb3JtYXR0ZWRdPVwicGFyYW1zPy5ldmVudEtleT8ubGVuZ3RoID09PSAxXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwib25QcmVzc0VudGVyKClcIlxuICAgIChrZXl1cC5lc2NhcGUpPVwib25QcmVzc0VzY2FwZSgpXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19","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 { 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 {\n constructor() {\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 #calendarOpen;\n #params;\n #triggerType;\n #elementRef;\n #changeDetector;\n #themeSvc;\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 isPopup() {\n return true;\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.3.15\", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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 }], 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.3.15\", 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 }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUs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bmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9kYXRldGltZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXItcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9kYXRlcGlja2VyLXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lEYXRlcGlja2VyTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb2x1bW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBkYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pO1xuICBwdWJsaWMgcm93SGVpZ2h0V2l0aG91dEJvcmRlcnM6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZERhdGVwaWNrZXJQcm9wZXJ0aWVzID0ge307XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgZGF0ZXBpY2tlcklucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZXNvbHZlZERhdGVGb3JtYXQgPSAnJztcblxuICAjY2FsZW5kYXJPcGVuID0gZmFsc2U7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjdGhlbWVTdmMgPSBpbmplY3QoU2t5VGhlbWVTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy4jcGFyYW1zPy5lR3JpZENlbGxcbiAgICApIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgZGF0ZXBpY2tlciBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DYWxlbmRhck9wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jY2FsZW5kYXJPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICBwdWJsaWMgb25EYXRlRm9ybWF0Q2hhbmdlKGRhdGVGb3JtYXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVzb2x2ZWREYXRlRm9ybWF0ID0gZGF0ZUZvcm1hdDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIGVkaXRvciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgY2VsbCBlZGl0b3IgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ2RhdGUnKTtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLmV2ZW50S2V5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLiNwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyB8fCB7fTtcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMuI3BhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLiNwYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLmNvbHVtbldpZHRoID0gdGhpcy4jcGFyYW1zLmNvbHVtbi5nZXRBY3R1YWxXaWR0aCgpO1xuICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9IHRoaXMuY29sdW1uV2lkdGggLSAyO1xuICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSAodGhpcy4jcGFyYW1zLm5vZGUucm93SGVpZ2h0IGFzIG51bWJlcikgLSAzO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy4jcGFyYW1zLnJvd0luZGV4ICsgMTtcblxuICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZS5zdWJzY3JpYmUoKHRoZW1lU2V0dGluZ3MpID0+IHtcbiAgICAgIGlmICh0aGVtZVNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncy50aGVtZS5uYW1lID09PSAnbW9kZXJuJykge1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnMgPSB0aGlzLmNvbHVtbldpZHRoO1xuICAgICAgICB0aGlzLnJvd0hlaWdodFdpdGhvdXRCb3JkZXJzID0gdGhpcy4jcGFyYW1zPy5ub2RlPy5yb3dIZWlnaHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnMgPVxuICAgICAgICAgIHRoaXMuY29sdW1uV2lkdGggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHRoaXMuY29sdW1uV2lkdGggLSAyO1xuICAgICAgICB0aGlzLnJvd0hlaWdodFdpdGhvdXRCb3JkZXJzID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLnN1YnRyYWN0T3JaZXJvKFxuICAgICAgICAgIHRoaXMuI3BhcmFtcz8ubm9kZS5yb3dIZWlnaHQsXG4gICAgICAgICAgMyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1BvcHVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldFBvcHVwUG9zaXRpb24oKTogJ292ZXInIHwgJ3VuZGVyJyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICdvdmVyJztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0ZXBpY2tlcklucHV0RWwgPSB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudCBhc1xuICAgICAgICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChkYXRlcGlja2VySW5wdXRFbCkge1xuICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5mb2N1cygpO1xuXG4gICAgICAgIC8vIHByb2dyYW1tYXRpY2FsbHkgc2V0IHRoZSB2YWx1ZSBvZiBpbiB0aGUgaW5wdXQ7IGhvd2V2ZXIsIGRvIG5vdCBkbyB0aGlzIHZpYSB0aGUgZm9ybSBjb250cm9sIHNvIHRoYXQgdGhlIHZhbHVlIGlzIG5vdCBmb3JtYXR0ZWQgd2hlbiBlZGl0aW5nIHN0YXJ0cy5cbiAgICAgICAgLy8gV2F0Y2ggZm9yIHRoZSBmaXJzdCBibHVyIGFuZCBmaXJlIGEgJ2NoYW5nZScgZXZlbnQgYXMgcHJvZ3JhbW1hdGljIGNoYW5nZXMgd29uJ3QgcXVldWUgYSBjaGFuZ2UgZXZlbnQsIGJ1dCB3ZSBuZWVkIHRvIGRvIHRoaXMgc28gdGhhdCBmb3JtYXR0aW5nIGhhcHBlbnMgaWYgdGhlIHVzZXIgdGFicyB0byB0aGUgY2FsZW5kYXIgYnV0dG9uLlxuICAgICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgICBmcm9tRXZlbnQoZGF0ZXBpY2tlcklucHV0RWwsICdibHVyJylcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+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 if (!event.target?.matches('.ag-custom-component-popup *')) {\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.3.15\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLaEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUd6RTs7R0FFRztBQWNILE1BQU0sT0FBTyxrQ0FBa0M7SUFiL0M7UUFvQlMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixlQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUN2QyxTQUFTLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQztnQkFDaEMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNJLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGNBQVMsR0FBdUIsU0FBUyxDQUFDO1FBRXBELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUc1QixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7S0FxSi9DO0lBMUpDLFdBQVcsQ0FBUztJQUNwQixtQkFBbUIsQ0FBUztJQUM1QixPQUFPLENBQXdDO0lBQy9DLFlBQVksQ0FBK0M7SUFDM0QsZUFBZSxDQUE2QjtJQUM1QyxXQUFXLENBQW1DO0lBR3ZDLE1BQU0sQ0FBQyxLQUFpQjtRQUM3QixJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQy9DLENBQUM7WUFDRCx1RUFBdUU7WUFDdkUsb0RBQW9EO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7YUFBTSxJQUNMLENBQUUsS0FBSyxDQUFDLE1BQTZCLEVBQUUsT0FBTyxDQUM1Qyw4QkFBOEIsQ0FDL0IsRUFDRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsTUFBaUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxjQUFjO1lBQzVELENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxTQUFTO2dCQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYTtnQkFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUV4QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLEtBQUssZ0NBQWdDLENBQUMsTUFBTTtvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDckIsTUFBTTtnQkFDUixLQUFLLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQztnQkFDOUMsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELEtBQUssZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNoRDtvQkFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsTUFBTTtZQUNWLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGNBQWM7WUFDakIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQztRQUNoRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUMvQixlQUFlLEVBQ2YsQ0FBQyxLQUF5QixFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRCw4REFBOEQ7SUFDdkQsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ2pELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsZ0dBQWdHO1FBQ2hHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNwRSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuRSxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RCwrQ0FBK0M7Z0JBQy9DLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDM0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQ3hCLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN6QixDQUFDO2dCQUNGLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFlBQVksS0FBSyxnQ0FBZ0MsQ0FBQyxTQUFTLEVBQ2hFLENBQUM7Z0JBQ0QsK0NBQStDO2dCQUMvQyxXQUFXLENBQUMsaUJBQWlCLENBQzNCLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUN4QixXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDekIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFlO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxNQUFlO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELDBCQUEwQixDQUN4QixNQUFpQztRQUVqQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUMxRCxPQUFPLGdDQUFnQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUNFLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDakIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztZQUNoRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOytHQTNLVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQyxpTUM1Qy9DLGsvR0EwRUEsK0VEckNJLGlCQUFpQiw0T0FDakIsV0FBVyxrU0FDWCxtQkFBbUIsK1VBQ25CLGVBQWUsaVhBQ2YsV0FBVzs7NEZBR0Ysa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7cUJBQ1o7O3NCQUtBLFdBQVc7dUJBQUMsZ0JBQWdCOztzQkFzQjVCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUxvb2t1cE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtblJlc2l6ZWRFdmVudCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMgfSBmcm9tICcuLi8uLi9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1sb29rdXAtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcbmltcG9ydCB7IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBTa3lJbnB1dEJveE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUxvb2t1cE1vZHVsZSxcbiAgICBTa3lJZE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpXG4gIHB1YmxpYyB3aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBza3lDb21wb25lbnRQcm9wZXJ0aWVzPzogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcztcbiAgcHVibGljIGlzQWxpdmUgPSBmYWxzZTtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgc2VsZWN0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHtcbiAgICAgIHZhbHVlOiBbXSxcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB9KSxcbiAgfSk7XG4gIHB1YmxpYyB1c2VBc3luY1NlYXJjaCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAjbG9va3VwT3BlbiA9IGZhbHNlO1xuICAjc2VsZWN0aW9uTW9kYWxPcGVuID0gZmFsc2U7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGwpPy5tYXRjaGVzKFxuICAgICAgICAnLmFnLWN1c3RvbS1jb21wb25lbnQtcG9wdXAgKicsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yTG9va3VwUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLiNwYXJhbXMudmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvb2t1cCB2YWx1ZSBtdXN0IGJlIGFuIGFycmF5YCk7XG4gICAgfVxuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKTtcbiAgICB0aGlzLmxhYmVsVGV4dCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hcmlhTGFiZWxsZWRCeVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbCB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmhlYWRlck5hbWUgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5oZWFkZXJUb29sdGlwIHx8XG4gICAgICAgIHBhcmFtcy5jb2xEZWYuZmllbGQgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5jb2xJZDtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jdXBkYXRlQ29tcG9uZW50UHJvcGVydGllcyh0aGlzLiNwYXJhbXMpO1xuICAgIHRoaXMudXNlQXN5bmNTZWFyY2ggPVxuICAgICAgdHlwZW9mIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hBc3luYyA9PT0gJ2Z1bmN0aW9uJztcbiAgICB0aGlzLmlzQWxpdmUgPSB0cnVlO1xuICAgIHRoaXMud2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy4jcGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NvbHVtblJlc2l6ZWQnLFxuICAgICAgKGV2ZW50OiBDb2x1bW5SZXNpemVkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKSA9PT0gdGhpcy4jcGFyYW1zPy5jb2x1bW4uZ2V0Q29sSWQoKSkge1xuICAgICAgICAgIHRoaXMud2lkdGggPSBldmVudC5jb2x1bW4/LmdldEFjdHVhbFdpZHRoKCk7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NhbmNlbEFmdGVyRW5kKCk6IGJvb2xlYW4ge1xuICAgIC8vIFNodXQgZG93biBjb21wb25lbnRzIHRvIGNvbW1pdCB2YWx1ZXMgYmVmb3JlIGZpbmFsIHZhbHVlIHN5bmNzIHRvIGdyaWQuXG4gICAgdGhpcy5pc0FsaXZlID0gZmFsc2U7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldEd1aSgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpPy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc1BvcHVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldFBvcHVwUG9zaXRpb24oKTogJ292ZXInIHwgJ3VuZGVyJyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICdvdmVyJztcbiAgfVxuXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgbG9va3VwSW5wdXQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQgPVxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1sb29rdXAtaW5wdXQnKTtcbiAgICAgIGxvb2t1cElucHV0LmZvY3VzKCk7XG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgbG9va3VwSW5wdXQuc2V0UmFuZ2VUZXh0KGAke3RoaXMuI3BhcmFtcz8uZXZlbnRLZXl9YCk7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgIGxvb2t1cElucHV0LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICk7XG4gICAgICAgIGxvb2t1cElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWRcbiAgICAgICkge1xuICAgICAgICAvLyBFbnN1cmUgdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LlxuICAgICAgICBsb29rdXBJbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgbG9va3VwSW5wdXQudmFsdWUubGVuZ3RoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uTG9va3VwT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNsb29rdXBPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jc2VsZWN0aW9uTW9kYWxPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICAjdXBkYXRlQ29tcG9uZW50UHJvcGVydGllcyhcbiAgICBwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMsXG4gICk6IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMge1xuICAgIGNvbnN0IHNreUxvb2t1cFByb3BlcnRpZXMgPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcztcbiAgICByZXR1cm4gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMoc2t5TG9va3VwUHJvcGVydGllcyk7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2xvb2t1cE9wZW4gJiZcbiAgICAgICF0aGlzLiNzZWxlY3Rpb25Nb2RhbE9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpXG4gICAgKSB7XG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChpc0FsaXZlICYmIHVzZUFzeW5jU2VhcmNoKSB7XG4gIDxza3ktaW5wdXQtYm94XG4gICAgW2Rpc2FibGVkXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkXCJcbiAgICBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIlxuICA+XG4gICAgPHNreS1sb29rdXBcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGlvblwiXG4gICAgICBbYXJpYUxhYmVsbGVkQnldPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbGxlZEJ5ID8/IHNjcmVlblJlYWRlckxhYmVsLmlkXG4gICAgICBcIlxuICAgICAgW2F1dG9jb21wbGV0ZUF0dHJpYnV0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hdXRvY29tcGxldGVBdHRyaWJ1dGVcIlxuICAgICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGF0YVwiXG4gICAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRlYm91bmNlVGltZVwiXG4gICAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgICBbZW5hYmxlU2hvd01vcmVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZW5hYmxlU2hvd01vcmVcIlxuICAgICAgW2lkUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uaWRQcm9wZXJ0eVwiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnBsYWNlaG9sZGVyVGV4dFwiXG4gICAgICBbcHJvcGVydGllc1RvU2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgICBbc2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFwiXG4gICAgICBbc2VhcmNoRmlsdGVyc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hGaWx0ZXJzXCJcbiAgICAgIFtzZWFyY2hSZXN1bHRzTGltaXRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICAgIFtzZWFyY2hSZXN1bHRUZW1wbGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgICBbc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXT1cIlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNcbiAgICAgIFwiXG4gICAgICBbc2VsZWN0TW9kZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWxlY3RNb2RlXCJcbiAgICAgIFtzaG93QWRkQnV0dG9uXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNob3dBZGRCdXR0b25cIlxuICAgICAgW3Nob3dNb3JlQ29uZmlnXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNob3dNb3JlQ29uZmlnXCJcbiAgICAgIFt3cmFwcGVyQ2xhc3NdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ud3JhcHBlckNsYXNzXCJcbiAgICAgIChzZWFyY2hBc3luYyk9XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hBc3luYz8uKCRldmVudClcIlxuICAgICAgKGFkZENsaWNrKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFkZENsaWNrPy4oJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvbkxvb2t1cE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKT1cIm9uU2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gIDwvc2t5LWlucHV0LWJveD5cbn1cbkBpZiAoaXNBbGl2ZSAmJiAhdXNlQXN5bmNTZWFyY2gpIHtcbiAgPHNreS1pbnB1dC1ib3hcbiAgICBbZGlzYWJsZWRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGlzYWJsZWRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gID5cbiAgICA8c2t5LWxvb2t1cFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsbGVkQnkgPz8gc2NyZWVuUmVhZGVyTGFiZWwuaWRcbiAgICAgIFwiXG4gICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICBbZGF0YV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kYXRhXCJcbiAgICAgIFtkZWJvdW5jZVRpbWVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVib3VuY2VUaW1lXCJcbiAgICAgIFtkZXNjcmlwdG9yUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICAgIFtlbmFibGVTaG93TW9yZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5lbmFibGVTaG93TW9yZVwiXG4gICAgICBbaWRQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5pZFByb3BlcnR5XCJcbiAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoXCJcbiAgICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEZpbHRlcnNcIlxuICAgICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgICAgXCJcbiAgICAgIFtzZWxlY3RNb2RlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlbGVjdE1vZGVcIlxuICAgICAgW3Nob3dBZGRCdXR0b25dPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd0FkZEJ1dHRvblwiXG4gICAgICBbc2hvd01vcmVDb25maWddPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd01vcmVDb25maWdcIlxuICAgICAgW3dyYXBwZXJDbGFzc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy53cmFwcGVyQ2xhc3NcIlxuICAgICAgKGFkZENsaWNrKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFkZENsaWNrPy4oJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvbkxvb2t1cE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKT1cIm9uU2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gIDwvc2t5LWlucHV0LWJveD5cbn1cbjxkaXYgI3NjcmVlblJlYWRlckxhYmVsPVwic2t5SWRcIiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBza3lJZD5cbiAge3sgbGFiZWxUZXh0IH19XG48L2Rpdj5cbiJdfQ==","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 else if (event.target === this.input?.nativeElement) {\n this.#stopEditingOnBlur();\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 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 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 #stopEditingOnBlur() {\n if (this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVlTLGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixFQUFFO1NBQ2pDLENBQUMsQ0FBQztLQWtHSjtJQXhGUSxVQUFVLENBQUMsS0FBaUI7UUFDakMsSUFDRSxLQUFLLENBQUMsYUFBYTtZQUNuQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUks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QUMsRUFBRSxLQUFLLENBQUM7UUFDakQsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOytHQXhHVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQyw4T0FhSCxVQUFVLDZCQzdDdEQsc2JBZUEsMkhEZVksV0FBVywwa0NBQUUsbUJBQW1CLCtVQUFFLGFBQWE7OzRGQUU5QyxrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQzs7c0JBZXpELFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztzQkFHckQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IElDZWxsRWRpdG9yUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JOdW1iZXJQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1udW1iZXItcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItbnVtYmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgbnVtYmVyOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pO1xuICBwdWJsaWMgcm93SGVpZ2h0V2l0aG91dEJvcmRlcnM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBtaW46IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yTnVtYmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy4jcGFyYW1zPy5lR3JpZENlbGxcbiAgICApIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgaW5wdXQuXG4gICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmVmcmVzaENlbGxzIEFQSSBpcyBjYWxsZWQuXG4gICAgICB0aGlzLmFmdGVyR3VpQXR0YWNoZWQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICAjcGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JOdW1iZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ251bWJlcicpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuI3BhcmFtcz8uZXZlbnRLZXkgYXMgc3RyaW5nKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubWF4ID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/Lm1heDtcbiAgICB0aGlzLm1pbiA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5taW47XG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLiNwYXJhbXMuYXBpLmdldERpc3BsYXlOYW1lRm9yQ29sdW1uKFxuICAgICAgdGhpcy4jcGFyYW1zLmNvbHVtbixcbiAgICAgICdoZWFkZXInLFxuICAgICk7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuICAgIHRoaXMuY29sdW1uV2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9ICh0aGlzLiNwYXJhbXMubm9kZS5yb3dIZWlnaHQgYXMgbnVtYmVyKSAtIDQ7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxFZGl0b3JOdW1iZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmFsID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnbnVtYmVyJyk/LnZhbHVlO1xuICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykpIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8aW5wdXRcbiAgICAjc2t5Q2VsbEVkaXRvck51bWJlclxuICAgIGZvcm1Db250cm9sTmFtZT1cIm51bWJlclwiXG4gICAgdHlwZT1cIm51bWJlclwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbldpZHRoXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJvd0hlaWdodFdpdGhvdXRCb3JkZXJzXCJcbiAgICBbbWF4XT1cIm1heCA/PyBudWxsXCJcbiAgICBbbWluXT1cIm1pbiA/PyBudWxsXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19","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 else if (event.target === this.input?.nativeElement) {\n this.#stopEditingOnBlur();\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 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 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 #stopEditingOnBlur() {\n if (this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellEditorTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0NBQWdDO0lBUDdDO1FBV1MsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0tBMkZKO0lBbkZRLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8s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QUFFLG1CQUFtQiwrVUFBRSxhQUFhOzs0RkFFOUMsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7O3NCQVl6RCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7c0JBR25ELFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yVGV4dFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXRleHQtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItdGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgdGV4dDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4bGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvclRleHQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gICNwYXJhbXM6IElDZWxsRWRpdG9yUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIGVkaXRvciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgY2VsbCBlZGl0b3IgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvclRleHRQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3RleHQnKTtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLmV2ZW50S2V5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubWF4bGVuZ3RoID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/Lm1heGxlbmd0aDtcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMuI3BhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLiNwYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMuI3BhcmFtcy5yb3dJbmRleCArIDE7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxFZGl0b3JUZXh0UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckZvcm0uZ2V0KCd0ZXh0Jyk/LnZhbHVlIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNzdG9wRWRpdGluZ09uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSkge1xuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuc3RvcEVkaXRpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCI+XG4gIDxpbnB1dFxuICAgICNza3lDZWxsRWRpdG9yVGV4dFxuICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX3RleHRfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGggPz8gbnVsbFwiXG4gIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==","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, ...(ngDevMode ? [{ debugName: \"showValidatorMessage\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridCellValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSS9COztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQW1DUyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUk1Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxnRUFBQyxDQUFDO1FBRS9DLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsb0JBQWUsR0FBRyxLQUFL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RUFBRSxzQkFBc0IsRUFBRSxTQUFTO1lBQ2pFLFVBQVUsRUFDVixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUN2QyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFFLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0ExR1Usc0NBQXNDO21HQUF0QyxzQ0FBc0MsNEhDN0JuRCw4ckJBNEJBLDJiRERZLGdCQUFnQixtSkFBRSxnQkFBZ0IsK1hBQUUsd0JBQXdCOzs0RkFFM0Qsc0NBQXNDO2tCQVBsRCxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDOztzQkFHdEUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVN0YXR1c0luZGljYXRvck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVBvcG92ZXJNZXNzYWdlLCBTa3lQb3BvdmVyTWVzc2FnZVR5cGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgU2t5UG9wb3Zlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5cbmltcG9ydCB7IEFnQ29sdW1uLCBDZWxsRm9jdXNlZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwJyxcbiAgc3R5bGVVcmxzOiBbJ2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJ2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgU2t5UG9wb3Zlck1vZHVsZSwgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmFtcyh2YWx1ZTogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZT8uYXBpICYmICF0aGlzLiNsaXN0ZW5lcnNBZGRlZCkge1xuICAgICAgdGhpcy4jbGlzdGVuZXJzQWRkZWQgPSB0cnVlO1xuICAgICAgdmFsdWUuYXBpLmFkZEV2ZW50TGlzdGVuZXIoJ2NlbGxGb2N1c2VkJywgdGhpcy4jY2VsbEZvY3VzSGFuZGxlcik7XG4gICAgICB2YWx1ZS5hcGkuYWRkRXZlbnRMaXN0ZW5lcignY2VsbEVkaXRpbmdTdGFydGVkJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgICAgdmFsdWUuZUdyaWRDZWxsPy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuI2tleXVwSGFuZGxlcik7XG4gICAgICB2YWx1ZS5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLiNmb2N1c0hhbmRsZXIpO1xuICAgICAgdmFsdWUuZUdyaWRDZWxsPy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWU/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvck1lc3NhZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZShcbiAgICAgICAgdmFsdWUudmFsdWUsXG4gICAgICAgIHZhbHVlLmRhdGEsXG4gICAgICAgIHZhbHVlPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3JNZXNzYWdlO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1ZhbGlkYXRvck1lc3NhZ2Uuc2V0KHRoaXMuI3Nob3dWYWxpZGF0b3JNZXNzYWdlKCkpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHBvcG92ZXJNZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5UG9wb3Zlck1lc3NhZ2U+KCk7XG4gIHB1YmxpYyB2YWxpZGF0b3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjZWxsUmVuZGVyZXJQYXJhbXM6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1ZhbGlkYXRvck1lc3NhZ2UgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNsaXN0ZW5lcnNBZGRlZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNrZXl1cEhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICBbJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJ10uaW5jbHVkZXMoZXZlbnQua2V5KVxuICAgICkge1xuICAgICAgdGhpcy5zaG93UG9wb3ZlcigpO1xuICAgIH1cbiAgfTtcbiAgcmVhZG9ubHkgI2ZvY3VzSGFuZGxlciA9ICgpOiB2b2lkID0+IHRoaXMuc2hvd1BvcG92ZXIoKTtcbiAgcmVhZG9ubHkgI2NlbGxGb2N1c0hhbmRsZXIgPSAoZXZlbnRQYXJhbXM6IENlbGxGb2N1c2VkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAvLyBXZSB3YW50IHRvIGNsb3NlIGFueSBwb3BvdmVycyB0aGF0IGFyZSBvcGVuZWQgd2hlbiBvdGhlciBjZWxscyBhcmUgZm9jdXNlZCwgYnV0IG9wZW4gYSBwb3BvdmVyIGlmIHRoZSBjdXJyZW50IGNlbGwgaXMgZm9jdXNlZC5cbiAgICBpZiAoXG4gICAgICAoZXZlbnRQYXJhbXMuY29sdW1uIGFzIEFnQ29sdW1uKS5nZXRDb2xJZCgpID09PVxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8uY29sdW1uPy5nZXRDb2xJZCgpICYmXG4gICAgICBldmVudFBhcmFtcy5yb3dJbmRleCA9PT0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM/Lm5vZGU/LnJvd0luZGV4XG4gICAgKSB7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZVBvcG92ZXIoKTtcbiAgICB9XG4gIH07XG4gIHJlYWRvbmx5ICNibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IHRoaXMuaGlkZVBvcG92ZXIoKTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM7XG4gICAgaWYgKHBhcmFtcz8uYXBpICYmICghcGFyYW1zLmFwaS5pc0Rlc3Ryb3llZCB8fCAhcGFyYW1zLmFwaS5pc0Rlc3Ryb3llZCgpKSkge1xuICAgICAgcGFyYW1zLmFwaS5yZW1vdmVFdmVudExpc3RlbmVyKCdjZWxsRm9jdXNlZCcsIHRoaXMuI2NlbGxGb2N1c0hhbmRsZXIpO1xuICAgICAgcGFyYW1zLmFwaS5yZW1vdmVFdmVudExpc3RlbmVyKCdjZWxsRWRpdGluZ1N0YXJ0ZWQnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgfVxuICAgIGlmIChwYXJhbXM/LmVHcmlkQ2VsbCkge1xuICAgICAgcGFyYW1zLmVHcmlkQ2VsbC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuI2tleXVwSGFuZGxlcik7XG4gICAgICBwYXJhbXMuZUdyaWRDZWxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLiNmb2N1c0hhbmRsZXIpO1xuICAgICAgcGFyYW1zLmVHcmlkQ2VsbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoaWRlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXJNZXNzYWdlU3RyZWFtLm5leHQoeyB0eXBlOiBTa3lQb3BvdmVyTWVzc2FnZVR5cGUuQ2xvc2UgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1BvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3Nob3VsZFNob3dQb3BvdmVyKCkpIHtcbiAgICAgIHRoaXMucG9wb3Zlck1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZS5PcGVuIH0pO1xuICAgIH1cbiAgfVxuXG4gICNzaG93VmFsaWRhdG9yTWVzc2FnZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudmFsaWRhdG9yTWVzc2FnZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvciA9PT1cbiAgICAgICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHJldHVybiAhdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLnZhbHVlLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5kYXRhLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICNzaG91bGRTaG93UG9wb3ZlcigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBlZGl0aW5nQ2VsbHMgPSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8uYXBpLmdldEVkaXRpbmdDZWxscygpID8/IFtdO1xuICAgIHJldHVybiBlZGl0aW5nQ2VsbHMubGVuZ3RoID09PSAwO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2Rpc3BsYXlWYWx1ZT5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKSkge1xuICA8ZGl2XG4gICAgc2t5UG9wb3ZlclRyaWdnZXI9XCJtb3VzZWVudGVyXCJcbiAgICBjbGFzcz1cInNreS12YWxpZGF0b3ItY2VsbFwiXG4gICAgW3NreVBvcG92ZXJdPVwidmFsaWRhdG9yUG9wb3ZlclwiXG4gICAgW3NreVBvcG92ZXJNZXNzYWdlU3RyZWFtXT1cInBvcG92ZXJNZXNzYWdlU3RyZWFtXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaXNwbGF5VmFsdWVcIiAvPlxuICAgIDxza3ktc3RhdHVzLWluZGljYXRvclxuICAgICAgZGVzY3JpcHRpb25UeXBlPVwibm9uZVwiXG4gICAgICBpbmRpY2F0b3JUeXBlPVwiZGFuZ2VyXCJcbiAgICAgIGNsYXNzPVwic2t5LXB1bGwtcmlnaHRcIlxuICAgIC8+XG4gIDwvZGl2PlxuICA8c2t5LXBvcG92ZXJcbiAgICAjdmFsaWRhdG9yUG9wb3ZlclxuICAgIGRhdGEtc2t5LWlkPVwidmFsaWRhdG9yUG9wb3ZlclwiXG4gICAgcG9wb3ZlclR5cGU9XCJkYW5nZXJcIlxuICA+XG4gICAge3sgdmFsaWRhdG9yTWVzc2FnZSB9fVxuICA8L3NreS1wb3BvdmVyPlxufSBAZWxzZSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaXNwbGF5VmFsdWVcIiAvPlxufVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTy9DOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQWlCUywyQkFBc0IsR0FDSSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO0tBeUIvQztJQWxDQyxJQUNXLE1BQU0sQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFTRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFxQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE1BQXFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7K0dBcENVLHNDQUFzQzttR0FBdEMsc0NBQXNDLDRIQ25CbkQsNEZBR0EseUREY1ksZ0JBQWdCOzs0RkFFZixzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7O3NCQUsxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU51bWVyaWNPcHRpb25zIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TnVtZXJpY01vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmFsaWRhdG9yLXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5TnVtZXJpY01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wXG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcykge1xuICAgIHRoaXMuYWdJbml0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcm93SGVpZ2h0V2l0aG91dEJvcmRlcnM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreU51bWVyaWNPcHRpb25zICZcbiAgICBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzID0ge307XG4gIHB1YmxpYyBudW1lcmljT3B0aW9uczogU2t5TnVtZXJpY09wdGlvbnMgPSB7fTtcbiAgcHVibGljIHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgQUcgR3JpZCBvbmNlIGFmdGVyIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgcmVuZGVyZXIgd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVQcm9wZXJ0aWVzKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogcmVmcmVzaCBpcyBjYWxsZWQgYnkgQUcgR3JpZCB0byB1cGRhdGUgdGhlIGNlbGwgd2l0aG91dCBkZXN0cm95aW5nIGFuZCByZWNyZWF0aW5nIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAjdXBkYXRlUHJvcGVydGllcyhwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy52YWx1ZTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyB8fCB7fTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMuZm9ybWF0ID0gJ2N1cnJlbmN5JztcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMubWluRGlnaXRzID0gMjtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMudHJ1bmNhdGUgPSBmYWxzZTtcbiAgfVxufVxuIiwie3tcbiAgdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6ICh2YWx1ZSB8IHNreU51bWVyaWM6IHNreUNvbXBvbmVudFByb3BlcnRpZXMpXG59fVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererCurrencyValidatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUd2SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFNUY7O0dBRUc7QUFlSCxNQUFNLE9BQU8sK0NBQStDO0lBRzFELElBQ1csVUFBVSxDQUFDLEtBQW9DO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQXFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELFNBQVMsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxPQUFPLENBQUMsTUFBcUM7UUFDbEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWpDVSwrQ0FBK0M7bUdBQS9DLCtDQUErQyw4SUMvQjVELDZVQVNBLG1GRGtCSSxzQ0FBc0MsbUdBQ3RDLHNDQUFzQzs7NEZBRzdCLCtDQUErQztrQkFkM0QsU0FBUzsrQkFDRSw4Q0FBOEMsbUJBT3ZDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asc0NBQXNDO3dCQUN0QyxzQ0FBc0M7cUJBQ3ZDOztzQkFLQSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS1wYXJhbXMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gIHN0eWxlczogYFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGVVcmw6ICdjZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wXG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1ldGVycyh2YWx1ZTogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpIHtcbiAgICB0aGlzLmFnSW5pdCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgcmVuZGVyZXIgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIHJlbmRlcmVyIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIHJlbmRlcmVyIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgaXNOdW1lcmljKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiQGlmIChjZWxsUmVuZGVyZXJQYXJhbXMpIHtcbiAgPHNreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAgW3BhcmFtc109XCJjZWxsUmVuZGVyZXJQYXJhbXNcIj5cbiAgICBAaWYgKGlzTnVtZXJpYyhjZWxsUmVuZGVyZXJQYXJhbXMudmFsdWUpKSB7XG4gICAgICA8c2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyBjZWxsUmVuZGVyZXJQYXJhbXMudmFsdWUgfX1cbiAgICB9XG4gIDwvc2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcD5cbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererLookupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTTVDOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9DQUFvQztJQU0vQyxlQUFlLENBQW9CO0lBRW5DLFlBQVksY0FBaUM7UUFMbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBS3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBckJVLG9DQUFvQzttR0FBcEMsb0NBQW9DLG9GQ3JCakQsZ0lBS0EsMkhEY1ksYUFBYTs7NEZBRVosb0NBQW9DO2tCQVBoRCxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItbG9va3VwLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jZWxsLXJlbmRlcmVyLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcFxue1xuICBwcm90ZWN0ZWQgdmFsdWUgPSAnJztcbiAgcHJvdGVjdGVkIHN1bW1hcnlDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuc3VtbWFyeUNvdW50ID0gcGFyYW1zLnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICB0aGlzLnZhbHVlID0gYCR7cGFyYW1zLnZhbHVlRm9ybWF0dGVkfWA7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIkBpZiAoc3VtbWFyeUNvdW50ID4gNSkge1xuICB7eyAnc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5JyB8IHNreUxpYlJlc291cmNlczogc3VtbWFyeUNvdW50IH19XG59IEBlbHNlIHtcbiAge3sgdmFsdWUgfX1cbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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-comp-grid-cell-space-inset-top))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyCheckboxModule }, { kind: \"component\", type: i1.λ3, selector: \"sky-checkbox\", inputs: [\"label\", \"labelledBy\", \"id\", \"disabled\", \"tabindex\", \"name\", \"helpPopoverContent\", \"helpPopoverTitle\", \"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.3.15\", 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-comp-grid-cell-space-inset-top))}\\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, isSignal } 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.template\n : undefined;\n this.state = {\n hasTemplate: isSignal(template) ? 'signal' : 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.3.15\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyAgGridCellRendererTemplateComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-template\", ngImport: i0, template: `@if (state.hasTemplate === 'signal') {\n <ng-container\n *ngTemplateOutlet=\"state.template(); context: state.context\"\n />\n } @else if (state.hasTemplate) {\n <ng-container\n *ngTemplateOutlet=\"state.template; context: state.context\"\n />\n }`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'sky-ag-grid-cell-renderer-template',\n template: `@if (state.hasTemplate === 'signal') {\n <ng-container\n *ngTemplateOutlet=\"state.template(); context: state.context\"\n />\n } @else if (state.hasTemplate) {\n <ng-container\n *ngTemplateOutlet=\"state.template; context: state.context\"\n />\n }`,\n imports: [NgTemplateOutlet],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFxQ3pFLE1BQU0sT0FBTyxzQ0FBc0M7SUFibkQ7UUFnQlksVUFBSyxHQUFjO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMvQyxDQUFDO0tBMkJIO0lBekJRLE1BQU0sQ0FBQyxNQUEyQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0I7WUFDakMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBR0UsV0FBVztZQUN6QixDQUFDLENBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxRQUVrQjtZQUN2RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUN4RCxRQUFRO1lBQ1IsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7U0FDdEMsQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQTJCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWpDVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyw4RkFYdkM7Ozs7Ozs7O01BUU4sNERBQ00sZ0JBQWdCOzs0RkFFZixzQ0FBc0M7a0JBYmxELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsUUFBUSxFQUFFOzs7Ozs7OztNQVFOO29CQUNKLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBTaWduYWwsIFRlbXBsYXRlUmVmLCBpc1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlLWNvbnRleHQudHlwZSc7XG5cbnR5cGUgQ2VsbFN0YXRlID1cbiAgfCB7XG4gICAgICBoYXNUZW1wbGF0ZTogdHJ1ZTtcbiAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgICAgY29udGV4dDogQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICBoYXNUZW1wbGF0ZTogJ3NpZ25hbCc7XG4gICAgICB0ZW1wbGF0ZTogU2lnbmFsPFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD4+O1xuICAgICAgY29udGV4dDogQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICBoYXNUZW1wbGF0ZTogZmFsc2U7XG4gICAgICB0ZW1wbGF0ZTogdW5kZWZpbmVkO1xuICAgICAgY29udGV4dD86IHVua25vd247XG4gICAgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlOiBgQGlmIChzdGF0ZS5oYXNUZW1wbGF0ZSA9PT0gJ3NpZ25hbCcpIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0ZS50ZW1wbGF0ZSgpOyBjb250ZXh0OiBzdGF0ZS5jb250ZXh0XCJcbiAgICAgIC8+XG4gICAgfSBAZWxzZSBpZiAoc3RhdGUuaGFzVGVtcGxhdGUpIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0ZS50ZW1wbGF0ZTsgY29udGV4dDogc3RhdGUuY29udGV4dFwiXG4gICAgICAvPlxuICAgIH1gLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlclRlbXBsYXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wXG57XG4gIHByb3RlY3RlZCBzdGF0ZTogQ2VsbFN0YXRlID0ge1xuICAgIGhhc1RlbXBsYXRlOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogdW5kZWZpbmVkLFxuICAgIGNvbnRleHQ6IHsgdmFsdWU6IHVuZGVmaW5lZCwgZGF0YTogdW5kZWZpbmVkIH0sXG4gIH07XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNUZW1wbGF0ZSA9ICEhKFxuICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zICYmXG4gICAgICAndGVtcGxhdGUnIGluIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zICYmXG4gICAgICBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy50ZW1wbGF0ZVxuICAgICk7XG4gICAgY29uc3QgdGVtcGxhdGU6XG4gICAgICB8IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD5cbiAgICAgIHwgU2lnbmFsPFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD4+XG4gICAgICB8IHVuZGVmaW5lZCA9IGhhc1RlbXBsYXRlXG4gICAgICA/IChwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMudGVtcGxhdGUgYXNcbiAgICAgICAgICB8IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD5cbiAgICAgICAgICB8IFNpZ25hbDxUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+PilcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBoYXNUZW1wbGF0ZTogaXNTaWduYWwodGVtcGxhdGUpID8gJ3NpZ25hbCcgOiBoYXNUZW1wbGF0ZSxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgY29udGV4dDogeyB2YWx1ZTogcGFyYW1zLnZhbHVlLCByb3c6IHBhcmFtcy5kYXRhIH0sXG4gICAgfSBhcyBDZWxsU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFHdkg7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOENBQThDO0lBTjNEO1FBaUJZLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFDdEQ7SUEvQ0MsSUFDVyxNQUFNLENBQUMsS0FBcUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBT1EsZUFBZSxDQUE2QjtJQUNyRCxrQkFBa0IsQ0FBMkI7SUFFdEMsV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXNDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLElBQ0UsT0FBTyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsdUJBQXVCO1lBQzdELFVBQVUsRUFDVixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDekIsTUFBTSxDQUFDLHNCQUFzQjtpQkFDMUIsdUJBQXVCLENBQ3RCLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FDdEI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBc0M7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBakRVLDhDQUE4QzttR0FBOUMsOENBQThDLHFJQ3pCM0QsZ0pBR0EsNENEb0JZLHNDQUFzQyw4RkFBRSxTQUFTOzs0RkFFaEQsOENBQThDO2tCQU4xRCxTQUFTOytCQUNFLDZDQUE2QyxtQkFFdEMsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHNDQUFzQyxFQUFFLFNBQVMsQ0FBQzs7c0JBSzNELEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsIEFzeW5jUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmFtcyh2YWx1ZTogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKSB7XG4gICAgdGhpcy5hZ0luaXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNlbGxSZW5kZXJlclBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgdmFsdWU6IHVua25vd247XG5cbiAgcHJvdGVjdGVkIHZhbHVlT2JzZXJ2YWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICN2YWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWx1ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsdWVSZXNvdXJjZU9ic2VydmFibGUgPT09XG4gICAgICAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICB0aGlzLiN2YWx1ZVN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgLnZhbHVlUmVzb3VyY2VPYnNlcnZhYmxlKFxuICAgICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgICBwYXJhbXMubm9kZT8ucm93SW5kZXgsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWx1ZU9ic2VydmFibGUubmV4dChyZXN1bHQpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZU9ic2VydmFibGUubmV4dChwYXJhbXMudmFsdWVGb3JtYXR0ZWQgPz8gcGFyYW1zLnZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8c2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiPlxuICB7eyB2YWx1ZU9ic2VydmFibGUgfCBhc3luYyB9fVxuPC9za3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwPlxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWdyb3VwLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItZ3JvdXAtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjttSEFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW5Hcm91cCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuLyoqXG4gKiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBjb2x1bW4gZ3JvdXAgaGVhZGVyLCBjcmVhdGUgYSBjb21wb25lbnQgY29udGFpbmluZ1xuICogW2Bza3ktaGVscC1pbmxpbmVgXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpLFxuICogYW5kIGluamVjdCBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gdG8gYWNjZXNzIHRoZSBjb2x1bW4gZ3JvdXBcbiAqIGluZm9ybWF0aW9uLCBzdWNoIGFzIGRpc3BsYXkgbmFtZS5cbiAqIEFkZCB0aGUgY29tcG9uZW50IHRvIHRoZSBgaGVhZGVyR3JvdXBDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGdyb3VwIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1ncm91cHMvKS5cbiAqIEBzZWUgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyB7XG4gIC8qKlxuICAgKiBbQ29sdW1uIGdyb3VwIGluZm9ybWF0aW9uIGZyb20gQUcgR3JpZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLW9iamVjdC1ncm91cC8pLlxuICAgKi9cbiAgcHVibGljIGNvbHVtbkdyb3VwOiBDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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{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: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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{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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LGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQzs7c0JBS2pFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IElIZWFkZXJHcm91cEFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtbkdyb3VwT3BlbmVkRXZlbnQsIFByb3ZpZGVkQ29sdW1uR3JvdXAgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFN1YnNjcmlwdGlvbixcbiAgZnJvbUV2ZW50LFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gfSBmcm9tICcuLi90eXBlcy9oZWFkZXItZ3JvdXAtaW5mbyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1ncm91cC1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktaGVhZGVyLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1NreVRoZW1lTW9kdWxlLCBTa3lJY29uTW9kdWxlLCBBc3luY1BpcGUsIFNreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElIZWFkZXJHcm91cEFuZ3VsYXJDb21wLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgQFZpZXdDaGlsZCgnaW5saW5lSGVscENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBpbmxpbmVIZWxwQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBwYXJhbXM6IFNreUFnR3JpZEhlYWRlckdyb3VwUGFyYW1zIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgaXNFeHBhbmRhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICNjb2x1bW5Hcm91cDogUHJvdmlkZWRDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgI2lzRXhwYW5kYWJsZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgI2lzRXhwYW5kZWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAjdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNhZ0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0V4cGFuZGFibGUkID0gdGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmlzRXhwYW5kZWQkID0gdGhpcy4jaXNFeHBhbmRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3ZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuI2FnSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuI2NvbHVtbkdyb3VwID0gcGFyYW1zLmNvbHVtbkdyb3VwLmdldFByb3ZpZGVkQ29sdW1uR3JvdXAoKTtcbiAgICB0aGlzLiNpc0V4cGFuZGFibGVTdWJqZWN0Lm5leHQodGhpcy4jY29sdW1uR3JvdXAuaXNFeHBhbmRhYmxlKCkpO1xuICAgIGlmICh0aGlzLiNpc0V4cGFuZGFibGVTdWJqZWN0LmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnQ8Q29sdW1uR3JvdXBPcGVuZWRFdmVudD4ocGFyYW1zLmFwaSwgJ2NvbHVtbkdyb3VwT3BlbmVkJylcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuI2NvbHVtbkdyb3VwICYmXG4gICAgICAgICAgICAgIGV2ZW50LmNvbHVtbkdyb3Vwcy5pbmNsdWRlcyh0aGlzLiNjb2x1bW5Hcm91cClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLiNpc0V4cGFuZGVkU3ViamVjdC5uZXh0KHRoaXMuI2NvbHVtbkdyb3VwLmlzRXhwYW5kZWQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLiN1cGRhdGVJbmxpbmVIZWxwKCk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RXhwYW5kZWQoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXM/LnNldEV4cGFuZGVkKCRldmVudCk7XG4gIH1cblxuICAjdXBkYXRlSW5saW5lSGVscCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3ZpZXdJbml0aWFsaXplZCB8fCAhdGhpcy4jYWdJbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbEdyb3VwRGVmID0gdGhpcy5wYXJhbXM/LmNvbHVtbkdyb3VwPy5nZXRDb2xHcm91cERlZigpO1xuICAgIGNvbnN0IGlubGluZUhlbHBDb21wb25lbnQgPVxuICAgICAgY29sR3JvdXBEZWY/LmhlYWRlckdyb3VwQ29tcG9uZW50UGFyYW1zPy5pbmxpbmVIZWxwQ29tcG9uZW50O1xuXG4gICAgaWYgKGlubGluZUhlbHBDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGhlYWRlckdyb3VwSW5mbyA9IG5ldyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8oKTtcbiAgICAgIGhlYWRlckdyb3VwSW5mby5jb2x1bW5Hcm91cCA9IHRoaXMucGFyYW1zPy5jb2x1bW5Hcm91cDtcbiAgICAgIGhlYWRlckdyb3VwSW5mby5jb250ZXh0ID0gdGhpcy5wYXJhbXM/LmNvbnRleHQ7XG4gICAgICBoZWFkZXJHcm91cEluZm8uZGlzcGxheU5hbWUgPSB0aGlzLnBhcmFtcz8uZGlzcGxheU5hbWU7XG5cbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChpbmxpbmVIZWxwQ29tcG9uZW50LCB7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBoZWFkZXJHcm91cEluZm8sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy4jZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgcmVmZXJlbmNlRWw6IHRoaXMuaW5saW5lSGVscENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50Qm90dG9tLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKHBhcmFtcz8uZGlzcGxheU5hbWUpIHtcbiAgPHNwYW5cbiAgICBjbGFzcz1cImhlYWRlci1ncm91cC10ZXh0XCJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktZm9udC1oZWFkaW5nLTQnOiAnbW9kZXJuJyB9XCJcbiAgICA+e3sgcGFyYW1zPy5kaXNwbGF5TmFtZSB9fTwvc3BhblxuICA+XG59XG5AaWYgKGlzRXhwYW5kYWJsZSQgfCBhc3luYykge1xuICBAaWYgKGlzRXhwYW5kZWQkIHwgYXN5bmMpIHtcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBwYXJhbXM/LmRpc3BsYXlOYW1lXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInNldEV4cGFuZGVkKGZhbHNlKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtbGVmdFwiIC8+XG4gICAgPC9idXR0b24+XG4gIH0gQGVsc2Uge1xuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBwYXJhbXM/LmRpc3BsYXlOYW1lXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInNldEV4cGFuZGVkKHRydWUpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJjaGV2cm9uLWRvdWJsZS1yaWdodFwiIC8+XG4gICAgPC9idXR0b24+XG4gIH1cbn1cbjxzcGFuICNpbmxpbmVIZWxwQ29udGFpbmVyIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj48L3NwYW4+XG4iXX0=","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, ...(ngDevMode ? [{ debugName: \"checked\" }] : []));\n this.indeterminate = signal(false, ...(ngDevMode ? [{ debugName: \"indeterminate\" }] : []));\n this.multiSelect = signal(false, ...(ngDevMode ? [{ debugName: \"multiSelect\" }] : []));\n this.params = signal(undefined, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.label = computed(() => {\n const params = this.params();\n return params?.displayName || params?.column.getColDef().field;\n }, ...(ngDevMode ? [{ debugName: \"label\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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\", \"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.3.15\", 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 }], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: \"checked\", required: false }] }, { type: i0.Output, args: [\"checkedChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9oZWFkZXIvaGVhZGVyLXJvdy1zZWxlY3Rvci9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBU3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBYTVELE1BQU0sT0FBTyxtQ0FBbUM7SUFYaEQ7UUFZcUIsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLG1EQUFDLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssdURBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsTUFBTSxDQUE0QixTQUFTLGtEQUFDLENBQUM7UUFDdEQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQUcs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QixDQUFDLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osY0FBYyxFQUFFLFNBQVM7d0JBQ3pCLGFBQWEsRUFBRSxRQUFRO3FCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hDaGFuZ2UsIFNreUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEdyaWRBcGksXG4gIElIZWFkZXJQYXJhbXMsXG4gIFJvd0RhdGFVcGRhdGVkRXZlbnQsXG4gIFNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGZyb21FdmVudCwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXJvdy1zZWxlY3Rvci1oZWFkZXInLFxuICBpbXBvcnRzOiBbU2t5Q2hlY2tib3hNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci50aXRsZV0nOiAnbGFiZWwoKScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibm90ZVwiJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hlY2tlZCA9IG1vZGVsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluZGV0ZXJtaW5hdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlTZWxlY3QgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zID0gc2lnbmFsPElIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIHJldHVybiBwYXJhbXM/LmRpc3BsYXlOYW1lIHx8IHBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmZpZWxkO1xuICB9KTtcblxuICAjYXBpOiBHcmlkQXBpPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zLnNldChwYXJhbXMpO1xuICAgIHRoaXMuI2FwaSA9IHBhcmFtcy5hcGk7XG5cbiAgICAvLyBSb3cgc2VsZWN0aW9uIGJlaGF2aW9yIGNhbiBvbmx5IGJlIHNldCB3aGVuIHRoZSBncmlkIGlzIGNyZWF0ZWQuXG4gICAgLy8gSXQgb25seSBjaGFuZ2VzIGlmIHRoZSBncmlkIGlzIHJlY3JlYXRlZC5cbiAgICBjb25zdCByb3dTZWxlY3Rpb24gPSBwYXJhbXMuYXBpLmdldEdyaWRPcHRpb24oJ3Jvd1NlbGVjdGlvbicpO1xuICAgIHRoaXMubXVsdGlTZWxlY3Quc2V0KFxuICAgICAgcm93U2VsZWN0aW9uID09PSAnbXVsdGlwbGUnIHx8XG4gICAgICAgICh0eXBlb2Ygcm93U2VsZWN0aW9uID09PSAnb2JqZWN0JyAmJiByb3dTZWxlY3Rpb24/Lm1vZGUgPT09ICdtdWx0aVJvdycpLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCgpKSB7XG4gICAgICBmcm9tRXZlbnQ8U2VsZWN0aW9uQ2hhbmdlZEV2ZW50PihwYXJhbXMuYXBpLCAnc2VsZWN0aW9uQ2hhbmdlZCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSwgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5zb3VyY2UubWF0Y2goL3NlbGVjdGFsbC9pKSkge1xuICAgICAgICAgICAgLy8gRWl0aGVyIHNlbGVjdCBhbGwgb3IgY2xlYXIgc2VsZWN0aW9uLlxuICAgICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KCEhY2hhbmdlLnNlbGVjdGVkTm9kZXM/Lmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZS5zZXQoISFjaGFuZ2Uuc2VsZWN0ZWROb2Rlcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZC5zZXQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGZyb21FdmVudDxSb3dEYXRhVXBkYXRlZEV2ZW50PihwYXJhbXMuYXBpLCAncm93RGF0YVVwZGF0ZWQnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZS5zZXQoISF0aGlzLiNhcGk/LmdldFNlbGVjdGVkTm9kZXMoKS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMuY2hlY2tlZC5zZXQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlQ2hlY2tib3goJGV2ZW50OiBTa3lDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQuY2hlY2tlZCkge1xuICAgICAgdGhpcy4jYXBpPy5zZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jYXBpPy5kZXNlbGVjdEFsbCgpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtdWx0aVNlbGVjdCgpKSB7XG4gIDxza3ktY2hlY2tib3hcbiAgICBsYWJlbEhpZGRlblxuICAgIGRhdGEtc2t5LWlkPVwiaGVhZGVyLXJvdy1zZWxlY3RvclwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZCgpXCJcbiAgICBbbGFiZWxUZXh0XT1cImxhYmVsKClcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGUoKVwiXG4gICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveCgkZXZlbnQpXCJcbiAgLz5cbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridHeaderInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbi8qKlxuICogVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uIGJlc2lkZSB0aGUgY29sdW1uIGhlYWRlciwgY3JlYXRlIGEgY29tcG9uZW50IGNvbnRhaW5pbmdcbiAqIFtgc2t5LWhlbHAtaW5saW5lYF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSxcbiAqIGFuZCBpbmplY3QgU2t5QWdHcmlkSGVhZGVySW5mbyB0byBhY2Nlc3MgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiwgc3VjaFxuICogYXMgZGlzcGxheSBuYW1lLlxuICogQWRkIHRoZSBjb21wb25lbnQgdG8gdGhlIGBoZWFkZXJDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1kZWZpbml0aW9ucy8pLlxuICogQHNlZSBTa3lBZ0dyaWRIZWFkZXJQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckluZm8ge1xuICAvKipcbiAgICogW0NvbHVtbiBpbmZvcm1hdGlvbiBmcm9tIEFHIEdyaWRdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1vYmplY3QvKS5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW46IENvbHVtbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","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 }, ...(ngDevMode ? [{ debugName: \"accessibleHeaderText\" }] : []));\n this.params = signal(undefined, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\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 }, ...(ngDevMode ? [{ debugName: \"displayName\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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\\\" iconSize=\\\"s\\\" />\\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\\\" iconSize=\\\"s\\\" />\\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: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i2.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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\\\" iconSize=\\\"s\\\" />\\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\\\" iconSize=\\\"s\\\" />\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixtQkFBbUIsRUFFbkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNEOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdCQUF3QjtJQVpyQztRQWVrQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJFLGtIQUFrSDtRQUNsSCxrRkFBa0Y7UUFDL0QseUJBQW9C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OHZFRHhDWSxhQUFhLHFJQUFFLGNBQWMsbUlBQWEsYUFBYSwwQkFBeEIsU0FBUzs7NEZBRXZDLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixjQUFjLEVBQUUsd0JBQXdCO3dCQUN4QyxtQkFBbUIsRUFBRSx5Q0FBeUM7d0JBQzlELGFBQWEsRUFBRSxRQUFRO3FCQUN4QixXQUNRLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDOztzQkFxQmpFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24sXG4gIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtbk1vdmVkRXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVySW5mbyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1pbmZvJztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRpdGxlXSc6ICdhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnZGlzcGxheU5hbWUoKSB8fCBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpJyxcbiAgICAnW2F0dHIucm9sZV0nOiAnXCJub3RlXCInLFxuICB9LFxuICBpbXBvcnRzOiBbU2t5SWNvbk1vZHVsZSwgU2t5VGhlbWVNb2R1bGUsIEFzeW5jUGlwZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJFbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIEZvciBhY2Nlc3NpYmlsaXR5LCB3ZSBuZWVkIHRvIHNldCB0aGUgdGl0bGUgYXR0cmlidXRlIG9uIHRoZSBoZWFkZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBubyB2aXNpYmxlIGhlYWRlciB0ZXh0LlxuICAvLyBodHRwczovL2RlcXVldW5pdmVyc2l0eS5jb20vcnVsZXMvYXhlLzQuNS9lbXB0eS10YWJsZS1oZWFkZXI/YXBwbGljYXRpb249YXhlQVBJXG4gIHByb3RlY3RlZCByZWFkb25seSBhY2Nlc3NpYmxlSGVhZGVyVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIGlmIChcbiAgICAgIHBhcmFtcz8uZGlzcGxheU5hbWUgJiZcbiAgICAgICFwYXJhbXM/LmNvbHVtbi5nZXRDb2xEZWYoKS5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmhlYWRlckhpZGRlblxuICAgICkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcmFtcz8uZGlzcGxheU5hbWUgfHwgcGFyYW1zPy5jb2x1bW4uZ2V0Q29sRGVmKCkuZmllbGQ7XG4gICAgfVxuICB9KTtcblxuICBAVmlld0NoaWxkKCdpbmxpbmVIZWxwQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGlubGluZUhlbHBDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtcyA9IHNpZ25hbDxTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgcHJvdGVjdGVkIHNvcnRlZCA9ICcnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydE9yZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgJ2FzYycgfCAnZGVzYycgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydEluZGV4RGlzcGxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5TmFtZSA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyYW1zKCk7XG4gICAgaWYgKFxuICAgICAgcGFyYW1zPy5kaXNwbGF5TmFtZSAmJlxuICAgICAgIXBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmhlYWRlckNvbXBvbmVudFBhcmFtcz8uaGVhZGVySGlkZGVuXG4gICAgKSB7XG4gICAgICByZXR1cm4gcGFyYW1zLmRpc3BsYXlOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG5cbiAgI3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICNpbmxpbmVIZWxwQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICN2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2FnSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2xlZnRQb3NpdGlvbiA9IDA7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy4jYWdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMuc2V0KHBhcmFtcyk7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIGlmICghcGFyYW1zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuI2xlZnRQb3NpdGlvbiA9IHBhcmFtcy5jb2x1bW4uZ2V0TGVmdCgpID8/IDA7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBpZiAocGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuY29sdW1uLCAnZmlsdGVyQ2hhbmdlZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzRmlsdGVyQWN0aXZlID0gcGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFjdGl2ZSgpO1xuICAgICAgICAgICAgaWYgKGlzRmlsdGVyQWN0aXZlICE9PSB0aGlzLmZpbHRlckVuYWJsZWQkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJFbmFibGVkJC5uZXh0KGlzRmlsdGVyQWN0aXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuZW5hYmxlU29ydGluZykge1xuICAgICAgLy8gQ29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlc1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuY29sdW1uLCAnc29ydENoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgLy8gT3RoZXIgY29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlcywgZm9yIG11bHRpLWNvbHVtbiBzb3J0aW5nXG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50KHBhcmFtcy5hcGksICdzb3J0Q2hhbmdlZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuI3VwZGF0ZVNvcnQoKTtcbiAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIGNvbHVtbiBpcyBtb3ZlZCBsZWZ0IHZpYSB0aGUga2V5Ym9hcmQsIHRoZSBlbGVtZW50IGlzIGRldGFjaGVkXG4gICAgLy8gYW5kIHJlYXR0YWNoZWQgdG8gdGhlIERPTSB0byBtYWludGFpbiBET00gb3JkZXIsIGFuZCBpdHMgZm9jdXMgaXMgbG9zdC5cbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudDxDb2x1bW5Nb3ZlZEV2ZW50PihwYXJhbXMuYXBpLCAnY29sdW1uTW92ZWQnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBldmVudC5jb2x1bW4/LmdldExlZnQoKSA/PyAwO1xuICAgICAgICAgIGNvbnN0IG9sZExlZnQgPSB0aGlzLiNsZWZ0UG9zaXRpb247XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuY29sdW1uID09PSBwYXJhbXMuY29sdW1uICYmXG4gICAgICAgICAgICBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtbk1vdmVkJyAmJlxuICAgICAgICAgICAgbGVmdCA8IG9sZExlZnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHBhcmFtcy5lR3JpZEhlYWRlci5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiNsZWZ0UG9zaXRpb24gPSBsZWZ0O1xuICAgICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG9uTWVudUNsaWNrKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcygpPy5zaG93Q29sdW1uTWVudSgkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNvcnRSZXF1ZXN0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgdGhpcy5wYXJhbXMoKT8ucHJvZ3Jlc3NTb3J0KGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID0gdGhpcy5wYXJhbXMoKT8uaW5saW5lSGVscENvbXBvbmVudDtcblxuICAgIGlmIChcbiAgICAgIGlubGluZUhlbHBDb21wb25lbnQgJiZcbiAgICAgICghdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZiB8fFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLmNvbXBvbmVudFR5cGUgIT09IGlubGluZUhlbHBDb21wb25lbnQpXG4gICAgKSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoXG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBoZWFkZXJJbmZvID0gbmV3IFNreUFnR3JpZEhlYWRlckluZm8oKTtcbiAgICAgIGhlYWRlckluZm8uY29sdW1uID0gdGhpcy5wYXJhbXMoKT8uY29sdW1uO1xuICAgICAgaGVhZGVySW5mby5jb250ZXh0ID0gdGhpcy5wYXJhbXMoKT8uY29udGV4dDtcbiAgICAgIGhlYWRlckluZm8uZGlzcGxheU5hbWUgPSB0aGlzLnBhcmFtcygpPy5kaXNwbGF5TmFtZTtcblxuICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZiA9XG4gICAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChpbmxpbmVIZWxwQ29tcG9uZW50LCB7XG4gICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByb3ZpZGU6IFNreUFnR3JpZEhlYWRlckluZm8sXG4gICAgICAgICAgICAgIHVzZVZhbHVlOiBoZWFkZXJJbmZvLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgcmVmZXJlbmNlRWw6IHRoaXMuaW5saW5lSGVscENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBsb2NhdGlvbjogU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b20sXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIWlubGluZUhlbHBDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudChcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVNvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0T3JkZXIkLm5leHQodGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldFNvcnQoKSB8fCB1bmRlZmluZWQpO1xuICB9XG5cbiAgI3VwZGF0ZVNvcnRJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCBzb3J0SW5kZXggPSB0aGlzLnBhcmFtcygpPy5jb2x1bW4uZ2V0U29ydEluZGV4KCk7XG4gICAgY29uc3Qgb3RoZXJTb3J0Q29sdW1ucyA9IHRoaXMucGFyYW1zKClcbiAgICAgID8uYXBpPy5nZXRDb2x1bW5zKClcbiAgICAgID8uc29tZShcbiAgICAgICAgKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4uZ2V0Q29sSWQoKSAhPT0gdGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldENvbElkKCkgJiZcbiAgICAgICAgICAhIWNvbHVtbi5nZXRTb3J0KCksXG4gICAgICApO1xuICAgIGlmIChzb3J0SW5kZXggIT09IHVuZGVmaW5lZCAmJiBzb3J0SW5kZXggIT09IG51bGwgJiYgb3RoZXJTb3J0Q29sdW1ucykge1xuICAgICAgdGhpcy5zb3J0SW5kZXhEaXNwbGF5JC5uZXh0KGAke3NvcnRJbmRleCArIDF9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc29ydEluZGV4RGlzcGxheSQubmV4dCgnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWctY2VsbC1sYWJlbC1jb250YWluZXJcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gIEBpZiAocGFyYW1zKCk/LmVuYWJsZU1lbnUpIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvblwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cIm1vcmUtYWN0aW9uc1wiIC8+XG4gICAgPC9zcGFuPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsLWFuZC1pY29uc1wiPlxuICAgICAgQGlmIChwYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHQgYWctaGVhZGVyLWNlbGwtbGFiZWwtc29ydGFibGUgc2t5LWJ0bi1saW5rLWlubGluZVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXCJcbiAgICAgICAgICBbaW5uZXJUZXh0XT1cImRpc3BsYXlOYW1lKCkgPz8gJydcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cInsgJ3NreS1mb250LWhlYWRpbmctNCc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIH0gQGVsc2UgaWYgKGRpc3BsYXlOYW1lKCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtdGV4dFwiXG4gICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwieyAnc2t5LWZvbnQtaGVhZGluZy00JzogJ21vZGVybicgfVwiXG4gICAgICAgICAgPnt7IGRpc3BsYXlOYW1lKCkgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgfVxuICAgICAgQGlmIChmaWx0ZXJFbmFibGVkJCB8IGFzeW5jKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uIGFnLWZpbHRlci1pY29uXCJcbiAgICAgICAgICA+PHNreS1pY29uIGljb25OYW1lPVwiZmlsdGVyXCJcbiAgICAgICAgLz48L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHBhcmFtcygpPy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICAgIEBpZiAoc29ydE9yZGVyJCB8IGFzeW5jOyBhcyBzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhZy1zb3J0LWluZGljYXRvci1jb250YWluZXIgc2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzc1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChzb3J0RGlyZWN0aW9uID09PSAnZGVzYycpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tZG93blwiIGljb25TaXplPVwic1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2Rlc2MnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkaXNwbGF5TmFtZSgpID8/IGFjY2Vzc2libGVIZWFkZXJUZXh0KClcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj48L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzb3J0RGlyZWN0aW9uID09PSAnYXNjJykge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi11cFwiIGljb25TaXplPVwic1wiIC8+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: 16,\n },\n // show on column header when column is sorted descending\n sortDescending: {\n name: 'chevron-down',\n size: 16,\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9pY29ucy9pY29uLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBTWhCO0lBQ0YsOERBQThEO0lBQzlELGlCQUFpQixFQUFFO1FBQ2pCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxpQkFBaUIsRUFBRTtRQUNqQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4REFBOEQ7SUFDOUQsa0JBQWtCLEVBQUU7UUFDbEIsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxnQkFBZ0IsRUFBRTtRQUNoQixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkRBQTZEO0lBQzdELDJEQUEyRDtJQUMzRCx5QkFBeUIsRUFBRTtRQUN6QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQseURBQXlEO0lBQ3pELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyREFBMkQ7SUFDM0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHNFQUFzRTtJQUN0RSwrREFBK0Q7SUFDL0Qsc0JBQXNCLEVBQUU7UUFDdEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZEQUE2RDtJQUM3RCx3Q0FBd0M7SUFDeEMsYUFBYSxFQUFFO1FBQ2IsSUFB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Q3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyQkFBMkI7SUFDM0IsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHVEQUF1RDtJQUN2RCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4REFBOEQ7SUFDOUQsMEJBQTBCLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZDQUE2QztJQUM3QyxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxxREFBcUQ7SUFDckQsaUJBQWlCLEVBQUU7UUFDakIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELG1FQUFtRTtJQUNuRSxtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsK0RBQStEO0lBQy9ELGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxpQkFBaUI7SUFDakIsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsRUFBRTtLQUNUO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpY29uTWFwOiBSZWNvcmQ8XG4gIHN0cmluZyxcbiAge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzaXplOiBudW1iZXI7XG4gIH1cbj4gPSB7XG4gIC8vIGhlYWRlciBjb2x1bW4gZ3JvdXAgc2hvd24gd2hlbiBleHBhbmRlZCAoY2xpY2sgdG8gY29udHJhY3QpXG4gIGNvbHVtbkdyb3VwT3BlbmVkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG91YmxlLWxlZnQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGhlYWRlciBjb2x1bW4gZ3JvdXAgc2hvd24gd2hlbiBjb250cmFjdGVkIChjbGljayB0byBleHBhbmQpXG4gIGNvbHVtbkdyb3VwQ2xvc2VkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG91YmxlLXJpZ2h0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb2x1bW4gdG9vbCBwYW5lbCBjb2x1bW4gZ3JvdXAgY29udHJhY3RlZCAoY2xpY2sgdG8gZXhwYW5kKVxuICBjb2x1bW5TZWxlY3RDbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gY29sdW1uIHRvb2wgcGFuZWwgY29sdW1uIGdyb3VwIGV4cGFuZGVkIChjbGljayB0byBjb250cmFjdClcbiAgY29sdW1uU2VsZWN0T3Blbjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIGNvbHVtbiB0b29sIHBhbmVsIGhlYWRlciBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiwgc2hvd25cbiAgLy8gd2hlbiBzb21lIGNoaWxkcmVuIGFyZSBleHBhbmRlZCBhbmQgb3RoZXJzIGFyZSBjb2xsYXBzZWRcbiAgY29sdW1uU2VsZWN0SW5kZXRlcm1pbmF0ZToge1xuICAgIG5hbWU6ICdzdWJ0cmFjdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gYWNjb3JkaW9uIG9wZW4gKGZpbHRlciB0b29sIHBhbmVsIGdyb3VwLCBjaGFydHMgZ3JvdXApXG4gIGFjY29yZGlvbk9wZW46IHtcbiAgICBuYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBhY2NvcmRpb24gY2xvc2VkIChmaWx0ZXIgdG9vbCBwYW5lbCBncm91cCwgY2hhcnRzIGdyb3VwKVxuICBhY2NvcmRpb25DbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gYWNjb3JkaW9uIGluZGV0ZXJtaW5hdGUgLSBzaG93biB3aGVuIHNvbWUgY2hpbGRyZW4gYXJlIGV4cGFuZGVkIGFuZFxuICAvLyBvdGhlcnMgYXJlIGNvbGxhcHNlZCAoZmlsdGVyIHRvb2wgcGFuZWwgZ3JvdXAsIGNoYXJ0cyBncm91cClcbiAgYWNjb3JkaW9uSW5kZXRlcm1pbmF0ZToge1xuICAgIG5hbWU6ICdzdWJ0cmFjdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBjb2x1bW4gdG8gdGhlIHNpZGUgb2YgdGhlIGdyaWQgdG8gcGluXG4gIGNvbHVtbk1vdmVQaW46IHtcbiAgICBuYW1lOiAnYXJyb3ctbW92ZScsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZyBvdmVyXG4gIC8vIHBhcnQgb2YgdGhlIHBhZ2UgdGhhdCBpcyBub3QgYSBkcm9wIHpvbmVcbiAgY29sdW1uTW92ZUhpZGU6IHtcbiAgICBuYW1lOiAnZXllLW9mZicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBjb2x1bW5zIHRvIHJlb3JkZXJcbiAgY29sdW1uTW92ZU1vdmU6IHtcbiAgICBuYW1lOiAnYXJyb3ctbW92ZScsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gYW5pbWF0aW5nIGljb24gc2hvd24gd2hlbiBkcmFnZ2luZyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgb2ZcbiAgLy8gdGhlIGdyaWQgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gIGNvbHVtbk1vdmVMZWZ0OiB7XG4gICAgbmFtZTogJ2Fycm93LW1vdmUnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGFuaW1hdGluZyBpY29uIHNob3duIHdoZW4gZHJhZ2dpbmcgYSBjb2x1bW4gdG8gdGhlIGxlZnQgb2ZcbiAgLy8gdGhlIGdyaWQgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gIGNvbHVtbk1vdmVSaWdodDoge1xuICAgIG5hbWU6ICdhcnJvdy1tb3ZlJyxcbiAgICBzaXplOiAyMCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBkcmFnIGFuZCBkcm9wIGltYWdlIGNvbXBvbmVudCBpY29uIHdoaWxlIGRyYWdnaW5nXG4gIC8vIG92ZXIgUm93IEdyb3VwcyBkcm9wIHpvbmVcbiAgY29sdW1uTW92ZUdyb3VwOiB7XG4gICAgbmFtZTogJ2dyb3VwJyxcbiAgICBzaXplOiAyMCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBkcmFnIGFuZCBkcm9wIGltYWdlIGNvbXBvbmVudCBpY29uIHdoaWxlIGRyYWdnaW5nXG4gIC8vIG92ZXIgVmFsdWVzIGRyb3Agem9uZVxuICBjb2x1bW5Nb3ZlVmFsdWU6IHtcbiAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBvdmVyIHBpdm90IGRyb3Agem9uZVxuICBjb2x1bW5Nb3ZlUGl2b3Q6IHtcbiAgICBuYW1lOiAndGFibGUtZnJlZXplLWNvbHVtbicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBvdmVyIGRyb3Agem9uZSB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBpdCwgZS5nLlxuICAvLyBzdHJpbmcgY29sdW1uIG92ZXIgYWdncmVnYXRpb24gZHJvcCB6b25lXG4gIGRyb3BOb3RBbGxvd2VkOiB7XG4gICAgbmFtZTogJ3Byb2hpYml0ZWQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIHJvdyBncm91cCB3aGVuIGNvbnRyYWN0ZWQgKGNsaWNrIHRvIGV4cGFuZClcbiAgZ3JvdXBDb250cmFjdGVkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIHJvdyBncm91cCB3aGVuIGV4cGFuZGVkIChjbGljayB0byBjb250cmFjdClcbiAgZ3JvdXBFeHBhbmRlZDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNldCBmaWx0ZXIgdHJlZSBsaXN0IGdyb3VwIGNvbnRyYWN0ZWQgKGNsaWNrIHRvIGV4cGFuZClcbiAgc2V0RmlsdGVyR3JvdXBDbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gc2V0IGZpbHRlciB0cmVlIGxpc3QgZ3JvdXAgZXhwYW5kZWQgKGNsaWNrIHRvIGNvbnRyYWN0KVxuICBzZXRGaWx0ZXJHcm91cE9wZW46IHtcbiAgICBuYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBzZXQgZmlsdGVyIHRyZWUgbGlzdCBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiwgc2hvd24gd2hlblxuICAvLyBzb21lIGNoaWxkcmVuIGFyZSBleHBhbmRlZCBhbmRcbiAgLy8gb3RoZXJzIGFyZSBjb2xsYXBzZWRcbiAgc2V0RmlsdGVyR3JvdXBJbmRldGVybWluYXRlOiB7XG4gICAgbmFtZTogJ3N1YnRyYWN0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzZXQgZmlsdGVyIGFzeW5jIHZhbHVlcyBsb2FkaW5nXG4gIHNldEZpbHRlckxvYWRpbmc6IHtcbiAgICBuYW1lOiAnc3Bpbm5lci1pb3MnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbnRleHQgbWVudSBjaGFydCBpdGVtXG4gIGNoYXJ0OiB7XG4gICAgbmFtZTogJ2RhdGEtYmFyLXZlcnRpY2FsLWFzY2VuZGluZycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZGlhbG9nIHRpdGxlIGJhclxuICBjbG9zZToge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gWCAocmVtb3ZlKSBvbiBjb2x1bW4gJ3BpbGwnIGFmdGVyIGFkZGluZyBpdCB0byBhIGRyb3Agem9uZSBsaXN0XG4gIGNhbmNlbDoge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gaW5kaWNhdGVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBpbiBzdGF0ZSBpbiB0aGUgXCJQaW4gY29sdW1uXCJcbiAgLy8gc3ViLW1lbnUgb2YgdGhlIGNvbHVtbiBtZW51XG4gIGNoZWNrOiB7XG4gICAgbmFtZTogJ2NoZWNrbWFyaycsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gXCJnbyB0byBmaXJzdFwiIGJ1dHRvbiBpbiBwYWdpbmF0aW9uIGNvbnRyb2xzXG4gIGZpcnN0OiB7XG4gICAgbmFtZTogJ2Fycm93LXByZXZpb3VzJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBcImdvIHRvIHByZXZpb3VzXCIgYnV0dG9uIGluIHBhZ2luYXRpb24gY29udHJvbHNcbiAgcHJldmlvdXM6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1sZWZ0JyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBcImdvIHRvIG5leHRcIiBidXR0b24gaW4gcGFnaW5hdGlvbiBjb250cm9sc1xuICBuZXh0OiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIFwiZ28gdG8gbGFzdFwiIGJ1dHRvbiBpbiBwYWdpbmF0aW9uIGNvbnRyb2xzXG4gIGxhc3Q6IHtcbiAgICBuYW1lOiAnYXJyb3ctbmV4dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gdG9wIHJpZ2h0IG9mIGNoYXJ0IHdoZW4gY2hhcnQgaXMgbGlua2VkIHRvIHJhbmdlXG4gIC8vIGRhdGEgKGNsaWNrIHRvIHVubGluaylcbiAgbGlua2VkOiB7XG4gICAgbmFtZTogJ2xpbmstZGlzbWlzcycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gdG9wIHJpZ2h0IG9mIGNoYXJ0IHdoZW4gY2hhcnQgaXMgbm90IGxpbmtlZCB0b1xuICAvLyByYW5nZSBkYXRhIChjbGljayB0byBsaW5rKVxuICB1bmxpbmtlZDoge1xuICAgIG5hbWU6ICdsaW5rJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyByb3RhdGluZyBzcGlubmVyIHNob3duIGJ5IHRoZSBsb2FkaW5nIGNlbGwgcmVuZGVyZXJcbiAgZ3JvdXBMb2FkaW5nOiB7XG4gICAgbmFtZTogJ3NwaW5uZXItaW9zJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBidXR0b24gdG8gbGF1bmNoIGxlZ2FjeSBjb2x1bW4gbWVudVxuICBtZW51OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gYnV0dG9uIHRvIGxhdW5jaCBuZXcgZW50ZXJwcmlzZSBjb2x1bW4gbWVudVxuICBtZW51QWx0OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gbWVudSB0YWIgaWNvbiBpbiBsZWdhY3kgdGFiYmVkIGVudGVycHJpc2UgY29sdW1uIG1lbnVcbiAgbGVnYWN5TWVudToge1xuICAgIG5hbWU6ICdtb3JlLWFjdGlvbnMnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIG9wZW4gZmlsdGVyIGJ1dHRvbiAtIGhlYWRlciwgZmxvYXRpbmcgZmlsdGVyLCBtZW51XG4gIGZpbHRlcjoge1xuICAgIG5hbWU6ICdmaWx0ZXInLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGZpbHRlciBpcyBhcHBsaWVkIC0gaGVhZGVyIChsZWdhY3kgY29sdW1uIG1lbnUpLCBmaWx0ZXIgdG9vbCBwYW5lbFxuICBmaWx0ZXJBY3RpdmU6IHtcbiAgICBuYW1lOiAnZmlsdGVyJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBmaWx0ZXIgdGFiIGljb24gaW4gbGVnYWN5IHRhYmJlZCBlbnRlcnByaXNlIGNvbHVtbiBtZW51XG4gIGZpbHRlclRhYjoge1xuICAgIG5hbWU6ICdmaWx0ZXInLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGZpbHRlciB0b29sIHBhbmVsIHRhYlxuICBmaWx0ZXJzVG9vbFBhbmVsOiB7XG4gICAgbmFtZTogJ2ZpbHRlcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY29sdW1ucyBpbiBtZW51IChjb2x1bW4gY2hvb3NlciAvIGNvbHVtbnMgdGFiKVxuICBjb2x1bW5zOiB7XG4gICAgbmFtZTogJ2xheW91dC1jb2x1bW4tdGhyZWUnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbHVtbiB0b29sIHBhbmVsIHRhYlxuICBjb2x1bW5zVG9vbFBhbmVsOiB7XG4gICAgbmFtZTogJ2xheW91dC1jb2x1bW4tdGhyZWUnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGJ1dHRvbiBpbiBjaGFydCByZWd1bGFyIHNpemUgd2luZG93IHRpdGxlIGJhciAoY2xpY2sgdG8gbWF4aW1pc2UpXG4gIG1heGltaXplOiB7XG4gICAgbmFtZTogJ2Fycm93LW1heGltaXplJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBidXR0b24gaW4gY2hhcnQgbWF4aW1pc2VkIHdpbmRvdyB0aXRsZSBiYXIgKGNsaWNrIHRvIG1ha2UgcmVndWxhciBzaXplKVxuICBtaW5pbWl6ZToge1xuICAgIG5hbWU6ICdhcnJvdy1taW5pbWl6ZScsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gXCJQaW4gY29sdW1uXCIgaXRlbSBpbiBjb2x1bW4gaGVhZGVyIG1lbnVcbiAgbWVudVBpbjoge1xuICAgIG5hbWU6ICdwaW4nLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiVmFsdWUgYWdncmVnYXRpb25cIiBjb2x1bW4gbWVudSBpdGVtIChzaG93biBvbiBudW1lcmljXG4gIC8vIGNvbHVtbnMgd2hlbiBncm91cGluZyBpcyBhY3RpdmUpXCJcbiAgbWVudVZhbHVlOiB7XG4gICAgbmFtZTogJ2NhbGN1bGF0b3InLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiR3JvdXAgYnkge2NvbHVtbi1uYW1lfVwiIGl0ZW0gaW4gY29sdW1uIGhlYWRlciBtZW51XG4gIG1lbnVBZGRSb3dHcm91cDoge1xuICAgIG5hbWU6ICdhcnJvdy1jb2xsYXBzZS1hbGwnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiVW4tR3JvdXAgYnkge2NvbHVtbi1uYW1lfVwiIGl0ZW0gaW4gY29sdW1uIGhlYWRlciBtZW51XG4gIG1lbnVSZW1vdmVSb3dHcm91cDoge1xuICAgIG5hbWU6ICdhcnJvdy1jb2xsYXBzZS1hbGwnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbnRleHQgbWVudSBjb3B5IGl0ZW1cbiAgY2xpcGJvYXJkQ29weToge1xuICAgIG5hbWU6ICdjb3B5JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb250ZXh0IG1lbnUgY3V0IGl0ZW1cbiAgY2xpcGJvYXJkQ3V0OiB7XG4gICAgbmFtZTogJ2N1dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY29udGV4dCBtZW51IHBhc3RlIGl0ZW1cbiAgY2xpcGJvYXJkUGFzdGU6IHtcbiAgICBuYW1lOiAnY2xpcGJvYXJkLWFycm93LXJpZ2h0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBpZGVudGlmaWVzIHRoZSBwaXZvdCBkcm9wIHpvbmVcbiAgcGl2b3RQYW5lbDoge1xuICAgIG5hbWU6ICdwaXZvdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gXCJSb3cgZ3JvdXBzXCIgZHJvcCB6b25lIGluIGNvbHVtbiB0b29sIHBhbmVsXG4gIHJvd0dyb3VwUGFuZWw6IHtcbiAgICBuYW1lOiAnZ3JvdXAnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGNvbHVtbnMgdG9vbCBwYW5lbCBWYWx1ZXMgZHJvcCB6b25lXG4gIHZhbHVlUGFuZWw6IHtcbiAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZHJhZyBoYW5kbGUgdXNlZCB0byBwaWNrIHVwIGRyYWdnYWJsZSBjb2x1bW5zXG4gIGNvbHVtbkRyYWc6IHtcbiAgICBuYW1lOiAncmUtb3JkZXItZG90cy12ZXJ0aWNhbCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZHJhZyBoYW5kbGUgdXNlZCB0byBwaWNrIHVwIGRyYWdnYWJsZSByb3dzXG4gIHJvd0RyYWc6IHtcbiAgICBuYW1lOiAnYXJyb3ctYmlkaXJlY3Rpb25hbC11cC1kb3duJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb250ZXh0IG1lbnUgZXhwb3J0IGl0ZW1cbiAgc2F2ZToge1xuICAgIG5hbWU6ICdhcnJvdy1kb3dubG9hZCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY3N2IGV4cG9ydFxuICBjc3ZFeHBvcnQ6IHtcbiAgICBuYW1lOiAnZG9jdW1lbnQtdGV4dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZXhjZWwgZXhwb3J0XG4gIGV4Y2VsRXhwb3J0OiB7XG4gICAgbmFtZTogJ2RvY3VtZW50LXhscycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gaWNvbiBvbiBzZWxlY3QgZHJvcGRvd25zIChzZWxlY3QgY2VsbCBlZGl0b3IsIGNoYXJ0cyB0b29sIHBhbmVscylcbiAgc2VsZWN0T3Blbjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIG9wZW4gaWNvbiBmb3IgcmljaCBzZWxlY3QgZWRpdG9yXG4gIHJpY2hTZWxlY3RPcGVuOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG93bicsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gcmVtb3ZlIGZvciByaWNoIHNlbGVjdCBlZGl0b3IgcGlsbHNcbiAgcmljaFNlbGVjdFJlbW92ZToge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gaWNvbiBmb3Igc3ViIG1lbnUgaXRlbVxuICBzdWJNZW51T3Blbjoge1xuICAgIG5hbWU6ICdhcnJvdy1yaWdodCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gdmVyc2lvbiBvZiBzdWJNZW51T3BlbiB1c2VkIGluIFJUTCBtb2RlXG4gIHN1Yk1lbnVPcGVuUnRsOiB7XG4gICAgbmFtZTogJ2Fycm93LWxlZnQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNlcGFyYXRvciBiZXR3ZWVuIGNvbHVtbiAncGlsbHMnIHdoZW4geW91IGFkZCBtdWx0aXBsZVxuICAvLyBjb2x1bW5zIHRvIHRoZSBoZWFkZXIgZHJvcCB6b25lXG4gIHBhbmVsRGVsaW1pdGVyOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHZlcnNpb24gb2YgcGFuZWxEZWxpbWl0ZXIgdXNlZCBpbiBSVEwgbW9kZVxuICBwYW5lbERlbGltaXRlclJ0bDoge1xuICAgIG5hbWU6ICdhcnJvdy1sZWZ0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93IG9uIGNvbHVtbiBoZWFkZXIgd2hlbiBjb2x1bW4gaXMgc29ydGVkIGFzY2VuZGluZ1xuICBzb3J0QXNjZW5kaW5nOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tdXAnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3cgb24gY29sdW1uIGhlYWRlciB3aGVuIGNvbHVtbiBpcyBzb3J0ZWQgZGVzY2VuZGluZ1xuICBzb3J0RGVzY2VuZGluZzoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3cgb24gY29sdW1uIGhlYWRlciB3aGVuIGNvbHVtbiBoYXMgbm8gc29ydCwgb25seSB3aGVuXG4gIC8vIGVuYWJsZWQgd2l0aCBjb2xEZWYudW5Tb3J0SWNvbj10cnVlXG4gIHNvcnRVblNvcnQ6IHtcbiAgICBuYW1lOiAnc3VidHJhY3QnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIEJ1aWxkZXIgYnV0dG9uIGluIEFkdmFuY2VkIEZpbHRlclxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXI6IHtcbiAgICBuYW1lOiAnZ3JvdXAnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGRyYWcgaGFuZGxlIHVzZWQgdG8gcGljayB1cCBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlckRyYWc6IHtcbiAgICBuYW1lOiAncmUtb3JkZXItZG90cy12ZXJ0aWNhbCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgcm93IHZhbGlkYXRpb24gZXJyb3JcbiAgYWR2YW5jZWRGaWx0ZXJCdWlsZGVySW52YWxpZDoge1xuICAgIG5hbWU6ICdwcm9oaWJpdGVkJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93biBvbiBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzIHRvIG1vdmUgdGhlbSB1cFxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXJNb3ZlVXA6IHtcbiAgICBuYW1lOiAnY2hldnJvbi11cCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgcm93cyB0byBtb3ZlIHRoZW0gZG93blxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXJNb3ZlRG93bjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIEFkdmFuY2VkIEZpbHRlciBCdWlsZGVyIHJvd3MgdG8gYWRkIG5ldyByb3dzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlckFkZDoge1xuICAgIG5hbWU6ICdhZGQtY2lyY2xlJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzIHRvIHJlbW92ZSByb3dcbiAgYWR2YW5jZWRGaWx0ZXJCdWlsZGVyUmVtb3ZlOiB7XG4gICAgbmFtZTogJ3N1YnRyYWN0LWNpcmNsZScsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgc2VsZWN0aW9uIHBpbGxzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlclNlbGVjdDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIGljb24gdG8gb3BlbiBjaGFydHMgbWVudVxuICBjaGFydHNNZW51OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gRWRpdCBDaGFydCBtZW51IGl0ZW0gc2hvd24gaW4gSW50ZWdyYXRlZCBDaGFydHMgbWVudVxuICBjaGFydHNNZW51RWRpdDoge1xuICAgIG5hbWU6ICdkYXRhLWJhci12ZXJ0aWNhbC1hc2NlbmRpbmcnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIEFkdmFuY2VkIFNldHRpbmdzIG1lbnUgaXRlbSBzaG93biBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBtZW51XG4gIGNoYXJ0c01lbnVBZHZhbmNlZFNldHRpbmdzOiB7XG4gICAgbmFtZTogJ3NldHRpbmdzJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93biBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBtZW51IGFkZCBmaWVsZHNcbiAgY2hhcnRzTWVudUFkZDoge1xuICAgIG5hbWU6ICdhZGQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIGluIEludGVncmF0ZWQgQ2hhcnRzIHRvb2wgcGFuZWwgY29sb3IgcGlja2VyXG4gIGNoYXJ0c0NvbG9yUGlja2VyOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG93bicsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gcHJldmlvdXMgaW4gSW50ZWdyYXRlZCBDaGFydHMgc2V0dGluZ3MgdG9vbCBwYW5lbCB0aGVtZSBzd2l0Y2hlclxuICBjaGFydHNUaGVtZVByZXZpb3VzOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tbGVmdCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gbmV4dCBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBzZXR0aW5ncyB0b29sIHBhbmVsIHRoZW1lIHN3aXRjaGVyXG4gIGNoYXJ0c1RoZW1lTmV4dDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBkb3dubG9hZCBjaGFydFxuICBjaGFydHNEb3dubG9hZDoge1xuICAgIG5hbWU6ICdhcnJvdy1kb3dubG9hZCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG59O1xuZXhwb3J0IHR5cGUgSWNvbk1hcFR5cGUgPSB0eXBlb2YgaWNvbk1hcDtcbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixNQUFNLENBQUMsT0FBOEI7UUFDMUMsY0FBYztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQThCO1FBQzNDLGNBQWM7SUFDaEIsQ0FBQzsrR0FQVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwrRUNadEMscUNBQ0EsMkNET1ksYUFBYTs7NEZBSVoseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixXQUN0QixDQUFDLGFBQWEsQ0FBQyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5V2FpdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5UGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1sb2FkaW5nJyxcbiAgaW1wb3J0czogW1NreVdhaXRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAge1xuICBwdWJsaWMgYWdJbml0KF9wYXJhbXM6IElMb2FkaW5nT3ZlcmxheVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuXG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChfcGFyYW1zOiBJTG9hZGluZ092ZXJsYXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG59XG4iLCI8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJ0cnVlXCIgLz5cbiJdfQ==","/**\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.3.15\", 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.3.15\", ngImport: i0, type: SkyAgGridService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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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QUFDLFFBQVEsQ0FDdEIsQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQW1DO1FBQ2hELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBdGxCVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDU1BfTk9OQ0UsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5RGF0ZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIEFnQ29sdW1uLFxuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIENlbGxSZW5kZXJlclNlbGVjdG9yRnVuYyxcbiAgQ2VsbFJlbmRlcmVyU2VsZWN0b3JSZXN1bHQsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93Tm9kZSxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0U2t5QWdHcmlkVGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvYWctZ3JpZC10aGVtZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4vYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUFnR3JpZExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbENsYXNzIH0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuaW1wb3J0IHsgU2t5SGVhZGVyQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBMYXN0Rm9jdXNlZENlbGwgfSBmcm9tICcuL3R5cGVzL2xhc3QtZm9jdXNlZC5jZWxsJztcbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IoXG4gIHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSxcbiAgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9LFxuKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IERhdGUgfCBzdHJpbmcsIGRhdGUyOiBEYXRlIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gIGNvbXBvbmVudDogc3RyaW5nLFxuICBmYWxsYmFjaz86IENlbGxSZW5kZXJlclNlbGVjdG9yUmVzdWx0LFxuKTogQ2VsbFJlbmRlcmVyU2VsZWN0b3JGdW5jIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zLmNvbHVtbj8uaXNDZWxsRWRpdGFibGUocGFyYW1zLm5vZGUpIHx8XG4gICAgICAgICFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgcGFyYW1zPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gLTE7XG5cbi8qKlxuICogYFNreUFnR3JpZFNlcnZpY2VgIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IEFHIEdyaWQgYGdyaWRPcHRpb25zYCB0byBlbnN1cmUgZ3JpZHMgbWF0Y2ggU0tZIFVYIGZ1bmN0aW9uYWxpdHkuIFRoZSBgZ3JpZE9wdGlvbnNgIGNhbiBiZSBvdmVycmlkZGVuLCBhbmQgaW5jbHVkZSByZWdpc3RlcmVkIFNLWSBVWCBjb2x1bW4gdHlwZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgI2tleU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgc3RyaW5nPigpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICNyZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICNkYXRlU2VydmljZSA9IGluamVjdChTa3lEYXRlU2VydmljZSk7XG4gICNsb2dTZXJ2aWNlID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjY3NwTm9uY2UgPSBpbmplY3QoQ1NQX05PTkNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZSA9IGFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zPFQgPSBhbnk+KFxuICAgIGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnczxUPixcbiAgKTogR3JpZE9wdGlvbnM8VD4ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMuI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgICBkZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICBhcmdzLmdyaWRPcHRpb25zLFxuICAgICk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBbQUcgR3JpZCBgZ3JpZE9wdGlvbnNgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcHJvcGVydGllcy8pIHdpdGggZGVmYXVsdCBTS1kgVVggb3B0aW9ucywgc3R5bGluZywgYW5kIGNlbGwgZWRpdG9ycyByZWdpc3RlcmVkIGZvciBlZGl0YWJsZSBncmlkcy5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRFZGl0YWJsZUdyaWRPcHRpb25zPFQgPSBhbnk+KFxuICAgIGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnczxUPixcbiAgKTogR3JpZE9wdGlvbnM8VD4ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9uczxUPihcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNtZXJnZUdyaWRPcHRpb25zPFQ+KFxuICAgIGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnM8VD4gJiB7XG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpID0+IHN0cmluZ1tdO1xuICAgIH0sXG4gICAgcHJvdmlkZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnM8VD4sXG4gICk6IEdyaWRPcHRpb25zPFQ+IHtcbiAgICBpZiAoJ2VuYWJsZVJhbmdlU2VsZWN0aW9uJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbikge1xuICAgICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmNlbGxTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgfVxuICAgICAgZGVsZXRlIHByb3ZpZGVkR3JpZE9wdGlvbnMuZW5hYmxlUmFuZ2VTZWxlY3Rpb247XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID09PSAnc2luZ2xlJyB8fFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdtdWx0aXBsZSdcbiAgICApIHtcbiAgICAgIGNvbnN0IHJvd1NlbGVjdGlvbk9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIFJvd1NlbGVjdGlvbk9wdGlvbnM+ID0ge1xuICAgICAgICBzaW5nbGU6IHsgbW9kZTogJ3NpbmdsZVJvdycsIGNoZWNrYm94ZXM6IGZhbHNlIH0sXG4gICAgICAgIG11bHRpcGxlOiB7IG1vZGU6ICdtdWx0aVJvdycsIGNoZWNrYm94ZXM6IGZhbHNlIH0sXG4gICAgICB9O1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPVxuICAgICAgICByb3dTZWxlY3Rpb25PcHRpb25zW3Byb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uXTtcbiAgICB9XG4gICAgaWYgKHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uPy5tb2RlKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcbiAgICAgICAgLi4uKChkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uIGFzIFJvd1NlbGVjdGlvbk9wdGlvbnMpID8/IHtcbiAgICAgICAgICBjaGVja2JveGVzOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uLFxuICAgICAgfSBhcyBSb3dTZWxlY3Rpb25PcHRpb25zO1xuICAgIH1cbiAgICBpZiAoJ2VuYWJsZUNlbGxDaGFuZ2VGbGFzaCcgaW4gcHJvdmlkZWRHcmlkT3B0aW9ucykge1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmID8/PSB7fTtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZi5lbmFibGVDZWxsQ2hhbmdlRmxhc2ggPz89XG4gICAgICAgICEhcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsQ2hhbmdlRmxhc2g7XG4gICAgICBkZWxldGUgcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsQ2hhbmdlRmxhc2g7XG4gICAgfVxuXG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucyxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgICAvLyBBcHBseSBkZWZhdWx0IGNvbXBvbmVudHMgbGFzdCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBjb21wb25lbnQgdHlwZXMuXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgfSxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbnRleHQsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29udGV4dCxcbiAgICAgIH0sXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAvLyBhbGxvdyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgYWxsIGRlZmF1bHRDb2xEZWYgcHJvcGVydGllcyBleGNlcHQgY2VsbENsYXNzUnVsZXMsIHdoaWNoIHdlIHJlc2VydmUgZm9yIHN0eWxpbmdcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmPy5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmPy5oZWFkZXJDbGFzcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICAgIGhlYWRlckNsYXNzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmPy5oZWFkZXJDbGFzcyxcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdENsYXNzZXMgPSBkZWZhdWx0R3JpZE9wdGlvbnMuZ2V0Um93Q2xhc3MoXG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICApIGFzIHN0cmluZ1tdO1xuICAgICAgICBjb25zdCBwcm92aWRlZENsYXNzZXMgPSBwcm92aWRlZEdyaWRPcHRpb25zLmdldFJvd0NsYXNzPy4ocGFyYW1zKSA/PyBbXTtcbiAgICAgICAgY29uc3QgcHJvdmlkZWRDbGFzc2VzQXJyYXkgPSBBcnJheS5pc0FycmF5KHByb3ZpZGVkQ2xhc3NlcylcbiAgICAgICAgICA/IHByb3ZpZGVkQ2xhc3Nlc1xuICAgICAgICAgIDogW3Byb3ZpZGVkQ2xhc3Nlc107XG4gICAgICAgIHJldHVybiBbLi4uZGVmYXVsdENsYXNzZXMsIC4uLnByb3ZpZGVkQ2xhc3Nlc0FycmF5XTtcbiAgICAgIH0sXG4gICAgICBvbkNlbGxGb2N1c2VkOiAoZXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLm9uQ2VsbEZvY3VzZWQ/LihldmVudCk7XG4gICAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIEVuYWJsZSB0ZXh0IHNlbGVjdGlvbiB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZCBvciBjb25mbGljdGluZyB3aXRoIGFub3RoZXIgc2V0dGluZy5cbiAgICBpZiAoXG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiB8fFxuICAgICAgKCEoJ2VuYWJsZUNlbGxUZXh0U2VsZWN0aW9uJyBpbiBtZXJnZWRHcmlkT3B0aW9ucykgJiZcbiAgICAgICAgIW1lcmdlZEdyaWRPcHRpb25zLmNlbGxTZWxlY3Rpb24gJiZcbiAgICAgICAgIW1lcmdlZEdyaWRPcHRpb25zLmNvbHVtbkRlZnM/LnNvbWUoKGNvbDogQ29sRGVmKSA9PiBjb2wuZWRpdGFibGUpKVxuICAgICkge1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dCB8fD0ge307XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA/Pz0gdHJ1ZTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmNvbnRleHQuZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24gPVxuICAgICAgICBtZXJnZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAjZ2V0RGVmYXVsdEdyaWRPcHRpb25zPFQ+KGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnczxUPik6IEdyaWRPcHRpb25zPFQ+ICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIC8vIGNlbGxDbGFzc1J1bGVzIGNhbiBiZSBmdW5jdGlvbnMgb3Igc3RyaW5nIGV4cHJlc3Npb25zXG4gICAgY29uc3QgY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uID0gKCk6IGJvb2xlYW4gPT4gdHJ1ZTtcblxuICAgIGZ1bmN0aW9uIGdldEVkaXRhYmxlRm4oXG4gICAgICBpc1VuZWRpdGFibGU/OiBib29sZWFuLFxuICAgICk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc0VkaXRhYmxlID0gcGFyYW1zLmNvbERlZi5lZGl0YWJsZTtcblxuICAgICAgICBpZiAodHlwZW9mIGlzRWRpdGFibGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCBjb2x1bW4gPSBwYXJhbXMuYXBpLmdldENvbHVtbihwYXJhbXMuY29sRGVmKTtcbiAgICAgICAgICBpc0VkaXRhYmxlID0gaXNFZGl0YWJsZSh7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSBhcyBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1VuZWRpdGFibGUgPyAhaXNFZGl0YWJsZSA6ICEhaXNFZGl0YWJsZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuRWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKCksXG4gICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKHRydWUpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbTogQ2VsbENsYXNzUGFyYW1zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJhbS5jb2xEZWYgJiZcbiAgICAgICAgICB0eXBlb2YgcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgICAgcGFyYW0udmFsdWUsXG4gICAgICAgICAgICBwYXJhbS5kYXRhLFxuICAgICAgICAgICAgcGFyYW0ubm9kZT8ucm93SW5kZXgsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvckNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5JbnZhbGlkXTogZ2V0VmFsaWRhdG9yRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVmFsaWRhdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRIZWFkZXJDbGFzcyhcbiAgICAgIC4uLmNsYXNzTmFtZXM6IHN0cmluZ1tdXG4gICAgKTogKHBhcmFtczogSGVhZGVyQ2xhc3NQYXJhbXMpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNaW5XaWR0aCgpID8/IDA7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gcGFyYW1zLmNvbHVtbj8uZ2V0TWF4V2lkdGgoKSA/PyBJbmZpbml0eTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChwYXJhbXMuY29sdW1uR3JvdXA/LmlzUmVzaXphYmxlKCkgfHwgcGFyYW1zLmNvbHVtbj8uaXNSZXNpemFibGUoKSkgJiZcbiAgICAgICAgICBtaW5XaWR0aCA8IG1heFdpZHRoXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBbLi4uY2xhc3NOYW1lcywgU2t5SGVhZGVyQ2xhc3MuUmVzaXphYmxlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lcztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGF1dG9jb21wbGV0ZUZvcm1hdHRlcixcbiAgICAgICAgICBjb21wYXJhdG9yOiBhdXRvY29tcGxldGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5DdXJyZW5jeV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5DdXJyZW5jeV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgICBzb3J0aW5nT3JkZXI6IFtudWxsLCAnZGVzYycsICdhc2MnXSxcbiAgICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLiNzdXBwcmVzc0VudGVyKHBhcmFtcykgfHwgdGhpcy4jc3VwcHJlc3NUYWIocGFyYW1zKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuI2RhdGVTZXJ2aWNlLmZvcm1hdChcbiAgICAgICAgICAgICAgICAgIHBhcmFtcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIGFyZ3MubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgYXJncy5kYXRlRm9ybWF0IHx8ICdzaG9ydERhdGUnLFxuICAgICAgICAgICAgICAgICkgfHwgJydcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoKGVyciBhcyBFcnJvcikuc3RhY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNsb2dTZXJ2aWNlLmVycm9yKGAkeyhlcnIgYXMgRXJyb3IpLnN0YWNrfWApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7ZXJyfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTG9va3VwXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkxvb2t1cF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBQcm9wZXJ0aWVzID0gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMoXG4gICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxFZGl0b3JQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXMgPz9cbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IGFzIHN0cmluZ107XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTnVtYmVyXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLk51bWJlcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgICAgc29ydGluZ09yZGVyOiBbbnVsbCwgJ2Rlc2MnLCAnYXNjJ10sXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5SaWdodEFsaWduZWRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuUmlnaHRBbGlnbmVkXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Sb3dTZWxlY3Rvcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnUm93IHNlbGVjdGlvbicsXG4gICAgICAgICAgbWluV2lkdGg6IDU1LFxuICAgICAgICAgIG1heFdpZHRoOiA1NSxcbiAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZW1wbGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZW1wbGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZXh0XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRleHRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKCksXG4gICAgICAgIGhlYWRlckNvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBtaW5XaWR0aDogMTAwLFxuICAgICAgICBzdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnQ6IChcbiAgICAgICAgICBrZXlwcmVzczogU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICAgICAgICApID0+IGtleXByZXNzLmV2ZW50LmNvZGUgPT09ICdUYWInLFxuICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChrZXlwcmVzczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PlxuICAgICAgICAgIHRoaXMuI3N1cHByZXNzVGFiKGtleXByZXNzKSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgaGVhZGVyR3JvdXBDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGRvbUxheW91dDogJ2F1dG9IZWlnaHQnLFxuICAgICAgZW5zdXJlRG9tT3JkZXI6IHRydWUsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZm9jdXNHcmlkSW5uZXJFbGVtZW50OiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RGb2N1c2VkQ2VsbCA9IHBhcmFtcy5jb250ZXh0Py5bJ2xhc3RGb2N1c2VkQ2VsbCddIGFzXG4gICAgICAgICAgfCBMYXN0Rm9jdXNlZENlbGxcbiAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbCkge1xuICAgICAgICAgIGlmIChsYXN0Rm9jdXNlZENlbGwucm93SW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZENlbGwoXG4gICAgICAgICAgICAgIGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCxcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLmNvbHVtbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZEhlYWRlcihsYXN0Rm9jdXNlZENlbGwuY29sdW1uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0lkOiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFJZCA9IHBhcmFtcy5kYXRhLmlkO1xuICAgICAgICBpZiAoZGF0YUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zLmRhdGEuaWR9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuI2tleU1hcC5oYXMocGFyYW1zLmRhdGEpKSB7XG4gICAgICAgICAgdGhpcy4ja2V5TWFwLnNldChwYXJhbXMuZGF0YSwgYCR7cm93Tm9kZUlkLS19YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuI2tleU1hcC5nZXQocGFyYW1zLmRhdGEpIGFzIHN0cmluZztcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgIGlmIChwYXJhbXMubm9kZS5pZCkge1xuICAgICAgICAgIHJldHVybiBbYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGljb25zOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5rZXlzKGljb25NYXApLm1hcCgoaWNvbktleSkgPT4gW1xuICAgICAgICAgIGljb25LZXksXG4gICAgICAgICAgdGhpcy4jZ2V0SWNvblRlbXBsYXRlKGljb25LZXkgYXMga2V5b2YgSWNvbk1hcFR5cGUpLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudDogU2t5QWdHcmlkTG9hZGluZ0NvbXBvbmVudCxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudDogQ2VsbEZvY3VzZWRFdmVudCkgPT4gdGhpcy4jb25DZWxsRm9jdXNlZChldmVudCksXG4gICAgICByb3dNb2RlbFR5cGU6ICdjbGllbnRTaWRlJyxcbiAgICAgIHJvd1NlbGVjdGlvbjoge1xuICAgICAgICBtb2RlOiAnbXVsdGlSb3cnLFxuICAgICAgICBlbmFibGVDbGlja1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgIGVuYWJsZVNlbGVjdGlvbldpdGhvdXRLZXlzOiB0cnVlLFxuICAgICAgICBjaGVja2JveGVzOiBmYWxzZSxcbiAgICAgICAgaGVhZGVyQ2hlY2tib3g6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHNpbmdsZUNsaWNrRWRpdDogdHJ1ZSxcbiAgICAgIHN0eWxlTm9uY2U6IHRoaXMuI2NzcE5vbmNlID8/IHVuZGVmaW5lZCxcbiAgICAgIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zOiB0cnVlLFxuICAgICAgdGhlbWU6IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWdyaWQnKSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uVHlwZXMgPSBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMgYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29sRGVmXG4gICAgPjtcblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhYCR7dmFsdWUgfHwgJyd9YC5tYXRjaCgvXlteMC05XSooXFxkK1ssLl0/KStcXGQqW14wLTldKiQvKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBjdXJyZW5jeScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbXG4gICAgICAgICAgICBTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXSxcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0sXG4gICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNyZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmcnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuUm93U2VsZWN0b3JdLmhlYWRlck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRTa3lHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNvbkNlbGxGb2N1c2VkKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkRm9jdXMgPSB0aGlzLiNzaG91bGRGb2N1c0NoaWxkcmVuKGV2ZW50KTtcbiAgICBpZiAoc2hvdWxkRm9jdXMpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihjdXJyZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgI3Nob3VsZEZvY3VzQ2hpbGRyZW4oZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvdWxkRm9jdXMgPSB0cnVlO1xuICAgIC8vIFRoZSBBUEkgc2F5cyB0aGUgY29sdW1uIGNhbiBiZSBzdHJpbmcgb3IgbnVsbCwgYnV0IHNob3VsZCBiZSBhbiBvYmplY3QuXG4gICAgc2hvdWxkRm9jdXMgJiY9IHR5cGVvZiBldmVudC5jb2x1bW4gPT09ICdvYmplY3QnO1xuICAgIC8vIFJvdyBpbmRleCBjYW4gYmUgbnVtYmVyIG9yIG51bGwuXG4gICAgY29uc3Qgcm93Tm9kZSA9XG4gICAgICBOdW1iZXIuaXNJbnRlZ2VyKGV2ZW50LnJvd0luZGV4KSAmJlxuICAgICAgZXZlbnQuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoZXZlbnQucm93SW5kZXggYXMgbnVtYmVyKTtcbiAgICBzaG91bGRGb2N1cyAmJj0gISFyb3dOb2RlO1xuICAgIC8vIERvIG5vdCBjaGFuZ2UgZm9jdXMgaWYgdGhlIGNlbGwgaXMgYSByb3cgZHJhZyBvciBkbmQgc291cmNlLlxuICAgIHNob3VsZEZvY3VzICYmPSAhKGV2ZW50LmNvbHVtbiBhcyBBZ0NvbHVtbikuaXNSb3dEcmFnKHJvd05vZGUgYXMgUm93Tm9kZSk7XG4gICAgc2hvdWxkRm9jdXMgJiY9ICEoZXZlbnQuY29sdW1uIGFzIEFnQ29sdW1uKS5pc0RuZFNvdXJjZShyb3dOb2RlIGFzIFJvd05vZGUpO1xuICAgIHJldHVybiBzaG91bGRGb2N1cztcbiAgfVxuXG4gICNnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9uczxUPihcbiAgICBhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3M8VD4sXG4gICk6IEdyaWRPcHRpb25zPFQ+ICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy50aGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWVudHJ5LWdyaWQnKTtcbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI2dldEljb25UZW1wbGF0ZShpY29uS2V5OiBrZXlvZiBJY29uTWFwVHlwZSk6ICgpID0+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":["i1","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.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsbUNBQW1DLEVBQUU7WUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUNyRSw2Q0FBNkMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHlDQUF5QyxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCx1Q0FBdUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsK0NBQStDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGtEQUFrRCxFQUFFO1lBQ2xELE9BQU8sRUFBRSx1QkFBdUI7U0FDakM7UUFDRCxvREFBb0QsRUFBRTtZQUNwRCxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDOUQsMkNBQTJDLEVBQUU7WUFDM0MsT0FBTyxFQUFFLG1DQUFtQztTQUM3QztRQUNELDhEQUE4RCxFQUFFO1lBQzlELE9BQU8sRUFBRSxzQ0FBc0M7U0FDaEQ7UUFDRCwrREFBK0QsRUFBRTtZQUMvRCxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QscUVBQXFFLEVBQUU7WUFDckUsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGlEQUFpRCxFQUFFO1lBQ2pELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCxtREFBbUQsRUFBRTtZQUNuRCxPQUFPLEVBQUUsMkJBQTJCO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsc0NBQXNDO1NBQ2hEO1FBQ0QsdUNBQXVDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELDZDQUE2QyxFQUFFO1lBQzdDLE9BQU8sRUFBRSx1Q0FBdUM7U0FDakQ7UUFDRCw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLHlDQUF5QztTQUNuRDtRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSx3Q0FBd0M7U0FDbEQ7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUscURBQXFEO1NBQy9EO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRTtRQUNyRSwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUseUNBQXlDO1NBQ25EO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLHVEQUF1RDtTQUNqRTtRQUNELCtEQUErRCxFQUFFO1lBQy9ELE9BQU8sRUFBRSx5REFBeUQ7U0FDbkU7UUFDRCxxRUFBcUUsRUFBRTtZQUNyRSxPQUFPLEVBQUUsOENBQThDO1NBQ3hEO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSxtQ0FBbUM7U0FDN0M7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCOytHQUF4Qix3QkFBd0I7Z0hBQXhCLHdCQUF3QixZQUZ6QixhQUFhO2dIQUVaLHdCQUF3QixZQUZ6QixhQUFhOzs0RkFFWix3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1hZy1ncmlkJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSb3cgc2VsZWN0b3IgZm9yIHJvdyB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2NvbHVtbl9oZWFkaW5nOiB7IG1lc3NhZ2U6ICdSb3cgc2VsZWN0aW9uJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGRhdGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfaGludF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIG51bWJlciB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfdGV4dF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgdGV4dCB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBhdXRvY29tcGxldGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnRW50ZXIgYSB2YWxpZCBudW1iZXIuJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIGN1cnJlbmN5LicsXG4gICAgfSxcbiAgICBza3l1eF9sb29rdXBfdG9rZW5zX3N1bW1hcnk6IHsgbWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgY3VycmVuY3kgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfYXNjOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBjdXJyZW50bHkgYXNjZW5kaW5nJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1NvcnQgY29sdW1uIHswfSwgY3VycmVudGx5IGRlc2NlbmRpbmcnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBub3QgY3VycmVudGx5IHNvcnRlZCcsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRXhwYW5kIGNvbHVtbiBncm91cCB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQ29sbGFwc2UgY29sdW1uIGdyb3VwIHswfScsXG4gICAgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGV1ciBkZSBsaWduZSBwb3VyIGxhIGxpZ25lIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmc6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9uIGTigJl1bmUgbGlnbmUnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfZGF0ZXBpY2tlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRGF0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2hpbnRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1V0aWxpc2V6IGxlIGZvcm1hdCB7MH0uJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnTnVtw6lybyBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdUZXh0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1NhaXNpZSBhdXRvbWF0aXF1ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1biBudW3DqXJvIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1bmUgZGV2aXNlIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5OiB7IG1lc3NhZ2U6ICd7MH0gYXJ0aWNsZXMgc8OpbGVjdGlvbm7DqXMnIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0RldmlzZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgZMOpY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfbm90X3NvcnRlZDoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgbm9uIHRyacOpZScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQWdyYW5kaXIgbGUgZ3JvdXBlIGRlIGNvbG9ubmVzIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2NvbGxhcHNlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSw6lkdWlyZSBsZSBncm91cGUgZGUgY29sb25uZXMgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=","import { colorSchemeLight, themeQuartz, } from 'ag-grid-community';\nconst defaultsForAllThemes = {\n backgroundColor: 'var(--sky-override-ag-grid-background-color, var(--sky-color-background-row-base))',\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-comp-grid-cell-space-inset-left))',\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 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: 'var(--sky-override-ag-grid-checkbox-unchecked-background-color, var(--sky-color-background-input-base))',\n checkboxUncheckedBorderColor: `var(\n --sky-override-ag-grid-checkbox-unchecked-border-color,\n var(--sky-color-border-switch-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-comp-override-list-header-background-color, 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-comp-grid-cell-space-inset-top) + var(--sky-comp-grid-cell-space-inset-bottom))))',\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-override-ag-grid-odd-row-background-color, var(--sky-color-background-row-base))',\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-comp-grid-cell-space-inset-top) + var(--sky-comp-grid-cell-space-inset-bottom))))',\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvc3R5bGVzL2FnLWdyaWQtdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixXQUFXLEdBQ1osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixNQUFNLG9CQUFvQixHQUFnQztJQUN4RCxlQUFlLEVBQ2Isb0ZBQW9GO0lBQ3RGLFdBQVcsRUFDVCxpRkFBaUY7SUFDbkYsWUFBWSxFQUNWLHVFQUF1RTtJQUN6RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixxQkFBcUIsRUFDbkIsaUdBQWlHO0lBQ25HLGlCQUFpQixFQUNmLHlMQUF5TDtJQUMzTCwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSwyQkFBMkIsRUFBRTtJQUNoRSx5QkFBeUIsRUFDdkIsd0dBQXdHO0lBQzFHLG9DQUFvQyxFQUNsQyxzRkFBc0Y7SUFDeEYsZ0NBQWdDLEVBQzlCLHlHQUF5RztJQUMzRyw0QkFBNEIsRUFBRTs7O0lBRzVCO0lBQ0YseUJBQXlCLEVBQUU7UUFDekIsR0FBRyxFQUFFLGdjQUFnYztLQUN0YztJQUNELFVBQVUsRUFDUix5RUFBeUU7SUFDM0UsUUFBUSxFQUNOLG9FQUFvRTtJQUN0RSxlQUFlLEVBQ2IsNkVBQTZFO0lBQy9FLHFCQUFxQixFQUNuQixpR0FBaUc7SUFDbkcsa0JBQWtCLEVBQ2hCLDJNQUEyTTtJQUM3TSx3QkFBd0IsRUFBRSxNQUFNO0lBQ2hDLDZCQUE2QixFQUMzQiwwRkFBMEY7SUFDNUYsOEJBQThCLEVBQzVCLDBIQUEwSDtJQUM1SCw2QkFBNkIsRUFDM0IsbUZBQW1GO0lBQ3JGLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtJQUN2QyxZQUFZLEVBQ1YsME5BQTBOO0lBQzVOLGVBQWUsRUFDYixnUUFBZ1E7SUFDbFEsUUFBUSxFQUFFLEVBQUU7SUFDWiw0QkFBNEIsRUFBRSxhQUFhO0lBQzNDLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixZQUFZLEVBQ1YsMkZBQTJGO0lBQzdGLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUU7SUFDcEMscUJBQXFCLEVBQ25CLDRGQUE0RjtJQUM5Rix5QkFBeUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTtJQUNyRCxXQUFXLEVBQ1QsNEVBQTRFO0lBQzlFLHlCQUF5QixFQUN2QiwrRkFBK0Y7SUFDakcsU0FBUyxFQUNQLHlQQUF5UDtJQUMzUCxTQUFTLEVBQ1AsdU5BQXVOO0lBQ3pOLGFBQWEsRUFBRSxhQUFhO0lBQzVCLDBCQUEwQixFQUN4QiwyRkFBMkY7SUFDN0YsMktBQTJLO0lBQzNLLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUNQLHVFQUF1RTtJQUN6RSxzQkFBc0IsRUFDcEIsa0dBQWtHO0lBQ3BHLG1CQUFtQixFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsWUFBWSxFQUNWLDhIQUE4SDtJQUNoSSxXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQ1AsMktBQTJLO0lBQzdLLGVBQWUsRUFDYix3S0FBd0s7Q0FDM0ssQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsV0FBVztLQUNsQyxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQ3RCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztLQUMxQixVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVwQyxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FDekQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQXFDO0lBRXJDLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxhQUEyQyxFQUMzQyxhQUFzQjtJQUV0QixPQUFPLENBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUN0QyxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FDN0QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFFBQWlCLEVBQ2pCLGFBQTJDLEVBQzNDLGFBQXNCO0lBRXRCLElBQUksS0FBSyxHQUFHLGdCQUFnQixRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQztJQUMxRSxJQUFJLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNDLEtBQUssSUFBSSxVQUFVLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxLQUFLLElBQUksVUFBVSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssSUFBSSxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sS0FBMkIsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFRoZW1lLFxuICBUaGVtZURlZmF1bHRQYXJhbXMsXG4gIGNvbG9yU2NoZW1lTGlnaHQsXG4gIHRoZW1lUXVhcnR6LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmNvbnN0IGRlZmF1bHRzRm9yQWxsVGhlbWVzOiBQYXJ0aWFsPFRoZW1lRGVmYXVsdFBhcmFtcz4gPSB7XG4gIGJhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYmFja2dyb3VuZC1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJhY2tncm91bmQtcm93LWJhc2UpKScsXG4gIGJvcmRlckNvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItY29sb3IsIHZhcigtLXNreS1jb2xvci1ib3JkZXItc2VwYXJhdG9yLXJvdykpJyxcbiAgYm9yZGVyUmFkaXVzOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItcmFkaXVzLCB2YXIoLS1za3ktYm9yZGVyLXJhZGl1cy1zKSknLFxuICBjYXJkU2hhZG93OiAnbm9uZScsXG4gIGNlbGxIb3Jpem9udGFsUGFkZGluZzpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcsIHZhcigtLXNreS1jb21wLWdyaWQtY2VsbC1zcGFjZS1pbnNldC1sZWZ0KSknLFxuICBjZWxsRWRpdGluZ0JvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2VsbC1mb2N1cy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtaW5wdXQtZm9jdXMpKSBzb2xpZCB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jZWxsLWZvY3VzLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1pbnB1dC1mb2N1cykpJyxcbiAgY2hlY2tib3hDaGVja2VkQm9yZGVyQ29sb3I6IHsgcmVmOiAnY2hlY2tib3hDaGVja2VkU2hhcGVDb2xvcicgfSxcbiAgY2hlY2tib3hDaGVja2VkU2hhcGVDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLXN3aXRjaC1jaGVja2VkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItaWNvbi1pbnZlcnNlLCB2YXIoLS1za3ktdGV4dC1jb2xvci1kZWZhdWx0KSkpJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtc3dpdGNoLWNoZWNrZWQtY29sb3IsIHZhcigtLXNreS1jb2xvci1pY29uLWludmVyc2UsIHRyYW5zcGFyZW50KSknLFxuICBjaGVja2JveFVuY2hlY2tlZEJhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtY2hlY2tib3gtdW5jaGVja2VkLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLWlucHV0LWJhc2UpKScsXG4gIGNoZWNrYm94VW5jaGVja2VkQm9yZGVyQ29sb3I6IGB2YXIoXG4gICAgLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jaGVja2JveC11bmNoZWNrZWQtYm9yZGVyLWNvbG9yLFxuICAgIHZhcigtLXNreS1jb2xvci1ib3JkZXItc3dpdGNoLWJhc2UpXG4gIClgLFxuICBjaGVja2JveENoZWNrZWRTaGFwZUltYWdlOiB7XG4gICAgc3ZnOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMy45ODg0IDMuNTQ3NTZDMTMuNjI0NCAzLjE2Njg1IDEzLjAxNjQgMy4xNDkxIDEyLjYzMDIgMy41MDc5Mkw1LjYyNjgyIDEwLjAxNTdMMy42NDUxNyA4LjAzMjgyQzMuMjcyNzUgNy42NjAxNiAyLjY2NDQzIDcuNjU1NzIgMi4yODY0NiA4LjAyMjlDMS45MDg0OCA4LjM5MDA3IDEuOTAzOTcgOC45ODk4MyAyLjI3NjQgOS4zNjI0OEw0Ljg1MTYyIDExLjkzOTNDNS4yNTQ4NyAxMi4zNDI4IDUuOTExMjEgMTIuMzU0OCA2LjMyOTMyIDExLjk2NjNMMTMuOTQ4MiA0Ljg4NjU5QzE0LjMzNDMgNC41Mjc3NyAxNC4zNTIzIDMuOTI4MjcgMTMuOTg4NCAzLjU0NzU2WlwiIGZpbGw9XCIjMjEyMTIxXCIvPjwvc3ZnPmAsXG4gIH0sXG4gIGZvbnRGYW1pbHk6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWZvbnQtZmFtaWx5LCB2YXIoLS1za3ktZm9udC1mYW1pbHktcHJpbWFyeSkpJyxcbiAgZm9udFNpemU6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWZvbnQtc2l6ZSwgdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKScsXG4gIGZvcmVncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtZm9yZWdyb3VuZC1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLXRleHQtZGVmYXVsdCkpJyxcbiAgaGVhZGVyQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktY29tcC1vdmVycmlkZS1saXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1za3ktYmFja2dyb3VuZC1jb2xvci1wYWdlLWRlZmF1bHQpKScsXG4gIGhlYWRlckNvbHVtbkJvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtYm9yZGVyLXdpZHRoLCB2YXIoLS1za3ktYm9yZGVyLXdpZHRoLWRpdmlkZXIpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItc3R5bGUsIHZhcigtLXNreS1ib3JkZXItc3R5bGUtZGl2aWRlcikpIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpJyxcbiAgaGVhZGVyQ29sdW1uQm9yZGVySGVpZ2h0OiAnMTAwJScsXG4gIGhlYWRlckNvbHVtblJlc2l6ZUhhbmRsZUNvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1jb2x1bW4tZGl2aWRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1jb2x1bW5fZGl2aWRlcikpJyxcbiAgaGVhZGVyQ29sdW1uUmVzaXplSGFuZGxlSGVpZ2h0OlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1oZWFkZXItcmVzaXplLWhlaWdodCwgY2FsYyh2YXIoLS1za3ktZm9udC1saW5lX2hlaWdodC1ib2R5LW0pICogdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKSknLFxuICBoZWFkZXJDb2x1bW5SZXNpemVIYW5kbGVXaWR0aDpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtaGVhZGVyLWRpdmlkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtZGl2aWRlcikpJyxcbiAgaGVhZGVyRm9udEZhbWlseTogeyByZWY6ICdmb250RmFtaWx5JyB9LFxuICBoZWFkZXJIZWlnaHQ6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWhlYWRlci1oZWlnaHQsIGNhbGMoY2FsYyh2YXIoLS1za3ktZm9udC1saW5lX2hlaWdodC1ib2R5LW0pICogdmFyKC0tc2t5LWZvbnQtc2l6ZS1ib2R5LW0pKSArIGNhbGModmFyKC0tc2t5LWNvbXAtZ3JpZC1jZWxsLXNwYWNlLWluc2V0LXRvcCkgKyB2YXIoLS1za3ktY29tcC1ncmlkLWNlbGwtc3BhY2UtaW5zZXQtYm90dG9tKSkpKScsXG4gIGhlYWRlclJvd0JvcmRlcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LWJvcmRlci13aWR0aCwgdmFyKC0tc2t5LWJvcmRlci13aWR0aC1zZXBhcmF0b3Itcm93KSkgdmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtaGVhZGVyLXJvdy1ib3JkZXItc3R5bGUsIHZhcigtLXNreS1ib3JkZXItc3R5bGUtc2VwYXJhdG9yLXJvdykpIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBpY29uU2l6ZTogMTIsXG4gIGlucHV0RGlzYWJsZWRCYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gIGlucHV0Rm9jdXNCb3JkZXI6ICd0cmFuc3BhcmVudCcsXG4gIGlucHV0Rm9jdXNTaGFkb3c6ICdub25lJyxcbiAgaW52YWxpZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1pbnZhbGlkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYmFja2dyb3VuZC1hY3Rpb24tZGFuZ2VyLWJhc2UpKScsXG4gIGxpc3RJdGVtSGVpZ2h0OiB7IHJlZjogJ3Jvd0hlaWdodCcgfSxcbiAgb2RkUm93QmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1vZGQtcm93LWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLXJvdy1iYXNlKSknLFxuICBwaWNrZXJMaXN0QmFja2dyb3VuZENvbG9yOiB7IHJlZjogJ2JhY2tncm91bmRDb2xvcicgfSxcbiAgcG9wdXBTaGFkb3c6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXBvcHVwLXNoYWRvdywgdmFyKC0tc2t5LWVsZXZhdGlvbi1vdmVybGF5LTMwMCkpJyxcbiAgcmFuZ2VTZWxlY3Rpb25Cb3JkZXJDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1pbnB1dC1mb2N1cykpJyxcbiAgcm93Qm9yZGVyOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctYm9yZGVyLXdpZHRoLCB2YXIoLS1za3ktYm9yZGVyLXdpZHRoLXNlcGFyYXRvci1yb3cpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctYm9yZGVyLXN0eWxlLCB2YXIoLS1za3ktYm9yZGVyLXN0eWxlLXNlcGFyYXRvci1yb3cpKSB2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1ib3JkZXItY29sb3IsIHZhcigtLXNreS1jb2xvci1ib3JkZXItc2VwYXJhdG9yLXJvdykpJyxcbiAgcm93SGVpZ2h0OlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC1yb3ctaGVpZ2h0LCBjYWxjKGNhbGModmFyKC0tc2t5LWZvbnQtbGluZV9oZWlnaHQtYm9keS1tKSAqIHZhcigtLXNreS1mb250LXNpemUtYm9keS1tKSkgKyBjYWxjKHZhcigtLXNreS1jb21wLWdyaWQtY2VsbC1zcGFjZS1pbnNldC10b3ApICsgdmFyKC0tc2t5LWNvbXAtZ3JpZC1jZWxsLXNwYWNlLWluc2V0LWJvdHRvbSkpKSknLFxuICByb3dIb3ZlckNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICBzZWxlY3RlZFJvd0JhY2tncm91bmRDb2xvcjpcbiAgICAndmFyKC0tc2t5LW92ZXJyaWRlLWFnLWdyaWQtcm93LXNlbGVjdGVkLWNvbG9yLCB2YXIoLS1za3ktY29sb3ItYmFja2dyb3VuZC1zZWxlY3RlZC1zb2Z0KSknLFxuICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSByZW1vdmluZyB0aGlzIGluIDEzLiBEb2VzIG5vdCBhcHBlYXIgdG8gYmUgaW1wYWN0aW5nIGFueXRoaW5nLCBidXQgaXQgY291bGQgYmUgdXNlZCBieSBmZWF0dXJlcyB3ZSBoYXZlIG5vdCB0ZXN0ZWQgc28gbWFqb3IgdmVyc2lvbiByZW1vdmFsIGlzIHNhZmVzdC5cbiAgc3BhY2luZzogNCxcbiAgdGV4dENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC10ZXh0LWNvbG9yLCB2YXIoLS1za3ktY29sb3ItdGV4dC1kZWZhdWx0KSknLFxuICB0b29sdGlwQmFja2dyb3VuZENvbG9yOlxuICAgICd2YXIoLS1za3ktb3ZlcnJpZGUtYWctZ3JpZC10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHZhcigtLXNreS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRhaW5lci1iYXNlKSknLFxuICB3cmFwcGVyQm9yZGVyUmFkaXVzOiAwLFxufTtcblxuY29uc3QgZGVmYXVsdHNGb3JEYXRhRW50cnlHcmlkID0ge1xuICBjb2x1bW5Cb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWNvbHVtbi1ib3JkZXIsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtc2VwYXJhdG9yLXJvdykgc29saWQgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBwb3B1cFNoYWRvdzogJ25vbmUnLFxuICByb3dCb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJvdy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtc2VwYXJhdG9yLXJvdykpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxuICBoZWFkZXJSb3dCb3JkZXI6XG4gICAgJ3ZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLXJvdy1ib3JkZXItd2lkdGgsIHZhcigtLXNreS1ib3JkZXItd2lkdGgtZW1waGFzaXplZCkpIHNvbGlkIHZhcigtLXNreS1vdmVycmlkZS1hZy1ncmlkLWJvcmRlci1jb2xvciwgdmFyKC0tc2t5LWNvbG9yLWJvcmRlci1zZXBhcmF0b3Itcm93KSknLFxufTtcblxuY29uc3QgU2t5QWdHcmlkRGF0YUdyaWQgPSB0aGVtZVF1YXJ0elxuICAud2l0aG91dFBhcnQoJ2ljb25TZXQnKVxuICAud2l0aFBhcnQoY29sb3JTY2hlbWVMaWdodClcbiAgLndpdGhQYXJhbXMoZGVmYXVsdHNGb3JBbGxUaGVtZXMpO1xuXG5jb25zdCBTa3lBZ0dyaWREYXRhRW50cnlHcmlkID0gU2t5QWdHcmlkRGF0YUdyaWQud2l0aFBhcmFtcyhcbiAgZGVmYXVsdHNGb3JEYXRhRW50cnlHcmlkLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNreUFnR3JpZFRoZW1lKFxuICBncmlkOiAnZGF0YS1lbnRyeS1ncmlkJyB8ICdkYXRhLWdyaWQnLFxuKTogVGhlbWUge1xuICBpZiAoZ3JpZCA9PT0gJ2RhdGEtZ3JpZCcpIHtcbiAgICByZXR1cm4gU2t5QWdHcmlkRGF0YUdyaWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFNreUFnR3JpZERhdGFFbnRyeUdyaWQ7XG4gIH1cbn1cblxudHlwZSBTa3lBZ0dyaWRUaGVtZVR5cGUgPVxuICBgYWctdGhlbWUtc2t5LSR7J2RhdGEtZW50cnktZ3JpZCcgfCAnZGF0YS1ncmlkJ30tJHsnZGVmYXVsdCcgfCAnbW9kZXJuLWxpZ2h0JyB8ICdtb2Rlcm4tbGlnaHQtY29tcGFjdCd9YDtcblxuZXhwb3J0IGZ1bmN0aW9uIGFnR3JpZFRoZW1lSXNDb21wYWN0KFxuICB0aGVtZVNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkLFxuICBjb21wYWN0TGF5b3V0OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdGhlbWVTZXR0aW5ncz8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiZcbiAgICAoY29tcGFjdExheW91dCB8fCB0aGVtZVNldHRpbmdzPy5zcGFjaW5nLm5hbWUgPT09ICdjb21wYWN0JylcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lKFxuICBlZGl0YWJsZTogYm9vbGVhbixcbiAgdGhlbWVTZXR0aW5nczogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdExheW91dDogYm9vbGVhbixcbik6IFNreUFnR3JpZFRoZW1lVHlwZSB7XG4gIGxldCB0aGVtZSA9IGBhZy10aGVtZS1za3ktJHtlZGl0YWJsZSA/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.3.15\", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGtCQUFrQixDQUF3QjtJQUUxQyxZQUFZLGlCQUF3QztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUIsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxFQUFFLENBQWdCLENBQUM7UUFFdEUsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXNCLEVBQ3RCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsTUFBTSxTQUFTLEdBQUcsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFFNUIsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7Z0JBQ3pELENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFDakMsQ0FBQztnQkFDRCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQW9CO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0UsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDOytHQS9EVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Uge1xuICAjc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihza3lBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UgPSBza3lBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRFbGVtZW50QnlJZChwYXJlbnRFbDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gcGFyZW50RWwucXVlcnlTZWxlY3RvcihgIyR7c2VsZWN0b3J9YCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvY3VzZWRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICBjdXJyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIHBhcmVudEVsPzogSFRNTEVsZW1lbnQsXG4gICAgbW92ZUZvY3VzTGVmdD86IGJvb2xlYW4sXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4ocGFyZW50RWwpO1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuLmluZGV4T2YoY3VycmVudEVsKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IG1vdmVGb2N1c0xlZnRcbiAgICAgICAgPyBjdXJyZW50RWxlbWVudEluZGV4IC0gMVxuICAgICAgICA6IGN1cnJlbnRFbGVtZW50SW5kZXggKyAxO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghbW92ZUZvY3VzTGVmdCAmJiBmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPj0gbmV4dEluZGV4KSB8fFxuICAgICAgICAobW92ZUZvY3VzTGVmdCAmJiBuZXh0SW5kZXggPj0gMClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9jdXNhYmxlQ2hpbGRyZW5bbmV4dEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IFtmb2N1c0NoaWxkXSA9IHRoaXMuI3NreUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuXG4gICAgaWYgKGZvY3VzQ2hpbGQ/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://github.com/blackbaud/skyux/blob/main/CONTRIBUTING.md) to the SKY UX data entry grid module.\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBaUdYO0FBakdELFdBQVksV0FBVztJQUNyQjs7Ozs7Ozs7T0FRRztJQUNILG1EQUFvQyxDQUFBO0lBQ3BDOzs7Ozs7OztPQVFHO0lBQ0gsMkNBQTRCLENBQUE7SUFDNUI7Ozs7T0FJRztJQUNILDZEQUE4QyxDQUFBO0lBQzlDOzs7Ozs7OztPQVFHO0lBQ0gsbUNBQW9CLENBQUE7SUFDcEI7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7Ozs7Ozs7T0FRRztJQUNILHVDQUF3QixDQUFBO0lBQ3hCOzs7O09BSUc7SUFDSCx5REFBMEMsQ0FBQTtJQUMxQzs7OztPQUlHO0lBQ0gsbURBQW9DLENBQUE7SUFDcEM7Ozs7T0FJRztJQUNILGlEQUFrQyxDQUFBO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBNEIsQ0FBQTtJQUM1Qjs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7O09BSUc7SUFDSCw2Q0FBOEIsQ0FBQTtBQUNoQyxDQUFDLEVBakdXLFdBQVcsS0FBWCxXQUFXLFFBaUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlc2UgY29sdW1uIHR5cGVzIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIEFHIEdyaWQgW2NvbHVtbiBkZWZpbml0aW9uIGB0eXBlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKSB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMuXG4gKiBBbnkgW1NLWSBVWCBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cykgY2FuIGJlIG1hZGUgaW50byBhIFtjZWxsIGVkaXRvcl0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdG9yLykgb3IgW2NlbGwgcmVuZGVyZXJdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLXJlbmRlcmluZy1jb21wb25lbnRzLykgY29tcG9uZW50LiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgYSBjb21wb25lbnQgdGhhdCBkb2VzIG5vdCBoYXZlIGEgY29sdW1uIGRlZmluaXRpb24geWV0LCBwbGVhc2UgY29uc2lkZXIgW2NvbnRyaWJ1dGluZyBpdF0oaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9za3l1eC9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKSB0byB0aGUgU0tZIFVYIGRhdGEgZW50cnkgZ3JpZCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxUeXBlIHtcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGF1dG9jb21wbGV0ZSBjb21wb25lbnRzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKS4gWW91IGNhbiBzZXQgYW55IG9mIHRoZSBhdXRvY29tcGxldGUgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zYCBpbiB0aGUgW2NvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxFZGl0b3JQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLiBUaGVzZSBwYXJhbXMgY2FuIGJlIHVwZGF0ZWQgYXMgb3RoZXIgY2VsbCBlZGl0cyBhcmUgbWFkZSBvciBbcHJvdmlkZWQgZHluYW1pY2FsbHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLWVkaXRpbmcvI2R5bmFtaWMtcGFyYW1ldGVycykgYmFzZWQgb24gb3RoZXIgY2VsbCB2YWx1ZXMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS4gVGV4dCBjYW4gYmUgZW50ZXJlZCBhbmQgYSB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSBwcm92aWRlZCBsaXN0LlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZSdzIG5hbWUgcHJvcGVydHkgYnkgZGVmYXVsdC4gSWYgdGhlIGF1dG9jb21wbGV0ZSBuZWVkcyB0byBzaG93IGEgZGlmZmVyZW50IHByb3BlcnR5IG9yIG5lZWRzIHRvIGJlIGZvcm1hdHRlZCBpbiBhbnkgd2F5LCB5b3UgY2FuIFtkZWZpbmUgYSBgdmFsdWVGb3JtYXR0ZXJgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtdmFsdWUtZm9ybWF0dGVycy8pIG9uIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICovXG4gIEF1dG9jb21wbGV0ZSA9ICdza3lDZWxsQXV0b2NvbXBsZXRlJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBhIGN1cnJlbmN5IGFtb3VudC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIEZvcm1hdHMgdGhlIGRpc3BsYXkgYXMgY3VycmVuY3kgdXNpbmcgW1NLWSBVWCBudW1lcmljIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9udW1lcmljKS5cbiAgICovXG4gIEN1cnJlbmN5ID0gJ3NreUNlbGxDdXJyZW5jeScsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqXG4gICAqIENvbWJpbmVzIFNreUNlbGxUeXBlLkN1cnJlbmN5IGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBjdXJyZW5jeSBhbmQgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uLlxuICAgKi9cbiAgQ3VycmVuY3lWYWxpZGF0b3IgPSAnc2t5Q2VsbEN1cnJlbmN5VmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGRhdGVwaWNrZXIgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtc2AgaW4gdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsRWRpdG9yUGFyYW1zYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS4gVGhlc2UgcGFyYW1zIGNhbiBiZSB1cGRhdGVkIGFzIG90aGVyIGNlbGwgZWRpdHMgYXJlIG1hZGUgb3IgW3Byb3ZpZGVkIGR5bmFtaWNhbGx5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0aW5nLyNkeW5hbWljLXBhcmFtZXRlcnMpIGJhc2VkIG9uIG90aGVyIGNlbGwgdmFsdWVzLiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuIERhdGUgdmFsdWVzIGNhbiBiZSBlbnRlcmVkLlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGZvcm1hdHRlZCBhcyBgTU0tREQtWVlZWWAsIG9yIHRoZSBkYXRlIGZvcm1hdCBvZiB0aGUgbG9jYWxlIHBhc3NlZCB0byBgZ2V0R3JpZE9wdGlvbnMoKWAuIElmIHlvdSB3b3VsZCBsaWtlIHRvIG92ZXJ3cml0ZSB0aGlzIGZvcm1hdCwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIERhdGUgPSAnc2t5Q2VsbERhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIFtTS1kgVVggbG9va3VwIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtdjUvY29tcG9uZW50cy9sb29rdXApLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGxvb2t1cCBjb21wb25lbnQncyBwcm9wZXJ0aWVzIGJ5IHBhc3NpbmcgYFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBUZXh0IGNhbiBiZSBlbnRlcmVkIGFuZCBhIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGxpc3QuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyB0aGUgY29sdW1uIHdpbGwgZGlzcGxheSwgYnkgZGVmYXVsdCwgZWl0aGVyOiB0aGUgbmFtZShzKSBvZiB0aGUgc2VsZWN0ZWQgdmFsdWUocykgaWYgdGhlcmUgYXJlIGxlc3MgdGhhbiA2LCBvciBhIHN1bW1hcnkgY291bnQgb2YgdGhlIHZhbHVlcyBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIDUuIElmIHRoZSBsb29rdXAgbmVlZHMgdG8gc2hvdyBhIGRpZmZlcmVudCBwcm9wZXJ0eSBvciBuZWVkcyB0byBiZSBmb3JtYXR0ZWQgaW4gYW55IHdheSwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqL1xuICBMb29rdXAgPSAnc2t5Q2VsbExvb2t1cCcsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgSFRNTCBudW1iZXIgYGlucHV0c2AuIE9ubHkgbnVtYmVycyBjYW4gYmUgZW50ZXJlZC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgYXMgdGhlIG51bWJlciB2YWx1ZS5cbiAgICovXG4gIE51bWJlciA9ICdza3lDZWxsTnVtYmVyJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogQ29tYmluZXMgU2t5Q2VsbFR5cGUuTnVtYmVyIGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBudW1iZXIgYW5kIHBhc3NlZCB0byBhIHZhbGlkYXRvciBmdW5jdGlvbi5cbiAgICovXG4gIE51bWJlclZhbGlkYXRvciA9ICdza3lDZWxsTnVtYmVyVmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogVGhlIGhlYWRlciBhbmQgY2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIHJlbmRlciByaWdodCBhbGlnbmVkLlxuICAgKi9cbiAgUmlnaHRBbGlnbmVkID0gJ3NreUNlbGxSaWdodEFsaWduZWQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIFtTS1kgVVggY2hlY2tib3ggY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94KS4gSXQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBtdWx0aXBsZSByb3dzLCBhbmQgYWRkcyBhIGhpZ2hsaWdodCB0byBzZWxlY3RlZCByb3dzLiBUaGUgW0FnIEdyaWQgYHJvd05vZGVgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcm93LW5vZGUvKSB3aWxsIGJlIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc3RhdGUuXG4gICAqL1xuICBSb3dTZWxlY3RvciA9ICdza3lDZWxsUm93U2VsZWN0b3InLFxuICAvKipcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgaW4gYSBgVGVtcGxhdGVSZWZgIHBhc3NlZCBpbiB0aGUgY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlYCBwcm9wZXJ0eSwgd2l0aCBgdmFsdWVgIGFuZCBgcm93YCBjb250ZXh0LiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuXG4gICAqL1xuICBUZW1wbGF0ZSA9ICdza3lDZWxsVGVtcGxhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIEhUTUwgdGV4dCBgaW5wdXRzYC4gQW55IGNoYXJhY3RlcnMgY2FuIGJlIGVudGVyZWQuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZWlyIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIFRleHQgPSAnc2t5Q2VsbFRleHQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgZmxhZ3MgZXJyb25lb3VzIGVudHJpZXMuIFlvdSBjYW4gc2V0IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24gYW5kIG1lc3NhZ2UgYnkgcGFzc2luZyBhIGBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzYCBvYmplY3QgYXMgYHNreUNvbXBvbmVudFByb3BlcnRpZXNgIHRvIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLCBsaWtlIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcmAgYW5kIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2VgLiBTa3lDZWxsVHlwZS5WYWxpZGF0b3IgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgY2VsbCB0eXBlcywgc3VjaCBhcyBTa3lDZWxsVHlwZS5BdXRvY29tcGxldGUgb3IgU2t5Q2VsbFR5cGUuRGF0ZSwgYnkgdXNpbmcgdGhlIGFycmF5IHN5bnRheCBmb3IgdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGB0eXBlYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS5cbiAgICovXG4gIFZhbGlkYXRvciA9ICdza3lDZWxsVmFsaWRhdG9yJyxcbn1cbiJdfQ==","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, ...(ngDevMode ? [{ debugName: \"minHeight\", transform: numberAttribute }] : [{\n transform: numberAttribute,\n }]));\n this.skyAgGridDiv = viewChild('skyAgGridDiv', ...(ngDevMode ? [{ debugName: \"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.3.15\", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.15\", 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: \"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\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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 }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: \"minHeight\", required: false }] }], skyAgGridDiv: [{ type: i0.ViewChild, args: ['skyAgGridDiv', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEQsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDBCQUEwQixHQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBD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RUFBRTt3QkFDM0IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7O3NCQUdBLFdBQVc7dUJBQUMsaUNBQWlDOztzQkFPN0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs4SkE4Q0QsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzLFxuICBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlLFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50LFxuICBDZWxsRm9jdXNlZEV2ZW50LFxuICBIZWFkZXJGb2N1c2VkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG9mLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBnZXRTa3lBZ0dyaWRUaGVtZSxcbiAgZ2V0U2t5QWdHcmlkVGhlbWVDbGFzc05hbWUsXG59IGZyb20gJy4uLy4uL3N0eWxlcy9hZy1ncmlkLXRoZW1lJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nQ2xhc3MsIFNreUlkTW9kdWxlLCBTa3lWaWV3a2VlcGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlIGEgY29tcGFjdCBsYXlvdXQgZm9yIHRoZSBncmlkIHdoZW4gdXNpbmcgbW9kZXJuIHRoZW1lLiBDb21wYWN0IGxheW91dCB1c2VzXG4gICAqIGEgc21hbGxlciBmb250IHNpemUgYW5kIHJvdyBoZWlnaHQgdG8gZGlzcGxheSBtb3JlIGRhdGEgaW4gYSBzbWFsbGVyIHNwYWNlLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI2lzQ29tcGFjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGdyaWQgaW4gcGl4ZWxzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgNTBgLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1pbkhlaWdodCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4oNTAsIHtcbiAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIGFmdGVyQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGJlZm9yZUFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBncmlkSWQ6IHN0cmluZztcbiAgcHVibGljIHdyYXBwZXJDbGFzc2VzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgcHVibGljIGdldCB2aWV3a2VlcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlld2tlZXBlckNsYXNzZXModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgI2lzSW5FZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgdGhpcy5hZ0dyaWQuYXBpKSB7XG4gICAgICBjb25zdCBwcmltYXJ5R3JpZEVkaXRpbmcgPSB0aGlzLmFnR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMDtcbiAgICAgIGlmIChwcmltYXJ5R3JpZEVkaXRpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuYWdHcmlkLmFwaS5nZXRHcmlkT3B0aW9uKCdtYXN0ZXJEZXRhaWwnKSkge1xuICAgICAgICBsZXQgaW5uZXJFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5mb3JFYWNoRGV0YWlsR3JpZEluZm8oKGRldGFpbEdyaWQpID0+IHtcbiAgICAgICAgICBpZiAoZGV0YWlsR3JpZD8uYXBpICYmIGRldGFpbEdyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlubmVyRWRpdGluZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW5uZXJFZGl0aW5nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2t5QWdHcmlkRGl2ID1cbiAgICB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdza3lBZ0dyaWREaXYnKTtcblxuICAjX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICN3cmFwcGVyQ2xhc3NlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtcbiAgICBgYWctdGhlbWUtc2t5LWRhdGEtZ3JpZC1kZWZhdWx0YCxcbiAgXSk7XG4gIHJlYWRvbmx5ICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNwYXJlbnRDaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNraXBTZWxmOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbXV0YXRpb25PYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UpO1xuICByZWFkb25seSAjaXNDb21wYWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5ICNoYXNFZGl0YWJsZUNsYXNzID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWRJbmRleCsrO1xuICAgIHRoaXMuYWZ0ZXJBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWFmdGVyLScgKyBpZEluZGV4O1xuICAgIHRoaXMuYmVmb3JlQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1iZWZvcmUtJyArIGlkSW5kZXg7XG4gICAgdGhpcy5ncmlkSWQgPSAnc2t5LWFnLWdyaWQtJyArIGlkSW5kZXg7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3NlcyQgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5hc09ic2VydmFibGUoKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBtaW5IZWlnaHQgPSB0aGlzLm1pbkhlaWdodCgpO1xuICAgICAgY29uc3Qgc2t5QWdHcmlkRGl2ID0gdGhpcy5za3lBZ0dyaWREaXYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgIHNreUFnR3JpZERpdj8uc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICctLXNreS1hZy1ncmlkLW1pbi1oZWlnaHQnLFxuICAgICAgICBgJHttaW5IZWlnaHR9cHhgLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkKSB7XG4gICAgICBjb25zdCBkb21MYXlvdXQgPSB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uZG9tTGF5b3V0O1xuICAgICAgaWYgKGRvbUxheW91dCA9PT0gJ2F1dG9IZWlnaHQnKSB7XG4gICAgICAgIGlmICh0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsKSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKFxuICAgICAgICAgICAgJy5hZy1oZWFkZXInLFxuICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaCgnLmFnLWhlYWRlcicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRvbUxheW91dCA9PT0gJ25vcm1hbCcpIHtcbiAgICAgICAgdGhpcy5pc05vcm1hbExheW91dCA9IHRydWU7XG4gICAgICAgIHRoaXMuI3BhcmVudENoYW5nZURldGVjdG9yPy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmZpcnN0RGF0YVJlbmRlcmVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5yb3dEYXRhVXBkYXRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdGFydGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwYXJhbXMuY29sRGVmLnR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheShwYXJhbXMuY29sRGVmLnR5cGUpXG4gICAgICAgICAgICAgID8gcGFyYW1zLmNvbERlZi50eXBlXG4gICAgICAgICAgICAgIDogW3BhcmFtcy5jb2xEZWYudHlwZV07XG4gICAgICAgICAgICBjb25zdCBhZGRDbGFzc2VzID0gdHlwZXMubWFwKFxuICAgICAgICAgICAgICAodCkgPT4gYHNreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0ke3R9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFtcbiAgICAgICAgICAgICAgLi4udGhpcy4jd3JhcHBlckNsYXNzZXMuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgICAgLi4uYWRkQ2xhc3NlcyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0eXBlcy5pbmNsdWRlcyhTa3lDZWxsVHlwZS5UZW1wbGF0ZSkgJiZcbiAgICAgICAgICAgICAgcGFyYW1zLnJvd0luZGV4ICE9PSBudWxsXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5hZ0dyaWQ/LmFwaS5zZXRGb2N1c2VkQ2VsbChwYXJhbXMucm93SW5kZXgsIHBhcmFtcy5jb2x1bW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFxuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXNcbiAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLScpKSxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZXZlbnQuY29udGV4dCB8fCB7fTtcblxuICAgICAgICAgIGNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IGV2ZW50LnJvd0luZGV4LFxuICAgICAgICAgICAgY29sdW1uOlxuICAgICAgICAgICAgICB0eXBlb2YgZXZlbnQuY29sdW1uID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgID8gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpXG4gICAgICAgICAgICAgICAgOiBgJHtldmVudC5jb2x1bW59YCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZXZlbnQuYXBpPy5zZXRHcmlkT3B0aW9uKCdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFnR3JpZC5oZWFkZXJGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEhlYWRlckZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgICAgY29udGV4dFsnbGFzdEZvY3VzZWRDZWxsJ10gPSB7XG4gICAgICAgICAgICByb3dJbmRleDogbnVsbCxcbiAgICAgICAgICAgIGNvbHVtbjogZXZlbnQuY29sdW1uPy5nZXRVbmlxdWVJZFxuICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbi5nZXRVbmlxdWVJZCgpXG4gICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGV2ZW50LmFwaT8uc2V0R3JpZE9wdGlvbignY29udGV4dCcsIGNvbnRleHQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MuY29tcGxldGUoKTtcbiAgICB0aGlzLiNpc0NvbXBhY3QuY29tcGxldGUoKTtcbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3Q8W2Jvb2xlYW4sIGJvb2xlYW4sIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UgfCB1bmRlZmluZWRdPihbXG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiNpc0NvbXBhY3QucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSA/PyBvZih1bmRlZmluZWQpLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChbaGFzRWRpdGFibGVDbGFzcywgaXNDb21wYWN0LCBzZXR0aW5nc10pID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlR3JpZFRoZW1lKFxuICAgICAgICAgIGhhc0VkaXRhYmxlQ2xhc3MsXG4gICAgICAgICAgaXNDb21wYWN0LFxuICAgICAgICAgIHNldHRpbmdzPy5jdXJyZW50U2V0dGluZ3MsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FnLWdyaWQtYW5ndWxhcicpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5uZXh0KFxuICAgICAgICAhIWFnR3JpZEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnc2t5LWFnLWdyaWQtZWRpdGFibGUnKSxcbiAgICAgICk7XG4gICAgfTtcbiAgICBpZiAoYWdHcmlkRWxlbWVudCkge1xuICAgICAgY29uc3QgYWdHcmlkQ2xhc3NPYnNlcnZlciA9XG4gICAgICAgIHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLmNyZWF0ZShjYWxsYmFjayk7XG4gICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLm9ic2VydmUoYWdHcmlkRWxlbWVudCwge1xuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy4jbmdVbnN1YnNjcmliZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBjbG9zaW5nIGEgbW9kYWwgd2hlbiBmb2N1c2VkIGluIEFHIEdyaWQuXG4gICAqL1xuICBwdWJsaWMgb25LZXlVcEVzY2FwZSgkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWdHcmlkPy5hcGkuc3RvcEVkaXRpbmcodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhdGhpcy4jaXNJbkVkaXRNb2RlICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIGNvbnN0IGlkVG9Gb2N1cyA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgID8gdGhpcy5iZWZvcmVBbmNob3JJZFxuICAgICAgICA6IHRoaXMuYWZ0ZXJBbmNob3JJZDtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEZvY3VzZWRFbGVtZW50QnlJZChcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpZFRvRm9jdXMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFuY2hvckZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJldmlvdXNXYXNHcmlkID1cbiAgICAgIHJlbGF0ZWRUYXJnZXQgJiYgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpO1xuXG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICFwcmV2aW91c1dhc0dyaWQpIHtcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAucXVlcnlTZWxlY3RvcignLmFnLXRhYi1ndWFyZC5hZy10YWItZ3VhcmQtdG9wJylcbiAgICAgICAgPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCB0b1RvcCA9ICEhdGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGw7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctcm9vdCcpO1xuICAgIGNvbnN0IGhlYWRlciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1oZWFkZXInKTtcbiAgICBjb25zdCBmbG9hdGluZ0JvdHRvbSA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1mbG9hdGluZy1ib3R0b20nKTtcbiAgICBjb25zdCBzY3JvbGxiYXIgPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgIGlmIChyb290ICYmIGhlYWRlciAmJiBmbG9hdGluZ0JvdHRvbSAmJiBzY3JvbGxiYXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCAhPT1cbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJyxcbiAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNUb3AgPSByb290LmNoaWxkcmVuWzFdLm1hdGNoZXMoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgICBpZiAodG9Ub3AgJiYgIWlzVG9wKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICBoZWFkZXIuYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfSBlbHNlIGlmICghdG9Ub3AgJiYgaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGZsb2F0aW5nQm90dG9tLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjdXBkYXRlR3JpZFRoZW1lKFxuICAgIGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4sXG4gICAgaXNDb21wYWN0OiBib29sZWFuLFxuICAgIHRoZW1lU2V0dGluZ3M/OiBTa3lUaGVtZVNldHRpbmdzLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBza3lBZ0dyaWRUaGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKFxuICAgICAgaGFzRWRpdGFibGVDbGFzcyA/ICdkYXRhLWVudHJ5LWdyaWQnIDogJ2RhdGEtZ3JpZCcsXG4gICAgKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEdyaWRPcHRpb24oJ3RoZW1lJywgc2t5QWdHcmlkVGhlbWUpO1xuICAgIGNvbnN0IHNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lID0gZ2V0U2t5QWdHcmlkVGhlbWVDbGFzc05hbWUoXG4gICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgdGhlbWVTZXR0aW5ncyxcbiAgICAgIGlzQ29tcGFjdCxcbiAgICApO1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpO1xuICAgIGxldCB2YWx1ZSA9IFtcbiAgICAgIC4uLnByZXZpb3VzVmFsdWUuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSksXG4gICAgICBza3lBZ0dyaWRUaGVtZUNsYXNzTmFtZSxcbiAgICBdO1xuICAgIGNvbnN0IHRleHRTZWxlY3Rpb25DbGFzcyA9ICdza3ktYWctZ3JpZC10ZXh0LXNlbGVjdGlvbic7XG4gICAgaWYgKHRoaXMuI2dldFRleHRTZWxlY3Rpb24oaGFzRWRpdGFibGVDbGFzcykpIHtcbiAgICAgIHZhbHVlLnB1c2godGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoKGMpID0+IGMgIT09IHRleHRTZWxlY3Rpb25DbGFzcyk7XG4gICAgfVxuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoWy4uLm5ldyBTZXQodmFsdWUpXSk7XG4gIH1cblxuICAjZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiAhaGFzRWRpdGFibGVDbGFzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJuYXYtYW5jaG9yXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2lkXT1cImJlZm9yZUFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbjxkaXZcbiAgI3NreUFnR3JpZERpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgc2t5Vmlld2tlZXBlck9taXRTaGFkb3c9XCIuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbFwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtjbGFzcy5za3ktYWctZ3JpZC10b3Atc2Nyb2xsYmFyXT1cIlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQgJiZcbiAgICBhZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0WydlbmFibGVUb3BTY3JvbGwnXVxuICBcIlxuICBbbmdDbGFzc109XCJ3cmFwcGVyQ2xhc3NlcyQgfCBhc3luY1wiXG4gIFtpZF09XCJncmlkSWRcIlxuICBbc2t5Vmlld2tlZXBlcl09XCJ2aWV3a2VlcGVyQ2xhc3Nlc1wiXG4gIChrZXlkb3duKT1cIm9uR3JpZEtleWRvd24oJGV2ZW50KVwiXG4gIChrZXl1cC5lc2NhcGUpPVwib25LZXlVcEVzY2FwZSgkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuPHNwYW5cbiAgdGFiaW5kZXg9XCIwXCJcbiAgY2xhc3M9XCJuYXYtYW5jaG9yXCJcbiAgW2lkXT1cImFmdGVyQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuIl19","import { ChangeDetectorRef, Directive, computed, contentChildren, effect, inject, input, linkedSignal, signal, untracked, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyDataManagerService, } from '@skyux/data-manager';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { Subject, filter, fromEvent, of, switchMap, takeUntil } from 'rxjs';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport * as i0 from \"@angular/core\";\nfunction toColumnWidthName(breakpoint) {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n/**\n * @internal\n */\nexport class SkyAgGridDataManagerAdapterDirective {\n #currentAgGrid;\n #isAgGridReady;\n #currentAgGridReady;\n #currentDataState;\n #currentSkyAgGridWrapper;\n #ngUnsubscribe;\n #changeDetector;\n #dataManagerSvc;\n #viewConfigs;\n #viewConfig;\n #activeView;\n #isActiveView;\n #breakpoint;\n constructor() {\n this.viewId = input(...(ngDevMode ? [undefined, { debugName: \"viewId\" }] : []));\n this.agGridList = contentChildren(AgGridAngular, ...(ngDevMode ? [{ debugName: \"agGridList\", descendants: true }] : [{\n descendants: true,\n }]));\n this.skyAgGridWrapperList = contentChildren(SkyAgGridWrapperComponent, ...(ngDevMode ? [{ debugName: \"skyAgGridWrapperList\", descendants: true }] : [{\n descendants: true,\n }]));\n this.#currentAgGrid = signal(undefined, ...(ngDevMode ? [{ debugName: \"#currentAgGrid\" }] : []));\n this.#isAgGridReady = linkedSignal(computed(() => {\n this.#currentAgGrid();\n return false;\n }), ...(ngDevMode ? [{ debugName: \"#isAgGridReady\" }] : []));\n this.#currentAgGridReady = computed(() => {\n const agGrid = this.#currentAgGrid();\n if (this.#isAgGridReady()) {\n return agGrid;\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"#currentAgGridReady\" }] : []));\n this.#ngUnsubscribe = new Subject();\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#dataManagerSvc = inject(SkyDataManagerService);\n this.#viewConfigs = toSignal(this.#dataManagerSvc.getDataViewsUpdates(), {\n initialValue: [],\n });\n this.#viewConfig = computed(() => {\n const viewId = this.viewId();\n return this.#viewConfigs().find((vc) => vc.id === viewId);\n }, ...(ngDevMode ? [{ debugName: \"#viewConfig\" }] : []));\n this.#activeView = toSignal(this.#dataManagerSvc.getActiveViewIdUpdates());\n this.#isActiveView = computed(() => {\n const activeViewId = this.#activeView();\n const viewId = this.viewId();\n return activeViewId === viewId;\n }, ...(ngDevMode ? [{ debugName: \"#isActiveView\" }] : []));\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\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 effect(() => {\n const viewId = this.viewId();\n const agGrid = this.#currentAgGridReady();\n if (viewId && agGrid) {\n if (agGrid.api.getGridOption('context')?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n else {\n this.#dataManagerSvc.setViewkeeperClasses(viewId, ['.ag-header']);\n }\n }\n });\n effect(() => {\n const isActiveView = this.#isActiveView();\n const agGrid = untracked(this.#currentAgGridReady);\n if (isActiveView && agGrid) {\n agGrid.api.refreshCells();\n }\n });\n }\n ngOnDestroy() {\n this.#unregisterAgGrid();\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.#ngUnsubscribe.next();\n this.#currentAgGrid.set(undefined);\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.set(agGrid);\n if (agGrid) {\n agGrid.gridReady\n .pipe(takeUntil(this.#ngUnsubscribe), switchMap(() => {\n const viewConfig = this.#viewConfig();\n if (viewConfig) {\n viewConfig.onSelectAllClick = () => agGrid.api.selectAll();\n viewConfig.onClearAllClick = () => agGrid.api.deselectAll();\n this.#dataManagerSvc.updateViewConfig(viewConfig);\n this.#applyColumnWidths();\n return this.#dataManagerSvc.getDataStateUpdates(viewConfig.id);\n }\n /* istanbul ignore next */\n return of(undefined);\n }), filter(Boolean))\n .subscribe((dataState) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n this.#isAgGridReady.set(true);\n });\n agGrid.gridReady\n .pipe(takeUntil(this.#ngUnsubscribe), switchMap(() => fromEvent(agGrid.api, 'gridPreDestroyed')))\n .subscribe(() => {\n this.#unregisterAgGrid();\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 const viewConfig = this.#viewConfig();\n if (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, viewConfig.id);\n this.#changeDetector.markForCheck();\n }\n });\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates = agGrid.api.getColumnState();\n const viewConfig = this.#viewConfig();\n const activeSortColumnState = gridColumnStates?.find((aGridColumnState) => aGridColumnState.sortIndex === 0) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n if (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, viewConfig.id);\n }\n });\n }\n }\n #updateColumnsInCurrentDataState(api) {\n const viewConfig = this.#viewConfig();\n if (viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n const viewState = this.#currentDataState.getViewStateById(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(viewConfig.id, viewState), viewConfig.id);\n }\n }\n }\n #getColumnOrder(api) {\n /* istanbul ignore next */\n return (api?.getColumnState() ?? [])\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n #displayColumns(dataState) {\n const agGrid = this.#currentAgGrid();\n const viewConfig = this.#viewConfig();\n if (agGrid && viewConfig) {\n const viewState = dataState.getViewStateById(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 agGrid.api) {\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 agGridApi = this.#currentAgGrid()?.api;\n const activeSort = dataState.activeSortOption;\n if (agGridApi && activeSort) {\n agGridApi.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 viewId = this.viewId();\n const viewState = viewId && this.#currentDataState?.getViewStateById(viewId);\n if (viewState && 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(viewId, viewState), viewId);\n }\n }\n #removeColumnWidths(colIds) {\n const viewId = this.viewId();\n const viewState = viewId && this.#currentDataState?.getViewStateById(viewId);\n if (viewState && 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(viewId, viewState), viewId);\n }\n }\n #applyColumnWidths(breakpoint) {\n breakpoint ??= this.#breakpoint();\n const currentAgGridApi = this.#currentAgGridReady()?.api;\n const viewId = this.viewId();\n if (breakpoint && currentAgGridApi) {\n const viewState = viewId && this.#currentDataState?.getViewStateById(viewId);\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(viewState.displayedColumnIds, viewState.columnWidths, toColumnWidthName(breakpoint));\n currentAgGridApi.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.3.15\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.15\", type: SkyAgGridDataManagerAdapterDirective, isStandalone: true, selector: \"[skyAgGridDataManagerAdapter]\", inputs: { viewId: { classPropertyName: \"viewId\", publicName: \"viewId\", isSignal: true, isRequired: false, transformFunction: null } }, 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.3.15\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[skyAgGridDataManagerAdapter]' }]\n }], ctorParameters: () => [], propDecorators: { viewId: [{ type: i0.Input, args: [{ isSignal: true, alias: \"viewId\", required: false }] }], agGridList: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AgGridAngular), { ...{\n descendants: true,\n }, isSignal: true }] }], skyAgGridWrapperList: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SkyAgGridWrapperComponent), { ...{\n descendants: true,\n }, isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxxQkFBcUIsR0FHdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV4RSxTQUFTLGlCQUFpQixDQUFDLFVBQXlCO0lBQ2xELE9BQU8sVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9DQUFvQztJQVd0QyxjQUFjLENBQWdEO0lBQzlELGNBQWMsQ0FLckI7SUFDTyxtQkFBbUIsQ0FNekI7SUFDSCxpQkFBaUIsQ0FBa0M7SUFDbkQsd0JB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QkFBb0IsQ0FDNUMsU0FBUyxDQUFDLGtCQUFrQixFQUM1QixTQUFTLENBQUMsWUFBWSxFQUN0QixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FDOUIsQ0FBQztnQkFFRixnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLGdCQUEwQixFQUMxQixhQUFzQyxFQUN0QyxjQUE2QztRQUU3QyxNQUFNLGdCQUFnQixHQUFtQixFQUFFLENBQUM7UUFFNUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxRCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsRUFBRSxNQUFNO29CQUNYLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsV0FBVztpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7K0dBdGNVLG9DQUFvQzttR0FBcEMsb0NBQW9DLDJQQUdhLGFBQWEsMEZBSTNCLHlCQUF5Qjs7NEZBUDVELG9DQUFvQztrQkFEaEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsRUFBRTt3TkFJTSxhQUFhLFFBQUU7NEJBQ3pFLFdBQVcsRUFBRSxJQUFJO3lCQUNsQixzR0FFNkMseUJBQXlCLFFBQUU7NEJBQ3ZFLFdBQVcsRUFBRSxJQUFJO3lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIE9uRGVzdHJveSxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxufSBmcm9tICdAc2t5dXgvZGF0YS1tYW5hZ2VyJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDb2x1bW5Nb3ZlZEV2ZW50LFxuICBDb2x1bW5SZXNpemVkRXZlbnQsXG4gIENvbHVtblN0YXRlLFxuICBEcmFnU3RvcHBlZEV2ZW50LFxuICBHcmlkQXBpLFxuICBJQ29sdW1uTGltaXQsXG4gIFJvd1NlbGVjdGVkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgZnJvbUV2ZW50LCBvZiwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIHRvQ29sdW1uV2lkdGhOYW1lKGJyZWFrcG9pbnQ6IFNreUJyZWFrcG9pbnQpOiAneHMnIHwgJ3NtJyB7XG4gIHJldHVybiBicmVha3BvaW50ID09PSAneHMnID8gJ3hzJyA6ICdzbSc7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tza3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJdJyB9KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSB2aWV3SWQgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFnR3JpZExpc3QgPSBjb250ZW50Q2hpbGRyZW48QWdHcmlkQW5ndWxhcj4oQWdHcmlkQW5ndWxhciwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgc2t5QWdHcmlkV3JhcHBlckxpc3QgPSBjb250ZW50Q2hpbGRyZW4oU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICByZWFkb25seSAjY3VycmVudEFnR3JpZCA9IHNpZ25hbDxBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSAjaXNBZ0dyaWRSZWFkeSA9IGxpbmtlZFNpZ25hbChcbiAgICBjb21wdXRlZCgoKSA9PiB7XG4gICAgICB0aGlzLiNjdXJyZW50QWdHcmlkKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSksXG4gICk7XG4gIHJlYWRvbmx5ICNjdXJyZW50QWdHcmlkUmVhZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZCgpO1xuICAgIGlmICh0aGlzLiNpc0FnR3JpZFJlYWR5KCkpIHtcbiAgICAgIHJldHVybiBhZ0dyaWQ7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0pO1xuICAjY3VycmVudERhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkYXRhTWFuYWdlclN2YyA9IGluamVjdChTa3lEYXRhTWFuYWdlclNlcnZpY2UpO1xuICByZWFkb25seSAjdmlld0NvbmZpZ3MgPSB0b1NpZ25hbCh0aGlzLiNkYXRhTWFuYWdlclN2Yy5nZXREYXRhVmlld3NVcGRhdGVzKCksIHtcbiAgICBpbml0aWFsVmFsdWU6IFtdLFxuICB9KTtcbiAgcmVhZG9ubHkgI3ZpZXdDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcbiAgICByZXR1cm4gdGhpcy4jdmlld0NvbmZpZ3MoKS5maW5kKCh2YykgPT4gdmMuaWQgPT09IHZpZXdJZCk7XG4gIH0pO1xuICByZWFkb25seSAjYWN0aXZlVmlldyA9IHRvU2lnbmFsKFxuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLmdldEFjdGl2ZVZpZXdJZFVwZGF0ZXMoKSxcbiAgKTtcbiAgcmVhZG9ubHkgI2lzQWN0aXZlVmlldyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBhY3RpdmVWaWV3SWQgPSB0aGlzLiNhY3RpdmVWaWV3KCk7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcbiAgICByZXR1cm4gYWN0aXZlVmlld0lkID09PSB2aWV3SWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5hZ0dyaWRMaXN0KCk7XG5cbiAgICAgIHRoaXMuI2NoZWNrRm9yQWdHcmlkKGxpc3QpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0KCk7XG5cbiAgICAgIHRoaXMuI2NoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcihsaXN0KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgICBpZiAoYnJlYWtwb2ludCkge1xuICAgICAgICB0aGlzLiNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLnZpZXdJZCgpO1xuICAgICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZFJlYWR5KCk7XG4gICAgICBpZiAodmlld0lkICYmIGFnR3JpZCkge1xuICAgICAgICBpZiAoYWdHcmlkLmFwaS5nZXRHcmlkT3B0aW9uKCdjb250ZXh0Jyk/LmVuYWJsZVRvcFNjcm9sbCkge1xuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHZpZXdJZCwgW1xuICAgICAgICAgICAgJy5hZy1oZWFkZXInLFxuICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy5zZXRWaWV3a2VlcGVyQ2xhc3Nlcyh2aWV3SWQsIFsnLmFnLWhlYWRlciddKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlVmlldyA9IHRoaXMuI2lzQWN0aXZlVmlldygpO1xuICAgICAgY29uc3QgYWdHcmlkID0gdW50cmFja2VkKHRoaXMuI2N1cnJlbnRBZ0dyaWRSZWFkeSk7XG4gICAgICBpZiAoaXNBY3RpdmVWaWV3ICYmIGFnR3JpZCkge1xuICAgICAgICBhZ0dyaWQuYXBpLnJlZnJlc2hDZWxscygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3VucmVnaXN0ZXJBZ0dyaWQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjY2hlY2tGb3JBZ0dyaWQoYWdHcmlkTGlzdDogcmVhZG9ubHkgQWdHcmlkQW5ndWxhcltdKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gYWdHcmlkTGlzdFswXTtcbiAgICBjb25zdCBhZ0dyaWRDb3VudCA9IGFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgaWYgKGFnR3JpZCkge1xuICAgICAgaWYgKGFnR3JpZCAhPT0gdGhpcy4jY3VycmVudEFnR3JpZCgpKSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhZ0dyaWRDb3VudCA+IDEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKFxuICAgIHdyYXBwZXJzOiByZWFkb25seSBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50W10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvdW50ID0gd3JhcHBlcnMubGVuZ3RoO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB3cmFwcGVyc1swXTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHdyYXBwZXIgIT09IHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICB0aGlzLiNyZWdpc3RlclNreUFnR3JpZFdyYXBwZXIod3JhcHBlcik7XG4gICAgfVxuXG4gICAgaWYgKGNvdW50ID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1bnJlZ2lzdGVyQWdHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAjdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy4jY3VycmVudFNreUFnR3JpZFdyYXBwZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAjcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLiN1bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gd3JhcHBlcjtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyLnZpZXdrZWVwZXJDbGFzc2VzID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAjcmVnaXN0ZXJBZ0dyaWQoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlckFnR3JpZCgpO1xuXG4gICAgdGhpcy4jY3VycmVudEFnR3JpZC5zZXQoYWdHcmlkKTtcblxuICAgIGlmIChhZ0dyaWQpIHtcbiAgICAgIGFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2aWV3Q29uZmlnID0gdGhpcy4jdmlld0NvbmZpZygpO1xuICAgICAgICAgICAgaWYgKHZpZXdDb25maWcpIHtcbiAgICAgICAgICAgICAgdmlld0NvbmZpZy5vblNlbGVjdEFsbENsaWNrID0gKCk6IHZvaWQgPT4gYWdHcmlkLmFwaS5zZWxlY3RBbGwoKTtcbiAgICAgICAgICAgICAgdmlld0NvbmZpZy5vbkNsZWFyQWxsQ2xpY2sgPSAoKTogdm9pZCA9PiBhZ0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gICAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZVZpZXdDb25maWcodmlld0NvbmZpZyk7XG5cbiAgICAgICAgICAgICAgdGhpcy4jYXBwbHlDb2x1bW5XaWR0aHMoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLmdldERhdGFTdGF0ZVVwZGF0ZXModmlld0NvbmZpZy5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgdGhpcy4jZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlKTtcbiAgICAgICAgICB0aGlzLiNhcHBseVNvcnQoZGF0YVN0YXRlKTtcbiAgICAgICAgICB0aGlzLiNpc0FnR3JpZFJlYWR5LnNldCh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tRXZlbnQoYWdHcmlkLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdW5yZWdpc3RlckFnR3JpZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtbk1vdmVkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAoZXZlbnQ6IENvbHVtbk1vdmVkRXZlbnQpID0+XG4gICAgICAgICAgICAgICFbXG4gICAgICAgICAgICAgICAgJ2dyaWRJbml0aWFsaXppbmcnLFxuICAgICAgICAgICAgICAgICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICAgICAgICd1aUNvbHVtbkRyYWdnZWQnLFxuICAgICAgICAgICAgICAgICdhcGknLFxuICAgICAgICAgICAgICBdLmluY2x1ZGVzKGV2ZW50LnNvdXJjZSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogQ29sdW1uTW92ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5jb2x1bW5SZXNpemVkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4gZXZlbnQuc291cmNlID09PSAndWlDb2x1bW5SZXNpemVkJyxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDb2x1bW5SZXNpemVkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2xJZCA9IGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKTtcbiAgICAgICAgICBjb25zdCB3aWR0aCA9IGV2ZW50LmNvbHVtbj8uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICAgICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgICAgICAgaWYgKGNvbElkICYmIHdpZHRoICYmIGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbldpZHRoKGNvbElkLCB3aWR0aCwgYnJlYWtwb2ludCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmRyYWdTdG9wcGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IERyYWdTdG9wcGVkRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKHZhbHVlLmFwaSk7XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQucm93U2VsZWN0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUm93U2VsZWN0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLiN2aWV3Q29uZmlnKCk7XG4gICAgICAgICAgaWYgKHZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcbiAgICAgICAgY29uc3Qgdmlld0NvbmZpZyA9IHRoaXMuI3ZpZXdDb25maWcoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLiN2aWV3Q29uZmlnKCk7XG4gICAgaWYgKHZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgY29uc3QgY29sdW1uT3JkZXIgPSB0aGlzLiNnZXRDb2x1bW5PcmRlcihhcGkpO1xuXG4gICAgICBjb25zdCB2aWV3U3RhdGUgPSB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodmlld0NvbmZpZy5pZCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdmlld1N0YXRlICYmXG4gICAgICAgICh2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLmxlbmd0aCAhPT0gY29sdW1uT3JkZXIubGVuZ3RoIHx8XG4gICAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcy5zb21lKChjb2wsIGkpID0+IGNvbCAhPT0gY29sdW1uT3JkZXJbaV0pKVxuICAgICAgKSB7XG4gICAgICAgIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPSBjb2x1bW5PcmRlcjtcblxuICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodmlld0NvbmZpZy5pZCwgdmlld1N0YXRlKSxcbiAgICAgICAgICB2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gKGFwaT8uZ2V0Q29sdW1uU3RhdGUoKSA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZCgpO1xuICAgIGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLiN2aWV3Q29uZmlnKCk7XG5cbiAgICBpZiAoYWdHcmlkICYmIHZpZXdDb25maWcpIHtcbiAgICAgIGNvbnN0IHZpZXdTdGF0ZSA9IGRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHZpZXdDb25maWcuaWQpO1xuICAgICAgbGV0IGRpc3BsYXllZENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICBpZiAodmlld1N0YXRlPy5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgZGlzcGxheWVkQ29sdW1uSWRzID0gdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcztcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29sdW1uT3JkZXIgPSB0aGlzLiNnZXRDb2x1bW5PcmRlcihhZ0dyaWQuYXBpKTtcblxuICAgICAgaWYgKFxuICAgICAgICAoZGlzcGxheWVkQ29sdW1uSWRzLmxlbmd0aCAhPT0gY29sdW1uT3JkZXIubGVuZ3RoIHx8XG4gICAgICAgICAgZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpICYmXG4gICAgICAgIGFnR3JpZC5hcGlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBoaWRlQ29sdW1ucyA9IGFnR3JpZC5hcGlcbiAgICAgICAgICAuZ2V0Q29sdW1uU3RhdGUoKVxuICAgICAgICAgIC5tYXAoKGNvbCkgPT4gY29sLmNvbElkKVxuICAgICAgICAgIC5maWx0ZXIoKGNvbElkKSA9PiAhZGlzcGxheWVkQ29sdW1uSWRzLmluY2x1ZGVzKGNvbElkKSk7XG5cbiAgICAgICAgYWdHcmlkLmFwaS5zZXRDb2x1bW5zVmlzaWJsZShoaWRlQ29sdW1ucywgZmFsc2UpO1xuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGRpc3BsYXllZENvbHVtbklkcywgdHJ1ZSk7XG4gICAgICAgIGFnR3JpZC5hcGkubW92ZUNvbHVtbnMoZGlzcGxheWVkQ29sdW1uSWRzLCAwKTtcbiAgICAgICAgdGhpcy4jcmVtb3ZlQ29sdW1uV2lkdGhzKGhpZGVDb2x1bW5zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjYXBwbHlTb3J0KGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZEFwaSA9IHRoaXMuI2N1cnJlbnRBZ0dyaWQoKT8uYXBpO1xuICAgIGNvbnN0IGFjdGl2ZVNvcnQgPSBkYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbjtcblxuICAgIGlmIChhZ0dyaWRBcGkgJiYgYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkQXBpLmFwcGx5Q29sdW1uU3RhdGUoe1xuICAgICAgICBzdGF0ZTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbElkOiBhY3RpdmVTb3J0LmlkLFxuICAgICAgICAgICAgc29ydDogYWN0aXZlU29ydC5kZXNjZW5kaW5nID8gJ2Rlc2MnIDogJ2FzYycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGVmYXVsdFN0YXRlOiB7IHNvcnQ6IG51bGwgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5XaWR0aChcbiAgICBjb2xJZDogc3RyaW5nLFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgYnJlYWtwb2ludDogU2t5QnJlYWtwb2ludCxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld0lkID0gdGhpcy52aWV3SWQoKTtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGU/LmdldFZpZXdTdGF0ZUJ5SWQodmlld0lkKTtcbiAgICBpZiAodmlld1N0YXRlICYmIHZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGN1cnJlbnRXaWR0aHNbdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCldW2NvbElkXSA9IHdpZHRoO1xuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodmlld0lkLCB2aWV3U3RhdGUpLFxuICAgICAgICB2aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNyZW1vdmVDb2x1bW5XaWR0aHMoY29sSWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdJZCA9IHRoaXMudmlld0lkKCk7XG4gICAgY29uc3Qgdmlld1N0YXRlID1cbiAgICAgIHZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlPy5nZXRWaWV3U3RhdGVCeUlkKHZpZXdJZCk7XG5cbiAgICBpZiAodmlld1N0YXRlICYmIHZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGZvciAoY29uc3QgY29sSWQgb2YgY29sSWRzKSB7XG4gICAgICAgIGRlbGV0ZSBjdXJyZW50V2lkdGhzWyd4cyddW2NvbElkXTtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3NtJ11bY29sSWRdO1xuICAgICAgfVxuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodmlld0lkLCB2aWV3U3RhdGUpLFxuICAgICAgICB2aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50PzogU2t5QnJlYWtwb2ludCk6IHZvaWQge1xuICAgIGJyZWFrcG9pbnQgPz89IHRoaXMuI2JyZWFrcG9pbnQoKTtcbiAgICBjb25zdCBjdXJyZW50QWdHcmlkQXBpID0gdGhpcy4jY3VycmVudEFnR3JpZFJlYWR5KCk/LmFwaTtcbiAgICBjb25zdCB2aWV3SWQgPSB0aGlzLnZpZXdJZCgpO1xuXG4gICAgaWYgKGJyZWFrcG9pbnQgJiYgY3VycmVudEFnR3JpZEFwaSkge1xuICAgICAgY29uc3Qgdmlld1N0YXRlID1cbiAgICAgICAgdmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGU/LmdldFZpZXdTdGF0ZUJ5SWQodmlld0lkKTtcblxuICAgICAgaWYgKHZpZXdTdGF0ZSAmJiB2aWV3U3RhdGUuY29sdW1uV2lkdGhzICYmIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uTGltaXRzID0gdGhpcy4jZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLFxuICAgICAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMsXG4gICAgICAgICAgdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCksXG4gICAgICAgICk7XG5cbiAgICAgICAgY3VycmVudEFnR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KHsgY29sdW1uTGltaXRzIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRHcmlkQ29sdW1uTGltaXRzKFxuICAgIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdLFxuICAgIGN1cnJlbnRXaWR0aHM6IFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICAgIGJyZWFrcG9pbnROYW1lOiBrZXlvZiBTa3lEYXRhVmlld0NvbHVtbldpZHRocyxcbiAgKTogSUNvbHVtbkxpbWl0W10ge1xuICAgIGNvbnN0IGdyaWRDb2x1bW5MaW1pdHM6IElDb2x1bW5MaW1pdFtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBkaXNwbGF5ZWRDb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IGN1cnJlbnRXaWR0aHNbYnJlYWtwb2ludE5hbWVdW2NvbHVtbl07XG5cbiAgICAgIGlmIChjb2x1bW5XaWR0aCkge1xuICAgICAgICBncmlkQ29sdW1uTGltaXRzLnB1c2goe1xuICAgICAgICAgIGtleTogY29sdW1uLFxuICAgICAgICAgIG1pbldpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgICAgICBtYXhXaWR0aDogY29sdW1uV2lkdGgsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ3JpZENvbHVtbkxpbWl0cztcbiAgfVxufVxuIl19","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 }, ...(ngDevMode ? [{ debugName: \"tableWidthStyle\" }] : []));\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 }, ...(ngDevMode ? [{ debugName: \"rowsWithElements\" }] : []));\n this.pending = signal([], ...(ngDevMode ? [{ debugName: \"pending\" }] : []));\n this.tableWidth = signal(0, ...(ngDevMode ? [{ debugName: \"tableWidth\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixRQUFRLEdBQ1QsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUU5RTs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sMkJBQTJCO0lBeUQ3QixrQkFBa0IsQ0FBb0M7SUFFL0Q7UUExRGdCLFlBQU8sR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUV2RCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFB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WUFBWSxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUyxhQUFhLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7K0dBdkdVLDJCQUEyQjttR0FBM0IsMkJBQTJCLGdLQ3JDeEMseXFCQW9CQSxnS0RZWSxxQkFBcUIsdUtBQUUsY0FBYzs7NEZBS3BDLDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDRSx3QkFBd0IsV0FHekIsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLENBQUMsUUFDMUM7d0JBQ0osU0FBUyxFQUFFLHVDQUF1QztxQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTa3lBZmZpeE1vZHVsZSwgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5saW5lRGVsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHNjYW4sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQgfSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS1jb250ZXh0JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5saW5lIGRlbGV0ZSB0ZW1wbGF0ZSBpbiB0aGUgb3ZlcmxheS5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctZGVsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50LmNzcycsXG4gIGltcG9ydHM6IFtTa3lJbmxpbmVEZWxldGVNb2R1bGUsIFNreUFmZml4TW9kdWxlXSxcbiAgaG9zdDoge1xuICAgICdbc3R5bGVdJzogJ1wiLS10YWJsZS13aWR0aDogXCIgKyB0YWJsZVdpZHRoU3R5bGUoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCk7XG5cbiAgcHJvdGVjdGVkIHRhYmxlV2lkdGhTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0YWJsZVdpZHRoID0gdGhpcy50YWJsZVdpZHRoKCk7XG4gICAgaWYgKHRhYmxlV2lkdGggPiAwKSB7XG4gICAgICByZXR1cm4gYCR7dGFibGVXaWR0aH1weGA7XG4gICAgfVxuICAgIHJldHVybiAnYXV0byc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByb3dzV2l0aEVsZW1lbnRzID0gY29tcHV0ZWQoXG4gICAgKCk6IHsgcm93SWQ6IHN0cmluZzsgaW5jcmVtZW50OiBzdHJpbmc7IGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCB9W10gPT4ge1xuICAgICAgY29uc3Qgcm93cyA9IHRoaXMuc2VydmljZS5yb3dzKCk7XG4gICAgICBjb25zdCBncmlkRWxlbWVudCA9IHRoaXMuc2VydmljZS5ncmlkRWxlbWVudCgpO1xuICAgICAgY29uc3QgZ3JpZEFwaSA9IHRoaXMuc2VydmljZS5ncmlkQXBpKCk7XG4gICAgICBjb25zdCBpbmNyZW1lbnQgPSB0aGlzLmdyaWRDaGFuZ2VzKCk7XG4gICAgICBpZiAoIWdyaWRFbGVtZW50IHx8ICFncmlkQXBpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByb3dzXG4gICAgICAgIC5maWx0ZXIoKHJvd0lkKSA9PiAhIXJvd0lkICYmICEhZ3JpZEFwaS5nZXRSb3dOb2RlKHJvd0lkKSlcbiAgICAgICAgLm1hcCgocm93SWQpID0+IHtcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZ3JpZEVsZW1lbnRbMF0/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihgXG4gICAgICAgICAgW3Jvdy1pZD1cIiR7cm93SWR9XCJdIGRpdlthcmlhLWNvbGluZGV4XSxcbiAgICAgICAgICAuYWctcm93LnNreS1hZy1ncmlkLXJvdy0ke3Jvd0lkfSBkaXZbYXJpYS1jb2xpbmRleF1cbiAgICAgICAgYCk7XG4gICAgICAgICAgcmV0dXJuIHsgcm93SWQsIGVsZW1lbnQsIGluY3JlbWVudDogYCR7cm93SWR9LSR7aW5jcmVtZW50fWAgfTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVuZGluZyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFibGVXaWR0aCA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIC8vIEZvcmNlIHJlZHJhd2luZyBvdmVybGF5cyB3aGVuIHRoZSBncmlkIGNoYW5nZXMgYnkgaW5jcmVtZW50aW5nIGEgbnVtYmVyLlxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JpZENoYW5nZXMgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5zZXJ2aWNlLmdyaWRBcGkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGdyaWRBcGkpID0+XG4gICAgICAgIGdyaWRBcGlcbiAgICAgICAgICA/IG1lcmdlKFxuICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZEFwaSwgJ2NvbXBvbmVudFN0YXRlQ2hhbmdlZCcpLFxuICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZEFwaSwgJ2ZpcnN0RGF0YVJlbmRlcmVkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAnZ3JpZFNpemVDaGFuZ2VkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAnbW9kZWxVcGRhdGVkJyksXG4gICAgICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAncm93RGF0YVVwZGF0ZWQnKSxcbiAgICAgICAgICAgICkucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KGdyaWRBcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAgIDogb2YodW5kZWZpbmVkKSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoMSksXG4gICAgICBtYXAoKCkgPT4gMSksXG4gICAgICBzY2FuKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsKSxcbiAgICApLFxuICAgIHsgaW5pdGlhbFZhbHVlOiAwIH0sXG4gICk7XG5cbiAgcmVhZG9ubHkgI3Jlc2l6ZU9ic2VydmVyU3ZjID0gaW5qZWN0KFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gTWFpbnRhaW4gdGFibGUgd2lkdGggd2hlbiB0aGUgZ3JpZCBpcyByZXNpemVkLlxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnNlcnZpY2UuZ3JpZEVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChlbCk6IGVsIGlzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+W10gPT4gQXJyYXkuaXNBcnJheShlbCkgJiYgISFlbFswXSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkRWxlbWVudCkgPT5cbiAgICAgICAgICB0aGlzLiNyZXNpemVPYnNlcnZlclN2Y1xuICAgICAgICAgICAgLm9ic2VydmUoZ3JpZEVsZW1lbnRbMF0pXG4gICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gZ3JpZEVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkpLFxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHRhYmxlV2lkdGgpID0+IHtcbiAgICAgICAgdGhpcy50YWJsZVdpZHRoLnNldCh0YWJsZVdpZHRoKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gQ2xlYW4gdXAgcGVuZGluZyByb3dzIHdoZW4gdGhlIGdyaWQgZGF0YSBpcyB1cGRhdGVkLlxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnNlcnZpY2UuZ3JpZEFwaSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGdyaWRBcGkpOiBncmlkQXBpIGlzIEdyaWRBcGkgPT4gISFncmlkQXBpKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkQXBpKSA9PlxuICAgICAgICAgIGZyb21FdmVudChncmlkQXBpLCAncm93RGF0YVVwZGF0ZWQnKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKGZyb21FdmVudChncmlkQXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBncmlkQXBpKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGdyaWRBcGkpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nLnVwZGF0ZSgocGVuZGluZykgPT5cbiAgICAgICAgICBwZW5kaW5nLmZpbHRlcigocm93SWQpID0+ICEhZ3JpZEFwaS5nZXRSb3dOb2RlKHJvd0lkKSksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5jZWxEZWxldGUocm93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jYW5jZWxSb3dEZWxldGUubmV4dChyb3dJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlybURlbGV0ZShyb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nLnVwZGF0ZSgocGVuZGluZykgPT4gcGVuZGluZy5jb25jYXQocm93SWQpKTtcbiAgICB0aGlzLnNlcnZpY2UuY29uZmlybVJvd0RlbGV0ZS5uZXh0KHJvd0lkKTtcbiAgfVxufVxuIiwiQGZvciAocm93IG9mIHJvd3NXaXRoRWxlbWVudHMoKTsgdHJhY2sgcm93LmluY3JlbWVudCkge1xuICBAaWYgKHJvdy5lbGVtZW50Py5vZmZzZXRQYXJlbnQgJiYgcm93LmVsZW1lbnQ7IGFzIGVsZW1lbnQpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1hZy1ncmlkLXJvdy1kZWxldGVcIlxuICAgICAgYWZmaXhQbGFjZW1lbnQ9XCJhYm92ZVwiXG4gICAgICBhZmZpeFZlcnRpY2FsQWxpZ25tZW50PVwidG9wXCJcbiAgICAgIGFmZml4SG9yaXpvbnRhbEFsaWdubWVudD1cImxlZnRcIlxuICAgICAgW2lkXT1cIidyb3ctZGVsZXRlLXJlZi0nICsgcm93LnJvd0lkXCJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnXCJcbiAgICAgIFtza3lBZmZpeFRvXT1cImVsZW1lbnRcIlxuICAgICAgW2FmZml4SXNTdGlja3ldPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPHNreS1pbmxpbmUtZGVsZXRlXG4gICAgICAgIFtwZW5kaW5nXT1cInBlbmRpbmcoKS5pbmNsdWRlcyhyb3cucm93SWQgPz8gJycpXCJcbiAgICAgICAgKGNhbmNlbFRyaWdnZXJlZCk9XCJjYW5jZWxEZWxldGUocm93LnJvd0lkKVwiXG4gICAgICAgIChkZWxldGVUcmlnZ2VyZWQpPVwiY29uZmlybURlbGV0ZShyb3cucm93SWQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIH1cbn1cbiJdfQ==","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 #overlay;\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([], ...(ngDevMode ? [{ debugName: \"rowDeleteIds\" }] : []));\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, ...(ngDevMode ? [{ debugName: \"agGrid\" }] : []));\n this.#agGridBodyViewport = new BehaviorSubject([]);\n this.#agGridBodyClipElements = new BehaviorSubject([]);\n this.#ngUnsubscribe = new Subject();\n this.#rowDeleteIdsInternal = linkedSignal(...(ngDevMode ? [{ debugName: \"#rowDeleteIdsInternal\", 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 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 this.#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 this.#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(this.#overlay.closed), distinctUntilChanged())\n .subscribe((zIndex) => {\n if (this.#overlay) {\n this.#overlay.componentRef.instance.zIndex = zIndex.toString(10);\n }\n });\n this.#clipPath\n .pipe(takeUntil(this.#ngUnsubscribe), takeUntil(this.#overlay.closed), distinctUntilChanged())\n .subscribe((clipPath) => {\n this.#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 if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.15\", 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.3.15\", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyAgGridRowDelete]',\n }]\n }], ctorParameters: () => [], propDecorators: { rowDeleteIds: [{ type: i0.Input, args: [{ isSignal: true, alias: \"rowDeleteIds\", required: false }] }, { type: i0.Output, args: [\"rowDeleteIdsChange\"] }], rowDeleteCancel: [{ type: i0.Output, args: [\"rowDeleteCancel\"] }], rowDeleteConfirm: [{ type: i0.Output, args: [\"rowDeleteConfirm\"] }], agGrid: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AgGridAngular), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHlCQUF5QixHQUMxQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sMkJBQTJCO0lBb0I3QixtQkFBbUIsQ0FFdEI7SUFDRyx1QkFBdUIsQ0FFMUI7SUFDRyxjQUFjLENBQXVCO0lBQ3JDLHFCQUFxQixDQVEzQjtJQUNNLFNBQVMsQ0FBc0Q7SUFDL0QsT0FBTyxDQUE0QjtJQUNuQyxXQUFXLENBQW1DO0lBQzlDLG9CQUFvQixDQUErQjtJQUNuRCxlQUFlLENBQTZCO0lBQ3JELFFBQVEsQ0FBaUM7SUFDaEMsYUFBYSxDQUE0QjtJQUN6QyxzQkFBc0IsQ0FBb0M7SUFDMUQsZ0JBQWdCLENBQW9EO0lBRTdFO1FBM0NBOztXQUVHO1FBQ2EsaUJBQVksR0FBRyxLQUFLLENBQVcsRUFBRSx3REFBQyxDQUFDO1FBRW5EOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxNQUFNLEVBQWdDLENBQUM7UUFFaEU7O1dBRUc7UUFDSSxxQkFBZ0IsR0FBRyxNQUFNLEVBQWlDLENBQUM7UUFFL0MsV0FBTSxHQUFHLFlBQVksQ0FBQyxhQUFhLGtEQUFDLENBQUM7UUFFL0Msd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBRWhELEVBQUUsQ0FBQyxDQUFDO1FBQ0csNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRXBELEVBQUUsQ0FBQyxDQUFDO1FBQ0csbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLFlBQVksd0RBQzNDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDekIsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDckIsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDO3FCQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUM7cUJBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BUE47Z0JBQ2pFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDekIsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDckIsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDO3FCQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUM7cUJBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hFLEdBQUMsQ0FBQztRQUNNLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDL0QsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbkQsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUc1QywyQkFBc0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUczRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO2lCQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSx5QkFBeUIsQ0FDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxFQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQ2xDLE1BQU0sQ0FBc0IsU0FBUyxDQUFDLENBQ3ZDLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7YUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FDcEMsQ0FBQztnQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCO2FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDN0IsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQy9CLENBQUM7UUFDRixXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDNUIsSUFBSSxVQUFVLENBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUMxQyxxQkFBcUIsQ0FDSixDQUNwQjthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNO2FBQ0gsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUN4QixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNqQixLQUFLLENBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxFQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxFQUNsQyxXQUFXLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQzNELENBQ0YsQ0FBQyxJQUFJLENBQ0osU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDOUIsU0FBUyxDQUNQLFdBQVcsQ0FBQyxJQUFJLENBQ2QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN0RCxDQUNGLENBQ0YsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDL0MsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQy9DLFNBQVMsQ0FBQyxDQUFDLFNBQW1DLEVBQUUsRUFBRTtZQUNoRCxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakQsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FDRjthQUNBLFNBQVMsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLEVBQUU7WUFDcEMseURBQXlEO1lBQ3pELDhEQUE4RDtZQUM5RCxpRUFBaUU7WUFDakUsb0VBQW9FO1lBQ3BFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU07YUFDSCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFDM0QsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3hELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUMxQyxZQUFZLEVBQUUsSUFBSTtZQUNsQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQzlDLFlBQVksRUFBRSxLQUFLO1lBQ25CLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsbUJBQW1CLEVBQUUsSUFBSTtTQUMxQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsRUFBRTtZQUN6RDtnQkFDRSxPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDN0I7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTzthQUNULElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDL0Isb0JBQW9CLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxTQUFTO2FBQ1gsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUMvQixvQkFBb0IsRUFBRSxDQUN2QjthQUNBLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsc0JBQXNCO2FBQ3hCLGtDQUFrQyxDQUNqQyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQzVDO2FBQ0EsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDOytHQTdNVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix3WUFrQkcsYUFBYTs7NEZBbEIzQywyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7d1pBbUIwQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIGNvbnRlbnRDaGlsZCxcbiAgaW5qZWN0LFxuICBsaW5rZWRTaWduYWwsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgU0tZX1NUQUNLSU5HX0NPTlRFWFQsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG4gIFNreVNjcm9sbGFibGVIb3N0U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRBcGksIEdyaWRPcHRpb25zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmcm9tRXZlbnQsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU0tZX0FHX0dSSURfUk9XX0RFTEVURV9DT05URVhULFxuICBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0LFxufSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS1jb250ZXh0JztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY2FuY2VsLWFyZ3MnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3MgfSBmcm9tICcuL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jb25maXJtLWFyZ3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5QWdHcmlkUm93RGVsZXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZURpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIElEcyBvZiB0aGUgZGF0YSBpbiB0aGUgcm93cyB3aGVyZSB0aGUgaW5saW5lIGRlbGV0ZSBhcHBlYXJzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvd0RlbGV0ZUlkcyA9IG1vZGVsPHN0cmluZ1tdPihbXSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3NgIG9iamVjdCB3aGVuIGEgcm93J3MgaW5saW5lIGRlbGV0ZSBpcyBjYW5jZWxsZWQuXG4gICAqL1xuICBwdWJsaWMgcm93RGVsZXRlQ2FuY2VsID0gb3V0cHV0PFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzYCBvYmplY3Qgd2hlbiBhIHJvdydzIGlubGluZSBkZWxldGUgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgcHVibGljIHJvd0RlbGV0ZUNvbmZpcm0gPSBvdXRwdXQ8U2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3M+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFnR3JpZCA9IGNvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyKTtcblxuICByZWFkb25seSAjYWdHcmlkQm9keVZpZXdwb3J0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PltdXG4gID4oW10pO1xuICByZWFkb25seSAjYWdHcmlkQm9keUNsaXBFbGVtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5bXVxuICA+KFtdKTtcbiAgcmVhZG9ubHkgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjcm93RGVsZXRlSWRzSW50ZXJuYWwgPSBsaW5rZWRTaWduYWw8dW5rbm93bltdLCBzdHJpbmdbXT4oe1xuICAgIHNvdXJjZTogdGhpcy5yb3dEZWxldGVJZHMsXG4gICAgY29tcHV0YXRpb246ICh2YWx1ZSkgPT5cbiAgICAgIFsuLi5uZXcgU2V0KHZhbHVlKV1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAubWFwKFN0cmluZylcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSksXG4gICAgZXF1YWw6IChhLCBiKSA9PiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgodiwgaSkgPT4gdiA9PT0gYltpXSksXG4gIH0pO1xuICByZWFkb25seSAjY2xpcFBhdGggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgI3pJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3QoOTk4KTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICByZWFkb25seSAjZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgcmVhZG9ubHkgI292ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KFNreU92ZXJsYXlTZXJ2aWNlKTtcbiAgI292ZXJsYXk6IFNreU92ZXJsYXlJbnN0YW5jZSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgI3Jvd0RlbGV0ZVN2YzogU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dDtcbiAgcmVhZG9ubHkgI3Njcm9sbGFibGVIb3N0U2VydmljZSA9IGluamVjdChTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2UpO1xuICByZWFkb25seSAjc3RhY2tpbmdDb250ZXh0ID0gaW5qZWN0KFNLWV9TVEFDS0lOR19DT05URVhULCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh0aGlzLiNzdGFja2luZ0NvbnRleHQpIHtcbiAgICAgIHRoaXMuI3N0YWNraW5nQ29udGV4dC56SW5kZXhcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLiN6SW5kZXgubmV4dCh6SW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMgPSBuZXcgU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dChcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZUlkc0ludGVybmFsLmFzUmVhZG9ubHkoKSxcbiAgICAgIHRvU2lnbmFsKHRoaXMuI2FnR3JpZEJvZHlWaWV3cG9ydCksXG4gICAgICBzaWduYWw8R3JpZEFwaSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcbiAgICApO1xuXG4gICAgdGhpcy4jcm93RGVsZXRlU3ZjLmNhbmNlbFJvd0RlbGV0ZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocm93SWQpID0+IHtcbiAgICAgICAgaWYgKHJvd0lkKSB7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVJZHMudXBkYXRlKChyb3dJZHMpID0+XG4gICAgICAgICAgICByb3dJZHMuZmlsdGVyKChpZCkgPT4gaWQgIT09IHJvd0lkKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMucm93RGVsZXRlQ2FuY2VsLmVtaXQoeyBpZDogcm93SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcm93RGVsZXRlU3ZjLmNvbmZpcm1Sb3dEZWxldGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJvd0lkKSA9PiB7XG4gICAgICAgIGlmIChyb3dJZCkge1xuICAgICAgICAgIHRoaXMucm93RGVsZXRlQ29uZmlybS5lbWl0KHsgaWQ6IHJvd0lkIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGFnR3JpZCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmFnR3JpZCk7XG4gICAgY29uc3QgYWdHcmlkUmVhZHkgPSBhZ0dyaWQucGlwZShcbiAgICAgIGZpbHRlcigoYWdHcmlkKSA9PiAhIWFnR3JpZCksXG4gICAgICBzd2l0Y2hNYXAoKGFnR3JpZDogQWdHcmlkQW5ndWxhcikgPT4gYWdHcmlkLmdyaWRSZWFkeSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICk7XG4gICAgYWdHcmlkUmVhZHkuc3Vic2NyaWJlKChyZWFkeSkgPT4ge1xuICAgICAgdGhpcy4jYWdHcmlkQm9keVZpZXdwb3J0Lm5leHQoW1xuICAgICAgICBuZXcgRWxlbWVudFJlZihcbiAgICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICdkaXYuYWctcm9vdC13cmFwcGVyJyxcbiAgICAgICAgICApIGFzIEhUTUxEaXZFbGVtZW50LFxuICAgICAgICApLFxuICAgICAgXSk7XG4gICAgICB0aGlzLiNyb3dEZWxldGVTdmMuZ3JpZEFwaS5zZXQocmVhZHkuYXBpKTtcbiAgICB9KTtcbiAgICBhZ0dyaWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGdyaWQpID0+ICEhZ3JpZCksXG4gICAgICAgIHN3aXRjaE1hcCgoZ3JpZCkgPT5cbiAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGdyaWQuZmlyc3REYXRhUmVuZGVyZWQuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgICAgICBncmlkLnJvd0RhdGFVcGRhdGVkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgICAgICAgYWdHcmlkUmVhZHkucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb21FdmVudChncmlkLmFwaSwgJ2dyaWRPcHRpb25zQ2hhbmdlZCcpKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgICBhZ0dyaWRSZWFkeS5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgZnJvbUV2ZW50KGdyaWQuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpLnBpcGUodGFrZSgxKSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFydFdpdGgoZ3JpZC5hcGk/LmdldEdyaWRPcHRpb24oJ2RvbUxheW91dCcpKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBncmlkLmFwaT8uZ2V0R3JpZE9wdGlvbignZG9tTGF5b3V0JykpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChkb21MYXlvdXQ6IEdyaWRPcHRpb25zWydkb21MYXlvdXQnXSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiNhZ0dyaWRCb2R5Vmlld3BvcnQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgQUcgR3JpZCdzIGBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0J2Agb3B0aW9uLFxuICAgICAgICAvLyB0aGUgZ3JpZCdzIGJvZHkgdmlld3BvcnQgaXMgY2xpcHBlZCBieSB0aGUgc2Nyb2xsYWJsZSBob3N0LlxuICAgICAgICAvLyBCdXQgd2hlbiB1c2luZyBgZG9tTGF5b3V0OiAnbm9ybWFsJ2AsIHRoZSBncmlkJ3MgYm9keSB2aWV3cG9ydFxuICAgICAgICAvLyBzaG91bGQgYmUgdXNlZCBhcyB0aGUgc2Nyb2xsYWJsZSBob3N0IGZvciB0aGUgcm93IGRlbGV0ZSBvdmVybGF5LlxuICAgICAgICB0aGlzLiNhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzLm5leHQoYWdHcmlkQm9keUNsaXBFbGVtZW50cyk7XG4gICAgICB9KTtcblxuICAgIGFnR3JpZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoYWdHcmlkKSA9PiAhIWFnR3JpZCksXG4gICAgICAgIHN3aXRjaE1hcCgoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKSA9PiBhZ0dyaWQucm93RGF0YVVwZGF0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgdGhpcy5yb3dEZWxldGVJZHMudXBkYXRlKChyb3dJZHMpID0+XG4gICAgICAgICAgKHJvd0lkcyA/PyBbXSkuZmlsdGVyKChpZCkgPT4gISFldnQuYXBpLmdldFJvd05vZGUoaWQpKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNvdmVybGF5ID0gdGhpcy4jb3ZlcmxheVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICBzaG93QmFja2Ryb3A6IGZhbHNlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBlbmFibGVDbG9zZTogZmFsc2UsXG4gICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy4jb3ZlcmxheS5hdHRhY2hDb21wb25lbnQoU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50LCBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCxcbiAgICAgICAgdXNlVmFsdWU6IHRoaXMuI3Jvd0RlbGV0ZVN2YyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgdGhpcy4jekluZGV4XG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jb3ZlcmxheS5jbG9zZWQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoekluZGV4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLiNvdmVybGF5KSB7XG4gICAgICAgICAgdGhpcy4jb3ZlcmxheS5jb21wb25lbnRSZWYuaW5zdGFuY2UuekluZGV4ID0gekluZGV4LnRvU3RyaW5nKDEwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy4jY2xpcFBhdGhcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNvdmVybGF5LmNsb3NlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjbGlwUGF0aCkgPT4ge1xuICAgICAgICB0aGlzLiNvdmVybGF5Py5jb21wb25lbnRSZWYuaW5zdGFuY2UudXBkYXRlQ2xpcFBhdGgoY2xpcFBhdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3Njcm9sbGFibGVIb3N0U2VydmljZVxuICAgICAgLndhdGNoU2Nyb2xsYWJsZUhvc3RDbGlwUGF0aENoYW5nZXMoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYsXG4gICAgICAgIHRoaXMuI2FnR3JpZEJvZHlDbGlwRWxlbWVudHMuYXNPYnNlcnZhYmxlKCksXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjbGlwUGF0aCkgPT4ge1xuICAgICAgICB0aGlzLiNjbGlwUGF0aC5uZXh0KGNsaXBQYXRoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgIH1cbiAgfVxufVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", ngImport: i0, type: SkyAgGridModule, imports: [AgGridAngular,\n CommonModule,\n SkyAgGridResourcesModule,\n SkyAgGridWrapperComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBaUJ4RSxNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO2dIQUFmLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFDWixvQ0FBb0M7WUFDcEMsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix5QkFBeUIsYUFHekIsb0NBQW9DO1lBQ3BDLDJCQUEyQjtZQUMzQix5QkFBeUI7Z0hBR2hCLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFFWix3QkFBd0I7WUFFeEIseUJBQXlCOzs0RkFRaEIsZUFBZTtrQkFmM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9DQUFvQzt3QkFDcEMsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQWdHcmlkQW5ndWxhcixcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlLFxuICAgIFNreUFnR3JpZFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkTW9kdWxlIHt9XG4iXX0=","/**\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 /**\n * Returns the difference between the minuend and subtrahend. If the minuend is not defined, returns 0.\n * @param minuend The number from which another number is subtracted.\n * @param subtrahend The number that is subtracted from the minuend.\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUNsQyxNQUFxQztRQUVyQyxJQUFJLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUM1QixJQUNFLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFNBQVM7Z0JBQ3JDLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFDbEMsQ0FBQztnQkFDRCxPQUFPLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQztZQUNqRCxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sZ0NBQWdDLENBQUMsT0FBTyxDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNuQyxPQUFPLGdDQUFnQyxDQUFDLFdBQVcsQ0FBQztnQkFDdEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNwRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FDMUIsT0FBa0MsRUFDbEMsVUFBa0I7UUFFbEIsZ0ZBQWdGO1FBQ2hGLHVFQUF1RTtRQUN2RSxPQUFPLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcywgS2V5Q29kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpbml0aWFsIGFjdGlvbiB0aGF0IGEgY2VsbCBlZGl0b3Igc2hvdWxkIHRha2Ugd2hlbiBpbml0aWFsaXplZC5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgZWRpdG9yJ3MgaW5pdGlhbGl6aW5nIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldEVkaXRvckluaXRpYWxBY3Rpb24oXG4gICAgcGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyB8IHVuZGVmaW5lZCxcbiAgKTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24ge1xuICAgIGlmIChwYXJhbXM/LmNlbGxTdGFydGVkRWRpdCkge1xuICAgICAgaWYgKFxuICAgICAgICBwYXJhbXMuZXZlbnRLZXkgPT09IEtleUNvZGUuQkFDS1NQQUNFIHx8XG4gICAgICAgIHBhcmFtcy5ldmVudEtleSA9PT0gS2V5Q29kZS5ERUxFVEVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlO1xuICAgICAgfSBlbHNlIGlmIChwYXJhbXMuZXZlbnRLZXk/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwYXJhbXMuZXZlbnRLZXkgIT09IEtleUNvZGUuRjIpIHtcbiAgICAgICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIG1pbnVlbmQgYW5kIHN1YnRyYWhlbmQuIElmIHRoZSBtaW51ZW5kIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIDAuXG4gICAqIEBwYXJhbSBtaW51ZW5kIFRoZSBudW1iZXIgZnJvbSB3aGljaCBhbm90aGVyIG51bWJlciBpcyBzdWJ0cmFjdGVkLlxuICAgKiBAcGFyYW0gc3VidHJhaGVuZCBUaGUgbnVtYmVyIHRoYXQgaXMgc3VidHJhY3RlZCBmcm9tIHRoZSBtaW51ZW5kLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdWJ0cmFjdE9yWmVybyhcbiAgICBtaW51ZW5kOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIHN1YnRyYWhlbmQ6IG51bWJlcixcbiAgKTogbnVtYmVyIHtcbiAgICAvLyBTd2FwcGluZyBtaW51ZW5kIHdpdGggc3VidHJhaGVuZCB3aGVuIG1pbnVlbmQgaXMgbnVsbCBvciB1bmRlZmluZWQgcmVzdWx0cyBpblxuICAgIC8vIHRoZSBzdWJ0cmFoZW5kIGJlaW5nIHN1YnRyYWN0ZWQgZnJvbSBpdHNlbGYsIHdoaWNoIHdpbGwgYWx3YXlzIGJlIDAuXG4gICAgcmV0dXJuIChtaW51ZW5kID8/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.3.15\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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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bkIscUJBQXFCO3dCQUNyQixhQUFhO3FCQUNkOztzQkFpQkEsU0FBUzt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O3NCQUczRCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2F1dG9jb21wbGV0ZS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBzZWxlY3Rpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZEF1dG9jb21wbGV0ZVByb3BlcnRpZXMgPSB7fTtcblxuICAjYXV0b2NvbXBsZXRlT3BlbiA9IGZhbHNlO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuICAjcGFyYW1zOiBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKSBhcyBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24ocGFyYW1zKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnc2VsZWN0aW9uJyk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMuI3BhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLiNwYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLnJvd051bWJlciA9ICh0aGlzLiNwYXJhbXMubm9kZT8ucm93SW5kZXggPz8gMCkgKyAxO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlKSB7XG4gICAgICAgICAgY29uc3QgY2hhclByZXNzID0gdGhpcy4jcGFyYW1zPy5ldmVudEtleSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICAgIGNoYXJQcmVzcy5sZW5ndGgsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKT8udmFsdWU7XG4gICAgcmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCA/IHZhbCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9jb21wbGV0ZU9wZW5DaGFuZ2UoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jYXV0b2NvbXBsZXRlT3BlbiA9ICRldmVudDtcbiAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICB9XG5cbiAgI3N0b3BFZGl0aW5nT25CbHVyKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLiNhdXRvY29tcGxldGVPcGVuICYmXG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5nZXRHcmlkT3B0aW9uKCdzdG9wRWRpdGluZ1doZW5DZWxsc0xvc2VGb2N1cycpICYmXG4gICAgICAhdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm1hdGNoZXMoJzpmb2N1cy13aXRoaW4nKVxuICAgICkge1xuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuc3RvcEVkaXRpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1hdXRvY29tcGxldGVcIiBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIj5cbiAgPHNreS1hdXRvY29tcGxldGVcbiAgICBbYWxsb3dBbnlWYWx1ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmFsbG93QW55VmFsdWVcIlxuICAgIFtkYXRhXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGF0YVwiXG4gICAgW2RlYm91bmNlVGltZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRlYm91bmNlVGltZVwiXG4gICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgW2hpZ2hsaWdodFNlYXJjaFRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5oaWdobGlnaHRTZWFyY2hUZXh0ID8/IHRydWVcIlxuICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5wcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hcIlxuICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoRmlsdGVyc1wiXG4gICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgIFwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJcbiAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VsZWN0aW9uQ2hhbmdlICYmXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VsZWN0aW9uQ2hhbmdlKCRldmVudClcbiAgICBcIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uQXV0b2NvbXBsZXRlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgI3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGVcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGlvblwiXG4gICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgICBcIlxuICAgIC8+XG4gIDwvc2t5LWF1dG9jb21wbGV0ZT5cbjwvZGl2PlxuIl19","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 else if (event.target === this.input?.nativeElement) {\n this.#stopEditingOnBlur();\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 #stopEditingOnBlur() {\n if (this.params?.api.getGridOption('stopEditingWhenCellsLoseFocus')) {\n this.params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellEditorCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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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O1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQXJJVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyxrUEFnQkgsVUFBVSw2QkN4RHhELHVmQWVBLG9aRG1CSSxXQUFXLGtqQkFDWCxtQkFBbUIsa1dBQ25CLG9CQUFvQix5S0FDcEIsYUFBYTs7NEZBR0osb0NBQW9DO2tCQVpoRCxTQUFTOytCQUNFLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixhQUFhO3FCQUNkOztzQkFrQkEsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O3NCQUd2RCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUF1dG9udW1lcmljTW9kdWxlIH0gZnJvbSAnQHNreXV4L2F1dG9udW1lcmljJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1jdXJyZW5jeS1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDdXJyZW5jeVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9jdXJyZW5jeS1wcm9wZXJ0aWVzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItY3VycmVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2t5QXV0b251bWVyaWNNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzICYge1xuICAgIGlzQ2FuY2VsbGFibGU6IGJvb2xlYW47XG4gIH0gPSB7XG4gICAgaXNDYW5jZWxsYWJsZTogZmFsc2UsXG4gIH07XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGN1cnJlbmN5ID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeSxcbiAgfSk7XG4gIHB1YmxpYyBwYXJhbXM6IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JDdXJyZW5jeScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMucGFyYW1zPy5lR3JpZENlbGwpIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgaW5wdXQuXG4gICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmVmcmVzaENlbGxzIEFQSSBpcyBjYWxsZWQuXG4gICAgICB0aGlzLmFmdGVyR3VpQXR0YWNoZWQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy5wYXJhbXMuYXBpLmdldERpc3BsYXlOYW1lRm9yQ29sdW1uKFxuICAgICAgdGhpcy5wYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMucGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB7XG4gICAgICAuLi4odGhpcy5wYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyB8fCB7XG4gICAgICAgIGRlY2ltYWxQbGFjZXM6IDIsXG4gICAgICAgIGN1cnJlbmN5U3ltYm9sOiAnJCcsXG4gICAgICB9KSxcbiAgICAgIGlzQ2FuY2VsbGFibGU6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxFZGl0b3JDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogYWZ0ZXJHdWlBdHRhY2hlZCBpcyBjYWxsZWQgYnkgYWdHcmlkIGFmdGVyIHRoZSBlZGl0b3IgaXMgcmVuZGVyZWQgaW4gdGhlIERPTS4gT25jZSBpdCBpcyBhdHRhY2hlZCB0aGUgZWRpdG9yIGlzIHJlYWR5IHRvIGJlIGZvY3VzZWQgb24uXG4gICAqL1xuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICAvLyBBRyBHcmlkIHNldHMgZm9jdXMgdG8gdGhlIGNlbGwgdmlhIHNldFRpbWVvdXQsIGFuZCB0aGlzIHF1ZXVlcyB0aGUgaW5wdXQgdG8gZm9jdXMgYWZ0ZXIgdGhhdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgLy8gVGhpcyBzZXR1cCBpcyBpbiBgYWZ0ZXJHdWlBdHRhY2hlZGAgZHVlIHRvIHRoZSBsaWZlY3ljbGUgb2YgYXV0b251bWVyaWMgd2hpY2ggd2lsbCBoaWdobGlnaHQgdGhlIGluaXRpYWwgdmFsdWUgaWYgaXQgaXMgaW4gcGxhY2Ugd2hlbiBpdCByZW5kZXJzLlxuICAgICAgLy8gU2luY2Ugd2UgZG9uJ3Qgd2FudCB0aGF0LCB3ZSBzZXQgdGhlIGluaXRpYWwgdmFsdWUgYWZ0ZXIgYXV0b251bWVyaWMgaW5pdGlhbGl6ZXMuXG4gICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKFxuICAgICAgICB0aGlzLnBhcmFtcyxcbiAgICAgICk7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jdXJyZW5jeTtcblxuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgcGFyc2VGbG9hdChTdHJpbmcodGhpcy5wYXJhbXM/LmV2ZW50S2V5KSkgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyc2VGbG9hdChTdHJpbmcodGhpcy5wYXJhbXM/LnZhbHVlKSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkICYmXG4gICAgICAgICh0aGlzLnBhcmFtcz8udmFsdWUgPz8gJycpICE9PSAnJ1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gdGhlIGNlbGwgaXMgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgRW50ZXIga2V5LCB3ZSBuZWVkIHRvIHN1cHByZXNzIHRoZSBmaXJzdCBgb25QcmVzc0VudGVyYC5cbiAgICAgIHRoaXMuI2luaXRpYWxpemVkID0gdGhpcy5wYXJhbXM/LmV2ZW50S2V5ICE9PSAnRW50ZXInO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldFZhbHVlIGlzIGNhbGxlZCBieSBhZ0dyaWQgd2hlbiBlZGl0aW5nIGlzIHN0b3BwZWQgdG8gZ2V0IHRoZSBuZXcgdmFsdWUgb2YgdGhlIGNlbGwuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeS52YWx1ZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGF1dG9OdW1lcmljIGxpYnJhcnkncyBldmVudCBoYW5kbGVyIHN1cHByZXNzZXMgdGhlIGVzY2FwZSBrZXkgZXZlbnQuIFRoaXMgYWRkaXRpb25hbCBoYW5kbGVyIHJlLWVuYWJsZXMgQUcgR3JpZCdzIGRlZmF1bHQgZnVuY3Rpb25hbGl0eS5cbiAgICovXG4gIHB1YmxpYyBvblByZXNzRXNjYXBlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmFtcykge1xuICAgICAgdGhpcy5wYXJhbXMuYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICAgICAgdGhpcy5wYXJhbXMuYXBpLnNldEZvY3VzZWRDZWxsKHRoaXMucGFyYW1zLnJvd0luZGV4LCB0aGlzLnBhcmFtcy5jb2x1bW4pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblByZXNzRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zICYmIHRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLnBhcmFtcy5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgICB0aGlzLiNpbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSkge1xuICAgICAgdGhpcy5wYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIj5cbiAgPGlucHV0XG4gICAgI3NreUNlbGxFZGl0b3JDdXJyZW5jeVxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3VycmVuY3lcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW3NreUF1dG9udW1lcmljXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXNcIlxuICAgIFtza3lBdXRvbnVtZXJpY0Zvcm1DaGFuZ2VzVW5mb3JtYXR0ZWRdPVwicGFyYW1zPy5ldmVudEtleT8ubGVuZ3RoID09PSAxXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwib25QcmVzc0VudGVyKClcIlxuICAgIChrZXl1cC5lc2NhcGUpPVwib25QcmVzc0VzY2FwZSgpXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19","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 { 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 {\n constructor() {\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 #calendarOpen;\n #params;\n #triggerType;\n #elementRef;\n #changeDetector;\n #themeSvc;\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 isPopup() {\n return true;\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.3.15\", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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 }], 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.3.15\", 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 }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUs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bmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9kYXRldGltZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXItcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9kYXRlcGlja2VyLXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lEYXRlcGlja2VyTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb2x1bW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBkYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pO1xuICBwdWJsaWMgcm93SGVpZ2h0V2l0aG91dEJvcmRlcnM6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZERhdGVwaWNrZXJQcm9wZXJ0aWVzID0ge307XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgZGF0ZXBpY2tlcklucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZXNvbHZlZERhdGVGb3JtYXQgPSAnJztcblxuICAjY2FsZW5kYXJPcGVuID0gZmFsc2U7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjdGhlbWVTdmMgPSBpbmplY3QoU2t5VGhlbWVTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy4jcGFyYW1zPy5lR3JpZENlbGxcbiAgICApIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgZGF0ZXBpY2tlciBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DYWxlbmRhck9wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jY2FsZW5kYXJPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICBwdWJsaWMgb25EYXRlRm9ybWF0Q2hhbmdlKGRhdGVGb3JtYXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVzb2x2ZWREYXRlRm9ybWF0ID0gZGF0ZUZvcm1hdDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIGVkaXRvciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgY2VsbCBlZGl0b3IgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ2RhdGUnKTtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLmV2ZW50S2V5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLiNwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyB8fCB7fTtcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMuI3BhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLiNwYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLmNvbHVtbldpZHRoID0gdGhpcy4jcGFyYW1zLmNvbHVtbi5nZXRBY3R1YWxXaWR0aCgpO1xuICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9IHRoaXMuY29sdW1uV2lkdGggLSAyO1xuICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSAodGhpcy4jcGFyYW1zLm5vZGUucm93SGVpZ2h0IGFzIG51bWJlcikgLSAzO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy4jcGFyYW1zLnJvd0luZGV4ICsgMTtcblxuICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZS5zdWJzY3JpYmUoKHRoZW1lU2V0dGluZ3MpID0+IHtcbiAgICAgIGlmICh0aGVtZVNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncy50aGVtZS5uYW1lID09PSAnbW9kZXJuJykge1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnMgPSB0aGlzLmNvbHVtbldpZHRoO1xuICAgICAgICB0aGlzLnJvd0hlaWdodFdpdGhvdXRCb3JkZXJzID0gdGhpcy4jcGFyYW1zPy5ub2RlPy5yb3dIZWlnaHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnMgPVxuICAgICAgICAgIHRoaXMuY29sdW1uV2lkdGggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHRoaXMuY29sdW1uV2lkdGggLSAyO1xuICAgICAgICB0aGlzLnJvd0hlaWdodFdpdGhvdXRCb3JkZXJzID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLnN1YnRyYWN0T3JaZXJvKFxuICAgICAgICAgIHRoaXMuI3BhcmFtcz8ubm9kZS5yb3dIZWlnaHQsXG4gICAgICAgICAgMyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1BvcHVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldFBvcHVwUG9zaXRpb24oKTogJ292ZXInIHwgJ3VuZGVyJyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICdvdmVyJztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0ZXBpY2tlcklucHV0RWwgPSB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudCBhc1xuICAgICAgICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChkYXRlcGlja2VySW5wdXRFbCkge1xuICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5mb2N1cygpO1xuXG4gICAgICAgIC8vIHByb2dyYW1tYXRpY2FsbHkgc2V0IHRoZSB2YWx1ZSBvZiBpbiB0aGUgaW5wdXQ7IGhvd2V2ZXIsIGRvIG5vdCBkbyB0aGlzIHZpYSB0aGUgZm9ybSBjb250cm9sIHNvIHRoYXQgdGhlIHZhbHVlIGlzIG5vdCBmb3JtYXR0ZWQgd2hlbiBlZGl0aW5nIHN0YXJ0cy5cbiAgICAgICAgLy8gV2F0Y2ggZm9yIHRoZSBmaXJzdCBibHVyIGFuZCBmaXJlIGEgJ2NoYW5nZScgZXZlbnQgYXMgcHJvZ3JhbW1hdGljIGNoYW5nZXMgd29uJ3QgcXVldWUgYSBjaGFuZ2UgZXZlbnQsIGJ1dCB3ZSBuZWVkIHRvIGRvIHRoaXMgc28gdGhhdCBmb3JtYXR0aW5nIGhhcHBlbnMgaWYgdGhlIHVzZXIgdGFicyB0byB0aGUgY2FsZW5kYXIgYnV0dG9uLlxuICAgICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgICBmcm9tRXZlbnQoZGF0ZXBpY2tlcklucHV0RWwsICdibHVyJylcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+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 if (!event.target?.matches('.ag-custom-component-popup *')) {\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.3.15\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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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R0FBRyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELDBCQUEwQixDQUN4QixNQUFpQztRQUVqQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUMxRCxPQUFPLGdDQUFnQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUNFLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDakIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztZQUNoRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOytHQTNLVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQyxpTUM1Qy9DLGsvR0EwRUEsK0VEckNJLGlCQUFpQiw0T0FDakIsV0FBVyxrU0FDWCxtQkFBbUIsK1VBQ25CLGVBQWUsaVhBQ2YsV0FBVzs7NEZBR0Ysa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7cUJBQ1o7O3NCQUtBLFdBQVc7dUJBQUMsZ0JBQWdCOztzQkFzQjVCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUxvb2t1cE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtblJlc2l6ZWRFdmVudCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMgfSBmcm9tICcuLi8uLi9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1sb29rdXAtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcbmltcG9ydCB7IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBTa3lJbnB1dEJveE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUxvb2t1cE1vZHVsZSxcbiAgICBTa3lJZE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpXG4gIHB1YmxpYyB3aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBza3lDb21wb25lbnRQcm9wZXJ0aWVzPzogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcztcbiAgcHVibGljIGlzQWxpdmUgPSBmYWxzZTtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgc2VsZWN0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHtcbiAgICAgIHZhbHVlOiBbXSxcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB9KSxcbiAgfSk7XG4gIHB1YmxpYyB1c2VBc3luY1NlYXJjaCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAjbG9va3VwT3BlbiA9IGZhbHNlO1xuICAjc2VsZWN0aW9uTW9kYWxPcGVuID0gZmFsc2U7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGwpPy5tYXRjaGVzKFxuICAgICAgICAnLmFnLWN1c3RvbS1jb21wb25lbnQtcG9wdXAgKicsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yTG9va3VwUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLiNwYXJhbXMudmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvb2t1cCB2YWx1ZSBtdXN0IGJlIGFuIGFycmF5YCk7XG4gICAgfVxuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKTtcbiAgICB0aGlzLmxhYmVsVGV4dCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hcmlhTGFiZWxsZWRCeVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbCB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmhlYWRlck5hbWUgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5oZWFkZXJUb29sdGlwIHx8XG4gICAgICAgIHBhcmFtcy5jb2xEZWYuZmllbGQgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5jb2xJZDtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jdXBkYXRlQ29tcG9uZW50UHJvcGVydGllcyh0aGlzLiNwYXJhbXMpO1xuICAgIHRoaXMudXNlQXN5bmNTZWFyY2ggPVxuICAgICAgdHlwZW9mIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hBc3luYyA9PT0gJ2Z1bmN0aW9uJztcbiAgICB0aGlzLmlzQWxpdmUgPSB0cnVlO1xuICAgIHRoaXMud2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy4jcGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NvbHVtblJlc2l6ZWQnLFxuICAgICAgKGV2ZW50OiBDb2x1bW5SZXNpemVkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKSA9PT0gdGhpcy4jcGFyYW1zPy5jb2x1bW4uZ2V0Q29sSWQoKSkge1xuICAgICAgICAgIHRoaXMud2lkdGggPSBldmVudC5jb2x1bW4/LmdldEFjdHVhbFdpZHRoKCk7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NhbmNlbEFmdGVyRW5kKCk6IGJvb2xlYW4ge1xuICAgIC8vIFNodXQgZG93biBjb21wb25lbnRzIHRvIGNvbW1pdCB2YWx1ZXMgYmVmb3JlIGZpbmFsIHZhbHVlIHN5bmNzIHRvIGdyaWQuXG4gICAgdGhpcy5pc0FsaXZlID0gZmFsc2U7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldEd1aSgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpPy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc1BvcHVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldFBvcHVwUG9zaXRpb24oKTogJ292ZXInIHwgJ3VuZGVyJyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICdvdmVyJztcbiAgfVxuXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgbG9va3VwSW5wdXQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQgPVxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1sb29rdXAtaW5wdXQnKTtcbiAgICAgIGxvb2t1cElucHV0LmZvY3VzKCk7XG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgbG9va3VwSW5wdXQuc2V0UmFuZ2VUZXh0KGAke3RoaXMuI3BhcmFtcz8uZXZlbnRLZXl9YCk7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgIGxvb2t1cElucHV0LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICk7XG4gICAgICAgIGxvb2t1cElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWRcbiAgICAgICkge1xuICAgICAgICAvLyBFbnN1cmUgdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LlxuICAgICAgICBsb29rdXBJbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgbG9va3VwSW5wdXQudmFsdWUubGVuZ3RoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uTG9va3VwT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNsb29rdXBPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jc2VsZWN0aW9uTW9kYWxPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICAjdXBkYXRlQ29tcG9uZW50UHJvcGVydGllcyhcbiAgICBwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMsXG4gICk6IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMge1xuICAgIGNvbnN0IHNreUxvb2t1cFByb3BlcnRpZXMgPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcztcbiAgICByZXR1cm4gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMoc2t5TG9va3VwUHJvcGVydGllcyk7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2xvb2t1cE9wZW4gJiZcbiAgICAgICF0aGlzLiNzZWxlY3Rpb25Nb2RhbE9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpXG4gICAgKSB7XG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChpc0FsaXZlICYmIHVzZUFzeW5jU2VhcmNoKSB7XG4gIDxza3ktaW5wdXQtYm94XG4gICAgW2Rpc2FibGVkXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkXCJcbiAgICBbZm9ybUdyb3VwXT1cImVkaXRvckZvcm1cIlxuICA+XG4gICAgPHNreS1sb29rdXBcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGlvblwiXG4gICAgICBbYXJpYUxhYmVsbGVkQnldPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbGxlZEJ5ID8/IHNjcmVlblJlYWRlckxhYmVsLmlkXG4gICAgICBcIlxuICAgICAgW2F1dG9jb21wbGV0ZUF0dHJpYnV0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hdXRvY29tcGxldGVBdHRyaWJ1dGVcIlxuICAgICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGF0YVwiXG4gICAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRlYm91bmNlVGltZVwiXG4gICAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgICBbZW5hYmxlU2hvd01vcmVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZW5hYmxlU2hvd01vcmVcIlxuICAgICAgW2lkUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uaWRQcm9wZXJ0eVwiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnBsYWNlaG9sZGVyVGV4dFwiXG4gICAgICBbcHJvcGVydGllc1RvU2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgICBbc2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFwiXG4gICAgICBbc2VhcmNoRmlsdGVyc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hGaWx0ZXJzXCJcbiAgICAgIFtzZWFyY2hSZXN1bHRzTGltaXRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICAgIFtzZWFyY2hSZXN1bHRUZW1wbGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgICBbc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXT1cIlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNcbiAgICAgIFwiXG4gICAgICBbc2VsZWN0TW9kZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWxlY3RNb2RlXCJcbiAgICAgIFtzaG93QWRkQnV0dG9uXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNob3dBZGRCdXR0b25cIlxuICAgICAgW3Nob3dNb3JlQ29uZmlnXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNob3dNb3JlQ29uZmlnXCJcbiAgICAgIFt3cmFwcGVyQ2xhc3NdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ud3JhcHBlckNsYXNzXCJcbiAgICAgIChzZWFyY2hBc3luYyk9XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hBc3luYz8uKCRldmVudClcIlxuICAgICAgKGFkZENsaWNrKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFkZENsaWNrPy4oJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvbkxvb2t1cE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKT1cIm9uU2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gIDwvc2t5LWlucHV0LWJveD5cbn1cbkBpZiAoaXNBbGl2ZSAmJiAhdXNlQXN5bmNTZWFyY2gpIHtcbiAgPHNreS1pbnB1dC1ib3hcbiAgICBbZGlzYWJsZWRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGlzYWJsZWRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gID5cbiAgICA8c2t5LWxvb2t1cFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsbGVkQnkgPz8gc2NyZWVuUmVhZGVyTGFiZWwuaWRcbiAgICAgIFwiXG4gICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICBbZGF0YV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kYXRhXCJcbiAgICAgIFtkZWJvdW5jZVRpbWVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVib3VuY2VUaW1lXCJcbiAgICAgIFtkZXNjcmlwdG9yUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICAgIFtlbmFibGVTaG93TW9yZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5lbmFibGVTaG93TW9yZVwiXG4gICAgICBbaWRQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5pZFByb3BlcnR5XCJcbiAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoXCJcbiAgICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEZpbHRlcnNcIlxuICAgICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgICAgXCJcbiAgICAgIFtzZWxlY3RNb2RlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlbGVjdE1vZGVcIlxuICAgICAgW3Nob3dBZGRCdXR0b25dPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd0FkZEJ1dHRvblwiXG4gICAgICBbc2hvd01vcmVDb25maWddPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd01vcmVDb25maWdcIlxuICAgICAgW3dyYXBwZXJDbGFzc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy53cmFwcGVyQ2xhc3NcIlxuICAgICAgKGFkZENsaWNrKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFkZENsaWNrPy4oJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvbkxvb2t1cE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKT1cIm9uU2VsZWN0aW9uTW9kYWxPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gIDwvc2t5LWlucHV0LWJveD5cbn1cbjxkaXYgI3NjcmVlblJlYWRlckxhYmVsPVwic2t5SWRcIiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBza3lJZD5cbiAge3sgbGFiZWxUZXh0IH19XG48L2Rpdj5cbiJdfQ==","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 else if (event.target === this.input?.nativeElement) {\n this.#stopEditingOnBlur();\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 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 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 #stopEditingOnBlur() {\n if (this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVlTLGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixFQUFFO1NBQ2pDLENBQUMsQ0FBQztLQWtHSjtJQXhGUSxVQUFVLENBQUMsS0FBaUI7UUFDakMsSUFDRSxLQUFLLENBQUMsYUFBYTtZQUNuQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUks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QUMsRUFBRSxLQUFLLENBQUM7UUFDakQsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOytHQXhHVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQyw4T0FhSCxVQUFVLDZCQzdDdEQsc2JBZUEsMkhEZVksV0FBVywwa0NBQUUsbUJBQW1CLCtVQUFFLGFBQWE7OzRGQUU5QyxrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQzs7c0JBZXpELFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztzQkFHckQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IElDZWxsRWRpdG9yUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JOdW1iZXJQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1udW1iZXItcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItbnVtYmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIGNvbHVtbkhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgbnVtYmVyOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pO1xuICBwdWJsaWMgcm93SGVpZ2h0V2l0aG91dEJvcmRlcnM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBtaW46IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yTnVtYmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy4jcGFyYW1zPy5lR3JpZENlbGxcbiAgICApIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgaW5wdXQuXG4gICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmVmcmVzaENlbGxzIEFQSSBpcyBjYWxsZWQuXG4gICAgICB0aGlzLmFmdGVyR3VpQXR0YWNoZWQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICAjcGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JOdW1iZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ251bWJlcicpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuI3BhcmFtcz8uZXZlbnRLZXkgYXMgc3RyaW5nKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubWF4ID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/Lm1heDtcbiAgICB0aGlzLm1pbiA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5taW47XG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLiNwYXJhbXMuYXBpLmdldERpc3BsYXlOYW1lRm9yQ29sdW1uKFxuICAgICAgdGhpcy4jcGFyYW1zLmNvbHVtbixcbiAgICAgICdoZWFkZXInLFxuICAgICk7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuICAgIHRoaXMuY29sdW1uV2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9ICh0aGlzLiNwYXJhbXMubm9kZS5yb3dIZWlnaHQgYXMgbnVtYmVyKSAtIDQ7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxFZGl0b3JOdW1iZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmFsID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnbnVtYmVyJyk/LnZhbHVlO1xuICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykpIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8aW5wdXRcbiAgICAjc2t5Q2VsbEVkaXRvck51bWJlclxuICAgIGZvcm1Db250cm9sTmFtZT1cIm51bWJlclwiXG4gICAgdHlwZT1cIm51bWJlclwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbldpZHRoXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJvd0hlaWdodFdpdGhvdXRCb3JkZXJzXCJcbiAgICBbbWF4XT1cIm1heCA/PyBudWxsXCJcbiAgICBbbWluXT1cIm1pbiA/PyBudWxsXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19","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 else if (event.target === this.input?.nativeElement) {\n this.#stopEditingOnBlur();\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 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 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 #stopEditingOnBlur() {\n if (this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellEditorTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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.3.15\", 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{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-comp-grid-cell-space-inset-left) - 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0NBQWdDO0lBUDdDO1FBV1MsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0tBMkZKO0lBbkZRLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8s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QUFFLG1CQUFtQiwrVUFBRSxhQUFhOzs0RkFFOUMsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7O3NCQVl6RCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7c0JBR25ELFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yVGV4dFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXRleHQtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItdGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgdGV4dDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4bGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvclRleHQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBpbnB1dC5cbiAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSByZWZyZXNoQ2VsbHMgQVBJIGlzIGNhbGxlZC5cbiAgICAgIHRoaXMuYWZ0ZXJHdWlBdHRhY2hlZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gICNwYXJhbXM6IElDZWxsRWRpdG9yUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIGVkaXRvciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgY2VsbCBlZGl0b3IgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvclRleHRQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3RleHQnKTtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLmV2ZW50S2V5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubWF4bGVuZ3RoID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/Lm1heGxlbmd0aDtcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMuI3BhcmFtcy5hcGkuZ2V0RGlzcGxheU5hbWVGb3JDb2x1bW4oXG4gICAgICB0aGlzLiNwYXJhbXMuY29sdW1uLFxuICAgICAgJ2hlYWRlcicsXG4gICAgKTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMuI3BhcmFtcy5yb3dJbmRleCArIDE7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxFZGl0b3JUZXh0UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIC8vIEFHIEdyaWQgc2V0cyBmb2N1cyB0byB0aGUgY2VsbCB2aWEgc2V0VGltZW91dCwgYW5kIHRoaXMgcXVldWVzIHRoZSBpbnB1dCB0byBmb2N1cyBhZnRlciB0aGF0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckZvcm0uZ2V0KCd0ZXh0Jyk/LnZhbHVlIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNzdG9wRWRpdGluZ09uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSkge1xuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuc3RvcEVkaXRpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCI+XG4gIDxpbnB1dFxuICAgICNza3lDZWxsRWRpdG9yVGV4dFxuICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX3RleHRfYXJpYV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgIFwiXG4gICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGggPz8gbnVsbFwiXG4gIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==","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, ...(ngDevMode ? [{ debugName: \"showValidatorMessage\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridCellValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSS9COztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQW1DUyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUk1Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxnRUFBQyxDQUFDO1FBRS9DLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsb0JBQWUsR0FBRyxLQUFL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RUFBRSxzQkFBc0IsRUFBRSxTQUFTO1lBQ2pFLFVBQVUsRUFDVixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUN2QyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFFLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0ExR1Usc0NBQXNDO21HQUF0QyxzQ0FBc0MsNEhDN0JuRCw4ckJBNEJBLDJiRERZLGdCQUFnQixtSkFBRSxnQkFBZ0IsK1hBQUUsd0JBQXdCOzs0RkFFM0Qsc0NBQXNDO2tCQVBsRCxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDOztzQkFHdEUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVN0YXR1c0luZGljYXRvck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVBvcG92ZXJNZXNzYWdlLCBTa3lQb3BvdmVyTWVzc2FnZVR5cGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgU2t5UG9wb3Zlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5cbmltcG9ydCB7IEFnQ29sdW1uLCBDZWxsRm9jdXNlZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwJyxcbiAgc3R5bGVVcmxzOiBbJ2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJ2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgU2t5UG9wb3Zlck1vZHVsZSwgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmFtcyh2YWx1ZTogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZT8uYXBpICYmICF0aGlzLiNsaXN0ZW5lcnNBZGRlZCkge1xuICAgICAgdGhpcy4jbGlzdGVuZXJzQWRkZWQgPSB0cnVlO1xuICAgICAgdmFsdWUuYXBpLmFkZEV2ZW50TGlzdGVuZXIoJ2NlbGxGb2N1c2VkJywgdGhpcy4jY2VsbEZvY3VzSGFuZGxlcik7XG4gICAgICB2YWx1ZS5hcGkuYWRkRXZlbnRMaXN0ZW5lcignY2VsbEVkaXRpbmdTdGFydGVkJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgICAgdmFsdWUuZUdyaWRDZWxsPy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuI2tleXVwSGFuZGxlcik7XG4gICAgICB2YWx1ZS5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLiNmb2N1c0hhbmRsZXIpO1xuICAgICAgdmFsdWUuZUdyaWRDZWxsPy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWU/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvck1lc3NhZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZShcbiAgICAgICAgdmFsdWUudmFsdWUsXG4gICAgICAgIHZhbHVlLmRhdGEsXG4gICAgICAgIHZhbHVlPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3JNZXNzYWdlO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1ZhbGlkYXRvck1lc3NhZ2Uuc2V0KHRoaXMuI3Nob3dWYWxpZGF0b3JNZXNzYWdlKCkpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHBvcG92ZXJNZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5UG9wb3Zlck1lc3NhZ2U+KCk7XG4gIHB1YmxpYyB2YWxpZGF0b3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjZWxsUmVuZGVyZXJQYXJhbXM6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1ZhbGlkYXRvck1lc3NhZ2UgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNsaXN0ZW5lcnNBZGRlZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNrZXl1cEhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICBbJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJ10uaW5jbHVkZXMoZXZlbnQua2V5KVxuICAgICkge1xuICAgICAgdGhpcy5zaG93UG9wb3ZlcigpO1xuICAgIH1cbiAgfTtcbiAgcmVhZG9ubHkgI2ZvY3VzSGFuZGxlciA9ICgpOiB2b2lkID0+IHRoaXMuc2hvd1BvcG92ZXIoKTtcbiAgcmVhZG9ubHkgI2NlbGxGb2N1c0hhbmRsZXIgPSAoZXZlbnRQYXJhbXM6IENlbGxGb2N1c2VkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAvLyBXZSB3YW50IHRvIGNsb3NlIGFueSBwb3BvdmVycyB0aGF0IGFyZSBvcGVuZWQgd2hlbiBvdGhlciBjZWxscyBhcmUgZm9jdXNlZCwgYnV0IG9wZW4gYSBwb3BvdmVyIGlmIHRoZSBjdXJyZW50IGNlbGwgaXMgZm9jdXNlZC5cbiAgICBpZiAoXG4gICAgICAoZXZlbnRQYXJhbXMuY29sdW1uIGFzIEFnQ29sdW1uKS5nZXRDb2xJZCgpID09PVxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8uY29sdW1uPy5nZXRDb2xJZCgpICYmXG4gICAgICBldmVudFBhcmFtcy5yb3dJbmRleCA9PT0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM/Lm5vZGU/LnJvd0luZGV4XG4gICAgKSB7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZVBvcG92ZXIoKTtcbiAgICB9XG4gIH07XG4gIHJlYWRvbmx5ICNibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IHRoaXMuaGlkZVBvcG92ZXIoKTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM7XG4gICAgaWYgKHBhcmFtcz8uYXBpICYmICghcGFyYW1zLmFwaS5pc0Rlc3Ryb3llZCB8fCAhcGFyYW1zLmFwaS5pc0Rlc3Ryb3llZCgpKSkge1xuICAgICAgcGFyYW1zLmFwaS5yZW1vdmVFdmVudExpc3RlbmVyKCdjZWxsRm9jdXNlZCcsIHRoaXMuI2NlbGxGb2N1c0hhbmRsZXIpO1xuICAgICAgcGFyYW1zLmFwaS5yZW1vdmVFdmVudExpc3RlbmVyKCdjZWxsRWRpdGluZ1N0YXJ0ZWQnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgfVxuICAgIGlmIChwYXJhbXM/LmVHcmlkQ2VsbCkge1xuICAgICAgcGFyYW1zLmVHcmlkQ2VsbC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuI2tleXVwSGFuZGxlcik7XG4gICAgICBwYXJhbXMuZUdyaWRDZWxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLiNmb2N1c0hhbmRsZXIpO1xuICAgICAgcGFyYW1zLmVHcmlkQ2VsbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy4jYmx1ckhhbmRsZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoaWRlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXJNZXNzYWdlU3RyZWFtLm5leHQoeyB0eXBlOiBTa3lQb3BvdmVyTWVzc2FnZVR5cGUuQ2xvc2UgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1BvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3Nob3VsZFNob3dQb3BvdmVyKCkpIHtcbiAgICAgIHRoaXMucG9wb3Zlck1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZS5PcGVuIH0pO1xuICAgIH1cbiAgfVxuXG4gICNzaG93VmFsaWRhdG9yTWVzc2FnZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudmFsaWRhdG9yTWVzc2FnZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvciA9PT1cbiAgICAgICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHJldHVybiAhdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLnZhbHVlLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5kYXRhLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICNzaG91bGRTaG93UG9wb3ZlcigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBlZGl0aW5nQ2VsbHMgPSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8uYXBpLmdldEVkaXRpbmdDZWxscygpID8/IFtdO1xuICAgIHJldHVybiBlZGl0aW5nQ2VsbHMubGVuZ3RoID09PSAwO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2Rpc3BsYXlWYWx1ZT5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKSkge1xuICA8ZGl2XG4gICAgc2t5UG9wb3ZlclRyaWdnZXI9XCJtb3VzZWVudGVyXCJcbiAgICBjbGFzcz1cInNreS12YWxpZGF0b3ItY2VsbFwiXG4gICAgW3NreVBvcG92ZXJdPVwidmFsaWRhdG9yUG9wb3ZlclwiXG4gICAgW3NreVBvcG92ZXJNZXNzYWdlU3RyZWFtXT1cInBvcG92ZXJNZXNzYWdlU3RyZWFtXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaXNwbGF5VmFsdWVcIiAvPlxuICAgIDxza3ktc3RhdHVzLWluZGljYXRvclxuICAgICAgZGVzY3JpcHRpb25UeXBlPVwibm9uZVwiXG4gICAgICBpbmRpY2F0b3JUeXBlPVwiZGFuZ2VyXCJcbiAgICAgIGNsYXNzPVwic2t5LXB1bGwtcmlnaHRcIlxuICAgIC8+XG4gIDwvZGl2PlxuICA8c2t5LXBvcG92ZXJcbiAgICAjdmFsaWRhdG9yUG9wb3ZlclxuICAgIGRhdGEtc2t5LWlkPVwidmFsaWRhdG9yUG9wb3ZlclwiXG4gICAgcG9wb3ZlclR5cGU9XCJkYW5nZXJcIlxuICA+XG4gICAge3sgdmFsaWRhdG9yTWVzc2FnZSB9fVxuICA8L3NreS1wb3BvdmVyPlxufSBAZWxzZSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaXNwbGF5VmFsdWVcIiAvPlxufVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTy9DOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQWlCUywyQkFBc0IsR0FDSSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO0tBeUIvQztJQWxDQyxJQUNXLE1BQU0sQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFTRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFxQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE1BQXFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7K0dBcENVLHNDQUFzQzttR0FBdEMsc0NBQXNDLDRIQ25CbkQsNEZBR0EseUREY1ksZ0JBQWdCOzs0RkFFZixzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7O3NCQUsxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU51bWVyaWNPcHRpb25zIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TnVtZXJpY01vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmFsaWRhdG9yLXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5TnVtZXJpY01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wXG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcykge1xuICAgIHRoaXMuYWdJbml0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcm93SGVpZ2h0V2l0aG91dEJvcmRlcnM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreU51bWVyaWNPcHRpb25zICZcbiAgICBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzID0ge307XG4gIHB1YmxpYyBudW1lcmljT3B0aW9uczogU2t5TnVtZXJpY09wdGlvbnMgPSB7fTtcbiAgcHVibGljIHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgQUcgR3JpZCBvbmNlIGFmdGVyIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgcmVuZGVyZXIgd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVQcm9wZXJ0aWVzKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogcmVmcmVzaCBpcyBjYWxsZWQgYnkgQUcgR3JpZCB0byB1cGRhdGUgdGhlIGNlbGwgd2l0aG91dCBkZXN0cm95aW5nIGFuZCByZWNyZWF0aW5nIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAjdXBkYXRlUHJvcGVydGllcyhwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy52YWx1ZTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyB8fCB7fTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMuZm9ybWF0ID0gJ2N1cnJlbmN5JztcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMubWluRGlnaXRzID0gMjtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMudHJ1bmNhdGUgPSBmYWxzZTtcbiAgfVxufVxuIiwie3tcbiAgdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6ICh2YWx1ZSB8IHNreU51bWVyaWM6IHNreUNvbXBvbmVudFByb3BlcnRpZXMpXG59fVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererCurrencyValidatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUd2SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFNUY7O0dBRUc7QUFlSCxNQUFNLE9BQU8sK0NBQStDO0lBRzFELElBQ1csVUFBVSxDQUFDLEtBQW9DO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQXFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELFNBQVMsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxPQUFPLENBQUMsTUFBcUM7UUFDbEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWpDVSwrQ0FBK0M7bUdBQS9DLCtDQUErQyw4SUMvQjVELDZVQVNBLG1GRGtCSSxzQ0FBc0MsbUdBQ3RDLHNDQUFzQzs7NEZBRzdCLCtDQUErQztrQkFkM0QsU0FBUzsrQkFDRSw4Q0FBOEMsbUJBT3ZDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asc0NBQXNDO3dCQUN0QyxzQ0FBc0M7cUJBQ3ZDOztzQkFLQSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS1wYXJhbXMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gIHN0eWxlczogYFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGVVcmw6ICdjZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wXG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1ldGVycyh2YWx1ZTogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpIHtcbiAgICB0aGlzLmFnSW5pdCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgcmVuZGVyZXIgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIHJlbmRlcmVyIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIHJlbmRlcmVyIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgaXNOdW1lcmljKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiQGlmIChjZWxsUmVuZGVyZXJQYXJhbXMpIHtcbiAgPHNreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAgW3BhcmFtc109XCJjZWxsUmVuZGVyZXJQYXJhbXNcIj5cbiAgICBAaWYgKGlzTnVtZXJpYyhjZWxsUmVuZGVyZXJQYXJhbXMudmFsdWUpKSB7XG4gICAgICA8c2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyBjZWxsUmVuZGVyZXJQYXJhbXMudmFsdWUgfX1cbiAgICB9XG4gIDwvc2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcD5cbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererLookupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTTVDOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9DQUFvQztJQU0vQyxlQUFlLENBQW9CO0lBRW5DLFlBQVksY0FBaUM7UUFMbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBS3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBckJVLG9DQUFvQzttR0FBcEMsb0NBQW9DLG9GQ3JCakQsZ0lBS0EsMkhEY1ksYUFBYTs7NEZBRVosb0NBQW9DO2tCQVBoRCxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItbG9va3VwLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jZWxsLXJlbmRlcmVyLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcFxue1xuICBwcm90ZWN0ZWQgdmFsdWUgPSAnJztcbiAgcHJvdGVjdGVkIHN1bW1hcnlDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuc3VtbWFyeUNvdW50ID0gcGFyYW1zLnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICB0aGlzLnZhbHVlID0gYCR7cGFyYW1zLnZhbHVlRm9ybWF0dGVkfWA7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIkBpZiAoc3VtbWFyeUNvdW50ID4gNSkge1xuICB7eyAnc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5JyB8IHNreUxpYlJlc291cmNlczogc3VtbWFyeUNvdW50IH19XG59IEBlbHNlIHtcbiAge3sgdmFsdWUgfX1cbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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-comp-grid-cell-space-inset-top))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyCheckboxModule }, { kind: \"component\", type: i1.λ3, selector: \"sky-checkbox\", inputs: [\"label\", \"labelledBy\", \"id\", \"disabled\", \"tabindex\", \"name\", \"helpPopoverContent\", \"helpPopoverTitle\", \"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.3.15\", 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-comp-grid-cell-space-inset-top))}\\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, isSignal } 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.template\n : undefined;\n this.state = {\n hasTemplate: isSignal(template) ? 'signal' : 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.3.15\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyAgGridCellRendererTemplateComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-template\", ngImport: i0, template: `@if (state.hasTemplate === 'signal') {\n <ng-container\n *ngTemplateOutlet=\"state.template(); context: state.context\"\n />\n } @else if (state.hasTemplate) {\n <ng-container\n *ngTemplateOutlet=\"state.template; context: state.context\"\n />\n }`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'sky-ag-grid-cell-renderer-template',\n template: `@if (state.hasTemplate === 'signal') {\n <ng-container\n *ngTemplateOutlet=\"state.template(); context: state.context\"\n />\n } @else if (state.hasTemplate) {\n <ng-container\n *ngTemplateOutlet=\"state.template; context: state.context\"\n />\n }`,\n imports: [NgTemplateOutlet],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFxQ3pFLE1BQU0sT0FBTyxzQ0FBc0M7SUFibkQ7UUFnQlksVUFBSyxHQUFjO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMvQyxDQUFDO0tBMkJIO0lBekJRLE1BQU0sQ0FBQyxNQUEyQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0I7WUFDakMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBR0UsV0FBVztZQUN6QixDQUFDLENBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxRQUVrQjtZQUN2RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUN4RCxRQUFRO1lBQ1IsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7U0FDdEMsQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQTJCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWpDVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyw4RkFYdkM7Ozs7Ozs7O01BUU4sNERBQ00sZ0JBQWdCOzs0RkFFZixzQ0FBc0M7a0JBYmxELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsUUFBUSxFQUFFOzs7Ozs7OztNQVFOO29CQUNKLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBTaWduYWwsIFRlbXBsYXRlUmVmLCBpc1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlLWNvbnRleHQudHlwZSc7XG5cbnR5cGUgQ2VsbFN0YXRlID1cbiAgfCB7XG4gICAgICBoYXNUZW1wbGF0ZTogdHJ1ZTtcbiAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgICAgY29udGV4dDogQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICBoYXNUZW1wbGF0ZTogJ3NpZ25hbCc7XG4gICAgICB0ZW1wbGF0ZTogU2lnbmFsPFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD4+O1xuICAgICAgY29udGV4dDogQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICBoYXNUZW1wbGF0ZTogZmFsc2U7XG4gICAgICB0ZW1wbGF0ZTogdW5kZWZpbmVkO1xuICAgICAgY29udGV4dD86IHVua25vd247XG4gICAgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlOiBgQGlmIChzdGF0ZS5oYXNUZW1wbGF0ZSA9PT0gJ3NpZ25hbCcpIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0ZS50ZW1wbGF0ZSgpOyBjb250ZXh0OiBzdGF0ZS5jb250ZXh0XCJcbiAgICAgIC8+XG4gICAgfSBAZWxzZSBpZiAoc3RhdGUuaGFzVGVtcGxhdGUpIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0ZS50ZW1wbGF0ZTsgY29udGV4dDogc3RhdGUuY29udGV4dFwiXG4gICAgICAvPlxuICAgIH1gLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlclRlbXBsYXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wXG57XG4gIHByb3RlY3RlZCBzdGF0ZTogQ2VsbFN0YXRlID0ge1xuICAgIGhhc1RlbXBsYXRlOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogdW5kZWZpbmVkLFxuICAgIGNvbnRleHQ6IHsgdmFsdWU6IHVuZGVmaW5lZCwgZGF0YTogdW5kZWZpbmVkIH0sXG4gIH07XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNUZW1wbGF0ZSA9ICEhKFxuICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zICYmXG4gICAgICAndGVtcGxhdGUnIGluIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zICYmXG4gICAgICBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy50ZW1wbGF0ZVxuICAgICk7XG4gICAgY29uc3QgdGVtcGxhdGU6XG4gICAgICB8IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD5cbiAgICAgIHwgU2lnbmFsPFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD4+XG4gICAgICB8IHVuZGVmaW5lZCA9IGhhc1RlbXBsYXRlXG4gICAgICA/IChwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMudGVtcGxhdGUgYXNcbiAgICAgICAgICB8IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD5cbiAgICAgICAgICB8IFNpZ25hbDxUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+PilcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBoYXNUZW1wbGF0ZTogaXNTaWduYWwodGVtcGxhdGUpID8gJ3NpZ25hbCcgOiBoYXNUZW1wbGF0ZSxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgY29udGV4dDogeyB2YWx1ZTogcGFyYW1zLnZhbHVlLCByb3c6IHBhcmFtcy5kYXRhIH0sXG4gICAgfSBhcyBDZWxsU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFHdkg7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOENBQThDO0lBTjNEO1FBaUJZLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFDdEQ7SUEvQ0MsSUFDVyxNQUFNLENBQUMsS0FBcUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBT1EsZUFBZSxDQUE2QjtJQUNyRCxrQkFBa0IsQ0FBMkI7SUFFdEMsV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXNDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLElBQ0UsT0FBTyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsdUJBQXVCO1lBQzdELFVBQVUsRUFDVixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDekIsTUFBTSxDQUFDLHNCQUFzQjtpQkFDMUIsdUJBQXVCLENBQ3RCLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FDdEI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBc0M7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBakRVLDhDQUE4QzttR0FBOUMsOENBQThDLHFJQ3pCM0QsZ0pBR0EsNENEb0JZLHNDQUFzQyw4RkFBRSxTQUFTOzs0RkFFaEQsOENBQThDO2tCQU4xRCxTQUFTOytCQUNFLDZDQUE2QyxtQkFFdEMsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHNDQUFzQyxFQUFFLFNBQVMsQ0FBQzs7c0JBSzNELEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsIEFzeW5jUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmFtcyh2YWx1ZTogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKSB7XG4gICAgdGhpcy5hZ0luaXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNlbGxSZW5kZXJlclBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgdmFsdWU6IHVua25vd247XG5cbiAgcHJvdGVjdGVkIHZhbHVlT2JzZXJ2YWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICN2YWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWx1ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsdWVSZXNvdXJjZU9ic2VydmFibGUgPT09XG4gICAgICAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICB0aGlzLiN2YWx1ZVN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgLnZhbHVlUmVzb3VyY2VPYnNlcnZhYmxlKFxuICAgICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgICBwYXJhbXMubm9kZT8ucm93SW5kZXgsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWx1ZU9ic2VydmFibGUubmV4dChyZXN1bHQpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZU9ic2VydmFibGUubmV4dChwYXJhbXMudmFsdWVGb3JtYXR0ZWQgPz8gcGFyYW1zLnZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8c2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiPlxuICB7eyB2YWx1ZU9ic2VydmFibGUgfCBhc3luYyB9fVxuPC9za3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwPlxuIl19","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.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWdyb3VwLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItZ3JvdXAtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjttSEFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW5Hcm91cCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuLyoqXG4gKiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBjb2x1bW4gZ3JvdXAgaGVhZGVyLCBjcmVhdGUgYSBjb21wb25lbnQgY29udGFpbmluZ1xuICogW2Bza3ktaGVscC1pbmxpbmVgXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpLFxuICogYW5kIGluamVjdCBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gdG8gYWNjZXNzIHRoZSBjb2x1bW4gZ3JvdXBcbiAqIGluZm9ybWF0aW9uLCBzdWNoIGFzIGRpc3BsYXkgbmFtZS5cbiAqIEFkZCB0aGUgY29tcG9uZW50IHRvIHRoZSBgaGVhZGVyR3JvdXBDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGdyb3VwIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1ncm91cHMvKS5cbiAqIEBzZWUgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyB7XG4gIC8qKlxuICAgKiBbQ29sdW1uIGdyb3VwIGluZm9ybWF0aW9uIGZyb20gQUcgR3JpZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLW9iamVjdC1ncm91cC8pLlxuICAgKi9cbiAgcHVibGljIGNvbHVtbkdyb3VwOiBDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridHeaderGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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{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: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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{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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LGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQzs7c0JBS2pFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IElIZWFkZXJHcm91cEFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtbkdyb3VwT3BlbmVkRXZlbnQsIFByb3ZpZGVkQ29sdW1uR3JvdXAgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFN1YnNjcmlwdGlvbixcbiAgZnJvbUV2ZW50LFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gfSBmcm9tICcuLi90eXBlcy9oZWFkZXItZ3JvdXAtaW5mbyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1ncm91cC1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktaGVhZGVyLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1NreVRoZW1lTW9kdWxlLCBTa3lJY29uTW9kdWxlLCBBc3luY1BpcGUsIFNreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElIZWFkZXJHcm91cEFuZ3VsYXJDb21wLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgQFZpZXdDaGlsZCgnaW5saW5lSGVscENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBpbmxpbmVIZWxwQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBwYXJhbXM6IFNreUFnR3JpZEhlYWRlckdyb3VwUGFyYW1zIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgaXNFeHBhbmRhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICNjb2x1bW5Hcm91cDogUHJvdmlkZWRDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgI2lzRXhwYW5kYWJsZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgI2lzRXhwYW5kZWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAjdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNhZ0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0V4cGFuZGFibGUkID0gdGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmlzRXhwYW5kZWQkID0gdGhpcy4jaXNFeHBhbmRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3ZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuI2FnSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuI2NvbHVtbkdyb3VwID0gcGFyYW1zLmNvbHVtbkdyb3VwLmdldFByb3ZpZGVkQ29sdW1uR3JvdXAoKTtcbiAgICB0aGlzLiNpc0V4cGFuZGFibGVTdWJqZWN0Lm5leHQodGhpcy4jY29sdW1uR3JvdXAuaXNFeHBhbmRhYmxlKCkpO1xuICAgIGlmICh0aGlzLiNpc0V4cGFuZGFibGVTdWJqZWN0LmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnQ8Q29sdW1uR3JvdXBPcGVuZWRFdmVudD4ocGFyYW1zLmFwaSwgJ2NvbHVtbkdyb3VwT3BlbmVkJylcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuI2NvbHVtbkdyb3VwICYmXG4gICAgICAgICAgICAgIGV2ZW50LmNvbHVtbkdyb3Vwcy5pbmNsdWRlcyh0aGlzLiNjb2x1bW5Hcm91cClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLiNpc0V4cGFuZGVkU3ViamVjdC5uZXh0KHRoaXMuI2NvbHVtbkdyb3VwLmlzRXhwYW5kZWQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLiN1cGRhdGVJbmxpbmVIZWxwKCk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RXhwYW5kZWQoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXM/LnNldEV4cGFuZGVkKCRldmVudCk7XG4gIH1cblxuICAjdXBkYXRlSW5saW5lSGVscCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3ZpZXdJbml0aWFsaXplZCB8fCAhdGhpcy4jYWdJbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbEdyb3VwRGVmID0gdGhpcy5wYXJhbXM/LmNvbHVtbkdyb3VwPy5nZXRDb2xHcm91cERlZigpO1xuICAgIGNvbnN0IGlubGluZUhlbHBDb21wb25lbnQgPVxuICAgICAgY29sR3JvdXBEZWY/LmhlYWRlckdyb3VwQ29tcG9uZW50UGFyYW1zPy5pbmxpbmVIZWxwQ29tcG9uZW50O1xuXG4gICAgaWYgKGlubGluZUhlbHBDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGhlYWRlckdyb3VwSW5mbyA9IG5ldyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8oKTtcbiAgICAgIGhlYWRlckdyb3VwSW5mby5jb2x1bW5Hcm91cCA9IHRoaXMucGFyYW1zPy5jb2x1bW5Hcm91cDtcbiAgICAgIGhlYWRlckdyb3VwSW5mby5jb250ZXh0ID0gdGhpcy5wYXJhbXM/LmNvbnRleHQ7XG4gICAgICBoZWFkZXJHcm91cEluZm8uZGlzcGxheU5hbWUgPSB0aGlzLnBhcmFtcz8uZGlzcGxheU5hbWU7XG5cbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChpbmxpbmVIZWxwQ29tcG9uZW50LCB7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBoZWFkZXJHcm91cEluZm8sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy4jZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgcmVmZXJlbmNlRWw6IHRoaXMuaW5saW5lSGVscENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50Qm90dG9tLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKHBhcmFtcz8uZGlzcGxheU5hbWUpIHtcbiAgPHNwYW5cbiAgICBjbGFzcz1cImhlYWRlci1ncm91cC10ZXh0XCJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktZm9udC1oZWFkaW5nLTQnOiAnbW9kZXJuJyB9XCJcbiAgICA+e3sgcGFyYW1zPy5kaXNwbGF5TmFtZSB9fTwvc3BhblxuICA+XG59XG5AaWYgKGlzRXhwYW5kYWJsZSQgfCBhc3luYykge1xuICBAaWYgKGlzRXhwYW5kZWQkIHwgYXN5bmMpIHtcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBwYXJhbXM/LmRpc3BsYXlOYW1lXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInNldEV4cGFuZGVkKGZhbHNlKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtbGVmdFwiIC8+XG4gICAgPC9idXR0b24+XG4gIH0gQGVsc2Uge1xuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBwYXJhbXM/LmRpc3BsYXlOYW1lXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInNldEV4cGFuZGVkKHRydWUpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJjaGV2cm9uLWRvdWJsZS1yaWdodFwiIC8+XG4gICAgPC9idXR0b24+XG4gIH1cbn1cbjxzcGFuICNpbmxpbmVIZWxwQ29udGFpbmVyIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj48L3NwYW4+XG4iXX0=","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, ...(ngDevMode ? [{ debugName: \"checked\" }] : []));\n this.indeterminate = signal(false, ...(ngDevMode ? [{ debugName: \"indeterminate\" }] : []));\n this.multiSelect = signal(false, ...(ngDevMode ? [{ debugName: \"multiSelect\" }] : []));\n this.params = signal(undefined, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.label = computed(() => {\n const params = this.params();\n return params?.displayName || params?.column.getColDef().field;\n }, ...(ngDevMode ? [{ debugName: \"label\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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\", \"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.3.15\", 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 }], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: \"checked\", required: false }] }, { type: i0.Output, args: [\"checkedChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9oZWFkZXIvaGVhZGVyLXJvdy1zZWxlY3Rvci9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBU3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBYTVELE1BQU0sT0FBTyxtQ0FBbUM7SUFYaEQ7UUFZcUIsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLG1EQUFDLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssdURBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsTUFBTSxDQUE0QixTQUFTLGtEQUFDLENBQUM7UUFDdEQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQUcs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QixDQUFDLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osY0FBYyxFQUFFLFNBQVM7d0JBQ3pCLGFBQWEsRUFBRSxRQUFRO3FCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hDaGFuZ2UsIFNreUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEdyaWRBcGksXG4gIElIZWFkZXJQYXJhbXMsXG4gIFJvd0RhdGFVcGRhdGVkRXZlbnQsXG4gIFNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGZyb21FdmVudCwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXJvdy1zZWxlY3Rvci1oZWFkZXInLFxuICBpbXBvcnRzOiBbU2t5Q2hlY2tib3hNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci50aXRsZV0nOiAnbGFiZWwoKScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibm90ZVwiJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hlY2tlZCA9IG1vZGVsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluZGV0ZXJtaW5hdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlTZWxlY3QgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zID0gc2lnbmFsPElIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIHJldHVybiBwYXJhbXM/LmRpc3BsYXlOYW1lIHx8IHBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmZpZWxkO1xuICB9KTtcblxuICAjYXBpOiBHcmlkQXBpPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zLnNldChwYXJhbXMpO1xuICAgIHRoaXMuI2FwaSA9IHBhcmFtcy5hcGk7XG5cbiAgICAvLyBSb3cgc2VsZWN0aW9uIGJlaGF2aW9yIGNhbiBvbmx5IGJlIHNldCB3aGVuIHRoZSBncmlkIGlzIGNyZWF0ZWQuXG4gICAgLy8gSXQgb25seSBjaGFuZ2VzIGlmIHRoZSBncmlkIGlzIHJlY3JlYXRlZC5cbiAgICBjb25zdCByb3dTZWxlY3Rpb24gPSBwYXJhbXMuYXBpLmdldEdyaWRPcHRpb24oJ3Jvd1NlbGVjdGlvbicpO1xuICAgIHRoaXMubXVsdGlTZWxlY3Quc2V0KFxuICAgICAgcm93U2VsZWN0aW9uID09PSAnbXVsdGlwbGUnIHx8XG4gICAgICAgICh0eXBlb2Ygcm93U2VsZWN0aW9uID09PSAnb2JqZWN0JyAmJiByb3dTZWxlY3Rpb24/Lm1vZGUgPT09ICdtdWx0aVJvdycpLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCgpKSB7XG4gICAgICBmcm9tRXZlbnQ8U2VsZWN0aW9uQ2hhbmdlZEV2ZW50PihwYXJhbXMuYXBpLCAnc2VsZWN0aW9uQ2hhbmdlZCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSwgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5zb3VyY2UubWF0Y2goL3NlbGVjdGFsbC9pKSkge1xuICAgICAgICAgICAgLy8gRWl0aGVyIHNlbGVjdCBhbGwgb3IgY2xlYXIgc2VsZWN0aW9uLlxuICAgICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KCEhY2hhbmdlLnNlbGVjdGVkTm9kZXM/Lmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZS5zZXQoISFjaGFuZ2Uuc2VsZWN0ZWROb2Rlcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZC5zZXQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGZyb21FdmVudDxSb3dEYXRhVXBkYXRlZEV2ZW50PihwYXJhbXMuYXBpLCAncm93RGF0YVVwZGF0ZWQnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZS5zZXQoISF0aGlzLiNhcGk/LmdldFNlbGVjdGVkTm9kZXMoKS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMuY2hlY2tlZC5zZXQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlQ2hlY2tib3goJGV2ZW50OiBTa3lDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQuY2hlY2tlZCkge1xuICAgICAgdGhpcy4jYXBpPy5zZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jYXBpPy5kZXNlbGVjdEFsbCgpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtdWx0aVNlbGVjdCgpKSB7XG4gIDxza3ktY2hlY2tib3hcbiAgICBsYWJlbEhpZGRlblxuICAgIGRhdGEtc2t5LWlkPVwiaGVhZGVyLXJvdy1zZWxlY3RvclwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZCgpXCJcbiAgICBbbGFiZWxUZXh0XT1cImxhYmVsKClcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGUoKVwiXG4gICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveCgkZXZlbnQpXCJcbiAgLz5cbn1cbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridHeaderInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAgGridHeaderInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbi8qKlxuICogVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uIGJlc2lkZSB0aGUgY29sdW1uIGhlYWRlciwgY3JlYXRlIGEgY29tcG9uZW50IGNvbnRhaW5pbmdcbiAqIFtgc2t5LWhlbHAtaW5saW5lYF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSxcbiAqIGFuZCBpbmplY3QgU2t5QWdHcmlkSGVhZGVySW5mbyB0byBhY2Nlc3MgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiwgc3VjaFxuICogYXMgZGlzcGxheSBuYW1lLlxuICogQWRkIHRoZSBjb21wb25lbnQgdG8gdGhlIGBoZWFkZXJDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1kZWZpbml0aW9ucy8pLlxuICogQHNlZSBTa3lBZ0dyaWRIZWFkZXJQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckluZm8ge1xuICAvKipcbiAgICogW0NvbHVtbiBpbmZvcm1hdGlvbiBmcm9tIEFHIEdyaWRdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1vYmplY3QvKS5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW46IENvbHVtbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","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 }, ...(ngDevMode ? [{ debugName: \"accessibleHeaderText\" }] : []));\n this.params = signal(undefined, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\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 }, ...(ngDevMode ? [{ debugName: \"displayName\" }] : []));\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.3.15\", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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\\\" iconSize=\\\"s\\\" />\\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\\\" iconSize=\\\"s\\\" />\\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: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i2.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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\\\" iconSize=\\\"s\\\" />\\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\\\" iconSize=\\\"s\\\" />\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixtQkFBbUIsRUFFbkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNEOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdCQUF3QjtJQVpyQztRQWVrQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJFLGtIQUFrSDtRQUNsSCxrRkFBa0Y7UUFDL0QseUJBQW9C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OHZFRHhDWSxhQUFhLHFJQUFFLGNBQWMsbUlBQWEsYUFBYSwwQkFBeEIsU0FBUzs7NEZBRXZDLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixjQUFjLEVBQUUsd0JBQXdCO3dCQUN4QyxtQkFBbUIsRUFBRSx5Q0FBeUM7d0JBQzlELGFBQWEsRUFBRSxRQUFRO3FCQUN4QixXQUNRLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDOztzQkFxQmpFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24sXG4gIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtbk1vdmVkRXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVySW5mbyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1pbmZvJztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRpdGxlXSc6ICdhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnZGlzcGxheU5hbWUoKSB8fCBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpJyxcbiAgICAnW2F0dHIucm9sZV0nOiAnXCJub3RlXCInLFxuICB9LFxuICBpbXBvcnRzOiBbU2t5SWNvbk1vZHVsZSwgU2t5VGhlbWVNb2R1bGUsIEFzeW5jUGlwZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJFbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIEZvciBhY2Nlc3NpYmlsaXR5LCB3ZSBuZWVkIHRvIHNldCB0aGUgdGl0bGUgYXR0cmlidXRlIG9uIHRoZSBoZWFkZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBubyB2aXNpYmxlIGhlYWRlciB0ZXh0LlxuICAvLyBodHRwczovL2RlcXVldW5pdmVyc2l0eS5jb20vcnVsZXMvYXhlLzQuNS9lbXB0eS10YWJsZS1oZWFkZXI/YXBwbGljYXRpb249YXhlQVBJXG4gIHByb3RlY3RlZCByZWFkb25seSBhY2Nlc3NpYmxlSGVhZGVyVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIGlmIChcbiAgICAgIHBhcmFtcz8uZGlzcGxheU5hbWUgJiZcbiAgICAgICFwYXJhbXM/LmNvbHVtbi5nZXRDb2xEZWYoKS5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmhlYWRlckhpZGRlblxuICAgICkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcmFtcz8uZGlzcGxheU5hbWUgfHwgcGFyYW1zPy5jb2x1bW4uZ2V0Q29sRGVmKCkuZmllbGQ7XG4gICAgfVxuICB9KTtcblxuICBAVmlld0NoaWxkKCdpbmxpbmVIZWxwQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGlubGluZUhlbHBDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtcyA9IHNpZ25hbDxTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgcHJvdGVjdGVkIHNvcnRlZCA9ICcnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydE9yZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgJ2FzYycgfCAnZGVzYycgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydEluZGV4RGlzcGxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5TmFtZSA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyYW1zKCk7XG4gICAgaWYgKFxuICAgICAgcGFyYW1zPy5kaXNwbGF5TmFtZSAmJlxuICAgICAgIXBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmhlYWRlckNvbXBvbmVudFBhcmFtcz8uaGVhZGVySGlkZGVuXG4gICAgKSB7XG4gICAgICByZXR1cm4gcGFyYW1zLmRpc3BsYXlOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG5cbiAgI3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICNpbmxpbmVIZWxwQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICN2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2FnSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2xlZnRQb3NpdGlvbiA9IDA7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy4jYWdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMuc2V0KHBhcmFtcyk7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIGlmICghcGFyYW1zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuI2xlZnRQb3NpdGlvbiA9IHBhcmFtcy5jb2x1bW4uZ2V0TGVmdCgpID8/IDA7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBpZiAocGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuY29sdW1uLCAnZmlsdGVyQ2hhbmdlZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzRmlsdGVyQWN0aXZlID0gcGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFjdGl2ZSgpO1xuICAgICAgICAgICAgaWYgKGlzRmlsdGVyQWN0aXZlICE9PSB0aGlzLmZpbHRlckVuYWJsZWQkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJFbmFibGVkJC5uZXh0KGlzRmlsdGVyQWN0aXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuZW5hYmxlU29ydGluZykge1xuICAgICAgLy8gQ29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlc1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuY29sdW1uLCAnc29ydENoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgLy8gT3RoZXIgY29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlcywgZm9yIG11bHRpLWNvbHVtbiBzb3J0aW5nXG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50KHBhcmFtcy5hcGksICdzb3J0Q2hhbmdlZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuI3VwZGF0ZVNvcnQoKTtcbiAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIGNvbHVtbiBpcyBtb3ZlZCBsZWZ0IHZpYSB0aGUga2V5Ym9hcmQsIHRoZSBlbGVtZW50IGlzIGRldGFjaGVkXG4gICAgLy8gYW5kIHJlYXR0YWNoZWQgdG8gdGhlIERPTSB0byBtYWludGFpbiBET00gb3JkZXIsIGFuZCBpdHMgZm9jdXMgaXMgbG9zdC5cbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudDxDb2x1bW5Nb3ZlZEV2ZW50PihwYXJhbXMuYXBpLCAnY29sdW1uTW92ZWQnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBldmVudC5jb2x1bW4/LmdldExlZnQoKSA/PyAwO1xuICAgICAgICAgIGNvbnN0IG9sZExlZnQgPSB0aGlzLiNsZWZ0UG9zaXRpb247XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuY29sdW1uID09PSBwYXJhbXMuY29sdW1uICYmXG4gICAgICAgICAgICBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtbk1vdmVkJyAmJlxuICAgICAgICAgICAgbGVmdCA8IG9sZExlZnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHBhcmFtcy5lR3JpZEhlYWRlci5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiNsZWZ0UG9zaXRpb24gPSBsZWZ0O1xuICAgICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG9uTWVudUNsaWNrKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcygpPy5zaG93Q29sdW1uTWVudSgkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNvcnRSZXF1ZXN0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgdGhpcy5wYXJhbXMoKT8ucHJvZ3Jlc3NTb3J0KGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID0gdGhpcy5wYXJhbXMoKT8uaW5saW5lSGVscENvbXBvbmVudDtcblxuICAgIGlmIChcbiAgICAgIGlubGluZUhlbHBDb21wb25lbnQgJiZcbiAgICAgICghdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZiB8fFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLmNvbXBvbmVudFR5cGUgIT09IGlubGluZUhlbHBDb21wb25lbnQpXG4gICAgKSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoXG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBoZWFkZXJJbmZvID0gbmV3IFNreUFnR3JpZEhlYWRlckluZm8oKTtcbiAgICAgIGhlYWRlckluZm8uY29sdW1uID0gdGhpcy5wYXJhbXMoKT8uY29sdW1uO1xuICAgICAgaGVhZGVySW5mby5jb250ZXh0ID0gdGhpcy5wYXJhbXMoKT8uY29udGV4dDtcbiAgICAgIGhlYWRlckluZm8uZGlzcGxheU5hbWUgPSB0aGlzLnBhcmFtcygpPy5kaXNwbGF5TmFtZTtcblxuICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZiA9XG4gICAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChpbmxpbmVIZWxwQ29tcG9uZW50LCB7XG4gICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByb3ZpZGU6IFNreUFnR3JpZEhlYWRlckluZm8sXG4gICAgICAgICAgICAgIHVzZVZhbHVlOiBoZWFkZXJJbmZvLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgcmVmZXJlbmNlRWw6IHRoaXMuaW5saW5lSGVscENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBsb2NhdGlvbjogU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b20sXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIWlubGluZUhlbHBDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudChcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVNvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0T3JkZXIkLm5leHQodGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldFNvcnQoKSB8fCB1bmRlZmluZWQpO1xuICB9XG5cbiAgI3VwZGF0ZVNvcnRJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCBzb3J0SW5kZXggPSB0aGlzLnBhcmFtcygpPy5jb2x1bW4uZ2V0U29ydEluZGV4KCk7XG4gICAgY29uc3Qgb3RoZXJTb3J0Q29sdW1ucyA9IHRoaXMucGFyYW1zKClcbiAgICAgID8uYXBpPy5nZXRDb2x1bW5zKClcbiAgICAgID8uc29tZShcbiAgICAgICAgKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4uZ2V0Q29sSWQoKSAhPT0gdGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldENvbElkKCkgJiZcbiAgICAgICAgICAhIWNvbHVtbi5nZXRTb3J0KCksXG4gICAgICApO1xuICAgIGlmIChzb3J0SW5kZXggIT09IHVuZGVmaW5lZCAmJiBzb3J0SW5kZXggIT09IG51bGwgJiYgb3RoZXJTb3J0Q29sdW1ucykge1xuICAgICAgdGhpcy5zb3J0SW5kZXhEaXNwbGF5JC5uZXh0KGAke3NvcnRJbmRleCArIDF9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc29ydEluZGV4RGlzcGxheSQubmV4dCgnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWctY2VsbC1sYWJlbC1jb250YWluZXJcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gIEBpZiAocGFyYW1zKCk/LmVuYWJsZU1lbnUpIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvblwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cIm1vcmUtYWN0aW9uc1wiIC8+XG4gICAgPC9zcGFuPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsLWFuZC1pY29uc1wiPlxuICAgICAgQGlmIChwYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHQgYWctaGVhZGVyLWNlbGwtbGFiZWwtc29ydGFibGUgc2t5LWJ0bi1saW5rLWlubGluZVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXCJcbiAgICAgICAgICBbaW5uZXJUZXh0XT1cImRpc3BsYXlOYW1lKCkgPz8gJydcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cInsgJ3NreS1mb250LWhlYWRpbmctNCc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIH0gQGVsc2UgaWYgKGRpc3BsYXlOYW1lKCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtdGV4dFwiXG4gICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwieyAnc2t5LWZvbnQtaGVhZGluZy00JzogJ21vZGVybicgfVwiXG4gICAgICAgICAgPnt7IGRpc3BsYXlOYW1lKCkgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgfVxuICAgICAgQGlmIChmaWx0ZXJFbmFibGVkJCB8IGFzeW5jKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uIGFnLWZpbHRlci1pY29uXCJcbiAgICAgICAgICA+PHNreS1pY29uIGljb25OYW1lPVwiZmlsdGVyXCJcbiAgICAgICAgLz48L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHBhcmFtcygpPy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICAgIEBpZiAoc29ydE9yZGVyJCB8IGFzeW5jOyBhcyBzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhZy1zb3J0LWluZGljYXRvci1jb250YWluZXIgc2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzc1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChzb3J0RGlyZWN0aW9uID09PSAnZGVzYycpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tZG93blwiIGljb25TaXplPVwic1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2Rlc2MnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkaXNwbGF5TmFtZSgpID8/IGFjY2Vzc2libGVIZWFkZXJUZXh0KClcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj48L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzb3J0RGlyZWN0aW9uID09PSAnYXNjJykge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi11cFwiIGljb25TaXplPVwic1wiIC8+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: 16,\n },\n // show on column header when column is sorted descending\n sortDescending: {\n name: 'chevron-down',\n size: 16,\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9pY29ucy9pY29uLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBTWhCO0lBQ0YsOERBQThEO0lBQzlELGlCQUFpQixFQUFFO1FBQ2pCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxpQkFBaUIsRUFBRTtRQUNqQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4REFBOEQ7SUFDOUQsa0JBQWtCLEVBQUU7UUFDbEIsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDhEQUE4RDtJQUM5RCxnQkFBZ0IsRUFBRTtRQUNoQixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsNkRBQTZEO0lBQzdELDJEQUEyRDtJQUMzRCx5QkFBeUIsRUFBRTtRQUN6QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQseURBQXlEO0lBQ3pELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyREFBMkQ7SUFDM0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHNFQUFzRTtJQUN0RSwrREFBK0Q7SUFDL0Qsc0JBQXNCLEVBQUU7UUFDdEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZEQUE2RDtJQUM3RCx3Q0FBd0M7SUFDeEMsYUFBYSxFQUFFO1FBQ2IsSUFB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Q3BCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCwyQkFBMkI7SUFDM0IsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELHVEQUF1RDtJQUN2RCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCw4REFBOEQ7SUFDOUQsMEJBQTBCLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELDZDQUE2QztJQUM3QyxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxxREFBcUQ7SUFDckQsaUJBQWlCLEVBQUU7UUFDakIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUVELG1FQUFtRTtJQUNuRSxtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBRUQsK0RBQStEO0lBQy9ELGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFFRCxpQkFBaUI7SUFDakIsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsRUFBRTtLQUNUO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpY29uTWFwOiBSZWNvcmQ8XG4gIHN0cmluZyxcbiAge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzaXplOiBudW1iZXI7XG4gIH1cbj4gPSB7XG4gIC8vIGhlYWRlciBjb2x1bW4gZ3JvdXAgc2hvd24gd2hlbiBleHBhbmRlZCAoY2xpY2sgdG8gY29udHJhY3QpXG4gIGNvbHVtbkdyb3VwT3BlbmVkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG91YmxlLWxlZnQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGhlYWRlciBjb2x1bW4gZ3JvdXAgc2hvd24gd2hlbiBjb250cmFjdGVkIChjbGljayB0byBleHBhbmQpXG4gIGNvbHVtbkdyb3VwQ2xvc2VkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG91YmxlLXJpZ2h0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb2x1bW4gdG9vbCBwYW5lbCBjb2x1bW4gZ3JvdXAgY29udHJhY3RlZCAoY2xpY2sgdG8gZXhwYW5kKVxuICBjb2x1bW5TZWxlY3RDbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gY29sdW1uIHRvb2wgcGFuZWwgY29sdW1uIGdyb3VwIGV4cGFuZGVkIChjbGljayB0byBjb250cmFjdClcbiAgY29sdW1uU2VsZWN0T3Blbjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIGNvbHVtbiB0b29sIHBhbmVsIGhlYWRlciBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiwgc2hvd25cbiAgLy8gd2hlbiBzb21lIGNoaWxkcmVuIGFyZSBleHBhbmRlZCBhbmQgb3RoZXJzIGFyZSBjb2xsYXBzZWRcbiAgY29sdW1uU2VsZWN0SW5kZXRlcm1pbmF0ZToge1xuICAgIG5hbWU6ICdzdWJ0cmFjdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gYWNjb3JkaW9uIG9wZW4gKGZpbHRlciB0b29sIHBhbmVsIGdyb3VwLCBjaGFydHMgZ3JvdXApXG4gIGFjY29yZGlvbk9wZW46IHtcbiAgICBuYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBhY2NvcmRpb24gY2xvc2VkIChmaWx0ZXIgdG9vbCBwYW5lbCBncm91cCwgY2hhcnRzIGdyb3VwKVxuICBhY2NvcmRpb25DbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gYWNjb3JkaW9uIGluZGV0ZXJtaW5hdGUgLSBzaG93biB3aGVuIHNvbWUgY2hpbGRyZW4gYXJlIGV4cGFuZGVkIGFuZFxuICAvLyBvdGhlcnMgYXJlIGNvbGxhcHNlZCAoZmlsdGVyIHRvb2wgcGFuZWwgZ3JvdXAsIGNoYXJ0cyBncm91cClcbiAgYWNjb3JkaW9uSW5kZXRlcm1pbmF0ZToge1xuICAgIG5hbWU6ICdzdWJ0cmFjdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBjb2x1bW4gdG8gdGhlIHNpZGUgb2YgdGhlIGdyaWQgdG8gcGluXG4gIGNvbHVtbk1vdmVQaW46IHtcbiAgICBuYW1lOiAnYXJyb3ctbW92ZScsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZyBvdmVyXG4gIC8vIHBhcnQgb2YgdGhlIHBhZ2UgdGhhdCBpcyBub3QgYSBkcm9wIHpvbmVcbiAgY29sdW1uTW92ZUhpZGU6IHtcbiAgICBuYW1lOiAnZXllLW9mZicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBjb2x1bW5zIHRvIHJlb3JkZXJcbiAgY29sdW1uTW92ZU1vdmU6IHtcbiAgICBuYW1lOiAnYXJyb3ctbW92ZScsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gYW5pbWF0aW5nIGljb24gc2hvd24gd2hlbiBkcmFnZ2luZyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgb2ZcbiAgLy8gdGhlIGdyaWQgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gIGNvbHVtbk1vdmVMZWZ0OiB7XG4gICAgbmFtZTogJ2Fycm93LW1vdmUnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGFuaW1hdGluZyBpY29uIHNob3duIHdoZW4gZHJhZ2dpbmcgYSBjb2x1bW4gdG8gdGhlIGxlZnQgb2ZcbiAgLy8gdGhlIGdyaWQgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gIGNvbHVtbk1vdmVSaWdodDoge1xuICAgIG5hbWU6ICdhcnJvdy1tb3ZlJyxcbiAgICBzaXplOiAyMCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBkcmFnIGFuZCBkcm9wIGltYWdlIGNvbXBvbmVudCBpY29uIHdoaWxlIGRyYWdnaW5nXG4gIC8vIG92ZXIgUm93IEdyb3VwcyBkcm9wIHpvbmVcbiAgY29sdW1uTW92ZUdyb3VwOiB7XG4gICAgbmFtZTogJ2dyb3VwJyxcbiAgICBzaXplOiAyMCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBkcmFnIGFuZCBkcm9wIGltYWdlIGNvbXBvbmVudCBpY29uIHdoaWxlIGRyYWdnaW5nXG4gIC8vIG92ZXIgVmFsdWVzIGRyb3Agem9uZVxuICBjb2x1bW5Nb3ZlVmFsdWU6IHtcbiAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBvdmVyIHBpdm90IGRyb3Agem9uZVxuICBjb2x1bW5Nb3ZlUGl2b3Q6IHtcbiAgICBuYW1lOiAndGFibGUtZnJlZXplLWNvbHVtbicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gZHJhZyBhbmQgZHJvcCBpbWFnZSBjb21wb25lbnQgaWNvbiB3aGlsZSBkcmFnZ2luZ1xuICAvLyBvdmVyIGRyb3Agem9uZSB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBpdCwgZS5nLlxuICAvLyBzdHJpbmcgY29sdW1uIG92ZXIgYWdncmVnYXRpb24gZHJvcCB6b25lXG4gIGRyb3BOb3RBbGxvd2VkOiB7XG4gICAgbmFtZTogJ3Byb2hpYml0ZWQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIHJvdyBncm91cCB3aGVuIGNvbnRyYWN0ZWQgKGNsaWNrIHRvIGV4cGFuZClcbiAgZ3JvdXBDb250cmFjdGVkOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIHJvdyBncm91cCB3aGVuIGV4cGFuZGVkIChjbGljayB0byBjb250cmFjdClcbiAgZ3JvdXBFeHBhbmRlZDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNldCBmaWx0ZXIgdHJlZSBsaXN0IGdyb3VwIGNvbnRyYWN0ZWQgKGNsaWNrIHRvIGV4cGFuZClcbiAgc2V0RmlsdGVyR3JvdXBDbG9zZWQ6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gc2V0IGZpbHRlciB0cmVlIGxpc3QgZ3JvdXAgZXhwYW5kZWQgKGNsaWNrIHRvIGNvbnRyYWN0KVxuICBzZXRGaWx0ZXJHcm91cE9wZW46IHtcbiAgICBuYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBzZXQgZmlsdGVyIHRyZWUgbGlzdCBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiwgc2hvd24gd2hlblxuICAvLyBzb21lIGNoaWxkcmVuIGFyZSBleHBhbmRlZCBhbmRcbiAgLy8gb3RoZXJzIGFyZSBjb2xsYXBzZWRcbiAgc2V0RmlsdGVyR3JvdXBJbmRldGVybWluYXRlOiB7XG4gICAgbmFtZTogJ3N1YnRyYWN0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzZXQgZmlsdGVyIGFzeW5jIHZhbHVlcyBsb2FkaW5nXG4gIHNldEZpbHRlckxvYWRpbmc6IHtcbiAgICBuYW1lOiAnc3Bpbm5lci1pb3MnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbnRleHQgbWVudSBjaGFydCBpdGVtXG4gIGNoYXJ0OiB7XG4gICAgbmFtZTogJ2RhdGEtYmFyLXZlcnRpY2FsLWFzY2VuZGluZycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZGlhbG9nIHRpdGxlIGJhclxuICBjbG9zZToge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gWCAocmVtb3ZlKSBvbiBjb2x1bW4gJ3BpbGwnIGFmdGVyIGFkZGluZyBpdCB0byBhIGRyb3Agem9uZSBsaXN0XG4gIGNhbmNlbDoge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gaW5kaWNhdGVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBpbiBzdGF0ZSBpbiB0aGUgXCJQaW4gY29sdW1uXCJcbiAgLy8gc3ViLW1lbnUgb2YgdGhlIGNvbHVtbiBtZW51XG4gIGNoZWNrOiB7XG4gICAgbmFtZTogJ2NoZWNrbWFyaycsXG4gICAgc2l6ZTogMjAsXG4gIH0sXG5cbiAgLy8gXCJnbyB0byBmaXJzdFwiIGJ1dHRvbiBpbiBwYWdpbmF0aW9uIGNvbnRyb2xzXG4gIGZpcnN0OiB7XG4gICAgbmFtZTogJ2Fycm93LXByZXZpb3VzJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBcImdvIHRvIHByZXZpb3VzXCIgYnV0dG9uIGluIHBhZ2luYXRpb24gY29udHJvbHNcbiAgcHJldmlvdXM6IHtcbiAgICBuYW1lOiAnY2hldnJvbi1sZWZ0JyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBcImdvIHRvIG5leHRcIiBidXR0b24gaW4gcGFnaW5hdGlvbiBjb250cm9sc1xuICBuZXh0OiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIFwiZ28gdG8gbGFzdFwiIGJ1dHRvbiBpbiBwYWdpbmF0aW9uIGNvbnRyb2xzXG4gIGxhc3Q6IHtcbiAgICBuYW1lOiAnYXJyb3ctbmV4dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gdG9wIHJpZ2h0IG9mIGNoYXJ0IHdoZW4gY2hhcnQgaXMgbGlua2VkIHRvIHJhbmdlXG4gIC8vIGRhdGEgKGNsaWNrIHRvIHVubGluaylcbiAgbGlua2VkOiB7XG4gICAgbmFtZTogJ2xpbmstZGlzbWlzcycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gdG9wIHJpZ2h0IG9mIGNoYXJ0IHdoZW4gY2hhcnQgaXMgbm90IGxpbmtlZCB0b1xuICAvLyByYW5nZSBkYXRhIChjbGljayB0byBsaW5rKVxuICB1bmxpbmtlZDoge1xuICAgIG5hbWU6ICdsaW5rJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyByb3RhdGluZyBzcGlubmVyIHNob3duIGJ5IHRoZSBsb2FkaW5nIGNlbGwgcmVuZGVyZXJcbiAgZ3JvdXBMb2FkaW5nOiB7XG4gICAgbmFtZTogJ3NwaW5uZXItaW9zJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBidXR0b24gdG8gbGF1bmNoIGxlZ2FjeSBjb2x1bW4gbWVudVxuICBtZW51OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gYnV0dG9uIHRvIGxhdW5jaCBuZXcgZW50ZXJwcmlzZSBjb2x1bW4gbWVudVxuICBtZW51QWx0OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gbWVudSB0YWIgaWNvbiBpbiBsZWdhY3kgdGFiYmVkIGVudGVycHJpc2UgY29sdW1uIG1lbnVcbiAgbGVnYWN5TWVudToge1xuICAgIG5hbWU6ICdtb3JlLWFjdGlvbnMnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIG9wZW4gZmlsdGVyIGJ1dHRvbiAtIGhlYWRlciwgZmxvYXRpbmcgZmlsdGVyLCBtZW51XG4gIGZpbHRlcjoge1xuICAgIG5hbWU6ICdmaWx0ZXInLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGZpbHRlciBpcyBhcHBsaWVkIC0gaGVhZGVyIChsZWdhY3kgY29sdW1uIG1lbnUpLCBmaWx0ZXIgdG9vbCBwYW5lbFxuICBmaWx0ZXJBY3RpdmU6IHtcbiAgICBuYW1lOiAnZmlsdGVyJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBmaWx0ZXIgdGFiIGljb24gaW4gbGVnYWN5IHRhYmJlZCBlbnRlcnByaXNlIGNvbHVtbiBtZW51XG4gIGZpbHRlclRhYjoge1xuICAgIG5hbWU6ICdmaWx0ZXInLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGZpbHRlciB0b29sIHBhbmVsIHRhYlxuICBmaWx0ZXJzVG9vbFBhbmVsOiB7XG4gICAgbmFtZTogJ2ZpbHRlcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY29sdW1ucyBpbiBtZW51IChjb2x1bW4gY2hvb3NlciAvIGNvbHVtbnMgdGFiKVxuICBjb2x1bW5zOiB7XG4gICAgbmFtZTogJ2xheW91dC1jb2x1bW4tdGhyZWUnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbHVtbiB0b29sIHBhbmVsIHRhYlxuICBjb2x1bW5zVG9vbFBhbmVsOiB7XG4gICAgbmFtZTogJ2xheW91dC1jb2x1bW4tdGhyZWUnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGJ1dHRvbiBpbiBjaGFydCByZWd1bGFyIHNpemUgd2luZG93IHRpdGxlIGJhciAoY2xpY2sgdG8gbWF4aW1pc2UpXG4gIG1heGltaXplOiB7XG4gICAgbmFtZTogJ2Fycm93LW1heGltaXplJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBidXR0b24gaW4gY2hhcnQgbWF4aW1pc2VkIHdpbmRvdyB0aXRsZSBiYXIgKGNsaWNrIHRvIG1ha2UgcmVndWxhciBzaXplKVxuICBtaW5pbWl6ZToge1xuICAgIG5hbWU6ICdhcnJvdy1taW5pbWl6ZScsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gXCJQaW4gY29sdW1uXCIgaXRlbSBpbiBjb2x1bW4gaGVhZGVyIG1lbnVcbiAgbWVudVBpbjoge1xuICAgIG5hbWU6ICdwaW4nLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiVmFsdWUgYWdncmVnYXRpb25cIiBjb2x1bW4gbWVudSBpdGVtIChzaG93biBvbiBudW1lcmljXG4gIC8vIGNvbHVtbnMgd2hlbiBncm91cGluZyBpcyBhY3RpdmUpXCJcbiAgbWVudVZhbHVlOiB7XG4gICAgbmFtZTogJ2NhbGN1bGF0b3InLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiR3JvdXAgYnkge2NvbHVtbi1uYW1lfVwiIGl0ZW0gaW4gY29sdW1uIGhlYWRlciBtZW51XG4gIG1lbnVBZGRSb3dHcm91cDoge1xuICAgIG5hbWU6ICdhcnJvdy1jb2xsYXBzZS1hbGwnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIFwiVW4tR3JvdXAgYnkge2NvbHVtbi1uYW1lfVwiIGl0ZW0gaW4gY29sdW1uIGhlYWRlciBtZW51XG4gIG1lbnVSZW1vdmVSb3dHcm91cDoge1xuICAgIG5hbWU6ICdhcnJvdy1jb2xsYXBzZS1hbGwnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIGNvbnRleHQgbWVudSBjb3B5IGl0ZW1cbiAgY2xpcGJvYXJkQ29weToge1xuICAgIG5hbWU6ICdjb3B5JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb250ZXh0IG1lbnUgY3V0IGl0ZW1cbiAgY2xpcGJvYXJkQ3V0OiB7XG4gICAgbmFtZTogJ2N1dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY29udGV4dCBtZW51IHBhc3RlIGl0ZW1cbiAgY2xpcGJvYXJkUGFzdGU6IHtcbiAgICBuYW1lOiAnY2xpcGJvYXJkLWFycm93LXJpZ2h0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBpZGVudGlmaWVzIHRoZSBwaXZvdCBkcm9wIHpvbmVcbiAgcGl2b3RQYW5lbDoge1xuICAgIG5hbWU6ICdwaXZvdCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gXCJSb3cgZ3JvdXBzXCIgZHJvcCB6b25lIGluIGNvbHVtbiB0b29sIHBhbmVsXG4gIHJvd0dyb3VwUGFuZWw6IHtcbiAgICBuYW1lOiAnZ3JvdXAnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGNvbHVtbnMgdG9vbCBwYW5lbCBWYWx1ZXMgZHJvcCB6b25lXG4gIHZhbHVlUGFuZWw6IHtcbiAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZHJhZyBoYW5kbGUgdXNlZCB0byBwaWNrIHVwIGRyYWdnYWJsZSBjb2x1bW5zXG4gIGNvbHVtbkRyYWc6IHtcbiAgICBuYW1lOiAncmUtb3JkZXItZG90cy12ZXJ0aWNhbCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZHJhZyBoYW5kbGUgdXNlZCB0byBwaWNrIHVwIGRyYWdnYWJsZSByb3dzXG4gIHJvd0RyYWc6IHtcbiAgICBuYW1lOiAnYXJyb3ctYmlkaXJlY3Rpb25hbC11cC1kb3duJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBjb250ZXh0IG1lbnUgZXhwb3J0IGl0ZW1cbiAgc2F2ZToge1xuICAgIG5hbWU6ICdhcnJvdy1kb3dubG9hZCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gY3N2IGV4cG9ydFxuICBjc3ZFeHBvcnQ6IHtcbiAgICBuYW1lOiAnZG9jdW1lbnQtdGV4dCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gZXhjZWwgZXhwb3J0XG4gIGV4Y2VsRXhwb3J0OiB7XG4gICAgbmFtZTogJ2RvY3VtZW50LXhscycsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gaWNvbiBvbiBzZWxlY3QgZHJvcGRvd25zIChzZWxlY3QgY2VsbCBlZGl0b3IsIGNoYXJ0cyB0b29sIHBhbmVscylcbiAgc2VsZWN0T3Blbjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIG9wZW4gaWNvbiBmb3IgcmljaCBzZWxlY3QgZWRpdG9yXG4gIHJpY2hTZWxlY3RPcGVuOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG93bicsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gcmVtb3ZlIGZvciByaWNoIHNlbGVjdCBlZGl0b3IgcGlsbHNcbiAgcmljaFNlbGVjdFJlbW92ZToge1xuICAgIG5hbWU6ICdjbG9zZScsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gaWNvbiBmb3Igc3ViIG1lbnUgaXRlbVxuICBzdWJNZW51T3Blbjoge1xuICAgIG5hbWU6ICdhcnJvdy1yaWdodCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gdmVyc2lvbiBvZiBzdWJNZW51T3BlbiB1c2VkIGluIFJUTCBtb2RlXG4gIHN1Yk1lbnVPcGVuUnRsOiB7XG4gICAgbmFtZTogJ2Fycm93LWxlZnQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNlcGFyYXRvciBiZXR3ZWVuIGNvbHVtbiAncGlsbHMnIHdoZW4geW91IGFkZCBtdWx0aXBsZVxuICAvLyBjb2x1bW5zIHRvIHRoZSBoZWFkZXIgZHJvcCB6b25lXG4gIHBhbmVsRGVsaW1pdGVyOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHZlcnNpb24gb2YgcGFuZWxEZWxpbWl0ZXIgdXNlZCBpbiBSVEwgbW9kZVxuICBwYW5lbERlbGltaXRlclJ0bDoge1xuICAgIG5hbWU6ICdhcnJvdy1sZWZ0JyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93IG9uIGNvbHVtbiBoZWFkZXIgd2hlbiBjb2x1bW4gaXMgc29ydGVkIGFzY2VuZGluZ1xuICBzb3J0QXNjZW5kaW5nOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tdXAnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3cgb24gY29sdW1uIGhlYWRlciB3aGVuIGNvbHVtbiBpcyBzb3J0ZWQgZGVzY2VuZGluZ1xuICBzb3J0RGVzY2VuZGluZzoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIHNob3cgb24gY29sdW1uIGhlYWRlciB3aGVuIGNvbHVtbiBoYXMgbm8gc29ydCwgb25seSB3aGVuXG4gIC8vIGVuYWJsZWQgd2l0aCBjb2xEZWYudW5Tb3J0SWNvbj10cnVlXG4gIHNvcnRVblNvcnQ6IHtcbiAgICBuYW1lOiAnc3VidHJhY3QnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIEJ1aWxkZXIgYnV0dG9uIGluIEFkdmFuY2VkIEZpbHRlclxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXI6IHtcbiAgICBuYW1lOiAnZ3JvdXAnLFxuICAgIHNpemU6IDIwLFxuICB9LFxuXG4gIC8vIGRyYWcgaGFuZGxlIHVzZWQgdG8gcGljayB1cCBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlckRyYWc6IHtcbiAgICBuYW1lOiAncmUtb3JkZXItZG90cy12ZXJ0aWNhbCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgcm93IHZhbGlkYXRpb24gZXJyb3JcbiAgYWR2YW5jZWRGaWx0ZXJCdWlsZGVySW52YWxpZDoge1xuICAgIG5hbWU6ICdwcm9oaWJpdGVkJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93biBvbiBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzIHRvIG1vdmUgdGhlbSB1cFxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXJNb3ZlVXA6IHtcbiAgICBuYW1lOiAnY2hldnJvbi11cCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgcm93cyB0byBtb3ZlIHRoZW0gZG93blxuICBhZHZhbmNlZEZpbHRlckJ1aWxkZXJNb3ZlRG93bjoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIG9uIEFkdmFuY2VkIEZpbHRlciBCdWlsZGVyIHJvd3MgdG8gYWRkIG5ldyByb3dzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlckFkZDoge1xuICAgIG5hbWU6ICdhZGQtY2lyY2xlJyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBzaG93biBvbiBBZHZhbmNlZCBGaWx0ZXIgQnVpbGRlciByb3dzIHRvIHJlbW92ZSByb3dcbiAgYWR2YW5jZWRGaWx0ZXJCdWlsZGVyUmVtb3ZlOiB7XG4gICAgbmFtZTogJ3N1YnRyYWN0LWNpcmNsZScsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG5cbiAgLy8gc2hvd24gb24gQWR2YW5jZWQgRmlsdGVyIEJ1aWxkZXIgc2VsZWN0aW9uIHBpbGxzXG4gIGFkdmFuY2VkRmlsdGVyQnVpbGRlclNlbGVjdDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLWRvd24nLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIGljb24gdG8gb3BlbiBjaGFydHMgbWVudVxuICBjaGFydHNNZW51OiB7XG4gICAgbmFtZTogJ21vcmUtYWN0aW9ucycsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gRWRpdCBDaGFydCBtZW51IGl0ZW0gc2hvd24gaW4gSW50ZWdyYXRlZCBDaGFydHMgbWVudVxuICBjaGFydHNNZW51RWRpdDoge1xuICAgIG5hbWU6ICdkYXRhLWJhci12ZXJ0aWNhbC1hc2NlbmRpbmcnLFxuICAgIHNpemU6IDE2LFxuICB9LFxuXG4gIC8vIEFkdmFuY2VkIFNldHRpbmdzIG1lbnUgaXRlbSBzaG93biBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBtZW51XG4gIGNoYXJ0c01lbnVBZHZhbmNlZFNldHRpbmdzOiB7XG4gICAgbmFtZTogJ3NldHRpbmdzJyxcbiAgICBzaXplOiAxNixcbiAgfSxcblxuICAvLyBzaG93biBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBtZW51IGFkZCBmaWVsZHNcbiAgY2hhcnRzTWVudUFkZDoge1xuICAgIG5hbWU6ICdhZGQnLFxuICAgIHNpemU6IDI0LFxuICB9LFxuXG4gIC8vIHNob3duIGluIEludGVncmF0ZWQgQ2hhcnRzIHRvb2wgcGFuZWwgY29sb3IgcGlja2VyXG4gIGNoYXJ0c0NvbG9yUGlja2VyOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tZG93bicsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gcHJldmlvdXMgaW4gSW50ZWdyYXRlZCBDaGFydHMgc2V0dGluZ3MgdG9vbCBwYW5lbCB0aGVtZSBzd2l0Y2hlclxuICBjaGFydHNUaGVtZVByZXZpb3VzOiB7XG4gICAgbmFtZTogJ2NoZXZyb24tbGVmdCcsXG4gICAgc2l6ZTogMjQsXG4gIH0sXG5cbiAgLy8gbmV4dCBpbiBJbnRlZ3JhdGVkIENoYXJ0cyBzZXR0aW5ncyB0b29sIHBhbmVsIHRoZW1lIHN3aXRjaGVyXG4gIGNoYXJ0c1RoZW1lTmV4dDoge1xuICAgIG5hbWU6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgICBzaXplOiAyNCxcbiAgfSxcblxuICAvLyBkb3dubG9hZCBjaGFydFxuICBjaGFydHNEb3dubG9hZDoge1xuICAgIG5hbWU6ICdhcnJvdy1kb3dubG9hZCcsXG4gICAgc2l6ZTogMTYsXG4gIH0sXG59O1xuZXhwb3J0IHR5cGUgSWNvbk1hcFR5cGUgPSB0eXBlb2YgaWNvbk1hcDtcbiJdfQ==","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.3.15\", ngImport: i0, type: SkyAgGridLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixNQUFNLENBQUMsT0FBOEI7UUFDMUMsY0FBYztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQThCO1FBQzNDLGNBQWM7SUFDaEIsQ0FBQzsrR0FQVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwrRUNadEMscUNBQ0EsMkNET1ksYUFBYTs7NEZBSVoseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixXQUN0QixDQUFDLGFBQWEsQ0FBQyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5V2FpdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5UGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1sb2FkaW5nJyxcbiAgaW1wb3J0czogW1NreVdhaXRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAge1xuICBwdWJsaWMgYWdJbml0KF9wYXJhbXM6IElMb2FkaW5nT3ZlcmxheVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuXG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChfcGFyYW1zOiBJTG9hZGluZ092ZXJsYXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG59XG4iLCI8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJ0cnVlXCIgLz5cbiJdfQ==","/**\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.3.15\", 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.3.15\", ngImport: i0, type: SkyAgGridService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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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QUFDLFFBQVEsQ0FDdEIsQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQW1DO1FBQ2hELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBdGxCVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDU1BfTk9OQ0UsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5RGF0ZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIEFnQ29sdW1uLFxuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIENlbGxSZW5kZXJlclNlbGVjdG9yRnVuYyxcbiAgQ2VsbFJlbmRlcmVyU2VsZWN0b3JSZXN1bHQsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93Tm9kZSxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0U2t5QWdHcmlkVGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvYWctZ3JpZC10aGVtZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4vYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUFnR3JpZExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbENsYXNzIH0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuaW1wb3J0IHsgU2t5SGVhZGVyQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBMYXN0Rm9jdXNlZENlbGwgfSBmcm9tICcuL3R5cGVzL2xhc3QtZm9jdXNlZC5jZWxsJztcbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IoXG4gIHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSxcbiAgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9LFxuKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IERhdGUgfCBzdHJpbmcsIGRhdGUyOiBEYXRlIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gIGNvbXBvbmVudDogc3RyaW5nLFxuICBmYWxsYmFjaz86IENlbGxSZW5kZXJlclNlbGVjdG9yUmVzdWx0LFxuKTogQ2VsbFJlbmRlcmVyU2VsZWN0b3JGdW5jIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zLmNvbHVtbj8uaXNDZWxsRWRpdGFibGUocGFyYW1zLm5vZGUpIHx8XG4gICAgICAgICFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgcGFyYW1zPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gLTE7XG5cbi8qKlxuICogYFNreUFnR3JpZFNlcnZpY2VgIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IEFHIEdyaWQgYGdyaWRPcHRpb25zYCB0byBlbnN1cmUgZ3JpZHMgbWF0Y2ggU0tZIFVYIGZ1bmN0aW9uYWxpdHkuIFRoZSBgZ3JpZE9wdGlvbnNgIGNhbiBiZSBvdmVycmlkZGVuLCBhbmQgaW5jbHVkZSByZWdpc3RlcmVkIFNLWSBVWCBjb2x1bW4gdHlwZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgI2tleU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgc3RyaW5nPigpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICNyZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICNkYXRlU2VydmljZSA9IGluamVjdChTa3lEYXRlU2VydmljZSk7XG4gICNsb2dTZXJ2aWNlID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjY3NwTm9uY2UgPSBpbmplY3QoQ1NQX05PTkNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZSA9IGFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zPFQgPSBhbnk+KFxuICAgIGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnczxUPixcbiAgKTogR3JpZE9wdGlvbnM8VD4ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMuI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgICBkZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICBhcmdzLmdyaWRPcHRpb25zLFxuICAgICk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBbQUcgR3JpZCBgZ3JpZE9wdGlvbnNgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcHJvcGVydGllcy8pIHdpdGggZGVmYXVsdCBTS1kgVVggb3B0aW9ucywgc3R5bGluZywgYW5kIGNlbGwgZWRpdG9ycyByZWdpc3RlcmVkIGZvciBlZGl0YWJsZSBncmlkcy5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRFZGl0YWJsZUdyaWRPcHRpb25zPFQgPSBhbnk+KFxuICAgIGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnczxUPixcbiAgKTogR3JpZE9wdGlvbnM8VD4ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9uczxUPihcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNtZXJnZUdyaWRPcHRpb25zPFQ+KFxuICAgIGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnM8VD4gJiB7XG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpID0+IHN0cmluZ1tdO1xuICAgIH0sXG4gICAgcHJvdmlkZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnM8VD4sXG4gICk6IEdyaWRPcHRpb25zPFQ+IHtcbiAgICBpZiAoJ2VuYWJsZVJhbmdlU2VsZWN0aW9uJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbikge1xuICAgICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmNlbGxTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgfVxuICAgICAgZGVsZXRlIHByb3ZpZGVkR3JpZE9wdGlvbnMuZW5hYmxlUmFuZ2VTZWxlY3Rpb247XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID09PSAnc2luZ2xlJyB8fFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdtdWx0aXBsZSdcbiAgICApIHtcbiAgICAgIGNvbnN0IHJvd1NlbGVjdGlvbk9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIFJvd1NlbGVjdGlvbk9wdGlvbnM+ID0ge1xuICAgICAgICBzaW5nbGU6IHsgbW9kZTogJ3NpbmdsZVJvdycsIGNoZWNrYm94ZXM6IGZhbHNlIH0sXG4gICAgICAgIG11bHRpcGxlOiB7IG1vZGU6ICdtdWx0aVJvdycsIGNoZWNrYm94ZXM6IGZhbHNlIH0sXG4gICAgICB9O1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPVxuICAgICAgICByb3dTZWxlY3Rpb25PcHRpb25zW3Byb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uXTtcbiAgICB9XG4gICAgaWYgKHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uPy5tb2RlKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcbiAgICAgICAgLi4uKChkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uIGFzIFJvd1NlbGVjdGlvbk9wdGlvbnMpID8/IHtcbiAgICAgICAgICBjaGVja2JveGVzOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uLFxuICAgICAgfSBhcyBSb3dTZWxlY3Rpb25PcHRpb25zO1xuICAgIH1cbiAgICBpZiAoJ2VuYWJsZUNlbGxDaGFuZ2VGbGFzaCcgaW4gcHJvdmlkZWRHcmlkT3B0aW9ucykge1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmID8/PSB7fTtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZi5lbmFibGVDZWxsQ2hhbmdlRmxhc2ggPz89XG4gICAgICAgICEhcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsQ2hhbmdlRmxhc2g7XG4gICAgICBkZWxldGUgcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsQ2hhbmdlRmxhc2g7XG4gICAgfVxuXG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucyxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgICAvLyBBcHBseSBkZWZhdWx0IGNvbXBvbmVudHMgbGFzdCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBjb21wb25lbnQgdHlwZXMuXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgfSxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbnRleHQsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29udGV4dCxcbiAgICAgIH0sXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAvLyBhbGxvdyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgYWxsIGRlZmF1bHRDb2xEZWYgcHJvcGVydGllcyBleGNlcHQgY2VsbENsYXNzUnVsZXMsIHdoaWNoIHdlIHJlc2VydmUgZm9yIHN0eWxpbmdcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmPy5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmPy5oZWFkZXJDbGFzcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICAgIGhlYWRlckNsYXNzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmPy5oZWFkZXJDbGFzcyxcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdENsYXNzZXMgPSBkZWZhdWx0R3JpZE9wdGlvbnMuZ2V0Um93Q2xhc3MoXG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICApIGFzIHN0cmluZ1tdO1xuICAgICAgICBjb25zdCBwcm92aWRlZENsYXNzZXMgPSBwcm92aWRlZEdyaWRPcHRpb25zLmdldFJvd0NsYXNzPy4ocGFyYW1zKSA/PyBbXTtcbiAgICAgICAgY29uc3QgcHJvdmlkZWRDbGFzc2VzQXJyYXkgPSBBcnJheS5pc0FycmF5KHByb3ZpZGVkQ2xhc3NlcylcbiAgICAgICAgICA/IHByb3ZpZGVkQ2xhc3Nlc1xuICAgICAgICAgIDogW3Byb3ZpZGVkQ2xhc3Nlc107XG4gICAgICAgIHJldHVybiBbLi4uZGVmYXVsdENsYXNzZXMsIC4uLnByb3ZpZGVkQ2xhc3Nlc0FycmF5XTtcbiAgICAgIH0sXG4gICAgICBvbkNlbGxGb2N1c2VkOiAoZXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLm9uQ2VsbEZvY3VzZWQ/LihldmVudCk7XG4gICAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIEVuYWJsZSB0ZXh0IHNlbGVjdGlvbiB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZCBvciBjb25mbGljdGluZyB3aXRoIGFub3RoZXIgc2V0dGluZy5cbiAgICBpZiAoXG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiB8fFxuICAgICAgKCEoJ2VuYWJsZUNlbGxUZXh0U2VsZWN0aW9uJyBpbiBtZXJnZWRHcmlkT3B0aW9ucykgJiZcbiAgICAgICAgIW1lcmdlZEdyaWRPcHRpb25zLmNlbGxTZWxlY3Rpb24gJiZcbiAgICAgICAgIW1lcmdlZEdyaWRPcHRpb25zLmNvbHVtbkRlZnM/LnNvbWUoKGNvbDogQ29sRGVmKSA9PiBjb2wuZWRpdGFibGUpKVxuICAgICkge1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dCB8fD0ge307XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA/Pz0gdHJ1ZTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmNvbnRleHQuZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24gPVxuICAgICAgICBtZXJnZWRHcmlkT3B0aW9ucy5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAjZ2V0RGVmYXVsdEdyaWRPcHRpb25zPFQ+KGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnczxUPik6IEdyaWRPcHRpb25zPFQ+ICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIC8vIGNlbGxDbGFzc1J1bGVzIGNhbiBiZSBmdW5jdGlvbnMgb3Igc3RyaW5nIGV4cHJlc3Npb25zXG4gICAgY29uc3QgY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uID0gKCk6IGJvb2xlYW4gPT4gdHJ1ZTtcblxuICAgIGZ1bmN0aW9uIGdldEVkaXRhYmxlRm4oXG4gICAgICBpc1VuZWRpdGFibGU/OiBib29sZWFuLFxuICAgICk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc0VkaXRhYmxlID0gcGFyYW1zLmNvbERlZi5lZGl0YWJsZTtcblxuICAgICAgICBpZiAodHlwZW9mIGlzRWRpdGFibGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCBjb2x1bW4gPSBwYXJhbXMuYXBpLmdldENvbHVtbihwYXJhbXMuY29sRGVmKTtcbiAgICAgICAgICBpc0VkaXRhYmxlID0gaXNFZGl0YWJsZSh7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSBhcyBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1VuZWRpdGFibGUgPyAhaXNFZGl0YWJsZSA6ICEhaXNFZGl0YWJsZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuRWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKCksXG4gICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKHRydWUpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbTogQ2VsbENsYXNzUGFyYW1zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJhbS5jb2xEZWYgJiZcbiAgICAgICAgICB0eXBlb2YgcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgICAgcGFyYW0udmFsdWUsXG4gICAgICAgICAgICBwYXJhbS5kYXRhLFxuICAgICAgICAgICAgcGFyYW0ubm9kZT8ucm93SW5kZXgsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvckNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5JbnZhbGlkXTogZ2V0VmFsaWRhdG9yRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVmFsaWRhdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRIZWFkZXJDbGFzcyhcbiAgICAgIC4uLmNsYXNzTmFtZXM6IHN0cmluZ1tdXG4gICAgKTogKHBhcmFtczogSGVhZGVyQ2xhc3NQYXJhbXMpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNaW5XaWR0aCgpID8/IDA7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gcGFyYW1zLmNvbHVtbj8uZ2V0TWF4V2lkdGgoKSA/PyBJbmZpbml0eTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChwYXJhbXMuY29sdW1uR3JvdXA/LmlzUmVzaXphYmxlKCkgfHwgcGFyYW1zLmNvbHVtbj8uaXNSZXNpemFibGUoKSkgJiZcbiAgICAgICAgICBtaW5XaWR0aCA8IG1heFdpZHRoXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBbLi4uY2xhc3NOYW1lcywgU2t5SGVhZGVyQ2xhc3MuUmVzaXphYmxlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lcztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGF1dG9jb21wbGV0ZUZvcm1hdHRlcixcbiAgICAgICAgICBjb21wYXJhdG9yOiBhdXRvY29tcGxldGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5DdXJyZW5jeV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5DdXJyZW5jeV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgICBzb3J0aW5nT3JkZXI6IFtudWxsLCAnZGVzYycsICdhc2MnXSxcbiAgICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLiNzdXBwcmVzc0VudGVyKHBhcmFtcykgfHwgdGhpcy4jc3VwcHJlc3NUYWIocGFyYW1zKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuI2RhdGVTZXJ2aWNlLmZvcm1hdChcbiAgICAgICAgICAgICAgICAgIHBhcmFtcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIGFyZ3MubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgYXJncy5kYXRlRm9ybWF0IHx8ICdzaG9ydERhdGUnLFxuICAgICAgICAgICAgICAgICkgfHwgJydcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoKGVyciBhcyBFcnJvcikuc3RhY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNsb2dTZXJ2aWNlLmVycm9yKGAkeyhlcnIgYXMgRXJyb3IpLnN0YWNrfWApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7ZXJyfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTG9va3VwXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkxvb2t1cF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBQcm9wZXJ0aWVzID0gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMoXG4gICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxFZGl0b3JQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXMgPz9cbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IGFzIHN0cmluZ107XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTnVtYmVyXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLk51bWJlcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgICAgc29ydGluZ09yZGVyOiBbbnVsbCwgJ2Rlc2MnLCAnYXNjJ10sXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5SaWdodEFsaWduZWRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuUmlnaHRBbGlnbmVkXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Sb3dTZWxlY3Rvcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnUm93IHNlbGVjdGlvbicsXG4gICAgICAgICAgbWluV2lkdGg6IDU1LFxuICAgICAgICAgIG1heFdpZHRoOiA1NSxcbiAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZW1wbGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZW1wbGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZXh0XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRleHRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKCksXG4gICAgICAgIGhlYWRlckNvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBtaW5XaWR0aDogMTAwLFxuICAgICAgICBzdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnQ6IChcbiAgICAgICAgICBrZXlwcmVzczogU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICAgICAgICApID0+IGtleXByZXNzLmV2ZW50LmNvZGUgPT09ICdUYWInLFxuICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChrZXlwcmVzczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PlxuICAgICAgICAgIHRoaXMuI3N1cHByZXNzVGFiKGtleXByZXNzKSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgaGVhZGVyR3JvdXBDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGRvbUxheW91dDogJ2F1dG9IZWlnaHQnLFxuICAgICAgZW5zdXJlRG9tT3JkZXI6IHRydWUsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZm9jdXNHcmlkSW5uZXJFbGVtZW50OiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RGb2N1c2VkQ2VsbCA9IHBhcmFtcy5jb250ZXh0Py5bJ2xhc3RGb2N1c2VkQ2VsbCddIGFzXG4gICAgICAgICAgfCBMYXN0Rm9jdXNlZENlbGxcbiAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbCkge1xuICAgICAgICAgIGlmIChsYXN0Rm9jdXNlZENlbGwucm93SW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZENlbGwoXG4gICAgICAgICAgICAgIGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCxcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLmNvbHVtbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZEhlYWRlcihsYXN0Rm9jdXNlZENlbGwuY29sdW1uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0lkOiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFJZCA9IHBhcmFtcy5kYXRhLmlkO1xuICAgICAgICBpZiAoZGF0YUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zLmRhdGEuaWR9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuI2tleU1hcC5oYXMocGFyYW1zLmRhdGEpKSB7XG4gICAgICAgICAgdGhpcy4ja2V5TWFwLnNldChwYXJhbXMuZGF0YSwgYCR7cm93Tm9kZUlkLS19YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuI2tleU1hcC5nZXQocGFyYW1zLmRhdGEpIGFzIHN0cmluZztcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgIGlmIChwYXJhbXMubm9kZS5pZCkge1xuICAgICAgICAgIHJldHVybiBbYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGljb25zOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5rZXlzKGljb25NYXApLm1hcCgoaWNvbktleSkgPT4gW1xuICAgICAgICAgIGljb25LZXksXG4gICAgICAgICAgdGhpcy4jZ2V0SWNvblRlbXBsYXRlKGljb25LZXkgYXMga2V5b2YgSWNvbk1hcFR5cGUpLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudDogU2t5QWdHcmlkTG9hZGluZ0NvbXBvbmVudCxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudDogQ2VsbEZvY3VzZWRFdmVudCkgPT4gdGhpcy4jb25DZWxsRm9jdXNlZChldmVudCksXG4gICAgICByb3dNb2RlbFR5cGU6ICdjbGllbnRTaWRlJyxcbiAgICAgIHJvd1NlbGVjdGlvbjoge1xuICAgICAgICBtb2RlOiAnbXVsdGlSb3cnLFxuICAgICAgICBlbmFibGVDbGlja1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgIGVuYWJsZVNlbGVjdGlvbldpdGhvdXRLZXlzOiB0cnVlLFxuICAgICAgICBjaGVja2JveGVzOiBmYWxzZSxcbiAgICAgICAgaGVhZGVyQ2hlY2tib3g6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHNpbmdsZUNsaWNrRWRpdDogdHJ1ZSxcbiAgICAgIHN0eWxlTm9uY2U6IHRoaXMuI2NzcE5vbmNlID8/IHVuZGVmaW5lZCxcbiAgICAgIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zOiB0cnVlLFxuICAgICAgdGhlbWU6IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWdyaWQnKSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uVHlwZXMgPSBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMgYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29sRGVmXG4gICAgPjtcblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhYCR7dmFsdWUgfHwgJyd9YC5tYXRjaCgvXlteMC05XSooXFxkK1ssLl0/KStcXGQqW14wLTldKiQvKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBjdXJyZW5jeScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbXG4gICAgICAgICAgICBTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXSxcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0sXG4gICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNyZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmcnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuUm93U2VsZWN0b3JdLmhlYWRlck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRTa3lHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNvbkNlbGxGb2N1c2VkKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkRm9jdXMgPSB0aGlzLiNzaG91bGRGb2N1c0NoaWxkcmVuKGV2ZW50KTtcbiAgICBpZiAoc2hvdWxkRm9jdXMpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihjdXJyZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgI3Nob3VsZEZvY3VzQ2hpbGRyZW4oZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvdWxkRm9jdXMgPSB0cnVlO1xuICAgIC8vIFRoZSBBUEkgc2F5cyB0aGUgY29sdW1uIGNhbiBiZSBzdHJpbmcgb3IgbnVsbCwgYnV0IHNob3VsZCBiZSBhbiBvYmplY3QuXG4gICAgc2hvdWxkRm9jdXMgJiY9IHR5cGVvZiBldmVudC5jb2x1bW4gPT09ICdvYmplY3QnO1xuICAgIC8vIFJvdyBpbmRleCBjYW4gYmUgbnVtYmVyIG9yIG51bGwuXG4gICAgY29uc3Qgcm93Tm9kZSA9XG4gICAgICBOdW1iZXIuaXNJbnRlZ2VyKGV2ZW50LnJvd0luZGV4KSAmJlxuICAgICAgZXZlbnQuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoZXZlbnQucm93SW5kZXggYXMgbnVtYmVyKTtcbiAgICBzaG91bGRGb2N1cyAmJj0gISFyb3dOb2RlO1xuICAgIC8vIERvIG5vdCBjaGFuZ2UgZm9jdXMgaWYgdGhlIGNlbGwgaXMgYSByb3cgZHJhZyBvciBkbmQgc291cmNlLlxuICAgIHNob3VsZEZvY3VzICYmPSAhKGV2ZW50LmNvbHVtbiBhcyBBZ0NvbHVtbikuaXNSb3dEcmFnKHJvd05vZGUgYXMgUm93Tm9kZSk7XG4gICAgc2hvdWxkRm9jdXMgJiY9ICEoZXZlbnQuY29sdW1uIGFzIEFnQ29sdW1uKS5pc0RuZFNvdXJjZShyb3dOb2RlIGFzIFJvd05vZGUpO1xuICAgIHJldHVybiBzaG91bGRGb2N1cztcbiAgfVxuXG4gICNnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9uczxUPihcbiAgICBhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3M8VD4sXG4gICk6IEdyaWRPcHRpb25zPFQ+ICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy50aGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWVudHJ5LWdyaWQnKTtcbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI2dldEljb25UZW1wbGF0ZShpY29uS2V5OiBrZXlvZiBJY29uTWFwVHlwZSk6ICgpID0+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":["i1","i2","i3","i4","i1.SkyAgGridAdapterService"],"mappings":"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"}
|