@netgrif/components 6.4.1 → 6.4.2-rc.5

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.
@@ -55,6 +55,7 @@ export class DefaultTabViewComponent {
55
55
  const caseViewHeadersMode = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_HEADERS_MODE);
56
56
  const caseViewAllowTableMode = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE);
57
57
  const caseViewDefaultHeadersMode = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE);
58
+ const caseViewAllowExport = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_ALLOW_EXPORT);
58
59
  const taskSearchType = extractSearchTypeFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE);
59
60
  const taskShowMoreMenu = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_TASK_SHOW_MORE_MENU);
60
61
  const taskSearchTypeConfig = {
@@ -85,6 +86,7 @@ export class DefaultTabViewComponent {
85
86
  caseViewHeadersMode: caseViewHeadersMode,
86
87
  caseViewAllowTableMode: caseViewAllowTableMode,
87
88
  caseViewDefaultHeadersMode: caseViewDefaultHeadersMode,
89
+ caseViewAllowExport: caseViewAllowExport,
88
90
  taskViewSearchTypeConfiguration: taskSearchTypeConfig,
89
91
  taskViewShowMoreMenu: taskShowMoreMenu,
90
92
  taskViewHeadersChangeable: taskViewHeadersChangeable,
@@ -147,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
147
149
  type: Inject,
148
150
  args: [NAE_NAVIGATION_ITEM_TASK_DATA]
149
151
  }] }, { type: i1.TranslateService }, { type: i2.FilterExtractionService }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL2dyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyL2RlZmF1bHQtY29tcG9uZW50cy9kZWZhdWx0LXRhYi12aWV3L2RlZmF1bHQtdGFiLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWNvbXBvbmVudHMvZGVmYXVsdC10YWItdmlldy9kZWZhdWx0LXRhYi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFSCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsVUFBVSxFQUNWLG1DQUFtQyxFQUNuQyw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBR25CLFVBQVUsRUFFVixhQUFhLEVBRWIsd0JBQXdCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDOUcsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDOUcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFZL0MsTUFBTSxPQUFPLHVCQUF1QjtJQUloQyxZQUE2RCx1QkFBeUMsRUFDaEYsa0JBQW9DLEVBQ3BDLGlCQUEwQztRQUZILDRCQUF1QixHQUF2Qix1QkFB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Q0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNsRyxPQUFPO1lBQ0g7Z0JBQ0ksS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUM7Z0JBQ25ELFdBQVcsRUFBRSxLQUFLO2dCQUNsQixtQkFBbUIsRUFBRSw4QkFBOEI7Z0JBQ25ELGNBQWMsRUFBRTtvQkFDWixzQkFBc0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCO29CQUNwRCxVQUFVLEVBQUUsTUFBTTtvQkFDbEIsdUJBQXVCLEVBQUUsZ0JBQWdCO29CQUN6QyxZQUFZLEVBQUUsWUFBWTtvQkFDMUIsaUJBQWlCLEVBQUUsaUJBQWlCO29CQUNwQyxXQUFXLEVBQUUsV0FBVztvQkFDeEIsY0FBYyxFQUFFLGNBQWM7b0JBQzlCLGtCQUFrQixFQUFFLGtCQUFrQjtpQkFDekM7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOztxSEFySVEsdUJBQXVCLGtCQUlaLDZCQUE2Qjt5R0FKeEMsdUJBQXVCLDhDQUxyQjtRQUNQLGFBQWE7UUFDYixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsbUNBQW1DLEVBQUUsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUM7S0FDMUcsMEJDL0JMLGlNQUdBOzRGRDhCYSx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0kscUJBQXFCLGFBR3BCO3dCQUNQLGFBQWE7d0JBQ2IsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLG1DQUFtQyxFQUFFLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFDO3FCQUMxRzswREFNcUYsS0FBSzswQkFBOUUsTUFBTTsyQkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRGF0YUdyb3VwLFxuICAgIGV4dHJhY3RGaWx0ZXJGcm9tRGF0YSxcbiAgICBleHRyYWN0SWNvbkFuZFRpdGxlLFxuICAgIGV4dHJhY3RTZWFyY2hUeXBlRnJvbURhdGEsXG4gICAgZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YSxcbiAgICBGaWx0ZXJUeXBlLFxuICAgIGdyb3VwTmF2aWdhdGlvblZpZXdJZFNlZ21lbnRGYWN0b3J5LFxuICAgIE5BRV9OQVZJR0FUSU9OX0lURU1fVEFTS19EQVRBLFxuICAgIE5BRV9WSUVXX0lEX1NFR01FTlQsXG4gICAgTmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbkRhdGEsXG4gICAgU2VhcmNoQ29tcG9uZW50Q29uZmlndXJhdGlvbixcbiAgICBTZWFyY2hNb2RlLFxuICAgIFRhYkNvbnRlbnQsXG4gICAgVmlld0lkU2VydmljZSxcbiAgICBGaWx0ZXJFeHRyYWN0aW9uU2VydmljZSxcbiAgICBHcm91cE5hdmlnYXRpb25Db25zdGFudHNcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7RGVmYXVsdFRhYmJlZENhc2VWaWV3Q29tcG9uZW50fSBmcm9tICcuLi9kZWZhdWx0LXRhYmJlZC1jYXNlLXZpZXcvZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge0RlZmF1bHRUYWJiZWRUYXNrVmlld0NvbXBvbmVudH0gZnJvbSAnLi4vZGVmYXVsdC10YWJiZWQtdGFzay12aWV3L2RlZmF1bHQtdGFiYmVkLXRhc2stdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1kZWZhdWx0LXRhYi12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC10YWItdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC10YWItdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBWaWV3SWRTZXJ2aWNlLFxuICAgICAgICB7cHJvdmlkZTogTkFFX1ZJRVdfSURfU0VHTUVOVCwgdXNlRmFjdG9yeTogZ3JvdXBOYXZpZ2F0aW9uVmlld0lkU2VnbWVudEZhY3RvcnksIGRlcHM6IFtBY3RpdmF0ZWRSb3V0ZV19XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0VGFiVmlld0NvbXBvbmVudCB7XG5cbiAgICB0YWJzOiBBcnJheTxUYWJDb250ZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTkFFX05BVklHQVRJT05fSVRFTV9UQVNLX0RBVEEpIHByb3RlY3RlZCBfbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YTogQXJyYXk8RGF0YUdyb3VwPixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBleHRyYWN0aW9uU2VydmljZTogRmlsdGVyRXh0cmFjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gZXh0cmFjdEZpbHRlckZyb21EYXRhKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEpO1xuICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLmdldFRhYnMoZmlsdGVyLnR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRUYWJzKHR5cGU6IEZpbHRlclR5cGUpOiBUYWJDb250ZW50W10ge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5DQVNFOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENhc2VUYWJzKCk7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuVEFTSzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXNrVGFicygpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIHRhYnMgZm9yICcke3R5cGV9JyBmaWx0ZXIgdHlwZWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldENhc2VUYWJzKCk6IFRhYkNvbnRlbnRbXSB7XG4gICAgICAgIGNvbnN0IGxhYmVsRGF0YSA9IGV4dHJhY3RJY29uQW5kVGl0bGUodGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gICAgICAgIGNvbnN0IGJsb2NrTmV0c1N0cmluZyA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX0JBTk5FRF9QUk9DRVNTX0NSRUFUSU9OKTtcbiAgICAgICAgY29uc3QgYmxvY2tOZXRzID0gYmxvY2tOZXRzU3RyaW5nID09PSB1bmRlZmluZWQgPyBbXSA6IGJsb2NrTmV0c1N0cmluZy5zcGxpdCgnLCcpXG4gICAgICAgIGNvbnN0IGNyZWF0ZUNhc2VCdXR0b25UaXRsZTogc3RyaW5nID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmc+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NSRUFURV9DQVNFX0JVVFRPTl9USVRMRSk7XG4gICAgICAgIGNvbnN0IGNyZWF0ZUNhc2VCdXR0b25JY29uOiBzdHJpbmcgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZz4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQ1JFQVRFX0NBU0VfQlVUVE9OX0lDT04pO1xuICAgICAgICBjb25zdCByZXF1aXJlVGl0bGU6IGJvb2xlYW4gPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NBU0VfVElUTEVfSU5fQ1JFQVRJT04pO1xuICAgICAgICBjb25zdCBzaG93Q3JlYXRlQ2FzZUJ1dHRvbjogYm9vbGVhbiA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfU0hPV19DUkVBVEVfQ0FTRV9CVVRUT04pO1xuICAgICAgICBjb25zdCBuZXdDYXNlQnV0dG9uQ29uZmlnOiBOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YSA9IHtcbiAgICAgICAgICAgIGVuYWJsZUNhc2VUaXRsZTogcmVxdWlyZVRpdGxlLFxuICAgICAgICAgICAgaXNDYXNlVGl0bGVSZXF1aXJlZDogcmVxdWlyZVRpdGxlLFxuICAgICAgICAgICAgbmV3Q2FzZUJ1dHRvbkNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGNyZWF0ZUNhc2VCdXR0b25UaXRsZSxcbiAgICAgICAgICAgICAgICBjcmVhdGVDYXNlQnV0dG9uSWNvbixcbiAgICAgICAgICAgICAgICBzaG93Q3JlYXRlQ2FzZUJ1dHRvbjogc2hvd0NyZWF0ZUNhc2VCdXR0b24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmxvY2tOZXRzOiBibG9ja05ldHNcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2FzZVNlYXJjaFR5cGUgPSBleHRyYWN0U2VhcmNoVHlwZUZyb21EYXRhKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NBU0VfVklFV19TRUFSQ0hfVFlQRSk7XG4gICAgICAgIGNvbnN0IGNhc2VTZWFyY2hUeXBlQ29uZmlnOiBTZWFyY2hDb21wb25lbnRDb25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgc2hvd1NlYXJjaEljb246IHRydWUsXG4gICAgICAgICAgICBzaG93U2VhcmNoVG9nZ2xlQnV0dG9uOiBjYXNlU2VhcmNoVHlwZSA9PT0gU2VhcmNoTW9kZS5BRFZBTkNFRCxcbiAgICAgICAgICAgIGluaXRpYWxTZWFyY2hNb2RlOiAoY2FzZVNlYXJjaFR5cGUgPT09IHVuZGVmaW5lZCkgPyB1bmRlZmluZWQgOiBTZWFyY2hNb2RlLkZVTExURVhULFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhc2VTaG93TW9yZU1lbnUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NBU0VfU0hPV19NT1JFX01FTlUpO1xuICAgICAgICBjb25zdCBjYXNlVmlld0hlYWRlcnNDaGFuZ2VhYmxlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX0hFQURFUlNfQ0hBTkdFQUJMRSk7XG4gICAgICAgIGNvbnN0IGNhc2VWaWV3SGVhZGVyc01vZGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZ1tdPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX0hFQURFUlNfTU9ERSk7XG4gICAgICAgIGNvbnN0IGNhc2VWaWV3QWxsb3dUYWJsZU1vZGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NBU0VfQUxMT1dfVEFCTEVfTU9ERSk7XG4gICAgICAgIGNvbnN0IGNhc2VWaWV3RGVmYXVsdEhlYWRlcnNNb2RlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmdbXT4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQ0FTRV9ERUZBVUxUX0hFQURFUlNfTU9ERSk7XG5cbiAgICAgICAgY29uc3QgdGFza1NlYXJjaFR5cGUgPSBleHRyYWN0U2VhcmNoVHlwZUZyb21EYXRhKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfVklFV19TRUFSQ0hfVFlQRSk7XG4gICAgICAgIGNvbnN0IHRhc2tTaG93TW9yZU1lbnUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfU0hPV19NT1JFX01FTlUpO1xuICAgICAgICBjb25zdCB0YXNrU2VhcmNoVHlwZUNvbmZpZzogU2VhcmNoQ29tcG9uZW50Q29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIHNob3dTZWFyY2hJY29uOiB0cnVlLFxuICAgICAgICAgICAgc2hvd1NlYXJjaFRvZ2dsZUJ1dHRvbjogdGFza1NlYXJjaFR5cGUgPT09IFNlYXJjaE1vZGUuQURWQU5DRUQsXG4gICAgICAgICAgICBpbml0aWFsU2VhcmNoTW9kZTogKHRhc2tTZWFyY2hUeXBlID09PSB1bmRlZmluZWQpID8gdW5kZWZpbmVkIDogU2VhcmNoTW9kZS5GVUxMVEVYVCxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXNrVmlld0hlYWRlcnNDaGFuZ2VhYmxlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9UQVNLX0hFQURFUlNfQ0hBTkdFQUJMRSk7XG4gICAgICAgIGNvbnN0IHRhc2tWaWV3SGVhZGVyc01vZGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZ1tdPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9UQVNLX0hFQURFUlNfTU9ERSk7XG4gICAgICAgIGNvbnN0IHRhc2tWaWV3QWxsb3dUYWJsZU1vZGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfQUxMT1dfVEFCTEVfTU9ERSk7XG4gICAgICAgIGNvbnN0IHRhc2tWaWV3RGVmYXVsdEhlYWRlcnNNb2RlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmdbXT4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19ERUZBVUxUX0hFQURFUlNfTU9ERSk7XG4gICAgICAgIGNvbnN0IHRhc2tWaWV3QWRkaXRpb25hbEZpbHRlciA9IHRoaXMuZXh0cmFjdGlvblNlcnZpY2UuZXh0cmFjdENvbXBsZXRlQWRkaXRpb25hbEZpbHRlckZyb21EYXRhKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEpO1xuICAgICAgICBjb25zdCBtZXJnZVdpdGhCYXNlRmlsdGVyID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9NRVJHRV9GSUxURVJTKTtcbiAgICAgICAgY29uc3QgYWRkaXRpb25hbEFsbG93ZWROZXRzID0gdGhpcy5leHRyYWN0aW9uU2VydmljZS5leHRyYWN0QWRkaXRpb25hbEZpbHRlckFsbG93ZWROZXRzKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEpPy5hbGxvd2VkTmV0c0lkZW50aWZpZXJzO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHt0ZXh0OiBsYWJlbERhdGEubmFtZSwgaWNvbjogbGFiZWxEYXRhLmljb259LFxuICAgICAgICAgICAgICAgIGNhbkJlQ2xvc2VkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0YWJDb250ZW50Q29tcG9uZW50OiBEZWZhdWx0VGFiYmVkQ2FzZVZpZXdDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaW5qZWN0ZWRPYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdGFiVmlld0NvbXBvbmVudDogRGVmYXVsdFRhYmJlZFRhc2tWaWV3Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWJWaWV3T3JkZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtVGFza0RhdGE6IHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsXG5cbiAgICAgICAgICAgICAgICAgICAgbmV3Q2FzZUJ1dHRvbkNvbmZpZ3VyYXRpb246IG5ld0Nhc2VCdXR0b25Db25maWcsXG4gICAgICAgICAgICAgICAgICAgIGNhc2VWaWV3U2VhcmNoVHlwZUNvbmZpZ3VyYXRpb246IGNhc2VTZWFyY2hUeXBlQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICBjYXNlVmlld1Nob3dNb3JlTWVudTogY2FzZVNob3dNb3JlTWVudSxcbiAgICAgICAgICAgICAgICAgICAgY2FzZVZpZXdIZWFkZXJzQ2hhbmdlYWJsZTogY2FzZVZpZXdIZWFkZXJzQ2hhbmdlYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgY2FzZVZpZXdIZWFkZXJzTW9kZTogY2FzZVZpZXdIZWFkZXJzTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgY2FzZVZpZXdBbGxvd1RhYmxlTW9kZTogY2FzZVZpZXdBbGxvd1RhYmxlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgY2FzZVZpZXdEZWZhdWx0SGVhZGVyc01vZGU6IGNhc2VWaWV3RGVmYXVsdEhlYWRlcnNNb2RlLFxuXG4gICAgICAgICAgICAgICAgICAgIHRhc2tWaWV3U2VhcmNoVHlwZUNvbmZpZ3VyYXRpb246IHRhc2tTZWFyY2hUeXBlQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld1Nob3dNb3JlTWVudTogdGFza1Nob3dNb3JlTWVudSxcbiAgICAgICAgICAgICAgICAgICAgdGFza1ZpZXdIZWFkZXJzQ2hhbmdlYWJsZTogdGFza1ZpZXdIZWFkZXJzQ2hhbmdlYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgdGFza1ZpZXdIZWFkZXJzTW9kZTogdGFza1ZpZXdIZWFkZXJzTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgdGFza1ZpZXdBbGxvd1RhYmxlTW9kZTogdGFza1ZpZXdBbGxvd1RhYmxlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgdGFza1ZpZXdEZWZhdWx0SGVhZGVyc01vZGU6IHRhc2tWaWV3RGVmYXVsdEhlYWRlcnNNb2RlLFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld01lcmdlV2l0aEJhc2VGaWx0ZXI6IG1lcmdlV2l0aEJhc2VGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIHRhc2tWaWV3QWRkaXRpb25hbEZpbHRlcjogdGFza1ZpZXdBZGRpdGlvbmFsRmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld0FkZGl0aW9uYWxBbGxvd2VkTmV0czogYWRkaXRpb25hbEFsbG93ZWROZXRzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFza1RhYnMoKTogVGFiQ29udGVudFtdIHtcbiAgICAgICAgY29uc3QgbGFiZWxEYXRhID0gZXh0cmFjdEljb25BbmRUaXRsZSh0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZSk7XG4gICAgICAgIGNvbnN0IHRhc2tTZWFyY2hUeXBlID0gZXh0cmFjdFNlYXJjaFR5cGVGcm9tRGF0YSh0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9UQVNLX1ZJRVdfU0VBUkNIX1RZUEUpO1xuICAgICAgICBjb25zdCBoZWFkZXJzQ2hhbmdlYWJsZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19IRUFERVJTX0NIQU5HRUFCTEUpO1xuICAgICAgICBjb25zdCBoZWFkZXJzTW9kZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nW10+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfSEVBREVSU19NT0RFKTtcbiAgICAgICAgY29uc3QgYWxsb3dUYWJsZU1vZGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfQUxMT1dfVEFCTEVfTU9ERSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRIZWFkZXJzTW9kZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nW10+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfREVGQVVMVF9IRUFERVJTX01PREUpO1xuICAgICAgICBjb25zdCBzaG93VG9nZ2xlQnV0dG9uID0gdGFza1NlYXJjaFR5cGUgPT09IFNlYXJjaE1vZGUuQURWQU5DRURcbiAgICAgICAgY29uc3Qgc2VhcmNoVHlwZUNvbmZpZzogU2VhcmNoQ29tcG9uZW50Q29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIHNob3dTZWFyY2hJY29uOiB0cnVlLFxuICAgICAgICAgICAgc2hvd1NlYXJjaFRvZ2dsZUJ1dHRvbjogc2hvd1RvZ2dsZUJ1dHRvbixcbiAgICAgICAgICAgIGluaXRpYWxTZWFyY2hNb2RlOiAodGFza1NlYXJjaFR5cGUgPT09IHVuZGVmaW5lZCkgPyB1bmRlZmluZWQgOiBTZWFyY2hNb2RlLkZVTExURVhULFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3dNb3JlTWVudSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19TSE9XX01PUkVfTUVOVSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5leHRyYWN0aW9uU2VydmljZS5leHRyYWN0Q29tcGxldGVGaWx0ZXJGcm9tRGF0YSh0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDoge3RleHQ6IGxhYmVsRGF0YS5uYW1lLCBpY29uOiBsYWJlbERhdGEuaWNvbn0sXG4gICAgICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRhYkNvbnRlbnRDb21wb25lbnQ6IERlZmF1bHRUYWJiZWRUYXNrVmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbmplY3RlZE9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbVRhc2tEYXRhOiB0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLFxuICAgICAgICAgICAgICAgICAgICBiYXNlRmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFR5cGVDb25maWd1cmF0aW9uOiBzZWFyY2hUeXBlQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICBzaG93TW9yZU1lbnU6IHNob3dNb3JlTWVudSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc0NoYW5nZWFibGU6IGhlYWRlcnNDaGFuZ2VhYmxlLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzTW9kZTogaGVhZGVyc01vZGUsXG4gICAgICAgICAgICAgICAgICAgIGFsbG93VGFibGVNb2RlOiBhbGxvd1RhYmxlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnNNb2RlOiBkZWZhdWx0SGVhZGVyc01vZGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIiBjbGFzcz1cImZ1bGwtaGVpZ2h0XCI+XG4gICAgPG5jLXRhYi12aWV3IFtpbml0aWFsVGFic109XCJ0YWJzXCIgc3RyZXRjaD1cImZhbHNlXCIgY2xhc3M9XCJmdWxsLWhlaWdodCBibG9ja1wiPjwvbmMtdGFiLXZpZXc+XG48L2Rpdj5cbiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL2dyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyL2RlZmF1bHQtY29tcG9uZW50cy9kZWZhdWx0LXRhYi12aWV3L2RlZmF1bHQtdGFiLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWNvbXBvbmVudHMvZGVmYXVsdC10YWItdmlldy9kZWZhdWx0LXRhYi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFSCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsVUFBVSxFQUNWLG1DQUFtQyxFQUNuQyw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBR25CLFVBQVUsRUFFVixhQUFhLEVBRWIsd0JBQXdCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDOUcsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDOUcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFZL0MsTUFBTSxPQUFPLHVCQUF1QjtJQUloQyxZQUE2RCx1QkFBeUMsRUFDaEYsa0JBQW9DLEVBQ3BDLGlCQUEwQztRQUZILDRCQUF1QixHQUF2Qix1QkFB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bnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERhdGFHcm91cCxcbiAgICBleHRyYWN0RmlsdGVyRnJvbURhdGEsXG4gICAgZXh0cmFjdEljb25BbmRUaXRsZSxcbiAgICBleHRyYWN0U2VhcmNoVHlwZUZyb21EYXRhLFxuICAgIGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGEsXG4gICAgRmlsdGVyVHlwZSxcbiAgICBncm91cE5hdmlnYXRpb25WaWV3SWRTZWdtZW50RmFjdG9yeSxcbiAgICBOQUVfTkFWSUdBVElPTl9JVEVNX1RBU0tfREFUQSxcbiAgICBOQUVfVklFV19JRF9TRUdNRU5ULFxuICAgIE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhLFxuICAgIFNlYXJjaENvbXBvbmVudENvbmZpZ3VyYXRpb24sXG4gICAgU2VhcmNoTW9kZSxcbiAgICBUYWJDb250ZW50LFxuICAgIFZpZXdJZFNlcnZpY2UsXG4gICAgRmlsdGVyRXh0cmFjdGlvblNlcnZpY2UsXG4gICAgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge0RlZmF1bHRUYWJiZWRDYXNlVmlld0NvbXBvbmVudH0gZnJvbSAnLi4vZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3L2RlZmF1bHQtdGFiYmVkLWNhc2Utdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtEZWZhdWx0VGFiYmVkVGFza1ZpZXdDb21wb25lbnR9IGZyb20gJy4uL2RlZmF1bHQtdGFiYmVkLXRhc2stdmlldy9kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtZGVmYXVsdC10YWItdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtdGFiLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlZmF1bHQtdGFiLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVmlld0lkU2VydmljZSxcbiAgICAgICAge3Byb3ZpZGU6IE5BRV9WSUVXX0lEX1NFR01FTlQsIHVzZUZhY3Rvcnk6IGdyb3VwTmF2aWdhdGlvblZpZXdJZFNlZ21lbnRGYWN0b3J5LCBkZXBzOiBbQWN0aXZhdGVkUm91dGVdfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFRhYlZpZXdDb21wb25lbnQge1xuXG4gICAgdGFiczogQXJyYXk8VGFiQ29udGVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5BRV9OQVZJR0FUSU9OX0lURU1fVEFTS19EQVRBKSBwcm90ZWN0ZWQgX25hdmlnYXRpb25JdGVtVGFza0RhdGE6IEFycmF5PERhdGFHcm91cD4sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgZXh0cmFjdGlvblNlcnZpY2U6IEZpbHRlckV4dHJhY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IGV4dHJhY3RGaWx0ZXJGcm9tRGF0YSh0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhKTtcbiAgICAgICAgdGhpcy50YWJzID0gdGhpcy5nZXRUYWJzKGZpbHRlci50eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGFicyh0eXBlOiBGaWx0ZXJUeXBlKTogVGFiQ29udGVudFtdIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuQ0FTRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDYXNlVGFicygpO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlRBU0s6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFza1RhYnMoKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVzb2x2ZSB0YWJzIGZvciAnJHt0eXBlfScgZmlsdGVyIHR5cGVgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDYXNlVGFicygpOiBUYWJDb250ZW50W10ge1xuICAgICAgICBjb25zdCBsYWJlbERhdGEgPSBleHRyYWN0SWNvbkFuZFRpdGxlKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICAgICAgICBjb25zdCBibG9ja05ldHNTdHJpbmcgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZz4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQ0FTRV9CQU5ORURfUFJPQ0VTU19DUkVBVElPTik7XG4gICAgICAgIGNvbnN0IGJsb2NrTmV0cyA9IGJsb2NrTmV0c1N0cmluZyA9PT0gdW5kZWZpbmVkID8gW10gOiBibG9ja05ldHNTdHJpbmcuc3BsaXQoJywnKVxuICAgICAgICBjb25zdCBjcmVhdGVDYXNlQnV0dG9uVGl0bGU6IHN0cmluZyA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DUkVBVEVfQ0FTRV9CVVRUT05fVElUTEUpO1xuICAgICAgICBjb25zdCBjcmVhdGVDYXNlQnV0dG9uSWNvbjogc3RyaW5nID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmc+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NSRUFURV9DQVNFX0JVVFRPTl9JQ09OKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZVRpdGxlOiBib29sZWFuID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX1RJVExFX0lOX0NSRUFUSU9OKTtcbiAgICAgICAgY29uc3Qgc2hvd0NyZWF0ZUNhc2VCdXR0b246IGJvb2xlYW4gPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1NIT1dfQ1JFQVRFX0NBU0VfQlVUVE9OKTtcbiAgICAgICAgY29uc3QgbmV3Q2FzZUJ1dHRvbkNvbmZpZzogTmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbkRhdGEgPSB7XG4gICAgICAgICAgICBlbmFibGVDYXNlVGl0bGU6IHJlcXVpcmVUaXRsZSxcbiAgICAgICAgICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQ6IHJlcXVpcmVUaXRsZSxcbiAgICAgICAgICAgIG5ld0Nhc2VCdXR0b25Db25maWc6IHtcbiAgICAgICAgICAgICAgICBjcmVhdGVDYXNlQnV0dG9uVGl0bGUsXG4gICAgICAgICAgICAgICAgY3JlYXRlQ2FzZUJ1dHRvbkljb24sXG4gICAgICAgICAgICAgICAgc2hvd0NyZWF0ZUNhc2VCdXR0b246IHNob3dDcmVhdGVDYXNlQnV0dG9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJsb2NrTmV0czogYmxvY2tOZXRzXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNhc2VTZWFyY2hUeXBlID0gZXh0cmFjdFNlYXJjaFR5cGVGcm9tRGF0YSh0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX1ZJRVdfU0VBUkNIX1RZUEUpO1xuICAgICAgICBjb25zdCBjYXNlU2VhcmNoVHlwZUNvbmZpZzogU2VhcmNoQ29tcG9uZW50Q29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIHNob3dTZWFyY2hJY29uOiB0cnVlLFxuICAgICAgICAgICAgc2hvd1NlYXJjaFRvZ2dsZUJ1dHRvbjogY2FzZVNlYXJjaFR5cGUgPT09IFNlYXJjaE1vZGUuQURWQU5DRUQsXG4gICAgICAgICAgICBpbml0aWFsU2VhcmNoTW9kZTogKGNhc2VTZWFyY2hUeXBlID09PSB1bmRlZmluZWQpID8gdW5kZWZpbmVkIDogU2VhcmNoTW9kZS5GVUxMVEVYVCxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYXNlU2hvd01vcmVNZW51ID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX1NIT1dfTU9SRV9NRU5VKTtcbiAgICAgICAgY29uc3QgY2FzZVZpZXdIZWFkZXJzQ2hhbmdlYWJsZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQ0FTRV9IRUFERVJTX0NIQU5HRUFCTEUpO1xuICAgICAgICBjb25zdCBjYXNlVmlld0hlYWRlcnNNb2RlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmdbXT4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQ0FTRV9IRUFERVJTX01PREUpO1xuICAgICAgICBjb25zdCBjYXNlVmlld0FsbG93VGFibGVNb2RlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9DQVNFX0FMTE9XX1RBQkxFX01PREUpO1xuICAgICAgICBjb25zdCBjYXNlVmlld0RlZmF1bHRIZWFkZXJzTW9kZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nW10+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NBU0VfREVGQVVMVF9IRUFERVJTX01PREUpO1xuICAgICAgICBjb25zdCBjYXNlVmlld0FsbG93RXhwb3J0ID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuW10+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0NBU0VfQUxMT1dfRVhQT1JUKTtcblxuICAgICAgICBjb25zdCB0YXNrU2VhcmNoVHlwZSA9IGV4dHJhY3RTZWFyY2hUeXBlRnJvbURhdGEodGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19WSUVXX1NFQVJDSF9UWVBFKTtcbiAgICAgICAgY29uc3QgdGFza1Nob3dNb3JlTWVudSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19TSE9XX01PUkVfTUVOVSk7XG4gICAgICAgIGNvbnN0IHRhc2tTZWFyY2hUeXBlQ29uZmlnOiBTZWFyY2hDb21wb25lbnRDb25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgc2hvd1NlYXJjaEljb246IHRydWUsXG4gICAgICAgICAgICBzaG93U2VhcmNoVG9nZ2xlQnV0dG9uOiB0YXNrU2VhcmNoVHlwZSA9PT0gU2VhcmNoTW9kZS5BRFZBTkNFRCxcbiAgICAgICAgICAgIGluaXRpYWxTZWFyY2hNb2RlOiAodGFza1NlYXJjaFR5cGUgPT09IHVuZGVmaW5lZCkgPyB1bmRlZmluZWQgOiBTZWFyY2hNb2RlLkZVTExURVhULFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhc2tWaWV3SGVhZGVyc0NoYW5nZWFibGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfSEVBREVSU19DSEFOR0VBQkxFKTtcbiAgICAgICAgY29uc3QgdGFza1ZpZXdIZWFkZXJzTW9kZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nW10+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfSEVBREVSU19NT0RFKTtcbiAgICAgICAgY29uc3QgdGFza1ZpZXdBbGxvd1RhYmxlTW9kZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19BTExPV19UQUJMRV9NT0RFKTtcbiAgICAgICAgY29uc3QgdGFza1ZpZXdEZWZhdWx0SGVhZGVyc01vZGUgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZ1tdPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9UQVNLX0RFRkFVTFRfSEVBREVSU19NT0RFKTtcbiAgICAgICAgY29uc3QgdGFza1ZpZXdBZGRpdGlvbmFsRmlsdGVyID0gdGhpcy5leHRyYWN0aW9uU2VydmljZS5leHRyYWN0Q29tcGxldGVBZGRpdGlvbmFsRmlsdGVyRnJvbURhdGEodGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSk7XG4gICAgICAgIGNvbnN0IG1lcmdlV2l0aEJhc2VGaWx0ZXIgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX01FUkdFX0ZJTFRFUlMpO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsQWxsb3dlZE5ldHMgPSB0aGlzLmV4dHJhY3Rpb25TZXJ2aWNlLmV4dHJhY3RBZGRpdGlvbmFsRmlsdGVyQWxsb3dlZE5ldHModGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSk/LmFsbG93ZWROZXRzSWRlbnRpZmllcnM7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDoge3RleHQ6IGxhYmVsRGF0YS5uYW1lLCBpY29uOiBsYWJlbERhdGEuaWNvbn0sXG4gICAgICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRhYkNvbnRlbnRDb21wb25lbnQ6IERlZmF1bHRUYWJiZWRDYXNlVmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbmplY3RlZE9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0YWJWaWV3Q29tcG9uZW50OiBEZWZhdWx0VGFiYmVkVGFza1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhYlZpZXdPcmRlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YTogdGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSxcblxuICAgICAgICAgICAgICAgICAgICBuZXdDYXNlQnV0dG9uQ29uZmlndXJhdGlvbjogbmV3Q2FzZUJ1dHRvbkNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgY2FzZVZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbjogY2FzZVNlYXJjaFR5cGVDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGNhc2VWaWV3U2hvd01vcmVNZW51OiBjYXNlU2hvd01vcmVNZW51LFxuICAgICAgICAgICAgICAgICAgICBjYXNlVmlld0hlYWRlcnNDaGFuZ2VhYmxlOiBjYXNlVmlld0hlYWRlcnNDaGFuZ2VhYmxlLFxuICAgICAgICAgICAgICAgICAgICBjYXNlVmlld0hlYWRlcnNNb2RlOiBjYXNlVmlld0hlYWRlcnNNb2RlLFxuICAgICAgICAgICAgICAgICAgICBjYXNlVmlld0FsbG93VGFibGVNb2RlOiBjYXNlVmlld0FsbG93VGFibGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICBjYXNlVmlld0RlZmF1bHRIZWFkZXJzTW9kZTogY2FzZVZpZXdEZWZhdWx0SGVhZGVyc01vZGUsXG4gICAgICAgICAgICAgICAgICAgIGNhc2VWaWV3QWxsb3dFeHBvcnQ6IGNhc2VWaWV3QWxsb3dFeHBvcnQsXG5cbiAgICAgICAgICAgICAgICAgICAgdGFza1ZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbjogdGFza1NlYXJjaFR5cGVDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHRhc2tWaWV3U2hvd01vcmVNZW51OiB0YXNrU2hvd01vcmVNZW51LFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld0hlYWRlcnNDaGFuZ2VhYmxlOiB0YXNrVmlld0hlYWRlcnNDaGFuZ2VhYmxlLFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld0hlYWRlcnNNb2RlOiB0YXNrVmlld0hlYWRlcnNNb2RlLFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld0FsbG93VGFibGVNb2RlOiB0YXNrVmlld0FsbG93VGFibGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICB0YXNrVmlld0RlZmF1bHRIZWFkZXJzTW9kZTogdGFza1ZpZXdEZWZhdWx0SGVhZGVyc01vZGUsXG4gICAgICAgICAgICAgICAgICAgIHRhc2tWaWV3TWVyZ2VXaXRoQmFzZUZpbHRlcjogbWVyZ2VXaXRoQmFzZUZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgdGFza1ZpZXdBZGRpdGlvbmFsRmlsdGVyOiB0YXNrVmlld0FkZGl0aW9uYWxGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIHRhc2tWaWV3QWRkaXRpb25hbEFsbG93ZWROZXRzOiBhZGRpdGlvbmFsQWxsb3dlZE5ldHNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYXNrVGFicygpOiBUYWJDb250ZW50W10ge1xuICAgICAgICBjb25zdCBsYWJlbERhdGEgPSBleHRyYWN0SWNvbkFuZFRpdGxlKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICAgICAgY29uc3QgdGFza1NlYXJjaFR5cGUgPSBleHRyYWN0U2VhcmNoVHlwZUZyb21EYXRhKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX1RBU0tfVklFV19TRUFSQ0hfVFlQRSk7XG4gICAgICAgIGNvbnN0IGhlYWRlcnNDaGFuZ2VhYmxlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9UQVNLX0hFQURFUlNfQ0hBTkdFQUJMRSk7XG4gICAgICAgIGNvbnN0IGhlYWRlcnNNb2RlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmdbXT4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19IRUFERVJTX01PREUpO1xuICAgICAgICBjb25zdCBhbGxvd1RhYmxlTW9kZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8Ym9vbGVhbj4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19BTExPV19UQUJMRV9NT0RFKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdEhlYWRlcnNNb2RlID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmdbXT4odGhpcy5fbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfVEFTS19ERUZBVUxUX0hFQURFUlNfTU9ERSk7XG4gICAgICAgIGNvbnN0IHNob3dUb2dnbGVCdXR0b24gPSB0YXNrU2VhcmNoVHlwZSA9PT0gU2VhcmNoTW9kZS5BRFZBTkNFRFxuICAgICAgICBjb25zdCBzZWFyY2hUeXBlQ29uZmlnOiBTZWFyY2hDb21wb25lbnRDb25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgc2hvd1NlYXJjaEljb246IHRydWUsXG4gICAgICAgICAgICBzaG93U2VhcmNoVG9nZ2xlQnV0dG9uOiBzaG93VG9nZ2xlQnV0dG9uLFxuICAgICAgICAgICAgaW5pdGlhbFNlYXJjaE1vZGU6ICh0YXNrU2VhcmNoVHlwZSA9PT0gdW5kZWZpbmVkKSA/IHVuZGVmaW5lZCA6IFNlYXJjaE1vZGUuRlVMTFRFWFQsXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvd01vcmVNZW51ID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPih0aGlzLl9uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9UQVNLX1NIT1dfTU9SRV9NRU5VKTtcblxuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmV4dHJhY3Rpb25TZXJ2aWNlLmV4dHJhY3RDb21wbGV0ZUZpbHRlckZyb21EYXRhKHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB7dGV4dDogbGFiZWxEYXRhLm5hbWUsIGljb246IGxhYmVsRGF0YS5pY29ufSxcbiAgICAgICAgICAgICAgICBjYW5CZUNsb3NlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFiQ29udGVudENvbXBvbmVudDogRGVmYXVsdFRhYmJlZFRhc2tWaWV3Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtVGFza0RhdGE6IHRoaXMuX25hdmlnYXRpb25JdGVtVGFza0RhdGEsXG4gICAgICAgICAgICAgICAgICAgIGJhc2VGaWx0ZXI6IGZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoVHlwZUNvbmZpZ3VyYXRpb246IHNlYXJjaFR5cGVDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHNob3dNb3JlTWVudTogc2hvd01vcmVNZW51LFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzQ2hhbmdlYWJsZTogaGVhZGVyc0NoYW5nZWFibGUsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNNb2RlOiBoZWFkZXJzTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dUYWJsZU1vZGU6IGFsbG93VGFibGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVyc01vZGU6IGRlZmF1bHRIZWFkZXJzTW9kZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiIGNsYXNzPVwiZnVsbC1oZWlnaHRcIj5cbiAgICA8bmMtdGFiLXZpZXcgW2luaXRpYWxUYWJzXT1cInRhYnNcIiBzdHJldGNoPVwiZmFsc2VcIiBjbGFzcz1cImZ1bGwtaGVpZ2h0IGJsb2NrXCI+PC9uYy10YWItdmlldz5cbjwvZGl2PlxuIl19
