@netgrif/components 6.4.1 → 6.5.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/esm2020/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.mjs +3 -3
  2. package/esm2020/lib/admin/role-assignment/role-assignment.component.mjs +3 -3
  3. package/esm2020/lib/admin/user-invite/user-invite.component.mjs +3 -3
  4. package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +2 -2
  5. package/esm2020/lib/data-fields/enumeration-field/enumeration-caseref-field/enumeration-caseref-field.component.mjs +2 -2
  6. package/esm2020/lib/data-fields/file-field/file-default-field/file-default-field.component.mjs +3 -3
  7. package/esm2020/lib/data-fields/multichoice-field/multichoice-caseref-field/multichoice-caseref-field.component.mjs +2 -2
  8. package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-field.component.mjs +1 -4
  9. package/esm2020/lib/data-fields/task-ref-field/task-ref-list-field/task-ref-list-field.component.mjs +2 -2
  10. package/esm2020/lib/dialog/task-view-dialog/task-view-dialog.component.mjs +5 -8
  11. package/esm2020/lib/header/header.component.mjs +39 -8
  12. package/esm2020/lib/navigation/dashboard/dashboard.component.mjs +30 -0
  13. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.mjs +4 -3
  14. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-ticket-view-data-with-navigation-item-task-data.mjs +2 -0
  15. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-resolver/default-public-resolver.component.mjs +36 -0
  16. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-single-task-view/default-public-single-task-view.component.mjs +88 -0
  17. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-task-view/default-public-task-view.component.mjs +73 -0
  18. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-workflow-view/default-public-workflow-view.component.mjs +44 -0
  19. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/refs/default-case-ref-list-view/default-case-ref-list-view.component.mjs +130 -0
  20. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/{default-task-view → refs/default-task-view}/default-task-view.component.mjs +3 -3
  21. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/simple-views/default-simple-task-view/default-simple-task-view.component.mjs +85 -0
  22. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/simple-views/default-single-task-view/default-single-task-view.component.mjs +83 -0
  23. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tab-view/default-tab-view.component.mjs +179 -0
  24. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tabbed-case-view/default-tabbed-case-view.component.mjs +177 -0
  25. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tabbed-single-task-view/default-tabbed-single-task-view.component.mjs +101 -0
  26. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tabbed-task-view/default-tabbed-task-view.component.mjs +111 -0
  27. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-ticket-view/default-ticket-view.component.mjs +164 -0
  28. package/esm2020/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.mjs +9 -14
  29. package/esm2020/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.mjs +7 -7
  30. package/esm2020/lib/navigation/navigation.module.mjs +60 -12
  31. package/esm2020/lib/navigation/public-api.mjs +14 -6
  32. package/esm2020/lib/panel/case-panel/case-panel.component.mjs +3 -3
  33. package/esm2020/lib/panel/task-panel/task-panel.component.mjs +3 -3
  34. package/esm2020/lib/toolbar/toolbar.component.mjs +18 -14
  35. package/esm2020/lib/view/workflow-view/workflow-view.component.mjs +14 -11
  36. package/fesm2015/netgrif-components.mjs +828 -220
  37. package/fesm2015/netgrif-components.mjs.map +1 -1
  38. package/fesm2020/netgrif-components.mjs +812 -217
  39. package/fesm2020/netgrif-components.mjs.map +1 -1
  40. package/lib/dialog/task-view-dialog/task-view-dialog.component.d.ts +1 -1
  41. package/lib/header/header.component.d.ts +9 -6
  42. package/lib/navigation/dashboard/dashboard.component.d.ts +14 -0
  43. package/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.d.ts +3 -1
  44. package/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-ticket-view-data-with-navigation-item-task-data.d.ts +9 -0
  45. package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-resolver/default-public-resolver.component.d.ts +19 -0
  46. package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-single-task-view/default-public-single-task-view.component.d.ts +12 -0
  47. package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-task-view/default-public-task-view.component.d.ts +12 -0
  48. package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-workflow-view/default-public-workflow-view.component.d.ts +16 -0
  49. package/lib/navigation/group-navigation-component-resolver/default-components/{default-case-ref-list-view → refs/default-case-ref-list-view}/default-case-ref-list-view.component.d.ts +5 -9
  50. package/lib/navigation/group-navigation-component-resolver/default-components/{default-task-view → refs/default-task-view}/default-task-view.component.d.ts +1 -1
  51. package/lib/navigation/group-navigation-component-resolver/default-components/{default-simple-task-view → simple-views/default-simple-task-view}/default-simple-task-view.component.d.ts +4 -2
  52. package/lib/navigation/group-navigation-component-resolver/default-components/simple-views/default-single-task-view/default-single-task-view.component.d.ts +15 -0
  53. package/lib/navigation/group-navigation-component-resolver/default-components/{default-tab-view → tabbed/default-tab-view}/default-tab-view.component.d.ts +8 -5
  54. package/lib/navigation/group-navigation-component-resolver/default-components/{default-tabbed-case-view → tabbed/default-tabbed-case-view}/default-tabbed-case-view.component.d.ts +2 -2
  55. package/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tabbed-single-task-view/default-tabbed-single-task-view.component.d.ts +21 -0
  56. package/lib/navigation/group-navigation-component-resolver/default-components/{default-tabbed-task-view → tabbed/default-tabbed-task-view}/default-tabbed-task-view.component.d.ts +2 -2
  57. package/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-ticket-view/default-ticket-view.component.d.ts +49 -0
  58. package/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.d.ts +2 -2
  59. package/lib/navigation/navigation.module.d.ts +31 -21
  60. package/lib/navigation/public-api.d.ts +13 -5
  61. package/lib/panel/case-panel/case-panel.component.d.ts +1 -1
  62. package/lib/toolbar/toolbar.component.d.ts +6 -2
  63. package/nae-typography.scss +2 -0
  64. package/package.json +2 -2
  65. package/src/lib/admin/user-invite/user-invite.component.theme.scss +7 -0
  66. package/src/lib/data-fields/data-field.theme.scss +34 -1
  67. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.mjs +0 -151
  68. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.mjs +0 -79
  69. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.mjs +0 -150
  70. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.mjs +0 -176
  71. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.mjs +0 -111
