@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.
- package/esm2020/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.mjs +3 -3
- package/esm2020/lib/admin/role-assignment/role-assignment.component.mjs +3 -3
- package/esm2020/lib/admin/user-invite/user-invite.component.mjs +3 -3
- package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +2 -2
- package/esm2020/lib/data-fields/enumeration-field/enumeration-caseref-field/enumeration-caseref-field.component.mjs +2 -2
- package/esm2020/lib/data-fields/file-field/file-default-field/file-default-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/multichoice-field/multichoice-caseref-field/multichoice-caseref-field.component.mjs +2 -2
- package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-field.component.mjs +1 -4
- package/esm2020/lib/data-fields/task-ref-field/task-ref-list-field/task-ref-list-field.component.mjs +2 -2
- package/esm2020/lib/dialog/task-view-dialog/task-view-dialog.component.mjs +5 -8
- package/esm2020/lib/header/header.component.mjs +39 -8
- package/esm2020/lib/navigation/dashboard/dashboard.component.mjs +30 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.mjs +4 -3
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-ticket-view-data-with-navigation-item-task-data.mjs +2 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-resolver/default-public-resolver.component.mjs +36 -0
- 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
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-task-view/default-public-task-view.component.mjs +73 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-workflow-view/default-public-workflow-view.component.mjs +44 -0
- 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
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/{default-task-view → refs/default-task-view}/default-task-view.component.mjs +3 -3
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/simple-views/default-simple-task-view/default-simple-task-view.component.mjs +85 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/simple-views/default-single-task-view/default-single-task-view.component.mjs +83 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tab-view/default-tab-view.component.mjs +179 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tabbed-case-view/default-tabbed-case-view.component.mjs +177 -0
- 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
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-tabbed-task-view/default-tabbed-task-view.component.mjs +111 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-ticket-view/default-ticket-view.component.mjs +164 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.mjs +9 -14
- package/esm2020/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.mjs +7 -7
- package/esm2020/lib/navigation/navigation.module.mjs +60 -12
- package/esm2020/lib/navigation/public-api.mjs +14 -6
- package/esm2020/lib/panel/case-panel/case-panel.component.mjs +3 -3
- package/esm2020/lib/panel/task-panel/task-panel.component.mjs +3 -3
- package/esm2020/lib/toolbar/toolbar.component.mjs +18 -14
- package/esm2020/lib/view/workflow-view/workflow-view.component.mjs +14 -11
- package/fesm2015/netgrif-components.mjs +828 -220
- package/fesm2015/netgrif-components.mjs.map +1 -1
- package/fesm2020/netgrif-components.mjs +812 -217
- package/fesm2020/netgrif-components.mjs.map +1 -1
- package/lib/dialog/task-view-dialog/task-view-dialog.component.d.ts +1 -1
- package/lib/header/header.component.d.ts +9 -6
- package/lib/navigation/dashboard/dashboard.component.d.ts +14 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.d.ts +3 -1
- package/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-ticket-view-data-with-navigation-item-task-data.d.ts +9 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-resolver/default-public-resolver.component.d.ts +19 -0
- 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
- package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-task-view/default-public-task-view.component.d.ts +12 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/public/default-public-workflow-view/default-public-workflow-view.component.d.ts +16 -0
- 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
- package/lib/navigation/group-navigation-component-resolver/default-components/{default-task-view → refs/default-task-view}/default-task-view.component.d.ts +1 -1
- 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
- package/lib/navigation/group-navigation-component-resolver/default-components/simple-views/default-single-task-view/default-single-task-view.component.d.ts +15 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/{default-tab-view → tabbed/default-tab-view}/default-tab-view.component.d.ts +8 -5
- 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
- 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
- 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
- package/lib/navigation/group-navigation-component-resolver/default-components/tabbed/default-ticket-view/default-ticket-view.component.d.ts +49 -0
- package/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.d.ts +2 -2
- package/lib/navigation/navigation.module.d.ts +31 -21
- package/lib/navigation/public-api.d.ts +13 -5
- package/lib/panel/case-panel/case-panel.component.d.ts +1 -1
- package/lib/toolbar/toolbar.component.d.ts +6 -2
- package/nae-typography.scss +2 -0
- package/package.json +2 -2
- package/src/lib/admin/user-invite/user-invite.component.theme.scss +7 -0
- package/src/lib/data-fields/data-field.theme.scss +34 -1
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.mjs +0 -151
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.mjs +0 -79
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.mjs +0 -150
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.mjs +0 -176
- 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 {
|
|
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
|
-
|
|
52
|
-
if (filterTaskRefValue == undefined || filterTaskRefValue.length == 0) {
|
|
51
|
+
if (!hasView(navItemData)) {
|
|
53
52
|
return DefaultNoFilterProvidedComponent;
|
|
54
53
|
}
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
|
|
54
|
+
const isTabbed = extractFieldValueFromData(navItemData, 'use_tabbed_view');
|
|
55
|
+
if (!!isTabbed) {
|
|
56
|
+
return DefaultTabViewComponent;
|
|
58
57
|
}
|
|
59
|
-
|
|
60
|
-
|
|
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,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9kZWZhdWx0LWdyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBRUgsdUNBQXVDLEVBTXZDLHlCQUF5QixFQUN6QixPQUFPLEVBQ1AscUJBQXFCLEVBQ3hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUNILGdDQUFnQyxFQUNuQyxNQUFNLHNGQUFzRixDQUFDOzs7QUFHOUYsTUFBTSxPQUFPLDhDQUErQyxTQUFRLHVDQUF1QztJQUV2RyxZQUFZLG1CQUF3QyxFQUFFLEdBQWtCLEVBQVUsY0FBb0MsRUFBVSxZQUF5QjtRQUNySixLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEOEMsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWE7SUFFekosQ0FBQztJQUVNLG9CQUFvQixDQUFDLFdBQTZCO1FBQ3JELE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQVUsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDNUYsSUFBSSxnQkFBZ0IsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNuRDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRVMsc0JBQXNCLENBQUMsV0FBNkI7UUFDMUQsTUFBTSxjQUFjLEdBQUcseUJBQXlCLENBQVMsV0FBVyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUYsS0FBSyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvRSxJQUFJLFdBQVcsS0FBSyxjQUFjLEVBQUU7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN4RDtTQUNKO0lBQ0wsQ0FBQztJQUVTLHFCQUFxQixDQUFDLElBQVUsRUFBRSxVQUFrQjtRQUMxRCxJQUFJLE1BQWlCLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZFO2FBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsK0JBQStCLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVTLHVCQUF1QixDQUFDLFdBQTZCO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxnQ0FBZ0MsQ0FBQztTQUMzQztRQUVELE1BQU0sUUFBUSxHQUFZLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNaLE9BQU8sdUJBQXVCLENBQUM7U0FDbEM7YUFBTTtZQUNILE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7OzRJQXZEUSw4Q0FBOEM7Z0pBQTlDLDhDQUE4Qzs0RkFBOUMsOENBQThDO2tCQUQxRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRGF0YUdyb3VwLFxuICAgIEdyb3VwTmF2aWdhdGlvbkNvbXBvbmVudFJlc29sdmVyU2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIFRhc2tSZXNvdXJjZVNlcnZpY2UsXG4gICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgVmlldyxcbiAgICBWaWV3U2VydmljZSxcbiAgICBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhLFxuICAgIGhhc1ZpZXcsXG4gICAgUm91dGluZ0J1aWxkZXJTZXJ2aWNlXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge0RlZmF1bHRUYWJWaWV3Q29tcG9uZW50fSBmcm9tICcuL2RlZmF1bHQtY29tcG9uZW50cy90YWJiZWQvZGVmYXVsdC10YWItdmlldy9kZWZhdWx0LXRhYi12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIERlZmF1bHROb0ZpbHRlclByb3ZpZGVkQ29tcG9uZW50XG59IGZyb20gXCIuL2RlZmF1bHQtY29tcG9uZW50cy9kZWZhdWx0LW5vLWZpbHRlci1wcm92aWRlZC9kZWZhdWx0LW5vLWZpbHRlci1wcm92aWRlZC5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlZmF1bHRHcm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlclNlcnZpY2UgZXh0ZW5kcyBHcm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlclNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IodGFza1Jlc291cmNlU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSwgbG9nOiBMb2dnZXJTZXJ2aWNlLCBwcml2YXRlIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgcHJpdmF0ZSBfdmlld1NlcnZpY2U6IFZpZXdTZXJ2aWNlLCkge1xuICAgICAgICBzdXBlcih0YXNrUmVzb3VyY2VTZXJ2aWNlLCBsb2cpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlVmlld0NvbXBvbmVudChuYXZJdGVtRGF0YTogQXJyYXk8RGF0YUdyb3VwPik6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHVzZUN1c3RvbVJvdXRpbmcgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPGJvb2xlYW4+KG5hdkl0ZW1EYXRhLCAndXNlX2N1c3RvbV92aWV3Jyk7XG4gICAgICAgIGlmICh1c2VDdXN0b21Sb3V0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ3VzdG9tQ29tcG9uZW50KG5hdkl0ZW1EYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVEZWZhdWx0Q29tcG9uZW50KG5hdkl0ZW1EYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlQ3VzdG9tQ29tcG9uZW50KG5hdkl0ZW1EYXRhOiBBcnJheTxEYXRhR3JvdXA+KTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY3VzdG9tU2VsZWN0b3IgPSBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPHN0cmluZz4obmF2SXRlbURhdGEsICdjdXN0b21fdmlld19zZWxlY3RvcicpO1xuICAgICAgICBmb3IgKGNvbnN0IFtwYXRoU2VnbWVudCwgdmlld10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnU2VydmljZS5nZXQoKS52aWV3cykpIHtcbiAgICAgICAgICAgIGlmIChwYXRoU2VnbWVudCA9PT0gY3VzdG9tU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29tcG9uZW50Q2xhc3ModmlldywgcGF0aFNlZ21lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVDb21wb25lbnRDbGFzcyh2aWV3OiBWaWV3LCBjb25maWdQYXRoOiBzdHJpbmcpOiBUeXBlPGFueT4gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgcmVzdWx0OiBUeXBlPGFueT47XG4gICAgICAgIGlmICghIXZpZXcuY29tcG9uZW50KSB7XG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLl92aWV3U2VydmljZS5yZXNvbHZlTmFtZVRvQ2xhc3Modmlldy5jb21wb25lbnQuY2xhc3MpO1xuICAgICAgICB9IGVsc2UgaWYgKCEhdmlldy5sYXlvdXQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMucmVzb2x2ZUNvbXBvbmVudENsYXNzRnJvbUxheW91dCh2aWV3LCBjb25maWdQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVDb21wb25lbnRDbGFzc0Zyb21MYXlvdXQodmlldzogVmlldywgY29uZmlnUGF0aDogc3RyaW5nKTogVHlwZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gUm91dGluZ0J1aWxkZXJTZXJ2aWNlLnBhcnNlQ2xhc3NOYW1lRnJvbVZpZXcodmlldywgY29uZmlnUGF0aCk7XG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3U2VydmljZS5yZXNvbHZlTmFtZVRvQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZURlZmF1bHRDb21wb25lbnQobmF2SXRlbURhdGE6IEFycmF5PERhdGFHcm91cD4pOiBUeXBlPGFueT4ge1xuICAgICAgICBpZiAoIWhhc1ZpZXcobmF2SXRlbURhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gRGVmYXVsdE5vRmlsdGVyUHJvdmlkZWRDb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1RhYmJlZDogYm9vbGVhbiA9IGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGEobmF2SXRlbURhdGEsICd1c2VfdGFiYmVkX3ZpZXcnKTtcbiAgICAgICAgaWYgKCEhaXNUYWJiZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0VGFiVmlld0NvbXBvbmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlc29sdmUgbmF2aWdhdGlvbiBjb21wb25lbnRgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|