@@ -1,20 +1,28 @@
1
1
  import { Component, Inject, ViewChild } from '@angular/core';
2
- import { AbstractTabbedCaseViewComponent, AllowedNetsService, AllowedNetsServiceFactory, BaseAllowedNetsService, CaseViewService, CategoryFactory, CategoryResolverService, FilterExtractionService, FilterType, HeaderMode, MergeOperator, NAE_BASE_FILTER, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_SEARCH_CATEGORIES, NAE_TAB_DATA, SearchService, SimpleFilter, ViewIdService, navigationItemCaseViewDefaultHeadersFactory, NAE_NAVIGATION_ITEM_TASK_DATA, OverflowService, } from '@netgrif/components-core';
2
+ import { AbstractTabbedCaseViewComponent, AllowedNetsService, AllowedNetsServiceFactory, BaseAllowedNetsService, CaseViewService, CategoryFactory, CategoryResolverService, FilterExtractionService, FilterType, HeaderMode, MergeOperator, NAE_BASE_FILTER, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_SEARCH_CATEGORIES, NAE_TAB_DATA, SearchService, SimpleFilter, ViewIdService, navigationItemCaseViewDefaultHeadersFactory, NAE_NAVIGATION_ITEM_TASK_DATA, OverflowService, LoadingEmitter } from '@netgrif/components-core';
3
3
  import { filterCaseTabbedDataAllowedNetsServiceFactory, filterCaseTabbedDataFilterFactory, filterCaseTabbedDataSearchCategoriesFactory } from '../model/factory-methods';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@netgrif/components-core";