@@ -0,0 +1,111 @@
1
+ import { Component, Inject, Optional, ViewChild } from '@angular/core';
2
+ import { NAE_TAB_DATA, TaskViewService, AbstractTabbedTaskViewComponent, CategoryFactory, SearchService, NAE_BASE_FILTER, AllowedNetsService, AllowedNetsServiceFactory, ViewIdService, NAE_TASK_VIEW_CONFIGURATION, ChangedFieldsService, navigationItemTaskViewDefaultHeadersFactory, tabbedTaskViewConfigurationFactory, tabbedAllowedNetsServiceFactory, HeaderMode, NAE_DEFAULT_HEADERS, NAE_NAVIGATION_ITEM_TASK_DATA, OverflowService, } from '@netgrif/components-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@netgrif/components-core";
5
+ import * as i2 from "../../../../../search/search-component/search.component";
6
+ import * as i3 from "../../../../../header/header.component";
7
+ import * as i4 from "../../../../../panel/task-panel-list/task-list.component";
8
+ import * as i5 from "@angular/flex-layout/flex";
9
+ import * as i6 from "@angular/common";
10
+ export function baseFilterFactory(injectedTabData) {
11
+ return {
12
+ filter: injectedTabData.baseFilter
13
+ };
14
+ }
15
+ export class DefaultTabbedTaskViewComponent extends AbstractTabbedTaskViewComponent {
16
+ constructor(taskViewService, injectedTabData) {
17
+ super(taskViewService, injectedTabData);
18
+ this.initialSearchMode = injectedTabData.searchTypeConfiguration.initialSearchMode;
19
+ this.showToggleButton = injectedTabData.searchTypeConfiguration.showSearchToggleButton;
20
+ this.enableSearch = injectedTabData.searchTypeConfiguration.initialSearchMode !== undefined;
21
+ this.headersChangeable = injectedTabData.headersChangeable;
22
+ this.headersMode = injectedTabData.headersMode ? injectedTabData.headersMode : [];
23
+ this.allowTableMode = injectedTabData.allowTableMode;
24
+ this.defaultHeadersMode = this.resolveHeaderMode(injectedTabData.defaultHeadersMode);
25
+ this.showMoreMenu = injectedTabData.showMoreMenu;
26
+ }
27
+ ngAfterViewInit() {
28
+ this.initializeHeader(this.taskHeaderComponent);
29
+ this.taskHeaderComponent.changeHeadersMode(this.defaultHeadersMode, false);
30
+ }
31
+ isMenuOptionEnabled(option) {
32
+ return this.headersMode.some(e => e === option);
33
+ }
34
+ resolveHeaderMode(mode) {
35
+ switch (mode) {
36
+ case 'sort':
37
+ return HeaderMode.SORT;
38
+ case 'edit':
39
+ return HeaderMode.EDIT;
40
+ default:
41
+ return undefined;
42
+ }
43
+ }
44
+ }
45
+ DefaultTabbedTaskViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedTaskViewComponent, deps: [{ token: i1.TaskViewService }, { token: NAE_TAB_DATA }], target: i0.ɵɵFactoryTarget.Component });
46
+ DefaultTabbedTaskViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DefaultTabbedTaskViewComponent, selector: "nc-default-tabbed-task-view", providers: [
47
+ CategoryFactory,
48
+ TaskViewService,
49
+ SearchService,
50
+ ViewIdService,
51
+ ChangedFieldsService,
52
+ OverflowService,
53
+ {
54
+ provide: NAE_BASE_FILTER,
55
+ useFactory: baseFilterFactory,
56
+ deps: [NAE_TAB_DATA]
57
+ },
58
+ {
59
+ provide: AllowedNetsService,
60
+ useFactory: tabbedAllowedNetsServiceFactory,
61
+ deps: [AllowedNetsServiceFactory, NAE_TAB_DATA]
62
+ },
63
+ {
64
+ provide: NAE_TASK_VIEW_CONFIGURATION,
65
+ useFactory: tabbedTaskViewConfigurationFactory,
66
+ deps: [NAE_TAB_DATA]
67
+ },
68
+ {
69
+ provide: NAE_DEFAULT_HEADERS,
70
+ useFactory: navigationItemTaskViewDefaultHeadersFactory,
71
+ deps: [[new Optional(), NAE_NAVIGATION_ITEM_TASK_DATA]]
72
+ }
73
+ ], viewQueries: [{ propertyName: "taskHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"task-tab-background full-height min-height-task-custom\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <div class=\"search-panel\" *ngIf=\"(enableSearch)\">\n <nc-search class=\"search-width\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\"></nc-search>\n </div>\n <nc-header #header type=\"task\" [hideHeaderMenu]=\"!headersChangeable\"\n [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showTableSection]=\"allowTableMode\" class=\"task-panel-padding-mini\"></nc-header>\n\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [allowMultiOpen]=\"false\"\n [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showMoreMenu]=\"showMoreMenu\"\n fxFlex></nc-task-list>\n </div>\n</div>\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:16px;padding:8px 0}.content-margin{margin:8px 24px 0}.task-panel-padding-mini{padding-top:16px;padding-left:1px;padding-right:1px}.full-height{height:calc(100% - 8px)}.search-width{width:100%}.min-height-task-custom{min-height:400px}@media screen and (max-width: 599.99px){.content-margin{margin:8px 12px 0}}\n"], components: [{ type: i2.SearchComponent, selector: "nc-search" }, { type: i3.HeaderComponent, selector: "nc-header" }, { type: i4.TaskListComponent, selector: "nc-task-list" }], directives: [{ type: i5.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: i5.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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.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"] }] });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTabbedTaskViewComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'nc-default-tabbed-task-view', providers: [
77
+ CategoryFactory,
78
+ TaskViewService,
79
+ SearchService,
80
+ ViewIdService,
81
+ ChangedFieldsService,
82
+ OverflowService,
83
+ {
84
+ provide: NAE_BASE_FILTER,
85
+ useFactory: baseFilterFactory,
86
+ deps: [NAE_TAB_DATA]
87
+ },
88
+ {
89
+ provide: AllowedNetsService,
90
+ useFactory: tabbedAllowedNetsServiceFactory,
91
+ deps: [AllowedNetsServiceFactory, NAE_TAB_DATA]
92
+ },
93
+ {
94
+ provide: NAE_TASK_VIEW_CONFIGURATION,
95
+ useFactory: tabbedTaskViewConfigurationFactory,
96
+ deps: [NAE_TAB_DATA]
97
+ },
98
+ {
99
+ provide: NAE_DEFAULT_HEADERS,
100
+ useFactory: navigationItemTaskViewDefaultHeadersFactory,
101
+ deps: [[new Optional(), NAE_NAVIGATION_ITEM_TASK_DATA]]
102
+ }
103
+ ], template: "<div class=\"task-tab-background full-height min-height-task-custom\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <div class=\"search-panel\" *ngIf=\"(enableSearch)\">\n <nc-search class=\"search-width\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\"></nc-search>\n </div>\n <nc-header #header type=\"task\" [hideHeaderMenu]=\"!headersChangeable\"\n [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showTableSection]=\"allowTableMode\" class=\"task-panel-padding-mini\"></nc-header>\n\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [allowMultiOpen]=\"false\"\n [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showMoreMenu]=\"showMoreMenu\"\n fxFlex></nc-task-list>\n </div>\n</div>\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:16px;padding:8px 0}.content-margin{margin:8px 24px 0}.task-panel-padding-mini{padding-top:16px;padding-left:1px;padding-right:1px}.full-height{height:calc(100% - 8px)}.search-width{width:100%}.min-height-task-custom{min-height:400px}@media screen and (max-width: 599.99px){.content-margin{margin:8px 12px 0}}\n"] }]
104
+ }], ctorParameters: function () { return [{ type: i1.TaskViewService }, { type: undefined, decorators: [{
105
+ type: Inject,
106
+ args: [NAE_TAB_DATA]
107
+ }] }]; }, propDecorators: { taskHeaderComponent: [{
108
+ type: ViewChild,
109
+ args: ['header']
110
+ }] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3RhYmJlZC9kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcvZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3RhYmJlZC9kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcvZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFDSCxZQUFZLEVBQ1osZUFBZSxFQUNmLCtCQUErQixFQUMvQixlQUFlLEVBQ2YsYUFBYSxFQUNiLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLDJDQUEyQyxFQUMzQyxrQ0FBa0MsRUFDbEMsK0JBQStCLEVBRS9CLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsNkJBQTZCLEVBQzdCLGVBQWUsR0FDbEIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFNbEMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLGVBQXFFO0lBQ25HLE9BQU87UUFDSCxNQUFNLEVBQUUsZUFB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LElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLCtCQUErQjs0QkFDM0MsSUFBSSxFQUFFLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDO3lCQUNsRDt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxVQUFVLEVBQUUsa0NBQWtDOzRCQUM5QyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7eUJBQ3ZCO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFVBQVUsRUFBRSwyQ0FBMkM7NEJBQ3ZELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO3lCQUMxRDtxQkFDSjs7MEJBZThDLE1BQU07MkJBQUMsWUFBWTs0Q0FYdEMsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgTkFFX1RBQl9EQVRBLFxuICAgIFRhc2tWaWV3U2VydmljZSxcbiAgICBBYnN0cmFjdFRhYmJlZFRhc2tWaWV3Q29tcG9uZW50LFxuICAgIENhdGVnb3J5RmFjdG9yeSxcbiAgICBTZWFyY2hTZXJ2aWNlLFxuICAgIE5BRV9CQVNFX0ZJTFRFUixcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICBWaWV3SWRTZXJ2aWNlLFxuICAgIE5BRV9UQVNLX1ZJRVdfQ09ORklHVVJBVElPTixcbiAgICBDaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICBuYXZpZ2F0aW9uSXRlbVRhc2tWaWV3RGVmYXVsdEhlYWRlcnNGYWN0b3J5LFxuICAgIHRhYmJlZFRhc2tWaWV3Q29uZmlndXJhdGlvbkZhY3RvcnksXG4gICAgdGFiYmVkQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICBTZWFyY2hNb2RlLFxuICAgIEhlYWRlck1vZGUsXG4gICAgTkFFX0RFRkFVTFRfSEVBREVSUyxcbiAgICBOQUVfTkFWSUdBVElPTl9JVEVNX1RBU0tfREFUQSxcbiAgICBPdmVyZmxvd1NlcnZpY2UsXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge0hlYWRlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBJbmplY3RlZFRhYmJlZFRhc2tWaWV3RGF0YVdpdGhOYXZpZ2F0aW9uSXRlbVRhc2tEYXRhXG59IGZyb20gXCIuLi8uLi9tb2RlbC9pbmplY3RlZC10YWJiZWQtdGFzay12aWV3LWRhdGEtd2l0aC1uYXZpZ2F0aW9uLWl0ZW0tdGFzay1kYXRhXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBiYXNlRmlsdGVyRmFjdG9yeShpbmplY3RlZFRhYkRhdGE6IEluamVjdGVkVGFiYmVkVGFza1ZpZXdEYXRhV2l0aE5hdmlnYXRpb25JdGVtVGFza0RhdGEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWx0ZXI6IGluamVjdGVkVGFiRGF0YS5iYXNlRmlsdGVyXG4gICAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlZmF1bHQtdGFiYmVkLXRhc2stdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBDYXRlZ29yeUZhY3RvcnksXG4gICAgICAgIFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAgVmlld0lkU2VydmljZSxcbiAgICAgICAgQ2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgIE92ZXJmbG93U2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0JBU0VfRklMVEVSLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogYmFzZUZpbHRlckZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbTkFFX1RBQl9EQVRBXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiB0YWJiZWRBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW0FsbG93ZWROZXRzU2VydmljZUZhY3RvcnksIE5BRV9UQUJfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX1RBU0tfVklFV19DT05GSUdVUkFUSU9OLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogdGFiYmVkVGFza1ZpZXdDb25maWd1cmF0aW9uRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtOQUVfVEFCX0RBVEFdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9ERUZBVUxUX0hFQURFUlMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBuYXZpZ2F0aW9uSXRlbVRhc2tWaWV3RGVmYXVsdEhlYWRlcnNGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgTkFFX05BVklHQVRJT05fSVRFTV9UQVNLX0RBVEFdXVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0VGFiYmVkVGFza1ZpZXdDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFRhYmJlZFRhc2tWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAVmlld0NoaWxkKCdoZWFkZXInKSBwdWJsaWMgdGFza0hlYWRlckNvbXBvbmVudDogSGVhZGVyQ29tcG9uZW50O1xuXG4gICAgaW5pdGlhbFNlYXJjaE1vZGU6IFNlYXJjaE1vZGU7XG4gICAgc2hvd1RvZ2dsZUJ1dHRvbjogYm9vbGVhbjtcbiAgICBlbmFibGVTZWFyY2g6IGJvb2xlYW47XG4gICAgaGVhZGVyc0NoYW5nZWFibGU6IGJvb2xlYW47XG4gICAgaGVhZGVyc01vZGU6IHN0cmluZ1tdO1xuICAgIGFsbG93VGFibGVNb2RlOiBib29sZWFuO1xuICAgIGRlZmF1bHRIZWFkZXJzTW9kZTogSGVhZGVyTW9kZTtcbiAgICBzaG93TW9yZU1lbnU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcih0YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSwgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJiZWRUYXNrVmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSkge1xuICAgICAgICBzdXBlcih0YXNrVmlld1NlcnZpY2UsIGluamVjdGVkVGFiRGF0YSk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsU2VhcmNoTW9kZSA9IGluamVjdGVkVGFiRGF0YS5zZWFyY2hUeXBlQ29uZmlndXJhdGlvbi5pbml0aWFsU2VhcmNoTW9kZTtcbiAgICAgICAgdGhpcy5zaG93VG9nZ2xlQnV0dG9uID0gaW5qZWN0ZWRUYWJEYXRhLnNlYXJjaFR5cGVDb25maWd1cmF0aW9uLnNob3dTZWFyY2hUb2dnbGVCdXR0b247XG4gICAgICAgIHRoaXMuZW5hYmxlU2VhcmNoID0gaW5qZWN0ZWRUYWJEYXRhLnNlYXJjaFR5cGVDb25maWd1cmF0aW9uLmluaXRpYWxTZWFyY2hNb2RlICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaGVhZGVyc0NoYW5nZWFibGUgPSBpbmplY3RlZFRhYkRhdGEuaGVhZGVyc0NoYW5nZWFibGU7XG4gICAgICAgIHRoaXMuaGVhZGVyc01vZGUgPSBpbmplY3RlZFRhYkRhdGEuaGVhZGVyc01vZGUgPyBpbmplY3RlZFRhYkRhdGEuaGVhZGVyc01vZGUgOiBbXTtcbiAgICAgICAgdGhpcy5hbGxvd1RhYmxlTW9kZSA9IGluamVjdGVkVGFiRGF0YS5hbGxvd1RhYmxlTW9kZTtcbiAgICAgICAgdGhpcy5kZWZhdWx0SGVhZGVyc01vZGUgPSB0aGlzLnJlc29sdmVIZWFkZXJNb2RlKGluamVjdGVkVGFiRGF0YS5kZWZhdWx0SGVhZGVyc01vZGUpO1xuICAgICAgICB0aGlzLnNob3dNb3JlTWVudSA9IGluamVjdGVkVGFiRGF0YS5zaG93TW9yZU1lbnU7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVIZWFkZXIodGhpcy50YXNrSGVhZGVyQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy50YXNrSGVhZGVyQ29tcG9uZW50LmNoYW5nZUhlYWRlcnNNb2RlKHRoaXMuZGVmYXVsdEhlYWRlcnNNb2RlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNNZW51T3B0aW9uRW5hYmxlZChvcHRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oZWFkZXJzTW9kZS5zb21lKGUgPT4gZSA9PT0gb3B0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc29sdmVIZWFkZXJNb2RlKG1vZGU6IHN0cmluZyk6IEhlYWRlck1vZGUge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBIZWFkZXJNb2RlLlNPUlQ7XG4gICAgICAgICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGVhZGVyTW9kZS5FRElUO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhc2stdGFiLWJhY2tncm91bmQgZnVsbC1oZWlnaHQgbWluLWhlaWdodC10YXNrLWN1c3RvbVwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiIGNsYXNzPVwiY29udGVudC1tYXJnaW4gZnVsbC1oZWlnaHRcIiA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtcGFuZWxcIiAqbmdJZj1cIihlbmFibGVTZWFyY2gpXCI+XG4gICAgICAgICAgICA8bmMtc2VhcmNoIGNsYXNzPVwic2VhcmNoLXdpZHRoXCIgW3Nob3dTZWFyY2hUb2dnbGVCdXR0b25dPVwic2hvd1RvZ2dsZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtpbml0aWFsU2VhcmNoTW9kZV09XCJpbml0aWFsU2VhcmNoTW9kZVwiPjwvbmMtc2VhcmNoPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5jLWhlYWRlciAjaGVhZGVyIHR5cGU9XCJ0YXNrXCIgW2hpZGVIZWFkZXJNZW51XT1cIiFoZWFkZXJzQ2hhbmdlYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgW3Nob3dFZGl0QnV0dG9uXT1cImlzTWVudU9wdGlvbkVuYWJsZWQoJ2VkaXQnKVwiXG4gICAgICAgICAgICAgICAgICAgW3Nob3dTb3J0QnV0dG9uXT1cImlzTWVudU9wdGlvbkVuYWJsZWQoJ3NvcnQnKVwiIFtzaG93VGFibGVTZWN0aW9uXT1cImFsbG93VGFibGVNb2RlXCIgY2xhc3M9XCJ0YXNrLXBhbmVsLXBhZGRpbmctbWluaVwiPjwvbmMtaGVhZGVyPlxuXG4gICAgICAgIDxuYy10YXNrLWxpc3QgW3Rhc2tzJF09XCJ0YXNrcyRcIiBbbG9hZGluZyRdPVwibG9hZGluZyRcIiBbYWxsb3dNdWx0aU9wZW5dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEhlYWRlcnMkXT1cInNlbGVjdGVkSGVhZGVycyRcIiBbdGV4dEVsbGlwc2lzXT1cInRydWVcIiBbc2hvd01vcmVNZW51XT1cInNob3dNb3JlTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgZnhGbGV4PjwvbmMtdGFzay1saXN0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,164 @@
1
+ import { Component, Inject, Optional } from '@angular/core';
2
+ import { GroupNavigationConstants, LoadingEmitter, SETTINGS_TRANSITION_ID, extractFilterFieldFromData, DoubleDrawerUtils, NAE_TAB_DATA, SimpleFilter, FilterType, NAE_AUTOSWITCH_TAB_TOKEN, NAE_OPEN_EXISTING_TAB, extractFieldValueFromData } from '@netgrif/components-core';
3
+ import { FormControl } from "@angular/forms";
4
+ import { forkJoin } from "rxjs";
5
+ import { map } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@netgrif/components-core";
8
+ import * as i2 from "@angular/router";
9
+ import * as i3 from "@ngx-translate/core";
10
+ import * as i4 from "@angular/material/progress-spinner";
11
+ import * as i5 from "@angular/material/form-field";
12
+ import * as i6 from "@angular/material/icon";
13
+ import * as i7 from "@angular/material/card";
14
+ import * as i8 from "@angular/flex-layout/flex";
15
+ import * as i9 from "@angular/common";
16
+ import * as i10 from "@angular/material/input";
17
+ import * as i11 from "@angular/forms";
18
+ export class DefaultTicketViewComponent {
19
+ constructor(_caseResourceService, _permissionService, _snackbar, _router, _log, _uriService, _translateService, _navigationService, _taskResourceService, _processService, _injectedTabData, _autoswitchToTaskTab = true, _openExistingTab = true) {
20
+ this._caseResourceService = _caseResourceService;
21
+ this._permissionService = _permissionService;
22
+ this._snackbar = _snackbar;
23
+ this._router = _router;
24
+ this._log = _log;
25
+ this._uriService = _uriService;
26
+ this._translateService = _translateService;
27
+ this._navigationService = _navigationService;
28
+ this._taskResourceService = _taskResourceService;
29
+ this._processService = _processService;
30
+ this._injectedTabData = _injectedTabData;
31
+ this._autoswitchToTaskTab = _autoswitchToTaskTab;
32
+ this._openExistingTab = _openExistingTab;
33
+ this.loading$ = new LoadingEmitter();
34
+ this.createCaseLoading$ = new LoadingEmitter();
35
+ this.search = new FormControl('');
36
+ }
37
+ ngOnInit() {
38
+ if (this._autoswitchToTaskTab === null) {
39
+ this._autoswitchToTaskTab = true;
40
+ }
41
+ if (this._openExistingTab === null) {
42
+ this._openExistingTab = true;
43
+ }
44
+ this.loadTicketCreateContent();
45
+ this.search.valueChanges.subscribe(value => this.searchItems(value));
46
+ }
47
+ loadTicketCreateContent() {
48
+ this.loading$.on();
49
+ this._navigationService.rightItems$.pipe(map(navItems => this.transformItemCases(navItems).filter(itm => !!itm && !!itm.resource))).subscribe(items => {
50
+ forkJoin(items.map(item => {
51
+ const taskId = DoubleDrawerUtils.findTaskIdInCase(item.resource, SETTINGS_TRANSITION_ID);
52
+ if (taskId === undefined) {
53
+ return;
54
+ }
55
+ return this._taskResourceService.getData(taskId).pipe(map(dataGroups => { return { caseId: item.resource.stringId, dataGroups }; }));
56
+ })).subscribe(dataGroups => {
57
+ dataGroups.forEach(dataGroupPair => {
58
+ if (dataGroupPair.dataGroups === undefined) {
59
+ return;
60
+ }
61
+ let net = undefined;
62
+ try {
63
+ net = extractFilterFieldFromData(dataGroupPair.dataGroups)?.allowedNets[0];
64
+ }
65
+ catch (error) {
66
+ this._log.warn("View doesn't have a filter, skipping...");
67
+ }
68
+ items.find(itm => itm.resource.stringId === dataGroupPair.caseId).petriNetId = net;
69
+ });
70
+ this.dashboardItems = items.filter(item => item.petriNetId !== undefined);
71
+ this.searchItems(this.search.value);
72
+ this.loading$.off();
73
+ }, error => {
74
+ this._log.error(error.message);
75
+ this.loading$.off();
76
+ });
77
+ }, error => {
78
+ this._log.error(error.message);
79
+ this.loading$.off();
80
+ });
81
+ }
82
+ transformItemCases(navItems) {
83
+ return navItems.map(item => this.resolveItemCaseToNavigationItem(item));
84
+ }
85
+ // copied from DoubleDrawerNavigationService
86
+ resolveItemCaseToNavigationItem(navItem) {
87
+ if (navItem.resource === undefined) {
88
+ return undefined;
89
+ }
90
+ return {
91
+ id: navItem.resource.stringId,
92
+ icon: navItem.resource.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_MENU_ICON)?.value || "add",
93
+ title: navItem.navigation.title,
94
+ petriNetId: undefined,
95
+ resource: navItem.resource,
96
+ };
97
+ }
98
+ createCase(item) {
99
+ if (this.isCardLoading()) {
100
+ return;
101
+ }
102
+ this.createCaseLoading$.on();
103
+ this._processService.getNet(item.petriNetId).subscribe(petriNet => {
104
+ this._caseResourceService.createCase({
105
+ netId: petriNet.stringId,
106
+ title: item.title
107
+ }).subscribe((caseResult) => {
108
+ this.createCaseLoading$.off();
109
+ if (caseResult?.outcome?.aCase) {
110
+ this.openTab(caseResult.outcome.aCase);
111
+ }
112
+ }, (error) => {
113
+ this._snackbar.openErrorSnackBar(error);
114
+ this.createCaseLoading$.off();
115
+ });
116
+ });
117
+ }
118
+ isCardLoading() {
119
+ return this.createCaseLoading$.isActive;
120
+ }
121
+ searchItems(val) {
122
+ if (val && val.length === 0) {
123
+ this.filteredDashboardItems = this.dashboardItems;
124
+ }
125
+ this.filteredDashboardItems = this.dashboardItems.filter(value => value.title.toLowerCase().includes(val.toLowerCase()));
126
+ }
127
+ openTab(openCase) {
128
+ const transId = extractFieldValueFromData(this._injectedTabData.navigationItemTaskData, "transition_id");
129
+ this._injectedTabData.tabViewRef.openTab({
130
+ label: {
131
+ text: openCase.title,
132
+ icon: openCase.icon ? openCase.icon : 'check_box'
133
+ },
134
+ canBeClosed: true,
135
+ tabContentComponent: this._injectedTabData.tabViewComponent,
136
+ injectedObject: {
137
+ baseFilter: new SimpleFilter('', FilterType.TASK, { case: { id: `${openCase.stringId}` }, transitionId: transId }),
138
+ allowedNets: [openCase.processIdentifier]
139
+ },
140
+ order: this._injectedTabData.tabViewOrder,
141
+ parentUniqueId: this._injectedTabData.tabUniqueId
142
+ }, this._autoswitchToTaskTab, this._openExistingTab);
143
+ }
144
+ }
145
+ DefaultTicketViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTicketViewComponent, deps: [{ token: i1.CaseResourceService }, { token: i1.PermissionService }, { token: i1.SnackBarService }, { token: i2.Router }, { token: i1.LoggerService }, { token: i1.UriService }, { token: i3.TranslateService }, { token: i1.DoubleDrawerNavigationService }, { token: i1.TaskResourceService }, { token: i1.ProcessService }, { token: NAE_TAB_DATA }, { token: NAE_AUTOSWITCH_TAB_TOKEN, optional: true }, { token: NAE_OPEN_EXISTING_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Component });
146
+ DefaultTicketViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DefaultTicketViewComponent, selector: "nc-default-ticket-view", ngImport: i0, template: "<div fxLayout=\"column\" fxFlex=\"100\">\n <div class=\"cards-container\" fxLayout=\"row wrap\" fxLayoutAlign=\"start center\" fxFlex=\"100\">\n\n <div *ngIf=\"(loading$ | async) || isCardLoading()\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\" fxFlex=\"100\">\n <mat-spinner color=\"primary\" diameter=\"60\" mode=\"indeterminate\"></mat-spinner>\n </div>\n\n <div fxLayout=\"column\" fxFlex=\"100\" fxLayoutAlign=\"center center\" *ngIf=\"!isCardLoading()\">\n <mat-form-field appearance=\"outline\" class=\"width-search\">\n <mat-label>Search</mat-label>\n <mat-icon matSuffix>search</mat-icon>\n <input matInput type=\"search\" [formControl]=\"search\">\n </mat-form-field>\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center center\" class=\"width-80\">\n <div fxLayout=\"column\" *ngFor=\"let item of filteredDashboardItems\" class=\"dashboard-card\"\n (click)=\"createCase(item)\">\n <mat-card fxLayout=\"row\" fxFlex fxLayoutAlign=\"center center\"\n (click)=\"createCase(item)\">\n <mat-icon class=\"card-icon\">{{ item.icon }}</mat-icon>\n <div class=\"card-main-text\">{{ item.title }}</div>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dashboard-card{min-width:46%;margin:1% 2%}.card-content{text-align:center;margin-bottom:0!important}.card-main-text{font-weight:400;font-size:24px;line-height:60px;letter-spacing:.5px;text-align:center}.card-icon{height:25px;width:25px;font-size:25px}.cards-container{padding:1% 0 5% 1%}.width-80{width:80%}.width-search{width:77%}.margin-top-default{margin-top:16px}\n"], components: [{ type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }], directives: [{ type: i8.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: i8.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.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: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatLabel, selector: "mat-label" }, { type: i5.MatSuffix, selector: "[matSuffix]" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i9.AsyncPipe } });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultTicketViewComponent, decorators: [{
148
+ type: Component,
149
+ args: [{ selector: 'nc-default-ticket-view', template: "<div fxLayout=\"column\" fxFlex=\"100\">\n <div class=\"cards-container\" fxLayout=\"row wrap\" fxLayoutAlign=\"start center\" fxFlex=\"100\">\n\n <div *ngIf=\"(loading$ | async) || isCardLoading()\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\" fxFlex=\"100\">\n <mat-spinner color=\"primary\" diameter=\"60\" mode=\"indeterminate\"></mat-spinner>\n </div>\n\n <div fxLayout=\"column\" fxFlex=\"100\" fxLayoutAlign=\"center center\" *ngIf=\"!isCardLoading()\">\n <mat-form-field appearance=\"outline\" class=\"width-search\">\n <mat-label>Search</mat-label>\n <mat-icon matSuffix>search</mat-icon>\n <input matInput type=\"search\" [formControl]=\"search\">\n </mat-form-field>\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center center\" class=\"width-80\">\n <div fxLayout=\"column\" *ngFor=\"let item of filteredDashboardItems\" class=\"dashboard-card\"\n (click)=\"createCase(item)\">\n <mat-card fxLayout=\"row\" fxFlex fxLayoutAlign=\"center center\"\n (click)=\"createCase(item)\">\n <mat-icon class=\"card-icon\">{{ item.icon }}</mat-icon>\n <div class=\"card-main-text\">{{ item.title }}</div>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dashboard-card{min-width:46%;margin:1% 2%}.card-content{text-align:center;margin-bottom:0!important}.card-main-text{font-weight:400;font-size:24px;line-height:60px;letter-spacing:.5px;text-align:center}.card-icon{height:25px;width:25px;font-size:25px}.cards-container{padding:1% 0 5% 1%}.width-80{width:80%}.width-search{width:77%}.margin-top-default{margin-top:16px}\n"] }]
150
+ }], ctorParameters: function () { return [{ type: i1.CaseResourceService }, { type: i1.PermissionService }, { type: i1.SnackBarService }, { type: i2.Router }, { type: i1.LoggerService }, { type: i1.UriService }, { type: i3.TranslateService }, { type: i1.DoubleDrawerNavigationService }, { type: i1.TaskResourceService }, { type: i1.ProcessService }, { type: undefined, decorators: [{
151
+ type: Inject,
152
+ args: [NAE_TAB_DATA]
153
+ }] }, { type: undefined, decorators: [{
154
+ type: Optional
155
+ }, {
156
+ type: Inject,
157
+ args: [NAE_AUTOSWITCH_TAB_TOKEN]
158
+ }] }, { type: undefined, decorators: [{
159
+ type: Optional
160
+ }, {
161
+ type: Inject,
162
+ args: [NAE_OPEN_EXISTING_TAB]
163
+ }] }]; } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10aWNrZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL2dyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyL2RlZmF1bHQtY29tcG9uZW50cy90YWJiZWQvZGVmYXVsdC10aWNrZXQtdmlldy9kZWZhdWx0LXRpY2tldC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3RhYmJlZC9kZWZhdWx0LXRpY2tldC12aWV3L2RlZmF1bHQtdGlja2V0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFHSCx3QkFBd0IsRUFDeEIsY0FBYyxFQU9kLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDMUIsaUJBQWlCLEVBRWpCLFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLHdCQUF3QixFQUFFLHFCQUFxQixFQUFpQyx5QkFBeUIsRUFDNUcsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUF1Qm5DLE1BQU0sT0FBTywwQkFBMEI7SUFTbkMsWUFBc0Isb0JBQXlDLEVBQ3pD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LFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVc7YUFDcEQ7WUFDRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCO1lBQzNELGNBQWMsRUFBRTtnQkFDWixVQUFVLEVBQUUsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsRUFBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLENBQUM7Z0JBQzlHLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQzthQUM1QztZQUNELEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWTtZQUN6QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVc7U0FDcEQsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQzs7d0hBM0lRLDBCQUEwQixnVkFtQmYsWUFBWSxhQUNBLHdCQUF3Qiw2QkFDeEIscUJBQXFCOzRHQXJCNUMsMEJBQTBCLDhEQ2hEdkMsKytDQTJCQTs0RkRxQmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHdCQUF3Qjs7MEJBdUJyQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHdCQUF3Qjs7MEJBQzNDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gICAgQ2FzZSxcbiAgICBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cyxcbiAgICBMb2FkaW5nRW1pdHRlcixcbiAgICBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBTbmFja0JhclNlcnZpY2UsXG4gICAgVXJpU2VydmljZSxcbiAgICBEb3VibGVEcmF3ZXJOYXZpZ2F0aW9uU2VydmljZSxcbiAgICBOYXZpZ2F0aW9uSXRlbSxcbiAgICBUYXNrUmVzb3VyY2VTZXJ2aWNlLFxuICAgIFNFVFRJTkdTX1RSQU5TSVRJT05fSUQsXG4gICAgZXh0cmFjdEZpbHRlckZpZWxkRnJvbURhdGEsXG4gICAgRG91YmxlRHJhd2VyVXRpbHMsXG4gICAgRGF0YUdyb3VwLFxuICAgIE5BRV9UQUJfREFUQSxcbiAgICBTaW1wbGVGaWx0ZXIsXG4gICAgRmlsdGVyVHlwZSwgQ2FzZUV2ZW50T3V0Y29tZSxcbiAgICBOQUVfQVVUT1NXSVRDSF9UQUJfVE9LRU4sIE5BRV9PUEVOX0VYSVNUSU5HX1RBQiwgTG9nZ2VyU2VydmljZSwgUHJvY2Vzc1NlcnZpY2UsIGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGFcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIEluamVjdGVkVGFiYmVkVGlja2V0Vmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YVxufSBmcm9tIFwiLi4vLi4vbW9kZWwvaW5qZWN0ZWQtdGFiYmVkLXRpY2tldC12aWV3LWRhdGEtd2l0aC1uYXZpZ2F0aW9uLWl0ZW0tdGFzay1kYXRhXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGlja2V0SXRlbSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBwZXRyaU5ldElkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgcmVzb3VyY2U/OiBDYXNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHcm91cENhc2VJZFBhaXIge1xuICAgIGNhc2VJZDogc3RyaW5nO1xuICAgIGRhdGFHcm91cHM6IERhdGFHcm91cFtdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLWRlZmF1bHQtdGlja2V0LXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXRpY2tldC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LXRpY2tldC12aWV3LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFRpY2tldFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHVibGljIGxvYWRpbmckOiBMb2FkaW5nRW1pdHRlciA9IG5ldyBMb2FkaW5nRW1pdHRlcigpO1xuICAgIHB1YmxpYyBjcmVhdGVDYXNlTG9hZGluZyQ6IExvYWRpbmdFbWl0dGVyID0gbmV3IExvYWRpbmdFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZGFzaGJvYXJkSXRlbXM6IEFycmF5PFRpY2tldEl0ZW0+O1xuICAgIHB1YmxpYyBmaWx0ZXJlZERhc2hib2FyZEl0ZW1zOiBBcnJheTxUaWNrZXRJdGVtPjtcbiAgICBwdWJsaWMgc2VhcmNoOiBGb3JtQ29udHJvbDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2FzZVJlc291cmNlU2VydmljZTogQ2FzZVJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3VyaVNlcnZpY2U6IFVyaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbmF2aWdhdGlvblNlcnZpY2U6IERvdWJsZURyYXdlck5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1Jlc291cmNlU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Byb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KE5BRV9UQUJfREFUQSkgcHJvdGVjdGVkIF9pbmplY3RlZFRhYkRhdGE6IEluamVjdGVkVGFiYmVkVGlja2V0Vmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9BVVRPU1dJVENIX1RBQl9UT0tFTikgcHJvdGVjdGVkIF9hdXRvc3dpdGNoVG9UYXNrVGFiID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9PUEVOX0VYSVNUSU5HX1RBQikgcHJvdGVjdGVkIF9vcGVuRXhpc3RpbmdUYWIgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9zd2l0Y2hUb1Rhc2tUYWIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2F1dG9zd2l0Y2hUb1Rhc2tUYWIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vcGVuRXhpc3RpbmdUYWIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX29wZW5FeGlzdGluZ1RhYiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkVGlja2V0Q3JlYXRlQ29udGVudCgpO1xuICAgICAgICB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMuc2VhcmNoSXRlbXModmFsdWUpKVxuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkVGlja2V0Q3JlYXRlQ29udGVudCgpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5vbigpO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uU2VydmljZS5yaWdodEl0ZW1zJC5waXBlKFxuICAgICAgICAgICAgbWFwKG5hdkl0ZW1zID0+IHRoaXMudHJhbnNmb3JtSXRlbUNhc2VzKG5hdkl0ZW1zKS5maWx0ZXIoaXRtID0+ICEhaXRtICYmICEhaXRtLnJlc291cmNlKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgICAgICAgZm9ya0pvaW4oaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhc2tJZCA9IERvdWJsZURyYXdlclV0aWxzLmZpbmRUYXNrSWRJbkNhc2UoaXRlbS5yZXNvdXJjZSwgU0VUVElOR1NfVFJBTlNJVElPTl9JRCk7XG4gICAgICAgICAgICAgICAgaWYgKHRhc2tJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tSZXNvdXJjZVNlcnZpY2UuZ2V0RGF0YSh0YXNrSWQpLnBpcGUobWFwKGRhdGFHcm91cHMgPT4ge3JldHVybiB7Y2FzZUlkOiBpdGVtLnJlc291cmNlLnN0cmluZ0lkLCBkYXRhR3JvdXBzfSBhcyBEYXRhR3JvdXBDYXNlSWRQYWlyfSkpO1xuICAgICAgICAgICAgfSkpLnN1YnNjcmliZShkYXRhR3JvdXBzID0+IHtcbiAgICAgICAgICAgICAgICBkYXRhR3JvdXBzLmZvckVhY2goZGF0YUdyb3VwUGFpciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhR3JvdXBQYWlyLmRhdGFHcm91cHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXQgPSBleHRyYWN0RmlsdGVyRmllbGRGcm9tRGF0YShkYXRhR3JvdXBQYWlyLmRhdGFHcm91cHMpPy5hbGxvd2VkTmV0c1swXTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZy53YXJuKFwiVmlldyBkb2Vzbid0IGhhdmUgYSBmaWx0ZXIsIHNraXBwaW5nLi4uXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLmZpbmQoaXRtID0+IGl0bS5yZXNvdXJjZS5zdHJpbmdJZCA9PT0gZGF0YUdyb3VwUGFpci5jYXNlSWQpLnBldHJpTmV0SWQgPSBuZXQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXNoYm9hcmRJdGVtcyA9IGl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ucGV0cmlOZXRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaEl0ZW1zKHRoaXMuc2VhcmNoLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmckLm9mZigpXG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyQub2ZmKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmckLm9mZigpXG4gICAgICAgIH0pXG5cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJhbnNmb3JtSXRlbUNhc2VzKG5hdkl0ZW1zOiBOYXZpZ2F0aW9uSXRlbVtdKSB7XG4gICAgICAgIHJldHVybiBuYXZJdGVtcy5tYXAoaXRlbSA9PiB0aGlzLnJlc29sdmVJdGVtQ2FzZVRvTmF2aWdhdGlvbkl0ZW0oaXRlbSkpO1xuICAgIH1cbiAgICAvLyBjb3BpZWQgZnJvbSBEb3VibGVEcmF3ZXJOYXZpZ2F0aW9uU2VydmljZVxuICAgIHByb3RlY3RlZCByZXNvbHZlSXRlbUNhc2VUb05hdmlnYXRpb25JdGVtKG5hdkl0ZW06IE5hdmlnYXRpb25JdGVtKTogVGlja2V0SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChuYXZJdGVtLnJlc291cmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBuYXZJdGVtLnJlc291cmNlLnN0cmluZ0lkLFxuICAgICAgICAgICAgaWNvbjogbmF2SXRlbS5yZXNvdXJjZS5pbW1lZGlhdGVEYXRhLmZpbmQoZiA9PiBmLnN0cmluZ0lkID09PSBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9NRU5VX0lDT04pPy52YWx1ZSB8fCBcImFkZFwiLFxuICAgICAgICAgICAgdGl0bGU6IChuYXZJdGVtLm5hdmlnYXRpb24gYXMgYW55KS50aXRsZSxcbiAgICAgICAgICAgIHBldHJpTmV0SWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHJlc291cmNlOiBuYXZJdGVtLnJlc291cmNlLFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUNhc2UoaXRlbTogVGlja2V0SXRlbSkge1xuICAgICAgICBpZiAodGhpcy5pc0NhcmRMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZWF0ZUNhc2VMb2FkaW5nJC5vbigpO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU2VydmljZS5nZXROZXQoaXRlbS5wZXRyaU5ldElkKS5zdWJzY3JpYmUocGV0cmlOZXQgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5jcmVhdGVDYXNlKHtcbiAgICAgICAgICAgICAgICBuZXRJZDogcGV0cmlOZXQuc3RyaW5nSWQsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGVcbiAgICAgICAgICAgIH0pLnN1YnNjcmliZSgoY2FzZVJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ2FzZUxvYWRpbmckLm9mZigpO1xuICAgICAgICAgICAgICAgIGlmICgoY2FzZVJlc3VsdD8ub3V0Y29tZSBhcyBDYXNlRXZlbnRPdXRjb21lKT8uYUNhc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVGFiKChjYXNlUmVzdWx0Lm91dGNvbWUgYXMgQ2FzZUV2ZW50T3V0Y29tZSkuYUNhc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKGVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNhc2VMb2FkaW5nJC5vZmYoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHB1YmxpYyBpc0NhcmRMb2FkaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDYXNlTG9hZGluZyQuaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlYXJjaEl0ZW1zKHZhbDogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWwgJiYgdmFsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhc2hib2FyZEl0ZW1zID0gdGhpcy5kYXNoYm9hcmRJdGVtcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbHRlcmVkRGFzaGJvYXJkSXRlbXMgPSB0aGlzLmRhc2hib2FyZEl0ZW1zLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZS50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZW5UYWIob3BlbkNhc2U6IENhc2UpIHtcbiAgICAgICAgY29uc3QgdHJhbnNJZDogc3RyaW5nID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YSh0aGlzLl9pbmplY3RlZFRhYkRhdGEubmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSwgXCJ0cmFuc2l0aW9uX2lkXCIpXG4gICAgICAgIHRoaXMuX2luamVjdGVkVGFiRGF0YS50YWJWaWV3UmVmLm9wZW5UYWIoe1xuICAgICAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBvcGVuQ2FzZS50aXRsZSxcbiAgICAgICAgICAgICAgICBpY29uOiBvcGVuQ2FzZS5pY29uID8gb3BlbkNhc2UuaWNvbiA6ICdjaGVja19ib3gnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IHRydWUsXG4gICAgICAgICAgICB0YWJDb250ZW50Q29tcG9uZW50OiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgYmFzZUZpbHRlcjogbmV3IFNpbXBsZUZpbHRlcignJywgRmlsdGVyVHlwZS5UQVNLLCB7Y2FzZToge2lkOiBgJHtvcGVuQ2FzZS5zdHJpbmdJZH1gfSwgdHJhbnNpdGlvbklkOiB0cmFuc0lkfSksXG4gICAgICAgICAgICAgICAgYWxsb3dlZE5ldHM6IFtvcGVuQ2FzZS5wcm9jZXNzSWRlbnRpZmllcl1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcmRlcjogdGhpcy5faW5qZWN0ZWRUYWJEYXRhLnRhYlZpZXdPcmRlcixcbiAgICAgICAgICAgIHBhcmVudFVuaXF1ZUlkOiB0aGlzLl9pbmplY3RlZFRhYkRhdGEudGFiVW5pcXVlSWRcbiAgICAgICAgfSwgdGhpcy5fYXV0b3N3aXRjaFRvVGFza1RhYiwgdGhpcy5fb3BlbkV4aXN0aW5nVGFiKTtcbiAgICB9XG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4PVwiMTAwXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhGbGV4PVwiMTAwXCI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihsb2FkaW5nJCB8IGFzeW5jKSB8fCBpc0NhcmRMb2FkaW5nKClcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICBjbGFzcz1cIm1hcmdpbi10b3AtZGVmYXVsdFwiIGZ4RmxleD1cIjEwMFwiPlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNvbG9yPVwicHJpbWFyeVwiIGRpYW1ldGVyPVwiNjBcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXg9XCIxMDBcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiICpuZ0lmPVwiIWlzQ2FyZExvYWRpbmcoKVwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3aWR0aC1zZWFyY2hcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInNlYXJjaFwiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hcIj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwid2lkdGgtODBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWREYXNoYm9hcmRJdGVtc1wiIGNsYXNzPVwiZGFzaGJvYXJkLWNhcmRcIlxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZUNhc2UoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkIGZ4TGF5b3V0PVwicm93XCIgZnhGbGV4IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZUNhc2UoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhcmQtaWNvblwiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1tYWluLXRleHRcIj57eyBpdGVtLnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { extractFilterFromData, FilterType, GroupNavigationComponentResolverService, extractFieldValueFromData, RoutingBuilderService, GroupNavigationConstants } from '@netgrif/components-core';
3
- import { DefaultTabViewComponent } from './default-components/default-tab-view/default-tab-view.component';
2
+ import { GroupNavigationComponentResolverService, extractFieldValueFromData, hasView, RoutingBuilderService } from '@netgrif/components-core';
3
+ import { DefaultTabViewComponent } from './default-components/tabbed/default-tab-view/default-tab-view.component';
4
4
  import { DefaultNoFilterProvidedComponent } from "./default-components/default-no-filter-provided/default-no-filter-provided.component";
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@netgrif/components-core";
@@ -48,20 +48,15 @@ export class DefaultGroupNavigationComponentResolverService extends GroupNavigat
48
48
  return this._viewService.resolveNameToClass(className);
