@skyux/ag-grid 13.3.1 → 13.4.1

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.0\", ngImport: i0, type: SkyAgGridResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsbUNBQW1DLEVBQUU7WUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUNyRSw2Q0FBNkMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHlDQUF5QyxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCx1Q0FBdUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsK0NBQStDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGtEQUFrRCxFQUFFO1lBQ2xELE9BQU8sRUFBRSx1QkFBdUI7U0FDakM7UUFDRCxvREFBb0QsRUFBRTtZQUNwRCxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDOUQsMkNBQTJDLEVBQUU7WUFDM0MsT0FBTyxFQUFFLG1DQUFtQztTQUM3QztRQUNELDhEQUE4RCxFQUFFO1lBQzlELE9BQU8sRUFBRSxzQ0FBc0M7U0FDaEQ7UUFDRCwrREFBK0QsRUFBRTtZQUMvRCxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QscUVBQXFFLEVBQUU7WUFDckUsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGlEQUFpRCxFQUFFO1lBQ2pELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCxtREFBbUQsRUFBRTtZQUNuRCxPQUFPLEVBQUUsMkJBQTJCO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsc0NBQXNDO1NBQ2hEO1FBQ0QsdUNBQXVDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELDZDQUE2QyxFQUFFO1lBQzdDLE9BQU8sRUFBRSx1Q0FBdUM7U0FDakQ7UUFDRCw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLHlDQUF5QztTQUNuRDtRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSx3Q0FBd0M7U0FDbEQ7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUscURBQXFEO1NBQy9EO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRTtRQUNyRSwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUseUNBQXlDO1NBQ25EO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLHVEQUF1RDtTQUNqRTtRQUNELCtEQUErRCxFQUFFO1lBQy9ELE9BQU8sRUFBRSx5REFBeUQ7U0FDbkU7UUFDRCxxRUFBcUUsRUFBRTtZQUNyRSxPQUFPLEVBQUUsOENBQThDO1NBQ3hEO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSxtQ0FBbUM7U0FDN0M7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUZ6QixhQUFhOytHQUVaLHdCQUF3QixZQUZ6QixhQUFhOzsyRkFFWix3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1hZy1ncmlkJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSb3cgc2VsZWN0b3IgZm9yIHJvdyB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2NvbHVtbl9oZWFkaW5nOiB7IG1lc3NhZ2U6ICdSb3cgc2VsZWN0aW9uJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGRhdGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfaGludF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIG51bWJlciB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfdGV4dF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgdGV4dCB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBhdXRvY29tcGxldGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnRW50ZXIgYSB2YWxpZCBudW1iZXIuJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIGN1cnJlbmN5LicsXG4gICAgfSxcbiAgICBza3l1eF9sb29rdXBfdG9rZW5zX3N1bW1hcnk6IHsgbWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgY3VycmVuY3kgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfYXNjOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBjdXJyZW50bHkgYXNjZW5kaW5nJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1NvcnQgY29sdW1uIHswfSwgY3VycmVudGx5IGRlc2NlbmRpbmcnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBub3QgY3VycmVudGx5IHNvcnRlZCcsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRXhwYW5kIGNvbHVtbiBncm91cCB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQ29sbGFwc2UgY29sdW1uIGdyb3VwIHswfScsXG4gICAgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGV1ciBkZSBsaWduZSBwb3VyIGxhIGxpZ25lIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmc6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9uIGTigJl1bmUgbGlnbmUnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfZGF0ZXBpY2tlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRGF0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2hpbnRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1V0aWxpc2V6IGxlIGZvcm1hdCB7MH0uJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnTnVtw6lybyBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdUZXh0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1NhaXNpZSBhdXRvbWF0aXF1ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1biBudW3DqXJvIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1bmUgZGV2aXNlIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5OiB7IG1lc3NhZ2U6ICd7MH0gYXJ0aWNsZXMgc8OpbGVjdGlvbm7DqXMnIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0RldmlzZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgZMOpY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfbm90X3NvcnRlZDoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgbm9uIHRyacOpZScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQWdyYW5kaXIgbGUgZ3JvdXBlIGRlIGNvbG9ubmVzIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2NvbGxhcHNlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSw6lkdWlyZSBsZSBncm91cGUgZGUgY29sb25uZXMgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=","import { colorSchemeLight, themeQuartz, } from 'ag-grid-community';\nconst defaultsForAllThemes = {\n backgroundColor: 'var(--sky-override-ag-grid-background-color, var(--sky-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.0\", 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.0\", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGtCQUFrQixDQUF3QjtJQUUxQyxZQUFZLGlCQUF3QztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUIsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxFQUFFLENBQWdCLENBQUM7UUFFdEUsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXNCLEVBQ3RCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsTUFBTSxTQUFTLEdBQUcsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFFNUIsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7Z0JBQ3pELENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFDakMsQ0FBQztnQkFDRCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQW9CO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0UsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDOzhHQS9EVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Uge1xuICAjc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihza3lBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UgPSBza3lBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRFbGVtZW50QnlJZChwYXJlbnRFbDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gcGFyZW50RWwucXVlcnlTZWxlY3RvcihgIyR7c2VsZWN0b3J9YCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvY3VzZWRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICBjdXJyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIHBhcmVudEVsPzogSFRNTEVsZW1lbnQsXG4gICAgbW92ZUZvY3VzTGVmdD86IGJvb2xlYW4sXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4ocGFyZW50RWwpO1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuLmluZGV4T2YoY3VycmVudEVsKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IG1vdmVGb2N1c0xlZnRcbiAgICAgICAgPyBjdXJyZW50RWxlbWVudEluZGV4IC0gMVxuICAgICAgICA6IGN1cnJlbnRFbGVtZW50SW5kZXggKyAxO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghbW92ZUZvY3VzTGVmdCAmJiBmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPj0gbmV4dEluZGV4KSB8fFxuICAgICAgICAobW92ZUZvY3VzTGVmdCAmJiBuZXh0SW5kZXggPj0gMClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9jdXNhYmxlQ2hpbGRyZW5bbmV4dEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IFtmb2N1c0NoaWxkXSA9IHRoaXMuI3NreUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuXG4gICAgaWYgKGZvY3VzQ2hpbGQ/Lm9mZnNldFBhcmVudCkge1xuICAgICAgZm9jdXNDaGlsZC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19","/**\n * These column types can be used by setting the AG Grid [column definition `type`](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing) to one of the following values.\n * Any [SKY UX component](https://developer.blackbaud.com/skyux/components) can be made into a [cell editor](https://www.ag-grid.com/javascript-grid-cell-editor/) or [cell renderer](https://www.ag-grid.com/javascript-grid-cell-rendering-components/) component. If you would like to use a component that does not have a column definition yet, please consider [contributing it](https://developer.blackbaud.com/skyux/contribute/contribution-process) to the SKY UX data entry grid module, or [file an issue](https://developer.blackbaud.com/skyux/contribute/contribution-process/file-issue) in the [`@skyux/ag-grid` repo](https://github.com/blackbaud/skyux-ag-grid).\n */\nexport var SkyCellType;\n(function (SkyCellType) {\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as [SKY UX autocomplete components](https://developer.blackbaud.com/skyux/components/autocomplete). You can set any of the autocomplete component's properties by passing `SkyCellEditorAutocompleteParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Text can be entered and a value selected from the provided list.\n *\n * **Read-only mode**\n *\n * Cells the column will display the currently selected value's name property by default. If the autocomplete needs to show a different property or needs to be formatted in any way, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition.\n */\n SkyCellType[\"Autocomplete\"] = \"skyCellAutocomplete\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as a currency amount.\n *\n * **Read-only mode**\n *\n * Formats the display as currency using [SKY UX numeric components](https://developer.blackbaud.com/skyux/components/numeric).\n */\n SkyCellType[\"Currency\"] = \"skyCellCurrency\";\n /**\n * **Edit and read-only modes**\n *\n * Combines SkyCellType.Currency and SkyCellType.Validator, where the value is displayed as a currency and passed to a validator function.\n */\n SkyCellType[\"CurrencyValidator\"] = \"skyCellCurrencyValidator\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as [SKY UX datepicker components](https://developer.blackbaud.com/skyux/components/datepicker). You can set any of the datepicker component's properties by passing `SkyCellEditorDatepickerParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Date values can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will display the currently selected date formatted as `MM-DD-YYYY`, or the date format of the locale passed to `getGridOptions()`. If you would like to overwrite this format, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition. See the demo for an example.\n */\n SkyCellType[\"Date\"] = \"skyCellDate\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as [SKY UX lookup components](https://developer.blackbaud.com/skyux-v5/components/lookup). You can set any of the lookup component's properties by passing `SkyCellEditorLookupParams` in the [column definition's `cellEditorParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing). These params can be updated as other cell edits are made or [provided dynamically](https://www.ag-grid.com/javascript-grid-cell-editing/#dynamic-parameters) based on other cell values. See the demo for an example. Text can be entered and a value selected from the provided list.\n *\n * **Read-only mode**\n *\n * Cells the column will display, by default, either: the name(s) of the selected value(s) if there are less than 6, or a summary count of the values if there are more than 5. If the lookup needs to show a different property or needs to be formatted in any way, you can [define a `valueFormatter`](https://www.ag-grid.com/javascript-grid-value-formatters/) on the column definition.\n */\n SkyCellType[\"Lookup\"] = \"skyCellLookup\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as HTML number `inputs`. Only numbers can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will render as the number value.\n */\n SkyCellType[\"Number\"] = \"skyCellNumber\";\n /**\n * **Edit and read-only modes**\n *\n * Combines SkyCellType.Number and SkyCellType.Validator, where the value is displayed as a number and passed to a validator function.\n */\n SkyCellType[\"NumberValidator\"] = \"skyCellNumberValidator\";\n /**\n * **Edit and read-only modes**\n *\n * The header and cells in the column will render right aligned.\n */\n SkyCellType[\"RightAligned\"] = \"skyCellRightAligned\";\n /**\n * **Edit and read-only modes**\n *\n * Cells in the column will render as [SKY UX checkbox components](https://developer.blackbaud.com/skyux/components/checkbox). It allows the user to select multiple rows, and adds a highlight to selected rows. The [Ag Grid `rowNode`](https://www.ag-grid.com/javascript-grid-row-node/) will be updated to reflect the selected state.\n */\n SkyCellType[\"RowSelector\"] = \"skyCellRowSelector\";\n /**\n * **Read-only mode**\n *\n * Cells in the column will render in a `TemplateRef` passed in the column definition's `cellRendererParams.template` property, with `value` and `row` context. See the demo for an example.\n */\n SkyCellType[\"Template\"] = \"skyCellTemplate\";\n /**\n * **Edit mode**\n *\n * Cells in the column will be edited as HTML text `inputs`. Any characters can be entered.\n *\n * **Read-only mode**\n *\n * Cells in the column will render as their string value.\n */\n SkyCellType[\"Text\"] = \"skyCellText\";\n /**\n * **Edit and read-only modes**\n *\n * Cells in the column will be passed to a validator function that flags erroneous entries. You can set the validator function and message by passing a `SkyAgGridValidatorProperties` object as `skyComponentProperties` to [column definition's `cellRendererParams` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing), like `skyComponentProperties.validator` and `skyComponentProperties.validatorMessage`. SkyCellType.Validator can be combined with other cell types, such as SkyCellType.Autocomplete or SkyCellType.Date, by using the array syntax for the [column definition's `type` property](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing).\n */\n SkyCellType[\"Validator\"] = \"skyCellValidator\";\n})(SkyCellType || (SkyCellType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBaUdYO0FBakdELFdBQVksV0FBVztJQUNyQjs7Ozs7Ozs7T0FRRztJQUNILG1EQUFvQyxDQUFBO0lBQ3BDOzs7Ozs7OztPQVFHO0lBQ0gsMkNBQTRCLENBQUE7SUFDNUI7Ozs7T0FJRztJQUNILDZEQUE4QyxDQUFBO0lBQzlDOzs7Ozs7OztPQVFHO0lBQ0gsbUNBQW9CLENBQUE7SUFDcEI7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7Ozs7Ozs7T0FRRztJQUNILHVDQUF3QixDQUFBO0lBQ3hCOzs7O09BSUc7SUFDSCx5REFBMEMsQ0FBQTtJQUMxQzs7OztPQUlHO0lBQ0gsbURBQW9DLENBQUE7SUFDcEM7Ozs7T0FJRztJQUNILGlEQUFrQyxDQUFBO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBNEIsQ0FBQTtJQUM1Qjs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7O09BSUc7SUFDSCw2Q0FBOEIsQ0FBQTtBQUNoQyxDQUFDLEVBakdXLFdBQVcsS0FBWCxXQUFXLFFBaUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlc2UgY29sdW1uIHR5cGVzIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIEFHIEdyaWQgW2NvbHVtbiBkZWZpbml0aW9uIGB0eXBlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKSB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMuXG4gKiBBbnkgW1NLWSBVWCBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cykgY2FuIGJlIG1hZGUgaW50byBhIFtjZWxsIGVkaXRvcl0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdG9yLykgb3IgW2NlbGwgcmVuZGVyZXJdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLXJlbmRlcmluZy1jb21wb25lbnRzLykgY29tcG9uZW50LiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgYSBjb21wb25lbnQgdGhhdCBkb2VzIG5vdCBoYXZlIGEgY29sdW1uIGRlZmluaXRpb24geWV0LCBwbGVhc2UgY29uc2lkZXIgW2NvbnRyaWJ1dGluZyBpdF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb250cmlidXRlL2NvbnRyaWJ1dGlvbi1wcm9jZXNzKSB0byB0aGUgU0tZIFVYIGRhdGEgZW50cnkgZ3JpZCBtb2R1bGUsIG9yIFtmaWxlIGFuIGlzc3VlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbnRyaWJ1dGUvY29udHJpYnV0aW9uLXByb2Nlc3MvZmlsZS1pc3N1ZSkgaW4gdGhlIFtgQHNreXV4L2FnLWdyaWRgIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2JhdWQvc2t5dXgtYWctZ3JpZCkuXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxUeXBlIHtcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGF1dG9jb21wbGV0ZSBjb21wb25lbnRzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKS4gWW91IGNhbiBzZXQgYW55IG9mIHRoZSBhdXRvY29tcGxldGUgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zYCBpbiB0aGUgW2NvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxFZGl0b3JQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLiBUaGVzZSBwYXJhbXMgY2FuIGJlIHVwZGF0ZWQgYXMgb3RoZXIgY2VsbCBlZGl0cyBhcmUgbWFkZSBvciBbcHJvdmlkZWQgZHluYW1pY2FsbHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLWVkaXRpbmcvI2R5bmFtaWMtcGFyYW1ldGVycykgYmFzZWQgb24gb3RoZXIgY2VsbCB2YWx1ZXMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS4gVGV4dCBjYW4gYmUgZW50ZXJlZCBhbmQgYSB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSBwcm92aWRlZCBsaXN0LlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZSdzIG5hbWUgcHJvcGVydHkgYnkgZGVmYXVsdC4gSWYgdGhlIGF1dG9jb21wbGV0ZSBuZWVkcyB0byBzaG93IGEgZGlmZmVyZW50IHByb3BlcnR5IG9yIG5lZWRzIHRvIGJlIGZvcm1hdHRlZCBpbiBhbnkgd2F5LCB5b3UgY2FuIFtkZWZpbmUgYSBgdmFsdWVGb3JtYXR0ZXJgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtdmFsdWUtZm9ybWF0dGVycy8pIG9uIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICovXG4gIEF1dG9jb21wbGV0ZSA9ICdza3lDZWxsQXV0b2NvbXBsZXRlJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBhIGN1cnJlbmN5IGFtb3VudC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIEZvcm1hdHMgdGhlIGRpc3BsYXkgYXMgY3VycmVuY3kgdXNpbmcgW1NLWSBVWCBudW1lcmljIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9udW1lcmljKS5cbiAgICovXG4gIEN1cnJlbmN5ID0gJ3NreUNlbGxDdXJyZW5jeScsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqXG4gICAqIENvbWJpbmVzIFNreUNlbGxUeXBlLkN1cnJlbmN5IGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBjdXJyZW5jeSBhbmQgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uLlxuICAgKi9cbiAgQ3VycmVuY3lWYWxpZGF0b3IgPSAnc2t5Q2VsbEN1cnJlbmN5VmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGRhdGVwaWNrZXIgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtc2AgaW4gdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsRWRpdG9yUGFyYW1zYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS4gVGhlc2UgcGFyYW1zIGNhbiBiZSB1cGRhdGVkIGFzIG90aGVyIGNlbGwgZWRpdHMgYXJlIG1hZGUgb3IgW3Byb3ZpZGVkIGR5bmFtaWNhbGx5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0aW5nLyNkeW5hbWljLXBhcmFtZXRlcnMpIGJhc2VkIG9uIG90aGVyIGNlbGwgdmFsdWVzLiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuIERhdGUgdmFsdWVzIGNhbiBiZSBlbnRlcmVkLlxuICAgKlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICpcbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGZvcm1hdHRlZCBhcyBgTU0tREQtWVlZWWAsIG9yIHRoZSBkYXRlIGZvcm1hdCBvZiB0aGUgbG9jYWxlIHBhc3NlZCB0byBgZ2V0R3JpZE9wdGlvbnMoKWAuIElmIHlvdSB3b3VsZCBsaWtlIHRvIG92ZXJ3cml0ZSB0aGlzIGZvcm1hdCwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIERhdGUgPSAnc2t5Q2VsbERhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIFtTS1kgVVggbG9va3VwIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtdjUvY29tcG9uZW50cy9sb29rdXApLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGxvb2t1cCBjb21wb25lbnQncyBwcm9wZXJ0aWVzIGJ5IHBhc3NpbmcgYFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBUZXh0IGNhbiBiZSBlbnRlcmVkIGFuZCBhIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGxpc3QuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyB0aGUgY29sdW1uIHdpbGwgZGlzcGxheSwgYnkgZGVmYXVsdCwgZWl0aGVyOiB0aGUgbmFtZShzKSBvZiB0aGUgc2VsZWN0ZWQgdmFsdWUocykgaWYgdGhlcmUgYXJlIGxlc3MgdGhhbiA2LCBvciBhIHN1bW1hcnkgY291bnQgb2YgdGhlIHZhbHVlcyBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIDUuIElmIHRoZSBsb29rdXAgbmVlZHMgdG8gc2hvdyBhIGRpZmZlcmVudCBwcm9wZXJ0eSBvciBuZWVkcyB0byBiZSBmb3JtYXR0ZWQgaW4gYW55IHdheSwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqL1xuICBMb29rdXAgPSAnc2t5Q2VsbExvb2t1cCcsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgSFRNTCBudW1iZXIgYGlucHV0c2AuIE9ubHkgbnVtYmVycyBjYW4gYmUgZW50ZXJlZC5cbiAgICpcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgYXMgdGhlIG51bWJlciB2YWx1ZS5cbiAgICovXG4gIE51bWJlciA9ICdza3lDZWxsTnVtYmVyJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogQ29tYmluZXMgU2t5Q2VsbFR5cGUuTnVtYmVyIGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBudW1iZXIgYW5kIHBhc3NlZCB0byBhIHZhbGlkYXRvciBmdW5jdGlvbi5cbiAgICovXG4gIE51bWJlclZhbGlkYXRvciA9ICdza3lDZWxsTnVtYmVyVmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICpcbiAgICogVGhlIGhlYWRlciBhbmQgY2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIHJlbmRlciByaWdodCBhbGlnbmVkLlxuICAgKi9cbiAgUmlnaHRBbGlnbmVkID0gJ3NreUNlbGxSaWdodEFsaWduZWQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIFtTS1kgVVggY2hlY2tib3ggY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94KS4gSXQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBtdWx0aXBsZSByb3dzLCBhbmQgYWRkcyBhIGhpZ2hsaWdodCB0byBzZWxlY3RlZCByb3dzLiBUaGUgW0FnIEdyaWQgYHJvd05vZGVgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcm93LW5vZGUvKSB3aWxsIGJlIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc3RhdGUuXG4gICAqL1xuICBSb3dTZWxlY3RvciA9ICdza3lDZWxsUm93U2VsZWN0b3InLFxuICAvKipcbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqXG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgaW4gYSBgVGVtcGxhdGVSZWZgIHBhc3NlZCBpbiB0aGUgY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlYCBwcm9wZXJ0eSwgd2l0aCBgdmFsdWVgIGFuZCBgcm93YCBjb250ZXh0LiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuXG4gICAqL1xuICBUZW1wbGF0ZSA9ICdza3lDZWxsVGVtcGxhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIEhUTUwgdGV4dCBgaW5wdXRzYC4gQW55IGNoYXJhY3RlcnMgY2FuIGJlIGVudGVyZWQuXG4gICAqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZWlyIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIFRleHQgPSAnc2t5Q2VsbFRleHQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgZmxhZ3MgZXJyb25lb3VzIGVudHJpZXMuIFlvdSBjYW4gc2V0IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24gYW5kIG1lc3NhZ2UgYnkgcGFzc2luZyBhIGBTa3lBZ0dyaWRWYWxpZGF0b3JQcm9wZXJ0aWVzYCBvYmplY3QgYXMgYHNreUNvbXBvbmVudFByb3BlcnRpZXNgIHRvIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLCBsaWtlIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcmAgYW5kIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2VgLiBTa3lDZWxsVHlwZS5WYWxpZGF0b3IgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgY2VsbCB0eXBlcywgc3VjaCBhcyBTa3lDZWxsVHlwZS5BdXRvY29tcGxldGUgb3IgU2t5Q2VsbFR5cGUuRGF0ZSwgYnkgdXNpbmcgdGhlIGFycmF5IHN5bnRheCBmb3IgdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGB0eXBlYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS5cbiAgICovXG4gIFZhbGlkYXRvciA9ICdza3lDZWxsVmFsaWRhdG9yJyxcbn1cbiJdfQ==","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, DOCUMENT, ElementRef, HostBinding, Input, booleanAttribute, effect, inject, input, numberAttribute, viewChild, } from '@angular/core';\nimport { SkyIdModule, SkyMutationObserverService } from '@skyux/core';\nimport { SkyViewkeeperModule } from '@skyux/core';\nimport { SkyThemeService, } from '@skyux/theme';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { BehaviorSubject, ReplaySubject, Subject, combineLatest, distinctUntilChanged, of, take, takeUntil, } from 'rxjs';\nimport { getSkyAgGridTheme, getSkyAgGridThemeClassName, } from '../../styles/ag-grid-theme';\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\nimport { SkyCellType } from './types/cell-type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\nlet idIndex = 0;\nexport class SkyAgGridWrapperComponent {\n /**\n * Enable a compact layout for the grid when using modern theme. Compact layout uses\n * a smaller font size and row height to display more data in a smaller space.\n */\n set compact(value) {\n this.#isCompact.next(value);\n }\n get viewkeeperClasses() {\n return this.#_viewkeeperClasses;\n }\n set viewkeeperClasses(value) {\n this.#_viewkeeperClasses = value;\n this.#changeDetector.markForCheck();\n }\n get #isInEditMode() {\n if (this.agGrid && this.agGrid.api) {\n const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;\n if (primaryGridEditing) {\n return true;\n }\n else if (this.agGrid.api.getGridOption('masterDetail')) {\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid) => {\n if (detailGrid?.api && detailGrid.api.getEditingCells().length > 0) {\n innerEditing = true;\n }\n });\n return innerEditing;\n }\n }\n return false;\n }\n #_viewkeeperClasses;\n #ngUnsubscribe;\n #themeSvc;\n #wrapperClasses;\n #adapterService;\n #changeDetector;\n #parentChangeDetector;\n #elementRef;\n #document;\n #mutationObserverService;\n #isCompact;\n #hasEditableClass;\n constructor() {\n this.isNormalLayout = false;\n /**\n * The minimum height of the grid in pixels. The default value is `50`.\n */\n this.minHeight = input(50, ...(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.0\", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, NgClass, SkyIdModule, SkyViewkeeperModule], template: \"<span\\n class=\\\"nav-anchor\\\"\\n tabindex=\\\"0\\\"\\n [id]=\\\"beforeAnchorId\\\"\\n (focusin)=\\\"onAnchorFocus($event)\\\"\\n>\\n</span>\\n<div\\n #skyAgGridDiv\\n class=\\\"sky-ag-grid\\\"\\n skyViewkeeperOmitShadow=\\\".ag-body-horizontal-scroll\\\"\\n tabindex=\\\"0\\\"\\n [class.sky-ag-grid-top-scrollbar]=\\\"\\n agGrid?.gridOptions?.context &&\\n agGrid?.gridOptions?.context['enableTopScroll']\\n \\\"\\n [ngClass]=\\\"wrapperClasses$ | async\\\"\\n [id]=\\\"gridId\\\"\\n [skyViewkeeper]=\\\"viewkeeperClasses\\\"\\n (keydown)=\\\"onGridKeydown($event)\\\"\\n (keyup.escape)=\\\"onKeyUpEscape($event)\\\"\\n>\\n <ng-content />\\n</div>\\n<span\\n tabindex=\\\"0\\\"\\n class=\\\"nav-anchor\\\"\\n [id]=\\\"afterAnchorId\\\"\\n (focusin)=\\\"onAnchorFocus($event)\\\"\\n>\\n</span>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { agGrid: [{\n type: ContentChild,\n args: [AgGridAngular, {\n static: true,\n }]\n }], isNormalLayout: [{\n type: HostBinding,\n args: ['class.sky-ag-grid-layout-normal']\n }], compact: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEQsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDBCQUEwQixHQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBD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QkFBQyxhQUFhLEVBQUU7d0JBQzNCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQUlNLGNBQWM7c0JBRHBCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVFuQyxPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERPQ1VNRU5ULFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVZpZXdrZWVwZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3MsXG4gIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UsXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIEhlYWRlckZvY3VzZWRFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgb2YsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGdldFNreUFnR3JpZFRoZW1lLFxuICBnZXRTa3lBZ0dyaWRUaGVtZUNsYXNzTmFtZSxcbn0gZnJvbSAnLi4vLi4vc3R5bGVzL2FnLWdyaWQtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Q2VsbFR5cGUgfSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdDbGFzcywgU2t5SWRNb2R1bGUsIFNreVZpZXdrZWVwZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQENvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWFnLWdyaWQtbGF5b3V0LW5vcm1hbCcpXG4gIHB1YmxpYyBpc05vcm1hbExheW91dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYSBjb21wYWN0IGxheW91dCBmb3IgdGhlIGdyaWQgd2hlbiB1c2luZyBtb2Rlcm4gdGhlbWUuIENvbXBhY3QgbGF5b3V0IHVzZXNcbiAgICogYSBzbWFsbGVyIGZvbnQgc2l6ZSBhbmQgcm93IGhlaWdodCB0byBkaXNwbGF5IG1vcmUgZGF0YSBpbiBhIHNtYWxsZXIgc3BhY2UuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBjb21wYWN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jaXNDb21wYWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGhlaWdodCBvZiB0aGUgZ3JpZCBpbiBwaXhlbHMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGA1MGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWluSGVpZ2h0ID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPig1MCwge1xuICAgIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgYWZ0ZXJBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgYmVmb3JlQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGdyaWRJZDogc3RyaW5nO1xuICBwdWJsaWMgd3JhcHBlckNsYXNzZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB2aWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCAjaXNJbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiB0aGlzLmFnR3JpZC5hcGkpIHtcbiAgICAgIGNvbnN0IHByaW1hcnlHcmlkRWRpdGluZyA9IHRoaXMuYWdHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwO1xuICAgICAgaWYgKHByaW1hcnlHcmlkRWRpdGluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ0dyaWQuYXBpLmdldEdyaWRPcHRpb24oJ21hc3RlckRldGFpbCcpKSB7XG4gICAgICAgIGxldCBpbm5lckVkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLmZvckVhY2hEZXRhaWxHcmlkSW5mbygoZGV0YWlsR3JpZCkgPT4ge1xuICAgICAgICAgIGlmIChkZXRhaWxHcmlkPy5hcGkgJiYgZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBza3lBZ0dyaWREaXYgPVxuICAgIHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3NreUFnR3JpZERpdicpO1xuXG4gICNfdmlld2tlZXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gIHJlYWRvbmx5ICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI3dyYXBwZXJDbGFzc2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW1xuICAgIGBhZy10aGVtZS1za3ktZGF0YS1ncmlkLWRlZmF1bHRgLFxuICBdKTtcbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI3BhcmVudENoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHJlYWRvbmx5ICNtdXRhdGlvbk9ic2VydmVyU2VydmljZSA9IGluamVjdChTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNpc0NvbXBhY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgI2hhc0VkaXRhYmxlQ2xhc3MgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZEluZGV4Kys7XG4gICAgdGhpcy5hZnRlckFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYWZ0ZXItJyArIGlkSW5kZXg7XG4gICAgdGhpcy5iZWZvcmVBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWJlZm9yZS0nICsgaWRJbmRleDtcbiAgICB0aGlzLmdyaWRJZCA9ICdza3ktYWctZ3JpZC0nICsgaWRJbmRleDtcbiAgICB0aGlzLndyYXBwZXJDbGFzc2VzJCA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1pbkhlaWdodCA9IHRoaXMubWluSGVpZ2h0KCk7XG4gICAgICBjb25zdCBza3lBZ0dyaWREaXYgPSB0aGlzLnNreUFnR3JpZERpdigpPy5uYXRpdmVFbGVtZW50O1xuICAgICAgc2t5QWdHcmlkRGl2Py5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgJy0tc2t5LWFnLWdyaWQtbWluLWhlaWdodCcsXG4gICAgICAgIGAke21pbkhlaWdodH1weGAsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIGNvbnN0IGRvbUxheW91dCA9IHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5kb21MYXlvdXQ7XG4gICAgICBpZiAoZG9tTGF5b3V0ID09PSAnYXV0b0hlaWdodCcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goXG4gICAgICAgICAgICAnLmFnLWhlYWRlcicsXG4gICAgICAgICAgICAnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKCcuYWctaGVhZGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICB0aGlzLmlzTm9ybWFsTGF5b3V0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jcGFyZW50Q2hhbmdlRGV0ZWN0b3I/LmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWdHcmlkLmdyaWRSZWFkeVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuZmlyc3REYXRhUmVuZGVyZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLnJvd0RhdGFVcGRhdGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0YXJ0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmFtcy5jb2xEZWYudHlwZSkge1xuICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBBcnJheS5pc0FycmF5KHBhcmFtcy5jb2xEZWYudHlwZSlcbiAgICAgICAgICAgICAgPyBwYXJhbXMuY29sRGVmLnR5cGVcbiAgICAgICAgICAgICAgOiBbcGFyYW1zLmNvbERlZi50eXBlXTtcbiAgICAgICAgICAgIGNvbnN0IGFkZENsYXNzZXMgPSB0eXBlcy5tYXAoXG4gICAgICAgICAgICAgICh0KSA9PiBgc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLSR7dH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoW1xuICAgICAgICAgICAgICAuLi50aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgICAuLi5hZGRDbGFzc2VzLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHR5cGVzLmluY2x1ZGVzKFNreUNlbGxUeXBlLlRlbXBsYXRlKSAmJlxuICAgICAgICAgICAgICBwYXJhbXMucm93SW5kZXggIT09IG51bGxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEZvY3VzZWRDZWxsKHBhcmFtcy5yb3dJbmRleCwgcGFyYW1zLmNvbHVtbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoXG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlc1xuICAgICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJykpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2VsbEZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgICAgY29udGV4dFsnbGFzdEZvY3VzZWRDZWxsJ10gPSB7XG4gICAgICAgICAgICByb3dJbmRleDogZXZlbnQucm93SW5kZXgsXG4gICAgICAgICAgICBjb2x1bW46XG4gICAgICAgICAgICAgIHR5cGVvZiBldmVudC5jb2x1bW4gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4/LmdldENvbElkKClcbiAgICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBldmVudC5hcGk/LnNldEdyaWRPcHRpb24oJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYWdHcmlkLmhlYWRlckZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogSGVhZGVyRm9jdXNlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRleHQgfHwge307XG5cbiAgICAgICAgICBjb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBudWxsLFxuICAgICAgICAgICAgY29sdW1uOiBldmVudC5jb2x1bW4/LmdldFVuaXF1ZUlkXG4gICAgICAgICAgICAgID8gZXZlbnQuY29sdW1uLmdldFVuaXF1ZUlkKClcbiAgICAgICAgICAgICAgOiBgJHtldmVudC5jb2x1bW59YCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZXZlbnQuYXBpPy5zZXRHcmlkT3B0aW9uKCdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2lzQ29tcGFjdC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdDxbYm9vbGVhbiwgYm9vbGVhbiwgU2t5VGhlbWVTZXR0aW5nc0NoYW5nZSB8IHVuZGVmaW5lZF0+KFtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI2lzQ29tcGFjdC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlID8/IG9mKHVuZGVmaW5lZCksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtoYXNFZGl0YWJsZUNsYXNzLCBpc0NvbXBhY3QsIHNldHRpbmdzXSkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVHcmlkVGhlbWUoXG4gICAgICAgICAgaGFzRWRpdGFibGVDbGFzcyxcbiAgICAgICAgICBpc0NvbXBhY3QsXG4gICAgICAgICAgc2V0dGluZ3M/LmN1cnJlbnRTZXR0aW5ncyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYWctZ3JpZC1hbmd1bGFyJyk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLm5leHQoXG4gICAgICAgICEhYWdHcmlkRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktYWctZ3JpZC1lZGl0YWJsZScpLFxuICAgICAgKTtcbiAgICB9O1xuICAgIGlmIChhZ0dyaWRFbGVtZW50KSB7XG4gICAgICBjb25zdCBhZ0dyaWRDbGFzc09ic2VydmVyID1cbiAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlclNlcnZpY2UuY3JlYXRlKGNhbGxiYWNrKTtcbiAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIub2JzZXJ2ZShhZ0dyaWRFbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICAgICAgfSk7XG4gICAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGNsb3NpbmcgYSBtb2RhbCB3aGVuIGZvY3VzZWQgaW4gQUcgR3JpZC5cbiAgICovXG4gIHB1YmxpYyBvbktleVVwRXNjYXBlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hZ0dyaWQ/LmFwaS5zdG9wRWRpdGluZyh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdyaWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICF0aGlzLiNpc0luRWRpdE1vZGUgJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgY29uc3QgaWRUb0ZvY3VzID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgPyB0aGlzLmJlZm9yZUFuY2hvcklkXG4gICAgICAgIDogdGhpcy5hZnRlckFuY2hvcklkO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0Rm9jdXNlZEVsZW1lbnRCeUlkKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGlkVG9Gb2N1cyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQW5jaG9yRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwcmV2aW91c1dhc0dyaWQgPVxuICAgICAgcmVsYXRlZFRhcmdldCAmJiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMocmVsYXRlZFRhcmdldCk7XG5cbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXByZXZpb3VzV2FzR3JpZCkge1xuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYWctdGFiLWd1YXJkLmFnLXRhYi1ndWFyZC10b3AnKVxuICAgICAgICA/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvVG9wID0gISF0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbDtcbiAgICBjb25zdCByb290ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290Jyk7XG4gICAgY29uc3QgaGVhZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWhlYWRlcicpO1xuICAgIGNvbnN0IGZsb2F0aW5nQm90dG9tID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWZsb2F0aW5nLWJvdHRvbScpO1xuICAgIGNvbnN0IHNjcm9sbGJhciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgaWYgKHJvb3QgJiYgaGVhZGVyICYmIGZsb2F0aW5nQm90dG9tICYmIHNjcm9sbGJhcikge1xuICAgICAgaWYgKFxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0ICE9PVxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1RvcCA9IHJvb3QuY2hpbGRyZW5bMV0ubWF0Y2hlcygnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICAgIGlmICh0b1RvcCAmJiAhaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGhlYWRlci5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKCF0b1RvcCAmJiBpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgZmxvYXRpbmdCb3R0b20uYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVHcmlkVGhlbWUoXG4gICAgaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbixcbiAgICBpc0NvbXBhY3Q6IGJvb2xlYW4sXG4gICAgdGhlbWVTZXR0aW5ncz86IFNreVRoZW1lU2V0dGluZ3MsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHNreUFnR3JpZFRoZW1lID0gZ2V0U2t5QWdHcmlkVGhlbWUoXG4gICAgICBoYXNFZGl0YWJsZUNsYXNzID8gJ2RhdGEtZW50cnktZ3JpZCcgOiAnZGF0YS1ncmlkJyxcbiAgICApO1xuICAgIHRoaXMuYWdHcmlkPy5hcGkuc2V0R3JpZE9wdGlvbigndGhlbWUnLCBza3lBZ0dyaWRUaGVtZSk7XG4gICAgY29uc3Qgc2t5QWdHcmlkVGhlbWVDbGFzc05hbWUgPSBnZXRTa3lBZ0dyaWRUaGVtZUNsYXNzTmFtZShcbiAgICAgIGhhc0VkaXRhYmxlQ2xhc3MsXG4gICAgICB0aGVtZVNldHRpbmdzLFxuICAgICAgaXNDb21wYWN0LFxuICAgICk7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCk7XG4gICAgbGV0IHZhbHVlID0gW1xuICAgICAgLi4ucHJldmlvdXNWYWx1ZS5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKSxcbiAgICAgIHNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lLFxuICAgIF07XG4gICAgY29uc3QgdGV4dFNlbGVjdGlvbkNsYXNzID0gJ3NreS1hZy1ncmlkLXRleHQtc2VsZWN0aW9uJztcbiAgICBpZiAodGhpcy4jZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzKSkge1xuICAgICAgdmFsdWUucHVzaCh0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoYykgPT4gYyAhPT0gdGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbLi4ubmV3IFNldCh2YWx1ZSldKTtcbiAgfVxuXG4gICNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbikge1xuICAgICAgcmV0dXJuICFoYXNFZGl0YWJsZUNsYXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICAjc2t5QWdHcmlkRGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWRcIlxuICBza3lWaWV3a2VlcGVyT21pdFNoYWRvdz1cIi5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG48c3BhblxuICB0YWJpbmRleD1cIjBcIlxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICBbaWRdPVwiYWZ0ZXJBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG4iXX0=","import { Directive, Input, contentChildren, effect, inject, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/data-manager\";\nfunction toColumnWidthName(breakpoint) {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n/**\n * @internal\n */\nexport class SkyAgGridDataManagerAdapterDirective {\n #currentAgGrid;\n #currentDataState;\n #currentSkyAgGridWrapper;\n #dataStateSub;\n #viewConfig;\n #ngUnsubscribe;\n #changeDetector;\n #dataManagerSvc;\n #breakpoint;\n constructor(changeDetector, dataManagerSvc) {\n this.agGridList = contentChildren(AgGridAngular, ...(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.#ngUnsubscribe = new Subject();\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n this.#changeDetector = changeDetector;\n this.#dataManagerSvc = dataManagerSvc;\n effect(() => {\n const list = this.agGridList();\n this.#checkForAgGrid(list);\n });\n effect(() => {\n const list = this.skyAgGridWrapperList();\n this.#checkForSkyAgGridWrapper(list);\n });\n effect(() => {\n const breakpoint = this.#breakpoint();\n if (breakpoint) {\n this.#applyColumnWidths(breakpoint);\n }\n });\n }\n ngAfterContentInit() {\n if (this.viewId) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n this.#viewConfig = this.#dataManagerSvc.getViewById(this.viewId);\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #checkForAgGrid(agGridList) {\n const agGrid = agGridList[0];\n const agGridCount = agGridList.length;\n if (agGrid) {\n if (agGrid !== this.#currentAgGrid) {\n this.#registerAgGrid(agGrid);\n }\n if (agGridCount > 1) {\n console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');\n }\n }\n }\n #checkForSkyAgGridWrapper(wrappers) {\n const count = wrappers.length;\n const wrapper = wrappers[0];\n /* istanbul ignore else */\n if (wrapper !== this.#currentSkyAgGridWrapper) {\n this.#registerSkyAgGridWrapper(wrapper);\n }\n if (count > 1) {\n console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');\n }\n }\n #unregisterAgGrid() {\n this.#currentAgGrid = undefined;\n /* istanbul ignore if */\n if (this.#dataStateSub) {\n this.#dataStateSub.unsubscribe();\n }\n }\n #unregisterSkyAgGridWrapper() {\n this.#currentSkyAgGridWrapper = undefined;\n }\n #registerSkyAgGridWrapper(wrapper) {\n this.#unregisterSkyAgGridWrapper();\n this.#currentSkyAgGridWrapper = wrapper;\n setTimeout(() => {\n if (this.#currentSkyAgGridWrapper) {\n this.#currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n #registerAgGrid(agGrid) {\n this.#unregisterAgGrid();\n this.#currentAgGrid = agGrid;\n if (agGrid) {\n agGrid.gridReady.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n if (this.#viewConfig && this.viewId) {\n this.#viewConfig.onSelectAllClick = () => agGrid.api.selectAll();\n this.#viewConfig.onClearAllClick = () => agGrid.api.deselectAll();\n this.#dataManagerSvc.updateViewConfig(this.#viewConfig);\n this.#dataStateSub = this.#dataManagerSvc\n .getDataStateUpdates(this.#viewConfig.id)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n });\n if (agGrid.gridOptions?.context?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n this.#applyColumnWidths();\n }\n });\n agGrid.columnMoved\n .pipe(takeUntil(this.#ngUnsubscribe), filter((event) => ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source)))\n .subscribe((value) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n agGrid.columnResized\n .pipe(takeUntil(this.#ngUnsubscribe), filter((event) => event.source === 'uiColumnResized'))\n .subscribe((event) => {\n const colId = event.column?.getColId();\n const width = event.column?.getActualWidth();\n const breakpoint = this.#breakpoint();\n if (colId && width && breakpoint) {\n this.#updateColumnWidth(colId, width, breakpoint);\n }\n });\n agGrid.dragStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n agGrid.rowSelected\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n if (this.#viewConfig && this.#currentDataState) {\n const row = event.node;\n const selectedIds = this.#currentDataState.selectedIds || [];\n const rowIndex = selectedIds.indexOf(row.data.id);\n if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n }\n else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n this.#currentDataState.selectedIds = selectedIds;\n this.#dataManagerSvc.updateDataState(this.#currentDataState, this.#viewConfig.id);\n this.#changeDetector.markForCheck();\n }\n });\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates = agGrid.api.getColumnState();\n const activeSortColumnState = gridColumnStates?.find((aGridColumnState) => aGridColumnState.sortIndex === 0) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n if (this.#viewConfig && this.#currentDataState) {\n if (activeSortColumnState) {\n const activeSortColumnDef = agGrid.api.getColumnDef(activeSortColumnState.colId);\n this.#currentDataState.activeSortOption = {\n descending: activeSortColumnState.sort === 'desc',\n id: activeSortColumnState.colId,\n propertyName: activeSortColumnDef?.field || '',\n label: activeSortColumnDef?.headerName || '',\n };\n }\n else {\n this.#currentDataState.activeSortOption = undefined;\n }\n this.#dataManagerSvc.updateDataState(this.#currentDataState, this.#viewConfig.id);\n }\n });\n }\n }\n #updateColumnsInCurrentDataState(api) {\n if (this.#viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n const viewState = this.#currentDataState.getViewStateById(this.#viewConfig.id);\n if (viewState &&\n (viewState.displayedColumnIds.length !== columnOrder.length ||\n viewState.displayedColumnIds.some((col, i) => col !== columnOrder[i]))) {\n viewState.displayedColumnIds = columnOrder;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.#viewConfig.id, viewState), this.#viewConfig.id);\n }\n }\n }\n #getColumnOrder(api) {\n return api\n .getColumnState()\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n #displayColumns(dataState) {\n const agGrid = this.#currentAgGrid;\n if (agGrid && this.#viewConfig) {\n const viewState = dataState.getViewStateById(this.#viewConfig.id);\n let displayedColumnIds = [];\n /*istanbul ignore else*/\n if (viewState?.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n const columnOrder = this.#getColumnOrder(agGrid.api);\n if (displayedColumnIds.length !== columnOrder.length ||\n displayedColumnIds.some((col, i) => col !== columnOrder[i])) {\n const hideColumns = agGrid.api\n .getColumnState()\n .map((col) => col.colId)\n .filter((colId) => !displayedColumnIds.includes(colId));\n agGrid.api.setColumnsVisible(hideColumns, false);\n agGrid.api.setColumnsVisible(displayedColumnIds, true);\n agGrid.api.moveColumns(displayedColumnIds, 0);\n this.#removeColumnWidths(hideColumns);\n }\n }\n }\n #applySort(dataState) {\n const agGrid = this.#currentAgGrid;\n const activeSort = dataState.activeSortOption;\n if (activeSort) {\n agGrid?.api.applyColumnState({\n state: [\n {\n colId: activeSort.id,\n sort: activeSort.descending ? 'desc' : 'asc',\n },\n ],\n defaultState: { sort: null },\n });\n }\n }\n #updateColumnWidth(colId, width, breakpoint) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n currentWidths[toColumnWidthName(breakpoint)][colId] = width;\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.viewId, viewState), this.viewId);\n }\n }\n #removeColumnWidths(colIds) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n for (const colId of colIds) {\n delete currentWidths['xs'][colId];\n delete currentWidths['sm'][colId];\n }\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.viewId, viewState), this.viewId);\n }\n }\n #applyColumnWidths(breakpoint) {\n breakpoint ??= this.#breakpoint();\n if (breakpoint) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(viewState.displayedColumnIds, viewState.columnWidths, toColumnWidthName(breakpoint));\n this.#currentAgGrid?.api.sizeColumnsToFit({ columnLimits });\n }\n }\n }\n #getGridColumnLimits(displayedColumns, currentWidths, breakpointName) {\n const gridColumnLimits = [];\n for (const column of displayedColumns) {\n const columnWidth = currentWidths[breakpointName][column];\n if (columnWidth) {\n gridColumnLimits.push({\n key: column,\n minWidth: columnWidth,\n maxWidth: columnWidth,\n });\n }\n }\n return gridColumnLimits;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.0\", type: SkyAgGridDataManagerAdapterDirective, isStandalone: true, selector: \"[skyAgGridDataManagerAdapter]\", inputs: { viewId: \"viewId\" }, queries: [{ propertyName: \"agGridList\", predicate: AgGridAngular, descendants: true, isSignal: true }, { propertyName: \"skyAgGridWrapperList\", predicate: SkyAgGridWrapperComponent, descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[skyAgGridDataManagerAdapter]' }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }], propDecorators: { viewId: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFLFNBQVMsaUJBQWlCLENBQUMsVUFBeUI7SUFDbEQsT0FBTyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0NBQW9DO0lBYy9DLGNBQWMsQ0FBNEI7SUFDMUMsaUJBQWlCLENBQWtDO0lBQ25ELHdCQUF3QixDQUF3QztJQUNoRSxhQUFhLENBQTJCO0lBQ3hDLFdBQVcsQ0FBZ0M7SUFDM0MsY0FBYyxDQUF1QjtJQUNyQyxlQUFlLENBQW9CO0lBQ25DLGVBQWUsQ0FBd0I7SUFFOUIsV0FBVyxDQUVsQjtJQUVGLFlBQ0UsY0FBaUMs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QUVGLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsZ0JBQTBCLEVBQzFCLGFBQXNDLEVBQ3RDLGNBQTZDO1FBRTdDLE1BQU0sZ0JBQWdCLEdBQW1CLEVBQUUsQ0FBQztRQUU1QyxLQUFLLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTFELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDcEIsR0FBRyxFQUFFLE1BQU07b0JBQ1gsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxXQUFXO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs4R0E5WlUsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msa0pBTWEsYUFBYSwwRkFJM0IseUJBQXlCOzsyRkFWNUQsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFOzBIQUsvQyxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICBTa3lEYXRhVmlld0NvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2RhdGEtbWFuYWdlcic7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uUmVzaXplZEV2ZW50LFxuICBDb2x1bW5TdGF0ZSxcbiAgRHJhZ1N0b3BwZWRFdmVudCxcbiAgR3JpZEFwaSxcbiAgSUNvbHVtbkxpbWl0LFxuICBSb3dTZWxlY3RlZEV2ZW50LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcblxuZnVuY3Rpb24gdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludDogU2t5QnJlYWtwb2ludCk6ICd4cycgfCAnc20nIHtcbiAgcmV0dXJuIGJyZWFrcG9pbnQgPT09ICd4cycgPyAneHMnIDogJ3NtJztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlcl0nIH0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWV3SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWdHcmlkTGlzdCA9IGNvbnRlbnRDaGlsZHJlbjxBZ0dyaWRBbmd1bGFyPihBZ0dyaWRBbmd1bGFyLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyBza3lBZ0dyaWRXcmFwcGVyTGlzdCA9IGNvbnRlbnRDaGlsZHJlbihTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50LCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gICNjdXJyZW50QWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudERhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjZGF0YVN0YXRlU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICN2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZyB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZGF0YU1hbmFnZXJTdmM6IFNreURhdGFNYW5hZ2VyU2VydmljZTtcblxuICByZWFkb25seSAjYnJlYWtwb2ludCA9IHRvU2lnbmFsKFxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSkuYnJlYWtwb2ludENoYW5nZSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgZGF0YU1hbmFnZXJTdmM6IFNreURhdGFNYW5hZ2VyU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclN2YyA9IGRhdGFNYW5hZ2VyU3ZjO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmFnR3JpZExpc3QoKTtcblxuICAgICAgdGhpcy4jY2hlY2tGb3JBZ0dyaWQobGlzdCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuc2t5QWdHcmlkV3JhcHBlckxpc3QoKTtcblxuICAgICAgdGhpcy4jY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKGxpc3QpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKGJyZWFrcG9pbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aWV3SWQpIHtcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbJy5hZy1oZWFkZXInXSk7XG4gICAgICB0aGlzLiN2aWV3Q29uZmlnID0gdGhpcy4jZGF0YU1hbmFnZXJTdmMuZ2V0Vmlld0J5SWQodGhpcy52aWV3SWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjY2hlY2tGb3JBZ0dyaWQoYWdHcmlkTGlzdDogcmVhZG9ubHkgQWdHcmlkQW5ndWxhcltdKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gYWdHcmlkTGlzdFswXTtcbiAgICBjb25zdCBhZ0dyaWRDb3VudCA9IGFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgaWYgKGFnR3JpZCkge1xuICAgICAgaWYgKGFnR3JpZCAhPT0gdGhpcy4jY3VycmVudEFnR3JpZCkge1xuICAgICAgICB0aGlzLiNyZWdpc3RlckFnR3JpZChhZ0dyaWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWdHcmlkQ291bnQgPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2NoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcihcbiAgICB3cmFwcGVyczogcmVhZG9ubHkgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFtdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9IHdyYXBwZXJzLmxlbmd0aDtcbiAgICBjb25zdCB3cmFwcGVyID0gd3JhcHBlcnNbMF07XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh3cmFwcGVyICE9PSB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgdGhpcy4jcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXIpO1xuICAgIH1cblxuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ01vcmUgdGhhbiBvbmUgYWctZ3JpZCBjaGlsZCBjb21wb25lbnQgd2FzIGZvdW5kLiBVc2luZyB0aGUgZmlyc3QgYWctR3JpZC4nLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjdW5yZWdpc3RlckFnR3JpZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjdXJyZW50QWdHcmlkID0gdW5kZWZpbmVkO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHRoaXMuI2RhdGFTdGF0ZVN1Yikge1xuICAgICAgdGhpcy4jZGF0YVN0YXRlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgI3VucmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgI3JlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcih3cmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTtcbiAgICB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlciA9IHdyYXBwZXI7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgICB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlci52aWV3a2VlcGVyQ2xhc3NlcyA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZDogQWdHcmlkQW5ndWxhcik6IHZvaWQge1xuICAgIHRoaXMuI3VucmVnaXN0ZXJBZ0dyaWQoKTtcblxuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQgPSBhZ0dyaWQ7XG5cbiAgICBpZiAoYWdHcmlkKSB7XG4gICAgICBhZ0dyaWQuZ3JpZFJlYWR5LnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy4jdmlld0NvbmZpZyAmJiB0aGlzLnZpZXdJZCkge1xuICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcub25TZWxlY3RBbGxDbGljayA9ICgpOiB2b2lkID0+XG4gICAgICAgICAgICBhZ0dyaWQuYXBpLnNlbGVjdEFsbCgpO1xuICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcub25DbGVhckFsbENsaWNrID0gKCk6IHZvaWQgPT5cbiAgICAgICAgICAgIGFnR3JpZC5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMuI3ZpZXdDb25maWcpO1xuICAgICAgICAgIHRoaXMuI2RhdGFTdGF0ZVN1YiA9IHRoaXMuI2RhdGFNYW5hZ2VyU3ZjXG4gICAgICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiN2aWV3Q29uZmlnLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZSk7XG4gICAgICAgICAgICAgIHRoaXMuI2FwcGx5U29ydChkYXRhU3RhdGUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbXG4gICAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgIVtcbiAgICAgICAgICAgICAgICAnZ3JpZEluaXRpYWxpemluZycsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uRHJhZ2dlZCcsXG4gICAgICAgICAgICAgICAgJ2FwaScsXG4gICAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZSh2YWx1ZS5hcGkpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtblJlc2l6ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uUmVzaXplZEV2ZW50KSA9PiBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbElkID0gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpO1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZXZlbnQuY29sdW1uPy5nZXRBY3R1YWxXaWR0aCgpO1xuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgICAgICBpZiAoY29sSWQgJiYgd2lkdGggJiYgYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uV2lkdGgoY29sSWQsIHdpZHRoLCBicmVha3BvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuZHJhZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogRHJhZ1N0b3BwZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5yb3dTZWxlY3RlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGNvbHVtbk9yZGVyID0gdGhpcy4jZ2V0Q29sdW1uT3JkZXIoYXBpKTtcblxuICAgICAgY29uc3Qgdmlld1N0YXRlID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKFxuICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICB2aWV3U3RhdGUgJiZcbiAgICAgICAgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMubGVuZ3RoICE9PSBjb2x1bW5PcmRlci5sZW5ndGggfHxcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpXG4gICAgICApIHtcbiAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICB2aWV3U3RhdGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGFwaVxuICAgICAgLmdldENvbHVtblN0YXRlKClcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQgJiYgdGhpcy4jdmlld0NvbmZpZykge1xuICAgICAgY29uc3Qgdmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodGhpcy4jdmlld0NvbmZpZy5pZCk7XG4gICAgICBsZXQgZGlzcGxheWVkQ29sdW1uSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmICh2aWV3U3RhdGU/LmRpc3BsYXllZENvbHVtbklkcykge1xuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5PcmRlciA9IHRoaXMuI2dldENvbHVtbk9yZGVyKGFnR3JpZC5hcGkpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGRpc3BsYXllZENvbHVtbklkcy5sZW5ndGggIT09IGNvbHVtbk9yZGVyLmxlbmd0aCB8fFxuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMuc29tZSgoY29sLCBpKSA9PiBjb2wgIT09IGNvbHVtbk9yZGVyW2ldKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGhpZGVDb2x1bW5zID0gYWdHcmlkLmFwaVxuICAgICAgICAgIC5nZXRDb2x1bW5TdGF0ZSgpXG4gICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuY29sSWQpXG4gICAgICAgICAgLmZpbHRlcigoY29sSWQpID0+ICFkaXNwbGF5ZWRDb2x1bW5JZHMuaW5jbHVkZXMoY29sSWQpKTtcblxuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGhpZGVDb2x1bW5zLCBmYWxzZSk7XG4gICAgICAgIGFnR3JpZC5hcGkuc2V0Q29sdW1uc1Zpc2libGUoZGlzcGxheWVkQ29sdW1uSWRzLCB0cnVlKTtcbiAgICAgICAgYWdHcmlkLmFwaS5tb3ZlQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5JZHMsIDApO1xuICAgICAgICB0aGlzLiNyZW1vdmVDb2x1bW5XaWR0aHMoaGlkZUNvbHVtbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNhcHBseVNvcnQoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCBhY3RpdmVTb3J0ID0gZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb247XG5cbiAgICBpZiAoYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkPy5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sSWQ6IGFjdGl2ZVNvcnQuaWQsXG4gICAgICAgICAgICBzb3J0OiBhY3RpdmVTb3J0LmRlc2NlbmRpbmcgPyAnZGVzYycgOiAnYXNjJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHsgc29ydDogbnVsbCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNvbHVtbldpZHRoKFxuICAgIGNvbElkOiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lCcmVha3BvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgaWYgKHZpZXdTdGF0ZSAmJiB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGN1cnJlbnRXaWR0aHNbdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCldW2NvbElkXSA9IHdpZHRoO1xuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodGhpcy52aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHRoaXMudmlld0lkLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQ29sdW1uV2lkdGhzKGNvbElkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG5cbiAgICBpZiAodmlld1N0YXRlICYmIHRoaXMudmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgZm9yIChjb25zdCBjb2xJZCBvZiBjb2xJZHMpIHtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3hzJ11bY29sSWRdO1xuICAgICAgICBkZWxldGUgY3VycmVudFdpZHRoc1snc20nXVtjb2xJZF07XG4gICAgICB9XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh0aGlzLnZpZXdJZCwgdmlld1N0YXRlKSxcbiAgICAgICAgdGhpcy52aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50PzogU2t5QnJlYWtwb2ludCk6IHZvaWQge1xuICAgIGJyZWFrcG9pbnQgPz89IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgICB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlPy5nZXRWaWV3U3RhdGVCeUlkKHRoaXMudmlld0lkKTtcblxuICAgICAgaWYgKHZpZXdTdGF0ZSAmJiB2aWV3U3RhdGUuY29sdW1uV2lkdGhzICYmIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uTGltaXRzID0gdGhpcy4jZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLFxuICAgICAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMsXG4gICAgICAgICAgdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jY3VycmVudEFnR3JpZD8uYXBpLnNpemVDb2x1bW5zVG9GaXQoeyBjb2x1bW5MaW1pdHMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dldEdyaWRDb2x1bW5MaW1pdHMoXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10sXG4gICAgY3VycmVudFdpZHRoczogU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMsXG4gICAgYnJlYWtwb2ludE5hbWU6IGtleW9mIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICApOiBJQ29sdW1uTGltaXRbXSB7XG4gICAgY29uc3QgZ3JpZENvbHVtbkxpbWl0czogSUNvbHVtbkxpbWl0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGRpc3BsYXllZENvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY3VycmVudFdpZHRoc1ticmVha3BvaW50TmFtZV1bY29sdW1uXTtcblxuICAgICAgaWYgKGNvbHVtbldpZHRoKSB7XG4gICAgICAgIGdyaWRDb2x1bW5MaW1pdHMucHVzaCh7XG4gICAgICAgICAga2V5OiBjb2x1bW4sXG4gICAgICAgICAgbWluV2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICAgIG1heFdpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBncmlkQ29sdW1uTGltaXRzO1xuICB9XG59XG4iXX0=","import { InjectionToken, } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n/**\n * @internal\n */\nexport const SKY_AG_GRID_ROW_DELETE_CONTEXT = new InjectionToken('SkyAgGridRowDeleteContext');\n/**\n * Used to provide dependencies to the `SkyAgGridRowDeleteComponent` overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteContext {\n constructor(rows, gridElement, gridApi) {\n this.rows = rows;\n this.gridElement = gridElement;\n this.gridApi = gridApi;\n this.cancelRowDelete = new Subject();\n this.confirmRowDelete = new Subject();\n this.subscription = new Subscription();\n this.subscription.add(() => {\n this.cancelRowDelete.complete();\n this.confirmRowDelete.complete();\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsY0FBYyxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3pDLElBQUksY0FBYyxDQUE0QiwyQkFBMkIsQ0FBQyxDQUFDO0FBRTdFOzs7R0FHRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFLcEMsWUFDa0IsSUFBc0IsRUFDdEIsV0FBMEQsRUFDMUQsT0FBNEM7UUFGNUMsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQStDO1FBQzFELFlBQU8sR0FBUCxPQUFPLENBQXFDO1FBUDlDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9oRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgU2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0PignU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dCcpO1xuXG4vKipcbiAqIFVzZWQgdG8gcHJvdmlkZSBkZXBlbmRlbmNpZXMgdG8gdGhlIGBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnRgIG92ZXJsYXkuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRleHQge1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuY2VsUm93RGVsZXRlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlybVJvd0RlbGV0ZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcm93czogU2lnbmFsPHN0cmluZ1tdPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEVsZW1lbnQ6IFNpZ25hbDxFbGVtZW50UmVmPEhUTUxFbGVtZW50PltdIHwgdW5kZWZpbmVkPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEFwaTogV3JpdGFibGVTaWduYWw8R3JpZEFwaSB8IHVuZGVmaW5lZD4sXG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCgoKSA9PiB7XG4gICAgICB0aGlzLmNhbmNlbFJvd0RlbGV0ZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5jb25maXJtUm93RGVsZXRlLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal, } from '@angular/core/rxjs-interop';\nimport { SkyAffixModule, SkyResizeObserverService } from '@skyux/core';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\nimport { filter, fromEvent, map, merge, of, scan, startWith, switchMap, takeUntil, } from 'rxjs';\nimport { SKY_AG_GRID_ROW_DELETE_CONTEXT } from './ag-grid-row-delete-context';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\nimport * as i2 from \"@skyux/core\";\n/**\n * Component for rendering the inline delete template in the overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteComponent {\n #resizeObserverSvc;\n constructor() {\n this.service = inject(SKY_AG_GRID_ROW_DELETE_CONTEXT);\n this.tableWidthStyle = computed(() => {\n const tableWidth = this.tableWidth();\n if (tableWidth > 0) {\n return `${tableWidth}px`;\n }\n return 'auto';\n }, ...(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.0\", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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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WUFBWSxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUyxhQUFhLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7OEdBdkdVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdLQ3JDeEMseXFCQW9CQSxnS0RZWSxxQkFBcUIsdUtBQUUsY0FBYzs7MkZBS3BDLDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDRSx3QkFBd0IsV0FHekIsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLENBQUMsUUFDMUM7d0JBQ0osU0FBUyxFQUFFLHVDQUF1QztxQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTa3lBZmZpeE1vZHVsZSwgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5saW5lRGVsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHNjYW4sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQgfSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS1jb250ZXh0JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5saW5lIGRlbGV0ZSB0ZW1wbGF0ZSBpbiB0aGUgb3ZlcmxheS5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctZGVsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50LmNzcycsXG4gIGltcG9ydHM6IFtTa3lJbmxpbmVEZWxldGVNb2R1bGUsIFNreUFmZml4TW9kdWxlXSxcbiAgaG9zdDoge1xuICAgICdbc3R5bGVdJzogJ1wiLS10YWJsZS13aWR0aDogXCIgKyB0YWJsZVdpZHRoU3R5bGUoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCk7XG5cbiAgcHJvdGVjdGVkIHRhYmxlV2lkdGhTdHlsZSA9IGNvbXB1dGVkKCgpID0+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({\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.0\", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyAgGridRowDelete]',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHlCQUF5QixHQUMxQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sMkJBQTJCO0lBb0I3QixtQkFBbUIsQ0FFdEI7SUFDRyx1QkFBdUIsQ0FFMUI7SUFDRyxjQUFjLENBQXVCO0lBQ3JDLHFCQUFxQixDQVEzQjtJQUNNLFNBQVMsQ0FBc0Q7SUFDL0QsT0FBTyxDQUE0QjtJQUNuQyxXQUFXLENB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QUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDOzhHQTdNVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix3WUFrQkcsYUFBYTs7MkZBbEIzQywyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgY29udGVudENoaWxkLFxuICBpbmplY3QsXG4gIGxpbmtlZFNpZ25hbCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5T3ZlcmxheUluc3RhbmNlLFxuICBTa3lPdmVybGF5U2VydmljZSxcbiAgU2t5U2Nyb2xsYWJsZUhvc3RTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZEFwaSwgR3JpZE9wdGlvbnMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIFN1YmplY3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQsXG4gIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRleHQsXG59IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3MgfSBmcm9tICcuL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jYW5jZWwtYXJncyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNvbmZpcm0tYXJncyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBZ0dyaWRSb3dEZWxldGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBkYXRhIGluIHRoZSByb3dzIHdoZXJlIHRoZSBpbmxpbmUgZGVsZXRlIGFwcGVhcnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm93RGVsZXRlSWRzID0gbW9kZWw8c3RyaW5nW10+KFtdKTtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJnc2Agb2JqZWN0IHdoZW4gYSByb3cncyBpbmxpbmUgZGVsZXRlIGlzIGNhbmNlbGxlZC5cbiAgICovXG4gIHB1YmxpYyByb3dEZWxldGVDYW5jZWwgPSBvdXRwdXQ8U2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJncz4oKTtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3NgIG9iamVjdCB3aGVuIGEgcm93J3MgaW5saW5lIGRlbGV0ZSBpcyBjb25maXJtZWQuXG4gICAqL1xuICBwdWJsaWMgcm93RGVsZXRlQ29uZmlybSA9IG91dHB1dDxTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncz4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWdHcmlkID0gY29udGVudENoaWxkKEFnR3JpZEFuZ3VsYXIpO1xuXG4gIHJlYWRvbmx5ICNhZ0dyaWRCb2R5Vmlld3BvcnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+W11cbiAgPihbXSk7XG4gIHJlYWRvbmx5ICNhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PltdXG4gID4oW10pO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNyb3dEZWxldGVJZHNJbnRlcm5hbCA9IGxpbmtlZFNpZ25hbDx1bmtub3duW10sIHN0cmluZ1tdPih7XG4gICAgc291cmNlOiB0aGlzLnJvd0RlbGV0ZUlkcyxcbiAgICBjb21wdXRhdGlvbjogKHZhbHVlKSA9PlxuICAgICAgWy4uLm5ldyBTZXQodmFsdWUpXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5tYXAoU3RyaW5nKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKSxcbiAgICBlcXVhbDogKGEsIGIpID0+IGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2LCBpKSA9PiB2ID09PSBiW2ldKSxcbiAgfSk7XG4gIHJlYWRvbmx5ICNjbGlwUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSAjekluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdCg5OTgpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICByZWFkb25seSAjb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoU2t5T3ZlcmxheVNlcnZpY2UpO1xuICAjb3ZlcmxheTogU2t5T3ZlcmxheUluc3RhbmNlIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjcm93RGVsZXRlU3ZjOiBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0O1xuICByZWFkb25seSAjc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlID0gaW5qZWN0KFNreVNjcm9sbGFibGVIb3N0U2VydmljZSk7XG4gIHJlYWRvbmx5ICNzdGFja2luZ0NvbnRleHQgPSBpbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuI3N0YWNraW5nQ29udGV4dCkge1xuICAgICAgdGhpcy4jc3RhY2tpbmdDb250ZXh0LnpJbmRleFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHpJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3pJbmRleC5uZXh0KHpJbmRleCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuI3Jvd0RlbGV0ZVN2YyA9IG5ldyBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0KFxuICAgICAgdGhpcy4jcm93RGVsZXRlSWRzSW50ZXJuYWwuYXNSZWFkb25seSgpLFxuICAgICAgdG9TaWduYWwodGhpcy4jYWdHcmlkQm9keVZpZXdwb3J0KSxcbiAgICAgIHNpZ25hbDxHcmlkQXBpIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpLFxuICAgICk7XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuY2FuY2VsUm93RGVsZXRlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyb3dJZCkgPT4ge1xuICAgICAgICBpZiAocm93SWQpIHtcbiAgICAgICAgICB0aGlzLnJvd0RlbGV0ZUlkcy51cGRhdGUoKHJvd0lkcykgPT5cbiAgICAgICAgICAgIHJvd0lkcy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gcm93SWQpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVDYW5jZWwuZW1pdCh7IGlkOiByb3dJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuY29uZmlybVJvd0RlbGV0ZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocm93SWQpID0+IHtcbiAgICAgICAgaWYgKHJvd0lkKSB7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVDb25maXJtLmVtaXQoeyBpZDogcm93SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYWdHcmlkID0gdG9PYnNlcnZhYmxlKHRoaXMuYWdHcmlkKTtcbiAgICBjb25zdCBhZ0dyaWRSZWFkeSA9IGFnR3JpZC5waXBlKFxuICAgICAgZmlsdGVyKChhZ0dyaWQpID0+ICEhYWdHcmlkKSxcbiAgICAgIHN3aXRjaE1hcCgoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKSA9PiBhZ0dyaWQuZ3JpZFJlYWR5KSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgKTtcbiAgICBhZ0dyaWRSZWFkeS5zdWJzY3JpYmUoKHJlYWR5KSA9PiB7XG4gICAgICB0aGlzLiNhZ0dyaWRCb2R5Vmlld3BvcnQubmV4dChbXG4gICAgICAgIG5ldyBFbGVtZW50UmVmKFxuICAgICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgJ2Rpdi5hZy1yb290LXdyYXBwZXInLFxuICAgICAgICAgICkgYXMgSFRNTERpdkVsZW1lbnQsXG4gICAgICAgICksXG4gICAgICBdKTtcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZVN2Yy5ncmlkQXBpLnNldChyZWFkeS5hcGkpO1xuICAgIH0pO1xuICAgIGFnR3JpZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZ3JpZCkgPT4gISFncmlkKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkKSA9PlxuICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZ3JpZC5maXJzdERhdGFSZW5kZXJlZC5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIGdyaWQucm93RGF0YVVwZGF0ZWQuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgICAgICBhZ0dyaWRSZWFkeS5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbUV2ZW50KGdyaWQuYXBpLCAnZ3JpZE9wdGlvbnNDaGFuZ2VkJykpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgIGFnR3JpZFJlYWR5LnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZC5hcGksICdncmlkUHJlRGVzdHJveWVkJykucGlwZSh0YWtlKDEpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aChncmlkLmFwaT8uZ2V0R3JpZE9wdGlvbignZG9tTGF5b3V0JykpLFxuICAgICAgICAgICAgbWFwKCgpID0+IGdyaWQuYXBpPy5nZXRHcmlkT3B0aW9uKCdkb21MYXlvdXQnKSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGRvbUxheW91dDogR3JpZE9wdGlvbnNbJ2RvbUxheW91dCddKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2FnR3JpZEJvZHlWaWV3cG9ydC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGFnR3JpZEJvZHlDbGlwRWxlbWVudHMpID0+IHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBBRyBHcmlkJ3MgYGRvbUxheW91dDogJ2F1dG9IZWlnaHQnYCBvcHRpb24sXG4gICAgICAgIC8vIHRoZSBncmlkJ3MgYm9keSB2aWV3cG9ydCBpcyBjbGlwcGVkIGJ5IHRoZSBzY3JvbGxhYmxlIGhvc3QuXG4gICAgICAgIC8vIEJ1dCB3aGVuIHVzaW5nIGBkb21MYXlvdXQ6ICdub3JtYWwnYCwgdGhlIGdyaWQncyBib2R5IHZpZXdwb3J0XG4gICAgICAgIC8vIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBzY3JvbGxhYmxlIGhvc3QgZm9yIHRoZSByb3cgZGVsZXRlIG92ZXJsYXkuXG4gICAgICAgIHRoaXMuI2FnR3JpZEJvZHlDbGlwRWxlbWVudHMubmV4dChhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzKTtcbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChhZ0dyaWQpID0+ICEhYWdHcmlkKSxcbiAgICAgICAgc3dpdGNoTWFwKChhZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIpID0+IGFnR3JpZC5yb3dEYXRhVXBkYXRlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0RlbGV0ZUlkcy51cGRhdGUoKHJvd0lkcykgPT5cbiAgICAgICAgICAocm93SWRzID8/IFtdKS5maWx0ZXIoKGlkKSA9PiAhIWV2dC5hcGkuZ2V0Um93Tm9kZShpZCkpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI292ZXJsYXkgPSB0aGlzLiNvdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy4jZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgIHNob3dCYWNrZHJvcDogZmFsc2UsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgIGVuYWJsZVBvaW50ZXJFdmVudHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLiNvdmVybGF5LmF0dGFjaENvbXBvbmVudChTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQsIFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogU0tZX0FHX0dSSURfUk9XX0RFTEVURV9DT05URVhULFxuICAgICAgICB1c2VWYWx1ZTogdGhpcy4jcm93RGVsZXRlU3ZjLFxuICAgICAgfSxcbiAgICBdKTtcbiAgICB0aGlzLiN6SW5kZXhcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNvdmVybGF5LmNsb3NlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgICAgICB0aGlzLiNvdmVybGF5LmNvbXBvbmVudFJlZi5pbnN0YW5jZS56SW5kZXggPSB6SW5kZXgudG9TdHJpbmcoMTApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLiNjbGlwUGF0aFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI292ZXJsYXkuY2xvc2VkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgIHRoaXMuI292ZXJsYXk/LmNvbXBvbmVudFJlZi5pbnN0YW5jZS51cGRhdGVDbGlwUGF0aChjbGlwUGF0aCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlXG4gICAgICAud2F0Y2hTY3JvbGxhYmxlSG9zdENsaXBQYXRoQ2hhbmdlcyhcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZixcbiAgICAgICAgdGhpcy4jYWdHcmlkQm9keUNsaXBFbGVtZW50cy5hc09ic2VydmFibGUoKSxcbiAgICAgIClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgIHRoaXMuI2NsaXBQYXRoLm5leHQoY2xpcFBhdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3Jvd0RlbGV0ZVN2Yy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy4jb3ZlcmxheSkge1xuICAgICAgdGhpcy4jb3ZlcmxheVNlcnZpY2UuY2xvc2UodGhpcy4jb3ZlcmxheSk7XG4gICAgfVxuICB9XG59XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridModule, imports: [AgGridAngular,\n CommonModule,\n SkyAgGridResourcesModule,\n SkyAgGridWrapperComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AgGridAngular,\n CommonModule,\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n exports: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBaUJ4RSxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFDWixvQ0FBb0M7WUFDcEMsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix5QkFBeUIsYUFHekIsb0NBQW9DO1lBQ3BDLDJCQUEyQjtZQUMzQix5QkFBeUI7K0dBR2hCLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFFWix3QkFBd0I7WUFFeEIseUJBQXlCOzsyRkFRaEIsZUFBZTtrQkFmM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9DQUFvQzt3QkFDcEMsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQWdHcmlkQW5ndWxhcixcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlLFxuICAgIFNreUFnR3JpZFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkTW9kdWxlIHt9XG4iXX0=","/**\n * @internal\n */\nexport function applySkyLookupPropertiesDefaults(skyLookupProperties) {\n /* istanbul ignore if */\n if (!skyLookupProperties) {\n return {};\n }\n return {\n addClick: skyLookupProperties.addClick,\n ariaLabel: skyLookupProperties.ariaLabel || '',\n autocompleteAttribute: skyLookupProperties.autocompleteAttribute || 'off',\n data: skyLookupProperties.data || [],\n debounceTime: skyLookupProperties.debounceTime || 0,\n descriptorProperty: skyLookupProperties.descriptorProperty || 'name',\n disabled: skyLookupProperties.disabled || false,\n enableShowMore: skyLookupProperties.enableShowMore || false,\n idProperty: skyLookupProperties.idProperty,\n placeholderText: skyLookupProperties.placeholderText || '',\n propertiesToSearch: skyLookupProperties.propertiesToSearch,\n search: skyLookupProperties.search,\n searchAsync: skyLookupProperties.searchAsync,\n searchFilters: skyLookupProperties.searchFilters || [],\n searchResultsLimit: skyLookupProperties.searchResultsLimit,\n searchResultTemplate: skyLookupProperties.searchResultTemplate,\n searchTextMinimumCharacters: skyLookupProperties.searchTextMinimumCharacters || 1,\n selectMode: skyLookupProperties.selectMode,\n showAddButton: skyLookupProperties.showAddButton || false,\n showMoreConfig: skyLookupProperties.showMoreConfig || {},\n wrapperClass: 'ag-custom-component-popup',\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsbUJBQTBEO0lBRTFELHdCQUF3QjtJQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7UUFDdEMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQzlDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLHFCQUFxQixJQUFJLEtBQUs7UUFDekUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3BDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLElBQUksQ0FBQztRQUNuRCxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxrQkFBa0IsSUFBSSxNQUFNO1FBQ3BFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLElBQUksS0FBSztRQUMvQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxJQUFJLEtBQUs7UUFDM0QsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFVBQVU7UUFDMUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsSUFBSSxFQUFFO1FBQzFELGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLGtCQUFrQjtRQUMxRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtRQUNsQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsV0FBVztRQUM1QyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxJQUFJLEVBQUU7UUFDdEQsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsa0JBQWtCO1FBQzFELG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLG9CQUFvQjtRQUM5RCwyQkFBMkIsRUFDekIsbUJBQW1CLENBQUMsMkJBQTJCLElBQUksQ0FBQztRQUN0RCxVQUFVLEVBQUUsbUJBQW1CLENBQUMsVUFBVTtRQUMxQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxJQUFJLEtBQUs7UUFDekQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQ3hELFlBQVksRUFBRSwyQkFBMkI7S0FDMUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lBZ0dyaWRMb29rdXBQcm9wZXJ0aWVzIH0gZnJvbSAnLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhcbiAgc2t5TG9va3VwUHJvcGVydGllczogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB8IHVuZGVmaW5lZCxcbik6IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFza3lMb29rdXBQcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRDbGljazogc2t5TG9va3VwUHJvcGVydGllcy5hZGRDbGljayxcbiAgICBhcmlhTGFiZWw6IHNreUxvb2t1cFByb3BlcnRpZXMuYXJpYUxhYmVsIHx8ICcnLFxuICAgIGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTogc2t5TG9va3VwUHJvcGVydGllcy5hdXRvY29tcGxldGVBdHRyaWJ1dGUgfHwgJ29mZicsXG4gICAgZGF0YTogc2t5TG9va3VwUHJvcGVydGllcy5kYXRhIHx8IFtdLFxuICAgIGRlYm91bmNlVGltZTogc2t5TG9va3VwUHJvcGVydGllcy5kZWJvdW5jZVRpbWUgfHwgMCxcbiAgICBkZXNjcmlwdG9yUHJvcGVydHk6IHNreUxvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IHx8ICduYW1lJyxcbiAgICBkaXNhYmxlZDogc2t5TG9va3VwUHJvcGVydGllcy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICBlbmFibGVTaG93TW9yZTogc2t5TG9va3VwUHJvcGVydGllcy5lbmFibGVTaG93TW9yZSB8fCBmYWxzZSxcbiAgICBpZFByb3BlcnR5OiBza3lMb29rdXBQcm9wZXJ0aWVzLmlkUHJvcGVydHksXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBza3lMb29rdXBQcm9wZXJ0aWVzLnBsYWNlaG9sZGVyVGV4dCB8fCAnJyxcbiAgICBwcm9wZXJ0aWVzVG9TZWFyY2g6IHNreUxvb2t1cFByb3BlcnRpZXMucHJvcGVydGllc1RvU2VhcmNoLFxuICAgIHNlYXJjaDogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2gsXG4gICAgc2VhcmNoQXN5bmM6IHNreUxvb2t1cFByb3BlcnRpZXMuc2VhcmNoQXN5bmMsXG4gICAgc2VhcmNoRmlsdGVyczogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzIHx8IFtdLFxuICAgIHNlYXJjaFJlc3VsdHNMaW1pdDogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hSZXN1bHRzTGltaXQsXG4gICAgc2VhcmNoUmVzdWx0VGVtcGxhdGU6IHNreUxvb2t1cFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0VGVtcGxhdGUsXG4gICAgc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzOlxuICAgICAgc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnMgfHwgMSxcbiAgICBzZWxlY3RNb2RlOiBza3lMb29rdXBQcm9wZXJ0aWVzLnNlbGVjdE1vZGUsXG4gICAgc2hvd0FkZEJ1dHRvbjogc2t5TG9va3VwUHJvcGVydGllcy5zaG93QWRkQnV0dG9uIHx8IGZhbHNlLFxuICAgIHNob3dNb3JlQ29uZmlnOiBza3lMb29rdXBQcm9wZXJ0aWVzLnNob3dNb3JlQ29uZmlnIHx8IHt9LFxuICAgIHdyYXBwZXJDbGFzczogJ2FnLWN1c3RvbS1jb21wb25lbnQtcG9wdXAnLFxuICB9O1xufVxuIl19","/** The initial action that a cell editor should take when initialized. */\nexport var SkyAgGridCellEditorInitialAction;\n(function (SkyAgGridCellEditorInitialAction) {\n /** The cell should be cleared. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Delete\"] = 0] = \"Delete\";\n /** The cell value should be highlighted. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Highlighted\"] = 1] = \"Highlighted\";\n /** The cell value should be replaced with the initializing value. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Replace\"] = 2] = \"Replace\";\n /** The cell should not be modified and the cursor is placed at the end of the value. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Untouched\"] = 3] = \"Untouched\";\n})(SkyAgGridCellEditorInitialAction || (SkyAgGridCellEditorInitialAction = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsTUFBTSxDQUFOLElBQVksZ0NBU1g7QUFURCxXQUFZLGdDQUFnQztJQUMxQyxrQ0FBa0M7SUFDbEMsMkZBQVUsQ0FBQTtJQUNWLDRDQUE0QztJQUM1QyxxR0FBZSxDQUFBO0lBQ2YscUVBQXFFO0lBQ3JFLDZGQUFXLENBQUE7SUFDWCx3RkFBd0Y7SUFDeEYsaUdBQWEsQ0FBQTtBQUNmLENBQUMsRUFUVyxnQ0FBZ0MsS0FBaEMsZ0NBQWdDLFFBUzNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRoZSBpbml0aWFsIGFjdGlvbiB0aGF0IGEgY2VsbCBlZGl0b3Igc2hvdWxkIHRha2Ugd2hlbiBpbml0aWFsaXplZC4gKi9cbmV4cG9ydCBlbnVtIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHtcbiAgLyoqIFRoZSBjZWxsIHNob3VsZCBiZSBjbGVhcmVkLiAqL1xuICBEZWxldGUgPSAwLFxuICAvKiogVGhlIGNlbGwgdmFsdWUgc2hvdWxkIGJlIGhpZ2hsaWdodGVkLiAqL1xuICBIaWdobGlnaHRlZCA9IDEsXG4gIC8qKiBUaGUgY2VsbCB2YWx1ZSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgaW5pdGlhbGl6aW5nIHZhbHVlLiAqL1xuICBSZXBsYWNlID0gMixcbiAgLyoqIFRoZSBjZWxsIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgYW5kIHRoZSBjdXJzb3IgaXMgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHZhbHVlLiAqL1xuICBVbnRvdWNoZWQgPSAzLFxufVxuIl19","import { KeyCode } from 'ag-grid-community';\nimport { SkyAgGridCellEditorInitialAction } from './cell-editor-initial-action';\nexport class SkyAgGridCellEditorUtils {\n /**\n * Gets the initial action that a cell editor should take when initialized.\n * @param params The editor's initializing parameters.\n */\n static getEditorInitialAction(params) {\n if (params?.cellStartedEdit) {\n if (params.eventKey === KeyCode.BACKSPACE ||\n params.eventKey === KeyCode.DELETE) {\n return SkyAgGridCellEditorInitialAction.Delete;\n }\n else if (params.eventKey?.length === 1) {\n return SkyAgGridCellEditorInitialAction.Replace;\n }\n else {\n if (params.eventKey !== KeyCode.F2) {\n return SkyAgGridCellEditorInitialAction.Highlighted;\n }\n else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n }\n else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n /**\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.0\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyAutocompleteModule,\n SkyI18nModule,\n ], template: \"<div class=\\\"sky-ag-grid-cell-editor-autocomplete\\\" [formGroup]=\\\"editorForm\\\">\\n <sky-autocomplete\\n [allowAnyValue]=\\\"skyComponentProperties.allowAnyValue\\\"\\n [data]=\\\"skyComponentProperties.data\\\"\\n [debounceTime]=\\\"skyComponentProperties.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties.descriptorProperty\\\"\\n [highlightSearchText]=\\\"skyComponentProperties.highlightSearchText ?? true\\\"\\n [propertiesToSearch]=\\\"skyComponentProperties.propertiesToSearch\\\"\\n [search]=\\\"skyComponentProperties.search\\\"\\n [searchFilters]=\\\"skyComponentProperties.searchFilters\\\"\\n [searchResultsLimit]=\\\"skyComponentProperties.searchResultsLimit\\\"\\n [searchResultTemplate]=\\\"skyComponentProperties.searchResultTemplate\\\"\\n [searchTextMinimumCharacters]=\\\"\\n skyComponentProperties.searchTextMinimumCharacters\\n \\\"\\n (selectionChange)=\\\"\\n skyComponentProperties.selectionChange &&\\n skyComponentProperties.selectionChange($event)\\n \\\"\\n (openChange)=\\\"onAutocompleteOpenChange($event)\\\"\\n >\\n <input\\n #skyCellEditorAutocomplete\\n formControlName=\\\"selection\\\"\\n skyAutocomplete\\n type=\\\"text\\\"\\n [attr.aria-label]=\\\"\\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\\n | skyLibResources: columnHeader : rowNumber\\n \\\"\\n />\\n </sky-autocomplete>\\n</div>\\n\", styles: [\"sky-autocomplete input{background-color:transparent;border:none;box-shadow:none}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorAutocomplete', { read: ElementRef }]\n }], onBlur: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBRXpFOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdDQUF3QztJQVpyRDtRQWdCUyxlQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUN2QyxTQUFTLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtTQUNwQyxDQUFDLENBQUM7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bkIscUJBQXFCO3dCQUNyQixhQUFhO3FCQUNkOzhCQWtCTSxLQUFLO3NCQURYLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlyRCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBdXRvY29tcGxldGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0b2NvbXBsZXRlLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHNlbGVjdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyA9IHt9O1xuXG4gICNhdXRvY29tcGxldGVPcGVuID0gZmFsc2U7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gKHRoaXMuI3BhcmFtcy5ub2RlPy5yb3dJbmRleCA/PyAwKSArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICAvLyBBRyBHcmlkIHNldHMgZm9jdXMgdG8gdGhlIGNlbGwgdmlhIHNldFRpbWVvdXQsIGFuZCB0aGlzIHF1ZXVlcyB0aGUgaW5wdXQgdG8gZm9jdXMgYWZ0ZXIgdGhhdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgICBjb25zdCBjaGFyUHJlc3MgPSB0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZztcblxuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0UmFuZ2VUZXh0KGNoYXJQcmVzcyk7XG4gICAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpPy52YWx1ZTtcbiAgICByZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsID8gdmFsIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlT3BlbkNoYW5nZSgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNhdXRvY29tcGxldGVPcGVuID0gJGV2ZW50O1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2F1dG9jb21wbGV0ZU9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpXG4gICAgKSB7XG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZVwiIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8c2t5LWF1dG9jb21wbGV0ZVxuICAgIFthbGxvd0FueVZhbHVlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuYWxsb3dBbnlWYWx1ZVwiXG4gICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kYXRhXCJcbiAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVib3VuY2VUaW1lXCJcbiAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICBbaGlnaGxpZ2h0U2VhcmNoVGV4dF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmhpZ2hsaWdodFNlYXJjaFRleHQgPz8gdHJ1ZVwiXG4gICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFwiXG4gICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzXCJcbiAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlxuICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UgJiZcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVxuICAgIFwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25BdXRvY29tcGxldGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjc2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2F1dG9jb21wbGV0ZV9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9za3ktYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyAutonumericModule } from '@skyux/autonumeric';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/autonumeric\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorCurrencyComponent {\n constructor() {\n this.skyComponentProperties = {\n isCancellable: false,\n };\n this.currency = new UntypedFormControl();\n this.editorForm = new UntypedFormGroup({\n currency: this.currency,\n });\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#initialized = false;\n }\n onFocusOut(event) {\n if (event.relatedTarget && event.relatedTarget === this.params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n #triggerType;\n #changeDetector;\n #initialized;\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.params = params;\n this.columnHeader = this.params.api.getDisplayNameForColumn(this.params.column, 'header');\n this.rowNumber = this.params.rowIndex + 1;\n this.skyComponentProperties = {\n ...(this.params.skyComponentProperties || {\n decimalPlaces: 2,\n currencySymbol: '$',\n }),\n isCancellable: false,\n };\n }\n refresh(params) {\n this.agInit(params);\n }\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n this.input?.nativeElement.focus();\n // This setup is in `afterGuiAttached` due to the lifecycle of autonumeric which will highlight the initial value if it is in place when it renders.\n // Since we don't want that, we set the initial value after autonumeric initializes.\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(this.params);\n const control = this.currency;\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(parseFloat(String(this.params?.eventKey)) || undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(parseFloat(String(this.params?.value)));\n break;\n }\n }\n this.#changeDetector.markForCheck();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted &&\n (this.params?.value ?? '') !== '') {\n this.input?.nativeElement.select();\n }\n // When the cell is initialized with the Enter key, we need to suppress the first `onPressEnter`.\n this.#initialized = this.params?.eventKey !== 'Enter';\n });\n }\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n return this.currency.value ?? undefined;\n }\n /**\n * The autoNumeric library's event handler suppresses the escape key event. This additional handler re-enables AG Grid's default functionality.\n */\n onPressEscape() {\n if (this.params) {\n this.params.api.stopEditing(true);\n this.params.api.setFocusedCell(this.params.rowIndex, this.params.column);\n }\n }\n onPressEnter() {\n if (this.params && this.#initialized) {\n this.params.stopEditing();\n }\n this.#initialized = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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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QkFEWCxTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJakQsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lBdXRvbnVtZXJpY01vZHVsZSB9IGZyb20gJ0Bza3l1eC9hdXRvbnVtZXJpYyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckN1cnJlbmN5UGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItY3VycmVuY3ktcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY3VycmVuY3ktcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWN1cnJlbmN5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUF1dG9udW1lcmljTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZEN1cnJlbmN5UHJvcGVydGllcyAmIHtcbiAgICBpc0NhbmNlbGxhYmxlOiBib29sZWFuO1xuICB9ID0ge1xuICAgIGlzQ2FuY2VsbGFibGU6IGZhbHNlLFxuICB9O1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjdXJyZW5jeSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3ksXG4gIH0pO1xuICBwdWJsaWMgcGFyYW1zOiBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yQ3VycmVuY3knLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucmVsYXRlZFRhcmdldCAmJiBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLnBhcmFtcz8uZUdyaWRDZWxsKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMucGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMucGFyYW1zLmNvbHVtbixcbiAgICAgICdoZWFkZXInLFxuICAgICk7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLnBhcmFtcy5yb3dJbmRleCArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0ge1xuICAgICAgLi4uKHRoaXMucGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge1xuICAgICAgICBkZWNpbWFsUGxhY2VzOiAyLFxuICAgICAgICBjdXJyZW5jeVN5bWJvbDogJyQnLFxuICAgICAgfSksXG4gICAgICBpc0NhbmNlbGxhYmxlOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgIC8vIFRoaXMgc2V0dXAgaXMgaW4gYGFmdGVyR3VpQXR0YWNoZWRgIGR1ZSB0byB0aGUgbGlmZWN5Y2xlIG9mIGF1dG9udW1lcmljIHdoaWNoIHdpbGwgaGlnaGxpZ2h0IHRoZSBpbml0aWFsIHZhbHVlIGlmIGl0IGlzIGluIHBsYWNlIHdoZW4gaXQgcmVuZGVycy5cbiAgICAgIC8vIFNpbmNlIHdlIGRvbid0IHdhbnQgdGhhdCwgd2Ugc2V0IHRoZSBpbml0aWFsIHZhbHVlIGFmdGVyIGF1dG9udW1lcmljIGluaXRpYWxpemVzLlxuICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihcbiAgICAgICAgdGhpcy5wYXJhbXMsXG4gICAgICApO1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3VycmVuY3k7XG5cbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHBhcnNlRmxvYXQoU3RyaW5nKHRoaXMucGFyYW1zPy5ldmVudEtleSkpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcnNlRmxvYXQoU3RyaW5nKHRoaXMucGFyYW1zPy52YWx1ZSkpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZCAmJlxuICAgICAgICAodGhpcy5wYXJhbXM/LnZhbHVlID8/ICcnKSAhPT0gJydcbiAgICAgICkge1xuICAgICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHRoZSBjZWxsIGlzIGluaXRpYWxpemVkIHdpdGggdGhlIEVudGVyIGtleSwgd2UgbmVlZCB0byBzdXBwcmVzcyB0aGUgZmlyc3QgYG9uUHJlc3NFbnRlcmAuXG4gICAgICB0aGlzLiNpbml0aWFsaXplZCA9IHRoaXMucGFyYW1zPy5ldmVudEtleSAhPT0gJ0VudGVyJztcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVuY3kudmFsdWUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRvTnVtZXJpYyBsaWJyYXJ5J3MgZXZlbnQgaGFuZGxlciBzdXBwcmVzc2VzIHRoZSBlc2NhcGUga2V5IGV2ZW50LiBUaGlzIGFkZGl0aW9uYWwgaGFuZGxlciByZS1lbmFibGVzIEFHIEdyaWQncyBkZWZhdWx0IGZ1bmN0aW9uYWxpdHkuXG4gICAqL1xuICBwdWJsaWMgb25QcmVzc0VzY2FwZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbXMpIHtcbiAgICAgIHRoaXMucGFyYW1zLmFwaS5zdG9wRWRpdGluZyh0cnVlKTtcbiAgICAgIHRoaXMucGFyYW1zLmFwaS5zZXRGb2N1c2VkQ2VsbCh0aGlzLnBhcmFtcy5yb3dJbmRleCwgdGhpcy5wYXJhbXMuY29sdW1uKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25QcmVzc0VudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmFtcyAmJiB0aGlzLiNpbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5wYXJhbXMuc3RvcEVkaXRpbmcoKTtcbiAgICB9XG4gICAgdGhpcy4jaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8aW5wdXRcbiAgICAjc2t5Q2VsbEVkaXRvckN1cnJlbmN5XG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdXJyZW5jeVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgXCJcbiAgICBbc2t5QXV0b251bWVyaWNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllc1wiXG4gICAgW3NreUF1dG9udW1lcmljRm9ybUNoYW5nZXNVbmZvcm1hdHRlZF09XCJwYXJhbXM/LmV2ZW50S2V5Py5sZW5ndGggPT09IDFcIlxuICAgIChrZXl1cC5lbnRlcik9XCJvblByZXNzRW50ZXIoKVwiXG4gICAgKGtleXVwLmVzY2FwZSk9XCJvblByZXNzRXNjYXBlKClcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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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dGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2RhdGV0aW1lJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWREYXRlcGlja2VyUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2RhdGVwaWNrZXItcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreURhdGVwaWNrZXJNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIGRhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dIZWlnaHRXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMgPSB7fTtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yRGF0ZXBpY2tlcklucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBkYXRlcGlja2VySW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlc29sdmVkRGF0ZUZvcm1hdCA9ICcnO1xuXG4gICNjYWxlbmRhck9wZW4gPSBmYWxzZTtcbiAgI3BhcmFtczogU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZikgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBkYXRlcGlja2VyIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuZGF0ZXBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNhbGVuZGFyT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNjYWxlbmRhck9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGVGb3JtYXRDaGFuZ2UoZGF0ZUZvcm1hdDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlZERhdGVGb3JtYXQgPSBkYXRlRm9ybWF0O1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3BhcmFtcyA9IHBhcmFtcztcblxuICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24ocGFyYW1zKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnZGF0ZScpO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMuZXZlbnRLZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMuY29sdW1uV2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5jb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzID0gdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9ICh0aGlzLiNwYXJhbXMubm9kZS5yb3dIZWlnaHQgYXMgbnVtYmVyKSAtIDM7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuXG4gICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlLnN1YnNjcmliZSgodGhlbWVTZXR0aW5ncykgPT4ge1xuICAgICAgaWYgKHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzLnRoZW1lLm5hbWUgPT09ICdtb2Rlcm4nKSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9IHRoaXMuY29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSB0aGlzLiNwYXJhbXM/Lm5vZGU/LnJvd0hlaWdodDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9XG4gICAgICAgICAgdGhpcy5jb2x1bW5XaWR0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuc3VidHJhY3RPclplcm8oXG4gICAgICAgICAgdGhpcy4jcGFyYW1zPy5ub2RlLnJvd0hlaWdodCxcbiAgICAgICAgICAzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzUG9wdXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9wdXBQb3NpdGlvbigpOiAnb3ZlcicgfCAndW5kZXInIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gJ292ZXInO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRlcGlja2VySW5wdXRFbCA9IHRoaXMuZGF0ZXBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50IGFzXG4gICAgICAgIHwgSFRNTElucHV0RWxlbWVudFxuICAgICAgICB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGRhdGVwaWNrZXJJbnB1dEVsKSB7XG4gICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLmZvY3VzKCk7XG5cbiAgICAgICAgLy8gcHJvZ3JhbW1hdGljYWxseSBzZXQgdGhlIHZhbHVlIG9mIGluIHRoZSBpbnB1dDsgaG93ZXZlciwgZG8gbm90IGRvIHRoaXMgdmlhIHRoZSBmb3JtIGNvbnRyb2wgc28gdGhhdCB0aGUgdmFsdWUgaXMgbm90IGZvcm1hdHRlZCB3aGVuIGVkaXRpbmcgc3RhcnRzLlxuICAgICAgICAvLyBXYXRjaCBmb3IgdGhlIGZpcnN0IGJsdXIgYW5kIGZpcmUgYSAnY2hhbmdlJyBldmVudCBhcyBwcm9ncmFtbWF0aWMgY2hhbmdlcyB3b24ndCBxdWV1ZSBhIGNoYW5nZSBldmVudCwgYnV0IHdlIG5lZWQgdG8gZG8gdGhpcyBzbyB0aGF0IGZvcm1hdHRpbmcgaGFwcGVucyBpZiB0aGUgdXNlciB0YWJzIHRvIHRoZSBjYWxlbmRhciBidXR0b24uXG4gICAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZSkge1xuICAgICAgICAgIGZyb21FdmVudChkYXRlcGlja2VySW5wdXRFbCwgJ2JsdXInKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuc2VsZWN0KCk7XG5cbiAgICAgICAgICBjb25zdCBjaGFyUHJlc3MgPSB0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZztcblxuICAgICAgICAgIGlmIChjaGFyUHJlc3MpIHtcbiAgICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBEYXRlIHtcbiAgICB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ2RhdGUnKT8udmFsdWU7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2NhbGVuZGFyT3BlbiAmJlxuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItZGF0ZXBpY2tlclwiXG4gIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJjb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzXCJcbj5cbiAgPHNreS1kYXRlcGlja2VyXG4gICAgZGF0YS1za3ktaWQ9XCJjZWxsLWRhdGVwaWNrZXJcIlxuICAgIHBpY2tlckNsYXNzPVwiYWctY3VzdG9tLWNvbXBvbmVudC1wb3B1cFwiXG4gICAgKGRhdGVGb3JtYXRDaGFuZ2UpPVwib25EYXRlRm9ybWF0Q2hhbmdlKCRldmVudClcIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uQ2FsZW5kYXJPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjc2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJJbnB1dFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXG4gICAgICBza3lEYXRlcGlja2VySW5wdXRcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2FyaWFfbGFiZWwnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgICAgXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgICByZXNvbHZlZERhdGVGb3JtYXRcbiAgICAgICAgICA/ICgnc2t5dXhfZGF0ZXBpY2tlcl9mb3JtYXRfaGludF90ZXh0J1xuICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IHJlc29sdmVkRGF0ZUZvcm1hdClcbiAgICAgICAgICA6IG51bGxcbiAgICAgIFwiXG4gICAgICBbbWluRGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5tYXhEYXRlXCJcbiAgICAgIFtkYXRlRm9ybWF0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGF0ZUZvcm1hdFwiXG4gICAgICBbc3RhcnRpbmdEYXldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zdGFydGluZ0RheVwiXG4gICAgICBbc2t5RGF0ZXBpY2tlck5vVmFsaWRhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5za3lEYXRlcGlja2VyTm9WYWxpZGF0ZVwiXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJvd0hlaWdodFdpdGhvdXRCb3JkZXJzXCJcbiAgICAvPlxuICA8L3NreS1kYXRlcGlja2VyPlxuPC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyLookupModule } from '@skyux/lookup';\nimport { applySkyLookupPropertiesDefaults } from '../../apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@skyux/lookup\";\nimport * as i4 from \"@skyux/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorLookupComponent {\n constructor() {\n this.isAlive = false;\n this.editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl({\n value: [],\n disabled: false,\n }),\n });\n this.useAsyncSearch = false;\n this.labelText = undefined;\n this.#lookupOpen = false;\n this.#selectionModalOpen = false;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#elementRef = inject((ElementRef));\n }\n #lookupOpen;\n #selectionModalOpen;\n #params;\n #triggerType;\n #changeDetector;\n #elementRef;\n onBlur(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n else {\n this.#stopEditingOnBlur();\n }\n }\n agInit(params) {\n this.#params = params;\n if (!Array.isArray(this.#params.value)) {\n throw new Error(`Lookup value must be an array`);\n }\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('selection');\n this.labelText = params.skyComponentProperties?.ariaLabelledBy\n ? undefined\n : params.skyComponentProperties?.ariaLabel ||\n params.colDef.headerName ||\n params.colDef.headerTooltip ||\n params.colDef.field ||\n params.colDef.colId;\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue([]);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n }\n else {\n control.enable();\n }\n }\n this.skyComponentProperties = this.#updateComponentProperties(this.#params);\n this.useAsyncSearch =\n typeof this.skyComponentProperties.searchAsync === 'function';\n this.isAlive = true;\n this.width = this.#params.column.getActualWidth();\n this.#params.api.addEventListener('columnResized', (event) => {\n if (event.column?.getColId() === this.#params?.column.getColId()) {\n this.width = event.column?.getActualWidth();\n this.#changeDetector.markForCheck();\n }\n });\n this.#changeDetector.markForCheck();\n }\n isCancelAfterEnd() {\n // Shut down components to commit values before final value syncs to grid.\n this.isAlive = false;\n return false;\n }\n getGui() {\n return this.#elementRef.nativeElement;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getValue() {\n return this.editorForm.get('selection')?.value;\n }\n isPopup() {\n return true;\n }\n getPopupPosition() {\n return 'over';\n }\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const lookupInput = this.#elementRef.nativeElement.querySelector('.sky-lookup-input');\n lookupInput.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n lookupInput.setRangeText(`${this.#params?.eventKey}`);\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(lookupInput.value.length, lookupInput.value.length);\n lookupInput.dispatchEvent(new Event('input'));\n }\n else if (this.#triggerType === SkyAgGridCellEditorInitialAction.Untouched) {\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(lookupInput.value.length, lookupInput.value.length);\n }\n });\n }\n onLookupOpenChange(isOpen) {\n this.#lookupOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n onSelectionModalOpenChange(isOpen) {\n this.#selectionModalOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n #updateComponentProperties(params) {\n const skyLookupProperties = params.skyComponentProperties;\n return applySkyLookupPropertiesDefaults(skyLookupProperties);\n }\n #stopEditingOnBlur() {\n if (!this.#lookupOpen &&\n !this.#selectionModalOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-lookup', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyInputBoxModule,\n FormsModule,\n ReactiveFormsModule,\n SkyLookupModule,\n SkyIdModule,\n ], template: \"@if (isAlive && useAsyncSearch) {\\n <sky-input-box\\n [disabled]=\\\"skyComponentProperties?.disabled\\\"\\n [formGroup]=\\\"editorForm\\\"\\n >\\n <sky-lookup\\n formControlName=\\\"selection\\\"\\n [ariaLabelledBy]=\\\"\\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\\n \\\"\\n [autocompleteAttribute]=\\\"skyComponentProperties?.autocompleteAttribute\\\"\\n [data]=\\\"skyComponentProperties?.data\\\"\\n [debounceTime]=\\\"skyComponentProperties?.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties?.descriptorProperty\\\"\\n [enableShowMore]=\\\"skyComponentProperties?.enableShowMore\\\"\\n [idProperty]=\\\"skyComponentProperties?.idProperty\\\"\\n [placeholderText]=\\\"skyComponentProperties?.placeholderText\\\"\\n [propertiesToSearch]=\\\"skyComponentProperties?.propertiesToSearch\\\"\\n [search]=\\\"skyComponentProperties?.search\\\"\\n [searchFilters]=\\\"skyComponentProperties?.searchFilters\\\"\\n [searchResultsLimit]=\\\"skyComponentProperties?.searchResultsLimit\\\"\\n [searchResultTemplate]=\\\"skyComponentProperties?.searchResultTemplate\\\"\\n [searchTextMinimumCharacters]=\\\"\\n skyComponentProperties?.searchTextMinimumCharacters\\n \\\"\\n [selectMode]=\\\"skyComponentProperties?.selectMode\\\"\\n [showAddButton]=\\\"skyComponentProperties?.showAddButton\\\"\\n [showMoreConfig]=\\\"skyComponentProperties?.showMoreConfig\\\"\\n [wrapperClass]=\\\"skyComponentProperties?.wrapperClass\\\"\\n (searchAsync)=\\\"skyComponentProperties?.searchAsync?.($event)\\\"\\n (addClick)=\\\"skyComponentProperties?.addClick?.($event)\\\"\\n (openChange)=\\\"onLookupOpenChange($event)\\\"\\n (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($event)\\\"\\n />\\n </sky-input-box>\\n}\\n@if (isAlive && !useAsyncSearch) {\\n <sky-input-box\\n [disabled]=\\\"skyComponentProperties?.disabled\\\"\\n [formGroup]=\\\"editorForm\\\"\\n >\\n <sky-lookup\\n formControlName=\\\"selection\\\"\\n [ariaLabelledBy]=\\\"\\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\\n \\\"\\n [autocompleteAttribute]=\\\"skyComponentProperties?.autocompleteAttribute\\\"\\n [data]=\\\"skyComponentProperties?.data\\\"\\n [debounceTime]=\\\"skyComponentProperties?.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties?.descriptorProperty\\\"\\n [enableShowMore]=\\\"skyComponentProperties?.enableShowMore\\\"\\n [idProperty]=\\\"skyComponentProperties?.idProperty\\\"\\n [placeholderText]=\\\"skyComponentProperties?.placeholderText\\\"\\n [propertiesToSearch]=\\\"skyComponentProperties?.propertiesToSearch\\\"\\n [search]=\\\"skyComponentProperties?.search\\\"\\n [searchFilters]=\\\"skyComponentProperties?.searchFilters\\\"\\n [searchResultsLimit]=\\\"skyComponentProperties?.searchResultsLimit\\\"\\n [searchResultTemplate]=\\\"skyComponentProperties?.searchResultTemplate\\\"\\n [searchTextMinimumCharacters]=\\\"\\n skyComponentProperties?.searchTextMinimumCharacters\\n \\\"\\n [selectMode]=\\\"skyComponentProperties?.selectMode\\\"\\n [showAddButton]=\\\"skyComponentProperties?.showAddButton\\\"\\n [showMoreConfig]=\\\"skyComponentProperties?.showMoreConfig\\\"\\n [wrapperClass]=\\\"skyComponentProperties?.wrapperClass\\\"\\n (addClick)=\\\"skyComponentProperties?.addClick?.($event)\\\"\\n (openChange)=\\\"onLookupOpenChange($event)\\\"\\n (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($event)\\\"\\n />\\n </sky-input-box>\\n}\\n<div #screenReaderLabel=\\\"skyId\\\" class=\\\"sky-screen-reader-only\\\" skyId>\\n {{ labelText }}\\n</div>\\n\", styles: [\":host{display:block}\\n\"] }]\n }], propDecorators: { width: [{\n type: HostBinding,\n args: ['style.width.px']\n }], onBlur: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLaEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUd6RTs7R0FFRztBQWNILE1BQU0sT0FBTyxrQ0FBa0M7SUFiL0M7UUFvQlMsWUFBTyxH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QUVELDBCQUEwQixDQUN4QixNQUFpQztRQUVqQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUMxRCxPQUFPLGdDQUFnQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUNFLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDakIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztZQUNoRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXZLVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxpTUM1Qy9DLGsvR0EwRUEsK0VEckNJLGlCQUFpQiw0T0FDakIsV0FBVyxrU0FDWCxtQkFBbUIsK1VBQ25CLGVBQWUsaVhBQ2YsV0FBVzs7MkZBR0Ysa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7cUJBQ1o7OEJBTU0sS0FBSztzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQjtnQkF1QnRCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TG9va3VwTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29sdW1uUmVzaXplZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4uLy4uL2FwcGx5LWxvb2t1cC1wcm9wZXJ0aWVzLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWxvb2t1cC1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2xvb2t1cC1wcm9wZXJ0aWVzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItbG9va3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFNreUlucHV0Qm94TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2t5TG9va3VwTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgcHVibGljIHdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM/OiBTa3lBZ0dyaWRMb29rdXBQcm9wZXJ0aWVzO1xuICBwdWJsaWMgaXNBbGl2ZSA9IGZhbHNlO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBzZWxlY3Rpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woe1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9KTtcbiAgcHVibGljIHVzZUFzeW5jU2VhcmNoID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICNsb29rdXBPcGVuID0gZmFsc2U7XG4gICNzZWxlY3Rpb25Nb2RhbE9wZW4gPSBmYWxzZTtcbiAgI3BhcmFtczogU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuI3BhcmFtcy52YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9va3VwIHZhbHVlIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICB9XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgIHRoaXMubGFiZWxUZXh0ID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbGxlZEJ5XG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsIHx8XG4gICAgICAgIHBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZSB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmhlYWRlclRvb2x0aXAgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5maWVsZCB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmNvbElkO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLiN1cGRhdGVDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMuI3BhcmFtcyk7XG4gICAgdGhpcy51c2VBc3luY1NlYXJjaCA9XG4gICAgICB0eXBlb2YgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaEFzeW5jID09PSAnZnVuY3Rpb24nO1xuICAgIHRoaXMuaXNBbGl2ZSA9IHRydWU7XG4gICAgdGhpcy53aWR0aCA9IHRoaXMuI3BhcmFtcy5jb2x1bW4uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICB0aGlzLiNwYXJhbXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY29sdW1uUmVzaXplZCcsXG4gICAgICAoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpID09PSB0aGlzLiNwYXJhbXM/LmNvbHVtbi5nZXRDb2xJZCgpKSB7XG4gICAgICAgICAgdGhpcy53aWR0aCA9IGV2ZW50LmNvbHVtbj8uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGlzQ2FuY2VsQWZ0ZXJFbmQoKTogYm9vbGVhbiB7XG4gICAgLy8gU2h1dCBkb3duIGNvbXBvbmVudHMgdG8gY29tbWl0IHZhbHVlcyBiZWZvcmUgZmluYWwgdmFsdWUgc3luY3MgdG8gZ3JpZC5cbiAgICB0aGlzLmlzQWxpdmUgPSBmYWxzZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0R3VpKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGdldFZhbHVlKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JGb3JtLmdldCgnc2VsZWN0aW9uJyk/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGlzUG9wdXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9wdXBQb3NpdGlvbigpOiAnb3ZlcicgfCAndW5kZXInIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gJ292ZXInO1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBsb29rdXBJbnB1dDogSFRNTFRleHRBcmVhRWxlbWVudCA9XG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWxvb2t1cC1pbnB1dCcpO1xuICAgICAgbG9va3VwSW5wdXQuZm9jdXMoKTtcbiAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZSkge1xuICAgICAgICBsb29rdXBJbnB1dC5zZXRSYW5nZVRleHQoYCR7dGhpcy4jcGFyYW1zPy5ldmVudEtleX1gKTtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgbG9va3VwSW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgbG9va3VwSW5wdXQudmFsdWUubGVuZ3RoLFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgKTtcbiAgICAgICAgbG9va3VwSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZFxuICAgICAgKSB7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgIGxvb2t1cElucHV0LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Mb29rdXBPcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI2xvb2t1cE9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbk1vZGFsT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNzZWxlY3Rpb25Nb2RhbE9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gICN1cGRhdGVDb21wb25lbnRQcm9wZXJ0aWVzKFxuICAgIHBhcmFtczogU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyxcbiAgKTogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB7XG4gICAgY29uc3Qgc2t5TG9va3VwUHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzO1xuICAgIHJldHVybiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhza3lMb29rdXBQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gICNzdG9wRWRpdGluZ09uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy4jbG9va3VwT3BlbiAmJlxuICAgICAgIXRoaXMuI3NlbGVjdGlvbk1vZGFsT3BlbiAmJlxuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGlzQWxpdmUgJiYgdXNlQXN5bmNTZWFyY2gpIHtcbiAgPHNreS1pbnB1dC1ib3hcbiAgICBbZGlzYWJsZWRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGlzYWJsZWRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gID5cbiAgICA8c2t5LWxvb2t1cFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsbGVkQnkgPz8gc2NyZWVuUmVhZGVyTGFiZWwuaWRcbiAgICAgIFwiXG4gICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICBbZGF0YV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kYXRhXCJcbiAgICAgIFtkZWJvdW5jZVRpbWVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVib3VuY2VUaW1lXCJcbiAgICAgIFtkZXNjcmlwdG9yUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICAgIFtlbmFibGVTaG93TW9yZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5lbmFibGVTaG93TW9yZVwiXG4gICAgICBbaWRQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5pZFByb3BlcnR5XCJcbiAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoXCJcbiAgICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEZpbHRlcnNcIlxuICAgICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgICAgXCJcbiAgICAgIFtzZWxlY3RNb2RlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlbGVjdE1vZGVcIlxuICAgICAgW3Nob3dBZGRCdXR0b25dPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd0FkZEJ1dHRvblwiXG4gICAgICBbc2hvd01vcmVDb25maWddPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd01vcmVDb25maWdcIlxuICAgICAgW3dyYXBwZXJDbGFzc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy53cmFwcGVyQ2xhc3NcIlxuICAgICAgKHNlYXJjaEFzeW5jKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEFzeW5jPy4oJGV2ZW50KVwiXG4gICAgICAoYWRkQ2xpY2spPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYWRkQ2xpY2s/LigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uTG9va3VwT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UpPVwib25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9za3ktaW5wdXQtYm94PlxufVxuQGlmIChpc0FsaXZlICYmICF1c2VBc3luY1NlYXJjaCkge1xuICA8c2t5LWlucHV0LWJveFxuICAgIFtkaXNhYmxlZF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCJcbiAgPlxuICAgIDxza3ktbG9va3VwXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3Rpb25cIlxuICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hcmlhTGFiZWxsZWRCeSA/PyBzY3JlZW5SZWFkZXJMYWJlbC5pZFxuICAgICAgXCJcbiAgICAgIFthdXRvY29tcGxldGVBdHRyaWJ1dGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXV0b2NvbXBsZXRlQXR0cmlidXRlXCJcbiAgICAgIFtkYXRhXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRhdGFcIlxuICAgICAgW2RlYm91bmNlVGltZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kZWJvdW5jZVRpbWVcIlxuICAgICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kZXNjcmlwdG9yUHJvcGVydHlcIlxuICAgICAgW2VuYWJsZVNob3dNb3JlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmVuYWJsZVNob3dNb3JlXCJcbiAgICAgIFtpZFByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmlkUHJvcGVydHlcIlxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5wbGFjZWhvbGRlclRleHRcIlxuICAgICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5wcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hcIlxuICAgICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoRmlsdGVyc1wiXG4gICAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgICBcIlxuICAgICAgW3NlbGVjdE1vZGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VsZWN0TW9kZVwiXG4gICAgICBbc2hvd0FkZEJ1dHRvbl09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zaG93QWRkQnV0dG9uXCJcbiAgICAgIFtzaG93TW9yZUNvbmZpZ109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zaG93TW9yZUNvbmZpZ1wiXG4gICAgICBbd3JhcHBlckNsYXNzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LndyYXBwZXJDbGFzc1wiXG4gICAgICAoYWRkQ2xpY2spPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYWRkQ2xpY2s/LigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uTG9va3VwT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UpPVwib25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9za3ktaW5wdXQtYm94PlxufVxuPGRpdiAjc2NyZWVuUmVhZGVyTGFiZWw9XCJza3lJZFwiIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiIHNreUlkPlxuICB7eyBsYWJlbFRleHQgfX1cbjwvZGl2PlxuIl19","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorNumberComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n number: new UntypedFormControl(),\n });\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n #params;\n #triggerType;\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('number');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(parseFloat(this.#params?.eventKey) || undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n this.max = params.skyComponentProperties?.max;\n this.min = params.skyComponentProperties?.min;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = this.#params.node.rowHeight - 4;\n }\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n const val = this.editorForm.get('number')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-number', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, ReactiveFormsModule, SkyI18nModule], template: \"<ng-container [formGroup]=\\\"editorForm\\\">\\n <input\\n #skyCellEditorNumber\\n formControlName=\\\"number\\\"\\n type=\\\"number\\\"\\n [attr.aria-label]=\\\"\\n 'sky_ag_grid_cell_editor_number_aria_label'\\n | skyLibResources: columnHeader : rowNumber\\n \\\"\\n [style.width.px]=\\\"columnWidth\\\"\\n [style.height.px]=\\\"rowHeightWithoutBorders\\\"\\n [max]=\\\"max ?? null\\\"\\n [min]=\\\"min ?? null\\\"\\n />\\n</ng-container>\\n\", styles: [\"input{background-color:transparent;border:none;text-align:right}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorNumber', { read: ElementRef }]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVlTLGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixFQUFFO1NBQ2pDLENBQUMsQ0FBQztLQXNGSjtJQTVFUSxVQUFVLENBQUMsS0FBaUI7UUFDakMsSUFDRSxLQUFLLENBQUMsYUFBYTtZQUNuQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUks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Vywwa0NBQUUsbUJBQW1CLCtVQUFFLGFBQWE7OzJGQUU5QyxrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQzs4QkFnQm5ELEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSS9DLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yTnVtYmVyUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItbnVtYmVyLXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIG51bWJlcjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd0hlaWdodFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG1heDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWluOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvck51bWJlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgI3BhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yTnVtYmVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdudW1iZXInKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1heCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5tYXg7XG4gICAgdGhpcy5taW4gPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8ubWluO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy4jcGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLmNvbHVtbldpZHRoID0gdGhpcy4jcGFyYW1zLmNvbHVtbi5nZXRBY3R1YWxXaWR0aCgpO1xuICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSAodGhpcy4jcGFyYW1zLm5vZGUucm93SGVpZ2h0IGFzIG51bWJlcikgLSA0O1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmFsID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnbnVtYmVyJyk/LnZhbHVlO1xuICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCI+XG4gIDxpbnB1dFxuICAgICNza3lDZWxsRWRpdG9yTnVtYmVyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyXCJcbiAgICB0eXBlPVwibnVtYmVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uV2lkdGhcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicm93SGVpZ2h0V2l0aG91dEJvcmRlcnNcIlxuICAgIFttYXhdPVwibWF4ID8/IG51bGxcIlxuICAgIFttaW5dPVwibWluID8/IG51bGxcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorTextComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n text: new UntypedFormControl(),\n });\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n #params;\n #triggerType;\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('text');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(params.eventKey);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n this.maxlength = params.skyComponentProperties?.maxlength;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = this.#params.rowIndex + 1;\n }\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n return this.editorForm.get('text')?.value || undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0NBQWdDO0lBUDdDO1FBWVMsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0tBK0VKO0lBdkVRLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQy9DLENBQUM7WUFDRCx1RUFBdUU7WUFDdkUsb0RBQW9EO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFnQztJQUN2QyxZQUFZLENBQStDO0lBRTNEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUErQjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxnQ0FBZ0MsQ0FBQyxNQUFNO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssZ0NBQWdDLENBQUMsT0FBTztvQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1IsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELEtBQUssZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNoRDtvQkFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUNuQixRQUFRLENBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixnR0FBZ0c7UUFDaEcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqQyxJQUNFLElBQUksQ0FBQyxZQUFZLEtBQUssZ0NBQWdDLENBQUMsV0FBVyxFQUNsRSxDQUFDO29CQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLFNBQVMsQ0FBQztJQUN6RCxDQUFDOzhHQXJGVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywwT0FXSCxVQUFVLDZCQzNDcEQsc1VBWUEseVpEa0JZLFdBQVcscXRCQUFFLG1CQUFtQiwrVUFBRSxhQUFhOzsyRkFFOUMsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7OEJBY25ELEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTdDLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yVGV4dFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXRleHQtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItdGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyB0ZXh0SW5wdXRMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHRleHQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG1heGxlbmd0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JUZXh0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy4jcGFyYW1zPy5lR3JpZENlbGxcbiAgICApIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgaW5wdXQuXG4gICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmVmcmVzaENlbGxzIEFQSSBpcyBjYWxsZWQuXG4gICAgICB0aGlzLmFmdGVyR3VpQXR0YWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICAjcGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JUZXh0UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCd0ZXh0Jyk7XG5cbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy5ldmVudEtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1heGxlbmd0aCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5tYXhsZW5ndGg7XG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLiNwYXJhbXMuYXBpLmdldERpc3BsYXlOYW1lRm9yQ29sdW1uKFxuICAgICAgdGhpcy4jcGFyYW1zLmNvbHVtbixcbiAgICAgICdoZWFkZXInLFxuICAgICk7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3RleHQnKT8udmFsdWUgfHwgdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8aW5wdXRcbiAgICAjc2t5Q2VsbEVkaXRvclRleHRcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWwnXG4gICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICBcIlxuICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoID8/IG51bGxcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridCellValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSS9COztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQW1DUyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUk1Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxnRUFBQyxDQUFDO1FBRS9DLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFZixrQkFBYSxHQUFHLENBQUMsS0FBb0IsRUFBUSxFQUFFO1lBQ3RELElBQ0UsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUN2RSxDQUFDO2dCQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ08sa0JBQWEsR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0Msc0JBQWlCLEdBQUcsQ0FBQyxXQUE2QixFQUFRLEVBQUU7WUFDbkUsaUlBQWlJO1lBQ2pJLElBQ0csV0FBVyxDQUFDLE1BQW1CLENBQUMsUUFBUSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtnQkFDN0MsV0FBVyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFDaEUsQ0FBQztnQkFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ08saUJBQVksR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7S0FrRHhEO0lBMUdDLElBQ1csTUFBTSxDQUFDLEtBQWlEO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFaEMsSUFBSSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzVCLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3BFLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvRCxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEUsS0FBSyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQ1gsS0FBSyxDQUFDLElBQUksRUFDVixLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FDdEIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQVFRLGVBQWUsQ0FBNkI7SUFDckQsZUFBZSxDQUFTO0lBRWYsYUFBYSxDQU1wQjtJQUNPLGFBQWEsQ0FBa0M7SUFDL0MsaUJBQWlCLENBV3hCO0lBQ08sWUFBWSxDQUFrQztJQUVoRCxXQUFXO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN2QyxJQUFJLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsRSxNQUFNLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFDRSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxTQUFTO1lBQ2pFLFVBQVUsRUFDVixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUN2QyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFFLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0ExR1Usc0NBQXNDO2tHQUF0QyxzQ0FBc0MsNEhDN0JuRCw4ckJBNEJBLDJiRERZLGdCQUFnQixtSkFBRSxnQkFBZ0IsK1hBQUUsd0JBQXdCOzsyRkFFM0Qsc0NBQXNDO2tCQVBsRCxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDOzhCQUk1RCxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5UG9wb3Zlck1lc3NhZ2UsIFNreVBvcG92ZXJNZXNzYWdlVHlwZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcblxuaW1wb3J0IHsgQWdDb2x1bW4sIENlbGxGb2N1c2VkRXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAnLFxuICBzdHlsZVVybHM6IFsnYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBTa3lQb3BvdmVyTW9kdWxlLCBTa3lTdGF0dXNJbmRpY2F0b3JNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlPy5hcGkgJiYgIXRoaXMuI2xpc3RlbmVyc0FkZGVkKSB7XG4gICAgICB0aGlzLiNsaXN0ZW5lcnNBZGRlZCA9IHRydWU7XG4gICAgICB2YWx1ZS5hcGkuYWRkRXZlbnRMaXN0ZW5lcignY2VsbEZvY3VzZWQnLCB0aGlzLiNjZWxsRm9jdXNIYW5kbGVyKTtcbiAgICAgIHZhbHVlLmFwaS5hZGRFdmVudExpc3RlbmVyKCdjZWxsRWRpdGluZ1N0YXJ0ZWQnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgICB2YWx1ZS5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy4ja2V5dXBIYW5kbGVyKTtcbiAgICAgIHZhbHVlLmVHcmlkQ2VsbD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuI2ZvY3VzSGFuZGxlcik7XG4gICAgICB2YWx1ZS5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZT8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yTWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWUuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlKFxuICAgICAgICB2YWx1ZS52YWx1ZSxcbiAgICAgICAgdmFsdWUuZGF0YSxcbiAgICAgICAgdmFsdWU/Lm5vZGU/LnJvd0luZGV4LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvck1lc3NhZ2U7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93VmFsaWRhdG9yTWVzc2FnZS5zZXQodGhpcy4jc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcG9wb3Zlck1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lQb3BvdmVyTWVzc2FnZT4oKTtcbiAgcHVibGljIHZhbGlkYXRvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNlbGxSZW5kZXJlclBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93VmFsaWRhdG9yTWVzc2FnZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2xpc3RlbmVyc0FkZGVkID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgI2tleXVwSGFuZGxlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIFsnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0Fycm93VXAnXS5pbmNsdWRlcyhldmVudC5rZXkpXG4gICAgKSB7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyKCk7XG4gICAgfVxuICB9O1xuICByZWFkb25seSAjZm9jdXNIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5zaG93UG9wb3ZlcigpO1xuICByZWFkb25seSAjY2VsbEZvY3VzSGFuZGxlciA9IChldmVudFBhcmFtczogQ2VsbEZvY3VzZWRFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFdlIHdhbnQgdG8gY2xvc2UgYW55IHBvcG92ZXJzIHRoYXQgYXJlIG9wZW5lZCB3aGVuIG90aGVyIGNlbGxzIGFyZSBmb2N1c2VkLCBidXQgb3BlbiBhIHBvcG92ZXIgaWYgdGhlIGN1cnJlbnQgY2VsbCBpcyBmb2N1c2VkLlxuICAgIGlmIChcbiAgICAgIChldmVudFBhcmFtcy5jb2x1bW4gYXMgQWdDb2x1bW4pLmdldENvbElkKCkgPT09XG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zPy5jb2x1bW4/LmdldENvbElkKCkgJiZcbiAgICAgIGV2ZW50UGFyYW1zLnJvd0luZGV4ID09PSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8ubm9kZT8ucm93SW5kZXhcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlUG9wb3ZlcigpO1xuICAgIH1cbiAgfTtcbiAgcmVhZG9ubHkgI2JsdXJIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5oaWRlUG9wb3ZlcigpO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcztcbiAgICBpZiAocGFyYW1zPy5hcGkgJiYgKCFwYXJhbXMuYXBpLmlzRGVzdHJveWVkIHx8ICFwYXJhbXMuYXBpLmlzRGVzdHJveWVkKCkpKSB7XG4gICAgICBwYXJhbXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NlbGxGb2N1c2VkJywgdGhpcy4jY2VsbEZvY3VzSGFuZGxlcik7XG4gICAgICBwYXJhbXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NlbGxFZGl0aW5nU3RhcnRlZCcsIHRoaXMuI2JsdXJIYW5kbGVyKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcz8uZUdyaWRDZWxsKSB7XG4gICAgICBwYXJhbXMuZUdyaWRDZWxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy4ja2V5dXBIYW5kbGVyKTtcbiAgICAgIHBhcmFtcy5lR3JpZENlbGwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuI2ZvY3VzSGFuZGxlcik7XG4gICAgICBwYXJhbXMuZUdyaWRDZWxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGVQb3BvdmVyKCk6IHZvaWQge1xuICAgIHRoaXMucG9wb3Zlck1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZS5DbG9zZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jc2hvdWxkU2hvd1BvcG92ZXIoKSkge1xuICAgICAgdGhpcy5wb3BvdmVyTWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLk9wZW4gfSk7XG4gICAgfVxuICB9XG5cbiAgI3Nob3dWYWxpZGF0b3JNZXNzYWdlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy52YWxpZGF0b3JNZXNzYWdlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yID09PVxuICAgICAgJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgcmV0dXJuICF0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMudmFsdWUsXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLmRhdGEsXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLm5vZGU/LnJvd0luZGV4LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgI3Nob3VsZFNob3dQb3BvdmVyKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zaG93VmFsaWRhdG9yTWVzc2FnZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGVkaXRpbmdDZWxscyA9IHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zPy5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkgPz8gW107XG4gICAgcmV0dXJuIGVkaXRpbmdDZWxscy5sZW5ndGggPT09IDA7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGlzcGxheVZhbHVlPlxuICA8bmctY29udGVudCAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuQGlmIChzaG93VmFsaWRhdG9yTWVzc2FnZSgpKSB7XG4gIDxkaXZcbiAgICBza3lQb3BvdmVyVHJpZ2dlcj1cIm1vdXNlZW50ZXJcIlxuICAgIGNsYXNzPVwic2t5LXZhbGlkYXRvci1jZWxsXCJcbiAgICBbc2t5UG9wb3Zlcl09XCJ2YWxpZGF0b3JQb3BvdmVyXCJcbiAgICBbc2t5UG9wb3Zlck1lc3NhZ2VTdHJlYW1dPVwicG9wb3Zlck1lc3NhZ2VTdHJlYW1cIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpc3BsYXlWYWx1ZVwiIC8+XG4gICAgPHNreS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgICBkZXNjcmlwdGlvblR5cGU9XCJub25lXCJcbiAgICAgIGluZGljYXRvclR5cGU9XCJkYW5nZXJcIlxuICAgICAgY2xhc3M9XCJza3ktcHVsbC1yaWdodFwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxza3ktcG9wb3ZlclxuICAgICN2YWxpZGF0b3JQb3BvdmVyXG4gICAgZGF0YS1za3ktaWQ9XCJ2YWxpZGF0b3JQb3BvdmVyXCJcbiAgICBwb3BvdmVyVHlwZT1cImRhbmdlclwiXG4gID5cbiAgICB7eyB2YWxpZGF0b3JNZXNzYWdlIH19XG4gIDwvc2t5LXBvcG92ZXI+XG59IEBlbHNlIHtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpc3BsYXlWYWx1ZVwiIC8+XG59XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-currency', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyNumericModule], template: \"{{\\n value === undefined ? undefined : (value | skyNumeric: skyComponentProperties)\\n}}\\n\" }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTy9DOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQWlCUywyQkFBc0IsR0FDSSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO0tBeUIvQztJQWxDQyxJQUNXLE1BQU0sQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFTRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFxQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE1BQXFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7OEdBcENVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDRIQ25CbkQsNEZBR0EseUREY1ksZ0JBQWdCOzsyRkFFZixzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7OEJBTWhCLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TnVtZXJpY09wdGlvbnMgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lOdW1lcmljTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItY3VycmVuY3ktcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZFZhbGlkYXRvclByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy92YWxpZGF0b3ItcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lOdW1lcmljTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbXModmFsdWU6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKSB7XG4gICAgdGhpcy5hZ0luaXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dIZWlnaHRXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5TnVtZXJpY09wdGlvbnMgJlxuICAgIFNreUFnR3JpZFZhbGlkYXRvclByb3BlcnRpZXMgPSB7fTtcbiAgcHVibGljIG51bWVyaWNPcHRpb25zOiBTa3lOdW1lcmljT3B0aW9ucyA9IHt9O1xuICBwdWJsaWMgdmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBBRyBHcmlkIG9uY2UgYWZ0ZXIgdGhlIHJlbmRlcmVyIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSByZW5kZXJlciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVByb3BlcnRpZXMocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWZyZXNoIGlzIGNhbGxlZCBieSBBRyBHcmlkIHRvIHVwZGF0ZSB0aGUgY2VsbCB3aXRob3V0IGRlc3Ryb3lpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICN1cGRhdGVQcm9wZXJ0aWVzKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5mb3JtYXQgPSAnY3VycmVuY3knO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5taW5EaWdpdHMgPSAyO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy50cnVuY2F0ZSA9IGZhbHNlO1xuICB9XG59XG4iLCJ7e1xuICB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKHZhbHVlIHwgc2t5TnVtZXJpYzogc2t5Q29tcG9uZW50UHJvcGVydGllcylcbn19XG4iXX0=","import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderer-currency.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererCurrencyValidatorComponent {\n set parameters(value) {\n this.agInit(value);\n }\n #changeDetector;\n constructor(changeDetector) {\n this.#changeDetector = changeDetector;\n }\n /**\n * agInit is called by agGrid once after the renderer is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.cellRendererParams = params;\n this.#changeDetector.markForCheck();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isNumeric(value) {\n return !isNaN(parseFloat(value));\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refresh(params) {\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", 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.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererCurrencyValidatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-currency-validator', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyAgGridCellValidatorTooltipComponent,\n SkyAgGridCellRendererCurrencyComponent,\n ], template: \"@if (cellRendererParams) {\\n <sky-ag-grid-cell-validator-tooltip [params]=\\\"cellRendererParams\\\">\\n @if (isNumeric(cellRendererParams.value)) {\\n <sky-ag-grid-cell-renderer-currency [params]=\\\"cellRendererParams\\\" />\\n } @else {\\n {{ cellRendererParams.value }}\\n }\\n </sky-ag-grid-cell-validator-tooltip>\\n}\\n\", styles: [\":host{display:contents}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { parameters: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUd2SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFNUY7O0dBRUc7QUFlSCxNQUFNLE9BQU8sK0NBQStDO0lBRzFELElBQ1csVUFBVSxDQUFDLEtBQW9DO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQXFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELFNBQVMsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxPQUFPLENBQUMsTUFBcUM7UUFDbEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWpDVSwrQ0FBK0M7a0dBQS9DLCtDQUErQyw4SUMvQjVELDZVQVNBLG1GRGtCSSxzQ0FBc0MsbUdBQ3RDLHNDQUFzQzs7MkZBRzdCLCtDQUErQztrQkFkM0QsU0FBUzsrQkFDRSw4Q0FBOEMsbUJBT3ZDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asc0NBQXNDO3dCQUN0QyxzQ0FBc0M7cUJBQ3ZDO3NGQU1VLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXBhcmFtcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgc3R5bGVzOiBgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuICBgLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbWV0ZXJzKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcykge1xuICAgIHRoaXMuYWdJbml0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsUmVuZGVyZXJQYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgcmVuZGVyZXIgd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgcmVuZGVyZXIgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpc051bWVyaWModmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCJAaWYgKGNlbGxSZW5kZXJlclBhcmFtcykge1xuICA8c2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiPlxuICAgIEBpZiAoaXNOdW1lcmljKGNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSkpIHtcbiAgICAgIDxza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5IFtwYXJhbXNdPVwiY2VsbFJlbmRlcmVyUGFyYW1zXCIgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIHt7IGNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSB9fVxuICAgIH1cbiAgPC9za3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwPlxufVxuIl19","import { ChangeDetectionStrategy, Component, } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererLookupComponent {\n #changeDetector;\n constructor(changeDetector) {\n this.value = '';\n this.summaryCount = 0;\n this.#changeDetector = changeDetector;\n }\n agInit(params) {\n this.summaryCount = params.value?.length || 0;\n this.value = `${params.valueFormatted}`;\n this.#changeDetector.markForCheck();\n }\n refresh(params) {\n this.agInit(params);\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", 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.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererLookupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-cell-renderer-lookup', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyI18nModule], template: \"@if (summaryCount > 5) {\\n {{ 'skyux_lookup_tokens_summary' | skyLibResources: summaryCount }}\\n} @else {\\n {{ value }}\\n}\\n\", styles: [\":host{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTTVDOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9DQUFvQztJQU0vQyxlQUFlLENBQW9CO0lBRW5DLFlBQVksY0FBaUM7UUFMbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBS3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBckJVLG9DQUFvQztrR0FBcEMsb0NBQW9DLG9GQ3JCakQsZ0lBS0EsMkhEY1ksYUFBYTs7MkZBRVosb0NBQW9DO2tCQVBoRCxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItbG9va3VwLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jZWxsLXJlbmRlcmVyLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcFxue1xuICBwcm90ZWN0ZWQgdmFsdWUgPSAnJztcbiAgcHJvdGVjdGVkIHN1bW1hcnlDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuc3VtbWFyeUNvdW50ID0gcGFyYW1zLnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICB0aGlzLnZhbHVlID0gYCR7cGFyYW1zLnZhbHVlRm9ybWF0dGVkfWA7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIkBpZiAoc3VtbWFyeUNvdW50ID4gNSkge1xuICB7eyAnc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5JyB8IHNreUxpYlJlc291cmNlczogc3VtbWFyeUNvdW50IH19XG59IEBlbHNlIHtcbiAge3sgdmFsdWUgfX1cbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, } from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { BehaviorSubject, Subscription, fromEventPattern, isObservable, } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererRowSelectorComponent {\n #labelResourceKey;\n #params;\n #resources;\n #subscription;\n constructor() {\n this.checked = new BehaviorSubject(false);\n this.disabled = new BehaviorSubject(false);\n this.label = new BehaviorSubject('');\n this.#labelResourceKey = 'sky_ag_grid_row_selector_aria_label';\n this.#resources = inject(SkyLibResourcesService);\n this.#subscription = new Subscription();\n this.#setLabel();\n }\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n /**\n * agInit is called by agGrid once after the cell is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.#setParameters(params);\n }\n /**\n * Used by agGrid to update cell value after a user triggers a refresh.\n * Returning true tells agGrid that the refresh was successful.\n */\n refresh(params) {\n this.#setParameters(params);\n return true;\n }\n updateRow(rowChecked) {\n this.checked.next(rowChecked);\n if (this.rowNode) {\n const rowSelected = this.rowNode.isSelected();\n if (rowSelected !== rowChecked) {\n this.rowNode.setSelected(rowChecked, undefined, 'checkboxSelected');\n }\n if (this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n }\n #setParameters(params) {\n this.#params = params;\n this.disabled.next(this.#params?.node?.selectable === false);\n this.dataField = this.#params?.colDef?.field;\n this.rowNode = this.#params?.node;\n const rowIndex = this.rowNode?.rowIndex ?? NaN;\n this.rowNumber = Number.isNaN(rowIndex) ? undefined : rowIndex + 1;\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n this.#setLabel();\n const rowSelected = !!this.#params.node?.isSelected();\n if (this.dataField) {\n this.checked.next(!!this.#params.value);\n if (rowSelected !== this.checked.value) {\n this.rowNode?.setSelected(this.checked.value);\n }\n }\n else {\n this.checked.next(rowSelected);\n }\n this.#subscription.add(fromEventPattern((handler) => this.rowNode?.addEventListener('rowSelected', handler), (handler) => this.rowNode?.removeEventListener('rowSelected', handler)).subscribe((event) => this.#rowSelectedListener(event)));\n }\n #setLabel() {\n const cellRendererParamLabel = this.#params?.colDef?.cellRendererParams?.label;\n if (this.#params?.colDef && typeof cellRendererParamLabel === 'string') {\n this.label.next(this.#params.colDef.cellRendererParams.label);\n }\n else if (this.#params?.colDef &&\n typeof cellRendererParamLabel === 'function') {\n const label = this.#params.colDef.cellRendererParams.label(this.#params.data);\n if (isObservable(label)) {\n this.#subscription.add(label.subscribe((value) => this.label.next(String(value))));\n }\n else {\n this.label.next(label);\n }\n }\n else {\n this.#subscription.add(this.#resources\n .getString(this.#labelResourceKey, this.rowNumber ?? '')\n .subscribe((value) => this.label.next(value)));\n }\n }\n #rowSelectedListener(event) {\n this.checked.next(!!event.node.isSelected());\n if (this.rowNode && this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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 } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SkyAgGridCellRendererTemplateComponent {\n constructor() {\n this.state = {\n hasTemplate: false,\n template: undefined,\n context: { value: undefined, data: undefined },\n };\n }\n agInit(params) {\n const hasTemplate = !!(params.colDef?.cellRendererParams &&\n 'template' in params.colDef.cellRendererParams &&\n params.colDef.cellRendererParams.template);\n const template = hasTemplate\n ? params.colDef?.cellRendererParams\n .template\n : undefined;\n this.state = {\n hasTemplate,\n template,\n context: { value: params.value, row: params.data },\n };\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyAgGridCellRendererTemplateComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-template\", ngImport: i0, template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'sky-ag-grid-cell-renderer-template',\n template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`,\n imports: [NgTemplateOutlet],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBMEJ2RCxNQUFNLE9BQU8sc0NBQXNDO0lBUG5EO1FBVVksVUFBSyxHQUFjO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMvQyxDQUFDO0tBd0JIO0lBdEJRLE1BQU0sQ0FBQyxNQUEyQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0I7WUFDakMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQ1osV0FBVztZQUNULENBQUMsQ0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGtCQUFrQjtpQkFDL0IsUUFBcUQ7WUFDMUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVztZQUNYLFFBQVE7WUFDUixPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtTQUN0QyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBMkI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBOUJVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDhGQUx2Qzs7SUFFUiw0REFDUSxnQkFBZ0I7OzJGQUVmLHNDQUFzQztrQkFQbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxRQUFRLEVBQUU7O0lBRVI7b0JBQ0YsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUtY29udGV4dC50eXBlJztcblxudHlwZSBDZWxsU3RhdGUgPVxuICB8IHtcbiAgICAgIGhhc1RlbXBsYXRlOiB0cnVlO1xuICAgICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD47XG4gICAgICBjb250ZXh0OiBDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGhhc1RlbXBsYXRlOiBmYWxzZTtcbiAgICAgIHRlbXBsYXRlOiB1bmRlZmluZWQ7XG4gICAgICBjb250ZXh0PzogdW5rbm93bjtcbiAgICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXRlbXBsYXRlJyxcbiAgdGVtcGxhdGU6IGBAaWYgKHN0YXRlLmhhc1RlbXBsYXRlKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXRlLnRlbXBsYXRlOyBjb250ZXh0OiBzdGF0ZS5jb250ZXh0XCIgLz5cbiAgfWAsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgcHJvdGVjdGVkIHN0YXRlOiBDZWxsU3RhdGUgPSB7XG4gICAgaGFzVGVtcGxhdGU6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiB1bmRlZmluZWQsXG4gICAgY29udGV4dDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkYXRhOiB1bmRlZmluZWQgfSxcbiAgfTtcblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IGhhc1RlbXBsYXRlID0gISEoXG4gICAgICBwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMgJiZcbiAgICAgICd0ZW1wbGF0ZScgaW4gcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMgJiZcbiAgICAgIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlXG4gICAgKTtcbiAgICBjb25zdCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0PiB8IHVuZGVmaW5lZCA9XG4gICAgICBoYXNUZW1wbGF0ZVxuICAgICAgICA/IChwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXNcbiAgICAgICAgICAgIC50ZW1wbGF0ZSBhcyBUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaGFzVGVtcGxhdGUsXG4gICAgICB0ZW1wbGF0ZSxcbiAgICAgIGNvbnRleHQ6IHsgdmFsdWU6IHBhcmFtcy52YWx1ZSwgcm93OiBwYXJhbXMuZGF0YSB9LFxuICAgIH0gYXMgQ2VsbFN0YXRlO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject, } from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererValidatorTooltipComponent {\n constructor() {\n this.valueObservable = new BehaviorSubject('');\n this.#changeDetector = inject(ChangeDetectorRef);\n }\n set params(value) {\n this.agInit(value);\n }\n #changeDetector;\n #valueSubscription;\n ngOnDestroy() {\n this.#valueSubscription?.unsubscribe();\n this.valueObservable.complete();\n }\n agInit(params) {\n this.cellRendererParams = params;\n this.#valueSubscription?.unsubscribe();\n this.#valueSubscription = new Subscription();\n if (typeof params.skyComponentProperties?.valueResourceObservable ===\n 'function') {\n this.#valueSubscription.add(params.skyComponentProperties\n .valueResourceObservable(params.value, params.data, params.node?.rowIndex)\n .subscribe((result) => {\n this.valueObservable.next(result);\n }));\n }\n else {\n this.valueObservable.next(params.valueFormatted ?? params.value);\n }\n this.#changeDetector.markForCheck();\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-validator-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyAgGridCellValidatorTooltipComponent, AsyncPipe], template: \"<sky-ag-grid-cell-validator-tooltip [params]=\\\"cellRendererParams\\\">\\n {{ valueObservable | async }}\\n</sky-ag-grid-cell-validator-tooltip>\\n\" }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFHdkg7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOENBQThDO0lBTjNEO1FBaUJZLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFDdEQ7SUEvQ0MsSUFDVyxNQUFNLENBQUMsS0FBcUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBT1EsZUFBZSxDQUE2QjtJQUNyRCxrQkFBa0IsQ0FBMkI7SUFFdEMsV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXNDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLElBQ0UsT0FBTyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsdUJBQXVCO1lBQzdELFVBQVUsRUFDVixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDekIsTUFBTSxDQUFDLHNCQUFzQjtpQkFDMUIsdUJBQXVCLENBQ3RCLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FDdEI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBc0M7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBakRVLDhDQUE4QztrR0FBOUMsOENBQThDLHFJQ3pCM0QsZ0pBR0EsNENEb0JZLHNDQUFzQyw4RkFBRSxTQUFTOzsyRkFFaEQsOENBQThDO2tCQU4xRCxTQUFTOytCQUNFLDZDQUE2QyxtQkFFdEMsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHNDQUFzQyxFQUFFLFNBQVMsQ0FBQzs4QkFNakQsTUFBTTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2VsbC12YWxpZGF0b3IvYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICdjZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFnSW5pdCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyB2YWx1ZTogdW5rbm93bjtcblxuICBwcm90ZWN0ZWQgdmFsdWVPYnNlcnZhYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3ZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudmFsdWVPYnNlcnZhYmxlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWx1ZVJlc291cmNlT2JzZXJ2YWJsZSA9PT1cbiAgICAgICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgICAudmFsdWVSZXNvdXJjZU9ic2VydmFibGUoXG4gICAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgICBwYXJhbXMuZGF0YSxcbiAgICAgICAgICAgIHBhcmFtcy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5uZXh0KHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA/PyBwYXJhbXMudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxza3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwIFtwYXJhbXNdPVwiY2VsbFJlbmRlcmVyUGFyYW1zXCI+XG4gIHt7IHZhbHVlT2JzZXJ2YWJsZSB8IGFzeW5jIH19XG48L3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXA+XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * To display a help button beside the column group header, create a component containing\n * [`sky-help-inline`](https://developer.blackbaud.com/skyux/components/help-inline),\n * and inject SkyAgGridHeaderGroupInfo to access the column group\n * information, such as display name.\n * Add the component to the `headerGroupComponentParams.inlineHelpComponent`\n * property of the [column group definition](https://www.ag-grid.com/angular-data-grid/column-groups/).\n * @see SkyAgGridHeaderGroupParams\n */\nexport class SkyAgGridHeaderGroupInfo {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWdyb3VwLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItZ3JvdXAtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW5Hcm91cCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuLyoqXG4gKiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBjb2x1bW4gZ3JvdXAgaGVhZGVyLCBjcmVhdGUgYSBjb21wb25lbnQgY29udGFpbmluZ1xuICogW2Bza3ktaGVscC1pbmxpbmVgXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpLFxuICogYW5kIGluamVjdCBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gdG8gYWNjZXNzIHRoZSBjb2x1bW4gZ3JvdXBcbiAqIGluZm9ybWF0aW9uLCBzdWNoIGFzIGRpc3BsYXkgbmFtZS5cbiAqIEFkZCB0aGUgY29tcG9uZW50IHRvIHRoZSBgaGVhZGVyR3JvdXBDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGdyb3VwIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1ncm91cHMvKS5cbiAqIEBzZWUgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyB7XG4gIC8qKlxuICAgKiBbQ29sdW1uIGdyb3VwIGluZm9ybWF0aW9uIGZyb20gQUcgR3JpZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLW9iamVjdC1ncm91cC8pLlxuICAgKi9cbiAgcHVibGljIGNvbHVtbkdyb3VwOiBDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, ViewChild, inject, } from '@angular/core';\nimport { SkyDynamicComponentLocation, SkyDynamicComponentService, } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil, } from 'rxjs';\nimport { SkyAgGridHeaderGroupInfo } from '../types/header-group-info';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@skyux/icon\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridHeaderGroupComponent {\n #columnGroup;\n #isExpandableSubject;\n #isExpandedSubject;\n #subscriptions;\n #viewInitialized;\n #agInitialized;\n #changeDetector;\n #dynamicComponentService;\n #environmentInjector;\n constructor() {\n this.params = undefined;\n this.#columnGroup = undefined;\n this.#isExpandableSubject = new BehaviorSubject(false);\n this.#isExpandedSubject = new BehaviorSubject(false);\n this.#subscriptions = new Subscription();\n this.#viewInitialized = false;\n this.#agInitialized = false;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#environmentInjector = inject(EnvironmentInjector);\n this.isExpandable$ = this.#isExpandableSubject.asObservable();\n this.isExpanded$ = this.#isExpandedSubject.asObservable();\n }\n ngAfterViewInit() {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n ngOnDestroy() {\n this.#subscriptions.unsubscribe();\n }\n agInit(params) {\n this.#agInitialized = true;\n this.params = params;\n this.#subscriptions.unsubscribe();\n if (!params) {\n return;\n }\n this.#subscriptions = new Subscription();\n this.#columnGroup = params.columnGroup.getProvidedColumnGroup();\n this.#isExpandableSubject.next(this.#columnGroup.isExpandable());\n if (this.#isExpandableSubject.getValue()) {\n this.#subscriptions.add(fromEvent(params.api, 'columnGroupOpened')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe((event) => {\n if (this.#columnGroup &&\n event.columnGroups.includes(this.#columnGroup)) {\n this.#isExpandedSubject.next(this.#columnGroup.isExpanded());\n }\n }));\n }\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n setExpanded($event) {\n this.params?.setExpanded($event);\n }\n #updateInlineHelp() {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n const colGroupDef = this.params?.columnGroup?.getColGroupDef();\n const inlineHelpComponent = colGroupDef?.headerGroupComponentParams?.inlineHelpComponent;\n if (inlineHelpComponent) {\n const headerGroupInfo = new SkyAgGridHeaderGroupInfo();\n headerGroupInfo.columnGroup = this.params?.columnGroup;\n headerGroupInfo.context = this.params?.context;\n headerGroupInfo.displayName = this.params?.displayName;\n this.#dynamicComponentService.createComponent(inlineHelpComponent, {\n providers: [\n {\n provide: SkyAgGridHeaderGroupInfo,\n useValue: headerGroupInfo,\n },\n ],\n environmentInjector: this.#environmentInjector,\n referenceEl: this.inlineHelpContainer?.nativeElement,\n location: SkyDynamicComponentLocation.ElementBottom,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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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LGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQzt3REFNM0QsbUJBQW1CO3NCQUR6QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbixcbiAgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBJSGVhZGVyR3JvdXBBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDb2x1bW5Hcm91cE9wZW5lZEV2ZW50LCBQcm92aWRlZENvbHVtbkdyb3VwIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIGZyb21FdmVudCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBJbmZvIH0gZnJvbSAnLi4vdHlwZXMvaGVhZGVyLWdyb3VwLWluZm8nO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9oZWFkZXItZ3JvdXAtcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWhlYWRlci1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lUaGVtZU1vZHVsZSwgU2t5SWNvbk1vZHVsZSwgQXN5bmNQaXBlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJSGVhZGVyR3JvdXBBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ2lubGluZUhlbHBDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgaW5saW5lSGVscENvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByb3RlY3RlZCBpc0V4cGFuZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAjY29sdW1uR3JvdXA6IFByb3ZpZGVkQ29sdW1uR3JvdXAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNpc0V4cGFuZGFibGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICNpc0V4cGFuZGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAjc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgI3ZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuICAjYWdJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaXNFeHBhbmRhYmxlJCA9IHRoaXMuI2lzRXhwYW5kYWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5pc0V4cGFuZGVkJCA9IHRoaXMuI2lzRXhwYW5kZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiNhZ0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKCFwYXJhbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLiNjb2x1bW5Hcm91cCA9IHBhcmFtcy5jb2x1bW5Hcm91cC5nZXRQcm92aWRlZENvbHVtbkdyb3VwKCk7XG4gICAgdGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5uZXh0KHRoaXMuI2NvbHVtbkdyb3VwLmlzRXhwYW5kYWJsZSgpKTtcbiAgICBpZiAodGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50PENvbHVtbkdyb3VwT3BlbmVkRXZlbnQ+KHBhcmFtcy5hcGksICdjb2x1bW5Hcm91cE9wZW5lZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLiNjb2x1bW5Hcm91cCAmJlxuICAgICAgICAgICAgICBldmVudC5jb2x1bW5Hcm91cHMuaW5jbHVkZXModGhpcy4jY29sdW1uR3JvdXApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy4jaXNFeHBhbmRlZFN1YmplY3QubmV4dCh0aGlzLiNjb2x1bW5Hcm91cC5pc0V4cGFuZGVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldEV4cGFuZGVkKCRldmVudDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zPy5zZXRFeHBhbmRlZCgkZXZlbnQpO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xHcm91cERlZiA9IHRoaXMucGFyYW1zPy5jb2x1bW5Hcm91cD8uZ2V0Q29sR3JvdXBEZWYoKTtcbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID1cbiAgICAgIGNvbEdyb3VwRGVmPy5oZWFkZXJHcm91cENvbXBvbmVudFBhcmFtcz8uaW5saW5lSGVscENvbXBvbmVudDtcblxuICAgIGlmIChpbmxpbmVIZWxwQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBoZWFkZXJHcm91cEluZm8gPSBuZXcgU2t5QWdHcmlkSGVhZGVyR3JvdXBJbmZvKCk7XG4gICAgICBoZWFkZXJHcm91cEluZm8uY29sdW1uR3JvdXAgPSB0aGlzLnBhcmFtcz8uY29sdW1uR3JvdXA7XG4gICAgICBoZWFkZXJHcm91cEluZm8uY29udGV4dCA9IHRoaXMucGFyYW1zPy5jb250ZXh0O1xuICAgICAgaGVhZGVyR3JvdXBJbmZvLmRpc3BsYXlOYW1lID0gdGhpcy5wYXJhbXM/LmRpc3BsYXlOYW1lO1xuXG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoaW5saW5lSGVscENvbXBvbmVudCwge1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8sXG4gICAgICAgICAgICB1c2VWYWx1ZTogaGVhZGVyR3JvdXBJbmZvLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLmlubGluZUhlbHBDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGxvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChwYXJhbXM/LmRpc3BsYXlOYW1lKSB7XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJoZWFkZXItZ3JvdXAtdGV4dFwiXG4gICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwieyAnc2t5LWZvbnQtaGVhZGluZy00JzogJ21vZGVybicgfVwiXG4gICAgPnt7IHBhcmFtcz8uZGlzcGxheU5hbWUgfX08L3NwYW5cbiAgPlxufVxuQGlmIChpc0V4cGFuZGFibGUkIHwgYXN5bmMpIHtcbiAgQGlmIChpc0V4cGFuZGVkJCB8IGFzeW5jKSB7XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreV9hZ19ncmlkX2NvbHVtbl9ncm91cF9oZWFkZXJfY29sbGFwc2VfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tZG91YmxlLWxlZnRcIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9IEBlbHNlIHtcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9leHBhbmRfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzZXRFeHBhbmRlZCh0cnVlKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtcmlnaHRcIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9XG59XG48c3BhbiAjaW5saW5lSGVscENvbnRhaW5lciBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+PC9zcGFuPlxuIl19","import { ChangeDetectionStrategy, Component, DestroyRef, computed, inject, model, signal, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { asyncScheduler, fromEvent, observeOn } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\nexport class SkyAgGridHeaderRowSelectorComponent {\n constructor() {\n this.checked = model(false, ...(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.0\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-row-selector-header', imports: [SkyCheckboxModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[attr.title]': 'label()',\n '[attr.role]': '\"note\"',\n }, template: \"@if (multiSelect()) {\\n <sky-checkbox\\n labelHidden\\n data-sky-id=\\\"header-row-selector\\\"\\n [checked]=\\\"checked()\\\"\\n [labelText]=\\\"label()\\\"\\n [indeterminate]=\\\"indeterminate()\\\"\\n (change)=\\\"toggleCheckbox($event)\\\"\\n />\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9oZWFkZXIvaGVhZGVyLXJvdy1zZWxlY3Rvci9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBU3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBYTVELE1BQU0sT0FBTyxtQ0FBbUM7SUFYaEQ7UUFZcUIsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLG1EQUFDLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssdURBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsTUFBTSxDQUE0QixTQUFTLGtEQUFDLENBQUM7UUFDdEQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxFQUFFLFdBQVcsSUFBSSxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNqRSxDQUFDLGlEQUFDLENBQUM7UUFHTSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWdEM0M7SUFqREMsSUFBSSxDQUErQjtJQUMxQixXQUFXLENBQXNCO0lBRW5DLE1BQU0sQ0FBQyxNQUFxQjtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFFdkIsbUVBQW1FO1FBQ25FLDRDQUE0QztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FDbEIsWUFBWSxLQUFLLFVBQVU7WUFDekIsQ0FBQyxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxFQUFFLElBQUksS0FBSyxVQUFVLENBQUMsQ0FDMUUsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsU0FBUyxDQUF3QixNQUFNLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO2lCQUM3RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDckUsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFRLEVBQUU7Z0JBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsd0NBQXdDO29CQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVMLFNBQVMsQ0FBc0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDekQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDMUMsU0FBUyxDQUFDLEdBQVMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFUyxjQUFjLENBQUMsTUFBeUI7UUFDaEQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7OEdBMURVLG1DQUFtQztrR0FBbkMsbUNBQW1DLHdWQ2hDaEQseVBBVUEseUREYVksaUJBQWlCOzsyRkFTaEIsbUNBQW1DO2tCQVgvQyxTQUFTOytCQUNFLGlDQUFpQyxXQUNsQyxDQUFDLGlCQUFpQixDQUFDLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osY0FBYyxFQUFFLFNBQVM7d0JBQ3pCLGFBQWEsRUFBRSxRQUFRO3FCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hDaGFuZ2UsIFNreUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEdyaWRBcGksXG4gIElIZWFkZXJQYXJhbXMsXG4gIFJvd0RhdGFVcGRhdGVkRXZlbnQsXG4gIFNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGZyb21FdmVudCwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXJvdy1zZWxlY3Rvci1oZWFkZXInLFxuICBpbXBvcnRzOiBbU2t5Q2hlY2tib3hNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci50aXRsZV0nOiAnbGFiZWwoKScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibm90ZVwiJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hlY2tlZCA9IG1vZGVsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluZGV0ZXJtaW5hdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlTZWxlY3QgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zID0gc2lnbmFsPElIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQ+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.0\", ngImport: i0, type: SkyAgGridHeaderInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbi8qKlxuICogVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uIGJlc2lkZSB0aGUgY29sdW1uIGhlYWRlciwgY3JlYXRlIGEgY29tcG9uZW50IGNvbnRhaW5pbmdcbiAqIFtgc2t5LWhlbHAtaW5saW5lYF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSxcbiAqIGFuZCBpbmplY3QgU2t5QWdHcmlkSGVhZGVySW5mbyB0byBhY2Nlc3MgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiwgc3VjaFxuICogYXMgZGlzcGxheSBuYW1lLlxuICogQWRkIHRoZSBjb21wb25lbnQgdG8gdGhlIGBoZWFkZXJDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1kZWZpbml0aW9ucy8pLlxuICogQHNlZSBTa3lBZ0dyaWRIZWFkZXJQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckluZm8ge1xuICAvKipcbiAgICogW0NvbHVtbiBpbmZvcm1hdGlvbiBmcm9tIEFHIEdyaWRdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1vYmplY3QvKS5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW46IENvbHVtbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, ViewChild, computed, inject, signal, } from '@angular/core';\nimport { SkyDynamicComponentLocation, SkyDynamicComponentService, } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil } from 'rxjs';\nimport { SkyAgGridHeaderInfo } from '../types/header-info';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/icon\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridHeaderComponent {\n constructor() {\n this.filterEnabled$ = new BehaviorSubject(false);\n // For accessibility, we need to set the title attribute on the header element if there is no visible header text.\n // https://dequeuniversity.com/rules/axe/4.5/empty-table-header?application=axeAPI\n this.accessibleHeaderText = computed(() => {\n const params = this.params();\n if (params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden) {\n return undefined;\n }\n else {\n return params?.displayName || params?.column.getColDef().field;\n }\n }, ...(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.0\", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixtQkFBbUIsRUFFbkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNEOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdCQUF3QjtJQVpyQztRQWVrQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJFLGtIQUFrSDtRQUNsSCxrRkFBa0Y7UUFDL0QseUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFDRSxNQUFNLEVBQUUsV0FBVztnQkFDbkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFDL0QsQ0FBQztnQkFDRCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxNQUFNLEVBQUUsV0FBVyxJQUFJLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDLGdFQUFDLENBQUM7UUFLZ0IsV0FBTSxHQUFHLE1BQU0sQ0FDaEMsU0FBUyxrREFDVixDQUFDO1FBQ1EsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNILGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FFakQsU0FBUyxDQUFDLENBQUM7UUFDTSxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUU3RCxnQkFBVyxHQUFHLFFBQVEsQ0FBcUIsR0FBRyxFQUFFO1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUNFLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsWUFBWSxFQUMvRCxDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsdURBQUMsQ0FBQztRQUVILG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFVCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLDZCQUF3QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlELHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBc0o3RDtJQTlKQyxjQUFjLENBQXNCO0lBQ3BDLHVCQUF1QixDQUFvQztJQUMzRCxnQkFBZ0IsQ0FBUztJQUN6QixjQUFjLENBQVM7SUFDdkIsYUFBYSxDQUFLO0lBRVQsZUFBZSxDQUE2QjtJQUM1Qyx3QkFBd0IsQ0FBc0M7SUFDOUQsb0JBQW9CLENBQStCO0lBRXJELGVBQWU7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBeUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUM7aUJBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2lCQUMxRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RELElBQUksY0FBYyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzNDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLDRCQUE0QjtZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDO2lCQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztpQkFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztZQUNGLDREQUE0RDtZQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO2lCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztpQkFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FDTCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCwwRUFBMEU7UUFDMUUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixTQUFTLENBQW1CLE1BQU0sQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO2FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2FBQzFELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDbkMsSUFDRSxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNO2dCQUM5QixLQUFLLENBQUMsTUFBTSxLQUFLLGVBQWU7Z0JBQ2hDLElBQUksR0FBRyxPQUFPLEVBQ2QsQ0FBQztnQkFDRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBcUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxlQUFlLENBQUMsS0FBaUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFTSxPQUFPLENBQUMsTUFBNkI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsbUJBQW1CLENBQUM7UUFFL0QsSUFDRSxtQkFBbUI7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUI7Z0JBQzVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEtBQUssbUJBQW1CLENBQUMsRUFDckUsQ0FBQztZQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQzNDLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0IsQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUM3QyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUM7WUFDMUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQztZQUVwRCxJQUFJLENBQUMsdUJBQXVCO2dCQUMxQixJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFO29CQUNqRSxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLFVBQVU7eUJBQ3JCO3FCQUNGO29CQUNELG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7b0JBQzlDLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsYUFBYTtvQkFDcEQsUUFBUSxFQUFFLDJCQUEyQixDQUFDLGFBQWE7aUJBQ3BELENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQzdCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNwQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDbkIsRUFBRSxJQUFJLENBQ0osQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNULE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN0RCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUNyQixDQUFDO1FBQ0osSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXhNVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4VUFtQk8sVUFBVSwyQ0NoRXRELG1zR0FtRkEsOHZFRHhDWSxhQUFhLHFJQUFFLGNBQWMsbUlBQWEsYUFBYSwwQkFBeEIsU0FBUzs7MkZBRXZDLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixjQUFjLEVBQUUsd0JBQXdCO3dCQUN4QyxtQkFBbUIsRUFBRSx5Q0FBeUM7d0JBQzlELGFBQWEsRUFBRSxRQUFRO3FCQUN4QixXQUNRLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDOzhCQXNCeEQsbUJBQW1CO3NCQUQ1QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IElIZWFkZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDb2x1bW5Nb3ZlZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckluZm8gfSBmcm9tICcuLi90eXBlcy9oZWFkZXItaW5mbyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9oZWFkZXItcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci50aXRsZV0nOiAnYWNjZXNzaWJsZUhlYWRlclRleHQoKScsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2Rpc3BsYXlOYW1lKCkgfHwgYWNjZXNzaWJsZUhlYWRlclRleHQoKScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibm90ZVwiJyxcbiAgfSxcbiAgaW1wb3J0czogW1NreUljb25Nb2R1bGUsIFNreVRoZW1lTW9kdWxlLCBBc3luY1BpcGUsIFNreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyRW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBGb3IgYWNjZXNzaWJpbGl0eSwgd2UgbmVlZCB0byBzZXQgdGhlIHRpdGxlIGF0dHJpYnV0ZSBvbiB0aGUgaGVhZGVyIGVsZW1lbnQgaWYgdGhlcmUgaXMgbm8gdmlzaWJsZSBoZWFkZXIgdGV4dC5cbiAgLy8gaHR0cHM6Ly9kZXF1ZXVuaXZlcnNpdHkuY29tL3J1bGVzL2F4ZS80LjUvZW1wdHktdGFibGUtaGVhZGVyP2FwcGxpY2F0aW9uPWF4ZUFQSVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWNjZXNzaWJsZUhlYWRlclRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5wYXJhbXMoKTtcbiAgICBpZiAoXG4gICAgICBwYXJhbXM/LmRpc3BsYXlOYW1lICYmXG4gICAgICAhcGFyYW1zPy5jb2x1bW4uZ2V0Q29sRGVmKCkuaGVhZGVyQ29tcG9uZW50UGFyYW1zPy5oZWFkZXJIaWRkZW5cbiAgICApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJhbXM/LmRpc3BsYXlOYW1lIHx8IHBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmZpZWxkO1xuICAgIH1cbiAgfSk7XG5cbiAgQFZpZXdDaGlsZCgnaW5saW5lSGVscENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBpbmxpbmVIZWxwQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYXJhbXMgPSBzaWduYWw8U2t5QWdHcmlkSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWQsXG4gICk7XG4gIHByb3RlY3RlZCBzb3J0ZWQgPSAnJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNvcnRPcmRlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgICdhc2MnIHwgJ2Rlc2MnIHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNvcnRJbmRleERpc3BsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwcm90ZWN0ZWQgZGlzcGxheU5hbWUgPSBjb21wdXRlZDxzdHJpbmcgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIGlmIChcbiAgICAgIHBhcmFtcz8uZGlzcGxheU5hbWUgJiZcbiAgICAgICFwYXJhbXM/LmNvbHVtbi5nZXRDb2xEZWYoKS5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmhlYWRlckhpZGRlblxuICAgICkge1xuICAgICAgcmV0dXJuIHBhcmFtcy5kaXNwbGF5TmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH0pO1xuXG4gICNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAjaW5saW5lSGVscENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAjdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNhZ0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNsZWZ0UG9zaXRpb24gPSAwO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jdmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLiN1cGRhdGVJbmxpbmVIZWxwKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuI2FnSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMucGFyYW1zLnNldChwYXJhbXMpO1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLiNsZWZ0UG9zaXRpb24gPSBwYXJhbXMuY29sdW1uLmdldExlZnQoKSA/PyAwO1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgaWYgKHBhcmFtcy5jb2x1bW4uaXNGaWx0ZXJBbGxvd2VkKCkpIHtcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnQocGFyYW1zLmNvbHVtbiwgJ2ZpbHRlckNoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0ZpbHRlckFjdGl2ZSA9IHBhcmFtcy5jb2x1bW4uaXNGaWx0ZXJBY3RpdmUoKTtcbiAgICAgICAgICAgIGlmIChpc0ZpbHRlckFjdGl2ZSAhPT0gdGhpcy5maWx0ZXJFbmFibGVkJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyRW5hYmxlZCQubmV4dChpc0ZpbHRlckFjdGl2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgIC8vIENvbHVtbiBzb3J0IHN0YXRlIGNoYW5nZXNcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnQocGFyYW1zLmNvbHVtbiwgJ3NvcnRDaGFuZ2VkJylcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlU29ydCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIC8vIE90aGVyIGNvbHVtbiBzb3J0IHN0YXRlIGNoYW5nZXMsIGZvciBtdWx0aS1jb2x1bW4gc29ydGluZ1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuYXBpLCAnc29ydENoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0SW5kZXgoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICB0aGlzLiN1cGRhdGVTb3J0SW5kZXgoKTtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZSBjb2x1bW4gaXMgbW92ZWQgbGVmdCB2aWEgdGhlIGtleWJvYXJkLCB0aGUgZWxlbWVudCBpcyBkZXRhY2hlZFxuICAgIC8vIGFuZCByZWF0dGFjaGVkIHRvIHRoZSBET00gdG8gbWFpbnRhaW4gRE9NIG9yZGVyLCBhbmQgaXRzIGZvY3VzIGlzIGxvc3QuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQ8Q29sdW1uTW92ZWRFdmVudD4ocGFyYW1zLmFwaSwgJ2NvbHVtbk1vdmVkJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gZXZlbnQuY29sdW1uPy5nZXRMZWZ0KCkgPz8gMDtcbiAgICAgICAgICBjb25zdCBvbGRMZWZ0ID0gdGhpcy4jbGVmdFBvc2l0aW9uO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LmNvbHVtbiA9PT0gcGFyYW1zLmNvbHVtbiAmJlxuICAgICAgICAgICAgZXZlbnQuc291cmNlID09PSAndWlDb2x1bW5Nb3ZlZCcgJiZcbiAgICAgICAgICAgIGxlZnQgPCBvbGRMZWZ0XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwYXJhbXMuZUdyaWRIZWFkZXIuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy4jbGVmdFBvc2l0aW9uID0gbGVmdDtcbiAgICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVDbGljaygkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMoKT8uc2hvd0NvbHVtbk1lbnUoJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgb25Tb3J0UmVxdWVzdGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zKCk/LmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgIHRoaXMucGFyYW1zKCk/LnByb2dyZXNzU29ydChldmVudC5zaGlmdEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICN1cGRhdGVJbmxpbmVIZWxwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdmlld0luaXRpYWxpemVkIHx8ICF0aGlzLiNhZ0luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5saW5lSGVscENvbXBvbmVudCA9IHRoaXMucGFyYW1zKCk/LmlubGluZUhlbHBDb21wb25lbnQ7XG5cbiAgICBpZiAoXG4gICAgICBpbmxpbmVIZWxwQ29tcG9uZW50ICYmXG4gICAgICAoIXRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYgfHxcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZi5jb21wb25lbnRUeXBlICE9PSBpbmxpbmVIZWxwQ29tcG9uZW50KVxuICAgICkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGVhZGVySW5mbyA9IG5ldyBTa3lBZ0dyaWRIZWFkZXJJbmZvKCk7XG4gICAgICBoZWFkZXJJbmZvLmNvbHVtbiA9IHRoaXMucGFyYW1zKCk/LmNvbHVtbjtcbiAgICAgIGhlYWRlckluZm8uY29udGV4dCA9IHRoaXMucGFyYW1zKCk/LmNvbnRleHQ7XG4gICAgICBoZWFkZXJJbmZvLmRpc3BsYXlOYW1lID0gdGhpcy5wYXJhbXMoKT8uZGlzcGxheU5hbWU7XG5cbiAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYgPVxuICAgICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoaW5saW5lSGVscENvbXBvbmVudCwge1xuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm92aWRlOiBTa3lBZ0dyaWRIZWFkZXJJbmZvLFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogaGVhZGVySW5mbyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLiNlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLmlubGluZUhlbHBDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50Qm90dG9tLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFpbmxpbmVIZWxwQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoXG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuc29ydE9yZGVyJC5uZXh0KHRoaXMucGFyYW1zKCk/LmNvbHVtbi5nZXRTb3J0KCkgfHwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gICN1cGRhdGVTb3J0SW5kZXgoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydEluZGV4ID0gdGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldFNvcnRJbmRleCgpO1xuICAgIGNvbnN0IG90aGVyU29ydENvbHVtbnMgPSB0aGlzLnBhcmFtcygpXG4gICAgICA/LmFwaT8uZ2V0Q29sdW1ucygpXG4gICAgICA/LnNvbWUoXG4gICAgICAgIChjb2x1bW4pID0+XG4gICAgICAgICAgY29sdW1uLmdldENvbElkKCkgIT09IHRoaXMucGFyYW1zKCk/LmNvbHVtbi5nZXRDb2xJZCgpICYmXG4gICAgICAgICAgISFjb2x1bW4uZ2V0U29ydCgpLFxuICAgICAgKTtcbiAgICBpZiAoc29ydEluZGV4ICE9PSB1bmRlZmluZWQgJiYgc29ydEluZGV4ICE9PSBudWxsICYmIG90aGVyU29ydENvbHVtbnMpIHtcbiAgICAgIHRoaXMuc29ydEluZGV4RGlzcGxheSQubmV4dChgJHtzb3J0SW5kZXggKyAxfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnRJbmRleERpc3BsYXkkLm5leHQoJycpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFnLWNlbGwtbGFiZWwtY29udGFpbmVyXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICBAaWYgKHBhcmFtcygpPy5lbmFibGVNZW51KSB7XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNlbGwtbWVudS1idXR0b25cIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJvbk1lbnVDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJtb3JlLWFjdGlvbnNcIiAvPlxuICAgIDwvc3Bhbj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtbGFiZWxcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbC1hbmQtaWNvbnNcIj5cbiAgICAgIEBpZiAocGFyYW1zKCk/LmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC10ZXh0IGFnLWhlYWRlci1jZWxsLWxhYmVsLXNvcnRhYmxlIHNreS1idG4tbGluay1pbmxpbmVcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWNjZXNzaWJsZUhlYWRlclRleHQoKVwiXG4gICAgICAgICAgW2lubmVyVGV4dF09XCJkaXNwbGF5TmFtZSgpID8/ICcnXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktZm9udC1oZWFkaW5nLTQnOiAnbW9kZXJuJyB9XCJcbiAgICAgICAgICAoY2xpY2spPVwib25Tb3J0UmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICB9IEBlbHNlIGlmIChkaXNwbGF5TmFtZSgpKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHRcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cInsgJ3NreS1mb250LWhlYWRpbmctNCc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgID57eyBkaXNwbGF5TmFtZSgpIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIH1cbiAgICAgIEBpZiAoZmlsdGVyRW5hYmxlZCQgfCBhc3luYykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvbiBhZy1maWx0ZXItaWNvblwiXG4gICAgICAgICAgPjxza3ktaWNvbiBpY29uTmFtZT1cImZpbHRlclwiXG4gICAgICAgIC8+PC9zcGFuPlxuICAgICAgfVxuICAgICAgQGlmIChwYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgICBAaWYgKHNvcnRPcmRlciQgfCBhc3luYzsgYXMgc29ydERpcmVjdGlvbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWctc29ydC1pbmRpY2F0b3ItY29udGFpbmVyIHNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Tb3J0UmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoc29ydERpcmVjdGlvbiA9PT0gJ2Rlc2MnKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb25cIj5cbiAgICAgICAgICAgICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2l6ZT1cInNcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9kZXNjJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGlzcGxheU5hbWUoKSA/PyBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tdXBcIiBpY29uU2l6ZT1cInNcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9hc2MnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkaXNwbGF5TmFtZSgpID8/IGFjY2Vzc2libGVIZWFkZXJUZXh0KClcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj48L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKHNvcnRJbmRleERpc3BsYXkkIHwgYXN5bmM7IGFzIHNvcnRJbmRleERpc3BsYXkpIHtcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctc29ydC1pbmRpY2F0b3ItaWNvbiBhZy1zb3J0LW9yZGVyXCJcbiAgICAgICAgICAgICAgICA+e3sgc29ydEluZGV4RGlzcGxheSB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGlzcGxheU5hbWUoKSA/PyBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gI2lubGluZUhlbHBDb250YWluZXIgY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","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.0\", ngImport: i0, type: SkyAgGridLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridLoadingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-loading', imports: [SkyWaitModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<sky-wait [isWaiting]=\\\"true\\\" />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixNQUFNLENBQUMsT0FBOEI7UUFDMUMsY0FBYztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQThCO1FBQzNDLGNBQWM7SUFDaEIsQ0FBQzs4R0FQVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrRUNadEMscUNBQ0EsMkNET1ksYUFBYTs7MkZBSVoseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixXQUN0QixDQUFDLGFBQWEsQ0FBQyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5V2FpdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5UGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1sb2FkaW5nJyxcbiAgaW1wb3J0czogW1NreVdhaXRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAge1xuICBwdWJsaWMgYWdJbml0KF9wYXJhbXM6IElMb2FkaW5nT3ZlcmxheVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuXG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChfcGFyYW1zOiBJTG9hZGluZ092ZXJsYXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG59XG4iLCI8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJ0cnVlXCIgLz5cbiJdfQ==","/**\n * @internal\n */\nexport var SkyCellClass;\n(function (SkyCellClass) {\n SkyCellClass[\"Autocomplete\"] = \"sky-ag-grid-cell-autocomplete\";\n SkyCellClass[\"Currency\"] = \"sky-ag-grid-cell-currency\";\n SkyCellClass[\"Date\"] = \"sky-ag-grid-cell-date\";\n SkyCellClass[\"Editable\"] = \"sky-ag-grid-cell-editable\";\n SkyCellClass[\"Invalid\"] = \"sky-ag-grid-cell-invalid\";\n SkyCellClass[\"Lookup\"] = \"sky-ag-grid-cell-lookup\";\n SkyCellClass[\"Number\"] = \"sky-ag-grid-cell-number\";\n SkyCellClass[\"RightAligned\"] = \"sky-ag-grid-cell-right-aligned\";\n SkyCellClass[\"RowSelector\"] = \"sky-ag-grid-cell-row-selector\";\n SkyCellClass[\"Template\"] = \"sky-ag-grid-cell-template\";\n SkyCellClass[\"Text\"] = \"sky-ag-grid-cell-text\";\n SkyCellClass[\"Uneditable\"] = \"sky-ag-grid-cell-uneditable\";\n SkyCellClass[\"Validator\"] = \"sky-ag-grid-cell-validator\";\n})(SkyCellClass || (SkyCellClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxZQWNYO0FBZEQsV0FBWSxZQUFZO0lBQ3RCLDhEQUE4QyxDQUFBO0lBQzlDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLHNEQUFzQyxDQUFBO0lBQ3RDLG9EQUFvQyxDQUFBO0lBQ3BDLGtEQUFrQyxDQUFBO0lBQ2xDLGtEQUFrQyxDQUFBO0lBQ2xDLCtEQUErQyxDQUFBO0lBQy9DLDZEQUE2QyxDQUFBO0lBQzdDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLDBEQUEwQyxDQUFBO0lBQzFDLHdEQUF3QyxDQUFBO0FBQzFDLENBQUMsRUFkVyxZQUFZLEtBQVosWUFBWSxRQWN2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxDbGFzcyB7XG4gIEF1dG9jb21wbGV0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWF1dG9jb21wbGV0ZScsXG4gIEN1cnJlbmN5ID0gJ3NreS1hZy1ncmlkLWNlbGwtY3VycmVuY3knLFxuICBEYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtZGF0ZScsXG4gIEVkaXRhYmxlID0gJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGFibGUnLFxuICBJbnZhbGlkID0gJ3NreS1hZy1ncmlkLWNlbGwtaW52YWxpZCcsXG4gIExvb2t1cCA9ICdza3ktYWctZ3JpZC1jZWxsLWxvb2t1cCcsXG4gIE51bWJlciA9ICdza3ktYWctZ3JpZC1jZWxsLW51bWJlcicsXG4gIFJpZ2h0QWxpZ25lZCA9ICdza3ktYWctZ3JpZC1jZWxsLXJpZ2h0LWFsaWduZWQnLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRlbXBsYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtdGVtcGxhdGUnLFxuICBUZXh0ID0gJ3NreS1hZy1ncmlkLWNlbGwtdGV4dCcsXG4gIFVuZWRpdGFibGUgPSAnc2t5LWFnLWdyaWQtY2VsbC11bmVkaXRhYmxlJyxcbiAgVmFsaWRhdG9yID0gJ3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yJyxcbn1cbiJdfQ==","/**\n * @internal\n */\nexport var SkyHeaderClass;\n(function (SkyHeaderClass) {\n SkyHeaderClass[\"Resizable\"] = \"sky-ag-grid-header-resizable\";\n SkyHeaderClass[\"RightAligned\"] = \"sky-ag-grid-header-right-aligned\";\n})(SkyHeaderClass || (SkyHeaderClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4Qiw0REFBMEMsQ0FBQTtJQUMxQyxtRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZW51bSBTa3lIZWFkZXJDbGFzcyB7XG4gIFJlc2l6YWJsZSA9ICdza3ktYWctZ3JpZC1oZWFkZXItcmVzaXphYmxlJyxcbiAgUmlnaHRBbGlnbmVkID0gJ3NreS1hZy1ncmlkLWhlYWRlci1yaWdodC1hbGlnbmVkJyxcbn1cbiJdfQ==","import { CSP_NONCE, Injectable, Optional, inject, } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyDateService } from '@skyux/datetime';\nimport { Subject, takeUntil } from 'rxjs';\nimport { getSkyAgGridTheme } from '../../styles/ag-grid-theme';\nimport { applySkyLookupPropertiesDefaults } from './apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorAutocompleteComponent } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nimport { SkyAgGridCellEditorCurrencyComponent } from './cell-editors/cell-editor-currency/cell-editor-currency.component';\nimport { SkyAgGridCellEditorDatepickerComponent } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nimport { SkyAgGridCellEditorLookupComponent } from './cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nimport { SkyAgGridCellEditorNumberComponent } from './cell-editors/cell-editor-number/cell-editor-number.component';\nimport { SkyAgGridCellEditorTextComponent } from './cell-editors/cell-editor-text/cell-editor-text.component';\nimport { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nimport { SkyAgGridCellRendererLookupComponent } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nimport { SkyAgGridCellRendererRowSelectorComponent } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nimport { SkyAgGridCellRendererTemplateComponent } from './cell-renderers/cell-renderer-template/cell-renderer-template.component';\nimport { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nimport { SkyAgGridHeaderGroupComponent } from './header/header-group.component';\nimport { SkyAgGridHeaderRowSelectorComponent } from './header/header-row-selector/header-row-selector.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\nimport { iconMap } from './icons/icon-map';\nimport { SkyAgGridLoadingComponent } from './loading/loading.component';\nimport { SkyCellClass } from './types/cell-class';\nimport { SkyCellType } from './types/cell-type';\nimport { SkyHeaderClass } from './types/header-class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./ag-grid-adapter.service\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"@skyux/i18n\";\nfunction autocompleteComparator(value1, value2) {\n if (value1 && value2) {\n if (value1.name > value2.name) {\n return 1;\n }\n if (value1.name < value2.name) {\n return -1;\n }\n return 0;\n }\n return value1 ? 1 : -1;\n}\nfunction autocompleteFormatter(params) {\n return params.value && params.value.name;\n}\nfunction dateComparator(date1, date2) {\n let date1value = date1;\n let date2value = date2;\n if (typeof date1value === 'string') {\n date1value = new Date(date1);\n }\n if (typeof date2value === 'string') {\n date2value = new Date(date2);\n }\n if (date1value && date2value) {\n if (date1value > date2value) {\n return 1;\n }\n if (date1value < date2value) {\n return -1;\n }\n return 0;\n }\n return date1value ? 1 : -1;\n}\nfunction getValidatorCellRendererSelector(component, fallback) {\n return (params) => {\n if (params.colDef &&\n typeof params.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function') {\n if (params.column?.isCellEditable(params.node) ||\n !params.colDef.cellRendererParams.skyComponentProperties.validator(params.value, params.data, params?.node?.rowIndex)) {\n return {\n component,\n params: {\n ...params.colDef.cellRendererParams,\n },\n };\n }\n }\n return fallback;\n };\n}\nlet rowNodeId = -1;\n/**\n * `SkyAgGridService` provides methods to get AG Grid `gridOptions` to ensure grids match SKY UX functionality. The `gridOptions` can be overridden, and include registered SKY UX column types.\n */\nexport class SkyAgGridService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #keyMap = new WeakMap();\n #ngUnsubscribe = new Subject();\n #currentTheme = undefined;\n #agGridAdapterService;\n #resources;\n #dateService = inject(SkyDateService);\n #logService = inject(SkyLogService);\n #cspNonce = inject(CSP_NONCE, { optional: true });\n constructor(agGridAdapterService, themeSvc, resources) {\n this.#agGridAdapterService = agGridAdapterService;\n this.#resources = resources;\n /*istanbul ignore else*/\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#currentTheme = settingsChange.currentSettings;\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell renderers registered for read-only grids.\n * @param args\n * @returns\n */\n getGridOptions(args) {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(defaultGridOptions, args.gridOptions);\n return mergedGridOptions;\n }\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell editors registered for editable grids.\n * @param args\n * @returns\n */\n getEditableGridOptions(args) {\n const defaultGridOptions = this.#getDefaultEditableGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(defaultGridOptions, args.gridOptions);\n return mergedGridOptions;\n }\n #mergeGridOptions(defaultGridOptions, providedGridOptions) {\n if ('enableRangeSelection' in providedGridOptions) {\n if (providedGridOptions.enableRangeSelection) {\n providedGridOptions.cellSelection = true;\n }\n delete providedGridOptions.enableRangeSelection;\n }\n if (providedGridOptions.rowSelection === 'single' ||\n providedGridOptions.rowSelection === 'multiple') {\n const rowSelectionOptions = {\n single: { mode: 'singleRow', checkboxes: false },\n multiple: { mode: 'multiRow', checkboxes: false },\n };\n providedGridOptions.rowSelection =\n rowSelectionOptions[providedGridOptions.rowSelection];\n }\n if (providedGridOptions.rowSelection?.mode) {\n providedGridOptions.rowSelection = {\n ...(defaultGridOptions.rowSelection ?? {\n checkboxes: false,\n }),\n ...providedGridOptions.rowSelection,\n };\n }\n if ('enableCellChangeFlash' in providedGridOptions) {\n providedGridOptions.defaultColDef ??= {};\n providedGridOptions.defaultColDef.enableCellChangeFlash ??=\n !!providedGridOptions.enableCellChangeFlash;\n delete providedGridOptions.enableCellChangeFlash;\n }\n const mergedGridOptions = {\n ...defaultGridOptions,\n ...providedGridOptions,\n components: {\n ...providedGridOptions.components,\n // Apply default components last to prevent consumers from overwriting our component types.\n ...defaultGridOptions.components,\n },\n context: {\n ...defaultGridOptions.context,\n ...providedGridOptions.context,\n },\n columnTypes: {\n ...providedGridOptions.columnTypes,\n // apply default second to prevent consumers from overwriting our default column types\n ...defaultGridOptions.columnTypes,\n },\n defaultColDef: {\n ...defaultGridOptions.defaultColDef,\n ...providedGridOptions.defaultColDef,\n // allow consumers to override all defaultColDef properties except cellClassRules, which we reserve for styling\n cellClassRules: defaultGridOptions.defaultColDef?.cellClassRules,\n headerClass: defaultGridOptions.defaultColDef?.headerClass,\n },\n defaultColGroupDef: {\n ...defaultGridOptions.defaultColGroupDef,\n ...providedGridOptions.defaultColGroupDef,\n headerClass: defaultGridOptions.defaultColGroupDef?.headerClass,\n },\n getRowClass: (params) => {\n const defaultClasses = defaultGridOptions.getRowClass(params);\n const providedClasses = providedGridOptions.getRowClass?.(params) ?? [];\n const providedClassesArray = Array.isArray(providedClasses)\n ? providedClasses\n : [providedClasses];\n return [...defaultClasses, ...providedClassesArray];\n },\n onCellFocused: (event) => {\n defaultGridOptions.onCellFocused?.(event);\n providedGridOptions.onCellFocused?.(event);\n },\n };\n // Enable text selection unless explicitly disabled or conflicting with another setting.\n if (mergedGridOptions.enableCellTextSelection ||\n (!('enableCellTextSelection' in mergedGridOptions) &&\n !mergedGridOptions.cellSelection &&\n !mergedGridOptions.columnDefs?.some((col) => col.editable))) {\n mergedGridOptions.context ||= {};\n mergedGridOptions.enableCellTextSelection ??= true;\n mergedGridOptions.context.enableCellTextSelection =\n mergedGridOptions.enableCellTextSelection;\n }\n return mergedGridOptions;\n }\n #getDefaultGridOptions(args) {\n // cellClassRules can be functions or string expressions\n const cellClassRuleTrueExpression = () => true;\n function getEditableFn(isUneditable) {\n return function (params) {\n let isEditable = params.colDef.editable;\n if (typeof isEditable === 'function') {\n const column = params.api.getColumn(params.colDef);\n isEditable = isEditable({\n ...params,\n column,\n });\n }\n return isUneditable ? !isEditable : !!isEditable;\n };\n }\n const editableCellClassRules = {\n [SkyCellClass.Editable]: getEditableFn(),\n [SkyCellClass.Uneditable]: getEditableFn(true),\n };\n function getValidatorFn() {\n return function (param) {\n if (param.colDef &&\n typeof param.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function') {\n return !param.colDef.cellRendererParams.skyComponentProperties.validator(param.value, param.data, param.node?.rowIndex);\n }\n return false;\n };\n }\n const validatorCellClassRules = {\n [SkyCellClass.Invalid]: getValidatorFn(),\n [SkyCellClass.Validator]: cellClassRuleTrueExpression,\n };\n function getHeaderClass(...classNames) {\n return (params) => {\n // istanbul ignore next\n const minWidth = params.column?.getMinWidth() ?? 0;\n // istanbul ignore next\n const maxWidth = params.column?.getMaxWidth() ?? Infinity;\n if ((params.columnGroup?.isResizable() || params.column?.isResizable()) &&\n minWidth < maxWidth) {\n return [...classNames, SkyHeaderClass.Resizable];\n }\n return classNames;\n };\n }\n const defaultSkyGridOptions = {\n columnTypes: {\n [SkyCellType.Autocomplete]: {\n cellClassRules: {\n [SkyCellClass.Autocomplete]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorAutocompleteComponent,\n valueFormatter: autocompleteFormatter,\n comparator: autocompleteComparator,\n minWidth: 185,\n },\n [SkyCellType.Currency]: {\n cellClassRules: {\n [SkyCellClass.Currency]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-currency-validator', { component: 'sky-ag-grid-cell-renderer-currency' }),\n cellEditor: SkyAgGridCellEditorCurrencyComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n minWidth: 185,\n sortingOrder: [null, 'desc', 'asc'],\n suppressKeyboardEvent: (params) => this.#suppressEnter(params) || this.#suppressTab(params),\n },\n [SkyCellType.Date]: {\n cellClassRules: {\n [SkyCellClass.Date]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorDatepickerComponent,\n comparator: dateComparator,\n minWidth: this.#currentTheme?.theme?.name === 'modern' ? 180 : 160,\n valueFormatter: (params) => {\n try {\n return (this.#dateService.format(params.value, args.locale, args.dateFormat || 'shortDate') || '');\n }\n catch (err) {\n /* istanbul ignore else */\n if (err.stack) {\n this.#logService.error(`${err.stack}`);\n }\n else {\n this.#logService.error(`${err}`);\n }\n return '';\n }\n },\n },\n [SkyCellType.Lookup]: {\n cellClassRules: {\n [SkyCellClass.Lookup]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorLookupComponent,\n cellRenderer: SkyAgGridCellRendererLookupComponent,\n valueFormatter: (params) => {\n const lookupProperties = applySkyLookupPropertiesDefaults(params.colDef?.cellRendererParams?.skyComponentProperties ??\n params.colDef?.cellEditorParams?.skyComponentProperties ??\n {});\n return (params.value || [])\n .map((value) => {\n return value[lookupProperties.descriptorProperty];\n })\n .filter((value) => value !== '' && value !== undefined)\n .join('; ');\n },\n minWidth: 185,\n },\n [SkyCellType.Number]: {\n cellClassRules: {\n [SkyCellClass.Number]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n cellEditor: SkyAgGridCellEditorNumberComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n sortingOrder: [null, 'desc', 'asc'],\n },\n [SkyCellType.RightAligned]: {\n cellClassRules: {\n [SkyCellClass.RightAligned]: cellClassRuleTrueExpression,\n },\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n },\n [SkyCellType.RowSelector]: {\n cellClassRules: {\n [SkyCellClass.RowSelector]: cellClassRuleTrueExpression,\n [SkyCellClass.Uneditable]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererRowSelectorComponent,\n headerComponent: SkyAgGridHeaderRowSelectorComponent,\n headerName: 'Row selection',\n minWidth: 55,\n maxWidth: 55,\n resizable: false,\n sortable: false,\n width: 55,\n },\n [SkyCellType.Template]: {\n cellClassRules: {\n [SkyCellClass.Template]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererTemplateComponent,\n cellEditor: SkyAgGridCellRendererTemplateComponent,\n },\n [SkyCellType.Text]: {\n cellClassRules: {\n [SkyCellClass.Text]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorTextComponent,\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n },\n [SkyCellType.Validator]: {\n cellClassRules: {\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n },\n },\n defaultColDef: {\n cellClassRules: editableCellClassRules,\n headerClass: getHeaderClass(),\n headerComponent: SkyAgGridHeaderComponent,\n minWidth: 100,\n suppressHeaderKeyboardEvent: (keypress) => keypress.event.code === 'Tab',\n suppressKeyboardEvent: (keypress) => this.#suppressTab(keypress),\n },\n defaultColGroupDef: {\n headerGroupComponent: SkyAgGridHeaderGroupComponent,\n },\n domLayout: 'autoHeight',\n ensureDomOrder: true,\n components: {\n 'sky-ag-grid-cell-renderer-currency': SkyAgGridCellRendererCurrencyComponent,\n 'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,\n 'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent,\n },\n focusGridInnerElement: (params) => {\n const lastFocusedCell = params.context?.['lastFocusedCell'];\n if (lastFocusedCell) {\n if (lastFocusedCell.rowIndex !== null) {\n params.api.setFocusedCell(lastFocusedCell.rowIndex, lastFocusedCell.column);\n }\n else {\n params.api.setFocusedHeader(lastFocusedCell.column);\n }\n return true;\n }\n return false;\n },\n getRowId: (params) => {\n const dataId = params.data.id;\n if (dataId !== undefined) {\n return `${params.data.id}`;\n }\n if (!this.#keyMap.has(params.data)) {\n this.#keyMap.set(params.data, `${rowNodeId--}`);\n }\n return this.#keyMap.get(params.data);\n },\n getRowClass: (params) => {\n if (params.node.id) {\n return [`sky-ag-grid-row-${params.node.id}`];\n }\n else {\n return [];\n }\n },\n icons: Object.fromEntries(Object.keys(iconMap).map((iconKey) => [\n iconKey,\n this.#getIconTemplate(iconKey),\n ])),\n loadingOverlayComponent: SkyAgGridLoadingComponent,\n onCellFocused: (event) => this.#onCellFocused(event),\n rowModelType: 'clientSide',\n rowSelection: {\n mode: 'multiRow',\n enableClickSelection: false,\n enableSelectionWithoutKeys: true,\n checkboxes: false,\n headerCheckbox: false,\n },\n singleClickEdit: true,\n styleNonce: this.#cspNonce ?? undefined,\n suppressDragLeaveHidesColumns: true,\n theme: getSkyAgGridTheme('data-grid'),\n };\n const columnTypes = defaultSkyGridOptions.columnTypes;\n columnTypes[SkyCellType.CurrencyValidator] = {\n ...columnTypes[SkyCellType.Currency],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value) => {\n return !!`${value || ''}`.match(/^[^0-9]*(\\d+[,.]?)+\\d*[^0-9]*$/);\n },\n validatorMessage: 'Please enter a valid currency',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_currency_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n }\n columnTypes[SkyCellType.NumberValidator] = {\n ...columnTypes[SkyCellType.Validator],\n ...columnTypes[SkyCellType.Number],\n cellClassRules: {\n ...columnTypes[SkyCellType.Validator].cellClassRules,\n ...columnTypes[SkyCellType.Number].cellClassRules,\n },\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value) => {\n return !!value && !isNaN(parseFloat(value));\n },\n validatorMessage: 'Please enter a valid number',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_number_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n this.#resources\n .getString('sky_ag_grid_row_selector_column_heading')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.RowSelector].headerName = value;\n });\n }\n return defaultSkyGridOptions;\n }\n #onCellFocused(event) {\n const shouldFocus = this.#shouldFocusChildren(event);\n if (shouldFocus) {\n const currentElement = this.#agGridAdapterService.getFocusedElement();\n this.#agGridAdapterService.focusOnFocusableChildren(currentElement);\n }\n }\n #shouldFocusChildren(event) {\n let shouldFocus = true;\n // The API says the column can be string or null, but should be an object.\n shouldFocus &&= typeof event.column === 'object';\n // Row index can be number or null.\n const rowNode = Number.isInteger(event.rowIndex) &&\n event.api.getDisplayedRowAtIndex(event.rowIndex);\n shouldFocus &&= !!rowNode;\n // Do not change focus if the cell is a row drag or dnd source.\n shouldFocus &&= !event.column.isRowDrag(rowNode);\n shouldFocus &&= !event.column.isDndSource(rowNode);\n return shouldFocus;\n }\n #getDefaultEditableGridOptions(args) {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n defaultGridOptions.rowSelection = undefined;\n defaultGridOptions.theme = getSkyAgGridTheme('data-entry-grid');\n return defaultGridOptions;\n }\n #getIconTemplate(iconKey) {\n return () => {\n const iconInfo = iconMap[iconKey];\n return `<svg height=\"16\" width=\"16\"><use xlink:href=\"#sky-i-${iconInfo.name}-${iconInfo.size}-solid\"></use></svg>`;\n };\n }\n #suppressTab(params) {\n if (params.event.code === 'Tab') {\n if (params.editing) {\n const currentlyFocusedEl = this.#agGridAdapterService.getFocusedElement();\n // inline cell editors have the 'ag-cell' class, while popup editors have the 'ag-popup-editor' class\n const cellEl = this.#agGridAdapterService.getElementOrParentWithClass(currentlyFocusedEl, 'ag-cell');\n const popupEl = this.#agGridAdapterService.getElementOrParentWithClass(currentlyFocusedEl, 'ag-popup-editor');\n const parentEl = cellEl || popupEl;\n const nextFocusableElementInCell = this.#agGridAdapterService.getNextFocusableElement(currentlyFocusedEl, parentEl, params.event.shiftKey);\n return !!nextFocusableElementInCell;\n }\n return true;\n }\n return false;\n }\n #suppressEnter(params) {\n if (params.event.code === 'Enter') {\n return params.editing;\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyAgGridAdapterService }, { type: i2.SkyThemeService, decorators: [{\n type: Optional\n }] }, { type: i3.SkyLibResourcesService, decorators: [{\n type: Optional\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFzQmpELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzFILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3JKLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzVILE9BQU8sRUFB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LFFBQVEsQ0FDdEIsQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQW1DO1FBQ2hELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBaGxCVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDU1BfTk9OQ0UsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5RGF0ZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIEFnQ29sdW1uLFxuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIENlbGxSZW5kZXJlclNlbGVjdG9yRnVuYyxcbiAgQ2VsbFJlbmRlcmVyU2VsZWN0b3JSZXN1bHQsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93Tm9kZSxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0U2t5QWdHcmlkVGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvYWctZ3JpZC10aGVtZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4vYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUFnR3JpZExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbENsYXNzIH0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuaW1wb3J0IHsgU2t5SGVhZGVyQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBMYXN0Rm9jdXNlZENlbGwgfSBmcm9tICcuL3R5cGVzL2xhc3QtZm9jdXNlZC5jZWxsJztcbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IoXG4gIHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSxcbiAgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9LFxuKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IERhdGUgfCBzdHJpbmcsIGRhdGUyOiBEYXRlIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gIGNvbXBvbmVudDogc3RyaW5nLFxuICBmYWxsYmFjaz86IENlbGxSZW5kZXJlclNlbGVjdG9yUmVzdWx0LFxuKTogQ2VsbFJlbmRlcmVyU2VsZWN0b3JGdW5jIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zLmNvbHVtbj8uaXNDZWxsRWRpdGFibGUocGFyYW1zLm5vZGUpIHx8XG4gICAgICAgICFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgcGFyYW1zPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gLTE7XG5cbi8qKlxuICogYFNreUFnR3JpZFNlcnZpY2VgIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IEFHIEdyaWQgYGdyaWRPcHRpb25zYCB0byBlbnN1cmUgZ3JpZHMgbWF0Y2ggU0tZIFVYIGZ1bmN0aW9uYWxpdHkuIFRoZSBgZ3JpZE9wdGlvbnNgIGNhbiBiZSBvdmVycmlkZGVuLCBhbmQgaW5jbHVkZSByZWdpc3RlcmVkIFNLWSBVWCBjb2x1bW4gdHlwZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgI2tleU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgc3RyaW5nPigpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICNyZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICNkYXRlU2VydmljZSA9IGluamVjdChTa3lEYXRlU2VydmljZSk7XG4gICNsb2dTZXJ2aWNlID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjY3NwTm9uY2UgPSBpbmplY3QoQ1NQX05PTkNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZSA9IGFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIGVkaXRvcnMgcmVnaXN0ZXJlZCBmb3IgZWRpdGFibGUgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSxcbiAgICBwcm92aWRlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyxcbiAgKTogR3JpZE9wdGlvbnMge1xuICAgIGlmICgnZW5hYmxlUmFuZ2VTZWxlY3Rpb24nIGluIHByb3ZpZGVkR3JpZE9wdGlvbnMpIHtcbiAgICAgIGlmIChwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZVJhbmdlU2VsZWN0aW9uKSB7XG4gICAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBkZWxldGUgcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdzaW5nbGUnIHx8XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9PT0gJ211bHRpcGxlJ1xuICAgICkge1xuICAgICAgY29uc3Qgcm93U2VsZWN0aW9uT3B0aW9uczogUmVjb3JkPHN0cmluZywgUm93U2VsZWN0aW9uT3B0aW9ucz4gPSB7XG4gICAgICAgIHNpbmdsZTogeyBtb2RlOiAnc2luZ2xlUm93JywgY2hlY2tib3hlczogZmFsc2UgfSxcbiAgICAgICAgbXVsdGlwbGU6IHsgbW9kZTogJ211bHRpUm93JywgY2hlY2tib3hlczogZmFsc2UgfSxcbiAgICAgIH07XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9XG4gICAgICAgIHJvd1NlbGVjdGlvbk9wdGlvbnNbcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb25dO1xuICAgIH1cbiAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24/Lm1vZGUpIHtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xuICAgICAgICAuLi4oKGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gYXMgUm93U2VsZWN0aW9uT3B0aW9ucykgPz8ge1xuICAgICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24sXG4gICAgICB9IGFzIFJvd1NlbGVjdGlvbk9wdGlvbnM7XG4gICAgfVxuICAgIGlmICgnZW5hYmxlQ2VsbENoYW5nZUZsYXNoJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYgPz89IHt9O1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaCA/Pz1cbiAgICAgICAgISFwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaDtcbiAgICAgIGRlbGV0ZSBwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaDtcbiAgICB9XG5cbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29tcG9uZW50cyBsYXN0IHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGNvbXBvbmVudCB0eXBlcy5cbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29udGV4dDoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29udGV4dCxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb250ZXh0LFxuICAgICAgfSxcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICAgIC8vIGFwcGx5IGRlZmF1bHQgc2Vjb25kIHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGRlZmF1bHQgY29sdW1uIHR5cGVzXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDbGFzczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmhlYWRlckNsYXNzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWY/LmhlYWRlckNsYXNzLFxuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zKTogc3RyaW5nW10gPT4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2xhc3NlcyA9IGRlZmF1bHRHcmlkT3B0aW9ucy5nZXRSb3dDbGFzcyhcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICkgYXMgc3RyaW5nW107XG4gICAgICAgIGNvbnN0IHByb3ZpZGVkQ2xhc3NlcyA9IHByb3ZpZGVkR3JpZE9wdGlvbnMuZ2V0Um93Q2xhc3M/LihwYXJhbXMpID8/IFtdO1xuICAgICAgICBjb25zdCBwcm92aWRlZENsYXNzZXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvdmlkZWRDbGFzc2VzKVxuICAgICAgICAgID8gcHJvdmlkZWRDbGFzc2VzXG4gICAgICAgICAgOiBbcHJvdmlkZWRDbGFzc2VzXTtcbiAgICAgICAgcmV0dXJuIFsuLi5kZWZhdWx0Q2xhc3NlcywgLi4ucHJvdmlkZWRDbGFzc2VzQXJyYXldO1xuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkZWZhdWx0R3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5vbkNlbGxGb2N1c2VkPy4oZXZlbnQpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gRW5hYmxlIHRleHQgc2VsZWN0aW9uIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkIG9yIGNvbmZsaWN0aW5nIHdpdGggYW5vdGhlciBzZXR0aW5nLlxuICAgIGlmIChcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIHx8XG4gICAgICAoISgnZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24nIGluIG1lcmdlZEdyaWRPcHRpb25zKSAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY29sdW1uRGVmcz8uc29tZSgoY29sOiBDb2xEZWYpID0+IGNvbC5lZGl0YWJsZSkpXG4gICAgKSB7XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0IHx8PSB7fTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uID8/PSB0cnVlO1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dC5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA9XG4gICAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgLy8gY2VsbENsYXNzUnVsZXMgY2FuIGJlIGZ1bmN0aW9ucyBvciBzdHJpbmcgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihcbiAgICAgIGlzVW5lZGl0YWJsZT86IGJvb2xlYW4sXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5hcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogISFpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtLmNvbERlZiAmJlxuICAgICAgICAgIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgICBwYXJhbS52YWx1ZSxcbiAgICAgICAgICAgIHBhcmFtLmRhdGEsXG4gICAgICAgICAgICBwYXJhbS5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgICAgW1NreUNlbGxDbGFzcy5WYWxpZGF0b3JdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldEhlYWRlckNsYXNzKFxuICAgICAgLi4uY2xhc3NOYW1lczogc3RyaW5nW11cbiAgICApOiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcykgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIChwYXJhbXM6IEhlYWRlckNsYXNzUGFyYW1zKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgPT4ge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHBhcmFtcy5jb2x1bW4/LmdldE1pbldpZHRoKCkgPz8gMDtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNYXhXaWR0aCgpID8/IEluZmluaXR5O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHBhcmFtcy5jb2x1bW5Hcm91cD8uaXNSZXNpemFibGUoKSB8fCBwYXJhbXMuY29sdW1uPy5pc1Jlc2l6YWJsZSgpKSAmJlxuICAgICAgICAgIG1pbldpZHRoIDwgbWF4V2lkdGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5jbGFzc05hbWVzLCBTa3lIZWFkZXJDbGFzcy5SZXNpemFibGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWVzO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zICYge1xuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgICB9ID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICAgIHNvcnRpbmdPcmRlcjogW251bGwsICdkZXNjJywgJ2FzYyddLFxuICAgICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIHRoaXMuI3N1cHByZXNzRW50ZXIocGFyYW1zKSB8fCB0aGlzLiNzdXBwcmVzc1RhYihwYXJhbXMpLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuRGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5EYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGRhdGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDE4MCA6IDE2MCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy4jZGF0ZVNlcnZpY2UuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgYXJncy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICBhcmdzLmRhdGVGb3JtYXQgfHwgJ3Nob3J0RGF0ZScsXG4gICAgICAgICAgICAgICAgKSB8fCAnJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmICgoZXJyIGFzIEVycm9yKS5zdGFjaykge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7KGVyciBhcyBFcnJvcikuc3RhY2t9YCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jbG9nU2VydmljZS5lcnJvcihgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Mb29rdXBdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTG9va3VwXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvb2t1cFByb3BlcnRpZXMgPSBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhcbiAgICAgICAgICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID8/XG4gICAgICAgICAgICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbEVkaXRvclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAocGFyYW1zLnZhbHVlIHx8IFtdKVxuICAgICAgICAgICAgICAubWFwKCh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVbbG9va3VwUHJvcGVydGllcy5kZXNjcmlwdG9yUHJvcGVydHkgYXMgc3RyaW5nXTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IHVua25vd24pID0+IHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAuam9pbignOyAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5OdW1iZXJdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTnVtYmVyXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgICBzb3J0aW5nT3JkZXI6IFtudWxsLCAnZGVzYycsICdhc2MnXSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJpZ2h0QWxpZ25lZF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5SaWdodEFsaWduZWRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICdSb3cgc2VsZWN0aW9uJyxcbiAgICAgICAgICBtaW5XaWR0aDogNTUsXG4gICAgICAgICAgbWF4V2lkdGg6IDU1LFxuICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRlbXBsYXRlXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRlbXBsYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRleHRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVGV4dF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoKSxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIG1pbldpZHRoOiAxMDAsXG4gICAgICAgIHN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudDogKFxuICAgICAgICAgIGtleXByZXNzOiBTdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnRQYXJhbXMsXG4gICAgICAgICkgPT4ga2V5cHJlc3MuZXZlbnQuY29kZSA9PT0gJ1RhYicsXG4gICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKGtleXByZXNzOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpID0+XG4gICAgICAgICAgdGhpcy4jc3VwcHJlc3NUYWIoa2V5cHJlc3MpLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICBoZWFkZXJHcm91cENvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZG9tTGF5b3V0OiAnYXV0b0hlaWdodCcsXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCc6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBmb2N1c0dyaWRJbm5lckVsZW1lbnQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzZWRDZWxsID0gcGFyYW1zLmNvbnRleHQ/LlsnbGFzdEZvY3VzZWRDZWxsJ10gYXNcbiAgICAgICAgICB8IExhc3RGb2N1c2VkQ2VsbFxuICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAobGFzdEZvY3VzZWRDZWxsKSB7XG4gICAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyYW1zLmFwaS5zZXRGb2N1c2VkQ2VsbChcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLnJvd0luZGV4LFxuICAgICAgICAgICAgICBsYXN0Rm9jdXNlZENlbGwuY29sdW1uLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLmFwaS5zZXRGb2N1c2VkSGVhZGVyKGxhc3RGb2N1c2VkQ2VsbC5jb2x1bW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZ2V0Um93SWQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YUlkID0gcGFyYW1zLmRhdGEuaWQ7XG4gICAgICAgIGlmIChkYXRhSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbXMuZGF0YS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy4ja2V5TWFwLmhhcyhwYXJhbXMuZGF0YSkpIHtcbiAgICAgICAgICB0aGlzLiNrZXlNYXAuc2V0KHBhcmFtcy5kYXRhLCBgJHtyb3dOb2RlSWQtLX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy4ja2V5TWFwLmdldChwYXJhbXMuZGF0YSkgYXMgc3RyaW5nO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgaWYgKHBhcmFtcy5ub2RlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIFtgc2t5LWFnLWdyaWQtcm93LSR7cGFyYW1zLm5vZGUuaWR9YF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaWNvbnM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmtleXMoaWNvbk1hcCkubWFwKChpY29uS2V5KSA9PiBbXG4gICAgICAgICAgaWNvbktleSxcbiAgICAgICAgICB0aGlzLiNnZXRJY29uVGVtcGxhdGUoaWNvbktleSBhcyBrZXlvZiBJY29uTWFwVHlwZSksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50OiBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50LFxuICAgICAgb25DZWxsRm9jdXNlZDogKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KSA9PiB0aGlzLiNvbkNlbGxGb2N1c2VkKGV2ZW50KSxcbiAgICAgIHJvd01vZGVsVHlwZTogJ2NsaWVudFNpZGUnLFxuICAgICAgcm93U2VsZWN0aW9uOiB7XG4gICAgICAgIG1vZGU6ICdtdWx0aVJvdycsXG4gICAgICAgIGVuYWJsZUNsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlU2VsZWN0aW9uV2l0aG91dEtleXM6IHRydWUsXG4gICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICBoZWFkZXJDaGVja2JveDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc3R5bGVOb25jZTogdGhpcy4jY3NwTm9uY2UgPz8gdW5kZWZpbmVkLFxuICAgICAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnM6IHRydWUsXG4gICAgICB0aGVtZTogZ2V0U2t5QWdHcmlkVGhlbWUoJ2RhdGEtZ3JpZCcpLFxuICAgIH07XG5cbiAgICBjb25zdCBjb2x1bW5UeXBlcyA9IGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyBhcyBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICBDb2xEZWZcbiAgICA+O1xuXG4gICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFgJHt2YWx1ZSB8fCAnJ31gLm1hdGNoKC9eW14wLTldKihcXGQrWywuXT8pK1xcZCpbXjAtOV0qJC8pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGN1cnJlbmN5JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jcmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNcbiAgICAgICAgLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9jb2x1bW5faGVhZGluZycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl0uaGVhZGVyTmFtZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgI29uQ2VsbEZvY3VzZWQoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGRGb2N1cyA9IHRoaXMuI3Nob3VsZEZvY3VzQ2hpbGRyZW4oZXZlbnQpO1xuICAgIGlmIChzaG91bGRGb2N1cykge1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAjc2hvdWxkRm9jdXNDaGlsZHJlbihldmVudDogQ2VsbEZvY3VzZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBzaG91bGRGb2N1cyA9IHRydWU7XG4gICAgLy8gVGhlIEFQSSBzYXlzIHRoZSBjb2x1bW4gY2FuIGJlIHN0cmluZyBvciBudWxsLCBidXQgc2hvdWxkIGJlIGFuIG9iamVjdC5cbiAgICBzaG91bGRGb2N1cyAmJj0gdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCc7XG4gICAgLy8gUm93IGluZGV4IGNhbiBiZSBudW1iZXIgb3IgbnVsbC5cbiAgICBjb25zdCByb3dOb2RlID1cbiAgICAgIE51bWJlci5pc0ludGVnZXIoZXZlbnQucm93SW5kZXgpICYmXG4gICAgICBldmVudC5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChldmVudC5yb3dJbmRleCBhcyBudW1iZXIpO1xuICAgIHNob3VsZEZvY3VzICYmPSAhIXJvd05vZGU7XG4gICAgLy8gRG8gbm90IGNoYW5nZSBmb2N1cyBpZiB0aGUgY2VsbCBpcyBhIHJvdyBkcmFnIG9yIGRuZCBzb3VyY2UuXG4gICAgc2hvdWxkRm9jdXMgJiY9ICEoZXZlbnQuY29sdW1uIGFzIEFnQ29sdW1uKS5pc1Jvd0RyYWcocm93Tm9kZSBhcyBSb3dOb2RlKTtcbiAgICBzaG91bGRGb2N1cyAmJj0gIShldmVudC5jb2x1bW4gYXMgQWdDb2x1bW4pLmlzRG5kU291cmNlKHJvd05vZGUgYXMgUm93Tm9kZSk7XG4gICAgcmV0dXJuIHNob3VsZEZvY3VzO1xuICB9XG5cbiAgI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy50aGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWVudHJ5LWdyaWQnKTtcbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI2dldEljb25UZW1wbGF0ZShpY29uS2V5OiBrZXlvZiBJY29uTWFwVHlwZSk6ICgpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IGljb25JbmZvID0gaWNvbk1hcFtpY29uS2V5XTtcbiAgICAgIHJldHVybiBgPHN2ZyBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTZcIj48dXNlIHhsaW5rOmhyZWY9XCIjc2t5LWktJHtpY29uSW5mby5uYW1lfS0ke2ljb25JbmZvLnNpemV9LXNvbGlkXCI+PC91c2U+PC9zdmc+YDtcbiAgICB9O1xuICB9XG5cbiAgI3N1cHByZXNzVGFiKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgaWYgKHBhcmFtcy5lZGl0aW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRseUZvY3VzZWRFbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctY2VsbCcsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBvcHVwRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1wb3B1cC1lZGl0b3InLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9IGNlbGxFbCB8fCBwb3B1cEVsO1xuXG4gICAgICAgIGNvbnN0IG5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAgIHBhcmVudEVsLFxuICAgICAgICAgICAgcGFyYW1zLmV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNzdXBwcmVzc0VudGVyKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICByZXR1cm4gcGFyYW1zLmVkaXRpbmc7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","// Export any types that should be included in the root.\nexport { SkyAgGridModule } from './lib/modules/ag-grid/ag-grid.module';\nexport { SkyAgGridService } from './lib/modules/ag-grid/ag-grid.service';\nexport { SkyCellClass } from './lib/modules/ag-grid/types/cell-class';\nexport { SkyAgGridCellEditorInitialAction } from './lib/modules/ag-grid/types/cell-editor-initial-action';\nexport { SkyAgGridCellEditorUtils } from './lib/modules/ag-grid/types/cell-editor-utils';\nexport { SkyCellType } from './lib/modules/ag-grid/types/cell-type';\nexport { SkyHeaderClass } from './lib/modules/ag-grid/types/header-class';\nexport { SkyAgGridHeaderGroupInfo } from './lib/modules/ag-grid/types/header-group-info';\nexport { SkyAgGridHeaderInfo } from './lib/modules/ag-grid/types/header-info';\n// Components and directives must be exported to support Angular's \"partial\" Ivy compiler.\n// Obscure names are used to indicate types are not part of the public API.\nexport { SkyAgGridDataManagerAdapterDirective as λ14 } from './lib/modules/ag-grid/ag-grid-data-manager-adapter.directive';\nexport { SkyAgGridRowDeleteComponent as λ6 } from './lib/modules/ag-grid/ag-grid-row-delete.component';\nexport { SkyAgGridRowDeleteDirective as λ13 } from './lib/modules/ag-grid/ag-grid-row-delete.directive';\nexport { SkyAgGridWrapperComponent as λ12 } from './lib/modules/ag-grid/ag-grid-wrapper.component';\nexport { SkyAgGridCellEditorAutocompleteComponent as λ1 } from './lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nexport { SkyAgGridCellEditorCurrencyComponent as λ3 } from './lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component';\nexport { SkyAgGridCellEditorDatepickerComponent as λ5 } from './lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nexport { SkyAgGridCellEditorLookupComponent as λ15 } from './lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nexport { SkyAgGridCellEditorNumberComponent as λ4 } from './lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component';\nexport { SkyAgGridCellEditorTextComponent as λ2 } from './lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component';\nexport { SkyAgGridCellRendererCurrencyValidatorComponent as λ8 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nexport { SkyAgGridCellRendererCurrencyComponent as λ9 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nexport { SkyAgGridCellRendererLookupComponent as λ16 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nexport { SkyAgGridCellRendererRowSelectorComponent as λ7 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nexport { SkyAgGridCellRendererValidatorTooltipComponent as λ10 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nexport { SkyAgGridCellValidatorTooltipComponent as λ11 } from './lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component';\nexport { SkyAgGridHeaderGroupComponent as λ18 } from './lib/modules/ag-grid/header/header-group.component';\nexport { SkyAgGridHeaderComponent as λ17 } from './lib/modules/ag-grid/header/header.component';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQU96RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFMUcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVE5RSwwRkFBMEY7QUFDMUYsMkVBQTJFO0FBQzNFLE9BQU8sRUFBRSxvQ0FBb0MsSUFBSSxHQUFHLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLElBQUksRUFBRSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkcsT0FBTyxFQUFFLDJCQUEyQixJQUFJLEdBQUcsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxHQUFHLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0NBQXdDLElBQUksRUFBRSxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7QUFDaEssT0FBTyxFQUFFLG9DQUFvQyxJQUFJLEVBQUUsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BKLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUMxSixPQUFPLEVBQUUsa0NBQWtDLElBQUksR0FBRyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDL0ksT0FBTyxFQUFFLGtDQUFrQyxJQUFJLEVBQUUsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQzlJLE9BQU8sRUFBRSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUN4SSxPQUFPLEVBQUUsK0NBQStDLElBQUksRUFBRSxFQUFFLE1BQU0sd0dBQXdHLENBQUM7QUFDL0ssT0FBTyxFQUFFLHNDQUFzQyxJQUFJLEVBQUUsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzVKLE9BQU8sRUFBRSxvQ0FBb0MsSUFBSSxHQUFHLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUN2SixPQUFPLEVBQUUseUNBQXlDLElBQUksRUFBRSxFQUFFLE1BQU0sc0dBQXNHLENBQUM7QUFDdkssT0FBTyxFQUFFLDhDQUE4QyxJQUFJLEdBQUcsRUFBRSxNQUFNLGdIQUFnSCxDQUFDO0FBQ3ZMLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxHQUFHLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUM5SSxPQUFPLEVBQUUsNkJBQTZCLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0csT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IGFueSB0eXBlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcm9vdC5cbmV4cG9ydCB7IFNreUFnR3JpZE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lBZ0dyaWRTZXJ2aWNlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQuc2VydmljZSc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jYW5jZWwtYXJncyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlybS1hcmdzJztcbmV4cG9ydCB7XG4gIFNreUFnR3JpZEF1dG9jb21wbGV0ZVByb3BlcnRpZXMsXG4gIFNreUF1dG9jb21wbGV0ZVByb3BlcnRpZXMsXG59IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9hdXRvY29tcGxldGUtcHJvcGVydGllcyc7XG5leHBvcnQgeyBTa3lDZWxsQ2xhc3MgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1jbGFzcyc7XG5leHBvcnQgeyBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuZXhwb3J0IHsgU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci1wYXJhbXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuZXhwb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci1sb29rdXAtcGFyYW1zJztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5leHBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLXR5cGUnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2N1cnJlbmN5LXByb3BlcnRpZXMnO1xuZXhwb3J0IHtcbiAgU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMsXG4gIFNreURhdGVwaWNrZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvZGF0ZXBpY2tlci1wcm9wZXJ0aWVzJztcbmV4cG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWdyb3VwLWluZm8nO1xuZXhwb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWdyb3VwLXBhcmFtcyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJJbmZvIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2hlYWRlci1pbmZvJztcbmV4cG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItcGFyYW1zJztcbmV4cG9ydCB7IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvbG9va3VwLXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkTnVtYmVyUHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9udW1iZXItcHJvcGVydGllcyc7XG5leHBvcnQgeyBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRUZXh0UHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy90ZXh0LXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkVmFsaWRhdG9yUHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy92YWxpZGF0b3ItcHJvcGVydGllcyc7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSBhcyDOuzE0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtZGF0YS1tYW5hZ2VyLWFkYXB0ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUgYXMgzrsxMyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgYXMgzrsxMiB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgYXMgzrsxIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQgYXMgzrszIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgYXMgzrs1IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQgYXMgzrsxNSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbG9va3VwL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCBhcyDOuzQgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCBhcyDOuzggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQgYXMgzrs5IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IGFzIM67MTYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IGFzIM67NyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCBhcyDOuzEwIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgYXMgzrsxMSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IGFzIM67MTggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50IGFzIM67MTcgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYWctZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9za3l1eC1hZy1ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["takeUntil","i1","filter","i2","i3","i4","i1.SkyAgGridAdapterService"],"mappings":"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"}
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.0\", ngImport: i0, type: SkyAgGridResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsbUNBQW1DLEVBQUU7WUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUNyRSw2Q0FBNkMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHlDQUF5QyxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCx1Q0FBdUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsK0NBQStDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGtEQUFrRCxFQUFFO1lBQ2xELE9BQU8sRUFBRSx1QkFBdUI7U0FDakM7UUFDRCxvREFBb0QsRUFBRTtZQUNwRCxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDOUQsMkNBQTJDLEVBQUU7WUFDM0MsT0FBTyxFQUFFLG1DQUFtQztTQUM3QztRQUNELDhEQUE4RCxFQUFFO1lBQzlELE9BQU8sRUFBRSxzQ0FBc0M7U0FDaEQ7UUFDRCwrREFBK0QsRUFBRTtZQUMvRCxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QscUVBQXFFLEVBQUU7WUFDckUsT0FBTyxFQUFFLHVDQUF1QztTQUNqRDtRQUNELGlEQUFpRCxFQUFFO1lBQ2pELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCxtREFBbUQsRUFBRTtZQUNuRCxPQUFPLEVBQUUsMkJBQTJCO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsc0NBQXNDO1NBQ2hEO1FBQ0QsdUNBQXVDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELDZDQUE2QyxFQUFFO1lBQzdDLE9BQU8sRUFBRSx1Q0FBdUM7U0FDakQ7UUFDRCw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUseUJBQXlCO1NBQ25DO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLHlDQUF5QztTQUNuRDtRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSx3Q0FBd0M7U0FDbEQ7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUscURBQXFEO1NBQy9EO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRTtRQUNyRSwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUseUNBQXlDO1NBQ25EO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLHVEQUF1RDtTQUNqRTtRQUNELCtEQUErRCxFQUFFO1lBQy9ELE9BQU8sRUFBRSx5REFBeUQ7U0FDbkU7UUFDRCxxRUFBcUUsRUFBRTtZQUNyRSxPQUFPLEVBQUUsOENBQThDO1NBQ3hEO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSxtQ0FBbUM7U0FDN0M7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUZ6QixhQUFhOytHQUVaLHdCQUF3QixZQUZ6QixhQUFhOzsyRkFFWix3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1hZy1ncmlkJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSb3cgc2VsZWN0b3IgZm9yIHJvdyB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfcm93X3NlbGVjdG9yX2NvbHVtbl9oZWFkaW5nOiB7IG1lc3NhZ2U6ICdSb3cgc2VsZWN0aW9uJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGRhdGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2RhdGVwaWNrZXJfaGludF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9udW1iZXJfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIG51bWJlciB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfdGV4dF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgdGV4dCB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBhdXRvY29tcGxldGUgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnRW50ZXIgYSB2YWxpZCBudW1iZXIuJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIGN1cnJlbmN5LicsXG4gICAgfSxcbiAgICBza3l1eF9sb29rdXBfdG9rZW5zX3N1bW1hcnk6IHsgbWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgY3VycmVuY3kgezB9IGZvciByb3cgezF9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfYXNjOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBjdXJyZW50bHkgYXNjZW5kaW5nJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1NvcnQgY29sdW1uIHswfSwgY3VycmVudGx5IGRlc2NlbmRpbmcnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBub3QgY3VycmVudGx5IHNvcnRlZCcsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRXhwYW5kIGNvbHVtbiBncm91cCB7MH0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9jb2xsYXBzZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQ29sbGFwc2UgY29sdW1uIGdyb3VwIHswfScsXG4gICAgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGV1ciBkZSBsaWduZSBwb3VyIGxhIGxpZ25lIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmc6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9uIGTigJl1bmUgbGlnbmUnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfZGF0ZXBpY2tlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRGF0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2hpbnRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1V0aWxpc2V6IGxlIGZvcm1hdCB7MH0uJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnTnVtw6lybyBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdUZXh0ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1NhaXNpZSBhdXRvbWF0aXF1ZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1biBudW3DqXJvIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudHJleiB1bmUgZGV2aXNlIHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5OiB7IG1lc3NhZ2U6ICd7MH0gYXJ0aWNsZXMgc8OpbGVjdGlvbm7DqXMnIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfY3VycmVuY3lfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0RldmlzZSBtb2RpZmlhYmxlIHswfSBwb3VyIGxhIGxpZ25lIHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfZGVzYzoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgZW4gb3JkcmUgZMOpY3JvaXNzYW50JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9oZWFkZXJfc29ydF9idXR0b25fYXJpYV9sYWJlbF9jdXJyZW50bHlfbm90X3NvcnRlZDoge1xuICAgICAgbWVzc2FnZTogJ1RyaWVyIGxhIGNvbG9ubmUgezB9LCBhY3R1ZWxsZW1lbnQgbm9uIHRyacOpZScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2V4cGFuZF9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQWdyYW5kaXIgbGUgZ3JvdXBlIGRlIGNvbG9ubmVzIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2NvbGxhcHNlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSw6lkdWlyZSBsZSBncm91cGUgZGUgY29sb25uZXMgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=","import { colorSchemeLight, themeQuartz, } from 'ag-grid-community';\nconst defaultsForAllThemes = {\n backgroundColor: 'var(--sky-override-ag-grid-background-color, var(--sky-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.0\", 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.0\", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGtCQUFrQixDQUF3QjtJQUUxQyxZQUFZLGlCQUF3QztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUIsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxFQUFFLENBQWdCLENBQUM7UUFFdEUsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXNCLEVBQ3RCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsTUFBTSxTQUFTLEdBQUcsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFFNUIsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7Z0JBQ3pELENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFDakMsQ0FBQztnQkFDRCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQW9CO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0UsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDOzhHQS9EVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Uge1xuICAjc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihza3lBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UgPSBza3lBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRFbGVtZW50QnlJZChwYXJlbnRFbDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gcGFyZW50RWwucXVlcnlTZWxlY3RvcihgIyR7c2VsZWN0b3J9YCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvY3VzZWRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICBjdXJyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIHBhcmVudEVsPzogSFRNTEVsZW1lbnQsXG4gICAgbW92ZUZvY3VzTGVmdD86IGJvb2xlYW4sXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4ocGFyZW50RWwpO1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuLmluZGV4T2YoY3VycmVudEVsKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IG1vdmVGb2N1c0xlZnRcbiAgICAgICAgPyBjdXJyZW50RWxlbWVudEluZGV4IC0gMVxuICAgICAgICA6IGN1cnJlbnRFbGVtZW50SW5kZXggKyAxO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghbW92ZUZvY3VzTGVmdCAmJiBmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPj0gbmV4dEluZGV4KSB8fFxuICAgICAgICAobW92ZUZvY3VzTGVmdCAmJiBuZXh0SW5kZXggPj0gMClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9jdXNhYmxlQ2hpbGRyZW5bbmV4dEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IFtmb2N1c0NoaWxkXSA9IHRoaXMuI3NreUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuXG4gICAgaWYgKGZvY3VzQ2hpbGQ/Lm9mZnNldFBhcmVudCkge1xuICAgICAgZm9jdXNDaGlsZC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19","/**\n * These column types can be used by setting the AG Grid [column definition `type`](https://www.ag-grid.com/angular-data-grid/column-properties/#reference-editing) to one of the following values.\n * Any [SKY UX component](https://developer.blackbaud.com/skyux/components) can be made into a [cell editor](https://www.ag-grid.com/javascript-grid-cell-editor/) or [cell renderer](https://www.ag-grid.com/javascript-grid-cell-rendering-components/) component. If you would like to use a component that does not have a column definition yet, please consider [contributing it](https://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.0\", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, NgClass, SkyIdModule, SkyViewkeeperModule], template: \"<span\\n class=\\\"nav-anchor\\\"\\n tabindex=\\\"0\\\"\\n [id]=\\\"beforeAnchorId\\\"\\n (focusin)=\\\"onAnchorFocus($event)\\\"\\n>\\n</span>\\n<div\\n #skyAgGridDiv\\n class=\\\"sky-ag-grid\\\"\\n skyViewkeeperOmitShadow=\\\".ag-body-horizontal-scroll\\\"\\n tabindex=\\\"0\\\"\\n [class.sky-ag-grid-top-scrollbar]=\\\"\\n agGrid?.gridOptions?.context &&\\n agGrid?.gridOptions?.context['enableTopScroll']\\n \\\"\\n [ngClass]=\\\"wrapperClasses$ | async\\\"\\n [id]=\\\"gridId\\\"\\n [skyViewkeeper]=\\\"viewkeeperClasses\\\"\\n (keydown)=\\\"onGridKeydown($event)\\\"\\n (keyup.escape)=\\\"onKeyUpEscape($event)\\\"\\n>\\n <ng-content />\\n</div>\\n<span\\n tabindex=\\\"0\\\"\\n class=\\\"nav-anchor\\\"\\n [id]=\\\"afterAnchorId\\\"\\n (focusin)=\\\"onAnchorFocus($event)\\\"\\n>\\n</span>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { agGrid: [{\n type: ContentChild,\n args: [AgGridAngular, {\n static: true,\n }]\n }], isNormalLayout: [{\n type: HostBinding,\n args: ['class.sky-ag-grid-layout-normal']\n }], compact: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEQsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDBCQUEwQixHQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBD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QkFBQyxhQUFhLEVBQUU7d0JBQzNCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQUlNLGNBQWM7c0JBRHBCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVFuQyxPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERPQ1VNRU5ULFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVZpZXdrZWVwZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3MsXG4gIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UsXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIEhlYWRlckZvY3VzZWRFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgb2YsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGdldFNreUFnR3JpZFRoZW1lLFxuICBnZXRTa3lBZ0dyaWRUaGVtZUNsYXNzTmFtZSxcbn0gZnJvbSAnLi4vLi4vc3R5bGVzL2FnLWdyaWQtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Q2VsbFR5cGUgfSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdDbGFzcywgU2t5SWRNb2R1bGUsIFNreVZpZXdrZWVwZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQENvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWFnLWdyaWQtbGF5b3V0LW5vcm1hbCcpXG4gIHB1YmxpYyBpc05vcm1hbExheW91dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYSBjb21wYWN0IGxheW91dCBmb3IgdGhlIGdyaWQgd2hlbiB1c2luZyBtb2Rlcm4gdGhlbWUuIENvbXBhY3QgbGF5b3V0IHVzZXNcbiAgICogYSBzbWFsbGVyIGZvbnQgc2l6ZSBhbmQgcm93IGhlaWdodCB0byBkaXNwbGF5IG1vcmUgZGF0YSBpbiBhIHNtYWxsZXIgc3BhY2UuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBjb21wYWN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jaXNDb21wYWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGhlaWdodCBvZiB0aGUgZ3JpZCBpbiBwaXhlbHMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGA1MGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWluSGVpZ2h0ID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPig1MCwge1xuICAgIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgYWZ0ZXJBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgYmVmb3JlQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGdyaWRJZDogc3RyaW5nO1xuICBwdWJsaWMgd3JhcHBlckNsYXNzZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB2aWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCAjaXNJbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiB0aGlzLmFnR3JpZC5hcGkpIHtcbiAgICAgIGNvbnN0IHByaW1hcnlHcmlkRWRpdGluZyA9IHRoaXMuYWdHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwO1xuICAgICAgaWYgKHByaW1hcnlHcmlkRWRpdGluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ0dyaWQuYXBpLmdldEdyaWRPcHRpb24oJ21hc3RlckRldGFpbCcpKSB7XG4gICAgICAgIGxldCBpbm5lckVkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLmZvckVhY2hEZXRhaWxHcmlkSW5mbygoZGV0YWlsR3JpZCkgPT4ge1xuICAgICAgICAgIGlmIChkZXRhaWxHcmlkPy5hcGkgJiYgZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBza3lBZ0dyaWREaXYgPVxuICAgIHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3NreUFnR3JpZERpdicpO1xuXG4gICNfdmlld2tlZXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gIHJlYWRvbmx5ICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI3dyYXBwZXJDbGFzc2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW1xuICAgIGBhZy10aGVtZS1za3ktZGF0YS1ncmlkLWRlZmF1bHRgLFxuICBdKTtcbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI3BhcmVudENoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHJlYWRvbmx5ICNtdXRhdGlvbk9ic2VydmVyU2VydmljZSA9IGluamVjdChTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNpc0NvbXBhY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgI2hhc0VkaXRhYmxlQ2xhc3MgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZEluZGV4Kys7XG4gICAgdGhpcy5hZnRlckFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYWZ0ZXItJyArIGlkSW5kZXg7XG4gICAgdGhpcy5iZWZvcmVBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWJlZm9yZS0nICsgaWRJbmRleDtcbiAgICB0aGlzLmdyaWRJZCA9ICdza3ktYWctZ3JpZC0nICsgaWRJbmRleDtcbiAgICB0aGlzLndyYXBwZXJDbGFzc2VzJCA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1pbkhlaWdodCA9IHRoaXMubWluSGVpZ2h0KCk7XG4gICAgICBjb25zdCBza3lBZ0dyaWREaXYgPSB0aGlzLnNreUFnR3JpZERpdigpPy5uYXRpdmVFbGVtZW50O1xuICAgICAgc2t5QWdHcmlkRGl2Py5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgJy0tc2t5LWFnLWdyaWQtbWluLWhlaWdodCcsXG4gICAgICAgIGAke21pbkhlaWdodH1weGAsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIGNvbnN0IGRvbUxheW91dCA9IHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5kb21MYXlvdXQ7XG4gICAgICBpZiAoZG9tTGF5b3V0ID09PSAnYXV0b0hlaWdodCcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goXG4gICAgICAgICAgICAnLmFnLWhlYWRlcicsXG4gICAgICAgICAgICAnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKCcuYWctaGVhZGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICB0aGlzLmlzTm9ybWFsTGF5b3V0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jcGFyZW50Q2hhbmdlRGV0ZWN0b3I/LmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWdHcmlkLmdyaWRSZWFkeVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuZmlyc3REYXRhUmVuZGVyZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLnJvd0RhdGFVcGRhdGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0YXJ0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmFtcy5jb2xEZWYudHlwZSkge1xuICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBBcnJheS5pc0FycmF5KHBhcmFtcy5jb2xEZWYudHlwZSlcbiAgICAgICAgICAgICAgPyBwYXJhbXMuY29sRGVmLnR5cGVcbiAgICAgICAgICAgICAgOiBbcGFyYW1zLmNvbERlZi50eXBlXTtcbiAgICAgICAgICAgIGNvbnN0IGFkZENsYXNzZXMgPSB0eXBlcy5tYXAoXG4gICAgICAgICAgICAgICh0KSA9PiBgc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLSR7dH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoW1xuICAgICAgICAgICAgICAuLi50aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgICAuLi5hZGRDbGFzc2VzLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHR5cGVzLmluY2x1ZGVzKFNreUNlbGxUeXBlLlRlbXBsYXRlKSAmJlxuICAgICAgICAgICAgICBwYXJhbXMucm93SW5kZXggIT09IG51bGxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEZvY3VzZWRDZWxsKHBhcmFtcy5yb3dJbmRleCwgcGFyYW1zLmNvbHVtbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoXG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlc1xuICAgICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJykpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2VsbEZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgICAgY29udGV4dFsnbGFzdEZvY3VzZWRDZWxsJ10gPSB7XG4gICAgICAgICAgICByb3dJbmRleDogZXZlbnQucm93SW5kZXgsXG4gICAgICAgICAgICBjb2x1bW46XG4gICAgICAgICAgICAgIHR5cGVvZiBldmVudC5jb2x1bW4gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4/LmdldENvbElkKClcbiAgICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBldmVudC5hcGk/LnNldEdyaWRPcHRpb24oJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYWdHcmlkLmhlYWRlckZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogSGVhZGVyRm9jdXNlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRleHQgfHwge307XG5cbiAgICAgICAgICBjb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBudWxsLFxuICAgICAgICAgICAgY29sdW1uOiBldmVudC5jb2x1bW4/LmdldFVuaXF1ZUlkXG4gICAgICAgICAgICAgID8gZXZlbnQuY29sdW1uLmdldFVuaXF1ZUlkKClcbiAgICAgICAgICAgICAgOiBgJHtldmVudC5jb2x1bW59YCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZXZlbnQuYXBpPy5zZXRHcmlkT3B0aW9uKCdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2lzQ29tcGFjdC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdDxbYm9vbGVhbiwgYm9vbGVhbiwgU2t5VGhlbWVTZXR0aW5nc0NoYW5nZSB8IHVuZGVmaW5lZF0+KFtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI2lzQ29tcGFjdC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlID8/IG9mKHVuZGVmaW5lZCksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtoYXNFZGl0YWJsZUNsYXNzLCBpc0NvbXBhY3QsIHNldHRpbmdzXSkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVHcmlkVGhlbWUoXG4gICAgICAgICAgaGFzRWRpdGFibGVDbGFzcyxcbiAgICAgICAgICBpc0NvbXBhY3QsXG4gICAgICAgICAgc2V0dGluZ3M/LmN1cnJlbnRTZXR0aW5ncyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYWctZ3JpZC1hbmd1bGFyJyk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLm5leHQoXG4gICAgICAgICEhYWdHcmlkRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktYWctZ3JpZC1lZGl0YWJsZScpLFxuICAgICAgKTtcbiAgICB9O1xuICAgIGlmIChhZ0dyaWRFbGVtZW50KSB7XG4gICAgICBjb25zdCBhZ0dyaWRDbGFzc09ic2VydmVyID1cbiAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlclNlcnZpY2UuY3JlYXRlKGNhbGxiYWNrKTtcbiAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIub2JzZXJ2ZShhZ0dyaWRFbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICAgICAgfSk7XG4gICAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGNsb3NpbmcgYSBtb2RhbCB3aGVuIGZvY3VzZWQgaW4gQUcgR3JpZC5cbiAgICovXG4gIHB1YmxpYyBvbktleVVwRXNjYXBlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hZ0dyaWQ/LmFwaS5zdG9wRWRpdGluZyh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdyaWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICF0aGlzLiNpc0luRWRpdE1vZGUgJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgY29uc3QgaWRUb0ZvY3VzID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgPyB0aGlzLmJlZm9yZUFuY2hvcklkXG4gICAgICAgIDogdGhpcy5hZnRlckFuY2hvcklkO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0Rm9jdXNlZEVsZW1lbnRCeUlkKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGlkVG9Gb2N1cyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQW5jaG9yRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwcmV2aW91c1dhc0dyaWQgPVxuICAgICAgcmVsYXRlZFRhcmdldCAmJiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMocmVsYXRlZFRhcmdldCk7XG5cbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXByZXZpb3VzV2FzR3JpZCkge1xuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYWctdGFiLWd1YXJkLmFnLXRhYi1ndWFyZC10b3AnKVxuICAgICAgICA/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvVG9wID0gISF0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbDtcbiAgICBjb25zdCByb290ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290Jyk7XG4gICAgY29uc3QgaGVhZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWhlYWRlcicpO1xuICAgIGNvbnN0IGZsb2F0aW5nQm90dG9tID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWZsb2F0aW5nLWJvdHRvbScpO1xuICAgIGNvbnN0IHNjcm9sbGJhciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgaWYgKHJvb3QgJiYgaGVhZGVyICYmIGZsb2F0aW5nQm90dG9tICYmIHNjcm9sbGJhcikge1xuICAgICAgaWYgKFxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0ICE9PVxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1RvcCA9IHJvb3QuY2hpbGRyZW5bMV0ubWF0Y2hlcygnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICAgIGlmICh0b1RvcCAmJiAhaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGhlYWRlci5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKCF0b1RvcCAmJiBpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgZmxvYXRpbmdCb3R0b20uYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVHcmlkVGhlbWUoXG4gICAgaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbixcbiAgICBpc0NvbXBhY3Q6IGJvb2xlYW4sXG4gICAgdGhlbWVTZXR0aW5ncz86IFNreVRoZW1lU2V0dGluZ3MsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHNreUFnR3JpZFRoZW1lID0gZ2V0U2t5QWdHcmlkVGhlbWUoXG4gICAgICBoYXNFZGl0YWJsZUNsYXNzID8gJ2RhdGEtZW50cnktZ3JpZCcgOiAnZGF0YS1ncmlkJyxcbiAgICApO1xuICAgIHRoaXMuYWdHcmlkPy5hcGkuc2V0R3JpZE9wdGlvbigndGhlbWUnLCBza3lBZ0dyaWRUaGVtZSk7XG4gICAgY29uc3Qgc2t5QWdHcmlkVGhlbWVDbGFzc05hbWUgPSBnZXRTa3lBZ0dyaWRUaGVtZUNsYXNzTmFtZShcbiAgICAgIGhhc0VkaXRhYmxlQ2xhc3MsXG4gICAgICB0aGVtZVNldHRpbmdzLFxuICAgICAgaXNDb21wYWN0LFxuICAgICk7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCk7XG4gICAgbGV0IHZhbHVlID0gW1xuICAgICAgLi4ucHJldmlvdXNWYWx1ZS5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKSxcbiAgICAgIHNreUFnR3JpZFRoZW1lQ2xhc3NOYW1lLFxuICAgIF07XG4gICAgY29uc3QgdGV4dFNlbGVjdGlvbkNsYXNzID0gJ3NreS1hZy1ncmlkLXRleHQtc2VsZWN0aW9uJztcbiAgICBpZiAodGhpcy4jZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzKSkge1xuICAgICAgdmFsdWUucHVzaCh0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoYykgPT4gYyAhPT0gdGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbLi4ubmV3IFNldCh2YWx1ZSldKTtcbiAgfVxuXG4gICNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbikge1xuICAgICAgcmV0dXJuICFoYXNFZGl0YWJsZUNsYXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICAjc2t5QWdHcmlkRGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWRcIlxuICBza3lWaWV3a2VlcGVyT21pdFNoYWRvdz1cIi5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG48c3BhblxuICB0YWJpbmRleD1cIjBcIlxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICBbaWRdPVwiYWZ0ZXJBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG4iXX0=","import { Directive, Input, contentChildren, effect, inject, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/data-manager\";\nfunction toColumnWidthName(breakpoint) {\n return breakpoint === 'xs' ? 'xs' : 'sm';\n}\n/**\n * @internal\n */\nexport class SkyAgGridDataManagerAdapterDirective {\n #currentAgGrid;\n #currentDataState;\n #currentSkyAgGridWrapper;\n #dataStateSub;\n #viewConfig;\n #ngUnsubscribe;\n #changeDetector;\n #dataManagerSvc;\n #breakpoint;\n constructor(changeDetector, dataManagerSvc) {\n this.agGridList = contentChildren(AgGridAngular, ...(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.#ngUnsubscribe = new Subject();\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n this.#changeDetector = changeDetector;\n this.#dataManagerSvc = dataManagerSvc;\n effect(() => {\n const list = this.agGridList();\n this.#checkForAgGrid(list);\n });\n effect(() => {\n const list = this.skyAgGridWrapperList();\n this.#checkForSkyAgGridWrapper(list);\n });\n effect(() => {\n const breakpoint = this.#breakpoint();\n if (breakpoint) {\n this.#applyColumnWidths(breakpoint);\n }\n });\n }\n ngAfterContentInit() {\n if (this.viewId) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n this.#viewConfig = this.#dataManagerSvc.getViewById(this.viewId);\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #checkForAgGrid(agGridList) {\n const agGrid = agGridList[0];\n const agGridCount = agGridList.length;\n if (agGrid) {\n if (agGrid !== this.#currentAgGrid) {\n this.#registerAgGrid(agGrid);\n }\n if (agGridCount > 1) {\n console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');\n }\n }\n }\n #checkForSkyAgGridWrapper(wrappers) {\n const count = wrappers.length;\n const wrapper = wrappers[0];\n /* istanbul ignore else */\n if (wrapper !== this.#currentSkyAgGridWrapper) {\n this.#registerSkyAgGridWrapper(wrapper);\n }\n if (count > 1) {\n console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');\n }\n }\n #unregisterAgGrid() {\n this.#currentAgGrid = undefined;\n /* istanbul ignore if */\n if (this.#dataStateSub) {\n this.#dataStateSub.unsubscribe();\n }\n }\n #unregisterSkyAgGridWrapper() {\n this.#currentSkyAgGridWrapper = undefined;\n }\n #registerSkyAgGridWrapper(wrapper) {\n this.#unregisterSkyAgGridWrapper();\n this.#currentSkyAgGridWrapper = wrapper;\n setTimeout(() => {\n if (this.#currentSkyAgGridWrapper) {\n this.#currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n #registerAgGrid(agGrid) {\n this.#unregisterAgGrid();\n this.#currentAgGrid = agGrid;\n if (agGrid) {\n agGrid.gridReady.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n if (this.#viewConfig && this.viewId) {\n this.#viewConfig.onSelectAllClick = () => agGrid.api.selectAll();\n this.#viewConfig.onClearAllClick = () => agGrid.api.deselectAll();\n this.#dataManagerSvc.updateViewConfig(this.#viewConfig);\n this.#dataStateSub = this.#dataManagerSvc\n .getDataStateUpdates(this.#viewConfig.id)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState) => {\n this.#currentDataState = dataState;\n this.#displayColumns(dataState);\n this.#applySort(dataState);\n });\n if (agGrid.gridOptions?.context?.enableTopScroll) {\n this.#dataManagerSvc.setViewkeeperClasses(this.viewId, [\n '.ag-header',\n '.ag-body-horizontal-scroll',\n ]);\n }\n this.#applyColumnWidths();\n }\n });\n agGrid.columnMoved\n .pipe(takeUntil(this.#ngUnsubscribe), filter((event) => ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source)))\n .subscribe((value) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n agGrid.columnResized\n .pipe(takeUntil(this.#ngUnsubscribe), filter((event) => event.source === 'uiColumnResized'))\n .subscribe((event) => {\n const colId = event.column?.getColId();\n const width = event.column?.getActualWidth();\n const breakpoint = this.#breakpoint();\n if (colId && width && breakpoint) {\n this.#updateColumnWidth(colId, width, breakpoint);\n }\n });\n agGrid.dragStopped\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.#updateColumnsInCurrentDataState(value.api);\n });\n agGrid.rowSelected\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n if (this.#viewConfig && this.#currentDataState) {\n const row = event.node;\n const selectedIds = this.#currentDataState.selectedIds || [];\n const rowIndex = selectedIds.indexOf(row.data.id);\n if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n }\n else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n this.#currentDataState.selectedIds = selectedIds;\n this.#dataManagerSvc.updateDataState(this.#currentDataState, this.#viewConfig.id);\n this.#changeDetector.markForCheck();\n }\n });\n agGrid.sortChanged.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n const gridColumnStates = agGrid.api.getColumnState();\n const activeSortColumnState = gridColumnStates?.find((aGridColumnState) => aGridColumnState.sortIndex === 0) ??\n gridColumnStates?.find((aGridColumnState) => aGridColumnState.sort);\n if (this.#viewConfig && this.#currentDataState) {\n if (activeSortColumnState) {\n const activeSortColumnDef = agGrid.api.getColumnDef(activeSortColumnState.colId);\n this.#currentDataState.activeSortOption = {\n descending: activeSortColumnState.sort === 'desc',\n id: activeSortColumnState.colId,\n propertyName: activeSortColumnDef?.field || '',\n label: activeSortColumnDef?.headerName || '',\n };\n }\n else {\n this.#currentDataState.activeSortOption = undefined;\n }\n this.#dataManagerSvc.updateDataState(this.#currentDataState, this.#viewConfig.id);\n }\n });\n }\n }\n #updateColumnsInCurrentDataState(api) {\n if (this.#viewConfig && this.#currentDataState) {\n const columnOrder = this.#getColumnOrder(api);\n const viewState = this.#currentDataState.getViewStateById(this.#viewConfig.id);\n if (viewState &&\n (viewState.displayedColumnIds.length !== columnOrder.length ||\n viewState.displayedColumnIds.some((col, i) => col !== columnOrder[i]))) {\n viewState.displayedColumnIds = columnOrder;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.#viewConfig.id, viewState), this.#viewConfig.id);\n }\n }\n }\n #getColumnOrder(api) {\n return api\n .getColumnState()\n .filter((state) => !state.hide)\n .map((state) => state.colId);\n }\n #displayColumns(dataState) {\n const agGrid = this.#currentAgGrid;\n if (agGrid && this.#viewConfig) {\n const viewState = dataState.getViewStateById(this.#viewConfig.id);\n let displayedColumnIds = [];\n /*istanbul ignore else*/\n if (viewState?.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n const columnOrder = this.#getColumnOrder(agGrid.api);\n if (displayedColumnIds.length !== columnOrder.length ||\n displayedColumnIds.some((col, i) => col !== columnOrder[i])) {\n const hideColumns = agGrid.api\n .getColumnState()\n .map((col) => col.colId)\n .filter((colId) => !displayedColumnIds.includes(colId));\n agGrid.api.setColumnsVisible(hideColumns, false);\n agGrid.api.setColumnsVisible(displayedColumnIds, true);\n agGrid.api.moveColumns(displayedColumnIds, 0);\n this.#removeColumnWidths(hideColumns);\n }\n }\n }\n #applySort(dataState) {\n const agGrid = this.#currentAgGrid;\n const activeSort = dataState.activeSortOption;\n if (activeSort) {\n agGrid?.api.applyColumnState({\n state: [\n {\n colId: activeSort.id,\n sort: activeSort.descending ? 'desc' : 'asc',\n },\n ],\n defaultState: { sort: null },\n });\n }\n }\n #updateColumnWidth(colId, width, breakpoint) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n currentWidths[toColumnWidthName(breakpoint)][colId] = width;\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.viewId, viewState), this.viewId);\n }\n }\n #removeColumnWidths(colIds) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && this.viewId && this.#currentDataState) {\n const currentWidths = viewState?.columnWidths;\n for (const colId of colIds) {\n delete currentWidths['xs'][colId];\n delete currentWidths['sm'][colId];\n }\n viewState.columnWidths = currentWidths;\n this.#dataManagerSvc.updateDataState(this.#currentDataState.addOrUpdateView(this.viewId, viewState), this.viewId);\n }\n }\n #applyColumnWidths(breakpoint) {\n breakpoint ??= this.#breakpoint();\n if (breakpoint) {\n const viewState = this.viewId && this.#currentDataState?.getViewStateById(this.viewId);\n if (viewState && viewState.columnWidths && viewState.displayedColumnIds) {\n const columnLimits = this.#getGridColumnLimits(viewState.displayedColumnIds, viewState.columnWidths, toColumnWidthName(breakpoint));\n this.#currentAgGrid?.api.sizeColumnsToFit({ columnLimits });\n }\n }\n }\n #getGridColumnLimits(displayedColumns, currentWidths, breakpointName) {\n const gridColumnLimits = [];\n for (const column of displayedColumns) {\n const columnWidth = currentWidths[breakpointName][column];\n if (columnWidth) {\n gridColumnLimits.push({\n key: column,\n minWidth: columnWidth,\n maxWidth: columnWidth,\n });\n }\n }\n return gridColumnLimits;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.0\", type: SkyAgGridDataManagerAdapterDirective, isStandalone: true, selector: \"[skyAgGridDataManagerAdapter]\", inputs: { viewId: \"viewId\" }, queries: [{ propertyName: \"agGridList\", predicate: AgGridAngular, descendants: true, isSignal: true }, { propertyName: \"skyAgGridWrapperList\", predicate: SkyAgGridWrapperComponent, descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[skyAgGridDataManagerAdapter]' }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }], propDecorators: { viewId: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFLFNBQVMsaUJBQWlCLENBQUMsVUFBeUI7SUFDbEQsT0FBTyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0NBQW9DO0lBYy9DLGNBQWMsQ0FBNEI7SUFDMUMsaUJBQWlCLENBQWtDO0lBQ25ELHdCQUF3QixDQUF3QztJQUNoRSxhQUFhLENBQTJCO0lBQ3hDLFdBQVcsQ0FBZ0M7SUFDM0MsY0FBYyxDQUF1QjtJQUNyQyxlQUFlLENBQW9CO0lBQ25DLGVBQWUsQ0FBd0I7SUFFOUIsV0FBVyxDQUVsQjtJQUVGLFlBQ0UsY0FBaUMs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QUVGLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsZ0JBQTBCLEVBQzFCLGFBQXNDLEVBQ3RDLGNBQTZDO1FBRTdDLE1BQU0sZ0JBQWdCLEdBQW1CLEVBQUUsQ0FBQztRQUU1QyxLQUFLLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTFELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDcEIsR0FBRyxFQUFFLE1BQU07b0JBQ1gsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxXQUFXO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs4R0E5WlUsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msa0pBTWEsYUFBYSwwRkFJM0IseUJBQXlCOzsyRkFWNUQsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFOzBIQUsvQyxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICBTa3lEYXRhVmlld0NvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2RhdGEtbWFuYWdlcic7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uUmVzaXplZEV2ZW50LFxuICBDb2x1bW5TdGF0ZSxcbiAgRHJhZ1N0b3BwZWRFdmVudCxcbiAgR3JpZEFwaSxcbiAgSUNvbHVtbkxpbWl0LFxuICBSb3dTZWxlY3RlZEV2ZW50LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcblxuZnVuY3Rpb24gdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludDogU2t5QnJlYWtwb2ludCk6ICd4cycgfCAnc20nIHtcbiAgcmV0dXJuIGJyZWFrcG9pbnQgPT09ICd4cycgPyAneHMnIDogJ3NtJztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlcl0nIH0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWV3SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWdHcmlkTGlzdCA9IGNvbnRlbnRDaGlsZHJlbjxBZ0dyaWRBbmd1bGFyPihBZ0dyaWRBbmd1bGFyLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyBza3lBZ0dyaWRXcmFwcGVyTGlzdCA9IGNvbnRlbnRDaGlsZHJlbihTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50LCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gICNjdXJyZW50QWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudERhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjZGF0YVN0YXRlU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICN2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZyB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZGF0YU1hbmFnZXJTdmM6IFNreURhdGFNYW5hZ2VyU2VydmljZTtcblxuICByZWFkb25seSAjYnJlYWtwb2ludCA9IHRvU2lnbmFsKFxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSkuYnJlYWtwb2ludENoYW5nZSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgZGF0YU1hbmFnZXJTdmM6IFNreURhdGFNYW5hZ2VyU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclN2YyA9IGRhdGFNYW5hZ2VyU3ZjO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmFnR3JpZExpc3QoKTtcblxuICAgICAgdGhpcy4jY2hlY2tGb3JBZ0dyaWQobGlzdCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuc2t5QWdHcmlkV3JhcHBlckxpc3QoKTtcblxuICAgICAgdGhpcy4jY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKGxpc3QpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKGJyZWFrcG9pbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aWV3SWQpIHtcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbJy5hZy1oZWFkZXInXSk7XG4gICAgICB0aGlzLiN2aWV3Q29uZmlnID0gdGhpcy4jZGF0YU1hbmFnZXJTdmMuZ2V0Vmlld0J5SWQodGhpcy52aWV3SWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjY2hlY2tGb3JBZ0dyaWQoYWdHcmlkTGlzdDogcmVhZG9ubHkgQWdHcmlkQW5ndWxhcltdKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gYWdHcmlkTGlzdFswXTtcbiAgICBjb25zdCBhZ0dyaWRDb3VudCA9IGFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgaWYgKGFnR3JpZCkge1xuICAgICAgaWYgKGFnR3JpZCAhPT0gdGhpcy4jY3VycmVudEFnR3JpZCkge1xuICAgICAgICB0aGlzLiNyZWdpc3RlckFnR3JpZChhZ0dyaWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWdHcmlkQ291bnQgPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2NoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcihcbiAgICB3cmFwcGVyczogcmVhZG9ubHkgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFtdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9IHdyYXBwZXJzLmxlbmd0aDtcbiAgICBjb25zdCB3cmFwcGVyID0gd3JhcHBlcnNbMF07XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh3cmFwcGVyICE9PSB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgdGhpcy4jcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXIpO1xuICAgIH1cblxuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ01vcmUgdGhhbiBvbmUgYWctZ3JpZCBjaGlsZCBjb21wb25lbnQgd2FzIGZvdW5kLiBVc2luZyB0aGUgZmlyc3QgYWctR3JpZC4nLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjdW5yZWdpc3RlckFnR3JpZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjdXJyZW50QWdHcmlkID0gdW5kZWZpbmVkO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHRoaXMuI2RhdGFTdGF0ZVN1Yikge1xuICAgICAgdGhpcy4jZGF0YVN0YXRlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgI3VucmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgI3JlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcih3cmFwcGVyOiBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTtcbiAgICB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlciA9IHdyYXBwZXI7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgICB0aGlzLiNjdXJyZW50U2t5QWdHcmlkV3JhcHBlci52aWV3a2VlcGVyQ2xhc3NlcyA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZDogQWdHcmlkQW5ndWxhcik6IHZvaWQge1xuICAgIHRoaXMuI3VucmVnaXN0ZXJBZ0dyaWQoKTtcblxuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQgPSBhZ0dyaWQ7XG5cbiAgICBpZiAoYWdHcmlkKSB7XG4gICAgICBhZ0dyaWQuZ3JpZFJlYWR5LnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy4jdmlld0NvbmZpZyAmJiB0aGlzLnZpZXdJZCkge1xuICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcub25TZWxlY3RBbGxDbGljayA9ICgpOiB2b2lkID0+XG4gICAgICAgICAgICBhZ0dyaWQuYXBpLnNlbGVjdEFsbCgpO1xuICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcub25DbGVhckFsbENsaWNrID0gKCk6IHZvaWQgPT5cbiAgICAgICAgICAgIGFnR3JpZC5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMuI3ZpZXdDb25maWcpO1xuICAgICAgICAgIHRoaXMuI2RhdGFTdGF0ZVN1YiA9IHRoaXMuI2RhdGFNYW5hZ2VyU3ZjXG4gICAgICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiN2aWV3Q29uZmlnLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZSk7XG4gICAgICAgICAgICAgIHRoaXMuI2FwcGx5U29ydChkYXRhU3RhdGUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbXG4gICAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgIVtcbiAgICAgICAgICAgICAgICAnZ3JpZEluaXRpYWxpemluZycsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uRHJhZ2dlZCcsXG4gICAgICAgICAgICAgICAgJ2FwaScsXG4gICAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZSh2YWx1ZS5hcGkpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtblJlc2l6ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uUmVzaXplZEV2ZW50KSA9PiBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbElkID0gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpO1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZXZlbnQuY29sdW1uPy5nZXRBY3R1YWxXaWR0aCgpO1xuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgICAgICBpZiAoY29sSWQgJiYgd2lkdGggJiYgYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uV2lkdGgoY29sSWQsIHdpZHRoLCBicmVha3BvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuZHJhZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogRHJhZ1N0b3BwZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5yb3dTZWxlY3RlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGNvbHVtbk9yZGVyID0gdGhpcy4jZ2V0Q29sdW1uT3JkZXIoYXBpKTtcblxuICAgICAgY29uc3Qgdmlld1N0YXRlID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKFxuICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICB2aWV3U3RhdGUgJiZcbiAgICAgICAgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMubGVuZ3RoICE9PSBjb2x1bW5PcmRlci5sZW5ndGggfHxcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpXG4gICAgICApIHtcbiAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICB2aWV3U3RhdGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGFwaVxuICAgICAgLmdldENvbHVtblN0YXRlKClcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQgJiYgdGhpcy4jdmlld0NvbmZpZykge1xuICAgICAgY29uc3Qgdmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodGhpcy4jdmlld0NvbmZpZy5pZCk7XG4gICAgICBsZXQgZGlzcGxheWVkQ29sdW1uSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmICh2aWV3U3RhdGU/LmRpc3BsYXllZENvbHVtbklkcykge1xuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5PcmRlciA9IHRoaXMuI2dldENvbHVtbk9yZGVyKGFnR3JpZC5hcGkpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGRpc3BsYXllZENvbHVtbklkcy5sZW5ndGggIT09IGNvbHVtbk9yZGVyLmxlbmd0aCB8fFxuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMuc29tZSgoY29sLCBpKSA9PiBjb2wgIT09IGNvbHVtbk9yZGVyW2ldKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGhpZGVDb2x1bW5zID0gYWdHcmlkLmFwaVxuICAgICAgICAgIC5nZXRDb2x1bW5TdGF0ZSgpXG4gICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuY29sSWQpXG4gICAgICAgICAgLmZpbHRlcigoY29sSWQpID0+ICFkaXNwbGF5ZWRDb2x1bW5JZHMuaW5jbHVkZXMoY29sSWQpKTtcblxuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGhpZGVDb2x1bW5zLCBmYWxzZSk7XG4gICAgICAgIGFnR3JpZC5hcGkuc2V0Q29sdW1uc1Zpc2libGUoZGlzcGxheWVkQ29sdW1uSWRzLCB0cnVlKTtcbiAgICAgICAgYWdHcmlkLmFwaS5tb3ZlQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5JZHMsIDApO1xuICAgICAgICB0aGlzLiNyZW1vdmVDb2x1bW5XaWR0aHMoaGlkZUNvbHVtbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNhcHBseVNvcnQoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCBhY3RpdmVTb3J0ID0gZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb247XG5cbiAgICBpZiAoYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkPy5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sSWQ6IGFjdGl2ZVNvcnQuaWQsXG4gICAgICAgICAgICBzb3J0OiBhY3RpdmVTb3J0LmRlc2NlbmRpbmcgPyAnZGVzYycgOiAnYXNjJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHsgc29ydDogbnVsbCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNvbHVtbldpZHRoKFxuICAgIGNvbElkOiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lCcmVha3BvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgaWYgKHZpZXdTdGF0ZSAmJiB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGN1cnJlbnRXaWR0aHNbdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCldW2NvbElkXSA9IHdpZHRoO1xuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodGhpcy52aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHRoaXMudmlld0lkLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQ29sdW1uV2lkdGhzKGNvbElkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG5cbiAgICBpZiAodmlld1N0YXRlICYmIHRoaXMudmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgZm9yIChjb25zdCBjb2xJZCBvZiBjb2xJZHMpIHtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3hzJ11bY29sSWRdO1xuICAgICAgICBkZWxldGUgY3VycmVudFdpZHRoc1snc20nXVtjb2xJZF07XG4gICAgICB9XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh0aGlzLnZpZXdJZCwgdmlld1N0YXRlKSxcbiAgICAgICAgdGhpcy52aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50PzogU2t5QnJlYWtwb2ludCk6IHZvaWQge1xuICAgIGJyZWFrcG9pbnQgPz89IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgICB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlPy5nZXRWaWV3U3RhdGVCeUlkKHRoaXMudmlld0lkKTtcblxuICAgICAgaWYgKHZpZXdTdGF0ZSAmJiB2aWV3U3RhdGUuY29sdW1uV2lkdGhzICYmIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uTGltaXRzID0gdGhpcy4jZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLFxuICAgICAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMsXG4gICAgICAgICAgdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jY3VycmVudEFnR3JpZD8uYXBpLnNpemVDb2x1bW5zVG9GaXQoeyBjb2x1bW5MaW1pdHMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dldEdyaWRDb2x1bW5MaW1pdHMoXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10sXG4gICAgY3VycmVudFdpZHRoczogU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMsXG4gICAgYnJlYWtwb2ludE5hbWU6IGtleW9mIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICApOiBJQ29sdW1uTGltaXRbXSB7XG4gICAgY29uc3QgZ3JpZENvbHVtbkxpbWl0czogSUNvbHVtbkxpbWl0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGRpc3BsYXllZENvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY3VycmVudFdpZHRoc1ticmVha3BvaW50TmFtZV1bY29sdW1uXTtcblxuICAgICAgaWYgKGNvbHVtbldpZHRoKSB7XG4gICAgICAgIGdyaWRDb2x1bW5MaW1pdHMucHVzaCh7XG4gICAgICAgICAga2V5OiBjb2x1bW4sXG4gICAgICAgICAgbWluV2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICAgIG1heFdpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBncmlkQ29sdW1uTGltaXRzO1xuICB9XG59XG4iXX0=","import { InjectionToken, } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n/**\n * @internal\n */\nexport const SKY_AG_GRID_ROW_DELETE_CONTEXT = new InjectionToken('SkyAgGridRowDeleteContext');\n/**\n * Used to provide dependencies to the `SkyAgGridRowDeleteComponent` overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteContext {\n constructor(rows, gridElement, gridApi) {\n this.rows = rows;\n this.gridElement = gridElement;\n this.gridApi = gridApi;\n this.cancelRowDelete = new Subject();\n this.confirmRowDelete = new Subject();\n this.subscription = new Subscription();\n this.subscription.add(() => {\n this.cancelRowDelete.complete();\n this.confirmRowDelete.complete();\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsY0FBYyxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3pDLElBQUksY0FBYyxDQUE0QiwyQkFBMkIsQ0FBQyxDQUFDO0FBRTdFOzs7R0FHRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFLcEMsWUFDa0IsSUFBc0IsRUFDdEIsV0FBMEQsRUFDMUQsT0FBNEM7UUFGNUMsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQStDO1FBQzFELFlBQU8sR0FBUCxPQUFPLENBQXFDO1FBUDlDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9oRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgU2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0PignU2t5QWdHcmlkUm93RGVsZXRlQ29udGV4dCcpO1xuXG4vKipcbiAqIFVzZWQgdG8gcHJvdmlkZSBkZXBlbmRlbmNpZXMgdG8gdGhlIGBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnRgIG92ZXJsYXkuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRleHQge1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuY2VsUm93RGVsZXRlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlybVJvd0RlbGV0ZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcm93czogU2lnbmFsPHN0cmluZ1tdPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEVsZW1lbnQ6IFNpZ25hbDxFbGVtZW50UmVmPEhUTUxFbGVtZW50PltdIHwgdW5kZWZpbmVkPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEFwaTogV3JpdGFibGVTaWduYWw8R3JpZEFwaSB8IHVuZGVmaW5lZD4sXG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCgoKSA9PiB7XG4gICAgICB0aGlzLmNhbmNlbFJvd0RlbGV0ZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5jb25maXJtUm93RGVsZXRlLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal, } from '@angular/core/rxjs-interop';\nimport { SkyAffixModule, SkyResizeObserverService } from '@skyux/core';\nimport { SkyInlineDeleteModule } from '@skyux/layout';\nimport { filter, fromEvent, map, merge, of, scan, startWith, switchMap, takeUntil, } from 'rxjs';\nimport { SKY_AG_GRID_ROW_DELETE_CONTEXT } from './ag-grid-row-delete-context';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\nimport * as i2 from \"@skyux/core\";\n/**\n * Component for rendering the inline delete template in the overlay.\n * @internal\n */\nexport class SkyAgGridRowDeleteComponent {\n #resizeObserverSvc;\n constructor() {\n this.service = inject(SKY_AG_GRID_ROW_DELETE_CONTEXT);\n this.tableWidthStyle = computed(() => {\n const tableWidth = this.tableWidth();\n if (tableWidth > 0) {\n return `${tableWidth}px`;\n }\n return 'auto';\n }, ...(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.0\", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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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WUFBWSxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUyxhQUFhLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7OEdBdkdVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdLQ3JDeEMseXFCQW9CQSxnS0RZWSxxQkFBcUIsdUtBQUUsY0FBYzs7MkZBS3BDLDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDRSx3QkFBd0IsV0FHekIsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLENBQUMsUUFDMUM7d0JBQ0osU0FBUyxFQUFFLHVDQUF1QztxQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTa3lBZmZpeE1vZHVsZSwgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5saW5lRGVsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHNjYW4sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQgfSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS1jb250ZXh0JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5saW5lIGRlbGV0ZSB0ZW1wbGF0ZSBpbiB0aGUgb3ZlcmxheS5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctZGVsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50LmNzcycsXG4gIGltcG9ydHM6IFtTa3lJbmxpbmVEZWxldGVNb2R1bGUsIFNreUFmZml4TW9kdWxlXSxcbiAgaG9zdDoge1xuICAgICdbc3R5bGVdJzogJ1wiLS10YWJsZS13aWR0aDogXCIgKyB0YWJsZVdpZHRoU3R5bGUoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFNLWV9BR19HUklEX1JPV19ERUxFVEVfQ09OVEVYVCk7XG5cbiAgcHJvdGVjdGVkIHRhYmxlV2lkdGhTdHlsZSA9IGNvbXB1dGVkKCgpID0+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({\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.0\", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyAgGridRowDelete]',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHlCQUF5QixHQUMxQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sMkJBQTJCO0lBb0I3QixtQkFBbUIsQ0FFdEI7SUFDRyx1QkFBdUIsQ0FFMUI7SUFDRyxjQUFjLENBQXVCO0lBQ3JDLHFCQUFxQixDQVEzQjtJQUNNLFNBQVMsQ0FBc0Q7SUFDL0QsT0FBTyxDQUE0QjtJQUNuQyxXQUFXLENB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QUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDOzhHQTdNVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix3WUFrQkcsYUFBYTs7MkZBbEIzQywyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgY29udGVudENoaWxkLFxuICBpbmplY3QsXG4gIGxpbmtlZFNpZ25hbCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5T3ZlcmxheUluc3RhbmNlLFxuICBTa3lPdmVybGF5U2VydmljZSxcbiAgU2t5U2Nyb2xsYWJsZUhvc3RTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZEFwaSwgR3JpZE9wdGlvbnMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIFN1YmplY3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTS1lfQUdfR1JJRF9ST1dfREVMRVRFX0NPTlRFWFQsXG4gIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRleHQsXG59IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3MgfSBmcm9tICcuL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jYW5jZWwtYXJncyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNvbmZpcm0tYXJncyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBZ0dyaWRSb3dEZWxldGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBkYXRhIGluIHRoZSByb3dzIHdoZXJlIHRoZSBpbmxpbmUgZGVsZXRlIGFwcGVhcnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm93RGVsZXRlSWRzID0gbW9kZWw8c3RyaW5nW10+KFtdKTtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJnc2Agb2JqZWN0IHdoZW4gYSByb3cncyBpbmxpbmUgZGVsZXRlIGlzIGNhbmNlbGxlZC5cbiAgICovXG4gIHB1YmxpYyByb3dEZWxldGVDYW5jZWwgPSBvdXRwdXQ8U2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJncz4oKTtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3NgIG9iamVjdCB3aGVuIGEgcm93J3MgaW5saW5lIGRlbGV0ZSBpcyBjb25maXJtZWQuXG4gICAqL1xuICBwdWJsaWMgcm93RGVsZXRlQ29uZmlybSA9IG91dHB1dDxTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncz4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWdHcmlkID0gY29udGVudENoaWxkKEFnR3JpZEFuZ3VsYXIpO1xuXG4gIHJlYWRvbmx5ICNhZ0dyaWRCb2R5Vmlld3BvcnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+W11cbiAgPihbXSk7XG4gIHJlYWRvbmx5ICNhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PltdXG4gID4oW10pO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNyb3dEZWxldGVJZHNJbnRlcm5hbCA9IGxpbmtlZFNpZ25hbDx1bmtub3duW10sIHN0cmluZ1tdPih7XG4gICAgc291cmNlOiB0aGlzLnJvd0RlbGV0ZUlkcyxcbiAgICBjb21wdXRhdGlvbjogKHZhbHVlKSA9PlxuICAgICAgWy4uLm5ldyBTZXQodmFsdWUpXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5tYXAoU3RyaW5nKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKSxcbiAgICBlcXVhbDogKGEsIGIpID0+IGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2LCBpKSA9PiB2ID09PSBiW2ldKSxcbiAgfSk7XG4gIHJlYWRvbmx5ICNjbGlwUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSAjekluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdCg5OTgpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICByZWFkb25seSAjb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoU2t5T3ZlcmxheVNlcnZpY2UpO1xuICAjb3ZlcmxheTogU2t5T3ZlcmxheUluc3RhbmNlIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSAjcm93RGVsZXRlU3ZjOiBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0O1xuICByZWFkb25seSAjc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlID0gaW5qZWN0KFNreVNjcm9sbGFibGVIb3N0U2VydmljZSk7XG4gIHJlYWRvbmx5ICNzdGFja2luZ0NvbnRleHQgPSBpbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuI3N0YWNraW5nQ29udGV4dCkge1xuICAgICAgdGhpcy4jc3RhY2tpbmdDb250ZXh0LnpJbmRleFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHpJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3pJbmRleC5uZXh0KHpJbmRleCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuI3Jvd0RlbGV0ZVN2YyA9IG5ldyBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZXh0KFxuICAgICAgdGhpcy4jcm93RGVsZXRlSWRzSW50ZXJuYWwuYXNSZWFkb25seSgpLFxuICAgICAgdG9TaWduYWwodGhpcy4jYWdHcmlkQm9keVZpZXdwb3J0KSxcbiAgICAgIHNpZ25hbDxHcmlkQXBpIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpLFxuICAgICk7XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuY2FuY2VsUm93RGVsZXRlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyb3dJZCkgPT4ge1xuICAgICAgICBpZiAocm93SWQpIHtcbiAgICAgICAgICB0aGlzLnJvd0RlbGV0ZUlkcy51cGRhdGUoKHJvd0lkcykgPT5cbiAgICAgICAgICAgIHJvd0lkcy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gcm93SWQpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVDYW5jZWwuZW1pdCh7IGlkOiByb3dJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLiNyb3dEZWxldGVTdmMuY29uZmlybVJvd0RlbGV0ZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocm93SWQpID0+IHtcbiAgICAgICAgaWYgKHJvd0lkKSB7XG4gICAgICAgICAgdGhpcy5yb3dEZWxldGVDb25maXJtLmVtaXQoeyBpZDogcm93SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYWdHcmlkID0gdG9PYnNlcnZhYmxlKHRoaXMuYWdHcmlkKTtcbiAgICBjb25zdCBhZ0dyaWRSZWFkeSA9IGFnR3JpZC5waXBlKFxuICAgICAgZmlsdGVyKChhZ0dyaWQpID0+ICEhYWdHcmlkKSxcbiAgICAgIHN3aXRjaE1hcCgoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKSA9PiBhZ0dyaWQuZ3JpZFJlYWR5KSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgKTtcbiAgICBhZ0dyaWRSZWFkeS5zdWJzY3JpYmUoKHJlYWR5KSA9PiB7XG4gICAgICB0aGlzLiNhZ0dyaWRCb2R5Vmlld3BvcnQubmV4dChbXG4gICAgICAgIG5ldyBFbGVtZW50UmVmKFxuICAgICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgJ2Rpdi5hZy1yb290LXdyYXBwZXInLFxuICAgICAgICAgICkgYXMgSFRNTERpdkVsZW1lbnQsXG4gICAgICAgICksXG4gICAgICBdKTtcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZVN2Yy5ncmlkQXBpLnNldChyZWFkeS5hcGkpO1xuICAgIH0pO1xuICAgIGFnR3JpZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZ3JpZCkgPT4gISFncmlkKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkKSA9PlxuICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZ3JpZC5maXJzdERhdGFSZW5kZXJlZC5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIGdyaWQucm93RGF0YVVwZGF0ZWQuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgICAgICBhZ0dyaWRSZWFkeS5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbUV2ZW50KGdyaWQuYXBpLCAnZ3JpZE9wdGlvbnNDaGFuZ2VkJykpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgIGFnR3JpZFJlYWR5LnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICBmcm9tRXZlbnQoZ3JpZC5hcGksICdncmlkUHJlRGVzdHJveWVkJykucGlwZSh0YWtlKDEpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aChncmlkLmFwaT8uZ2V0R3JpZE9wdGlvbignZG9tTGF5b3V0JykpLFxuICAgICAgICAgICAgbWFwKCgpID0+IGdyaWQuYXBpPy5nZXRHcmlkT3B0aW9uKCdkb21MYXlvdXQnKSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGRvbUxheW91dDogR3JpZE9wdGlvbnNbJ2RvbUxheW91dCddKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2FnR3JpZEJvZHlWaWV3cG9ydC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGFnR3JpZEJvZHlDbGlwRWxlbWVudHMpID0+IHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBBRyBHcmlkJ3MgYGRvbUxheW91dDogJ2F1dG9IZWlnaHQnYCBvcHRpb24sXG4gICAgICAgIC8vIHRoZSBncmlkJ3MgYm9keSB2aWV3cG9ydCBpcyBjbGlwcGVkIGJ5IHRoZSBzY3JvbGxhYmxlIGhvc3QuXG4gICAgICAgIC8vIEJ1dCB3aGVuIHVzaW5nIGBkb21MYXlvdXQ6ICdub3JtYWwnYCwgdGhlIGdyaWQncyBib2R5IHZpZXdwb3J0XG4gICAgICAgIC8vIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBzY3JvbGxhYmxlIGhvc3QgZm9yIHRoZSByb3cgZGVsZXRlIG92ZXJsYXkuXG4gICAgICAgIHRoaXMuI2FnR3JpZEJvZHlDbGlwRWxlbWVudHMubmV4dChhZ0dyaWRCb2R5Q2xpcEVsZW1lbnRzKTtcbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChhZ0dyaWQpID0+ICEhYWdHcmlkKSxcbiAgICAgICAgc3dpdGNoTWFwKChhZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIpID0+IGFnR3JpZC5yb3dEYXRhVXBkYXRlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0RlbGV0ZUlkcy51cGRhdGUoKHJvd0lkcykgPT5cbiAgICAgICAgICAocm93SWRzID8/IFtdKS5maWx0ZXIoKGlkKSA9PiAhIWV2dC5hcGkuZ2V0Um93Tm9kZShpZCkpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI292ZXJsYXkgPSB0aGlzLiNvdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy4jZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgIHNob3dCYWNrZHJvcDogZmFsc2UsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgIGVuYWJsZVBvaW50ZXJFdmVudHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLiNvdmVybGF5LmF0dGFjaENvbXBvbmVudChTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQsIFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogU0tZX0FHX0dSSURfUk9XX0RFTEVURV9DT05URVhULFxuICAgICAgICB1c2VWYWx1ZTogdGhpcy4jcm93RGVsZXRlU3ZjLFxuICAgICAgfSxcbiAgICBdKTtcbiAgICB0aGlzLiN6SW5kZXhcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNvdmVybGF5LmNsb3NlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgICAgICB0aGlzLiNvdmVybGF5LmNvbXBvbmVudFJlZi5pbnN0YW5jZS56SW5kZXggPSB6SW5kZXgudG9TdHJpbmcoMTApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLiNjbGlwUGF0aFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI292ZXJsYXkuY2xvc2VkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgIHRoaXMuI292ZXJsYXk/LmNvbXBvbmVudFJlZi5pbnN0YW5jZS51cGRhdGVDbGlwUGF0aChjbGlwUGF0aCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlXG4gICAgICAud2F0Y2hTY3JvbGxhYmxlSG9zdENsaXBQYXRoQ2hhbmdlcyhcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZixcbiAgICAgICAgdGhpcy4jYWdHcmlkQm9keUNsaXBFbGVtZW50cy5hc09ic2VydmFibGUoKSxcbiAgICAgIClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgIHRoaXMuI2NsaXBQYXRoLm5leHQoY2xpcFBhdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3Jvd0RlbGV0ZVN2Yy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy4jb3ZlcmxheSkge1xuICAgICAgdGhpcy4jb3ZlcmxheVNlcnZpY2UuY2xvc2UodGhpcy4jb3ZlcmxheSk7XG4gICAgfVxuICB9XG59XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridModule, imports: [AgGridAngular,\n CommonModule,\n SkyAgGridResourcesModule,\n SkyAgGridWrapperComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AgGridAngular,\n CommonModule,\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridResourcesModule,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n exports: [\n SkyAgGridDataManagerAdapterDirective,\n SkyAgGridRowDeleteDirective,\n SkyAgGridWrapperComponent,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBaUJ4RSxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFDWixvQ0FBb0M7WUFDcEMsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix5QkFBeUIsYUFHekIsb0NBQW9DO1lBQ3BDLDJCQUEyQjtZQUMzQix5QkFBeUI7K0dBR2hCLGVBQWUsWUFieEIsYUFBYTtZQUNiLFlBQVk7WUFFWix3QkFBd0I7WUFFeEIseUJBQXlCOzsyRkFRaEIsZUFBZTtrQkFmM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9DQUFvQzt3QkFDcEMsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQWdHcmlkQW5ndWxhcixcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlLFxuICAgIFNreUFnR3JpZFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkTW9kdWxlIHt9XG4iXX0=","/**\n * @internal\n */\nexport function applySkyLookupPropertiesDefaults(skyLookupProperties) {\n /* istanbul ignore if */\n if (!skyLookupProperties) {\n return {};\n }\n return {\n addClick: skyLookupProperties.addClick,\n ariaLabel: skyLookupProperties.ariaLabel || '',\n autocompleteAttribute: skyLookupProperties.autocompleteAttribute || 'off',\n data: skyLookupProperties.data || [],\n debounceTime: skyLookupProperties.debounceTime || 0,\n descriptorProperty: skyLookupProperties.descriptorProperty || 'name',\n disabled: skyLookupProperties.disabled || false,\n enableShowMore: skyLookupProperties.enableShowMore || false,\n idProperty: skyLookupProperties.idProperty,\n placeholderText: skyLookupProperties.placeholderText || '',\n propertiesToSearch: skyLookupProperties.propertiesToSearch,\n search: skyLookupProperties.search,\n searchAsync: skyLookupProperties.searchAsync,\n searchFilters: skyLookupProperties.searchFilters || [],\n searchResultsLimit: skyLookupProperties.searchResultsLimit,\n searchResultTemplate: skyLookupProperties.searchResultTemplate,\n searchTextMinimumCharacters: skyLookupProperties.searchTextMinimumCharacters || 1,\n selectMode: skyLookupProperties.selectMode,\n showAddButton: skyLookupProperties.showAddButton || false,\n showMoreConfig: skyLookupProperties.showMoreConfig || {},\n wrapperClass: 'ag-custom-component-popup',\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsbUJBQTBEO0lBRTFELHdCQUF3QjtJQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7UUFDdEMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQzlDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLHFCQUFxQixJQUFJLEtBQUs7UUFDekUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3BDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLElBQUksQ0FBQztRQUNuRCxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxrQkFBa0IsSUFBSSxNQUFNO1FBQ3BFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLElBQUksS0FBSztRQUMvQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxJQUFJLEtBQUs7UUFDM0QsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFVBQVU7UUFDMUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsSUFBSSxFQUFFO1FBQzFELGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLGtCQUFrQjtRQUMxRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtRQUNsQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsV0FBVztRQUM1QyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxJQUFJLEVBQUU7UUFDdEQsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsa0JBQWtCO1FBQzFELG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLG9CQUFvQjtRQUM5RCwyQkFBMkIsRUFDekIsbUJBQW1CLENBQUMsMkJBQTJCLElBQUksQ0FBQztRQUN0RCxVQUFVLEVBQUUsbUJBQW1CLENBQUMsVUFBVTtRQUMxQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxJQUFJLEtBQUs7UUFDekQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQ3hELFlBQVksRUFBRSwyQkFBMkI7S0FDMUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lBZ0dyaWRMb29rdXBQcm9wZXJ0aWVzIH0gZnJvbSAnLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhcbiAgc2t5TG9va3VwUHJvcGVydGllczogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB8IHVuZGVmaW5lZCxcbik6IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFza3lMb29rdXBQcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRDbGljazogc2t5TG9va3VwUHJvcGVydGllcy5hZGRDbGljayxcbiAgICBhcmlhTGFiZWw6IHNreUxvb2t1cFByb3BlcnRpZXMuYXJpYUxhYmVsIHx8ICcnLFxuICAgIGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTogc2t5TG9va3VwUHJvcGVydGllcy5hdXRvY29tcGxldGVBdHRyaWJ1dGUgfHwgJ29mZicsXG4gICAgZGF0YTogc2t5TG9va3VwUHJvcGVydGllcy5kYXRhIHx8IFtdLFxuICAgIGRlYm91bmNlVGltZTogc2t5TG9va3VwUHJvcGVydGllcy5kZWJvdW5jZVRpbWUgfHwgMCxcbiAgICBkZXNjcmlwdG9yUHJvcGVydHk6IHNreUxvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IHx8ICduYW1lJyxcbiAgICBkaXNhYmxlZDogc2t5TG9va3VwUHJvcGVydGllcy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICBlbmFibGVTaG93TW9yZTogc2t5TG9va3VwUHJvcGVydGllcy5lbmFibGVTaG93TW9yZSB8fCBmYWxzZSxcbiAgICBpZFByb3BlcnR5OiBza3lMb29rdXBQcm9wZXJ0aWVzLmlkUHJvcGVydHksXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBza3lMb29rdXBQcm9wZXJ0aWVzLnBsYWNlaG9sZGVyVGV4dCB8fCAnJyxcbiAgICBwcm9wZXJ0aWVzVG9TZWFyY2g6IHNreUxvb2t1cFByb3BlcnRpZXMucHJvcGVydGllc1RvU2VhcmNoLFxuICAgIHNlYXJjaDogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2gsXG4gICAgc2VhcmNoQXN5bmM6IHNreUxvb2t1cFByb3BlcnRpZXMuc2VhcmNoQXN5bmMsXG4gICAgc2VhcmNoRmlsdGVyczogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzIHx8IFtdLFxuICAgIHNlYXJjaFJlc3VsdHNMaW1pdDogc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hSZXN1bHRzTGltaXQsXG4gICAgc2VhcmNoUmVzdWx0VGVtcGxhdGU6IHNreUxvb2t1cFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0VGVtcGxhdGUsXG4gICAgc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzOlxuICAgICAgc2t5TG9va3VwUHJvcGVydGllcy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnMgfHwgMSxcbiAgICBzZWxlY3RNb2RlOiBza3lMb29rdXBQcm9wZXJ0aWVzLnNlbGVjdE1vZGUsXG4gICAgc2hvd0FkZEJ1dHRvbjogc2t5TG9va3VwUHJvcGVydGllcy5zaG93QWRkQnV0dG9uIHx8IGZhbHNlLFxuICAgIHNob3dNb3JlQ29uZmlnOiBza3lMb29rdXBQcm9wZXJ0aWVzLnNob3dNb3JlQ29uZmlnIHx8IHt9LFxuICAgIHdyYXBwZXJDbGFzczogJ2FnLWN1c3RvbS1jb21wb25lbnQtcG9wdXAnLFxuICB9O1xufVxuIl19","/** The initial action that a cell editor should take when initialized. */\nexport var SkyAgGridCellEditorInitialAction;\n(function (SkyAgGridCellEditorInitialAction) {\n /** The cell should be cleared. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Delete\"] = 0] = \"Delete\";\n /** The cell value should be highlighted. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Highlighted\"] = 1] = \"Highlighted\";\n /** The cell value should be replaced with the initializing value. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Replace\"] = 2] = \"Replace\";\n /** The cell should not be modified and the cursor is placed at the end of the value. */\n SkyAgGridCellEditorInitialAction[SkyAgGridCellEditorInitialAction[\"Untouched\"] = 3] = \"Untouched\";\n})(SkyAgGridCellEditorInitialAction || (SkyAgGridCellEditorInitialAction = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsTUFBTSxDQUFOLElBQVksZ0NBU1g7QUFURCxXQUFZLGdDQUFnQztJQUMxQyxrQ0FBa0M7SUFDbEMsMkZBQVUsQ0FBQTtJQUNWLDRDQUE0QztJQUM1QyxxR0FBZSxDQUFBO0lBQ2YscUVBQXFFO0lBQ3JFLDZGQUFXLENBQUE7SUFDWCx3RkFBd0Y7SUFDeEYsaUdBQWEsQ0FBQTtBQUNmLENBQUMsRUFUVyxnQ0FBZ0MsS0FBaEMsZ0NBQWdDLFFBUzNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRoZSBpbml0aWFsIGFjdGlvbiB0aGF0IGEgY2VsbCBlZGl0b3Igc2hvdWxkIHRha2Ugd2hlbiBpbml0aWFsaXplZC4gKi9cbmV4cG9ydCBlbnVtIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHtcbiAgLyoqIFRoZSBjZWxsIHNob3VsZCBiZSBjbGVhcmVkLiAqL1xuICBEZWxldGUgPSAwLFxuICAvKiogVGhlIGNlbGwgdmFsdWUgc2hvdWxkIGJlIGhpZ2hsaWdodGVkLiAqL1xuICBIaWdobGlnaHRlZCA9IDEsXG4gIC8qKiBUaGUgY2VsbCB2YWx1ZSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgaW5pdGlhbGl6aW5nIHZhbHVlLiAqL1xuICBSZXBsYWNlID0gMixcbiAgLyoqIFRoZSBjZWxsIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgYW5kIHRoZSBjdXJzb3IgaXMgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHZhbHVlLiAqL1xuICBVbnRvdWNoZWQgPSAzLFxufVxuIl19","import { KeyCode } from 'ag-grid-community';\nimport { SkyAgGridCellEditorInitialAction } from './cell-editor-initial-action';\nexport class SkyAgGridCellEditorUtils {\n /**\n * Gets the initial action that a cell editor should take when initialized.\n * @param params The editor's initializing parameters.\n */\n static getEditorInitialAction(params) {\n if (params?.cellStartedEdit) {\n if (params.eventKey === KeyCode.BACKSPACE ||\n params.eventKey === KeyCode.DELETE) {\n return SkyAgGridCellEditorInitialAction.Delete;\n }\n else if (params.eventKey?.length === 1) {\n return SkyAgGridCellEditorInitialAction.Replace;\n }\n else {\n if (params.eventKey !== KeyCode.F2) {\n return SkyAgGridCellEditorInitialAction.Highlighted;\n }\n else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n }\n else {\n return SkyAgGridCellEditorInitialAction.Untouched;\n }\n }\n /**\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.0\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n FormsModule,\n ReactiveFormsModule,\n SkyAutocompleteModule,\n SkyI18nModule,\n ], template: \"<div class=\\\"sky-ag-grid-cell-editor-autocomplete\\\" [formGroup]=\\\"editorForm\\\">\\n <sky-autocomplete\\n [allowAnyValue]=\\\"skyComponentProperties.allowAnyValue\\\"\\n [data]=\\\"skyComponentProperties.data\\\"\\n [debounceTime]=\\\"skyComponentProperties.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties.descriptorProperty\\\"\\n [highlightSearchText]=\\\"skyComponentProperties.highlightSearchText ?? true\\\"\\n [propertiesToSearch]=\\\"skyComponentProperties.propertiesToSearch\\\"\\n [search]=\\\"skyComponentProperties.search\\\"\\n [searchFilters]=\\\"skyComponentProperties.searchFilters\\\"\\n [searchResultsLimit]=\\\"skyComponentProperties.searchResultsLimit\\\"\\n [searchResultTemplate]=\\\"skyComponentProperties.searchResultTemplate\\\"\\n [searchTextMinimumCharacters]=\\\"\\n skyComponentProperties.searchTextMinimumCharacters\\n \\\"\\n (selectionChange)=\\\"\\n skyComponentProperties.selectionChange &&\\n skyComponentProperties.selectionChange($event)\\n \\\"\\n (openChange)=\\\"onAutocompleteOpenChange($event)\\\"\\n >\\n <input\\n #skyCellEditorAutocomplete\\n formControlName=\\\"selection\\\"\\n skyAutocomplete\\n type=\\\"text\\\"\\n [attr.aria-label]=\\\"\\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\\n | skyLibResources: columnHeader : rowNumber\\n \\\"\\n />\\n </sky-autocomplete>\\n</div>\\n\", styles: [\"sky-autocomplete input{background-color:transparent;border:none;box-shadow:none}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorAutocomplete', { read: ElementRef }]\n }], onBlur: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBRXpFOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdDQUF3QztJQVpyRDtRQWdCUyxlQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUN2QyxTQUFTLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtTQUNwQyxDQUFDLENBQUM7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bkIscUJBQXFCO3dCQUNyQixhQUFhO3FCQUNkOzhCQWtCTSxLQUFLO3NCQURYLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlyRCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBdXRvY29tcGxldGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0b2NvbXBsZXRlLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHNlbGVjdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyA9IHt9O1xuXG4gICNhdXRvY29tcGxldGVPcGVuID0gZmFsc2U7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gKHRoaXMuI3BhcmFtcy5ub2RlPy5yb3dJbmRleCA/PyAwKSArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICAvLyBBRyBHcmlkIHNldHMgZm9jdXMgdG8gdGhlIGNlbGwgdmlhIHNldFRpbWVvdXQsIGFuZCB0aGlzIHF1ZXVlcyB0aGUgaW5wdXQgdG8gZm9jdXMgYWZ0ZXIgdGhhdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgICBjb25zdCBjaGFyUHJlc3MgPSB0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZztcblxuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0UmFuZ2VUZXh0KGNoYXJQcmVzcyk7XG4gICAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpPy52YWx1ZTtcbiAgICByZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsID8gdmFsIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlT3BlbkNoYW5nZSgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNhdXRvY29tcGxldGVPcGVuID0gJGV2ZW50O1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2F1dG9jb21wbGV0ZU9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLmdldEdyaWRPcHRpb24oJ3N0b3BFZGl0aW5nV2hlbkNlbGxzTG9zZUZvY3VzJykgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpXG4gICAgKSB7XG4gICAgICB0aGlzLiNwYXJhbXM/LmFwaS5zdG9wRWRpdGluZygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZVwiIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8c2t5LWF1dG9jb21wbGV0ZVxuICAgIFthbGxvd0FueVZhbHVlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuYWxsb3dBbnlWYWx1ZVwiXG4gICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kYXRhXCJcbiAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVib3VuY2VUaW1lXCJcbiAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICBbaGlnaGxpZ2h0U2VhcmNoVGV4dF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmhpZ2hsaWdodFNlYXJjaFRleHQgPz8gdHJ1ZVwiXG4gICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFwiXG4gICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzXCJcbiAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlxuICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UgJiZcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVxuICAgIFwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25BdXRvY29tcGxldGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjc2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2F1dG9jb21wbGV0ZV9hcmlhX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9za3ktYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyAutonumericModule } from '@skyux/autonumeric';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/autonumeric\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorCurrencyComponent {\n constructor() {\n this.skyComponentProperties = {\n isCancellable: false,\n };\n this.currency = new UntypedFormControl();\n this.editorForm = new UntypedFormGroup({\n currency: this.currency,\n });\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#initialized = false;\n }\n onFocusOut(event) {\n if (event.relatedTarget && event.relatedTarget === this.params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n #triggerType;\n #changeDetector;\n #initialized;\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.params = params;\n this.columnHeader = this.params.api.getDisplayNameForColumn(this.params.column, 'header');\n this.rowNumber = this.params.rowIndex + 1;\n this.skyComponentProperties = {\n ...(this.params.skyComponentProperties || {\n decimalPlaces: 2,\n currencySymbol: '$',\n }),\n isCancellable: false,\n };\n }\n refresh(params) {\n this.agInit(params);\n }\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n this.input?.nativeElement.focus();\n // This setup is in `afterGuiAttached` due to the lifecycle of autonumeric which will highlight the initial value if it is in place when it renders.\n // Since we don't want that, we set the initial value after autonumeric initializes.\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(this.params);\n const control = this.currency;\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(parseFloat(String(this.params?.eventKey)) || undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(parseFloat(String(this.params?.value)));\n break;\n }\n }\n this.#changeDetector.markForCheck();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted &&\n (this.params?.value ?? '') !== '') {\n this.input?.nativeElement.select();\n }\n // When the cell is initialized with the Enter key, we need to suppress the first `onPressEnter`.\n this.#initialized = this.params?.eventKey !== 'Enter';\n });\n }\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n return this.currency.value ?? undefined;\n }\n /**\n * The autoNumeric library's event handler suppresses the escape key event. This additional handler re-enables AG Grid's default functionality.\n */\n onPressEscape() {\n if (this.params) {\n this.params.api.stopEditing(true);\n this.params.api.setFocusedCell(this.params.rowIndex, this.params.column);\n }\n }\n onPressEnter() {\n if (this.params && this.#initialized) {\n this.params.stopEditing();\n }\n this.#initialized = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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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QkFEWCxTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJakQsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lBdXRvbnVtZXJpY01vZHVsZSB9IGZyb20gJ0Bza3l1eC9hdXRvbnVtZXJpYyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckN1cnJlbmN5UGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItY3VycmVuY3ktcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY3VycmVuY3ktcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWN1cnJlbmN5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUF1dG9udW1lcmljTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZEN1cnJlbmN5UHJvcGVydGllcyAmIHtcbiAgICBpc0NhbmNlbGxhYmxlOiBib29sZWFuO1xuICB9ID0ge1xuICAgIGlzQ2FuY2VsbGFibGU6IGZhbHNlLFxuICB9O1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjdXJyZW5jeSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3ksXG4gIH0pO1xuICBwdWJsaWMgcGFyYW1zOiBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yQ3VycmVuY3knLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucmVsYXRlZFRhcmdldCAmJiBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLnBhcmFtcz8uZUdyaWRDZWxsKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMucGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMucGFyYW1zLmNvbHVtbixcbiAgICAgICdoZWFkZXInLFxuICAgICk7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLnBhcmFtcy5yb3dJbmRleCArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0ge1xuICAgICAgLi4uKHRoaXMucGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge1xuICAgICAgICBkZWNpbWFsUGxhY2VzOiAyLFxuICAgICAgICBjdXJyZW5jeVN5bWJvbDogJyQnLFxuICAgICAgfSksXG4gICAgICBpc0NhbmNlbGxhYmxlOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lDZWxsRWRpdG9yQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgIC8vIFRoaXMgc2V0dXAgaXMgaW4gYGFmdGVyR3VpQXR0YWNoZWRgIGR1ZSB0byB0aGUgbGlmZWN5Y2xlIG9mIGF1dG9udW1lcmljIHdoaWNoIHdpbGwgaGlnaGxpZ2h0IHRoZSBpbml0aWFsIHZhbHVlIGlmIGl0IGlzIGluIHBsYWNlIHdoZW4gaXQgcmVuZGVycy5cbiAgICAgIC8vIFNpbmNlIHdlIGRvbid0IHdhbnQgdGhhdCwgd2Ugc2V0IHRoZSBpbml0aWFsIHZhbHVlIGFmdGVyIGF1dG9udW1lcmljIGluaXRpYWxpemVzLlxuICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihcbiAgICAgICAgdGhpcy5wYXJhbXMsXG4gICAgICApO1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3VycmVuY3k7XG5cbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHBhcnNlRmxvYXQoU3RyaW5nKHRoaXMucGFyYW1zPy5ldmVudEtleSkpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcnNlRmxvYXQoU3RyaW5nKHRoaXMucGFyYW1zPy52YWx1ZSkpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZCAmJlxuICAgICAgICAodGhpcy5wYXJhbXM/LnZhbHVlID8/ICcnKSAhPT0gJydcbiAgICAgICkge1xuICAgICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHRoZSBjZWxsIGlzIGluaXRpYWxpemVkIHdpdGggdGhlIEVudGVyIGtleSwgd2UgbmVlZCB0byBzdXBwcmVzcyB0aGUgZmlyc3QgYG9uUHJlc3NFbnRlcmAuXG4gICAgICB0aGlzLiNpbml0aWFsaXplZCA9IHRoaXMucGFyYW1zPy5ldmVudEtleSAhPT0gJ0VudGVyJztcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVuY3kudmFsdWUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRvTnVtZXJpYyBsaWJyYXJ5J3MgZXZlbnQgaGFuZGxlciBzdXBwcmVzc2VzIHRoZSBlc2NhcGUga2V5IGV2ZW50LiBUaGlzIGFkZGl0aW9uYWwgaGFuZGxlciByZS1lbmFibGVzIEFHIEdyaWQncyBkZWZhdWx0IGZ1bmN0aW9uYWxpdHkuXG4gICAqL1xuICBwdWJsaWMgb25QcmVzc0VzY2FwZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbXMpIHtcbiAgICAgIHRoaXMucGFyYW1zLmFwaS5zdG9wRWRpdGluZyh0cnVlKTtcbiAgICAgIHRoaXMucGFyYW1zLmFwaS5zZXRGb2N1c2VkQ2VsbCh0aGlzLnBhcmFtcy5yb3dJbmRleCwgdGhpcy5wYXJhbXMuY29sdW1uKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25QcmVzc0VudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmFtcyAmJiB0aGlzLiNpbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5wYXJhbXMuc3RvcEVkaXRpbmcoKTtcbiAgICB9XG4gICAgdGhpcy4jaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8aW5wdXRcbiAgICAjc2t5Q2VsbEVkaXRvckN1cnJlbmN5XG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdXJyZW5jeVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9jdXJyZW5jeV9hcmlhX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgXCJcbiAgICBbc2t5QXV0b251bWVyaWNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllc1wiXG4gICAgW3NreUF1dG9udW1lcmljRm9ybUNoYW5nZXNVbmZvcm1hdHRlZF09XCJwYXJhbXM/LmV2ZW50S2V5Py5sZW5ndGggPT09IDFcIlxuICAgIChrZXl1cC5lbnRlcik9XCJvblByZXNzRW50ZXIoKVwiXG4gICAgKGtleXVwLmVzY2FwZSk9XCJvblByZXNzRXNjYXBlKClcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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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dGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2RhdGV0aW1lJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWREYXRlcGlja2VyUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2RhdGVwaWNrZXItcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreURhdGVwaWNrZXJNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIGRhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dIZWlnaHRXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMgPSB7fTtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yRGF0ZXBpY2tlcklucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBkYXRlcGlja2VySW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlc29sdmVkRGF0ZUZvcm1hdCA9ICcnO1xuXG4gICNjYWxlbmRhck9wZW4gPSBmYWxzZTtcbiAgI3BhcmFtczogU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZikgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB0aGlzLiNwYXJhbXM/LmVHcmlkQ2VsbFxuICAgICkge1xuICAgICAgLy8gSWYgZm9jdXMgaXMgYmVpbmcgc2V0IHRvIHRoZSBncmlkIGNlbGwsIHNjaGVkdWxlIGZvY3VzIG9uIHRoZSBkYXRlcGlja2VyIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuZGF0ZXBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNhbGVuZGFyT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNjYWxlbmRhck9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGVGb3JtYXRDaGFuZ2UoZGF0ZUZvcm1hdDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlZERhdGVGb3JtYXQgPSBkYXRlRm9ybWF0O1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3BhcmFtcyA9IHBhcmFtcztcblxuICAgIHRoaXMuI3RyaWdnZXJUeXBlID0gU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzLmdldEVkaXRvckluaXRpYWxBY3Rpb24ocGFyYW1zKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnZGF0ZScpO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2U6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMuZXZlbnRLZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMuY29sdW1uV2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5jb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzID0gdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9ICh0aGlzLiNwYXJhbXMubm9kZS5yb3dIZWlnaHQgYXMgbnVtYmVyKSAtIDM7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuXG4gICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlLnN1YnNjcmliZSgodGhlbWVTZXR0aW5ncykgPT4ge1xuICAgICAgaWYgKHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzLnRoZW1lLm5hbWUgPT09ICdtb2Rlcm4nKSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9IHRoaXMuY29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSB0aGlzLiNwYXJhbXM/Lm5vZGU/LnJvd0hlaWdodDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9XG4gICAgICAgICAgdGhpcy5jb2x1bW5XaWR0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuc3VidHJhY3RPclplcm8oXG4gICAgICAgICAgdGhpcy4jcGFyYW1zPy5ub2RlLnJvd0hlaWdodCxcbiAgICAgICAgICAzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzUG9wdXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9wdXBQb3NpdGlvbigpOiAnb3ZlcicgfCAndW5kZXInIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gJ292ZXInO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRlcGlja2VySW5wdXRFbCA9IHRoaXMuZGF0ZXBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50IGFzXG4gICAgICAgIHwgSFRNTElucHV0RWxlbWVudFxuICAgICAgICB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGRhdGVwaWNrZXJJbnB1dEVsKSB7XG4gICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLmZvY3VzKCk7XG5cbiAgICAgICAgLy8gcHJvZ3JhbW1hdGljYWxseSBzZXQgdGhlIHZhbHVlIG9mIGluIHRoZSBpbnB1dDsgaG93ZXZlciwgZG8gbm90IGRvIHRoaXMgdmlhIHRoZSBmb3JtIGNvbnRyb2wgc28gdGhhdCB0aGUgdmFsdWUgaXMgbm90IGZvcm1hdHRlZCB3aGVuIGVkaXRpbmcgc3RhcnRzLlxuICAgICAgICAvLyBXYXRjaCBmb3IgdGhlIGZpcnN0IGJsdXIgYW5kIGZpcmUgYSAnY2hhbmdlJyBldmVudCBhcyBwcm9ncmFtbWF0aWMgY2hhbmdlcyB3b24ndCBxdWV1ZSBhIGNoYW5nZSBldmVudCwgYnV0IHdlIG5lZWQgdG8gZG8gdGhpcyBzbyB0aGF0IGZvcm1hdHRpbmcgaGFwcGVucyBpZiB0aGUgdXNlciB0YWJzIHRvIHRoZSBjYWxlbmRhciBidXR0b24uXG4gICAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZSkge1xuICAgICAgICAgIGZyb21FdmVudChkYXRlcGlja2VySW5wdXRFbCwgJ2JsdXInKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuc2VsZWN0KCk7XG5cbiAgICAgICAgICBjb25zdCBjaGFyUHJlc3MgPSB0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZztcblxuICAgICAgICAgIGlmIChjaGFyUHJlc3MpIHtcbiAgICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBEYXRlIHtcbiAgICB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ2RhdGUnKT8udmFsdWU7XG4gIH1cblxuICAjc3RvcEVkaXRpbmdPbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuI2NhbGVuZGFyT3BlbiAmJlxuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItZGF0ZXBpY2tlclwiXG4gIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJjb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzXCJcbj5cbiAgPHNreS1kYXRlcGlja2VyXG4gICAgZGF0YS1za3ktaWQ9XCJjZWxsLWRhdGVwaWNrZXJcIlxuICAgIHBpY2tlckNsYXNzPVwiYWctY3VzdG9tLWNvbXBvbmVudC1wb3B1cFwiXG4gICAgKGRhdGVGb3JtYXRDaGFuZ2UpPVwib25EYXRlRm9ybWF0Q2hhbmdlKCRldmVudClcIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uQ2FsZW5kYXJPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjc2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJJbnB1dFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXG4gICAgICBza3lEYXRlcGlja2VySW5wdXRcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9kYXRlcGlja2VyX2FyaWFfbGFiZWwnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbHVtbkhlYWRlciA6IHJvd051bWJlclxuICAgICAgXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgICByZXNvbHZlZERhdGVGb3JtYXRcbiAgICAgICAgICA/ICgnc2t5dXhfZGF0ZXBpY2tlcl9mb3JtYXRfaGludF90ZXh0J1xuICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IHJlc29sdmVkRGF0ZUZvcm1hdClcbiAgICAgICAgICA6IG51bGxcbiAgICAgIFwiXG4gICAgICBbbWluRGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5tYXhEYXRlXCJcbiAgICAgIFtkYXRlRm9ybWF0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGF0ZUZvcm1hdFwiXG4gICAgICBbc3RhcnRpbmdEYXldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zdGFydGluZ0RheVwiXG4gICAgICBbc2t5RGF0ZXBpY2tlck5vVmFsaWRhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5za3lEYXRlcGlja2VyTm9WYWxpZGF0ZVwiXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJvd0hlaWdodFdpdGhvdXRCb3JkZXJzXCJcbiAgICAvPlxuICA8L3NreS1kYXRlcGlja2VyPlxuPC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, inject, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyLookupModule } from '@skyux/lookup';\nimport { applySkyLookupPropertiesDefaults } from '../../apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@skyux/lookup\";\nimport * as i4 from \"@skyux/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorLookupComponent {\n constructor() {\n this.isAlive = false;\n this.editorForm = new UntypedFormGroup({\n selection: new UntypedFormControl({\n value: [],\n disabled: false,\n }),\n });\n this.useAsyncSearch = false;\n this.labelText = undefined;\n this.#lookupOpen = false;\n this.#selectionModalOpen = false;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#elementRef = inject((ElementRef));\n }\n #lookupOpen;\n #selectionModalOpen;\n #params;\n #triggerType;\n #changeDetector;\n #elementRef;\n onBlur(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n else {\n this.#stopEditingOnBlur();\n }\n }\n agInit(params) {\n this.#params = params;\n if (!Array.isArray(this.#params.value)) {\n throw new Error(`Lookup value must be an array`);\n }\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('selection');\n this.labelText = params.skyComponentProperties?.ariaLabelledBy\n ? undefined\n : params.skyComponentProperties?.ariaLabel ||\n params.colDef.headerName ||\n params.colDef.headerTooltip ||\n params.colDef.field ||\n params.colDef.colId;\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue([]);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n if (this.#params.skyComponentProperties?.disabled) {\n control.disable();\n }\n else {\n control.enable();\n }\n }\n this.skyComponentProperties = this.#updateComponentProperties(this.#params);\n this.useAsyncSearch =\n typeof this.skyComponentProperties.searchAsync === 'function';\n this.isAlive = true;\n this.width = this.#params.column.getActualWidth();\n this.#params.api.addEventListener('columnResized', (event) => {\n if (event.column?.getColId() === this.#params?.column.getColId()) {\n this.width = event.column?.getActualWidth();\n this.#changeDetector.markForCheck();\n }\n });\n this.#changeDetector.markForCheck();\n }\n isCancelAfterEnd() {\n // Shut down components to commit values before final value syncs to grid.\n this.isAlive = false;\n return false;\n }\n getGui() {\n return this.#elementRef.nativeElement;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getValue() {\n return this.editorForm.get('selection')?.value;\n }\n isPopup() {\n return true;\n }\n getPopupPosition() {\n return 'over';\n }\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n const lookupInput = this.#elementRef.nativeElement.querySelector('.sky-lookup-input');\n lookupInput.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Replace) {\n lookupInput.setRangeText(`${this.#params?.eventKey}`);\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(lookupInput.value.length, lookupInput.value.length);\n lookupInput.dispatchEvent(new Event('input'));\n }\n else if (this.#triggerType === SkyAgGridCellEditorInitialAction.Untouched) {\n // Ensure the cursor is at the end of the text.\n lookupInput.setSelectionRange(lookupInput.value.length, lookupInput.value.length);\n }\n });\n }\n onLookupOpenChange(isOpen) {\n this.#lookupOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n onSelectionModalOpenChange(isOpen) {\n this.#selectionModalOpen = isOpen;\n this.#stopEditingOnBlur();\n }\n #updateComponentProperties(params) {\n const skyLookupProperties = params.skyComponentProperties;\n return applySkyLookupPropertiesDefaults(skyLookupProperties);\n }\n #stopEditingOnBlur() {\n if (!this.#lookupOpen &&\n !this.#selectionModalOpen &&\n this.#params?.api.getGridOption('stopEditingWhenCellsLoseFocus') &&\n !this.#elementRef.nativeElement.matches(':focus-within')) {\n this.#params?.api.stopEditing();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellEditorLookupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-lookup', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyInputBoxModule,\n FormsModule,\n ReactiveFormsModule,\n SkyLookupModule,\n SkyIdModule,\n ], template: \"@if (isAlive && useAsyncSearch) {\\n <sky-input-box\\n [disabled]=\\\"skyComponentProperties?.disabled\\\"\\n [formGroup]=\\\"editorForm\\\"\\n >\\n <sky-lookup\\n formControlName=\\\"selection\\\"\\n [ariaLabelledBy]=\\\"\\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\\n \\\"\\n [autocompleteAttribute]=\\\"skyComponentProperties?.autocompleteAttribute\\\"\\n [data]=\\\"skyComponentProperties?.data\\\"\\n [debounceTime]=\\\"skyComponentProperties?.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties?.descriptorProperty\\\"\\n [enableShowMore]=\\\"skyComponentProperties?.enableShowMore\\\"\\n [idProperty]=\\\"skyComponentProperties?.idProperty\\\"\\n [placeholderText]=\\\"skyComponentProperties?.placeholderText\\\"\\n [propertiesToSearch]=\\\"skyComponentProperties?.propertiesToSearch\\\"\\n [search]=\\\"skyComponentProperties?.search\\\"\\n [searchFilters]=\\\"skyComponentProperties?.searchFilters\\\"\\n [searchResultsLimit]=\\\"skyComponentProperties?.searchResultsLimit\\\"\\n [searchResultTemplate]=\\\"skyComponentProperties?.searchResultTemplate\\\"\\n [searchTextMinimumCharacters]=\\\"\\n skyComponentProperties?.searchTextMinimumCharacters\\n \\\"\\n [selectMode]=\\\"skyComponentProperties?.selectMode\\\"\\n [showAddButton]=\\\"skyComponentProperties?.showAddButton\\\"\\n [showMoreConfig]=\\\"skyComponentProperties?.showMoreConfig\\\"\\n [wrapperClass]=\\\"skyComponentProperties?.wrapperClass\\\"\\n (searchAsync)=\\\"skyComponentProperties?.searchAsync?.($event)\\\"\\n (addClick)=\\\"skyComponentProperties?.addClick?.($event)\\\"\\n (openChange)=\\\"onLookupOpenChange($event)\\\"\\n (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($event)\\\"\\n />\\n </sky-input-box>\\n}\\n@if (isAlive && !useAsyncSearch) {\\n <sky-input-box\\n [disabled]=\\\"skyComponentProperties?.disabled\\\"\\n [formGroup]=\\\"editorForm\\\"\\n >\\n <sky-lookup\\n formControlName=\\\"selection\\\"\\n [ariaLabelledBy]=\\\"\\n skyComponentProperties?.ariaLabelledBy ?? screenReaderLabel.id\\n \\\"\\n [autocompleteAttribute]=\\\"skyComponentProperties?.autocompleteAttribute\\\"\\n [data]=\\\"skyComponentProperties?.data\\\"\\n [debounceTime]=\\\"skyComponentProperties?.debounceTime\\\"\\n [descriptorProperty]=\\\"skyComponentProperties?.descriptorProperty\\\"\\n [enableShowMore]=\\\"skyComponentProperties?.enableShowMore\\\"\\n [idProperty]=\\\"skyComponentProperties?.idProperty\\\"\\n [placeholderText]=\\\"skyComponentProperties?.placeholderText\\\"\\n [propertiesToSearch]=\\\"skyComponentProperties?.propertiesToSearch\\\"\\n [search]=\\\"skyComponentProperties?.search\\\"\\n [searchFilters]=\\\"skyComponentProperties?.searchFilters\\\"\\n [searchResultsLimit]=\\\"skyComponentProperties?.searchResultsLimit\\\"\\n [searchResultTemplate]=\\\"skyComponentProperties?.searchResultTemplate\\\"\\n [searchTextMinimumCharacters]=\\\"\\n skyComponentProperties?.searchTextMinimumCharacters\\n \\\"\\n [selectMode]=\\\"skyComponentProperties?.selectMode\\\"\\n [showAddButton]=\\\"skyComponentProperties?.showAddButton\\\"\\n [showMoreConfig]=\\\"skyComponentProperties?.showMoreConfig\\\"\\n [wrapperClass]=\\\"skyComponentProperties?.wrapperClass\\\"\\n (addClick)=\\\"skyComponentProperties?.addClick?.($event)\\\"\\n (openChange)=\\\"onLookupOpenChange($event)\\\"\\n (selectionModalOpenChange)=\\\"onSelectionModalOpenChange($event)\\\"\\n />\\n </sky-input-box>\\n}\\n<div #screenReaderLabel=\\\"skyId\\\" class=\\\"sky-screen-reader-only\\\" skyId>\\n {{ labelText }}\\n</div>\\n\", styles: [\":host{display:block}\\n\"] }]\n }], propDecorators: { width: [{\n type: HostBinding,\n args: ['style.width.px']\n }], onBlur: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLaEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUd6RTs7R0FFRztBQWNILE1BQU0sT0FBTyxrQ0FBa0M7SUFiL0M7UUFvQlMsWUFBTyxH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QUVELDBCQUEwQixDQUN4QixNQUFpQztRQUVqQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUMxRCxPQUFPLGdDQUFnQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUNFLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDakIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztZQUNoRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXZLVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxpTUM1Qy9DLGsvR0EwRUEsK0VEckNJLGlCQUFpQiw0T0FDakIsV0FBVyxrU0FDWCxtQkFBbUIsK1VBQ25CLGVBQWUsaVhBQ2YsV0FBVzs7MkZBR0Ysa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7cUJBQ1o7OEJBTU0sS0FBSztzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQjtnQkF1QnRCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TG9va3VwTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29sdW1uUmVzaXplZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4uLy4uL2FwcGx5LWxvb2t1cC1wcm9wZXJ0aWVzLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWxvb2t1cC1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2xvb2t1cC1wcm9wZXJ0aWVzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItbG9va3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFNreUlucHV0Qm94TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2t5TG9va3VwTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgcHVibGljIHdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM/OiBTa3lBZ0dyaWRMb29rdXBQcm9wZXJ0aWVzO1xuICBwdWJsaWMgaXNBbGl2ZSA9IGZhbHNlO1xuICBwdWJsaWMgZWRpdG9yRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBzZWxlY3Rpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woe1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9KTtcbiAgcHVibGljIHVzZUFzeW5jU2VhcmNoID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICNsb29rdXBPcGVuID0gZmFsc2U7XG4gICNzZWxlY3Rpb25Nb2RhbE9wZW4gPSBmYWxzZTtcbiAgI3BhcmFtczogU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuI3BhcmFtcy52YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9va3VwIHZhbHVlIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICB9XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgIHRoaXMubGFiZWxUZXh0ID0gcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmFyaWFMYWJlbGxlZEJ5XG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsIHx8XG4gICAgICAgIHBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZSB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmhlYWRlclRvb2x0aXAgfHxcbiAgICAgICAgcGFyYW1zLmNvbERlZi5maWVsZCB8fFxuICAgICAgICBwYXJhbXMuY29sRGVmLmNvbElkO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAodGhpcy4jdHJpZ2dlclR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5EZWxldGU6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZDpcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5VbnRvdWNoZWQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShwYXJhbXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLiN1cGRhdGVDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMuI3BhcmFtcyk7XG4gICAgdGhpcy51c2VBc3luY1NlYXJjaCA9XG4gICAgICB0eXBlb2YgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaEFzeW5jID09PSAnZnVuY3Rpb24nO1xuICAgIHRoaXMuaXNBbGl2ZSA9IHRydWU7XG4gICAgdGhpcy53aWR0aCA9IHRoaXMuI3BhcmFtcy5jb2x1bW4uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICB0aGlzLiNwYXJhbXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY29sdW1uUmVzaXplZCcsXG4gICAgICAoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpID09PSB0aGlzLiNwYXJhbXM/LmNvbHVtbi5nZXRDb2xJZCgpKSB7XG4gICAgICAgICAgdGhpcy53aWR0aCA9IGV2ZW50LmNvbHVtbj8uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGlzQ2FuY2VsQWZ0ZXJFbmQoKTogYm9vbGVhbiB7XG4gICAgLy8gU2h1dCBkb3duIGNvbXBvbmVudHMgdG8gY29tbWl0IHZhbHVlcyBiZWZvcmUgZmluYWwgdmFsdWUgc3luY3MgdG8gZ3JpZC5cbiAgICB0aGlzLmlzQWxpdmUgPSBmYWxzZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0R3VpKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGdldFZhbHVlKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JGb3JtLmdldCgnc2VsZWN0aW9uJyk/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGlzUG9wdXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9wdXBQb3NpdGlvbigpOiAnb3ZlcicgfCAndW5kZXInIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gJ292ZXInO1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBsb29rdXBJbnB1dDogSFRNTFRleHRBcmVhRWxlbWVudCA9XG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWxvb2t1cC1pbnB1dCcpO1xuICAgICAgbG9va3VwSW5wdXQuZm9jdXMoKTtcbiAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZSkge1xuICAgICAgICBsb29rdXBJbnB1dC5zZXRSYW5nZVRleHQoYCR7dGhpcy4jcGFyYW1zPy5ldmVudEtleX1gKTtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC5cbiAgICAgICAgbG9va3VwSW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgbG9va3VwSW5wdXQudmFsdWUubGVuZ3RoLFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgKTtcbiAgICAgICAgbG9va3VwSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZFxuICAgICAgKSB7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgIGxvb2t1cElucHV0LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIGxvb2t1cElucHV0LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBsb29rdXBJbnB1dC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Mb29rdXBPcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI2xvb2t1cE9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbk1vZGFsT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNzZWxlY3Rpb25Nb2RhbE9wZW4gPSBpc09wZW47XG4gICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgfVxuXG4gICN1cGRhdGVDb21wb25lbnRQcm9wZXJ0aWVzKFxuICAgIHBhcmFtczogU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyxcbiAgKTogU2t5QWdHcmlkTG9va3VwUHJvcGVydGllcyB7XG4gICAgY29uc3Qgc2t5TG9va3VwUHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzO1xuICAgIHJldHVybiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhza3lMb29rdXBQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gICNzdG9wRWRpdGluZ09uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy4jbG9va3VwT3BlbiAmJlxuICAgICAgIXRoaXMuI3NlbGVjdGlvbk1vZGFsT3BlbiAmJlxuICAgICAgdGhpcy4jcGFyYW1zPy5hcGkuZ2V0R3JpZE9wdGlvbignc3RvcEVkaXRpbmdXaGVuQ2VsbHNMb3NlRm9jdXMnKSAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGlzQWxpdmUgJiYgdXNlQXN5bmNTZWFyY2gpIHtcbiAgPHNreS1pbnB1dC1ib3hcbiAgICBbZGlzYWJsZWRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGlzYWJsZWRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gID5cbiAgICA8c2t5LWxvb2t1cFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0aW9uXCJcbiAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXJpYUxhYmVsbGVkQnkgPz8gc2NyZWVuUmVhZGVyTGFiZWwuaWRcbiAgICAgIFwiXG4gICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICBbZGF0YV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kYXRhXCJcbiAgICAgIFtkZWJvdW5jZVRpbWVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVib3VuY2VUaW1lXCJcbiAgICAgIFtkZXNjcmlwdG9yUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICAgIFtlbmFibGVTaG93TW9yZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5lbmFibGVTaG93TW9yZVwiXG4gICAgICBbaWRQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5pZFByb3BlcnR5XCJcbiAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8ucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoXCJcbiAgICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEZpbHRlcnNcIlxuICAgICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwiXG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1xuICAgICAgXCJcbiAgICAgIFtzZWxlY3RNb2RlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlbGVjdE1vZGVcIlxuICAgICAgW3Nob3dBZGRCdXR0b25dPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd0FkZEJ1dHRvblwiXG4gICAgICBbc2hvd01vcmVDb25maWddPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2hvd01vcmVDb25maWdcIlxuICAgICAgW3dyYXBwZXJDbGFzc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy53cmFwcGVyQ2xhc3NcIlxuICAgICAgKHNlYXJjaEFzeW5jKT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaEFzeW5jPy4oJGV2ZW50KVwiXG4gICAgICAoYWRkQ2xpY2spPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYWRkQ2xpY2s/LigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uTG9va3VwT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UpPVwib25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9za3ktaW5wdXQtYm94PlxufVxuQGlmIChpc0FsaXZlICYmICF1c2VBc3luY1NlYXJjaCkge1xuICA8c2t5LWlucHV0LWJveFxuICAgIFtkaXNhYmxlZF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kaXNhYmxlZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCJcbiAgPlxuICAgIDxza3ktbG9va3VwXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3Rpb25cIlxuICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5hcmlhTGFiZWxsZWRCeSA/PyBzY3JlZW5SZWFkZXJMYWJlbC5pZFxuICAgICAgXCJcbiAgICAgIFthdXRvY29tcGxldGVBdHRyaWJ1dGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYXV0b2NvbXBsZXRlQXR0cmlidXRlXCJcbiAgICAgIFtkYXRhXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRhdGFcIlxuICAgICAgW2RlYm91bmNlVGltZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kZWJvdW5jZVRpbWVcIlxuICAgICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5kZXNjcmlwdG9yUHJvcGVydHlcIlxuICAgICAgW2VuYWJsZVNob3dNb3JlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmVuYWJsZVNob3dNb3JlXCJcbiAgICAgIFtpZFByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LmlkUHJvcGVydHlcIlxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5wbGFjZWhvbGRlclRleHRcIlxuICAgICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5wcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zZWFyY2hcIlxuICAgICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoRmlsdGVyc1wiXG4gICAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LnNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgICBcIlxuICAgICAgW3NlbGVjdE1vZGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uc2VsZWN0TW9kZVwiXG4gICAgICBbc2hvd0FkZEJ1dHRvbl09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zaG93QWRkQnV0dG9uXCJcbiAgICAgIFtzaG93TW9yZUNvbmZpZ109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzPy5zaG93TW9yZUNvbmZpZ1wiXG4gICAgICBbd3JhcHBlckNsYXNzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXM/LndyYXBwZXJDbGFzc1wiXG4gICAgICAoYWRkQ2xpY2spPVwic2t5Q29tcG9uZW50UHJvcGVydGllcz8uYWRkQ2xpY2s/LigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uTG9va3VwT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UpPVwib25TZWxlY3Rpb25Nb2RhbE9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9za3ktaW5wdXQtYm94PlxufVxuPGRpdiAjc2NyZWVuUmVhZGVyTGFiZWw9XCJza3lJZFwiIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiIHNreUlkPlxuICB7eyBsYWJlbFRleHQgfX1cbjwvZGl2PlxuIl19","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorNumberComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n number: new UntypedFormControl(),\n });\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n #params;\n #triggerType;\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('number');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(parseFloat(this.#params?.eventKey) || undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n this.max = params.skyComponentProperties?.max;\n this.min = params.skyComponentProperties?.min;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = this.#params.rowIndex + 1;\n this.columnWidth = this.#params.column.getActualWidth();\n this.rowHeightWithoutBorders = this.#params.node.rowHeight - 4;\n }\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n const val = this.editorForm.get('number')?.value;\n return val !== undefined && val !== null ? val : undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellEditorNumberComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-editor-number', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, ReactiveFormsModule, SkyI18nModule], template: \"<ng-container [formGroup]=\\\"editorForm\\\">\\n <input\\n #skyCellEditorNumber\\n formControlName=\\\"number\\\"\\n type=\\\"number\\\"\\n [attr.aria-label]=\\\"\\n 'sky_ag_grid_cell_editor_number_aria_label'\\n | skyLibResources: columnHeader : rowNumber\\n \\\"\\n [style.width.px]=\\\"columnWidth\\\"\\n [style.height.px]=\\\"rowHeightWithoutBorders\\\"\\n [max]=\\\"max ?? null\\\"\\n [min]=\\\"min ?? null\\\"\\n />\\n</ng-container>\\n\", styles: [\"input{background-color:transparent;border:none;text-align:right}\\n\"] }]\n }], propDecorators: { input: [{\n type: ViewChild,\n args: ['skyCellEditorNumber', { read: ElementRef }]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVlTLGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixFQUFFO1NBQ2pDLENBQUMsQ0FBQztLQXNGSjtJQTVFUSxVQUFVLENBQUMsS0FBaUI7UUFDakMsSUFDRSxLQUFLLENBQUMsYUFBYTtZQUNuQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUks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Vywwa0NBQUUsbUJBQW1CLCtVQUFFLGFBQWE7OzJGQUU5QyxrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQzs4QkFnQm5ELEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSS9DLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yTnVtYmVyUGFyYW1zIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItbnVtYmVyLXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIG51bWJlcjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd0hlaWdodFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG1heDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWluOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvck51bWJlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuI3BhcmFtcz8uZUdyaWRDZWxsXG4gICAgKSB7XG4gICAgICAvLyBJZiBmb2N1cyBpcyBiZWluZyBzZXQgdG8gdGhlIGdyaWQgY2VsbCwgc2NoZWR1bGUgZm9jdXMgb24gdGhlIGlucHV0LlxuICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJlZnJlc2hDZWxscyBBUEkgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5hZnRlckd1aUF0dGFjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgI3BhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFnSW5pdCBpcyBjYWxsZWQgYnkgYWdHcmlkIG9uY2UgYWZ0ZXIgdGhlIGVkaXRvciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgZWRpdG9yIHdpdGggdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBjZWxsIGVkaXRvciBwYXJhbXMgdGhhdCBpbmNsdWRlIGRhdGEgYWJvdXQgdGhlIGNlbGwsIGNvbHVtbiwgcm93LCBhbmQgZ3JpZC5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsRWRpdG9yTnVtYmVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdudW1iZXInKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLiNwYXJhbXM/LmV2ZW50S2V5IGFzIHN0cmluZykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1heCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5tYXg7XG4gICAgdGhpcy5taW4gPSBwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8ubWluO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyID0gdGhpcy4jcGFyYW1zLmFwaS5nZXREaXNwbGF5TmFtZUZvckNvbHVtbihcbiAgICAgIHRoaXMuI3BhcmFtcy5jb2x1bW4sXG4gICAgICAnaGVhZGVyJyxcbiAgICApO1xuICAgIHRoaXMucm93TnVtYmVyID0gdGhpcy4jcGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLmNvbHVtbldpZHRoID0gdGhpcy4jcGFyYW1zLmNvbHVtbi5nZXRBY3R1YWxXaWR0aCgpO1xuICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSAodGhpcy4jcGFyYW1zLm5vZGUucm93SGVpZ2h0IGFzIG51bWJlcikgLSA0O1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmFsID0gdGhpcy5lZGl0b3JGb3JtLmdldCgnbnVtYmVyJyk/LnZhbHVlO1xuICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCI+XG4gIDxpbnB1dFxuICAgICNza3lDZWxsRWRpdG9yTnVtYmVyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyXCJcbiAgICB0eXBlPVwibnVtYmVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyIDogcm93TnVtYmVyXG4gICAgXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uV2lkdGhcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicm93SGVpZ2h0V2l0aG91dEJvcmRlcnNcIlxuICAgIFttYXhdPVwibWF4ID8/IG51bGxcIlxuICAgIFttaW5dPVwibWluID8/IG51bGxcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';\nimport { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellEditorTextComponent {\n constructor() {\n this.editorForm = new UntypedFormGroup({\n text: new UntypedFormControl(),\n });\n }\n onFocusOut(event) {\n if (event.relatedTarget &&\n event.relatedTarget === this.#params?.eGridCell) {\n // If focus is being set to the grid cell, schedule focus on the input.\n // This happens when the refreshCells API is called.\n this.afterGuiAttached();\n }\n }\n #params;\n #triggerType;\n /**\n * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.\n * @param params The cell editor params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.#params = params;\n this.#triggerType = SkyAgGridCellEditorUtils.getEditorInitialAction(params);\n const control = this.editorForm.get('text');\n if (control) {\n switch (this.#triggerType) {\n case SkyAgGridCellEditorInitialAction.Delete:\n control.setValue(undefined);\n break;\n case SkyAgGridCellEditorInitialAction.Replace:\n control.setValue(params.eventKey);\n break;\n case SkyAgGridCellEditorInitialAction.Highlighted:\n case SkyAgGridCellEditorInitialAction.Untouched:\n default:\n control.setValue(params.value);\n break;\n }\n }\n this.maxlength = params.skyComponentProperties?.maxlength;\n this.columnHeader = this.#params.api.getDisplayNameForColumn(this.#params.column, 'header');\n this.rowNumber = this.#params.rowIndex + 1;\n }\n /**\n * afterGuiAttached is called by agGrid after the editor is rendered in the DOM. Once it is attached the editor is ready to be focused on.\n */\n afterGuiAttached() {\n // AG Grid sets focus to the cell via setTimeout, and this queues the input to focus after that.\n setTimeout(() => {\n if (this.input) {\n this.input.nativeElement.focus();\n if (this.#triggerType === SkyAgGridCellEditorInitialAction.Highlighted) {\n this.input.nativeElement.select();\n }\n }\n });\n }\n /**\n * getValue is called by agGrid when editing is stopped to get the new value of the cell.\n */\n getValue() {\n return this.editorForm.get('text')?.value || undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellEditorTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0NBQWdDO0lBUDdDO1FBWVMsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0tBK0VKO0lBdkVRLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQy9DLENBQUM7WUFDRCx1RUFBdUU7WUFDdkUsb0RBQW9EO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFnQztJQUN2QyxZQUFZLENBQStDO0lBRTNEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUErQjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxnQ0FBZ0MsQ0FBQyxNQUFNO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssZ0NBQWdDLENBQUMsT0FBTztvQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1IsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELEtBQUssZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNoRDtvQkFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUNuQixRQUFRLENBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixnR0FBZ0c7UUFDaEcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqQyxJQUNFLElBQUksQ0FBQyxZQUFZLEtBQUssZ0NBQWdDLENBQUMsV0FBVyxFQUNsRSxDQUFDO29CQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLFNBQVMsQ0FBQztJQUN6RCxDQUFDOzhHQXJGVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywwT0FXSCxVQUFVLDZCQzNDcEQsc1VBWUEseVpEa0JZLFdBQVcscXRCQUFFLG1CQUFtQiwrVUFBRSxhQUFhOzsyRkFFOUMsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7OEJBY25ELEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTdDLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yVGV4dFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXRleHQtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItdGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyB0ZXh0SW5wdXRMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHRleHQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG1heGxlbmd0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JUZXh0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy4jcGFyYW1zPy5lR3JpZENlbGxcbiAgICApIHtcbiAgICAgIC8vIElmIGZvY3VzIGlzIGJlaW5nIHNldCB0byB0aGUgZ3JpZCBjZWxsLCBzY2hlZHVsZSBmb2N1cyBvbiB0aGUgaW5wdXQuXG4gICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmVmcmVzaENlbGxzIEFQSSBpcyBjYWxsZWQuXG4gICAgICB0aGlzLmFmdGVyR3VpQXR0YWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICAjcGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JUZXh0UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCd0ZXh0Jyk7XG5cbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy5ldmVudEtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1heGxlbmd0aCA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy5tYXhsZW5ndGg7XG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLiNwYXJhbXMuYXBpLmdldERpc3BsYXlOYW1lRm9yQ29sdW1uKFxuICAgICAgdGhpcy4jcGFyYW1zLmNvbHVtbixcbiAgICAgICdoZWFkZXInLFxuICAgICk7XG4gICAgdGhpcy5yb3dOdW1iZXIgPSB0aGlzLiNwYXJhbXMucm93SW5kZXggKyAxO1xuICB9XG5cbiAgLyoqXG4gICAqIGFmdGVyR3VpQXR0YWNoZWQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlbmRlcmVkIGluIHRoZSBET00uIE9uY2UgaXQgaXMgYXR0YWNoZWQgdGhlIGVkaXRvciBpcyByZWFkeSB0byBiZSBmb2N1c2VkIG9uLlxuICAgKi9cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgLy8gQUcgR3JpZCBzZXRzIGZvY3VzIHRvIHRoZSBjZWxsIHZpYSBzZXRUaW1lb3V0LCBhbmQgdGhpcyBxdWV1ZXMgdGhlIGlucHV0IHRvIGZvY3VzIGFmdGVyIHRoYXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRWYWx1ZSBpcyBjYWxsZWQgYnkgYWdHcmlkIHdoZW4gZWRpdGluZyBpcyBzdG9wcGVkIHRvIGdldCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3RleHQnKT8udmFsdWUgfHwgdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8aW5wdXRcbiAgICAjc2t5Q2VsbEVkaXRvclRleHRcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWwnXG4gICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICBcIlxuICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoID8/IG51bGxcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridCellValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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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RUFBRSxzQkFBc0IsRUFBRSxTQUFTO1lBQ2pFLFVBQVUsRUFDVixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUN2QyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFFLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0ExR1Usc0NBQXNDO2tHQUF0QyxzQ0FBc0MsNEhDN0JuRCw4ckJBNEJBLDJiRERZLGdCQUFnQixtSkFBRSxnQkFBZ0IsK1hBQUUsd0JBQXdCOzsyRkFFM0Qsc0NBQXNDO2tCQVBsRCxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDOzhCQUk1RCxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5UG9wb3Zlck1lc3NhZ2UsIFNreVBvcG92ZXJNZXNzYWdlVHlwZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcblxuaW1wb3J0IHsgQWdDb2x1bW4sIENlbGxGb2N1c2VkRXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlclZhbGlkYXRvclBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAnLFxuICBzdHlsZVVybHM6IFsnYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBTa3lQb3BvdmVyTW9kdWxlLCBTa3lTdGF0dXNJbmRpY2F0b3JNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlPy5hcGkgJiYgIXRoaXMuI2xpc3RlbmVyc0FkZGVkKSB7XG4gICAgICB0aGlzLiNsaXN0ZW5lcnNBZGRlZCA9IHRydWU7XG4gICAgICB2YWx1ZS5hcGkuYWRkRXZlbnRMaXN0ZW5lcignY2VsbEZvY3VzZWQnLCB0aGlzLiNjZWxsRm9jdXNIYW5kbGVyKTtcbiAgICAgIHZhbHVlLmFwaS5hZGRFdmVudExpc3RlbmVyKCdjZWxsRWRpdGluZ1N0YXJ0ZWQnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgICB2YWx1ZS5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy4ja2V5dXBIYW5kbGVyKTtcbiAgICAgIHZhbHVlLmVHcmlkQ2VsbD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuI2ZvY3VzSGFuZGxlcik7XG4gICAgICB2YWx1ZS5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZT8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yTWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWUuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlKFxuICAgICAgICB2YWx1ZS52YWx1ZSxcbiAgICAgICAgdmFsdWUuZGF0YSxcbiAgICAgICAgdmFsdWU/Lm5vZGU/LnJvd0luZGV4LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvck1lc3NhZ2U7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93VmFsaWRhdG9yTWVzc2FnZS5zZXQodGhpcy4jc2hvd1ZhbGlkYXRvck1lc3NhZ2UoKSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcG9wb3Zlck1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lQb3BvdmVyTWVzc2FnZT4oKTtcbiAgcHVibGljIHZhbGlkYXRvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNlbGxSZW5kZXJlclBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93VmFsaWRhdG9yTWVzc2FnZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2xpc3RlbmVyc0FkZGVkID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgI2tleXVwSGFuZGxlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIFsnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0Fycm93VXAnXS5pbmNsdWRlcyhldmVudC5rZXkpXG4gICAgKSB7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyKCk7XG4gICAgfVxuICB9O1xuICByZWFkb25seSAjZm9jdXNIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5zaG93UG9wb3ZlcigpO1xuICByZWFkb25seSAjY2VsbEZvY3VzSGFuZGxlciA9IChldmVudFBhcmFtczogQ2VsbEZvY3VzZWRFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFdlIHdhbnQgdG8gY2xvc2UgYW55IHBvcG92ZXJzIHRoYXQgYXJlIG9wZW5lZCB3aGVuIG90aGVyIGNlbGxzIGFyZSBmb2N1c2VkLCBidXQgb3BlbiBhIHBvcG92ZXIgaWYgdGhlIGN1cnJlbnQgY2VsbCBpcyBmb2N1c2VkLlxuICAgIGlmIChcbiAgICAgIChldmVudFBhcmFtcy5jb2x1bW4gYXMgQWdDb2x1bW4pLmdldENvbElkKCkgPT09XG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zPy5jb2x1bW4/LmdldENvbElkKCkgJiZcbiAgICAgIGV2ZW50UGFyYW1zLnJvd0luZGV4ID09PSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8ubm9kZT8ucm93SW5kZXhcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlUG9wb3ZlcigpO1xuICAgIH1cbiAgfTtcbiAgcmVhZG9ubHkgI2JsdXJIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5oaWRlUG9wb3ZlcigpO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcztcbiAgICBpZiAocGFyYW1zPy5hcGkgJiYgKCFwYXJhbXMuYXBpLmlzRGVzdHJveWVkIHx8ICFwYXJhbXMuYXBpLmlzRGVzdHJveWVkKCkpKSB7XG4gICAgICBwYXJhbXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NlbGxGb2N1c2VkJywgdGhpcy4jY2VsbEZvY3VzSGFuZGxlcik7XG4gICAgICBwYXJhbXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NlbGxFZGl0aW5nU3RhcnRlZCcsIHRoaXMuI2JsdXJIYW5kbGVyKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcz8uZUdyaWRDZWxsKSB7XG4gICAgICBwYXJhbXMuZUdyaWRDZWxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy4ja2V5dXBIYW5kbGVyKTtcbiAgICAgIHBhcmFtcy5lR3JpZENlbGwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuI2ZvY3VzSGFuZGxlcik7XG4gICAgICBwYXJhbXMuZUdyaWRDZWxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLiNibHVySGFuZGxlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGVQb3BvdmVyKCk6IHZvaWQge1xuICAgIHRoaXMucG9wb3Zlck1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZS5DbG9zZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jc2hvdWxkU2hvd1BvcG92ZXIoKSkge1xuICAgICAgdGhpcy5wb3BvdmVyTWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLk9wZW4gfSk7XG4gICAgfVxuICB9XG5cbiAgI3Nob3dWYWxpZGF0b3JNZXNzYWdlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy52YWxpZGF0b3JNZXNzYWdlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yID09PVxuICAgICAgJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgcmV0dXJuICF0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMudmFsdWUsXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLmRhdGEsXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLm5vZGU/LnJvd0luZGV4LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgI3Nob3VsZFNob3dQb3BvdmVyKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zaG93VmFsaWRhdG9yTWVzc2FnZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGVkaXRpbmdDZWxscyA9IHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zPy5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkgPz8gW107XG4gICAgcmV0dXJuIGVkaXRpbmdDZWxscy5sZW5ndGggPT09IDA7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGlzcGxheVZhbHVlPlxuICA8bmctY29udGVudCAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuQGlmIChzaG93VmFsaWRhdG9yTWVzc2FnZSgpKSB7XG4gIDxkaXZcbiAgICBza3lQb3BvdmVyVHJpZ2dlcj1cIm1vdXNlZW50ZXJcIlxuICAgIGNsYXNzPVwic2t5LXZhbGlkYXRvci1jZWxsXCJcbiAgICBbc2t5UG9wb3Zlcl09XCJ2YWxpZGF0b3JQb3BvdmVyXCJcbiAgICBbc2t5UG9wb3Zlck1lc3NhZ2VTdHJlYW1dPVwicG9wb3Zlck1lc3NhZ2VTdHJlYW1cIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpc3BsYXlWYWx1ZVwiIC8+XG4gICAgPHNreS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgICBkZXNjcmlwdGlvblR5cGU9XCJub25lXCJcbiAgICAgIGluZGljYXRvclR5cGU9XCJkYW5nZXJcIlxuICAgICAgY2xhc3M9XCJza3ktcHVsbC1yaWdodFwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxza3ktcG9wb3ZlclxuICAgICN2YWxpZGF0b3JQb3BvdmVyXG4gICAgZGF0YS1za3ktaWQ9XCJ2YWxpZGF0b3JQb3BvdmVyXCJcbiAgICBwb3BvdmVyVHlwZT1cImRhbmdlclwiXG4gID5cbiAgICB7eyB2YWxpZGF0b3JNZXNzYWdlIH19XG4gIDwvc2t5LXBvcG92ZXI+XG59IEBlbHNlIHtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpc3BsYXlWYWx1ZVwiIC8+XG59XG4iXX0=","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.0\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererCurrencyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-currency', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyNumericModule], template: \"{{\\n value === undefined ? undefined : (value | skyNumeric: skyComponentProperties)\\n}}\\n\" }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTy9DOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQztJQVBuRDtRQWlCUywyQkFBc0IsR0FDSSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO0tBeUIvQztJQWxDQyxJQUNXLE1BQU0sQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFTRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFxQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE1BQXFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7OEdBcENVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDRIQ25CbkQsNEZBR0EseUREY1ksZ0JBQWdCOzsyRkFFZixzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7OEJBTWhCLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TnVtZXJpY09wdGlvbnMgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lOdW1lcmljTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItY3VycmVuY3ktcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZFZhbGlkYXRvclByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy92YWxpZGF0b3ItcHJvcGVydGllcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lOdW1lcmljTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbXModmFsdWU6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKSB7XG4gICAgdGhpcy5hZ0luaXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByb3dIZWlnaHRXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5TnVtZXJpY09wdGlvbnMgJlxuICAgIFNreUFnR3JpZFZhbGlkYXRvclByb3BlcnRpZXMgPSB7fTtcbiAgcHVibGljIG51bWVyaWNPcHRpb25zOiBTa3lOdW1lcmljT3B0aW9ucyA9IHt9O1xuICBwdWJsaWMgdmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBBRyBHcmlkIG9uY2UgYWZ0ZXIgdGhlIHJlbmRlcmVyIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSByZW5kZXJlciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICovXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVByb3BlcnRpZXMocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWZyZXNoIGlzIGNhbGxlZCBieSBBRyBHcmlkIHRvIHVwZGF0ZSB0aGUgY2VsbCB3aXRob3V0IGRlc3Ryb3lpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICN1cGRhdGVQcm9wZXJ0aWVzKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5mb3JtYXQgPSAnY3VycmVuY3knO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy5taW5EaWdpdHMgPSAyO1xuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy50cnVuY2F0ZSA9IGZhbHNlO1xuICB9XG59XG4iLCJ7e1xuICB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKHZhbHVlIHwgc2t5TnVtZXJpYzogc2t5Q29tcG9uZW50UHJvcGVydGllcylcbn19XG4iXX0=","import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderer-currency.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererCurrencyValidatorComponent {\n set parameters(value) {\n this.agInit(value);\n }\n #changeDetector;\n constructor(changeDetector) {\n this.#changeDetector = changeDetector;\n }\n /**\n * agInit is called by agGrid once after the renderer is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.cellRendererParams = params;\n this.#changeDetector.markForCheck();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isNumeric(value) {\n return !isNaN(parseFloat(value));\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refresh(params) {\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", 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.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererCurrencyValidatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-currency-validator', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyAgGridCellValidatorTooltipComponent,\n SkyAgGridCellRendererCurrencyComponent,\n ], template: \"@if (cellRendererParams) {\\n <sky-ag-grid-cell-validator-tooltip [params]=\\\"cellRendererParams\\\">\\n @if (isNumeric(cellRendererParams.value)) {\\n <sky-ag-grid-cell-renderer-currency [params]=\\\"cellRendererParams\\\" />\\n } @else {\\n {{ cellRendererParams.value }}\\n }\\n </sky-ag-grid-cell-validator-tooltip>\\n}\\n\", styles: [\":host{display:contents}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { parameters: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUd2SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFNUY7O0dBRUc7QUFlSCxNQUFNLE9BQU8sK0NBQStDO0lBRzFELElBQ1csVUFBVSxDQUFDLEtBQW9DO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQXFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELFNBQVMsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxPQUFPLENBQUMsTUFBcUM7UUFDbEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWpDVSwrQ0FBK0M7a0dBQS9DLCtDQUErQyw4SUMvQjVELDZVQVNBLG1GRGtCSSxzQ0FBc0MsbUdBQ3RDLHNDQUFzQzs7MkZBRzdCLCtDQUErQztrQkFkM0QsU0FBUzsrQkFDRSw4Q0FBOEMsbUJBT3ZDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asc0NBQXNDO3dCQUN0QyxzQ0FBc0M7cUJBQ3ZDO3NGQU1VLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXBhcmFtcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgc3R5bGVzOiBgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuICBgLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJhbWV0ZXJzKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJDdXJyZW5jeVBhcmFtcykge1xuICAgIHRoaXMuYWdJbml0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsUmVuZGVyZXJQYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkIGFuZCBwcm92aWRlcyB0aGUgcmVuZGVyZXIgd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgcmVuZGVyZXIgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyQ3VycmVuY3lQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpc051bWVyaWModmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckN1cnJlbmN5UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCJAaWYgKGNlbGxSZW5kZXJlclBhcmFtcykge1xuICA8c2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCBbcGFyYW1zXT1cImNlbGxSZW5kZXJlclBhcmFtc1wiPlxuICAgIEBpZiAoaXNOdW1lcmljKGNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSkpIHtcbiAgICAgIDxza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5IFtwYXJhbXNdPVwiY2VsbFJlbmRlcmVyUGFyYW1zXCIgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIHt7IGNlbGxSZW5kZXJlclBhcmFtcy52YWx1ZSB9fVxuICAgIH1cbiAgPC9za3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwPlxufVxuIl19","import { ChangeDetectionStrategy, Component, } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererLookupComponent {\n #changeDetector;\n constructor(changeDetector) {\n this.value = '';\n this.summaryCount = 0;\n this.#changeDetector = changeDetector;\n }\n agInit(params) {\n this.summaryCount = params.value?.length || 0;\n this.value = `${params.valueFormatted}`;\n this.#changeDetector.markForCheck();\n }\n refresh(params) {\n this.agInit(params);\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", 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.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererLookupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-cell-renderer-lookup', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyI18nModule], template: \"@if (summaryCount > 5) {\\n {{ 'skyux_lookup_tokens_summary' | skyLibResources: summaryCount }}\\n} @else {\\n {{ value }}\\n}\\n\", styles: [\":host{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTTVDOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9DQUFvQztJQU0vQyxlQUFlLENBQW9CO0lBRW5DLFlBQVksY0FBaUM7UUFMbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBS3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBckJVLG9DQUFvQztrR0FBcEMsb0NBQW9DLG9GQ3JCakQsZ0lBS0EsMkhEY1ksYUFBYTs7MkZBRVosb0NBQW9DO2tCQVBoRCxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtcmVuZGVyZXItbG9va3VwLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jZWxsLXJlbmRlcmVyLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcFxue1xuICBwcm90ZWN0ZWQgdmFsdWUgPSAnJztcbiAgcHJvdGVjdGVkIHN1bW1hcnlDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuc3VtbWFyeUNvdW50ID0gcGFyYW1zLnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICB0aGlzLnZhbHVlID0gYCR7cGFyYW1zLnZhbHVlRm9ybWF0dGVkfWA7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIkBpZiAoc3VtbWFyeUNvdW50ID4gNSkge1xuICB7eyAnc2t5dXhfbG9va3VwX3Rva2Vuc19zdW1tYXJ5JyB8IHNreUxpYlJlc291cmNlczogc3VtbWFyeUNvdW50IH19XG59IEBlbHNlIHtcbiAge3sgdmFsdWUgfX1cbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, } from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { BehaviorSubject, Subscription, fromEventPattern, isObservable, } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererRowSelectorComponent {\n #labelResourceKey;\n #params;\n #resources;\n #subscription;\n constructor() {\n this.checked = new BehaviorSubject(false);\n this.disabled = new BehaviorSubject(false);\n this.label = new BehaviorSubject('');\n this.#labelResourceKey = 'sky_ag_grid_row_selector_aria_label';\n this.#resources = inject(SkyLibResourcesService);\n this.#subscription = new Subscription();\n this.#setLabel();\n }\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n /**\n * agInit is called by agGrid once after the cell is created and provides the renderer with the information it needs.\n * @param params The cell renderer params that include data about the cell, column, row, and grid.\n */\n agInit(params) {\n this.#setParameters(params);\n }\n /**\n * Used by agGrid to update cell value after a user triggers a refresh.\n * Returning true tells agGrid that the refresh was successful.\n */\n refresh(params) {\n this.#setParameters(params);\n return true;\n }\n updateRow(rowChecked) {\n this.checked.next(rowChecked);\n if (this.rowNode) {\n const rowSelected = this.rowNode.isSelected();\n if (rowSelected !== rowChecked) {\n this.rowNode.setSelected(rowChecked, undefined, 'checkboxSelected');\n }\n if (this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n }\n #setParameters(params) {\n this.#params = params;\n this.disabled.next(this.#params?.node?.selectable === false);\n this.dataField = this.#params?.colDef?.field;\n this.rowNode = this.#params?.node;\n const rowIndex = this.rowNode?.rowIndex ?? NaN;\n this.rowNumber = Number.isNaN(rowIndex) ? undefined : rowIndex + 1;\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n this.#setLabel();\n const rowSelected = !!this.#params.node?.isSelected();\n if (this.dataField) {\n this.checked.next(!!this.#params.value);\n if (rowSelected !== this.checked.value) {\n this.rowNode?.setSelected(this.checked.value);\n }\n }\n else {\n this.checked.next(rowSelected);\n }\n this.#subscription.add(fromEventPattern((handler) => this.rowNode?.addEventListener('rowSelected', handler), (handler) => this.rowNode?.removeEventListener('rowSelected', handler)).subscribe((event) => this.#rowSelectedListener(event)));\n }\n #setLabel() {\n const cellRendererParamLabel = this.#params?.colDef?.cellRendererParams?.label;\n if (this.#params?.colDef && typeof cellRendererParamLabel === 'string') {\n this.label.next(this.#params.colDef.cellRendererParams.label);\n }\n else if (this.#params?.colDef &&\n typeof cellRendererParamLabel === 'function') {\n const label = this.#params.colDef.cellRendererParams.label(this.#params.data);\n if (isObservable(label)) {\n this.#subscription.add(label.subscribe((value) => this.label.next(String(value))));\n }\n else {\n this.label.next(label);\n }\n }\n else {\n this.#subscription.add(this.#resources\n .getString(this.#labelResourceKey, this.rowNumber ?? '')\n .subscribe((value) => this.label.next(value)));\n }\n }\n #rowSelectedListener(event) {\n this.checked.next(!!event.node.isSelected());\n if (this.rowNode && this.dataField) {\n this.rowNode.data[this.dataField] = this.checked.value;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", 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 } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SkyAgGridCellRendererTemplateComponent {\n constructor() {\n this.state = {\n hasTemplate: false,\n template: undefined,\n context: { value: undefined, data: undefined },\n };\n }\n agInit(params) {\n const hasTemplate = !!(params.colDef?.cellRendererParams &&\n 'template' in params.colDef.cellRendererParams &&\n params.colDef.cellRendererParams.template);\n const template = hasTemplate\n ? params.colDef?.cellRendererParams\n .template\n : undefined;\n this.state = {\n hasTemplate,\n template,\n context: { value: params.value, row: params.data },\n };\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyAgGridCellRendererTemplateComponent, isStandalone: true, selector: \"sky-ag-grid-cell-renderer-template\", ngImport: i0, template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'sky-ag-grid-cell-renderer-template',\n template: `@if (state.hasTemplate) {\n <ng-container *ngTemplateOutlet=\"state.template; context: state.context\" />\n }`,\n imports: [NgTemplateOutlet],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBMEJ2RCxNQUFNLE9BQU8sc0NBQXNDO0lBUG5EO1FBVVksVUFBSyxHQUFjO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMvQyxDQUFDO0tBd0JIO0lBdEJRLE1BQU0sQ0FBQyxNQUEyQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0I7WUFDakMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQ1osV0FBVztZQUNULENBQUMsQ0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGtCQUFrQjtpQkFDL0IsUUFBcUQ7WUFDMUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVztZQUNYLFFBQVE7WUFDUixPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtTQUN0QyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBMkI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBOUJVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDhGQUx2Qzs7SUFFUiw0REFDUSxnQkFBZ0I7OzJGQUVmLHNDQUFzQztrQkFQbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxRQUFRLEVBQUU7O0lBRVI7b0JBQ0YsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUtY29udGV4dC50eXBlJztcblxudHlwZSBDZWxsU3RhdGUgPVxuICB8IHtcbiAgICAgIGhhc1RlbXBsYXRlOiB0cnVlO1xuICAgICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENlbGxSZW5kZXJlclRlbXBsYXRlQ29udGV4dD47XG4gICAgICBjb250ZXh0OiBDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGhhc1RlbXBsYXRlOiBmYWxzZTtcbiAgICAgIHRlbXBsYXRlOiB1bmRlZmluZWQ7XG4gICAgICBjb250ZXh0PzogdW5rbm93bjtcbiAgICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXRlbXBsYXRlJyxcbiAgdGVtcGxhdGU6IGBAaWYgKHN0YXRlLmhhc1RlbXBsYXRlKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXRlLnRlbXBsYXRlOyBjb250ZXh0OiBzdGF0ZS5jb250ZXh0XCIgLz5cbiAgfWAsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbntcbiAgcHJvdGVjdGVkIHN0YXRlOiBDZWxsU3RhdGUgPSB7XG4gICAgaGFzVGVtcGxhdGU6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiB1bmRlZmluZWQsXG4gICAgY29udGV4dDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkYXRhOiB1bmRlZmluZWQgfSxcbiAgfTtcblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IGhhc1RlbXBsYXRlID0gISEoXG4gICAgICBwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMgJiZcbiAgICAgICd0ZW1wbGF0ZScgaW4gcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMgJiZcbiAgICAgIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnRlbXBsYXRlXG4gICAgKTtcbiAgICBjb25zdCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2VsbFJlbmRlcmVyVGVtcGxhdGVDb250ZXh0PiB8IHVuZGVmaW5lZCA9XG4gICAgICBoYXNUZW1wbGF0ZVxuICAgICAgICA/IChwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXNcbiAgICAgICAgICAgIC50ZW1wbGF0ZSBhcyBUZW1wbGF0ZVJlZjxDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbnRleHQ+KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaGFzVGVtcGxhdGUsXG4gICAgICB0ZW1wbGF0ZSxcbiAgICAgIGNvbnRleHQ6IHsgdmFsdWU6IHBhcmFtcy52YWx1ZSwgcm93OiBwYXJhbXMuZGF0YSB9LFxuICAgIH0gYXMgQ2VsbFN0YXRlO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject, } from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { SkyAgGridCellValidatorTooltipComponent } from '../../cell-validator/ag-grid-cell-validator-tooltip.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAgGridCellRendererValidatorTooltipComponent {\n constructor() {\n this.valueObservable = new BehaviorSubject('');\n this.#changeDetector = inject(ChangeDetectorRef);\n }\n set params(value) {\n this.agInit(value);\n }\n #changeDetector;\n #valueSubscription;\n ngOnDestroy() {\n this.#valueSubscription?.unsubscribe();\n this.valueObservable.complete();\n }\n agInit(params) {\n this.cellRendererParams = params;\n this.#valueSubscription?.unsubscribe();\n this.#valueSubscription = new Subscription();\n if (typeof params.skyComponentProperties?.valueResourceObservable ===\n 'function') {\n this.#valueSubscription.add(params.skyComponentProperties\n .valueResourceObservable(params.value, params.data, params.node?.rowIndex)\n .subscribe((result) => {\n this.valueObservable.next(result);\n }));\n }\n else {\n this.valueObservable.next(params.valueFormatted ?? params.value);\n }\n this.#changeDetector.markForCheck();\n }\n refresh(params) {\n this.agInit(params);\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridCellRendererValidatorTooltipComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-cell-renderer-validator-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyAgGridCellValidatorTooltipComponent, AsyncPipe], template: \"<sky-ag-grid-cell-validator-tooltip [params]=\\\"cellRendererParams\\\">\\n {{ valueObservable | async }}\\n</sky-ag-grid-cell-validator-tooltip>\\n\" }]\n }], propDecorators: { params: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFHdkg7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOENBQThDO0lBTjNEO1FBaUJZLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFDdEQ7SUEvQ0MsSUFDVyxNQUFNLENBQUMsS0FBcUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBT1EsZUFBZSxDQUE2QjtJQUNyRCxrQkFBa0IsQ0FBMkI7SUFFdEMsV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXNDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLElBQ0UsT0FBTyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsdUJBQXVCO1lBQzdELFVBQVUsRUFDVixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDekIsTUFBTSxDQUFDLHNCQUFzQjtpQkFDMUIsdUJBQXVCLENBQ3RCLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FDdEI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBc0M7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBakRVLDhDQUE4QztrR0FBOUMsOENBQThDLHFJQ3pCM0QsZ0pBR0EsNENEb0JZLHNDQUFzQyw4RkFBRSxTQUFTOzsyRkFFaEQsOENBQThDO2tCQU4xRCxTQUFTOytCQUNFLDZDQUE2QyxtQkFFdEMsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHNDQUFzQyxFQUFFLFNBQVMsQ0FBQzs4QkFNakQsTUFBTTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2VsbC12YWxpZGF0b3IvYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICdjZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFnSW5pdCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyB2YWx1ZTogdW5rbm93bjtcblxuICBwcm90ZWN0ZWQgdmFsdWVPYnNlcnZhYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3ZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudmFsdWVPYnNlcnZhYmxlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWx1ZVJlc291cmNlT2JzZXJ2YWJsZSA9PT1cbiAgICAgICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgICAudmFsdWVSZXNvdXJjZU9ic2VydmFibGUoXG4gICAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgICBwYXJhbXMuZGF0YSxcbiAgICAgICAgICAgIHBhcmFtcy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlT2JzZXJ2YWJsZS5uZXh0KHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA/PyBwYXJhbXMudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHBhcmFtczogU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxza3ktYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwIFtwYXJhbXNdPVwiY2VsbFJlbmRlcmVyUGFyYW1zXCI+XG4gIHt7IHZhbHVlT2JzZXJ2YWJsZSB8IGFzeW5jIH19XG48L3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXA+XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * To display a help button beside the column group header, create a component containing\n * [`sky-help-inline`](https://developer.blackbaud.com/skyux/components/help-inline),\n * and inject SkyAgGridHeaderGroupInfo to access the column group\n * information, such as display name.\n * Add the component to the `headerGroupComponentParams.inlineHelpComponent`\n * property of the [column group definition](https://www.ag-grid.com/angular-data-grid/column-groups/).\n * @see SkyAgGridHeaderGroupParams\n */\nexport class SkyAgGridHeaderGroupInfo {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWdyb3VwLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItZ3JvdXAtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW5Hcm91cCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuLyoqXG4gKiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBjb2x1bW4gZ3JvdXAgaGVhZGVyLCBjcmVhdGUgYSBjb21wb25lbnQgY29udGFpbmluZ1xuICogW2Bza3ktaGVscC1pbmxpbmVgXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpLFxuICogYW5kIGluamVjdCBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gdG8gYWNjZXNzIHRoZSBjb2x1bW4gZ3JvdXBcbiAqIGluZm9ybWF0aW9uLCBzdWNoIGFzIGRpc3BsYXkgbmFtZS5cbiAqIEFkZCB0aGUgY29tcG9uZW50IHRvIHRoZSBgaGVhZGVyR3JvdXBDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGdyb3VwIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1ncm91cHMvKS5cbiAqIEBzZWUgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckdyb3VwSW5mbyB7XG4gIC8qKlxuICAgKiBbQ29sdW1uIGdyb3VwIGluZm9ybWF0aW9uIGZyb20gQUcgR3JpZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLW9iamVjdC1ncm91cC8pLlxuICAgKi9cbiAgcHVibGljIGNvbHVtbkdyb3VwOiBDb2x1bW5Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, ViewChild, inject, } from '@angular/core';\nimport { SkyDynamicComponentLocation, SkyDynamicComponentService, } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil, } from 'rxjs';\nimport { SkyAgGridHeaderGroupInfo } from '../types/header-group-info';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@skyux/icon\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridHeaderGroupComponent {\n #columnGroup;\n #isExpandableSubject;\n #isExpandedSubject;\n #subscriptions;\n #viewInitialized;\n #agInitialized;\n #changeDetector;\n #dynamicComponentService;\n #environmentInjector;\n constructor() {\n this.params = undefined;\n this.#columnGroup = undefined;\n this.#isExpandableSubject = new BehaviorSubject(false);\n this.#isExpandedSubject = new BehaviorSubject(false);\n this.#subscriptions = new Subscription();\n this.#viewInitialized = false;\n this.#agInitialized = false;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#environmentInjector = inject(EnvironmentInjector);\n this.isExpandable$ = this.#isExpandableSubject.asObservable();\n this.isExpanded$ = this.#isExpandedSubject.asObservable();\n }\n ngAfterViewInit() {\n this.#viewInitialized = true;\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n ngOnDestroy() {\n this.#subscriptions.unsubscribe();\n }\n agInit(params) {\n this.#agInitialized = true;\n this.params = params;\n this.#subscriptions.unsubscribe();\n if (!params) {\n return;\n }\n this.#subscriptions = new Subscription();\n this.#columnGroup = params.columnGroup.getProvidedColumnGroup();\n this.#isExpandableSubject.next(this.#columnGroup.isExpandable());\n if (this.#isExpandableSubject.getValue()) {\n this.#subscriptions.add(fromEvent(params.api, 'columnGroupOpened')\n .pipe(takeUntil(fromEvent(params.api, 'gridPreDestroyed')))\n .subscribe((event) => {\n if (this.#columnGroup &&\n event.columnGroups.includes(this.#columnGroup)) {\n this.#isExpandedSubject.next(this.#columnGroup.isExpanded());\n }\n }));\n }\n this.#updateInlineHelp();\n this.#changeDetector.markForCheck();\n }\n setExpanded($event) {\n this.params?.setExpanded($event);\n }\n #updateInlineHelp() {\n if (!this.#viewInitialized || !this.#agInitialized) {\n return;\n }\n const colGroupDef = this.params?.columnGroup?.getColGroupDef();\n const inlineHelpComponent = colGroupDef?.headerGroupComponentParams?.inlineHelpComponent;\n if (inlineHelpComponent) {\n const headerGroupInfo = new SkyAgGridHeaderGroupInfo();\n headerGroupInfo.columnGroup = this.params?.columnGroup;\n headerGroupInfo.context = this.params?.context;\n headerGroupInfo.displayName = this.params?.displayName;\n this.#dynamicComponentService.createComponent(inlineHelpComponent, {\n providers: [\n {\n provide: SkyAgGridHeaderGroupInfo,\n useValue: headerGroupInfo,\n },\n ],\n environmentInjector: this.#environmentInjector,\n referenceEl: this.inlineHelpContainer?.nativeElement,\n location: SkyDynamicComponentLocation.ElementBottom,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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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LGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQzt3REFNM0QsbUJBQW1CO3NCQUR6QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbixcbiAgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBJSGVhZGVyR3JvdXBBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDb2x1bW5Hcm91cE9wZW5lZEV2ZW50LCBQcm92aWRlZENvbHVtbkdyb3VwIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIGZyb21FdmVudCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBJbmZvIH0gZnJvbSAnLi4vdHlwZXMvaGVhZGVyLWdyb3VwLWluZm8nO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9oZWFkZXItZ3JvdXAtcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWhlYWRlci1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lUaGVtZU1vZHVsZSwgU2t5SWNvbk1vZHVsZSwgQXN5bmNQaXBlLCBTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJSGVhZGVyR3JvdXBBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ2lubGluZUhlbHBDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgaW5saW5lSGVscENvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJHcm91cFBhcmFtcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByb3RlY3RlZCBpc0V4cGFuZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAjY29sdW1uR3JvdXA6IFByb3ZpZGVkQ29sdW1uR3JvdXAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNpc0V4cGFuZGFibGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICNpc0V4cGFuZGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAjc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgI3ZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuICAjYWdJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaXNFeHBhbmRhYmxlJCA9IHRoaXMuI2lzRXhwYW5kYWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5pc0V4cGFuZGVkJCA9IHRoaXMuI2lzRXhwYW5kZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiNhZ0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKCFwYXJhbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLiNjb2x1bW5Hcm91cCA9IHBhcmFtcy5jb2x1bW5Hcm91cC5nZXRQcm92aWRlZENvbHVtbkdyb3VwKCk7XG4gICAgdGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5uZXh0KHRoaXMuI2NvbHVtbkdyb3VwLmlzRXhwYW5kYWJsZSgpKTtcbiAgICBpZiAodGhpcy4jaXNFeHBhbmRhYmxlU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50PENvbHVtbkdyb3VwT3BlbmVkRXZlbnQ+KHBhcmFtcy5hcGksICdjb2x1bW5Hcm91cE9wZW5lZCcpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLiNjb2x1bW5Hcm91cCAmJlxuICAgICAgICAgICAgICBldmVudC5jb2x1bW5Hcm91cHMuaW5jbHVkZXModGhpcy4jY29sdW1uR3JvdXApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy4jaXNFeHBhbmRlZFN1YmplY3QubmV4dCh0aGlzLiNjb2x1bW5Hcm91cC5pc0V4cGFuZGVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldEV4cGFuZGVkKCRldmVudDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zPy5zZXRFeHBhbmRlZCgkZXZlbnQpO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xHcm91cERlZiA9IHRoaXMucGFyYW1zPy5jb2x1bW5Hcm91cD8uZ2V0Q29sR3JvdXBEZWYoKTtcbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID1cbiAgICAgIGNvbEdyb3VwRGVmPy5oZWFkZXJHcm91cENvbXBvbmVudFBhcmFtcz8uaW5saW5lSGVscENvbXBvbmVudDtcblxuICAgIGlmIChpbmxpbmVIZWxwQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBoZWFkZXJHcm91cEluZm8gPSBuZXcgU2t5QWdHcmlkSGVhZGVyR3JvdXBJbmZvKCk7XG4gICAgICBoZWFkZXJHcm91cEluZm8uY29sdW1uR3JvdXAgPSB0aGlzLnBhcmFtcz8uY29sdW1uR3JvdXA7XG4gICAgICBoZWFkZXJHcm91cEluZm8uY29udGV4dCA9IHRoaXMucGFyYW1zPy5jb250ZXh0O1xuICAgICAgaGVhZGVyR3JvdXBJbmZvLmRpc3BsYXlOYW1lID0gdGhpcy5wYXJhbXM/LmRpc3BsYXlOYW1lO1xuXG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoaW5saW5lSGVscENvbXBvbmVudCwge1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8sXG4gICAgICAgICAgICB1c2VWYWx1ZTogaGVhZGVyR3JvdXBJbmZvLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLmlubGluZUhlbHBDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGxvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChwYXJhbXM/LmRpc3BsYXlOYW1lKSB7XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJoZWFkZXItZ3JvdXAtdGV4dFwiXG4gICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwieyAnc2t5LWZvbnQtaGVhZGluZy00JzogJ21vZGVybicgfVwiXG4gICAgPnt7IHBhcmFtcz8uZGlzcGxheU5hbWUgfX08L3NwYW5cbiAgPlxufVxuQGlmIChpc0V4cGFuZGFibGUkIHwgYXN5bmMpIHtcbiAgQGlmIChpc0V4cGFuZGVkJCB8IGFzeW5jKSB7XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreV9hZ19ncmlkX2NvbHVtbl9ncm91cF9oZWFkZXJfY29sbGFwc2VfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tZG91YmxlLWxlZnRcIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9IEBlbHNlIHtcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9leHBhbmRfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzZXRFeHBhbmRlZCh0cnVlKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtcmlnaHRcIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9XG59XG48c3BhbiAjaW5saW5lSGVscENvbnRhaW5lciBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+PC9zcGFuPlxuIl19","import { ChangeDetectionStrategy, Component, DestroyRef, computed, inject, model, signal, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { asyncScheduler, fromEvent, observeOn } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/forms\";\nexport class SkyAgGridHeaderRowSelectorComponent {\n constructor() {\n this.checked = model(false, ...(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.0\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridHeaderRowSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-row-selector-header', imports: [SkyCheckboxModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[attr.title]': 'label()',\n '[attr.role]': '\"note\"',\n }, template: \"@if (multiSelect()) {\\n <sky-checkbox\\n labelHidden\\n data-sky-id=\\\"header-row-selector\\\"\\n [checked]=\\\"checked()\\\"\\n [labelText]=\\\"label()\\\"\\n [indeterminate]=\\\"indeterminate()\\\"\\n (change)=\\\"toggleCheckbox($event)\\\"\\n />\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,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.0\", ngImport: i0, type: SkyAgGridHeaderInfo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderInfo }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridHeaderInfo, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbi8qKlxuICogVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uIGJlc2lkZSB0aGUgY29sdW1uIGhlYWRlciwgY3JlYXRlIGEgY29tcG9uZW50IGNvbnRhaW5pbmdcbiAqIFtgc2t5LWhlbHAtaW5saW5lYF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSxcbiAqIGFuZCBpbmplY3QgU2t5QWdHcmlkSGVhZGVySW5mbyB0byBhY2Nlc3MgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiwgc3VjaFxuICogYXMgZGlzcGxheSBuYW1lLlxuICogQWRkIHRoZSBjb21wb25lbnQgdG8gdGhlIGBoZWFkZXJDb21wb25lbnRQYXJhbXMuaW5saW5lSGVscENvbXBvbmVudGBcbiAqIHByb3BlcnR5IG9mIHRoZSBbY29sdW1uIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1kZWZpbml0aW9ucy8pLlxuICogQHNlZSBTa3lBZ0dyaWRIZWFkZXJQYXJhbXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckluZm8ge1xuICAvKipcbiAgICogW0NvbHVtbiBpbmZvcm1hdGlvbiBmcm9tIEFHIEdyaWRdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1vYmplY3QvKS5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW46IENvbHVtbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBBRyBHcmlkJ3MgW2Bjb250ZXh0YCBmaWVsZF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29udGV4dC8pLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGNvbnRleHQ6IGFueTtcbn1cbiJdfQ==","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, ViewChild, computed, inject, signal, } from '@angular/core';\nimport { SkyDynamicComponentLocation, SkyDynamicComponentService, } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { BehaviorSubject, Subscription, fromEvent, takeUntil } from 'rxjs';\nimport { SkyAgGridHeaderInfo } from '../types/header-info';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/icon\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAgGridHeaderComponent {\n constructor() {\n this.filterEnabled$ = new BehaviorSubject(false);\n // For accessibility, we need to set the title attribute on the header element if there is no visible header text.\n // https://dequeuniversity.com/rules/axe/4.5/empty-table-header?application=axeAPI\n this.accessibleHeaderText = computed(() => {\n const params = this.params();\n if (params?.displayName &&\n !params?.column.getColDef().headerComponentParams?.headerHidden) {\n return undefined;\n }\n else {\n return params?.displayName || params?.column.getColDef().field;\n }\n }, ...(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.0\", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", 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.0\", 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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OHZFRHhDWSxhQUFhLHFJQUFFLGNBQWMsbUlBQWEsYUFBYSwwQkFBeEIsU0FBUzs7MkZBRXZDLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixjQUFjLEVBQUUsd0JBQXdCO3dCQUN4QyxtQkFBbUIsRUFBRSx5Q0FBeUM7d0JBQzlELGFBQWEsRUFBRSxRQUFRO3FCQUN4QixXQUNRLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDOzhCQXNCeEQsbUJBQW1CO3NCQUQ1QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IElIZWFkZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDb2x1bW5Nb3ZlZEV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckluZm8gfSBmcm9tICcuLi90eXBlcy9oZWFkZXItaW5mbyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9oZWFkZXItcGFyYW1zJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci50aXRsZV0nOiAnYWNjZXNzaWJsZUhlYWRlclRleHQoKScsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2Rpc3BsYXlOYW1lKCkgfHwgYWNjZXNzaWJsZUhlYWRlclRleHQoKScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibm90ZVwiJyxcbiAgfSxcbiAgaW1wb3J0czogW1NreUljb25Nb2R1bGUsIFNreVRoZW1lTW9kdWxlLCBBc3luY1BpcGUsIFNreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyRW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBGb3IgYWNjZXNzaWJpbGl0eSwgd2UgbmVlZCB0byBzZXQgdGhlIHRpdGxlIGF0dHJpYnV0ZSBvbiB0aGUgaGVhZGVyIGVsZW1lbnQgaWYgdGhlcmUgaXMgbm8gdmlzaWJsZSBoZWFkZXIgdGV4dC5cbiAgLy8gaHR0cHM6Ly9kZXF1ZXVuaXZlcnNpdHkuY29tL3J1bGVzL2F4ZS80LjUvZW1wdHktdGFibGUtaGVhZGVyP2FwcGxpY2F0aW9uPWF4ZUFQSVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWNjZXNzaWJsZUhlYWRlclRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5wYXJhbXMoKTtcbiAgICBpZiAoXG4gICAgICBwYXJhbXM/LmRpc3BsYXlOYW1lICYmXG4gICAgICAhcGFyYW1zPy5jb2x1bW4uZ2V0Q29sRGVmKCkuaGVhZGVyQ29tcG9uZW50UGFyYW1zPy5oZWFkZXJIaWRkZW5cbiAgICApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJhbXM/LmRpc3BsYXlOYW1lIHx8IHBhcmFtcz8uY29sdW1uLmdldENvbERlZigpLmZpZWxkO1xuICAgIH1cbiAgfSk7XG5cbiAgQFZpZXdDaGlsZCgnaW5saW5lSGVscENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBpbmxpbmVIZWxwQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYXJhbXMgPSBzaWduYWw8U2t5QWdHcmlkSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWQsXG4gICk7XG4gIHByb3RlY3RlZCBzb3J0ZWQgPSAnJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNvcnRPcmRlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgICdhc2MnIHwgJ2Rlc2MnIHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNvcnRJbmRleERpc3BsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwcm90ZWN0ZWQgZGlzcGxheU5hbWUgPSBjb21wdXRlZDxzdHJpbmcgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcygpO1xuICAgIGlmIChcbiAgICAgIHBhcmFtcz8uZGlzcGxheU5hbWUgJiZcbiAgICAgICFwYXJhbXM/LmNvbHVtbi5nZXRDb2xEZWYoKS5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmhlYWRlckhpZGRlblxuICAgICkge1xuICAgICAgcmV0dXJuIHBhcmFtcy5kaXNwbGF5TmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH0pO1xuXG4gICNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAjaW5saW5lSGVscENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAjdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNhZ0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNsZWZ0UG9zaXRpb24gPSAwO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jdmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLiN1cGRhdGVJbmxpbmVIZWxwKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuI2FnSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMucGFyYW1zLnNldChwYXJhbXMpO1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLiNsZWZ0UG9zaXRpb24gPSBwYXJhbXMuY29sdW1uLmdldExlZnQoKSA/PyAwO1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgaWYgKHBhcmFtcy5jb2x1bW4uaXNGaWx0ZXJBbGxvd2VkKCkpIHtcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnQocGFyYW1zLmNvbHVtbiwgJ2ZpbHRlckNoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0ZpbHRlckFjdGl2ZSA9IHBhcmFtcy5jb2x1bW4uaXNGaWx0ZXJBY3RpdmUoKTtcbiAgICAgICAgICAgIGlmIChpc0ZpbHRlckFjdGl2ZSAhPT0gdGhpcy5maWx0ZXJFbmFibGVkJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyRW5hYmxlZCQubmV4dChpc0ZpbHRlckFjdGl2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgIC8vIENvbHVtbiBzb3J0IHN0YXRlIGNoYW5nZXNcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnQocGFyYW1zLmNvbHVtbiwgJ3NvcnRDaGFuZ2VkJylcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KHBhcmFtcy5hcGksICdncmlkUHJlRGVzdHJveWVkJykpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlU29ydCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIC8vIE90aGVyIGNvbHVtbiBzb3J0IHN0YXRlIGNoYW5nZXMsIGZvciBtdWx0aS1jb2x1bW4gc29ydGluZ1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudChwYXJhbXMuYXBpLCAnc29ydENoYW5nZWQnKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChmcm9tRXZlbnQocGFyYW1zLmFwaSwgJ2dyaWRQcmVEZXN0cm95ZWQnKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0SW5kZXgoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICB0aGlzLiN1cGRhdGVTb3J0SW5kZXgoKTtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZSBjb2x1bW4gaXMgbW92ZWQgbGVmdCB2aWEgdGhlIGtleWJvYXJkLCB0aGUgZWxlbWVudCBpcyBkZXRhY2hlZFxuICAgIC8vIGFuZCByZWF0dGFjaGVkIHRvIHRoZSBET00gdG8gbWFpbnRhaW4gRE9NIG9yZGVyLCBhbmQgaXRzIGZvY3VzIGlzIGxvc3QuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQ8Q29sdW1uTW92ZWRFdmVudD4ocGFyYW1zLmFwaSwgJ2NvbHVtbk1vdmVkJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKGZyb21FdmVudChwYXJhbXMuYXBpLCAnZ3JpZFByZURlc3Ryb3llZCcpKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gZXZlbnQuY29sdW1uPy5nZXRMZWZ0KCkgPz8gMDtcbiAgICAgICAgICBjb25zdCBvbGRMZWZ0ID0gdGhpcy4jbGVmdFBvc2l0aW9uO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LmNvbHVtbiA9PT0gcGFyYW1zLmNvbHVtbiAmJlxuICAgICAgICAgICAgZXZlbnQuc291cmNlID09PSAndWlDb2x1bW5Nb3ZlZCcgJiZcbiAgICAgICAgICAgIGxlZnQgPCBvbGRMZWZ0XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwYXJhbXMuZUdyaWRIZWFkZXIuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy4jbGVmdFBvc2l0aW9uID0gbGVmdDtcbiAgICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVDbGljaygkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMoKT8uc2hvd0NvbHVtbk1lbnUoJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgb25Tb3J0UmVxdWVzdGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zKCk/LmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgIHRoaXMucGFyYW1zKCk/LnByb2dyZXNzU29ydChldmVudC5zaGlmdEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICN1cGRhdGVJbmxpbmVIZWxwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdmlld0luaXRpYWxpemVkIHx8ICF0aGlzLiNhZ0luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5saW5lSGVscENvbXBvbmVudCA9IHRoaXMucGFyYW1zKCk/LmlubGluZUhlbHBDb21wb25lbnQ7XG5cbiAgICBpZiAoXG4gICAgICBpbmxpbmVIZWxwQ29tcG9uZW50ICYmXG4gICAgICAoIXRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYgfHxcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZi5jb21wb25lbnRUeXBlICE9PSBpbmxpbmVIZWxwQ29tcG9uZW50KVxuICAgICkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGVhZGVySW5mbyA9IG5ldyBTa3lBZ0dyaWRIZWFkZXJJbmZvKCk7XG4gICAgICBoZWFkZXJJbmZvLmNvbHVtbiA9IHRoaXMucGFyYW1zKCk/LmNvbHVtbjtcbiAgICAgIGhlYWRlckluZm8uY29udGV4dCA9IHRoaXMucGFyYW1zKCk/LmNvbnRleHQ7XG4gICAgICBoZWFkZXJJbmZvLmRpc3BsYXlOYW1lID0gdGhpcy5wYXJhbXMoKT8uZGlzcGxheU5hbWU7XG5cbiAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYgPVxuICAgICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoaW5saW5lSGVscENvbXBvbmVudCwge1xuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm92aWRlOiBTa3lBZ0dyaWRIZWFkZXJJbmZvLFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogaGVhZGVySW5mbyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLiNlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLmlubGluZUhlbHBDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50Qm90dG9tLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFpbmxpbmVIZWxwQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoXG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuc29ydE9yZGVyJC5uZXh0KHRoaXMucGFyYW1zKCk/LmNvbHVtbi5nZXRTb3J0KCkgfHwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gICN1cGRhdGVTb3J0SW5kZXgoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydEluZGV4ID0gdGhpcy5wYXJhbXMoKT8uY29sdW1uLmdldFNvcnRJbmRleCgpO1xuICAgIGNvbnN0IG90aGVyU29ydENvbHVtbnMgPSB0aGlzLnBhcmFtcygpXG4gICAgICA/LmFwaT8uZ2V0Q29sdW1ucygpXG4gICAgICA/LnNvbWUoXG4gICAgICAgIChjb2x1bW4pID0+XG4gICAgICAgICAgY29sdW1uLmdldENvbElkKCkgIT09IHRoaXMucGFyYW1zKCk/LmNvbHVtbi5nZXRDb2xJZCgpICYmXG4gICAgICAgICAgISFjb2x1bW4uZ2V0U29ydCgpLFxuICAgICAgKTtcbiAgICBpZiAoc29ydEluZGV4ICE9PSB1bmRlZmluZWQgJiYgc29ydEluZGV4ICE9PSBudWxsICYmIG90aGVyU29ydENvbHVtbnMpIHtcbiAgICAgIHRoaXMuc29ydEluZGV4RGlzcGxheSQubmV4dChgJHtzb3J0SW5kZXggKyAxfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnRJbmRleERpc3BsYXkkLm5leHQoJycpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFnLWNlbGwtbGFiZWwtY29udGFpbmVyXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICBAaWYgKHBhcmFtcygpPy5lbmFibGVNZW51KSB7XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNlbGwtbWVudS1idXR0b25cIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJvbk1lbnVDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJtb3JlLWFjdGlvbnNcIiAvPlxuICAgIDwvc3Bhbj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtbGFiZWxcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbC1hbmQtaWNvbnNcIj5cbiAgICAgIEBpZiAocGFyYW1zKCk/LmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC10ZXh0IGFnLWhlYWRlci1jZWxsLWxhYmVsLXNvcnRhYmxlIHNreS1idG4tbGluay1pbmxpbmVcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWNjZXNzaWJsZUhlYWRlclRleHQoKVwiXG4gICAgICAgICAgW2lubmVyVGV4dF09XCJkaXNwbGF5TmFtZSgpID8/ICcnXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktZm9udC1oZWFkaW5nLTQnOiAnbW9kZXJuJyB9XCJcbiAgICAgICAgICAoY2xpY2spPVwib25Tb3J0UmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICB9IEBlbHNlIGlmIChkaXNwbGF5TmFtZSgpKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHRcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cInsgJ3NreS1mb250LWhlYWRpbmctNCc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgID57eyBkaXNwbGF5TmFtZSgpIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIH1cbiAgICAgIEBpZiAoZmlsdGVyRW5hYmxlZCQgfCBhc3luYykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvbiBhZy1maWx0ZXItaWNvblwiXG4gICAgICAgICAgPjxza3ktaWNvbiBpY29uTmFtZT1cImZpbHRlclwiXG4gICAgICAgIC8+PC9zcGFuPlxuICAgICAgfVxuICAgICAgQGlmIChwYXJhbXMoKT8uZW5hYmxlU29ydGluZykge1xuICAgICAgICBAaWYgKHNvcnRPcmRlciQgfCBhc3luYzsgYXMgc29ydERpcmVjdGlvbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWctc29ydC1pbmRpY2F0b3ItY29udGFpbmVyIHNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3NcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Tb3J0UmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoc29ydERpcmVjdGlvbiA9PT0gJ2Rlc2MnKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb25cIj5cbiAgICAgICAgICAgICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2l6ZT1cInNcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9kZXNjJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGlzcGxheU5hbWUoKSA/PyBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImNoZXZyb24tdXBcIiBpY29uU2l6ZT1cInNcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9hc2MnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkaXNwbGF5TmFtZSgpID8/IGFjY2Vzc2libGVIZWFkZXJUZXh0KClcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj48L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKHNvcnRJbmRleERpc3BsYXkkIHwgYXN5bmM7IGFzIHNvcnRJbmRleERpc3BsYXkpIHtcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctc29ydC1pbmRpY2F0b3ItaWNvbiBhZy1zb3J0LW9yZGVyXCJcbiAgICAgICAgICAgICAgICA+e3sgc29ydEluZGV4RGlzcGxheSB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAnc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9ub3Rfc29ydGVkJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGlzcGxheU5hbWUoKSA/PyBhY2Nlc3NpYmxlSGVhZGVyVGV4dCgpXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gI2lubGluZUhlbHBDb250YWluZXIgY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","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.0\", ngImport: i0, type: SkyAgGridLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridLoadingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-ag-grid-loading', imports: [SkyWaitModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<sky-wait [isWaiting]=\\\"true\\\" />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixNQUFNLENBQUMsT0FBOEI7UUFDMUMsY0FBYztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQThCO1FBQzNDLGNBQWM7SUFDaEIsQ0FBQzs4R0FQVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrRUNadEMscUNBQ0EsMkNET1ksYUFBYTs7MkZBSVoseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixXQUN0QixDQUFDLGFBQWEsQ0FBQyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5V2FpdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUxvYWRpbmdPdmVybGF5UGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1sb2FkaW5nJyxcbiAgaW1wb3J0czogW1NreVdhaXRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgSUxvYWRpbmdPdmVybGF5QW5ndWxhckNvbXAge1xuICBwdWJsaWMgYWdJbml0KF9wYXJhbXM6IElMb2FkaW5nT3ZlcmxheVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuXG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChfcGFyYW1zOiBJTG9hZGluZ092ZXJsYXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG59XG4iLCI8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJ0cnVlXCIgLz5cbiJdfQ==","/**\n * @internal\n */\nexport var SkyCellClass;\n(function (SkyCellClass) {\n SkyCellClass[\"Autocomplete\"] = \"sky-ag-grid-cell-autocomplete\";\n SkyCellClass[\"Currency\"] = \"sky-ag-grid-cell-currency\";\n SkyCellClass[\"Date\"] = \"sky-ag-grid-cell-date\";\n SkyCellClass[\"Editable\"] = \"sky-ag-grid-cell-editable\";\n SkyCellClass[\"Invalid\"] = \"sky-ag-grid-cell-invalid\";\n SkyCellClass[\"Lookup\"] = \"sky-ag-grid-cell-lookup\";\n SkyCellClass[\"Number\"] = \"sky-ag-grid-cell-number\";\n SkyCellClass[\"RightAligned\"] = \"sky-ag-grid-cell-right-aligned\";\n SkyCellClass[\"RowSelector\"] = \"sky-ag-grid-cell-row-selector\";\n SkyCellClass[\"Template\"] = \"sky-ag-grid-cell-template\";\n SkyCellClass[\"Text\"] = \"sky-ag-grid-cell-text\";\n SkyCellClass[\"Uneditable\"] = \"sky-ag-grid-cell-uneditable\";\n SkyCellClass[\"Validator\"] = \"sky-ag-grid-cell-validator\";\n})(SkyCellClass || (SkyCellClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxZQWNYO0FBZEQsV0FBWSxZQUFZO0lBQ3RCLDhEQUE4QyxDQUFBO0lBQzlDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLHNEQUFzQyxDQUFBO0lBQ3RDLG9EQUFvQyxDQUFBO0lBQ3BDLGtEQUFrQyxDQUFBO0lBQ2xDLGtEQUFrQyxDQUFBO0lBQ2xDLCtEQUErQyxDQUFBO0lBQy9DLDZEQUE2QyxDQUFBO0lBQzdDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLDBEQUEwQyxDQUFBO0lBQzFDLHdEQUF3QyxDQUFBO0FBQzFDLENBQUMsRUFkVyxZQUFZLEtBQVosWUFBWSxRQWN2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxDbGFzcyB7XG4gIEF1dG9jb21wbGV0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWF1dG9jb21wbGV0ZScsXG4gIEN1cnJlbmN5ID0gJ3NreS1hZy1ncmlkLWNlbGwtY3VycmVuY3knLFxuICBEYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtZGF0ZScsXG4gIEVkaXRhYmxlID0gJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGFibGUnLFxuICBJbnZhbGlkID0gJ3NreS1hZy1ncmlkLWNlbGwtaW52YWxpZCcsXG4gIExvb2t1cCA9ICdza3ktYWctZ3JpZC1jZWxsLWxvb2t1cCcsXG4gIE51bWJlciA9ICdza3ktYWctZ3JpZC1jZWxsLW51bWJlcicsXG4gIFJpZ2h0QWxpZ25lZCA9ICdza3ktYWctZ3JpZC1jZWxsLXJpZ2h0LWFsaWduZWQnLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRlbXBsYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtdGVtcGxhdGUnLFxuICBUZXh0ID0gJ3NreS1hZy1ncmlkLWNlbGwtdGV4dCcsXG4gIFVuZWRpdGFibGUgPSAnc2t5LWFnLWdyaWQtY2VsbC11bmVkaXRhYmxlJyxcbiAgVmFsaWRhdG9yID0gJ3NreS1hZy1ncmlkLWNlbGwtdmFsaWRhdG9yJyxcbn1cbiJdfQ==","/**\n * @internal\n */\nexport var SkyHeaderClass;\n(function (SkyHeaderClass) {\n SkyHeaderClass[\"Resizable\"] = \"sky-ag-grid-header-resizable\";\n SkyHeaderClass[\"RightAligned\"] = \"sky-ag-grid-header-right-aligned\";\n})(SkyHeaderClass || (SkyHeaderClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4Qiw0REFBMEMsQ0FBQTtJQUMxQyxtRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZW51bSBTa3lIZWFkZXJDbGFzcyB7XG4gIFJlc2l6YWJsZSA9ICdza3ktYWctZ3JpZC1oZWFkZXItcmVzaXphYmxlJyxcbiAgUmlnaHRBbGlnbmVkID0gJ3NreS1hZy1ncmlkLWhlYWRlci1yaWdodC1hbGlnbmVkJyxcbn1cbiJdfQ==","import { CSP_NONCE, Injectable, Optional, inject, } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyDateService } from '@skyux/datetime';\nimport { Subject, takeUntil } from 'rxjs';\nimport { getSkyAgGridTheme } from '../../styles/ag-grid-theme';\nimport { applySkyLookupPropertiesDefaults } from './apply-lookup-properties-defaults';\nimport { SkyAgGridCellEditorAutocompleteComponent } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nimport { SkyAgGridCellEditorCurrencyComponent } from './cell-editors/cell-editor-currency/cell-editor-currency.component';\nimport { SkyAgGridCellEditorDatepickerComponent } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nimport { SkyAgGridCellEditorLookupComponent } from './cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nimport { SkyAgGridCellEditorNumberComponent } from './cell-editors/cell-editor-number/cell-editor-number.component';\nimport { SkyAgGridCellEditorTextComponent } from './cell-editors/cell-editor-text/cell-editor-text.component';\nimport { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nimport { SkyAgGridCellRendererCurrencyComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nimport { SkyAgGridCellRendererLookupComponent } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nimport { SkyAgGridCellRendererRowSelectorComponent } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nimport { SkyAgGridCellRendererTemplateComponent } from './cell-renderers/cell-renderer-template/cell-renderer-template.component';\nimport { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nimport { SkyAgGridHeaderGroupComponent } from './header/header-group.component';\nimport { SkyAgGridHeaderRowSelectorComponent } from './header/header-row-selector/header-row-selector.component';\nimport { SkyAgGridHeaderComponent } from './header/header.component';\nimport { iconMap } from './icons/icon-map';\nimport { SkyAgGridLoadingComponent } from './loading/loading.component';\nimport { SkyCellClass } from './types/cell-class';\nimport { SkyCellType } from './types/cell-type';\nimport { SkyHeaderClass } from './types/header-class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./ag-grid-adapter.service\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"@skyux/i18n\";\nfunction autocompleteComparator(value1, value2) {\n if (value1 && value2) {\n if (value1.name > value2.name) {\n return 1;\n }\n if (value1.name < value2.name) {\n return -1;\n }\n return 0;\n }\n return value1 ? 1 : -1;\n}\nfunction autocompleteFormatter(params) {\n return params.value && params.value.name;\n}\nfunction dateComparator(date1, date2) {\n let date1value = date1;\n let date2value = date2;\n if (typeof date1value === 'string') {\n date1value = new Date(date1);\n }\n if (typeof date2value === 'string') {\n date2value = new Date(date2);\n }\n if (date1value && date2value) {\n if (date1value > date2value) {\n return 1;\n }\n if (date1value < date2value) {\n return -1;\n }\n return 0;\n }\n return date1value ? 1 : -1;\n}\nfunction getValidatorCellRendererSelector(component, fallback) {\n return (params) => {\n if (params.colDef &&\n typeof params.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function') {\n if (params.column?.isCellEditable(params.node) ||\n !params.colDef.cellRendererParams.skyComponentProperties.validator(params.value, params.data, params?.node?.rowIndex)) {\n return {\n component,\n params: {\n ...params.colDef.cellRendererParams,\n },\n };\n }\n }\n return fallback;\n };\n}\nlet rowNodeId = -1;\n/**\n * `SkyAgGridService` provides methods to get AG Grid `gridOptions` to ensure grids match SKY UX functionality. The `gridOptions` can be overridden, and include registered SKY UX column types.\n */\nexport class SkyAgGridService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #keyMap = new WeakMap();\n #ngUnsubscribe = new Subject();\n #currentTheme = undefined;\n #agGridAdapterService;\n #resources;\n #dateService = inject(SkyDateService);\n #logService = inject(SkyLogService);\n #cspNonce = inject(CSP_NONCE, { optional: true });\n constructor(agGridAdapterService, themeSvc, resources) {\n this.#agGridAdapterService = agGridAdapterService;\n this.#resources = resources;\n /*istanbul ignore else*/\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#currentTheme = settingsChange.currentSettings;\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell renderers registered for read-only grids.\n * @param args\n * @returns\n */\n getGridOptions(args) {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(defaultGridOptions, args.gridOptions);\n return mergedGridOptions;\n }\n /**\n * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell editors registered for editable grids.\n * @param args\n * @returns\n */\n getEditableGridOptions(args) {\n const defaultGridOptions = this.#getDefaultEditableGridOptions(args);\n const mergedGridOptions = this.#mergeGridOptions(defaultGridOptions, args.gridOptions);\n return mergedGridOptions;\n }\n #mergeGridOptions(defaultGridOptions, providedGridOptions) {\n if ('enableRangeSelection' in providedGridOptions) {\n if (providedGridOptions.enableRangeSelection) {\n providedGridOptions.cellSelection = true;\n }\n delete providedGridOptions.enableRangeSelection;\n }\n if (providedGridOptions.rowSelection === 'single' ||\n providedGridOptions.rowSelection === 'multiple') {\n const rowSelectionOptions = {\n single: { mode: 'singleRow', checkboxes: false },\n multiple: { mode: 'multiRow', checkboxes: false },\n };\n providedGridOptions.rowSelection =\n rowSelectionOptions[providedGridOptions.rowSelection];\n }\n if (providedGridOptions.rowSelection?.mode) {\n providedGridOptions.rowSelection = {\n ...(defaultGridOptions.rowSelection ?? {\n checkboxes: false,\n }),\n ...providedGridOptions.rowSelection,\n };\n }\n if ('enableCellChangeFlash' in providedGridOptions) {\n providedGridOptions.defaultColDef ??= {};\n providedGridOptions.defaultColDef.enableCellChangeFlash ??=\n !!providedGridOptions.enableCellChangeFlash;\n delete providedGridOptions.enableCellChangeFlash;\n }\n const mergedGridOptions = {\n ...defaultGridOptions,\n ...providedGridOptions,\n components: {\n ...providedGridOptions.components,\n // Apply default components last to prevent consumers from overwriting our component types.\n ...defaultGridOptions.components,\n },\n context: {\n ...defaultGridOptions.context,\n ...providedGridOptions.context,\n },\n columnTypes: {\n ...providedGridOptions.columnTypes,\n // apply default second to prevent consumers from overwriting our default column types\n ...defaultGridOptions.columnTypes,\n },\n defaultColDef: {\n ...defaultGridOptions.defaultColDef,\n ...providedGridOptions.defaultColDef,\n // allow consumers to override all defaultColDef properties except cellClassRules, which we reserve for styling\n cellClassRules: defaultGridOptions.defaultColDef?.cellClassRules,\n headerClass: defaultGridOptions.defaultColDef?.headerClass,\n },\n defaultColGroupDef: {\n ...defaultGridOptions.defaultColGroupDef,\n ...providedGridOptions.defaultColGroupDef,\n headerClass: defaultGridOptions.defaultColGroupDef?.headerClass,\n },\n getRowClass: (params) => {\n const defaultClasses = defaultGridOptions.getRowClass(params);\n const providedClasses = providedGridOptions.getRowClass?.(params) ?? [];\n const providedClassesArray = Array.isArray(providedClasses)\n ? providedClasses\n : [providedClasses];\n return [...defaultClasses, ...providedClassesArray];\n },\n onCellFocused: (event) => {\n defaultGridOptions.onCellFocused?.(event);\n providedGridOptions.onCellFocused?.(event);\n },\n };\n // Enable text selection unless explicitly disabled or conflicting with another setting.\n if (mergedGridOptions.enableCellTextSelection ||\n (!('enableCellTextSelection' in mergedGridOptions) &&\n !mergedGridOptions.cellSelection &&\n !mergedGridOptions.columnDefs?.some((col) => col.editable))) {\n mergedGridOptions.context ||= {};\n mergedGridOptions.enableCellTextSelection ??= true;\n mergedGridOptions.context.enableCellTextSelection =\n mergedGridOptions.enableCellTextSelection;\n }\n return mergedGridOptions;\n }\n #getDefaultGridOptions(args) {\n // cellClassRules can be functions or string expressions\n const cellClassRuleTrueExpression = () => true;\n function getEditableFn(isUneditable) {\n return function (params) {\n let isEditable = params.colDef.editable;\n if (typeof isEditable === 'function') {\n const column = params.api.getColumn(params.colDef);\n isEditable = isEditable({\n ...params,\n column,\n });\n }\n return isUneditable ? !isEditable : !!isEditable;\n };\n }\n const editableCellClassRules = {\n [SkyCellClass.Editable]: getEditableFn(),\n [SkyCellClass.Uneditable]: getEditableFn(true),\n };\n function getValidatorFn() {\n return function (param) {\n if (param.colDef &&\n typeof param.colDef.cellRendererParams?.skyComponentProperties\n ?.validator === 'function') {\n return !param.colDef.cellRendererParams.skyComponentProperties.validator(param.value, param.data, param.node?.rowIndex);\n }\n return false;\n };\n }\n const validatorCellClassRules = {\n [SkyCellClass.Invalid]: getValidatorFn(),\n [SkyCellClass.Validator]: cellClassRuleTrueExpression,\n };\n function getHeaderClass(...classNames) {\n return (params) => {\n // istanbul ignore next\n const minWidth = params.column?.getMinWidth() ?? 0;\n // istanbul ignore next\n const maxWidth = params.column?.getMaxWidth() ?? Infinity;\n if ((params.columnGroup?.isResizable() || params.column?.isResizable()) &&\n minWidth < maxWidth) {\n return [...classNames, SkyHeaderClass.Resizable];\n }\n return classNames;\n };\n }\n const defaultSkyGridOptions = {\n columnTypes: {\n [SkyCellType.Autocomplete]: {\n cellClassRules: {\n [SkyCellClass.Autocomplete]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorAutocompleteComponent,\n valueFormatter: autocompleteFormatter,\n comparator: autocompleteComparator,\n minWidth: 185,\n },\n [SkyCellType.Currency]: {\n cellClassRules: {\n [SkyCellClass.Currency]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-currency-validator', { component: 'sky-ag-grid-cell-renderer-currency' }),\n cellEditor: SkyAgGridCellEditorCurrencyComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n minWidth: 185,\n sortingOrder: [null, 'desc', 'asc'],\n suppressKeyboardEvent: (params) => this.#suppressEnter(params) || this.#suppressTab(params),\n },\n [SkyCellType.Date]: {\n cellClassRules: {\n [SkyCellClass.Date]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorDatepickerComponent,\n comparator: dateComparator,\n minWidth: this.#currentTheme?.theme?.name === 'modern' ? 180 : 160,\n valueFormatter: (params) => {\n try {\n return (this.#dateService.format(params.value, args.locale, args.dateFormat || 'shortDate') || '');\n }\n catch (err) {\n /* istanbul ignore else */\n if (err.stack) {\n this.#logService.error(`${err.stack}`);\n }\n else {\n this.#logService.error(`${err}`);\n }\n return '';\n }\n },\n },\n [SkyCellType.Lookup]: {\n cellClassRules: {\n [SkyCellClass.Lookup]: cellClassRuleTrueExpression,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorLookupComponent,\n cellRenderer: SkyAgGridCellRendererLookupComponent,\n valueFormatter: (params) => {\n const lookupProperties = applySkyLookupPropertiesDefaults(params.colDef?.cellRendererParams?.skyComponentProperties ??\n params.colDef?.cellEditorParams?.skyComponentProperties ??\n {});\n return (params.value || [])\n .map((value) => {\n return value[lookupProperties.descriptorProperty];\n })\n .filter((value) => value !== '' && value !== undefined)\n .join('; ');\n },\n minWidth: 185,\n },\n [SkyCellType.Number]: {\n cellClassRules: {\n [SkyCellClass.Number]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n cellEditor: SkyAgGridCellEditorNumberComponent,\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n sortingOrder: [null, 'desc', 'asc'],\n },\n [SkyCellType.RightAligned]: {\n cellClassRules: {\n [SkyCellClass.RightAligned]: cellClassRuleTrueExpression,\n },\n headerClass: getHeaderClass(SkyHeaderClass.RightAligned),\n },\n [SkyCellType.RowSelector]: {\n cellClassRules: {\n [SkyCellClass.RowSelector]: cellClassRuleTrueExpression,\n [SkyCellClass.Uneditable]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererRowSelectorComponent,\n headerComponent: SkyAgGridHeaderRowSelectorComponent,\n headerName: 'Row selection',\n minWidth: 55,\n maxWidth: 55,\n resizable: false,\n sortable: false,\n width: 55,\n },\n [SkyCellType.Template]: {\n cellClassRules: {\n [SkyCellClass.Template]: cellClassRuleTrueExpression,\n },\n cellRenderer: SkyAgGridCellRendererTemplateComponent,\n cellEditor: SkyAgGridCellRendererTemplateComponent,\n },\n [SkyCellType.Text]: {\n cellClassRules: {\n [SkyCellClass.Text]: cellClassRuleTrueExpression,\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellEditor: SkyAgGridCellEditorTextComponent,\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n },\n [SkyCellType.Validator]: {\n cellClassRules: {\n ...validatorCellClassRules,\n ...editableCellClassRules,\n },\n cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),\n },\n },\n defaultColDef: {\n cellClassRules: editableCellClassRules,\n headerClass: getHeaderClass(),\n headerComponent: SkyAgGridHeaderComponent,\n minWidth: 100,\n suppressHeaderKeyboardEvent: (keypress) => keypress.event.code === 'Tab',\n suppressKeyboardEvent: (keypress) => this.#suppressTab(keypress),\n },\n defaultColGroupDef: {\n headerGroupComponent: SkyAgGridHeaderGroupComponent,\n },\n domLayout: 'autoHeight',\n ensureDomOrder: true,\n components: {\n 'sky-ag-grid-cell-renderer-currency': SkyAgGridCellRendererCurrencyComponent,\n 'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,\n 'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent,\n },\n focusGridInnerElement: (params) => {\n const lastFocusedCell = params.context?.['lastFocusedCell'];\n if (lastFocusedCell) {\n if (lastFocusedCell.rowIndex !== null) {\n params.api.setFocusedCell(lastFocusedCell.rowIndex, lastFocusedCell.column);\n }\n else {\n params.api.setFocusedHeader(lastFocusedCell.column);\n }\n return true;\n }\n return false;\n },\n getRowId: (params) => {\n const dataId = params.data.id;\n if (dataId !== undefined) {\n return `${params.data.id}`;\n }\n if (!this.#keyMap.has(params.data)) {\n this.#keyMap.set(params.data, `${rowNodeId--}`);\n }\n return this.#keyMap.get(params.data);\n },\n getRowClass: (params) => {\n if (params.node.id) {\n return [`sky-ag-grid-row-${params.node.id}`];\n }\n else {\n return [];\n }\n },\n icons: Object.fromEntries(Object.keys(iconMap).map((iconKey) => [\n iconKey,\n this.#getIconTemplate(iconKey),\n ])),\n loadingOverlayComponent: SkyAgGridLoadingComponent,\n onCellFocused: (event) => this.#onCellFocused(event),\n rowModelType: 'clientSide',\n rowSelection: {\n mode: 'multiRow',\n enableClickSelection: false,\n enableSelectionWithoutKeys: true,\n checkboxes: false,\n headerCheckbox: false,\n },\n singleClickEdit: true,\n styleNonce: this.#cspNonce ?? undefined,\n suppressDragLeaveHidesColumns: true,\n theme: getSkyAgGridTheme('data-grid'),\n };\n const columnTypes = defaultSkyGridOptions.columnTypes;\n columnTypes[SkyCellType.CurrencyValidator] = {\n ...columnTypes[SkyCellType.Currency],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value) => {\n return !!`${value || ''}`.match(/^[^0-9]*(\\d+[,.]?)+\\d*[^0-9]*$/);\n },\n validatorMessage: 'Please enter a valid currency',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_currency_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n }\n columnTypes[SkyCellType.NumberValidator] = {\n ...columnTypes[SkyCellType.Validator],\n ...columnTypes[SkyCellType.Number],\n cellClassRules: {\n ...columnTypes[SkyCellType.Validator].cellClassRules,\n ...columnTypes[SkyCellType.Number].cellClassRules,\n },\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value) => {\n return !!value && !isNaN(parseFloat(value));\n },\n validatorMessage: 'Please enter a valid number',\n },\n },\n };\n /*istanbul ignore else*/\n if (this.#resources) {\n this.#resources\n .getString('sky_ag_grid_cell_renderer_number_validator_message')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;\n });\n this.#resources\n .getString('sky_ag_grid_row_selector_column_heading')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n columnTypes[SkyCellType.RowSelector].headerName = value;\n });\n }\n return defaultSkyGridOptions;\n }\n #onCellFocused(event) {\n const shouldFocus = this.#shouldFocusChildren(event);\n if (shouldFocus) {\n const currentElement = this.#agGridAdapterService.getFocusedElement();\n this.#agGridAdapterService.focusOnFocusableChildren(currentElement);\n }\n }\n #shouldFocusChildren(event) {\n let shouldFocus = true;\n // The API says the column can be string or null, but should be an object.\n shouldFocus &&= typeof event.column === 'object';\n // Row index can be number or null.\n const rowNode = Number.isInteger(event.rowIndex) &&\n event.api.getDisplayedRowAtIndex(event.rowIndex);\n shouldFocus &&= !!rowNode;\n // Do not change focus if the cell is a row drag or dnd source.\n shouldFocus &&= !event.column.isRowDrag(rowNode);\n shouldFocus &&= !event.column.isDndSource(rowNode);\n return shouldFocus;\n }\n #getDefaultEditableGridOptions(args) {\n const defaultGridOptions = this.#getDefaultGridOptions(args);\n defaultGridOptions.rowSelection = undefined;\n defaultGridOptions.theme = getSkyAgGridTheme('data-entry-grid');\n return defaultGridOptions;\n }\n #getIconTemplate(iconKey) {\n return () => {\n const iconInfo = iconMap[iconKey];\n return `<svg height=\"16\" width=\"16\"><use xlink:href=\"#sky-i-${iconInfo.name}-${iconInfo.size}-solid\"></use></svg>`;\n };\n }\n #suppressTab(params) {\n if (params.event.code === 'Tab') {\n if (params.editing) {\n const currentlyFocusedEl = this.#agGridAdapterService.getFocusedElement();\n // inline cell editors have the 'ag-cell' class, while popup editors have the 'ag-popup-editor' class\n const cellEl = this.#agGridAdapterService.getElementOrParentWithClass(currentlyFocusedEl, 'ag-cell');\n const popupEl = this.#agGridAdapterService.getElementOrParentWithClass(currentlyFocusedEl, 'ag-popup-editor');\n const parentEl = cellEl || popupEl;\n const nextFocusableElementInCell = this.#agGridAdapterService.getNextFocusableElement(currentlyFocusedEl, parentEl, params.event.shiftKey);\n return !!nextFocusableElementInCell;\n }\n return true;\n }\n return false;\n }\n #suppressEnter(params) {\n if (params.event.code === 'Enter') {\n return params.editing;\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", 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.0\", ngImport: i0, type: SkyAgGridService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAgGridService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyAgGridAdapterService }, { type: i2.SkyThemeService, decorators: [{\n type: Optional\n }] }, { type: i3.SkyLibResourcesService, decorators: [{\n type: Optional\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFzQmpELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzFILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3JKLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzVILE9BQU8sRUFB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LFFBQVEsQ0FDdEIsQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQW1DO1FBQ2hELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBaGxCVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDU1BfTk9OQ0UsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5RGF0ZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIEFnQ29sdW1uLFxuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIENlbGxSZW5kZXJlclNlbGVjdG9yRnVuYyxcbiAgQ2VsbFJlbmRlcmVyU2VsZWN0b3JSZXN1bHQsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93Tm9kZSxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0U2t5QWdHcmlkVGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvYWctZ3JpZC10aGVtZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4vYXBwbHktbG9va3VwLXByb3BlcnRpZXMtZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdGVtcGxhdGUvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItcm93LXNlbGVjdG9yL2hlYWRlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUFnR3JpZExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbENsYXNzIH0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuaW1wb3J0IHsgU2t5SGVhZGVyQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBMYXN0Rm9jdXNlZENlbGwgfSBmcm9tICcuL3R5cGVzL2xhc3QtZm9jdXNlZC5jZWxsJztcbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IoXG4gIHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSxcbiAgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9LFxuKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IERhdGUgfCBzdHJpbmcsIGRhdGUyOiBEYXRlIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gIGNvbXBvbmVudDogc3RyaW5nLFxuICBmYWxsYmFjaz86IENlbGxSZW5kZXJlclNlbGVjdG9yUmVzdWx0LFxuKTogQ2VsbFJlbmRlcmVyU2VsZWN0b3JGdW5jIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zLmNvbHVtbj8uaXNDZWxsRWRpdGFibGUocGFyYW1zLm5vZGUpIHx8XG4gICAgICAgICFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgcGFyYW1zPy5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gLTE7XG5cbi8qKlxuICogYFNreUFnR3JpZFNlcnZpY2VgIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IEFHIEdyaWQgYGdyaWRPcHRpb25zYCB0byBlbnN1cmUgZ3JpZHMgbWF0Y2ggU0tZIFVYIGZ1bmN0aW9uYWxpdHkuIFRoZSBgZ3JpZE9wdGlvbnNgIGNhbiBiZSBvdmVycmlkZGVuLCBhbmQgaW5jbHVkZSByZWdpc3RlcmVkIFNLWSBVWCBjb2x1bW4gdHlwZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgI2tleU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgc3RyaW5nPigpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICNyZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICNkYXRlU2VydmljZSA9IGluamVjdChTa3lEYXRlU2VydmljZSk7XG4gICNsb2dTZXJ2aWNlID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjY3NwTm9uY2UgPSBpbmplY3QoQ1NQX05PTkNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZSA9IGFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIGVkaXRvcnMgcmVnaXN0ZXJlZCBmb3IgZWRpdGFibGUgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSxcbiAgICBwcm92aWRlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyxcbiAgKTogR3JpZE9wdGlvbnMge1xuICAgIGlmICgnZW5hYmxlUmFuZ2VTZWxlY3Rpb24nIGluIHByb3ZpZGVkR3JpZE9wdGlvbnMpIHtcbiAgICAgIGlmIChwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZVJhbmdlU2VsZWN0aW9uKSB7XG4gICAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBkZWxldGUgcHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdzaW5nbGUnIHx8XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9PT0gJ211bHRpcGxlJ1xuICAgICkge1xuICAgICAgY29uc3Qgcm93U2VsZWN0aW9uT3B0aW9uczogUmVjb3JkPHN0cmluZywgUm93U2VsZWN0aW9uT3B0aW9ucz4gPSB7XG4gICAgICAgIHNpbmdsZTogeyBtb2RlOiAnc2luZ2xlUm93JywgY2hlY2tib3hlczogZmFsc2UgfSxcbiAgICAgICAgbXVsdGlwbGU6IHsgbW9kZTogJ211bHRpUm93JywgY2hlY2tib3hlczogZmFsc2UgfSxcbiAgICAgIH07XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9XG4gICAgICAgIHJvd1NlbGVjdGlvbk9wdGlvbnNbcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb25dO1xuICAgIH1cbiAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24/Lm1vZGUpIHtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xuICAgICAgICAuLi4oKGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gYXMgUm93U2VsZWN0aW9uT3B0aW9ucykgPz8ge1xuICAgICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24sXG4gICAgICB9IGFzIFJvd1NlbGVjdGlvbk9wdGlvbnM7XG4gICAgfVxuICAgIGlmICgnZW5hYmxlQ2VsbENoYW5nZUZsYXNoJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYgPz89IHt9O1xuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaCA/Pz1cbiAgICAgICAgISFwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaDtcbiAgICAgIGRlbGV0ZSBwcm92aWRlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxDaGFuZ2VGbGFzaDtcbiAgICB9XG5cbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29tcG9uZW50cyBsYXN0IHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGNvbXBvbmVudCB0eXBlcy5cbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29udGV4dDoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29udGV4dCxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb250ZXh0LFxuICAgICAgfSxcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICAgIC8vIGFwcGx5IGRlZmF1bHQgc2Vjb25kIHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGRlZmF1bHQgY29sdW1uIHR5cGVzXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDbGFzczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmhlYWRlckNsYXNzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWY/LmhlYWRlckNsYXNzLFxuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zKTogc3RyaW5nW10gPT4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2xhc3NlcyA9IGRlZmF1bHRHcmlkT3B0aW9ucy5nZXRSb3dDbGFzcyhcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICkgYXMgc3RyaW5nW107XG4gICAgICAgIGNvbnN0IHByb3ZpZGVkQ2xhc3NlcyA9IHByb3ZpZGVkR3JpZE9wdGlvbnMuZ2V0Um93Q2xhc3M/LihwYXJhbXMpID8/IFtdO1xuICAgICAgICBjb25zdCBwcm92aWRlZENsYXNzZXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvdmlkZWRDbGFzc2VzKVxuICAgICAgICAgID8gcHJvdmlkZWRDbGFzc2VzXG4gICAgICAgICAgOiBbcHJvdmlkZWRDbGFzc2VzXTtcbiAgICAgICAgcmV0dXJuIFsuLi5kZWZhdWx0Q2xhc3NlcywgLi4ucHJvdmlkZWRDbGFzc2VzQXJyYXldO1xuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkZWZhdWx0R3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5vbkNlbGxGb2N1c2VkPy4oZXZlbnQpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gRW5hYmxlIHRleHQgc2VsZWN0aW9uIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkIG9yIGNvbmZsaWN0aW5nIHdpdGggYW5vdGhlciBzZXR0aW5nLlxuICAgIGlmIChcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIHx8XG4gICAgICAoISgnZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24nIGluIG1lcmdlZEdyaWRPcHRpb25zKSAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY29sdW1uRGVmcz8uc29tZSgoY29sOiBDb2xEZWYpID0+IGNvbC5lZGl0YWJsZSkpXG4gICAgKSB7XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0IHx8PSB7fTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uID8/PSB0cnVlO1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dC5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA9XG4gICAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgLy8gY2VsbENsYXNzUnVsZXMgY2FuIGJlIGZ1bmN0aW9ucyBvciBzdHJpbmcgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihcbiAgICAgIGlzVW5lZGl0YWJsZT86IGJvb2xlYW4sXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5hcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogISFpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtLmNvbERlZiAmJlxuICAgICAgICAgIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgICBwYXJhbS52YWx1ZSxcbiAgICAgICAgICAgIHBhcmFtLmRhdGEsXG4gICAgICAgICAgICBwYXJhbS5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgICAgW1NreUNlbGxDbGFzcy5WYWxpZGF0b3JdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldEhlYWRlckNsYXNzKFxuICAgICAgLi4uY2xhc3NOYW1lczogc3RyaW5nW11cbiAgICApOiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcykgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIChwYXJhbXM6IEhlYWRlckNsYXNzUGFyYW1zKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgPT4ge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHBhcmFtcy5jb2x1bW4/LmdldE1pbldpZHRoKCkgPz8gMDtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNYXhXaWR0aCgpID8/IEluZmluaXR5O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHBhcmFtcy5jb2x1bW5Hcm91cD8uaXNSZXNpemFibGUoKSB8fCBwYXJhbXMuY29sdW1uPy5pc1Jlc2l6YWJsZSgpKSAmJlxuICAgICAgICAgIG1pbldpZHRoIDwgbWF4V2lkdGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5jbGFzc05hbWVzLCBTa3lIZWFkZXJDbGFzcy5SZXNpemFibGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWVzO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zICYge1xuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgICB9ID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICAgIHNvcnRpbmdPcmRlcjogW251bGwsICdkZXNjJywgJ2FzYyddLFxuICAgICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIHRoaXMuI3N1cHByZXNzRW50ZXIocGFyYW1zKSB8fCB0aGlzLiNzdXBwcmVzc1RhYihwYXJhbXMpLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuRGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5EYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGRhdGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDE4MCA6IDE2MCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy4jZGF0ZVNlcnZpY2UuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgYXJncy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICBhcmdzLmRhdGVGb3JtYXQgfHwgJ3Nob3J0RGF0ZScsXG4gICAgICAgICAgICAgICAgKSB8fCAnJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmICgoZXJyIGFzIEVycm9yKS5zdGFjaykge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7KGVyciBhcyBFcnJvcikuc3RhY2t9YCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jbG9nU2VydmljZS5lcnJvcihgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Mb29rdXBdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTG9va3VwXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvb2t1cFByb3BlcnRpZXMgPSBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhcbiAgICAgICAgICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID8/XG4gICAgICAgICAgICAgICAgcGFyYW1zLmNvbERlZj8uY2VsbEVkaXRvclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAocGFyYW1zLnZhbHVlIHx8IFtdKVxuICAgICAgICAgICAgICAubWFwKCh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVbbG9va3VwUHJvcGVydGllcy5kZXNjcmlwdG9yUHJvcGVydHkgYXMgc3RyaW5nXTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IHVua25vd24pID0+IHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAuam9pbignOyAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5OdW1iZXJdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTnVtYmVyXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgICBzb3J0aW5nT3JkZXI6IFtudWxsLCAnZGVzYycsICdhc2MnXSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJpZ2h0QWxpZ25lZF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5SaWdodEFsaWduZWRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICdSb3cgc2VsZWN0aW9uJyxcbiAgICAgICAgICBtaW5XaWR0aDogNTUsXG4gICAgICAgICAgbWF4V2lkdGg6IDU1LFxuICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRlbXBsYXRlXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRlbXBsYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRleHRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVGV4dF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDbGFzczogZ2V0SGVhZGVyQ2xhc3MoKSxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIG1pbldpZHRoOiAxMDAsXG4gICAgICAgIHN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudDogKFxuICAgICAgICAgIGtleXByZXNzOiBTdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnRQYXJhbXMsXG4gICAgICAgICkgPT4ga2V5cHJlc3MuZXZlbnQuY29kZSA9PT0gJ1RhYicsXG4gICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKGtleXByZXNzOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpID0+XG4gICAgICAgICAgdGhpcy4jc3VwcHJlc3NUYWIoa2V5cHJlc3MpLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICBoZWFkZXJHcm91cENvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZG9tTGF5b3V0OiAnYXV0b0hlaWdodCcsXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCc6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBmb2N1c0dyaWRJbm5lckVsZW1lbnQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzZWRDZWxsID0gcGFyYW1zLmNvbnRleHQ/LlsnbGFzdEZvY3VzZWRDZWxsJ10gYXNcbiAgICAgICAgICB8IExhc3RGb2N1c2VkQ2VsbFxuICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAobGFzdEZvY3VzZWRDZWxsKSB7XG4gICAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyYW1zLmFwaS5zZXRGb2N1c2VkQ2VsbChcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLnJvd0luZGV4LFxuICAgICAgICAgICAgICBsYXN0Rm9jdXNlZENlbGwuY29sdW1uLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLmFwaS5zZXRGb2N1c2VkSGVhZGVyKGxhc3RGb2N1c2VkQ2VsbC5jb2x1bW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZ2V0Um93SWQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YUlkID0gcGFyYW1zLmRhdGEuaWQ7XG4gICAgICAgIGlmIChkYXRhSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbXMuZGF0YS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy4ja2V5TWFwLmhhcyhwYXJhbXMuZGF0YSkpIHtcbiAgICAgICAgICB0aGlzLiNrZXlNYXAuc2V0KHBhcmFtcy5kYXRhLCBgJHtyb3dOb2RlSWQtLX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy4ja2V5TWFwLmdldChwYXJhbXMuZGF0YSkgYXMgc3RyaW5nO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgaWYgKHBhcmFtcy5ub2RlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIFtgc2t5LWFnLWdyaWQtcm93LSR7cGFyYW1zLm5vZGUuaWR9YF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaWNvbnM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmtleXMoaWNvbk1hcCkubWFwKChpY29uS2V5KSA9PiBbXG4gICAgICAgICAgaWNvbktleSxcbiAgICAgICAgICB0aGlzLiNnZXRJY29uVGVtcGxhdGUoaWNvbktleSBhcyBrZXlvZiBJY29uTWFwVHlwZSksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50OiBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50LFxuICAgICAgb25DZWxsRm9jdXNlZDogKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KSA9PiB0aGlzLiNvbkNlbGxGb2N1c2VkKGV2ZW50KSxcbiAgICAgIHJvd01vZGVsVHlwZTogJ2NsaWVudFNpZGUnLFxuICAgICAgcm93U2VsZWN0aW9uOiB7XG4gICAgICAgIG1vZGU6ICdtdWx0aVJvdycsXG4gICAgICAgIGVuYWJsZUNsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlU2VsZWN0aW9uV2l0aG91dEtleXM6IHRydWUsXG4gICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICBoZWFkZXJDaGVja2JveDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc3R5bGVOb25jZTogdGhpcy4jY3NwTm9uY2UgPz8gdW5kZWZpbmVkLFxuICAgICAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnM6IHRydWUsXG4gICAgICB0aGVtZTogZ2V0U2t5QWdHcmlkVGhlbWUoJ2RhdGEtZ3JpZCcpLFxuICAgIH07XG5cbiAgICBjb25zdCBjb2x1bW5UeXBlcyA9IGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyBhcyBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICBDb2xEZWZcbiAgICA+O1xuXG4gICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFgJHt2YWx1ZSB8fCAnJ31gLm1hdGNoKC9eW14wLTldKihcXGQrWywuXT8pK1xcZCpbXjAtOV0qJC8pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGN1cnJlbmN5JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jcmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNcbiAgICAgICAgLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9jb2x1bW5faGVhZGluZycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl0uaGVhZGVyTmFtZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgI29uQ2VsbEZvY3VzZWQoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGRGb2N1cyA9IHRoaXMuI3Nob3VsZEZvY3VzQ2hpbGRyZW4oZXZlbnQpO1xuICAgIGlmIChzaG91bGRGb2N1cykge1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAjc2hvdWxkRm9jdXNDaGlsZHJlbihldmVudDogQ2VsbEZvY3VzZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBzaG91bGRGb2N1cyA9IHRydWU7XG4gICAgLy8gVGhlIEFQSSBzYXlzIHRoZSBjb2x1bW4gY2FuIGJlIHN0cmluZyBvciBudWxsLCBidXQgc2hvdWxkIGJlIGFuIG9iamVjdC5cbiAgICBzaG91bGRGb2N1cyAmJj0gdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCc7XG4gICAgLy8gUm93IGluZGV4IGNhbiBiZSBudW1iZXIgb3IgbnVsbC5cbiAgICBjb25zdCByb3dOb2RlID1cbiAgICAgIE51bWJlci5pc0ludGVnZXIoZXZlbnQucm93SW5kZXgpICYmXG4gICAgICBldmVudC5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChldmVudC5yb3dJbmRleCBhcyBudW1iZXIpO1xuICAgIHNob3VsZEZvY3VzICYmPSAhIXJvd05vZGU7XG4gICAgLy8gRG8gbm90IGNoYW5nZSBmb2N1cyBpZiB0aGUgY2VsbCBpcyBhIHJvdyBkcmFnIG9yIGRuZCBzb3VyY2UuXG4gICAgc2hvdWxkRm9jdXMgJiY9ICEoZXZlbnQuY29sdW1uIGFzIEFnQ29sdW1uKS5pc1Jvd0RyYWcocm93Tm9kZSBhcyBSb3dOb2RlKTtcbiAgICBzaG91bGRGb2N1cyAmJj0gIShldmVudC5jb2x1bW4gYXMgQWdDb2x1bW4pLmlzRG5kU291cmNlKHJvd05vZGUgYXMgUm93Tm9kZSk7XG4gICAgcmV0dXJuIHNob3VsZEZvY3VzO1xuICB9XG5cbiAgI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zICYge1xuICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gIH0ge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy50aGVtZSA9IGdldFNreUFnR3JpZFRoZW1lKCdkYXRhLWVudHJ5LWdyaWQnKTtcbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI2dldEljb25UZW1wbGF0ZShpY29uS2V5OiBrZXlvZiBJY29uTWFwVHlwZSk6ICgpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IGljb25JbmZvID0gaWNvbk1hcFtpY29uS2V5XTtcbiAgICAgIHJldHVybiBgPHN2ZyBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTZcIj48dXNlIHhsaW5rOmhyZWY9XCIjc2t5LWktJHtpY29uSW5mby5uYW1lfS0ke2ljb25JbmZvLnNpemV9LXNvbGlkXCI+PC91c2U+PC9zdmc+YDtcbiAgICB9O1xuICB9XG5cbiAgI3N1cHByZXNzVGFiKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgaWYgKHBhcmFtcy5lZGl0aW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRseUZvY3VzZWRFbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctY2VsbCcsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBvcHVwRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1wb3B1cC1lZGl0b3InLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9IGNlbGxFbCB8fCBwb3B1cEVsO1xuXG4gICAgICAgIGNvbnN0IG5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAgIHBhcmVudEVsLFxuICAgICAgICAgICAgcGFyYW1zLmV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNzdXBwcmVzc0VudGVyKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICByZXR1cm4gcGFyYW1zLmVkaXRpbmc7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","// Export any types that should be included in the root.\nexport { SkyAgGridModule } from './lib/modules/ag-grid/ag-grid.module';\nexport { SkyAgGridService } from './lib/modules/ag-grid/ag-grid.service';\nexport { SkyCellClass } from './lib/modules/ag-grid/types/cell-class';\nexport { SkyAgGridCellEditorInitialAction } from './lib/modules/ag-grid/types/cell-editor-initial-action';\nexport { SkyAgGridCellEditorUtils } from './lib/modules/ag-grid/types/cell-editor-utils';\nexport { SkyCellType } from './lib/modules/ag-grid/types/cell-type';\nexport { SkyHeaderClass } from './lib/modules/ag-grid/types/header-class';\nexport { SkyAgGridHeaderGroupInfo } from './lib/modules/ag-grid/types/header-group-info';\nexport { SkyAgGridHeaderInfo } from './lib/modules/ag-grid/types/header-info';\n// Components and directives must be exported to support Angular's \"partial\" Ivy compiler.\n// Obscure names are used to indicate types are not part of the public API.\nexport { SkyAgGridDataManagerAdapterDirective as λ14 } from './lib/modules/ag-grid/ag-grid-data-manager-adapter.directive';\nexport { SkyAgGridRowDeleteComponent as λ6 } from './lib/modules/ag-grid/ag-grid-row-delete.component';\nexport { SkyAgGridRowDeleteDirective as λ13 } from './lib/modules/ag-grid/ag-grid-row-delete.directive';\nexport { SkyAgGridWrapperComponent as λ12 } from './lib/modules/ag-grid/ag-grid-wrapper.component';\nexport { SkyAgGridCellEditorAutocompleteComponent as λ1 } from './lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';\nexport { SkyAgGridCellEditorCurrencyComponent as λ3 } from './lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component';\nexport { SkyAgGridCellEditorDatepickerComponent as λ5 } from './lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';\nexport { SkyAgGridCellEditorLookupComponent as λ15 } from './lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component';\nexport { SkyAgGridCellEditorNumberComponent as λ4 } from './lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component';\nexport { SkyAgGridCellEditorTextComponent as λ2 } from './lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component';\nexport { SkyAgGridCellRendererCurrencyValidatorComponent as λ8 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';\nexport { SkyAgGridCellRendererCurrencyComponent as λ9 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component';\nexport { SkyAgGridCellRendererLookupComponent as λ16 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';\nexport { SkyAgGridCellRendererRowSelectorComponent as λ7 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';\nexport { SkyAgGridCellRendererValidatorTooltipComponent as λ10 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';\nexport { SkyAgGridCellValidatorTooltipComponent as λ11 } from './lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component';\nexport { SkyAgGridHeaderGroupComponent as λ18 } from './lib/modules/ag-grid/header/header-group.component';\nexport { SkyAgGridHeaderComponent as λ17 } from './lib/modules/ag-grid/header/header.component';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQU96RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFMUcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVE5RSwwRkFBMEY7QUFDMUYsMkVBQTJFO0FBQzNFLE9BQU8sRUFBRSxvQ0FBb0MsSUFBSSxHQUFHLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLElBQUksRUFBRSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkcsT0FBTyxFQUFFLDJCQUEyQixJQUFJLEdBQUcsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxHQUFHLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0NBQXdDLElBQUksRUFBRSxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7QUFDaEssT0FBTyxFQUFFLG9DQUFvQyxJQUFJLEVBQUUsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BKLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUMxSixPQUFPLEVBQUUsa0NBQWtDLElBQUksR0FBRyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDL0ksT0FBTyxFQUFFLGtDQUFrQyxJQUFJLEVBQUUsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQzlJLE9BQU8sRUFBRSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUN4SSxPQUFPLEVBQUUsK0NBQStDLElBQUksRUFBRSxFQUFFLE1BQU0sd0dBQXdHLENBQUM7QUFDL0ssT0FBTyxFQUFFLHNDQUFzQyxJQUFJLEVBQUUsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzVKLE9BQU8sRUFBRSxvQ0FBb0MsSUFBSSxHQUFHLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUN2SixPQUFPLEVBQUUseUNBQXlDLElBQUksRUFBRSxFQUFFLE1BQU0sc0dBQXNHLENBQUM7QUFDdkssT0FBTyxFQUFFLDhDQUE4QyxJQUFJLEdBQUcsRUFBRSxNQUFNLGdIQUFnSCxDQUFDO0FBQ3ZMLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxHQUFHLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUM5SSxPQUFPLEVBQUUsNkJBQTZCLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0csT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IGFueSB0eXBlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcm9vdC5cbmV4cG9ydCB7IFNreUFnR3JpZE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lBZ0dyaWRTZXJ2aWNlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQuc2VydmljZSc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2FnLWdyaWQtcm93LWRlbGV0ZS1jYW5jZWwtYXJncyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlybS1hcmdzJztcbmV4cG9ydCB7XG4gIFNreUFnR3JpZEF1dG9jb21wbGV0ZVByb3BlcnRpZXMsXG4gIFNreUF1dG9jb21wbGV0ZVByb3BlcnRpZXMsXG59IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9hdXRvY29tcGxldGUtcHJvcGVydGllcyc7XG5leHBvcnQgeyBTa3lDZWxsQ2xhc3MgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1jbGFzcyc7XG5leHBvcnQgeyBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuZXhwb3J0IHsgU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci1wYXJhbXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuZXhwb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci1sb29rdXAtcGFyYW1zJztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5leHBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9jZWxsLXR5cGUnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ3VycmVuY3lQcm9wZXJ0aWVzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2N1cnJlbmN5LXByb3BlcnRpZXMnO1xuZXhwb3J0IHtcbiAgU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMsXG4gIFNreURhdGVwaWNrZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvZGF0ZXBpY2tlci1wcm9wZXJ0aWVzJztcbmV4cG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJHcm91cEluZm8gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWdyb3VwLWluZm8nO1xuZXhwb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBQYXJhbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvaGVhZGVyLWdyb3VwLXBhcmFtcyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJJbmZvIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2hlYWRlci1pbmZvJztcbmV4cG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9oZWFkZXItcGFyYW1zJztcbmV4cG9ydCB7IFNreUFnR3JpZExvb2t1cFByb3BlcnRpZXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvbG9va3VwLXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkTnVtYmVyUHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy9udW1iZXItcHJvcGVydGllcyc7XG5leHBvcnQgeyBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5leHBvcnQgeyBTa3lBZ0dyaWRUZXh0UHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy90ZXh0LXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgU2t5QWdHcmlkVmFsaWRhdG9yUHJvcGVydGllcyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC90eXBlcy92YWxpZGF0b3ItcHJvcGVydGllcyc7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSBhcyDOuzE0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtZGF0YS1tYW5hZ2VyLWFkYXB0ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmUgYXMgzrsxMyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXJvdy1kZWxldGUuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgYXMgzrsxMiB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgYXMgzrsxIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQgYXMgzrszIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgYXMgzrs1IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQgYXMgzrsxNSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbG9va3VwL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCBhcyDOuzQgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCBhcyDOuzggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQgYXMgzrs5IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IGFzIM67MTYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IGFzIM67NyB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCBhcyDOuzEwIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgYXMgzrsxMSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLXZhbGlkYXRvci9hZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IGFzIM67MTggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50IGFzIM67MTcgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYWctZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9za3l1eC1hZy1ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["takeUntil","i1","filter","i2","i3","i4","i1.SkyAgGridAdapterService"],"mappings":"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"}