6
- import * as i2 from "../../../breadcrumbs/breadcrumbs.component";
7
- import * as i3 from "../../../../search/search-component/search.component";
8
- import * as i4 from "../../../../view/case-view/components/create-case-button/create-case-button.component";
9
- import * as i5 from "../../../../header/header.component";
10
- import * as i6 from "../../../../view/case-view/components/case-list/case-list.component";
11
- import * as i7 from "@angular/flex-layout/flex";
12
- import * as i8 from "@angular/common";
13
- import * as i9 from "@angular/flex-layout/extended";
6
+ import * as i2 from "@ngx-translate/core";
7
+ import * as i3 from "../../../breadcrumbs/breadcrumbs.component";
8
+ import * as i4 from "../../../../search/search-component/search.component";
9
+ import * as i5 from "@angular/material/button";
10
+ import * as i6 from "@angular/material/icon";
11
+ import * as i7 from "../../../../view/case-view/components/create-case-button/create-case-button.component";
12
+ import * as i8 from "../../../../header/header.component";
13
+ import * as i9 from "../../../../view/case-view/components/case-list/case-list.component";
14
+ import * as i10 from "@angular/flex-layout/flex";
15
+ import * as i11 from "@angular/common";
16
+ import * as i12 from "@angular/flex-layout/extended";
14
17
  export class DefaultTabbedCaseViewComponent extends AbstractTabbedCaseViewComponent {
15
- constructor(caseViewService, loggerService, viewIdService, overflowService, _injectedTabData) {
18
+ constructor(caseViewService, _exportService, _searchService, _snackbar, _translate, loggerService, viewIdService, overflowService, _injectedTabData) {
16
19
  super(caseViewService, loggerService, _injectedTabData, overflowService, undefined, undefined, _injectedTabData.newCaseButtonConfiguration);
20
+ this._exportService = _exportService;
21
+ this._searchService = _searchService;
22
+ this._snackbar = _snackbar;
23
+ this._translate = _translate;
17
24
  this._injectedTabData = _injectedTabData;
25
+ this._currentHeaders = [];
18
26
  this.initialSearchMode = _injectedTabData.caseViewSearchTypeConfiguration.initialSearchMode;
19
27
  this.showToggleButton = _injectedTabData.caseViewSearchTypeConfiguration.showSearchToggleButton;
20
28
  this.enableSearch = _injectedTabData.caseViewSearchTypeConfiguration.initialSearchMode !== undefined;
@@ -24,6 +32,11 @@ export class DefaultTabbedCaseViewComponent extends AbstractTabbedCaseViewCompon
24
32
  this.headersMode = _injectedTabData.caseViewHeadersMode ? _injectedTabData.caseViewHeadersMode : [];
25
33
  this.allowTableMode = this._injectedTabData.caseViewAllowTableMode;
26
34
  this.defaultHeadersMode = this.resolveHeaderMode(_injectedTabData.caseViewDefaultHeadersMode);
35
+ this.allowExport = this._injectedTabData.caseViewAllowExport;
36
+ this.loading$ = new LoadingEmitter();
37
+ this._headersSub = this.selectedHeaders$.subscribe(headers => {
38
+ this._currentHeaders = headers;
39
+ });
27
40
  if (!this.allowTableMode) {
28
41
  const viewId = viewIdService.viewId;
29
42
  localStorage.setItem(viewId + '-overflowMode', 'false');
@@ -108,8 +121,27 @@ export class DefaultTabbedCaseViewComponent extends AbstractTabbedCaseViewCompon
108
121
  return undefined;
109
122
  }
110
123
  }
124
+ isLoading() {
125
+ return this.loading$.isActive;
126
+ }
127
+ export() {
128
+ if (this.loading$.isActive) {
129
+ return;
130
+ }
131
+ this.loading$.on();
132
+ this._exportService.downloadExcelFromCurrentSelection(this._searchService.activeFilter, this._currentHeaders).subscribe(() => {
133
+ this.loading$.off();
134
+ }, error => {
135
+ this._loggerService.error('File download failed', error);
136
+ this._snackbar.openErrorSnackBar(this._translate.instant('export.errorExportDownload'));
137
+ this.loading$.off();
138
+ });
139
+ }
140
+ ngOnDestroy() {
141
+ this.loading$.complete();
142
+ }
111
143
  }
112
- DefaultTabbedCaseViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedCaseViewComponent, deps: [{ token: i1.CaseViewService }, { token: i1.LoggerService }, { token: i1.ViewIdService }, { token: i1.OverflowService }, { token: NAE_TAB_DATA }], target: i0.ɵɵFactoryTarget.Component });
144
+ DefaultTabbedCaseViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedCaseViewComponent, deps: [{ token: i1.CaseViewService }, { token: i1.ExportService }, { token: i1.SearchService }, { token: i1.SnackBarService }, { token: i2.TranslateService }, { token: i1.LoggerService }, { token: i1.ViewIdService }, { token: i1.OverflowService }, { token: NAE_TAB_DATA }], target: i0.ɵɵFactoryTarget.Component });
113
145
  DefaultTabbedCaseViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DefaultTabbedCaseViewComponent, selector: "nc-default-tabbed-case-view", providers: [
114
146
  CategoryFactory,
115
147
  CaseViewService,
@@ -136,7 +168,7 @@ DefaultTabbedCaseViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
136
168
  useFactory: navigationItemCaseViewDefaultHeadersFactory,
137
169
  deps: [NAE_NAVIGATION_ITEM_TASK_DATA]
138
170
  }