49
49
  }
50
50
  resolveDefaultComponent(navItemData) {
51
- const filterTaskRefValue = extractFieldValueFromData(navItemData, GroupNavigationConstants.ITEM_FIELD_ID_FILTER_TASKREF);
52
- if (filterTaskRefValue == undefined || filterTaskRefValue.length == 0) {
51
+ if (!hasView(navItemData)) {
53
52
  return DefaultNoFilterProvidedComponent;
54
53
  }
55
- const filter = extractFilterFromData(navItemData);
56
- if (filter === undefined) {
57
- throw new Error('Provided navigation item task data does not contain a filter field');
54
+ const isTabbed = extractFieldValueFromData(navItemData, 'use_tabbed_view');
55
+ if (!!isTabbed) {
56
+ return DefaultTabViewComponent;
58
57
  }
59
- switch (filter.type) {
60
- case FilterType.CASE:
61
- case FilterType.TASK:
62
- return DefaultTabViewComponent;
63
- default:
64
- throw new Error(`Cannot resolve navigation component from '${filter.type}' filter type`);
58
+ else {
59
+ throw new Error(`Cannot resolve navigation component`);
65
60
  }
66
61
  }
67
62
  }
@@ -70,4 +65,4 @@ DefaultGroupNavigationComponentResolverService.ɵprov = i0.ɵɵngDeclareInjectab
70
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultGroupNavigationComponentResolverService, decorators: [{
71
66
  type: Injectable
72
67
  }], ctorParameters: function () { return [{ type: i1.TaskResourceService }, { type: i1.LoggerService }, { type: i1.ConfigurationService }, { type: i1.ViewService }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWdyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBRUgscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVix1Q0FBdUMsRUFNdkMseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDM0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUN6RyxPQUFPLEVBQ0gsZ0NBQWdDLEVBQ25DLE1BQU0sc0ZBQXNGLENBQUM7OztBQUc5RixNQUFNLE9BQU8sOENBQStDLFNBQVEsdUNBQXVDO0lBRXZHLFlBQVksbUJBQXdDLEVBQUUsR0FBa0IsRUFBVSxjQUFvQyxFQUFVLFlBQXlCO1FBQ3JKLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUQ4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYTtJQUV6SixDQUFDO0lBRU0sb0JBQW9CLENBQUMsV0FBNkI7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyx5QkFBeUIsQ0FBVSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RixJQUFJLGdCQUFnQixFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ25EO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNwRDtJQUNMLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxXQUE2QjtRQUMxRCxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBUyxXQUFXLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUM5RixLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9FLElBQUksV0FBVyxLQUFLLGNBQWMsRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQ3hEO1NBQ0o7SUFDTCxDQUFDO0lBRVMscUJBQXFCLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQzFELElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZFO2FBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsK0JBQStCLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVTLHVCQUF1QixDQUFDLFdBQTZCO1FBQzNELE1BQU0sa0JBQWtCLEdBQUcseUJBQXlCLENBQVcsV0FBVyxFQUFFLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbkksSUFBSSxrQkFBa0IsSUFBSSxTQUFTLElBQUksa0JBQWtCLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNuRSxPQUFPLGdDQUFnQyxDQUFBO1NBQzFDO1FBRUQsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0VBQW9FLENBQUMsQ0FBQztTQUN6RjtRQUVELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDckIsS0FBSyxVQUFVLENBQUMsSUFBSTtnQkFDaEIsT0FBTyx1QkFBdUIsQ0FBQztZQUNuQztnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQztTQUNoRztJQUNMLENBQUM7OzRJQTlEUSw4Q0FBOEM7Z0pBQTlDLDhDQUE4Qzs0RkFBOUMsOENBQThDO2tCQUQxRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRGF0YUdyb3VwLFxuICAgIGV4dHJhY3RGaWx0ZXJGcm9tRGF0YSxcbiAgICBGaWx0ZXJUeXBlLFxuICAgIEdyb3VwTmF2aWdhdGlvbkNvbXBvbmVudFJlc29sdmVyU2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIFRhc2tSZXNvdXJjZVNlcnZpY2UsXG4gICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgVmlldyxcbiAgICBWaWV3U2VydmljZSxcbiAgICBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhLFxuICAgIFJvdXRpbmdCdWlsZGVyU2VydmljZSxcbiAgICBHcm91cE5hdmlnYXRpb25Db25zdGFudHNcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7RGVmYXVsdFRhYlZpZXdDb21wb25lbnR9IGZyb20gJy4vZGVmYXVsdC1jb21wb25lbnRzL2RlZmF1bHQtdGFiLXZpZXcvZGVmYXVsdC10YWItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBEZWZhdWx0Tm9GaWx0ZXJQcm92aWRlZENvbXBvbmVudFxufSBmcm9tIFwiLi9kZWZhdWx0LWNvbXBvbmVudHMvZGVmYXVsdC1uby1maWx0ZXItcHJvdmlkZWQvZGVmYXVsdC1uby1maWx0ZXItcHJvdmlkZWQuY29tcG9uZW50XCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWZhdWx0R3JvdXBOYXZpZ2F0aW9uQ29tcG9uZW50UmVzb2x2ZXJTZXJ2aWNlIGV4dGVuZHMgR3JvdXBOYXZpZ2F0aW9uQ29tcG9uZW50UmVzb2x2ZXJTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHRhc2tSZXNvdXJjZVNlcnZpY2U6IFRhc2tSZXNvdXJjZVNlcnZpY2UsIGxvZzogTG9nZ2VyU2VydmljZSwgcHJpdmF0ZSBfY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgX3ZpZXdTZXJ2aWNlOiBWaWV3U2VydmljZSwpIHtcbiAgICAgICAgc3VwZXIodGFza1Jlc291cmNlU2VydmljZSwgbG9nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZVZpZXdDb21wb25lbnQobmF2SXRlbURhdGE6IEFycmF5PERhdGFHcm91cD4pOiBUeXBlPGFueT4ge1xuICAgICAgICBjb25zdCB1c2VDdXN0b21Sb3V0aW5nID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxib29sZWFuPihuYXZJdGVtRGF0YSwgJ3VzZV9jdXN0b21fdmlldycpO1xuICAgICAgICBpZiAodXNlQ3VzdG9tUm91dGluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZUN1c3RvbUNvbXBvbmVudChuYXZJdGVtRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlRGVmYXVsdENvbXBvbmVudChuYXZJdGVtRGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUN1c3RvbUNvbXBvbmVudChuYXZJdGVtRGF0YTogQXJyYXk8RGF0YUdyb3VwPik6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbVNlbGVjdG9yID0gZXh0cmFjdEZpZWxkVmFsdWVGcm9tRGF0YTxzdHJpbmc+KG5hdkl0ZW1EYXRhLCAnY3VzdG9tX3ZpZXdfc2VsZWN0b3InKTtcbiAgICAgICAgZm9yIChjb25zdCBbcGF0aFNlZ21lbnQsIHZpZXddIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2NvbmZpZ1NlcnZpY2UuZ2V0KCkudmlld3MpKSB7XG4gICAgICAgICAgICBpZiAocGF0aFNlZ21lbnQgPT09IGN1c3RvbVNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbXBvbmVudENsYXNzKHZpZXcsIHBhdGhTZWdtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlQ29tcG9uZW50Q2xhc3ModmlldzogVmlldywgY29uZmlnUGF0aDogc3RyaW5nKTogVHlwZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYgKCEhdmlldy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMuX3ZpZXdTZXJ2aWNlLnJlc29sdmVOYW1lVG9DbGFzcyh2aWV3LmNvbXBvbmVudC5jbGFzcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoISF2aWV3LmxheW91dCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5yZXNvbHZlQ29tcG9uZW50Q2xhc3NGcm9tTGF5b3V0KHZpZXcsIGNvbmZpZ1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUNvbXBvbmVudENsYXNzRnJvbUxheW91dCh2aWV3OiBWaWV3LCBjb25maWdQYXRoOiBzdHJpbmcpOiBUeXBlPGFueT4gfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBSb3V0aW5nQnVpbGRlclNlcnZpY2UucGFyc2VDbGFzc05hbWVGcm9tVmlldyh2aWV3LCBjb25maWdQYXRoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdTZXJ2aWNlLnJlc29sdmVOYW1lVG9DbGFzcyhjbGFzc05hbWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRGVmYXVsdENvbXBvbmVudChuYXZJdGVtRGF0YTogQXJyYXk8RGF0YUdyb3VwPik6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlclRhc2tSZWZWYWx1ZSA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8c3RyaW5nW10+KG5hdkl0ZW1EYXRhLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuSVRFTV9GSUVMRF9JRF9GSUxURVJfVEFTS1JFRik7XG4gICAgICAgIGlmIChmaWx0ZXJUYXNrUmVmVmFsdWUgPT0gdW5kZWZpbmVkIHx8IGZpbHRlclRhc2tSZWZWYWx1ZS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIERlZmF1bHROb0ZpbHRlclByb3ZpZGVkQ29tcG9uZW50XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBleHRyYWN0RmlsdGVyRnJvbURhdGEobmF2SXRlbURhdGEpO1xuICAgICAgICBpZiAoZmlsdGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZWQgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YSBkb2VzIG5vdCBjb250YWluIGEgZmlsdGVyIGZpZWxkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuQ0FTRTpcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5UQVNLOlxuICAgICAgICAgICAgICAgIHJldHVybiBEZWZhdWx0VGFiVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVzb2x2ZSBuYXZpZ2F0aW9uIGNvbXBvbmVudCBmcm9tICcke2ZpbHRlci50eXBlfScgZmlsdGVyIHR5cGVgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWdyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBRUgsdUNBQXVDLEVBTXZDLHlCQUF5QixFQUN6QixPQUFPLEVBQ1AscUJBQXFCLEVBQ3hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUNILGdDQUFnQyxFQUNuQyxNQUFNLHNGQUFzRixDQUFDOzs7QUFHOUYsTUFBTSxPQUFPLDhDQUErQyxTQUFRLHVDQUF1QztJQUV2RyxZQUFZLG1CQUF3QyxFQUFFLEdBQWtCLEVBQVUsY0FBb0MsRUFBVSxZQUF5QjtRQUNySixLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEOEMsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWE7SUFFekosQ0FBQztJQUVNLG9CQUFvQixDQUFDLFdBQTZCO1FBQ3JELE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQVUsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDNUYsSUFBSSxnQkFBZ0IsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNuRDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRVMsc0JBQXNCLENBQUMsV0FBNkI7UUFDMUQsTUFBTSxjQUFjLEdBQUcseUJBQXlCLENBQVMsV0FBVyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUYsS0FBSyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvRSxJQUFJLFdBQVcsS0FBSyxjQUFjLEVBQUU7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN4RDtTQUNKO0lBQ0wsQ0FBQztJQUVTLHFCQUFxQixDQUFDLElBQVUsRUFBRSxVQUFrQjtRQUMxRCxJQUFJLE1BQWlCLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZFO2FBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsK0JBQStCLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVTLHVCQUF1QixDQUFDLFdBQTZCO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxnQ0FBZ0MsQ0FBQztTQUMzQztRQUVELE1BQU0sUUFBUSxHQUFZLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNaLE9BQU8sdUJBQXVCLENBQUM7U0FDbEM7YUFBTTtZQUNILE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7OzRJQXZEUSw4Q0FBOEM7Z0pBQTlDLDhDQUE4Qzs0RkFBOUMsOENBQThDO2tCQUQxRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRGF0YUdyb3VwLFxuICAgIEdyb3VwTmF2aWdhdGlvbkNvbXBvbmVudFJlc29sdmVyU2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIFRhc2tSZXNvdXJjZVNlcnZpY2UsXG4gICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgVmlldyxcbiAgICBWaWV3U2VydmljZSxcbiAgICBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhLFxuICAgIGhhc1ZpZXcsXG4gICAgUm91dGluZ0J1aWxkZXJTZXJ2aWNlXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge0RlZmF1bHRUYWJWaWV3Q29tcG9uZW50fSBmcm9tICcuL2RlZmF1bHQtY29tcG9uZW50cy90YWJiZWQvZGVmYXVsdC10YWItdmlldy9kZWZhdWx0LXRhYi12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIERlZmF1bHROb0ZpbHRlclByb3ZpZGVkQ29tcG9uZW50XG59IGZyb20gXCIuL2RlZmF1bHQtY29tcG9uZW50cy9kZWZhdWx0LW5vLWZpbHRlci1wcm92aWRlZC9kZWZhdWx0LW5vLWZpbHRlci1wcm92aWRlZC5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlZmF1bHRHcm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlclNlcnZpY2UgZXh0ZW5kcyBHcm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlclNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IodGFza1Jlc291cmNlU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSwgbG9nOiBMb2dnZXJTZXJ2aWNlLCBwcml2YXRlIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgcHJpdmF0ZSBfdmlld1NlcnZpY2U6IFZpZXdTZXJ2aWNlLCkge1xuICAgICAgICBzdXBlcih0YXNrUmVzb3VyY2VTZXJ2aWNlLCBsb2cpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlVmlld0NvbXBvbmVudChuYXZJdGVtRGF0YTogQXJyYXk8RGF0YUdyb3VwPik6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHVzZUN1c3RvbVJvdXRpbmcgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KG5hdkl0ZW1EYXRhLCAndXNlX2N1c3RvbV92aWV3Jyk7XG4gICAgICAgIGlmICh1c2VDdXN0b21Sb3V0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ3VzdG9tQ29tcG9uZW50KG5hdkl0ZW1EYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVEZWZhdWx0Q29tcG9uZW50KG5hdkl0ZW1EYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlQ3VzdG9tQ29tcG9uZW50KG5hdkl0ZW1EYXRhOiBBcnJheTxEYXRhR3JvdXA+KTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY3VzdG9tU2VsZWN0b3IgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZz4obmF2SXRlbURhdGEsICdjdXN0b21fdmlld19zZWxlY3RvcicpO1xuICAgICAgICBmb3IgKGNvbnN0IFtwYXRoU2VnbWVudCwgdmlld10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnU2VydmljZS5nZXQoKS52aWV3cykpIHtcbiAgICAgICAgICAgIGlmIChwYXRoU2VnbWVudCA9PT0gY3VzdG9tU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29tcG9uZW50Q2xhc3ModmlldywgcGF0aFNlZ21lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVDb21wb25lbnRDbGFzcyh2aWV3OiBWaWV3LCBjb25maWdQYXRoOiBzdHJpbmcpOiBUeXBlPGFueT4gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgcmVzdWx0OiBUeXBlPGFueT47XG4gICAgICAgIGlmICghIXZpZXcuY29tcG9uZW50KSB7XG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLl92aWV3U2VydmljZS5yZXNvbHZlTmFtZVRvQ2xhc3Modmlldy5jb21wb25lbnQuY2xhc3MpO1xuICAgICAgICB9IGVsc2UgaWYgKCEhdmlldy5sYXlvdXQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMucmVzb2x2ZUNvbXBvbmVudENsYXNzRnJvbUxheW91dCh2aWV3LCBjb25maWdQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVDb21wb25lbnRDbGFzc0Zyb21MYXlvdXQodmlldzogVmlldywgY29uZmlnUGF0aDogc3RyaW5nKTogVHlwZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gUm91dGluZ0J1aWxkZXJTZXJ2aWNlLnBhcnNlQ2xhc3NOYW1lRnJvbVZpZXcodmlldywgY29uZmlnUGF0aCk7XG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3U2VydmljZS5yZXNvbHZlTmFtZVRvQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZURlZmF1bHRDb21wb25lbnQobmF2SXRlbURhdGE6IEFycmF5PERhdGFHcm91cD4pOiBUeXBlPGFueT4ge1xuICAgICAgICBpZiAoIWhhc1ZpZXcobmF2SXRlbURhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gRGVmYXVsdE5vRmlsdGVyUHJvdmlkZWRDb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1RhYmJlZDogYm9vbGVhbiA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGEobmF2SXRlbURhdGEsICd1c2VfdGFiYmVkX3ZpZXcnKTtcbiAgICAgICAgaWYgKCEhaXNUYWJiZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0VGFiVmlld0NvbXBvbmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlc29sdmUgbmF2aWdhdGlvbiBjb21wb25lbnRgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==