139
- ], viewQueries: [{ propertyName: "caseHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"], components: [{ type: i2.BreadcrumbsComponent, selector: "nc-breadcrumbs" }, { type: i3.SearchComponent, selector: "nc-search" }, { type: i4.CreateCaseButtonComponent, selector: "nc-create-case-button", inputs: ["newCaseCreationConfig", "disabled"], outputs: ["caseCreatedEvent"] }, { type: i5.HeaderComponent, selector: "nc-header" }, { type: i6.CaseListComponent, selector: "nc-case-list" }], directives: [{ type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i9.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }] });
171
+ ], viewQueries: [{ propertyName: "caseHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"allowExport\">\n <button mat-mini-fab color=\"primary\" class=\"export-mat-mini-fab\" (click)=\"export()\"\n [disabled]=\"isLoading()\">\n <mat-icon class=\"net-upload\" *ngIf=\"(isLoading()) === false\" aria-hidden=\"false\" >save_alt</mat-icon>\n <mat-icon class=\"net-upload\" *ngIf=\"isLoading()\" aria-hidden=\"false\">schedule</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.button-icon{padding-right:4px;padding-bottom:2px}.export-mat-mini-fab{border-radius:6px;box-shadow:none;height:44px!important;min-width:44px;margin-right:8px;margin-top:2px}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"], components: [{ type: i3.BreadcrumbsComponent, selector: "nc-breadcrumbs" }, { type: i4.SearchComponent, selector: "nc-search" }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.CreateCaseButtonComponent, selector: "nc-create-case-button", inputs: ["newCaseCreationConfig", "disabled"], outputs: ["caseCreatedEvent"] }, { type: i8.HeaderComponent, selector: "nc-header" }, { type: i9.CaseListComponent, selector: "nc-case-list" }], directives: [{ type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i12.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }] });
140
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedCaseViewComponent, decorators: [{
141
173
  type: Component,
142
174
  args: [{ selector: 'nc-default-tabbed-case-view', providers: [
@@ -165,12 +197,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
165
197
  useFactory: navigationItemCaseViewDefaultHeadersFactory,
166
198
  deps: [NAE_NAVIGATION_ITEM_TASK_DATA]
167
199
  }
168
- ], template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"] }]
169
- }], ctorParameters: function () { return [{ type: i1.CaseViewService }, { type: i1.LoggerService }, { type: i1.ViewIdService }, { type: i1.OverflowService }, { type: undefined, decorators: [{
200
+ ], template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"allowExport\">\n <button mat-mini-fab color=\"primary\" class=\"export-mat-mini-fab\" (click)=\"export()\"\n [disabled]=\"isLoading()\">\n <mat-icon class=\"net-upload\" *ngIf=\"(isLoading()) === false\" aria-hidden=\"false\" >save_alt</mat-icon>\n <mat-icon class=\"net-upload\" *ngIf=\"isLoading()\" aria-hidden=\"false\">schedule</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.button-icon{padding-right:4px;padding-bottom:2px}.export-mat-mini-fab{border-radius:6px;box-shadow:none;height:44px!important;min-width:44px;margin-right:8px;margin-top:2px}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"] }]
201
+ }], ctorParameters: function () { return [{ type: i1.CaseViewService }, { type: i1.ExportService }, { type: i1.SearchService }, { type: i1.SnackBarService }, { type: i2.TranslateService }, { type: i1.LoggerService }, { type: i1.ViewIdService }, { type: i1.OverflowService }, { type: undefined, decorators: [{
170
202
  type: Inject,
171
203
  args: [NAE_TAB_DATA]
172
204
  }] }]; }, propDecorators: { caseHeaderComponent: [{
173
205
  type: ViewChild,
174
206
  args: ['header']
175
207
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL2RlZmF1bHQtdGFiYmVkLWNhc2Utdmlldy9kZWZhdWx0LXRhYmJlZC1jYXNlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWNvbXBvbmVudHMvZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3L2RlZmF1bHQtdGFiYmVkLWNhc2Utdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdEIsZUFBZSxFQUNmLGVBQWUsRUFDZix1QkFBdUIsRUFFdkIsdUJBQXVCLEVBQ3ZCLFVBQVUsRUFDVixVQUFVLEVBRVYsYUFBYSxFQUNiLGVBQWUsRUFDZixrQ0FBa0MsRUFDbEMsbUJBQW1CLEVBQ25CLGtDQUFrQyxFQUNsQyxxQkFBcUIsRUFDckIsWUFBWSxFQUdaLGFBQWEsRUFDYixZQUFZLEVBQ1osYUFBYSxFQUNiLDJDQUEyQyxFQUMzQyw2QkFBNkIsRUFDN0IsZUFBZSxHQUNsQixNQUFNLDBCQUEwQixDQUFDO0FBS2xDLE9BQU8sRUFDSCw2Q0FBNkMsRUFDN0MsaUNBQWlDLEVBQ2pDLDJD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aUM7NEJBQzdDLElBQUksRUFBRSxDQUFDLHVCQUF1QixFQUFFLFlBQVksQ0FBQzt5QkFDaEQ7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLDZDQUE2Qzs0QkFDekQsSUFBSSxFQUFFLENBQUMseUJBQXlCLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxDQUFDO3lCQUMxRTt3QkFDRDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixVQUFVLEVBQUUsMkNBQTJDOzRCQUN2RCxJQUFJLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsa0NBQWtDLEVBQUUsa0NBQWtDLENBQUM7eUJBQ3hIO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFVBQVUsRUFBRSwyQ0FBMkM7NEJBQ3ZELElBQUksRUFBRSxDQUFDLDZCQUE2QixDQUFDO3lCQUN4QztxQkFDSjs7MEJBb0JZLE1BQU07MkJBQUMsWUFBWTs0Q0FoQkosbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFRhYmJlZENhc2VWaWV3Q29tcG9uZW50LFxuICAgIEFsbG93ZWROZXRzU2VydmljZSxcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIEJhc2VBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgQ2FzZSxcbiAgICBDYXNlVmlld1NlcnZpY2UsXG4gICAgQ2F0ZWdvcnlGYWN0b3J5LFxuICAgIENhdGVnb3J5UmVzb2x2ZXJTZXJ2aWNlLFxuICAgIEZpbHRlcixcbiAgICBGaWx0ZXJFeHRyYWN0aW9uU2VydmljZSxcbiAgICBGaWx0ZXJUeXBlLFxuICAgIEhlYWRlck1vZGUsXG4gICAgTG9nZ2VyU2VydmljZSxcbiAgICBNZXJnZU9wZXJhdG9yLFxuICAgIE5BRV9CQVNFX0ZJTFRFUixcbiAgICBOQUVfREVGQVVMVF9DQVNFX1NFQVJDSF9DQVRFR09SSUVTLFxuICAgIE5BRV9ERUZBVUxUX0hFQURFUlMsXG4gICAgTkFFX0RFRkFVTFRfVEFTS19TRUFSQ0hfQ0FURUdPUklFUyxcbiAgICBOQUVfU0VBUkNIX0NBVEVHT1JJRVMsXG4gICAgTkFFX1RBQl9EQVRBLFxuICAgIFNhdmVkRmlsdGVyTWV0YWRhdGEsXG4gICAgU2VhcmNoTW9kZSxcbiAgICBTZWFyY2hTZXJ2aWNlLFxuICAgIFNpbXBsZUZpbHRlcixcbiAgICBWaWV3SWRTZXJ2aWNlLFxuICAgIG5hdmlnYXRpb25JdGVtQ2FzZVZpZXdEZWZhdWx0SGVhZGVyc0ZhY3RvcnksXG4gICAgTkFFX05BVklHQVRJT05fSVRFTV9UQVNLX0RBVEEsXG4gICAgT3ZlcmZsb3dTZXJ2aWNlLFxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtIZWFkZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgSW5qZWN0ZWRUYWJiZWRDYXNlVmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YVxufSBmcm9tICcuLi9tb2RlbC9pbmplY3RlZC10YWJiZWQtY2FzZS12aWV3LWRhdGEtd2l0aC1uYXZpZ2F0aW9uLWl0ZW0tdGFzay1kYXRhJztcbmltcG9ydCB7XG4gICAgZmlsdGVyQ2FzZVRhYmJlZERhdGFBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIGZpbHRlckNhc2VUYWJiZWREYXRhRmlsdGVyRmFjdG9yeSxcbiAgICBmaWx0ZXJDYXNlVGFiYmVkRGF0YVNlYXJjaENhdGVnb3JpZXNGYWN0b3J5XG59IGZyb20gJy4uL21vZGVsL2ZhY3RvcnktbWV0aG9kcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LXRhYmJlZC1jYXNlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ2F0ZWdvcnlGYWN0b3J5LFxuICAgICAgICBDYXNlVmlld1NlcnZpY2UsXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIFZpZXdJZFNlcnZpY2UsXG4gICAgICAgIE92ZXJmbG93U2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0JBU0VfRklMVEVSLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogZmlsdGVyQ2FzZVRhYmJlZERhdGFGaWx0ZXJGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW0ZpbHRlckV4dHJhY3Rpb25TZXJ2aWNlLCBOQUVfVEFCX0RBVEFdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFsbG93ZWROZXRzU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGZpbHRlckNhc2VUYWJiZWREYXRhQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LCBCYXNlQWxsb3dlZE5ldHNTZXJ2aWNlLCBOQUVfVEFCX0RBVEFdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9TRUFSQ0hfQ0FURUdPUklFUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGZpbHRlckNhc2VUYWJiZWREYXRhU2VhcmNoQ2F0ZWdvcmllc0ZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbQ2F0ZWdvcnlSZXNvbHZlclNlcnZpY2UsIE5BRV9UQUJfREFUQSwgTkFFX0RFRkFVTFRfQ0FTRV9TRUFSQ0hfQ0FURUdPUklFUywgTkFFX0RFRkFVTFRfVEFTS19TRUFSQ0hfQ0FURUdPUklFU11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0RFRkFVTFRfSEVBREVSUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG5hdmlnYXRpb25JdGVtQ2FzZVZpZXdEZWZhdWx0SGVhZGVyc0ZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbTkFFX05BVklHQVRJT05fSVRFTV9UQVNLX0RBVEFdXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRUYWJiZWRDYXNlVmlld0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VGFiYmVkQ2FzZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIHB1YmxpYyBjYXNlSGVhZGVyQ29tcG9uZW50OiBIZWFkZXJDb21wb25lbnQ7XG5cbiAgICBpbml0aWFsU2VhcmNoTW9kZTogU2VhcmNoTW9kZTtcbiAgICBzaG93VG9nZ2xlQnV0dG9uOiBib29sZWFuO1xuICAgIGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcbiAgICBzaG93Q3JlYXRlQ2FzZUJ1dHRvbjogYm9vbGVhbjtcbiAgICBzaG93RGVsZXRlTWVudTogYm9vbGVhbjtcbiAgICBoZWFkZXJzQ2hhbmdlYWJsZTogYm9vbGVhbjtcbiAgICBoZWFkZXJzTW9kZTogc3RyaW5nW107XG4gICAgYWxsb3dUYWJsZU1vZGU6IGJvb2xlYW47XG4gICAgZGVmYXVsdEhlYWRlcnNNb2RlOiBIZWFkZXJNb2RlO1xuXG4gICAgY29uc3RydWN0b3IoY2FzZVZpZXdTZXJ2aWNlOiBDYXNlVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICB2aWV3SWRTZXJ2aWNlOiBWaWV3SWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX1RBQl9EQVRBKSBwcm90ZWN0ZWQgX2luamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJiZWRDYXNlVmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSkge1xuICAgICAgICBzdXBlcihjYXNlVmlld1NlcnZpY2UsIGxvZ2dlclNlcnZpY2UsIF9pbmplY3RlZFRhYkRhdGEsIG92ZXJmbG93U2VydmljZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIF9pbmplY3RlZFRhYkRhdGEubmV3Q2FzZUJ1dHRvbkNvbmZpZ3VyYXRpb24pO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbFNlYXJjaE1vZGUgPSBfaW5qZWN0ZWRUYWJEYXRhLmNhc2VWaWV3U2VhcmNoVHlwZUNvbmZpZ3VyYXRpb24uaW5pdGlhbFNlYXJjaE1vZGU7XG4gICAgICAgIHRoaXMuc2hvd1RvZ2dsZUJ1dHRvbiA9IF9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbi5zaG93U2VhcmNoVG9nZ2xlQnV0dG9uO1xuICAgICAgICB0aGlzLmVuYWJsZVNlYXJjaCA9IF9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbi5pbml0aWFsU2VhcmNoTW9kZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnNob3dDcmVhdGVDYXNlQnV0dG9uID0gX2luamVjdGVkVGFiRGF0YS5uZXdDYXNlQnV0dG9uQ29uZmlndXJhdGlvbj8ubmV3Q2FzZUJ1dHRvbkNvbmZpZz8uc2hvd0NyZWF0ZUNhc2VCdXR0b247XG4gICAgICAgIHRoaXMuc2hvd0RlbGV0ZU1lbnUgPSBfaW5qZWN0ZWRUYWJEYXRhLmNhc2VWaWV3U2hvd01vcmVNZW51O1xuICAgICAgICB0aGlzLmhlYWRlcnNDaGFuZ2VhYmxlID0gX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld0hlYWRlcnNDaGFuZ2VhYmxlO1xuICAgICAgICB0aGlzLmhlYWRlcnNNb2RlID0gX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld0hlYWRlcnNNb2RlID8gX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld0hlYWRlcnNNb2RlIDogW107XG4gICAgICAgIHRoaXMuYWxsb3dUYWJsZU1vZGUgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdBbGxvd1RhYmxlTW9kZTtcbiAgICAgICAgdGhpcy5kZWZhdWx0SGVhZGVyc01vZGUgPSB0aGlzLnJlc29sdmVIZWFkZXJNb2RlKF9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdEZWZhdWx0SGVhZGVyc01vZGUpO1xuXG4gICAgICAgIGlmICghdGhpcy5hbGxvd1RhYmxlTW9kZSkge1xuICAgICAgICAgICAgY29uc3Qgdmlld0lkID0gdmlld0lkU2VydmljZS52aWV3SWQ7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLW92ZXJmbG93TW9kZScsICdmYWxzZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplSGVhZGVyKHRoaXMuY2FzZUhlYWRlckNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY2FzZUhlYWRlckNvbXBvbmVudC5jaGFuZ2VIZWFkZXJzTW9kZSh0aGlzLmRlZmF1bHRIZWFkZXJzTW9kZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGxvYWRGaWx0ZXIoZmlsdGVyRGF0YTogU2F2ZWRGaWx0ZXJNZXRhZGF0YSkge1xuICAgICAgICB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVmlld1JlZi5vcGVuVGFiKHtcbiAgICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogZmlsdGVyRGF0YS5maWx0ZXIudGl0bGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYW5CZUNsb3NlZDogdHJ1ZSxcbiAgICAgICAgICAgIHRhYkNvbnRlbnRDb21wb25lbnQ6IERlZmF1bHRUYWJiZWRDYXNlVmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7Li4udGhpcy5faW5qZWN0ZWRUYWJEYXRhLCBsb2FkRmlsdGVyOiBmaWx0ZXJEYXRhLmZpbHRlcn0sXG4gICAgICAgICAgICBvcmRlcjogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhYlZpZXdPcmRlcixcbiAgICAgICAgICAgIHBhcmVudFVuaXF1ZUlkOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVW5pcXVlSWRcbiAgICAgICAgfSwgdGhpcy5fYXV0b3N3aXRjaFRvVGFza1RhYiwgdGhpcy5fb3BlbkV4aXN0aW5nVGFiKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3BlblRhYihvcGVuQ2FzZTogQ2FzZSkge1xuICAgICAgICB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVmlld1JlZi5vcGVuVGFiKHtcbiAgICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogb3BlbkNhc2UudGl0bGUsXG4gICAgICAgICAgICAgICAgaWNvbjogb3BlbkNhc2UuaWNvbiA/IG9wZW5DYXNlLmljb24gOiAnY2hlY2tfYm94J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbkJlQ2xvc2VkOiB0cnVlLFxuICAgICAgICAgICAgdGFiQ29udGVudENvbXBvbmVudDogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhYlZpZXdDb21wb25lbnQsXG4gICAgICAgICAgICBpbmplY3RlZE9iamVjdDoge1xuICAgICAgICAgICAgICAgIGJhc2VGaWx0ZXI6IHRoaXMucmVzb2x2ZUZpbHRlcihvcGVuQ2FzZSksXG4gICAgICAgICAgICAgICAgYWxsb3dlZE5ldHM6IHRoaXMucmVzb2x2ZUFsbG93ZWROZXRzKG9wZW5DYXNlKSxcbiAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbVRhc2tEYXRhOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEubmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSxcbiAgICAgICAgICAgICAgICBzZWFyY2hUeXBlQ29uZmlndXJhdGlvbjogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhc2tWaWV3U2VhcmNoVHlwZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICAgICAgc2hvd01vcmVNZW51OiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdTaG93TW9yZU1lbnUsXG4gICAgICAgICAgICAgICAgaGVhZGVyc0NoYW5nZWFibGU6IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld0hlYWRlcnNDaGFuZ2VhYmxlLFxuICAgICAgICAgICAgICAgIGhlYWRlcnNNb2RlOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdIZWFkZXJzTW9kZSxcbiAgICAgICAgICAgICAgICBhbGxvd1RhYmxlTW9kZTogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhc2tWaWV3QWxsb3dUYWJsZU1vZGUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnNNb2RlOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdEZWZhdWx0SGVhZGVyc01vZGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcmRlcjogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhYlZpZXdPcmRlcixcbiAgICAgICAgICAgIHBhcmVudFVuaXF1ZUlkOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVW5pcXVlSWRcbiAgICAgICAgfSwgdGhpcy5fYXV0b3N3aXRjaFRvVGFza1RhYiwgdGhpcy5fb3BlbkV4aXN0aW5nVGFiKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUZpbHRlcihvcGVuQ2FzZTogQ2FzZSk6IEZpbHRlciB7XG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWxGaWx0ZXIgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdBZGRpdGlvbmFsRmlsdGVyO1xuICAgICAgICBjb25zdCBtZXJnZUZpbHRlcnMgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdNZXJnZVdpdGhCYXNlRmlsdGVyO1xuICAgICAgICBjb25zdCBiYXNlRmlsdGVyID0gbmV3IFNpbXBsZUZpbHRlcignJywgRmlsdGVyVHlwZS5UQVNLLCB7Y2FzZToge2lkOiBgJHtvcGVuQ2FzZS5zdHJpbmdJZH1gfX0pO1xuXG4gICAgICAgIGxldCBmaWx0ZXI7XG4gICAgICAgIGlmIChhZGRpdGlvbmFsRmlsdGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGJhc2VGaWx0ZXI7XG4gICAgICAgIH0gZWxzZSBpZiAobWVyZ2VGaWx0ZXJzKSB7XG4gICAgICAgICAgICBmaWx0ZXIgPSBhZGRpdGlvbmFsRmlsdGVyLm1lcmdlKGJhc2VGaWx0ZXIsIE1lcmdlT3BlcmF0b3IuQU5EKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGFkZGl0aW9uYWxGaWx0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlQWxsb3dlZE5ldHMob3BlbkNhc2U6IENhc2UpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWxGaWx0ZXIgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdBZGRpdGlvbmFsRmlsdGVyO1xuICAgICAgICBpZiAoYWRkaXRpb25hbEZpbHRlciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBbb3BlbkNhc2UucHJvY2Vzc0lkZW50aWZpZXJdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWVyZ2VGaWx0ZXJzID0gdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhc2tWaWV3TWVyZ2VXaXRoQmFzZUZpbHRlcjtcbiAgICAgICAgY29uc3QgYWRkaXRpb25hbEFsbG93ZWROZXRzID0gdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhc2tWaWV3QWRkaXRpb25hbEFsbG93ZWROZXRzID8gdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhc2tWaWV3QWRkaXRpb25hbEFsbG93ZWROZXRzIDogW107XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlRmlsdGVycyA/IFtvcGVuQ2FzZS5wcm9jZXNzSWRlbnRpZmllciwgLi4uYWRkaXRpb25hbEFsbG93ZWROZXRzXSA6IGFkZGl0aW9uYWxBbGxvd2VkTmV0c1xuICAgIH1cblxuICAgIGlzTWVudU9wdGlvbkVuYWJsZWQob3B0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyc01vZGUuc29tZShlID0+IGUgPT09IG9wdGlvbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVIZWFkZXJNb2RlKG1vZGU6IHN0cmluZyk6IEhlYWRlck1vZGUge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBIZWFkZXJNb2RlLlNPUlQ7XG4gICAgICAgICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGVhZGVyTW9kZS5FRElUO1xuICAgICAgICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGVhZGVyTW9kZS5TRUFSQ0g7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FzZS12aWV3LWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIj5cbiAgICA8bmMtYnJlYWRjcnVtYnM+PC9uYy1icmVhZGNydW1icz5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXNlLXZpZXctc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJtYXgtaGVpZ2h0XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleD5cbiAgICAgICAgICAgICAgICA8bmMtc2VhcmNoIGNsYXNzPVwic2VhcmNoLXdpZHRoIHNlYXJjaC1maXhcIiAqbmdJZj1cIihlbmFibGVTZWFyY2gpXCIgW3Nob3dTZWFyY2hUb2dnbGVCdXR0b25dPVwic2hvd1RvZ2dsZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5pdGlhbFNlYXJjaE1vZGVdPVwiaW5pdGlhbFNlYXJjaE1vZGVcIiAoZmlsdGVyTG9hZGVkKT1cImxvYWRGaWx0ZXIoJGV2ZW50KVwiPjwvbmMtc2VhcmNoPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgKm5nSWY9XCJzaG93Q3JlYXRlQ2FzZUJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxuYy1jcmVhdGUtY2FzZS1idXR0b24gW25ld0Nhc2VDcmVhdGlvbkNvbmZpZ109XCJuZXdDYXNlQ3JlYXRpb25Db25maWdcIiAoY2FzZUNyZWF0ZWRFdmVudCk9XCJoYW5kbGVDYXNlQ2xpY2soJGV2ZW50KVwiPjwvbmMtY3JlYXRlLWNhc2UtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZ1bGwtaGVpZ2h0IHRyYW5zZm9ybS1kaXYgY3VzdG9tLXNjcm9sbGJhclwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7J292ZXJmbG93LWRpdic6IGdldE92ZXJmbG93U3RhdHVzKCl9XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnVsbC1oZWlnaHQgdHJhbnNmb3JtLWRpdiBtYXgtd2lkdGgtZml4XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgPG5jLWhlYWRlciAjaGVhZGVyIFt0eXBlXT1cImhlYWRlclR5cGVcIiBbbWF4SGVhZGVyQ29sdW1uc109XCI5XCIgW3Jlc3BvbnNpdmVIZWFkZXJzXT1cImZhbHNlXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IGdldFdpZHRoKCl9XCIgW2hpZGVIZWFkZXJNZW51XT1cIiFoZWFkZXJzQ2hhbmdlYWJsZVwiIFtzaG93RWRpdEJ1dHRvbl09XCJpc01lbnVPcHRpb25FbmFibGVkKCdlZGl0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NvcnRCdXR0b25dPVwiaXNNZW51T3B0aW9uRW5hYmxlZCgnc29ydCcpXCIgW3Nob3dTZWFyY2hCdXR0b25dPVwiaXNNZW51T3B0aW9uRW5hYmxlZCgnc2VhcmNoJylcIlxuICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RhYmxlU2VjdGlvbl09XCJhbGxvd1RhYmxlTW9kZVwiIGNsYXNzPVwiY2FzZS1oZWFkZXItcGFkZGluZ1wiPjwvbmMtaGVhZGVyPlxuXG4gICAgICAgICAgICA8bmMtY2FzZS1saXN0IFtzZWxlY3RlZEhlYWRlcnMkXT1cInNlbGVjdGVkSGVhZGVycyRcIiBbdGV4dEVsbGlwc2lzXT1cInRydWVcIiBbc2hvd0RlbGV0ZU1lbnVdPVwic2hvd0RlbGV0ZU1lbnVcIiBbd2lkdGhdPVwiZ2V0V2lkdGgoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjYXNlQ2xpY2spPVwiaGFuZGxlQ2FzZUNsaWNrKCRldmVudClcIiBbcmVzcG9uc2l2ZUJvZHldPVwidHJ1ZVwiIGZ4RmxleD48L25jLWNhc2UtbGlzdD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL2RlZmF1bHQtdGFiYmVkLWNhc2Utdmlldy9kZWZhdWx0LXRhYmJlZC1jYXNlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWNvbXBvbmVudHMvZGVmYXVsdC10YWJiZWQtY2FzZS12aWV3L2RlZmF1bHQtdGFiYmVkLWNhc2Utdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdEIsZUFBZSxFQUNmLGVBQWUsRUFDZix1QkFBdUIsRUFFdkIsdUJBQXVCLEVBQ3ZCLFVBQVUsRUFDVixVQUFVLEVBRVYsYUFBYSxFQUNiLGVBQWUsRUFDZixrQ0FBa0MsRUFDbEMsbUJBQW1CLEVBQ25CLGtDQUFrQyxFQUNsQyxxQkFBcUIsRUFDckIsWUFBWSxFQUdaLGFBQWEsRUFDYixZQUFZLEVBQ1osYUFBYSxFQUNiLDJDQUEyQyxFQUMzQyw2QkFBNkIsRUFDN0IsZUFBZSxFQUNmLGNBQWMsRUFJakIsTUFBTSwwQkFBMEIsQ0FBQztBQUtsQyxPQUFPLEVBQ0gsNkNBQTZDLEVBQzdDLGlDQUFp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S0FDSixnS0M3RUwseTZFQWtDQTs0RkQ2Q2EsOEJBQThCO2tCQWhDMUMsU0FBUzsrQkFDSSw2QkFBNkIsYUFHNUI7d0JBQ1AsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmOzRCQUNJLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsaUNBQWlDOzRCQUM3QyxJQUFJLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLENBQUM7eUJBQ2hEO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFVBQVUsRUFBRSw2Q0FBNkM7NEJBQ3pELElBQUksRUFBRSxDQUFDLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLFlBQVksQ0FBQzt5QkFDMUU7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsVUFBVSxFQUFFLDJDQUEyQzs0QkFDdkQsSUFBSSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLGtDQUFrQyxFQUFFLGtDQUFrQyxDQUFDO3lCQUN4SDt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixVQUFVLEVBQUUsMkNBQTJDOzRCQUN2RCxJQUFJLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzt5QkFDeEM7cUJBQ0o7OzBCQTRCWSxNQUFNOzJCQUFDLFlBQVk7NENBeEJKLG1CQUFtQjtzQkFBOUMsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFRhYmJlZENhc2VWaWV3Q29tcG9uZW50LFxuICAgIEFsbG93ZWROZXRzU2VydmljZSxcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIEJhc2VBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgQ2FzZSxcbiAgICBDYXNlVmlld1NlcnZpY2UsXG4gICAgQ2F0ZWdvcnlGYWN0b3J5LFxuICAgIENhdGVnb3J5UmVzb2x2ZXJTZXJ2aWNlLFxuICAgIEZpbHRlcixcbiAgICBGaWx0ZXJFeHRyYWN0aW9uU2VydmljZSxcbiAgICBGaWx0ZXJUeXBlLFxuICAgIEhlYWRlck1vZGUsXG4gICAgTG9nZ2VyU2VydmljZSxcbiAgICBNZXJnZU9wZXJhdG9yLFxuICAgIE5BRV9CQVNFX0ZJTFRFUixcbiAgICBOQUVfREVGQVVMVF9DQVNFX1NFQVJDSF9DQVRFR09SSUVTLFxuICAgIE5BRV9ERUZBVUxUX0hFQURFUlMsXG4gICAgTkFFX0RFRkFVTFRfVEFTS19TRUFSQ0hfQ0FURUdPUklFUyxcbiAgICBOQUVfU0VBUkNIX0NBVEVHT1JJRVMsXG4gICAgTkFFX1RBQl9EQVRBLFxuICAgIFNhdmVkRmlsdGVyTWV0YWRhdGEsXG4gICAgU2VhcmNoTW9kZSxcbiAgICBTZWFyY2hTZXJ2aWNlLFxuICAgIFNpbXBsZUZpbHRlcixcbiAgICBWaWV3SWRTZXJ2aWNlLFxuICAgIG5hdmlnYXRpb25JdGVtQ2FzZVZpZXdEZWZhdWx0SGVhZGVyc0ZhY3RvcnksXG4gICAgTkFFX05BVklHQVRJT05fSVRFTV9UQVNLX0RBVEEsXG4gICAgT3ZlcmZsb3dTZXJ2aWNlLFxuICAgIExvYWRpbmdFbWl0dGVyLFxuICAgIFNuYWNrQmFyU2VydmljZSxcbiAgICBIZWFkZXJDb2x1bW4sXG4gICAgRXhwb3J0U2VydmljZVxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtIZWFkZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgSW5qZWN0ZWRUYWJiZWRDYXNlVmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YVxufSBmcm9tICcuLi9tb2RlbC9pbmplY3RlZC10YWJiZWQtY2FzZS12aWV3LWRhdGEtd2l0aC1uYXZpZ2F0aW9uLWl0ZW0tdGFzay1kYXRhJztcbmltcG9ydCB7XG4gICAgZmlsdGVyQ2FzZVRhYmJlZERhdGFBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIGZpbHRlckNhc2VUYWJiZWREYXRhRmlsdGVyRmFjdG9yeSxcbiAgICBmaWx0ZXJDYXNlVGFiYmVkRGF0YVNlYXJjaENhdGVnb3JpZXNGYWN0b3J5XG59IGZyb20gJy4uL21vZGVsL2ZhY3RvcnktbWV0aG9kcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1kZWZhdWx0LXRhYmJlZC1jYXNlLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXRhYmJlZC1jYXNlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlZmF1bHQtdGFiYmVkLWNhc2Utdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBDYXRlZ29yeUZhY3RvcnksXG4gICAgICAgIENhc2VWaWV3U2VydmljZSxcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAgVmlld0lkU2VydmljZSxcbiAgICAgICAgT3ZlcmZsb3dTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOQUVfQkFTRV9GSUxURVIsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBmaWx0ZXJDYXNlVGFiYmVkRGF0YUZpbHRlckZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbRmlsdGVyRXh0cmFjdGlvblNlcnZpY2UsIE5BRV9UQUJfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogZmlsdGVyQ2FzZVRhYmJlZERhdGFBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW0FsbG93ZWROZXRzU2VydmljZUZhY3RvcnksIEJhc2VBbGxvd2VkTmV0c1NlcnZpY2UsIE5BRV9UQUJfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX1NFQVJDSF9DQVRFR09SSUVTLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogZmlsdGVyQ2FzZVRhYmJlZERhdGFTZWFyY2hDYXRlZ29yaWVzRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtDYXRlZ29yeVJlc29sdmVyU2VydmljZSwgTkFFX1RBQl9EQVRBLCBOQUVfREVGQVVMVF9DQVNFX1NFQVJDSF9DQVRFR09SSUVTLCBOQUVfREVGQVVMVF9UQVNLX1NFQVJDSF9DQVRFR09SSUVTXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOQUVfREVGQVVMVF9IRUFERVJTLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbmF2aWdhdGlvbkl0ZW1DYXNlVmlld0RlZmF1bHRIZWFkZXJzRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtOQUVfTkFWSUdBVElPTl9JVEVNX1RBU0tfREFUQV1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFRhYmJlZENhc2VWaWV3Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RUYWJiZWRDYXNlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBAVmlld0NoaWxkKCdoZWFkZXInKSBwdWJsaWMgY2FzZUhlYWRlckNvbXBvbmVudDogSGVhZGVyQ29tcG9uZW50O1xuXG4gICAgaW5pdGlhbFNlYXJjaE1vZGU6IFNlYXJjaE1vZGU7XG4gICAgc2hvd1RvZ2dsZUJ1dHRvbjogYm9vbGVhbjtcbiAgICBlbmFibGVTZWFyY2g6IGJvb2xlYW47XG4gICAgc2hvd0NyZWF0ZUNhc2VCdXR0b246IGJvb2xlYW47XG4gICAgc2hvd0RlbGV0ZU1lbnU6IGJvb2xlYW47XG4gICAgaGVhZGVyc0NoYW5nZWFibGU6IGJvb2xlYW47XG4gICAgaGVhZGVyc01vZGU6IHN0cmluZ1tdO1xuICAgIGFsbG93VGFibGVNb2RlOiBib29sZWFuO1xuICAgIGRlZmF1bHRIZWFkZXJzTW9kZTogSGVhZGVyTW9kZTtcbiAgICBhbGxvd0V4cG9ydDogYm9vbGVhbjtcbiAgICBsb2FkaW5nJDogTG9hZGluZ0VtaXR0ZXI7XG4gICAgcHJpdmF0ZSBfY3VycmVudEhlYWRlcnM6IEFycmF5PEhlYWRlckNvbHVtbj4gPSBbXTtcbiAgICBwcml2YXRlIF9oZWFkZXJzU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihjYXNlVmlld1NlcnZpY2U6IENhc2VWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2V4cG9ydFNlcnZpY2U6IEV4cG9ydFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHZpZXdJZFNlcnZpY2U6IFZpZXdJZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChOQUVfVEFCX0RBVEEpIHByb3RlY3RlZCBfaW5qZWN0ZWRUYWJEYXRhOiBJbmplY3RlZFRhYmJlZENhc2VWaWV3RGF0YVdpdGhOYXZpZ2F0aW9uSXRlbVRhc2tEYXRhKSB7XG4gICAgICAgIHN1cGVyKGNhc2VWaWV3U2VydmljZSwgbG9nZ2VyU2VydmljZSwgX2luamVjdGVkVGFiRGF0YSwgb3ZlcmZsb3dTZXJ2aWNlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgX2luamVjdGVkVGFiRGF0YS5uZXdDYXNlQnV0dG9uQ29uZmlndXJhdGlvbik7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsU2VhcmNoTW9kZSA9IF9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbi5pbml0aWFsU2VhcmNoTW9kZTtcbiAgICAgICAgdGhpcy5zaG93VG9nZ2xlQnV0dG9uID0gX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld1NlYXJjaFR5cGVDb25maWd1cmF0aW9uLnNob3dTZWFyY2hUb2dnbGVCdXR0b247XG4gICAgICAgIHRoaXMuZW5hYmxlU2VhcmNoID0gX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld1NlYXJjaFR5cGVDb25maWd1cmF0aW9uLmluaXRpYWxTZWFyY2hNb2RlICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2hvd0NyZWF0ZUNhc2VCdXR0b24gPSBfaW5qZWN0ZWRUYWJEYXRhLm5ld0Nhc2VCdXR0b25Db25maWd1cmF0aW9uPy5uZXdDYXNlQnV0dG9uQ29uZmlnPy5zaG93Q3JlYXRlQ2FzZUJ1dHRvbjtcbiAgICAgICAgdGhpcy5zaG93RGVsZXRlTWVudSA9IF9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdTaG93TW9yZU1lbnU7XG4gICAgICAgIHRoaXMuaGVhZGVyc0NoYW5nZWFibGUgPSBfaW5qZWN0ZWRUYWJEYXRhLmNhc2VWaWV3SGVhZGVyc0NoYW5nZWFibGU7XG4gICAgICAgIHRoaXMuaGVhZGVyc01vZGUgPSBfaW5qZWN0ZWRUYWJEYXRhLmNhc2VWaWV3SGVhZGVyc01vZGUgPyBfaW5qZWN0ZWRUYWJEYXRhLmNhc2VWaWV3SGVhZGVyc01vZGUgOiBbXTtcbiAgICAgICAgdGhpcy5hbGxvd1RhYmxlTW9kZSA9IHRoaXMuX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld0FsbG93VGFibGVNb2RlO1xuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzTW9kZSA9IHRoaXMucmVzb2x2ZUhlYWRlck1vZGUoX2luamVjdGVkVGFiRGF0YS5jYXNlVmlld0RlZmF1bHRIZWFkZXJzTW9kZSk7XG4gICAgICAgIHRoaXMuYWxsb3dFeHBvcnQgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEuY2FzZVZpZXdBbGxvd0V4cG9ydDtcbiAgICAgICAgdGhpcy5sb2FkaW5nJCA9IG5ldyBMb2FkaW5nRW1pdHRlcigpO1xuICAgICAgICB0aGlzLl9oZWFkZXJzU3ViID0gdGhpcy5zZWxlY3RlZEhlYWRlcnMkLnN1YnNjcmliZShoZWFkZXJzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRIZWFkZXJzID0gaGVhZGVycztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmFsbG93VGFibGVNb2RlKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3SWQgPSB2aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHZpZXdJZCArICctb3ZlcmZsb3dNb2RlJywgJ2ZhbHNlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemVIZWFkZXIodGhpcy5jYXNlSGVhZGVyQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy5jYXNlSGVhZGVyQ29tcG9uZW50LmNoYW5nZUhlYWRlcnNNb2RlKHRoaXMuZGVmYXVsdEhlYWRlcnNNb2RlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgbG9hZEZpbHRlcihmaWx0ZXJEYXRhOiBTYXZlZEZpbHRlck1ldGFkYXRhKSB7XG4gICAgICAgIHRoaXMuX2luamVjdGVkVGFiRGF0YS50YWJWaWV3UmVmLm9wZW5UYWIoe1xuICAgICAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBmaWx0ZXJEYXRhLmZpbHRlci50aXRsZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbkJlQ2xvc2VkOiB0cnVlLFxuICAgICAgICAgICAgdGFiQ29udGVudENvbXBvbmVudDogRGVmYXVsdFRhYmJlZENhc2VWaWV3Q29tcG9uZW50LFxuICAgICAgICAgICAgaW5qZWN0ZWRPYmplY3Q6IHsuLi50aGlzLl9pbmplY3RlZFRhYkRhdGEsIGxvYWRGaWx0ZXI6IGZpbHRlckRhdGEuZmlsdGVyfSxcbiAgICAgICAgICAgIG9yZGVyOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVmlld09yZGVyLFxuICAgICAgICAgICAgcGFyZW50VW5pcXVlSWQ6IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YWJVbmlxdWVJZFxuICAgICAgICB9LCB0aGlzLl9hdXRvc3dpdGNoVG9UYXNrVGFiLCB0aGlzLl9vcGVuRXhpc3RpbmdUYWIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVuVGFiKG9wZW5DYXNlOiBDYXNlKSB7XG4gICAgICAgIHRoaXMuX2luamVjdGVkVGFiRGF0YS50YWJWaWV3UmVmLm9wZW5UYWIoe1xuICAgICAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBvcGVuQ2FzZS50aXRsZSxcbiAgICAgICAgICAgICAgICBpY29uOiBvcGVuQ2FzZS5pY29uID8gb3BlbkNhc2UuaWNvbiA6ICdjaGVja19ib3gnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IHRydWUsXG4gICAgICAgICAgICB0YWJDb250ZW50Q29tcG9uZW50OiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgYmFzZUZpbHRlcjogdGhpcy5yZXNvbHZlRmlsdGVyKG9wZW5DYXNlKSxcbiAgICAgICAgICAgICAgICBhbGxvd2VkTmV0czogdGhpcy5yZXNvbHZlQWxsb3dlZE5ldHMob3BlbkNhc2UpLFxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtVGFza0RhdGE6IHRoaXMuX2luamVjdGVkVGFiRGF0YS5uYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLFxuICAgICAgICAgICAgICAgIHNlYXJjaFR5cGVDb25maWd1cmF0aW9uOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgICAgICBzaG93TW9yZU1lbnU6IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld1Nob3dNb3JlTWVudSxcbiAgICAgICAgICAgICAgICBoZWFkZXJzQ2hhbmdlYWJsZTogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhc2tWaWV3SGVhZGVyc0NoYW5nZWFibGUsXG4gICAgICAgICAgICAgICAgaGVhZGVyc01vZGU6IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld0hlYWRlcnNNb2RlLFxuICAgICAgICAgICAgICAgIGFsbG93VGFibGVNb2RlOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdBbGxvd1RhYmxlTW9kZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVyc01vZGU6IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld0RlZmF1bHRIZWFkZXJzTW9kZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9yZGVyOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVmlld09yZGVyLFxuICAgICAgICAgICAgcGFyZW50VW5pcXVlSWQ6IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YWJVbmlxdWVJZFxuICAgICAgICB9LCB0aGlzLl9hdXRvc3dpdGNoVG9UYXNrVGFiLCB0aGlzLl9vcGVuRXhpc3RpbmdUYWIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRmlsdGVyKG9wZW5DYXNlOiBDYXNlKTogRmlsdGVyIHtcbiAgICAgICAgY29uc3QgYWRkaXRpb25hbEZpbHRlciA9IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld0FkZGl0aW9uYWxGaWx0ZXI7XG4gICAgICAgIGNvbnN0IG1lcmdlRmlsdGVycyA9IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld01lcmdlV2l0aEJhc2VGaWx0ZXI7XG4gICAgICAgIGNvbnN0IGJhc2VGaWx0ZXIgPSBuZXcgU2ltcGxlRmlsdGVyKCcnLCBGaWx0ZXJUeXBlLlRBU0ssIHtjYXNlOiB7aWQ6IGAke29wZW5DYXNlLnN0cmluZ0lkfWB9fSk7XG5cbiAgICAgICAgbGV0IGZpbHRlcjtcbiAgICAgICAgaWYgKGFkZGl0aW9uYWxGaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZmlsdGVyID0gYmFzZUZpbHRlcjtcbiAgICAgICAgfSBlbHNlIGlmIChtZXJnZUZpbHRlcnMpIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGFkZGl0aW9uYWxGaWx0ZXIubWVyZ2UoYmFzZUZpbHRlciwgTWVyZ2VPcGVyYXRvci5BTkQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyID0gYWRkaXRpb25hbEZpbHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVBbGxvd2VkTmV0cyhvcGVuQ2FzZTogQ2FzZSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgYWRkaXRpb25hbEZpbHRlciA9IHRoaXMuX2luamVjdGVkVGFiRGF0YS50YXNrVmlld0FkZGl0aW9uYWxGaWx0ZXI7XG4gICAgICAgIGlmIChhZGRpdGlvbmFsRmlsdGVyID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtvcGVuQ2FzZS5wcm9jZXNzSWRlbnRpZmllcl07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXJnZUZpbHRlcnMgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdNZXJnZVdpdGhCYXNlRmlsdGVyO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsQWxsb3dlZE5ldHMgPSB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdBZGRpdGlvbmFsQWxsb3dlZE5ldHMgPyB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFza1ZpZXdBZGRpdGlvbmFsQWxsb3dlZE5ldHMgOiBbXTtcblxuICAgICAgICByZXR1cm4gbWVyZ2VGaWx0ZXJzID8gW29wZW5DYXNlLnByb2Nlc3NJZGVudGlmaWVyLCAuLi5hZGRpdGlvbmFsQWxsb3dlZE5ldHNdIDogYWRkaXRpb25hbEFsbG93ZWROZXRzXG4gICAgfVxuXG4gICAgaXNNZW51T3B0aW9uRW5hYmxlZChvcHRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oZWFkZXJzTW9kZS5zb21lKGUgPT4gZSA9PT0gb3B0aW9uKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUhlYWRlck1vZGUobW9kZTogc3RyaW5nKTogSGVhZGVyTW9kZSB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhlYWRlck1vZGUuU09SVDtcbiAgICAgICAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBIZWFkZXJNb2RlLkVESVQ7XG4gICAgICAgICAgICBjYXNlICdzZWFyY2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiBIZWFkZXJNb2RlLlNFQVJDSDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZyQuaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgZXhwb3J0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sb2FkaW5nJC5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZyQub24oKTtcbiAgICAgICAgdGhpcy5fZXhwb3J0U2VydmljZS5kb3dubG9hZEV4Y2VsRnJvbUN1cnJlbnRTZWxlY3Rpb24odGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXIsIHRoaXMuX2N1cnJlbnRIZWFkZXJzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nJC5vZmYoKTtcbiAgICAgICAgfSxlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLl9sb2dnZXJTZXJ2aWNlLmVycm9yKCdGaWxlIGRvd25sb2FkIGZhaWxlZCcsIGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdleHBvcnQuZXJyb3JFeHBvcnREb3dubG9hZCcpKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyQub2ZmKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmckLmNvbXBsZXRlKClcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FzZS12aWV3LWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIj5cbiAgICA8bmMtYnJlYWRjcnVtYnM+PC9uYy1icmVhZGNydW1icz5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXNlLXZpZXctc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJtYXgtaGVpZ2h0XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleD5cbiAgICAgICAgICAgICAgICA8bmMtc2VhcmNoIGNsYXNzPVwic2VhcmNoLXdpZHRoIHNlYXJjaC1maXhcIiAqbmdJZj1cIihlbmFibGVTZWFyY2gpXCIgW3Nob3dTZWFyY2hUb2dnbGVCdXR0b25dPVwic2hvd1RvZ2dsZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5pdGlhbFNlYXJjaE1vZGVdPVwiaW5pdGlhbFNlYXJjaE1vZGVcIiAoZmlsdGVyTG9hZGVkKT1cImxvYWRGaWx0ZXIoJGV2ZW50KVwiPjwvbmMtc2VhcmNoPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgKm5nSWY9XCJhbGxvd0V4cG9ydFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiZXhwb3J0LW1hdC1taW5pLWZhYlwiIChjbGljayk9XCJleHBvcnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibmV0LXVwbG9hZFwiICpuZ0lmPVwiKGlzTG9hZGluZygpKSA9PT0gZmFsc2VcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgPnNhdmVfYWx0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibmV0LXVwbG9hZFwiICpuZ0lmPVwiaXNMb2FkaW5nKClcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCI+c2NoZWR1bGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgKm5nSWY9XCJzaG93Q3JlYXRlQ2FzZUJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxuYy1jcmVhdGUtY2FzZS1idXR0b24gW25ld0Nhc2VDcmVhdGlvbkNvbmZpZ109XCJuZXdDYXNlQ3JlYXRpb25Db25maWdcIiAoY2FzZUNyZWF0ZWRFdmVudCk9XCJoYW5kbGVDYXNlQ2xpY2soJGV2ZW50KVwiPjwvbmMtY3JlYXRlLWNhc2UtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZ1bGwtaGVpZ2h0IHRyYW5zZm9ybS1kaXYgY3VzdG9tLXNjcm9sbGJhclwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7J292ZXJmbG93LWRpdic6IGdldE92ZXJmbG93U3RhdHVzKCl9XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnVsbC1oZWlnaHQgdHJhbnNmb3JtLWRpdiBtYXgtd2lkdGgtZml4XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgPG5jLWhlYWRlciAjaGVhZGVyIFt0eXBlXT1cImhlYWRlclR5cGVcIiBbbWF4SGVhZGVyQ29sdW1uc109XCI5XCIgW3Jlc3BvbnNpdmVIZWFkZXJzXT1cImZhbHNlXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IGdldFdpZHRoKCl9XCIgW2hpZGVIZWFkZXJNZW51XT1cIiFoZWFkZXJzQ2hhbmdlYWJsZVwiIFtzaG93RWRpdEJ1dHRvbl09XCJpc01lbnVPcHRpb25FbmFibGVkKCdlZGl0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NvcnRCdXR0b25dPVwiaXNNZW51T3B0aW9uRW5hYmxlZCgnc29ydCcpXCIgW3Nob3dTZWFyY2hCdXR0b25dPVwiaXNNZW51T3B0aW9uRW5hYmxlZCgnc2VhcmNoJylcIlxuICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RhYmxlU2VjdGlvbl09XCJhbGxvd1RhYmxlTW9kZVwiIGNsYXNzPVwiY2FzZS1oZWFkZXItcGFkZGluZ1wiPjwvbmMtaGVhZGVyPlxuXG4gICAgICAgICAgICA8bmMtY2FzZS1saXN0IFtzZWxlY3RlZEhlYWRlcnMkXT1cInNlbGVjdGVkSGVhZGVycyRcIiBbdGV4dEVsbGlwc2lzXT1cInRydWVcIiBbc2hvd0RlbGV0ZU1lbnVdPVwic2hvd0RlbGV0ZU1lbnVcIiBbd2lkdGhdPVwiZ2V0V2lkdGgoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjYXNlQ2xpY2spPVwiaGFuZGxlQ2FzZUNsaWNrKCRldmVudClcIiBbcmVzcG9uc2l2ZUJvZHldPVwidHJ1ZVwiIGZ4RmxleD48L25jLWNhc2UtbGlzdD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0ZWQtdGFiYmVkLWNhc2Utdmlldy1kYXRhLXdpdGgtbmF2aWdhdGlvbi1pdGVtLXRhc2stZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL21vZGVsL2luamVjdGVkLXRhYmJlZC1jYXNlLXZpZXctZGF0YS13aXRoLW5hdmlnYXRpb24taXRlbS10YXNrLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5qZWN0ZWRUYWJiZWRDYXNlVmlld0RhdGEsXG4gICAgRGF0YUdyb3VwLFxuICAgIE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhLFxuICAgIFNlYXJjaENvbXBvbmVudENvbmZpZ3VyYXRpb24sXG4gICAgU2ltcGxlRmlsdGVyXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5cbi8qKlxuICogQSB2YXJpYXRpb24gb2Yge0BsaW5rIEluamVjdGVkVGFiYmVkQ2FzZVZpZXdEYXRhfSB0aGF0IGNvbnRhaW4gdGhlIHRhc2sgZGF0YSBvZiBhIG5hdmlnYXRpb24gaXRlbSB0YXNrLlxuICpcbiAqIEl0IGlzIHVzZWQgdG8gcmVzb2x2ZSBmaWx0ZXIgYW5kIHZpc3VhbCBhdHRyaWJ1dGVzIG9mIGR5bmFtaWMgbmF2aWdhdGlvbiB2aWV3c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGVkVGFiYmVkQ2FzZVZpZXdEYXRhV2l0aE5hdmlnYXRpb25JdGVtVGFza0RhdGEgZXh0ZW5kcyBJbmplY3RlZFRhYmJlZENhc2VWaWV3RGF0YSB7XG4gICAgbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YTogQXJyYXk8RGF0YUdyb3VwPjtcblxuICAgIG5ld0Nhc2VCdXR0b25Db25maWd1cmF0aW9uOiBOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YTtcbiAgICBjYXNlVmlld1NlYXJjaFR5cGVDb25maWd1cmF0aW9uOiBTZWFyY2hDb21wb25lbnRDb25maWd1cmF0aW9uO1xuICAgIGNhc2VWaWV3U2hvd01vcmVNZW51OiBib29sZWFuO1xuICAgIGNhc2VWaWV3SGVhZGVyc0NoYW5nZWFibGU6IGJvb2xlYW47XG4gICAgY2FzZVZpZXdIZWFkZXJzTW9kZTogc3RyaW5nW107XG4gICAgY2FzZVZpZXdBbGxvd1RhYmxlTW9kZTogYm9vbGVhbjtcbiAgICBjYXNlVmlld0RlZmF1bHRIZWFkZXJzTW9kZTogc3RyaW5nO1xuXG4gICAgdGFza1ZpZXdTZWFyY2hUeXBlQ29uZmlndXJhdGlvbjogU2VhcmNoQ29tcG9uZW50Q29uZmlndXJhdGlvbjtcbiAgICB0YXNrVmlld1Nob3dNb3JlTWVudTogYm9vbGVhbjtcbiAgICB0YXNrVmlld01lcmdlV2l0aEJhc2VGaWx0ZXI6IGJvb2xlYW47XG4gICAgdGFza1ZpZXdBZGRpdGlvbmFsRmlsdGVyOiBTaW1wbGVGaWx0ZXI7XG4gICAgdGFza1ZpZXdBZGRpdGlvbmFsQWxsb3dlZE5ldHM6IHN0cmluZ1tdO1xuICAgIHRhc2tWaWV3SGVhZGVyc0NoYW5nZWFibGU6IGJvb2xlYW47XG4gICAgdGFza1ZpZXdIZWFkZXJzTW9kZTogc3RyaW5nW107XG4gICAgdGFza1ZpZXdBbGxvd1RhYmxlTW9kZTogYm9vbGVhbjtcbiAgICB0YXNrVmlld0RlZmF1bHRIZWFkZXJzTW9kZTogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0ZWQtdGFiYmVkLWNhc2Utdmlldy1kYXRhLXdpdGgtbmF2aWdhdGlvbi1pdGVtLXRhc2stZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL21vZGVsL2luamVjdGVkLXRhYmJlZC1jYXNlLXZpZXctZGF0YS13aXRoLW5hdmlnYXRpb24taXRlbS10YXNrLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5qZWN0ZWRUYWJiZWRDYXNlVmlld0RhdGEsXG4gICAgRGF0YUdyb3VwLFxuICAgIE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhLFxuICAgIFNlYXJjaENvbXBvbmVudENvbmZpZ3VyYXRpb24sXG4gICAgU2ltcGxlRmlsdGVyXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5cbi8qKlxuICogQSB2YXJpYXRpb24gb2Yge0BsaW5rIEluamVjdGVkVGFiYmVkQ2FzZVZpZXdEYXRhfSB0aGF0IGNvbnRhaW4gdGhlIHRhc2sgZGF0YSBvZiBhIG5hdmlnYXRpb24gaXRlbSB0YXNrLlxuICpcbiAqIEl0IGlzIHVzZWQgdG8gcmVzb2x2ZSBmaWx0ZXIgYW5kIHZpc3VhbCBhdHRyaWJ1dGVzIG9mIGR5bmFtaWMgbmF2aWdhdGlvbiB2aWV3c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGVkVGFiYmVkQ2FzZVZpZXdEYXRhV2l0aE5hdmlnYXRpb25JdGVtVGFza0RhdGEgZXh0ZW5kcyBJbmplY3RlZFRhYmJlZENhc2VWaWV3RGF0YSB7XG4gICAgbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YTogQXJyYXk8RGF0YUdyb3VwPjtcblxuICAgIG5ld0Nhc2VCdXR0b25Db25maWd1cmF0aW9uOiBOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YTtcbiAgICBjYXNlVmlld1NlYXJjaFR5cGVDb25maWd1cmF0aW9uOiBTZWFyY2hDb21wb25lbnRDb25maWd1cmF0aW9uO1xuICAgIGNhc2VWaWV3U2hvd01vcmVNZW51OiBib29sZWFuO1xuICAgIGNhc2VWaWV3SGVhZGVyc0NoYW5nZWFibGU6IGJvb2xlYW47XG4gICAgY2FzZVZpZXdIZWFkZXJzTW9kZTogc3RyaW5nW107XG4gICAgY2FzZVZpZXdBbGxvd1RhYmxlTW9kZTogYm9vbGVhbjtcbiAgICBjYXNlVmlld0RlZmF1bHRIZWFkZXJzTW9kZTogc3RyaW5nO1xuICAgIGNhc2VWaWV3QWxsb3dFeHBvcnQ6IGJvb2xlYW47XG5cbiAgICB0YXNrVmlld1NlYXJjaFR5cGVDb25maWd1cmF0aW9uOiBTZWFyY2hDb21wb25lbnRDb25maWd1cmF0aW9uO1xuICAgIHRhc2tWaWV3U2hvd01vcmVNZW51OiBib29sZWFuO1xuICAgIHRhc2tWaWV3TWVyZ2VXaXRoQmFzZUZpbHRlcjogYm9vbGVhbjtcbiAgICB0YXNrVmlld0FkZGl0aW9uYWxGaWx0ZXI6IFNpbXBsZUZpbHRlcjtcbiAgICB0YXNrVmlld0FkZGl0aW9uYWxBbGxvd2VkTmV0czogc3RyaW5nW107XG4gICAgdGFza1ZpZXdIZWFkZXJzQ2hhbmdlYWJsZTogYm9vbGVhbjtcbiAgICB0YXNrVmlld0hlYWRlcnNNb2RlOiBzdHJpbmdbXTtcbiAgICB0YXNrVmlld0FsbG93VGFibGVNb2RlOiBib29sZWFuO1xuICAgIHRhc2tWaWV3RGVmYXVsdEhlYWRlcnNNb2RlOiBzdHJpbmc7XG59XG4iXX0=
@@ -4461,10 +4461,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4461
4461
  } });
4462
4462
 
4463
4463
  class DefaultTabbedCaseViewComponent extends AbstractTabbedCaseViewComponent {
4464
- constructor(caseViewService, loggerService, viewIdService, overflowService, _injectedTabData) {
4464
+ constructor(caseViewService, _exportService, _searchService, _snackbar, _translate, loggerService, viewIdService, overflowService, _injectedTabData) {
4465
4465
  var _a, _b;
4466
4466
  super(caseViewService, loggerService, _injectedTabData, overflowService, undefined, undefined, _injectedTabData.newCaseButtonConfiguration);
4467
+ this._exportService = _exportService;
4468
+ this._searchService = _searchService;
4469
+ this._snackbar = _snackbar;
4470
+ this._translate = _translate;
4467
4471
  this._injectedTabData = _injectedTabData;
4472
+ this._currentHeaders = [];
4468
4473
  this.initialSearchMode = _injectedTabData.caseViewSearchTypeConfiguration.initialSearchMode;
4469
4474
  this.showToggleButton = _injectedTabData.caseViewSearchTypeConfiguration.showSearchToggleButton;
4470
4475
  this.enableSearch = _injectedTabData.caseViewSearchTypeConfiguration.initialSearchMode !== undefined;
@@ -4474,6 +4479,11 @@ class DefaultTabbedCaseViewComponent extends AbstractTabbedCaseViewComponent {
4474
4479
  this.headersMode = _injectedTabData.caseViewHeadersMode ? _injectedTabData.caseViewHeadersMode : [];
4475
4480
  this.allowTableMode = this._injectedTabData.caseViewAllowTableMode;
4476
4481
  this.defaultHeadersMode = this.resolveHeaderMode(_injectedTabData.caseViewDefaultHeadersMode);
4482
+ this.allowExport = this._injectedTabData.caseViewAllowExport;
4483
+ this.loading$ = new LoadingEmitter();
4484
+ this._headersSub = this.selectedHeaders$.subscribe(headers => {
4485
+ this._currentHeaders = headers;
4486
+ });
4477
4487
  if (!this.allowTableMode) {
4478
4488
  const viewId = viewIdService.viewId;
4479
4489
  localStorage.setItem(viewId + '-overflowMode', 'false');
@@ -4558,8 +4568,27 @@ class DefaultTabbedCaseViewComponent extends AbstractTabbedCaseViewComponent {
4558
4568
  return undefined;
4559
4569
  }
4560
4570
  }
4571
+ isLoading() {
4572
+ return this.loading$.isActive;
4573
+ }
4574
+ export() {
4575
+ if (this.loading$.isActive) {
4576
+ return;
4577
+ }
4578
+ this.loading$.on();
4579
+ this._exportService.downloadExcelFromCurrentSelection(this._searchService.activeFilter, this._currentHeaders).subscribe(() => {
4580
+ this.loading$.off();
4581
+ }, error => {
4582
+ this._loggerService.error('File download failed', error);
4583
+ this._snackbar.openErrorSnackBar(this._translate.instant('export.errorExportDownload'));
4584
+ this.loading$.off();
4585
+ });
4586
+ }
4587
+ ngOnDestroy() {
4588
+ this.loading$.complete();
4589
+ }
4561
4590
  }
4562
- DefaultTabbedCaseViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedCaseViewComponent, deps: [{ token: i1.CaseViewService }, { token: i1.LoggerService }, { token: i1.ViewIdService }, { token: i1.OverflowService }, { token: NAE_TAB_DATA }], target: i0.ɵɵFactoryTarget.Component });
4591
+ DefaultTabbedCaseViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedCaseViewComponent, deps: [{ token: i1.CaseViewService }, { token: i1.ExportService }, { token: i1.SearchService }, { token: i1.SnackBarService }, { token: i1$2.TranslateService }, { token: i1.LoggerService }, { token: i1.ViewIdService }, { token: i1.OverflowService }, { token: NAE_TAB_DATA }], target: i0.ɵɵFactoryTarget.Component });
4563
4592
  DefaultTabbedCaseViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DefaultTabbedCaseViewComponent, selector: "nc-default-tabbed-case-view", providers: [
4564
4593
  CategoryFactory,
4565
4594
  CaseViewService,
@@ -4586,7 +4615,7 @@ DefaultTabbedCaseViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
4586
4615
  useFactory: navigationItemCaseViewDefaultHeadersFactory,
4587
4616
  deps: [NAE_NAVIGATION_ITEM_TASK_DATA]
4588
4617
  }
4589
- ], viewQueries: [{ propertyName: "caseHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"], components: [{ type: BreadcrumbsComponent, selector: "nc-breadcrumbs" }, { type: SearchComponent, selector: "nc-search" }, { type: CreateCaseButtonComponent, selector: "nc-create-case-button", inputs: ["newCaseCreationConfig", "disabled"], outputs: ["caseCreatedEvent"] }, { type: HeaderComponent, selector: "nc-header" }, { type: CaseListComponent, selector: "nc-case-list" }], directives: [{ type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i6$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i4$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6$2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }] });
4618
+ ], viewQueries: [{ propertyName: "caseHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"allowExport\">\n <button mat-mini-fab color=\"primary\" class=\"export-mat-mini-fab\" (click)=\"export()\"\n [disabled]=\"isLoading()\">\n <mat-icon class=\"net-upload\" *ngIf=\"(isLoading()) === false\" aria-hidden=\"false\" >save_alt</mat-icon>\n <mat-icon class=\"net-upload\" *ngIf=\"isLoading()\" aria-hidden=\"false\">schedule</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.button-icon{padding-right:4px;padding-bottom:2px}.export-mat-mini-fab{border-radius:6px;box-shadow:none;height:44px!important;min-width:44px;margin-right:8px;margin-top:2px}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"], components: [{ type: BreadcrumbsComponent, selector: "nc-breadcrumbs" }, { type: SearchComponent, selector: "nc-search" }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: CreateCaseButtonComponent, selector: "nc-create-case-button", inputs: ["newCaseCreationConfig", "disabled"], outputs: ["caseCreatedEvent"] }, { type: HeaderComponent, selector: "nc-header" }, { type: CaseListComponent, selector: "nc-case-list" }], directives: [{ type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i6$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i4$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6$2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }] });
4590
4619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedCaseViewComponent, decorators: [{
4591
4620
  type: Component,
4592
4621
  args: [{ selector: 'nc-default-tabbed-case-view', providers: [
@@ -4615,9 +4644,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4615
4644
  useFactory: navigationItemCaseViewDefaultHeadersFactory,
4616
4645
  deps: [NAE_NAVIGATION_ITEM_TASK_DATA]
4617
4646
  }
4618
- ], template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"] }]
4647
+ ], template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-breadcrumbs></nc-breadcrumbs>\n\n <div class=\"case-view-search-container\">\n <div fxLayout=\"row\" class=\"max-height\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width search-fix\" *ngIf=\"(enableSearch)\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"allowExport\">\n <button mat-mini-fab color=\"primary\" class=\"export-mat-mini-fab\" (click)=\"export()\"\n [disabled]=\"isLoading()\">\n <mat-icon class=\"net-upload\" *ngIf=\"(isLoading()) === false\" aria-hidden=\"false\" >save_alt</mat-icon>\n <mat-icon class=\"net-upload\" *ngIf=\"isLoading()\" aria-hidden=\"false\">schedule</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"end center\" *ngIf=\"showCreateCaseButton\">\n <nc-create-case-button [newCaseCreationConfig]=\"newCaseCreationConfig\" (caseCreatedEvent)=\"handleCaseClick($event)\"></nc-create-case-button>\n </div>\n </div>\n </div>\n\n <div class=\"full-height transform-div custom-scrollbar\"\n [ngClass]=\"{'overflow-div': getOverflowStatus()}\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div class=\"full-height transform-div max-width-fix\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"9\" [responsiveHeaders]=\"false\" [ngStyle]=\"{'width': getWidth()}\" [hideHeaderMenu]=\"!headersChangeable\" [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showSearchButton]=\"isMenuOptionEnabled('search')\"\n [showTableSection]=\"allowTableMode\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showDeleteMenu]=\"showDeleteMenu\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex></nc-case-list>\n </div>\n </div>\n</div>\n", styles: [".case-view-container{margin:16px 24px;height:calc(100% - 32px);overflow:auto}.button-icon{padding-right:4px;padding-bottom:2px}.export-mat-mini-fab{border-radius:6px;box-shadow:none;height:44px!important;min-width:44px;margin-right:8px;margin-top:2px}.case-view-search-container{margin-top:16px;margin-bottom:2px;padding:0;max-height:50%}.case-header-padding{padding-left:1px;padding-right:1px;padding-top:16px}.search-width{width:100%}.full-height{height:100%}.overflow-div{overflow-x:scroll}.transform-div{transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg)}.custom-scrollbar::-webkit-scrollbar{width:15px;height:15px;cursor:pointer}.max-width-fix{max-width:calc(100% - 8px)!important}.max-height{max-height:100%}.search-fix{min-height:calc(100% + 2px);max-height:100%;overflow-y:auto}@media screen and (max-width: 599.99px){.case-view-container{margin:12px}}\n"] }]
4619
4648
  }], ctorParameters: function () {
4620
- return [{ type: i1.CaseViewService }, { type: i1.LoggerService }, { type: i1.ViewIdService }, { type: i1.OverflowService }, { type: undefined, decorators: [{
4649
+ return [{ type: i1.CaseViewService }, { type: i1.ExportService }, { type: i1.SearchService }, { type: i1.SnackBarService }, { type: i1$2.TranslateService }, { type: i1.LoggerService }, { type: i1.ViewIdService }, { type: i1.OverflowService }, { type: undefined, decorators: [{
4621
4650
  type: Inject,
4622
4651
  args: [NAE_TAB_DATA]
4623
4652
  }] }];
@@ -4711,6 +4740,7 @@ class DefaultTabViewComponent {
4711
4740
  const caseViewHeadersMode = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_HEADERS_MODE);
4712
4741
  const caseViewAllowTableMode = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE);
4713
4742
  const caseViewDefaultHeadersMode = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE);
4743
+ const caseViewAllowExport = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_CASE_ALLOW_EXPORT);
4714
4744
  const taskSearchType = extractSearchTypeFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE);
4715
4745
  const taskShowMoreMenu = extractFieldValueFromData(this._navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_TASK_SHOW_MORE_MENU);
4716
4746
  const taskSearchTypeConfig = {
@@ -4741,6 +4771,7 @@ class DefaultTabViewComponent {
4741
4771
  caseViewHeadersMode: caseViewHeadersMode,
4742
4772
  caseViewAllowTableMode: caseViewAllowTableMode,
4743
4773
  caseViewDefaultHeadersMode: caseViewDefaultHeadersMode,
4774
+ caseViewAllowExport: caseViewAllowExport,
4744
4775
  taskViewSearchTypeConfiguration: taskSearchTypeConfig,
4745
4776
  taskViewShowMoreMenu: taskShowMoreMenu,
4746
4777
  taskViewHeadersChangeable: taskViewHeadersChangeable,