@netgrif/components 6.4.0-beta.1 → 6.4.0-beta.10
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/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +2 -2
- package/esm2020/lib/data-fields/data-fields.module.mjs +23 -7
- package/esm2020/lib/data-fields/enumeration-field/enumeration-caseref-field/enumeration-caseref-field.component.mjs +22 -0
- package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/multichoice-field/multichoice-caseref-field/multichoice-caseref-field.component.mjs +22 -0
- package/esm2020/lib/data-fields/string-collection-field/string-collection-default-field/string-collection-default-field.component.mjs +29 -0
- package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-tile/task-ref-dashboard-tile.component.mjs +4 -2
- package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-text-field.component.mjs +3 -3
- package/esm2020/lib/dialog/dialog.module.mjs +28 -14
- package/esm2020/lib/dialog/import-net-dialog/import-net-dialog.component.mjs +6 -4
- package/esm2020/lib/dialog/load-filter-dialog/load-filter-dialog.component.mjs +3 -3
- package/esm2020/lib/dialog/model/dialog-actions.mjs +18 -0
- package/esm2020/lib/dialog/multi-user-assign-dialog/multi-user-assign-dialog.component.mjs +2 -2
- package/esm2020/lib/dialog/public-api.mjs +2 -1
- package/esm2020/lib/dialog/task-view-dialog/task-view-dialog.component.mjs +91 -0
- package/esm2020/lib/dialog/user-impersonate-dialog/user-impersonate-dialog.component.mjs +3 -3
- package/esm2020/lib/header/header-modes/edit-mode/edit-mode.component.mjs +15 -10
- package/esm2020/lib/header/header-modes/search-mode/search-mode.component.mjs +18 -13
- package/esm2020/lib/header/header-modes/sort-mode/sort-mode.component.mjs +14 -8
- package/esm2020/lib/header/header.component.mjs +47 -7
- package/esm2020/lib/navigation/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.mjs +38 -10
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-no-filter-provided/default-no-filter-provided.component.mjs +14 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.mjs +111 -18
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.mjs +99 -8
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.mjs +42 -7
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.mjs +1 -1
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-task-view-data-with-navigation-item-task-data.mjs +2 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.mjs +53 -11
- package/esm2020/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.mjs +15 -16
- package/esm2020/lib/navigation/navigation.module.mjs +8 -3
- package/esm2020/lib/panel/case-panel/case-panel.component.mjs +68 -13
- package/esm2020/lib/panel/task-panel/task-panel.component.mjs +14 -7
- package/esm2020/lib/panel/task-panel-list/task-list.component.mjs +3 -3
- package/esm2020/lib/panel/task-panel-list-pagination/task-list-pagination.component.mjs +7 -5
- package/esm2020/lib/panel/task-panel-single/single-task.component.mjs +10 -11
- package/esm2020/lib/search/search-component/search.component.mjs +3 -3
- package/esm2020/lib/side-menu/content-components/admin-impersonate/admin-impersonate.component.mjs +2 -1
- package/esm2020/lib/side-menu/content-components/filter-selector/filter-selector.component.mjs +3 -1
- package/esm2020/lib/side-menu/content-components/import-net/import-net.component.mjs +9 -5
- package/esm2020/lib/side-menu/content-components/load-filter/load-filter.component.mjs +6 -3
- package/esm2020/lib/side-menu/content-components/multi-user-assign/multi-user-assign.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/new-case/new-case.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/option-selector/option-selector.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/save-filter/save-filter.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/user-assign/user-assign.component.mjs +2 -1
- package/esm2020/lib/side-menu/content-components/user-impersonate/user-impersonate.component.mjs +6 -3
- package/esm2020/lib/side-menu/side-menu-container/side-menu-container.component.mjs +4 -1
- package/esm2020/lib/task-content/field-component-resolver/field-component-resolver.component.mjs +13 -4
- package/esm2020/lib/view/case-view/components/case-list-paginator/case-list-paginator.component.mjs +5 -4
- package/esm2020/lib/view/case-view/components/create-case-button/create-case-button.component.mjs +6 -4
- package/esm2020/lib/view/tree-case-view/tree-task-content/tree-task-content.component.mjs +4 -2
- package/fesm2015/netgrif-components.mjs +954 -311
- package/fesm2015/netgrif-components.mjs.map +1 -1
- package/fesm2020/netgrif-components.mjs +937 -311
- package/fesm2020/netgrif-components.mjs.map +1 -1
- package/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.d.ts +1 -1
- package/lib/data-fields/data-fields.module.d.ts +22 -19
- package/lib/data-fields/enumeration-field/enumeration-caseref-field/enumeration-caseref-field.component.d.ts +8 -0
- package/lib/data-fields/multichoice-field/multichoice-caseref-field/multichoice-caseref-field.component.d.ts +8 -0
- package/lib/data-fields/string-collection-field/string-collection-default-field/string-collection-default-field.component.d.ts +9 -0
- package/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-text-field.component.d.ts +2 -1
- package/lib/dialog/dialog.module.d.ts +20 -17
- package/lib/dialog/import-net-dialog/import-net-dialog.component.d.ts +3 -2
- package/lib/dialog/model/dialog-actions.d.ts +2 -0
- package/lib/dialog/multi-user-assign-dialog/multi-user-assign-dialog.component.d.ts +1 -1
- package/lib/dialog/public-api.d.ts +1 -0
- package/lib/dialog/task-view-dialog/task-view-dialog.component.d.ts +20 -0
- package/lib/header/header-modes/edit-mode/edit-mode.component.d.ts +1 -0
- package/lib/header/header-modes/search-mode/search-mode.component.d.ts +1 -0
- package/lib/header/header-modes/sort-mode/sort-mode.component.d.ts +1 -0
- package/lib/header/header.component.d.ts +10 -5
- package/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.d.ts +9 -4
- package/lib/navigation/group-navigation-component-resolver/default-components/default-no-filter-provided/default-no-filter-provided.component.d.ts +5 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.d.ts +8 -2
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.d.ts +16 -2
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.d.ts +14 -3
- package/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.d.ts +16 -1
- package/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-task-view-data-with-navigation-item-task-data.d.ts +15 -0
- package/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.d.ts +9 -3
- package/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.d.ts +3 -2
- package/lib/navigation/navigation.module.d.ts +16 -15
- package/lib/panel/case-panel/case-panel.component.d.ts +10 -4
- package/lib/panel/task-panel/task-panel.component.d.ts +3 -3
- package/lib/side-menu/content-components/admin-impersonate/admin-impersonate.component.d.ts +1 -0
- package/lib/side-menu/content-components/filter-selector/filter-selector.component.d.ts +2 -0
- package/lib/side-menu/content-components/import-net/import-net.component.d.ts +6 -2
- package/lib/side-menu/content-components/load-filter/load-filter.component.d.ts +3 -0
- package/lib/side-menu/content-components/multi-user-assign/multi-user-assign.component.d.ts +3 -0
- package/lib/side-menu/content-components/new-case/new-case.component.d.ts +3 -0
- package/lib/side-menu/content-components/option-selector/option-selector.component.d.ts +3 -0
- package/lib/side-menu/content-components/save-filter/save-filter.component.d.ts +3 -0
- package/lib/side-menu/content-components/user-assign/user-assign.component.d.ts +1 -0
- package/lib/side-menu/content-components/user-impersonate/user-impersonate.component.d.ts +3 -0
- package/lib/side-menu/side-menu-container/side-menu-container.component.d.ts +3 -0
- package/lib/task-content/field-component-resolver/field-component-resolver.component.d.ts +3 -0
- package/lib/view/case-view/components/create-case-button/create-case-button.component.d.ts +2 -1
- package/package.json +2 -2
- package/schematics/view/create-view-prompt/views/public-workflow-view/files/common/__className@dasherize__.component.html.template +1 -1
- package/src/lib/data-fields/data-field.theme.scss +5 -0
- package/src/lib/dialog/dialog.theme.scss +14 -0
- package/src/lib/panel/panel.theme.scss +6 -0
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import { Component, Optional } from '@angular/core';
|
|
2
|
-
import { AbstractCasePanelComponent } from '@netgrif/components-core';
|
|
1
|
+
import { Component, Inject, Optional } from '@angular/core';
|
|
2
|
+
import { AbstractCasePanelComponent, DATA_FIELD_PORTAL_DATA, EnumerationField, MultichoiceField } from '@netgrif/components-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@netgrif/components-core";
|
|
5
5
|
import * as i2 from "@ngx-translate/core";
|
|
6
6
|
import * as i3 from "@angular/common";
|
|
7
7
|
import * as i4 from "../panel.component";
|
|
8
|
-
import * as i5 from "
|
|
9
|
-
import * as i6 from "@angular/material/
|
|
10
|
-
import * as i7 from "
|
|
11
|
-
import * as i8 from "@angular/material/
|
|
12
|
-
import * as i9 from "@angular/
|
|
13
|
-
import * as i10 from "@angular/
|
|
8
|
+
import * as i5 from "@angular/material/checkbox";
|
|
9
|
+
import * as i6 from "@angular/material/radio";
|
|
10
|
+
import * as i7 from "../panel-item/panel-item.component";
|
|
11
|
+
import * as i8 from "@angular/material/button";
|
|
12
|
+
import * as i9 from "@angular/material/icon";
|
|
13
|
+
import * as i10 from "@angular/material/menu";
|
|
14
|
+
import * as i11 from "@angular/flex-layout/flex";
|
|
15
|
+
import * as i12 from "@angular/forms";
|
|
16
|
+
import * as i13 from "@angular/flex-layout/extended";
|
|
14
17
|
export class CasePanelComponent extends AbstractCasePanelComponent {
|
|
15
|
-
constructor(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _userService, _currencyPipe, _permissionService, _overflowService) {
|
|
18
|
+
constructor(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _userService, _currencyPipe, _permissionService, _overflowService, _dataFieldPortalData) {
|
|
16
19
|
super(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _userService, _currencyPipe, _permissionService, _overflowService);
|
|
17
20
|
this._caseResourceService = _caseResourceService;
|
|
18
21
|
this._caseViewService = _caseViewService;
|
|
@@ -23,14 +26,66 @@ export class CasePanelComponent extends AbstractCasePanelComponent {
|
|
|
23
26
|
this._currencyPipe = _currencyPipe;
|
|
24
27
|
this._permissionService = _permissionService;
|
|
25
28
|
this._overflowService = _overflowService;
|
|
29
|
+
this._dataFieldPortalData = _dataFieldPortalData;
|
|
30
|
+
this._changeValue = true;
|
|
31
|
+
}
|
|
32
|
+
typeApproval() {
|
|
33
|
+
return this._dataFieldPortalData?.dataField instanceof MultichoiceField ? 'multichoice' : 'enumeration';
|
|
34
|
+
}
|
|
35
|
+
caseValue() {
|
|
36
|
+
return this.case_.stringId;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
super.ngOnInit();
|
|
40
|
+
if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof MultichoiceField) {
|
|
41
|
+
this.approvalFormControl.setValue(this._dataFieldPortalData.dataField.value.includes(this.case_.stringId));
|
|
42
|
+
this.approvalFormControl.valueChanges.subscribe(value => {
|
|
43
|
+
if (this._changeValue) {
|
|
44
|
+
if (value) {
|
|
45
|
+
this._dataFieldPortalData.dataField.value = [...this._dataFieldPortalData.dataField.value, this.case_.stringId];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const index = this._dataFieldPortalData.dataField.value.indexOf(this.case_.stringId);
|
|
49
|
+
if (index >= 0) {
|
|
50
|
+
const arr = [...this._dataFieldPortalData.dataField.value];
|
|
51
|
+
arr.splice(index, 1);
|
|
52
|
+
this._dataFieldPortalData.dataField.value = arr;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this._changeValue = true;
|
|
57
|
+
});
|
|
58
|
+
this._dataFieldPortalData.dataField.valueChanges().subscribe(() => {
|
|
59
|
+
this._changeValue = false;
|
|
60
|
+
this.approvalFormControl.setValue(this._dataFieldPortalData.dataField.value.includes(this.case_.stringId));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof EnumerationField) {
|
|
64
|
+
this.approvalFormControl.setValue(this._dataFieldPortalData.dataField.value);
|
|
65
|
+
this.approvalFormControl.valueChanges.subscribe(value => {
|
|
66
|
+
if (this._changeValue) {
|
|
67
|
+
this._dataFieldPortalData.dataField.value = this.case_.stringId;
|
|
68
|
+
}
|
|
69
|
+
this._changeValue = true;
|
|
70
|
+
});
|
|
71
|
+
this._dataFieldPortalData.dataField.valueChanges().subscribe(() => {
|
|
72
|
+
this._changeValue = false;
|
|
73
|
+
this.approvalFormControl.setValue(this._dataFieldPortalData.dataField.value);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
26
76
|
}
|
|
27
77
|
}
|
|
28
|
-
CasePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CasePanelComponent, deps: [{ token: i1.CaseResourceService }, { token: i1.CaseViewService }, { token: i1.SnackBarService }, { token: i2.TranslateService }, { token: i1.LoggerService }, { token: i1.UserService }, { token: i3.CurrencyPipe }, { token: i1.PermissionService }, { token: i1.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
CasePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CasePanelComponent, selector: "nc-case-panel", usesInheritance: true, ngImport: i0, template: "<nc-app-panel [panelHeader]=\"casePanelHeader\" [preventExpand]=\"true\" [first]=\"first\" [last]=\"last\"\n [caseColor]=case_.color>\n <ng-template #casePanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\" [ngStyle]=\"{'min-width': getMinWidth()}\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"case_.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <div *ngIf=\"showDeleteMenu && canDelete()\">\n <button mat-icon-button (click)=\"show($event)\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"deleteCase()\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'panel.case.delete' | translate}}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </ng-template>\n</nc-app-panel>\n", styles: [".case-panel-icon{margin-right:8px}.panel-main-content{margin-top:16px}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-margin{margin-right:15px;line-height:24px}.text-column-div{min-width:0;width:0}.panel-header-padding{padding:9px 0!important}.width-100{width:100%}.pre-line-dialog{white-space:pre-line!important}\n"], components: [{ type: i4.PanelComponent, selector: "nc-app-panel" }, { type: i5.PanelItemComponent, selector: "nc-panel-item" }, { type:
|
|
78
|
+
CasePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CasePanelComponent, deps: [{ token: i1.CaseResourceService }, { token: i1.CaseViewService }, { token: i1.SnackBarService }, { token: i2.TranslateService }, { token: i1.LoggerService }, { token: i1.UserService }, { token: i3.CurrencyPipe }, { token: i1.PermissionService }, { token: i1.OverflowService, optional: true }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
+
CasePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CasePanelComponent, selector: "nc-case-panel", usesInheritance: true, ngImport: i0, template: "<nc-app-panel [panelHeader]=\"casePanelHeader\" [preventExpand]=\"true\" [first]=\"first\" [last]=\"last\"\n [caseColor]=case_.color>\n <ng-template #casePanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <mat-checkbox *ngIf=\"approval && typeApproval() === 'multichoice'\" [formControl]=\"approvalFormControl\" (click)=\"$event.stopPropagation();\" color='primary' class=\"checkbox-padding\"></mat-checkbox>\n <mat-radio-group *ngIf=\"approval && typeApproval() === 'enumeration'\" [formControl]=\"approvalFormControl\" (click)=\"$event.stopPropagation();\" class=\"radio-padding\" color='primary'>\n <mat-radio-button [value]=\"caseValue()\"></mat-radio-button>\n </mat-radio-group>\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\" [ngStyle]=\"{'min-width': getMinWidth()}\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"case_.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <div *ngIf=\"showDeleteMenu && canDelete()\">\n <button mat-icon-button (click)=\"show($event)\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"deleteCase()\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'panel.case.delete' | translate}}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </ng-template>\n</nc-app-panel>\n", styles: [".case-panel-icon{margin-right:8px}.panel-main-content{margin-top:16px}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-margin{margin-right:15px;line-height:24px}.text-column-div{min-width:0;width:0}.panel-header-padding{padding:9px 0!important}.width-100{width:100%}.pre-line-dialog{white-space:pre-line!important}.checkbox-padding{padding-right:12px}.radio-padding{padding-left:2px;padding-right:6px}\n"], components: [{ type: i4.PanelComponent, selector: "nc-app-panel" }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i7.PanelItemComponent, selector: "nc-panel-item" }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i11.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: i11.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: i11.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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i13.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "translate": i2.TranslatePipe } });
|
|
30
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CasePanelComponent, decorators: [{
|
|
31
81
|
type: Component,
|
|
32
|
-
args: [{ selector: 'nc-case-panel', template: "<nc-app-panel [panelHeader]=\"casePanelHeader\" [preventExpand]=\"true\" [first]=\"first\" [last]=\"last\"\n [caseColor]=case_.color>\n <ng-template #casePanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\" [ngStyle]=\"{'min-width': getMinWidth()}\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"case_.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <div *ngIf=\"showDeleteMenu && canDelete()\">\n <button mat-icon-button (click)=\"show($event)\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"deleteCase()\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'panel.case.delete' | translate}}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </ng-template>\n</nc-app-panel>\n", styles: [".case-panel-icon{margin-right:8px}.panel-main-content{margin-top:16px}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-margin{margin-right:15px;line-height:24px}.text-column-div{min-width:0;width:0}.panel-header-padding{padding:9px 0!important}.width-100{width:100%}.pre-line-dialog{white-space:pre-line!important}\n"] }]
|
|
82
|
+
args: [{ selector: 'nc-case-panel', template: "<nc-app-panel [panelHeader]=\"casePanelHeader\" [preventExpand]=\"true\" [first]=\"first\" [last]=\"last\"\n [caseColor]=case_.color>\n <ng-template #casePanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <mat-checkbox *ngIf=\"approval && typeApproval() === 'multichoice'\" [formControl]=\"approvalFormControl\" (click)=\"$event.stopPropagation();\" color='primary' class=\"checkbox-padding\"></mat-checkbox>\n <mat-radio-group *ngIf=\"approval && typeApproval() === 'enumeration'\" [formControl]=\"approvalFormControl\" (click)=\"$event.stopPropagation();\" class=\"radio-padding\" color='primary'>\n <mat-radio-button [value]=\"caseValue()\"></mat-radio-button>\n </mat-radio-group>\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\" [ngStyle]=\"{'min-width': getMinWidth()}\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"case_.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <div *ngIf=\"showDeleteMenu && canDelete()\">\n <button mat-icon-button (click)=\"show($event)\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"deleteCase()\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'panel.case.delete' | translate}}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </ng-template>\n</nc-app-panel>\n", styles: [".case-panel-icon{margin-right:8px}.panel-main-content{margin-top:16px}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-margin{margin-right:15px;line-height:24px}.text-column-div{min-width:0;width:0}.panel-header-padding{padding:9px 0!important}.width-100{width:100%}.pre-line-dialog{white-space:pre-line!important}.checkbox-padding{padding-right:12px}.radio-padding{padding-left:2px;padding-right:6px}\n"] }]
|
|
33
83
|
}], ctorParameters: function () { return [{ type: i1.CaseResourceService }, { type: i1.CaseViewService }, { type: i1.SnackBarService }, { type: i2.TranslateService }, { type: i1.LoggerService }, { type: i1.UserService }, { type: i3.CurrencyPipe }, { type: i1.PermissionService }, { type: i1.OverflowService, decorators: [{
|
|
34
84
|
type: Optional
|
|
85
|
+
}] }, { type: undefined, decorators: [{
|
|
86
|
+
type: Optional
|
|
87
|
+
}, {
|
|
88
|
+
type: Inject,
|
|
89
|
+
args: [DATA_FIELD_PORTAL_DATA]
|
|
35
90
|
}] }]; } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9wYW5lbC9jYXNlLXBhbmVsL2Nhc2UtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvY2FzZS1wYW5lbC9jYXNlLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDSCwwQkFBMEIsRUFLN0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV2xDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBMEI7SUFDOUQsWUFBc0Isb0JBQXlDLEVBQ3pDLGdCQUFpQyxFQUNqQyxnQkFBaUMsRUFDakMsaUJBQW1DLEVBQ25DLElBQW1CLEVBQ25CLFlBQXlCLEVBQ3pCLGFBQTJCLEVBQzlCLGtCQUFxQyxFQUN0QixnQkFBaUM7UUFDL0QsS0FBSyxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUMxRCxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBVjlFLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7SUFHbkUsQ0FBQzs7Z0hBWlEsa0JBQWtCO29HQUFsQixrQkFBa0IsNEVDbEIvQiw0MURBa0NBOzRGRGhCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksZUFBZTs7MEJBYVosUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q2FzZVBhbmVsQ29tcG9uZW50LFxuICAgIENhc2VWaWV3U2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIE92ZXJmbG93U2VydmljZSxcbiAgICBVc2VyU2VydmljZVxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtDYXNlUmVzb3VyY2VTZXJ2aWNlLCBQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLWNhc2UtcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXNlLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXNlLXBhbmVsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVBhbmVsQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDYXNlUGFuZWxDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2FzZVJlc291cmNlU2VydmljZTogQ2FzZVJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Nhc2VWaWV3U2VydmljZTogQ2FzZVZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgcHVibGljIF9wZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9vdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSkge1xuICAgICAgICBzdXBlcihfY2FzZVJlc291cmNlU2VydmljZSwgX2Nhc2VWaWV3U2VydmljZSwgX3NuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgIF90cmFuc2xhdGVTZXJ2aWNlLCBfbG9nLCBfdXNlclNlcnZpY2UsIF9jdXJyZW5jeVBpcGUsIF9wZXJtaXNzaW9uU2VydmljZSwgX292ZXJmbG93U2VydmljZSk7XG4gICAgfVxufVxuIiwiPG5jLWFwcC1wYW5lbCBbcGFuZWxIZWFkZXJdPVwiY2FzZVBhbmVsSGVhZGVyXCIgW3ByZXZlbnRFeHBhbmRdPVwidHJ1ZVwiIFtmaXJzdF09XCJmaXJzdFwiIFtsYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICBbY2FzZUNvbG9yXT1jYXNlXy5jb2xvcj5cbiAgICA8bmctdGVtcGxhdGUgI2Nhc2VQYW5lbEhlYWRlcj5cbiAgICAgICAgPGRpdiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeEZsZXg9XCI5NVwiIChjbGljayk9XCJwcmV2ZW50U2VsZWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmVhdHVyZWRGaWVsZHNWYWx1ZXM7IGxldCBpID0gaW5kZXhcIiBmeEZsZXhcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWNvbHVtbi1kaXZcIiBbbmdTdHlsZV09XCJ7J21pbi13aWR0aCc6IGdldE1pbldpZHRoKCl9XCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC14bF09XCJpID49IDQgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQtbGddPVwiaSA+PSAzICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LW1kXT1cImkgPj0gMiAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1zbV09XCJpID49IDEgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncGFuZWwtaGVhZGVyLXBhZGRpbmcnOiAhdGV4dEVsbGlwc2lzICYmIGZpZWxkLnR5cGUgIT09ICdidXR0b24nfVwiPlxuICAgICAgICAgICAgICAgIDxuYy1wYW5lbC1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFtsZWFkaW5nSWNvbl09XCJjYXNlXy5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdJY29uRW5hYmxlZF09XCJpID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZlYXR1cmVkVmFsdWVdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dEVsbGlwc2lzXT1cInRleHRFbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgIDwvbmMtcGFuZWwtaXRlbT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgZnhGbGV4PVwiNVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVNZW51ICYmIGNhbkRlbGV0ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNob3coJGV2ZW50KVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkZWxldGVDYXNlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ3BhbmVsLmNhc2UuZGVsZXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25jLWFwcC1wYW5lbD5cbiJdfQ==
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9wYW5lbC9jYXNlLXBhbmVsL2Nhc2UtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvY2FzZS1wYW5lbC9jYXNlLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsMEJBQTBCLEVBQ1Qsc0JBQXNCLEVBQXVCLGdCQUFnQixFQUMvRCxnQkFBZ0IsRUFHbEMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV2xDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBMEI7SUFHOUQsWUFBc0Isb0JBQXlDLEVBQ3pDLGdCQUFpQyxFQUNqQyxnQkFBaUMsRUFDakMsaUJBQW1DLEVBQ25DLElBQW1CLEVBQ25CLFlBQXlCLEVBQ3pCLGFBQTJCLEVBQzlCLGtCQUFxQyxFQUN0QixnQkFBaUMsRUFDRCxvQkFBOEU7UUFDNUksS0FBSyxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUMxRCxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBWDlFLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNu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Q3BELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQThCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2lCQUN6RjtnQkFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRixDQUFDLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQzs7Z0hBL0RRLGtCQUFrQix1VEFZSyxzQkFBc0I7b0dBWjdDLGtCQUFrQiw0RUNsQi9CLDgyRUFzQ0E7NEZEcEJhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxlQUFlOzswQkFlWixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENhc2VQYW5lbENvbXBvbmVudCxcbiAgICBDYXNlVmlld1NlcnZpY2UsIERBVEFfRklFTERfUE9SVEFMX0RBVEEsIERhdGFGaWVsZFBvcnRhbERhdGEsIEVudW1lcmF0aW9uRmllbGQsXG4gICAgTG9nZ2VyU2VydmljZSwgTXVsdGljaG9pY2VGaWVsZCxcbiAgICBPdmVyZmxvd1NlcnZpY2UsXG4gICAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7Q2FzZVJlc291cmNlU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0N1cnJlbmN5UGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1jYXNlLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FzZS1wYW5lbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VQYW5lbENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q2FzZVBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcm90ZWN0ZWQgX2NoYW5nZVZhbHVlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jYXNlUmVzb3VyY2VTZXJ2aWNlOiBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FzZVZpZXdTZXJ2aWNlOiBDYXNlVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQV9GSUVMRF9QT1JUQUxfREFUQSkgcHJvdGVjdGVkIF9kYXRhRmllbGRQb3J0YWxEYXRhOiBEYXRhRmllbGRQb3J0YWxEYXRhPE11bHRpY2hvaWNlRmllbGQgfCBFbnVtZXJhdGlvbkZpZWxkPikge1xuICAgICAgICBzdXBlcihfY2FzZVJlc291cmNlU2VydmljZSwgX2Nhc2VWaWV3U2VydmljZSwgX3NuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgIF90cmFuc2xhdGVTZXJ2aWNlLCBfbG9nLCBfdXNlclNlcnZpY2UsIF9jdXJyZW5jeVBpcGUsIF9wZXJtaXNzaW9uU2VydmljZSwgX292ZXJmbG93U2VydmljZSk7XG4gICAgICAgIHRoaXMuX2NoYW5nZVZhbHVlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHlwZUFwcHJvdmFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YT8uZGF0YUZpZWxkIGluc3RhbmNlb2YgTXVsdGljaG9pY2VGaWVsZCA/ICdtdWx0aWNob2ljZScgOiAnZW51bWVyYXRpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYXNlVmFsdWUoKSB7XG4gICAgICAgcmV0dXJuIHRoaXMuY2FzZV8uc3RyaW5nSWQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhICE9PSBudWxsICYmIHRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkIGluc3RhbmNlb2YgTXVsdGljaG9pY2VGaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5hcHByb3ZhbEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkLnZhbHVlLmluY2x1ZGVzKHRoaXMuY2FzZV8uc3RyaW5nSWQpKTtcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2hhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YS5kYXRhRmllbGQgYXMgTXVsdGljaG9pY2VGaWVsZCkudmFsdWUgPSBbLi4udGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YS5kYXRhRmllbGQudmFsdWUsIHRoaXMuY2FzZV8uc3RyaW5nSWRdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZC52YWx1ZS5pbmRleE9mKHRoaXMuY2FzZV8uc3RyaW5nSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyID0gWy4uLnRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkLnZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YS5kYXRhRmllbGQgYXMgTXVsdGljaG9pY2VGaWVsZCkudmFsdWUgPSBhcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcHJvdmFsRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YS5kYXRhRmllbGQudmFsdWUuaW5jbHVkZXModGhpcy5jYXNlXy5zdHJpbmdJZCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YSAhPT0gbnVsbCAmJiB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZCBpbnN0YW5jZW9mIEVudW1lcmF0aW9uRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmFwcHJvdmFsRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NoYW5nZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkKS52YWx1ZSA9IHRoaXMuY2FzZV8uc3RyaW5nSWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcHJvdmFsRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YS5kYXRhRmllbGQudmFsdWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuYy1hcHAtcGFuZWwgW3BhbmVsSGVhZGVyXT1cImNhc2VQYW5lbEhlYWRlclwiIFtwcmV2ZW50RXhwYW5kXT1cInRydWVcIiBbZmlyc3RdPVwiZmlyc3RcIiBbbGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgW2Nhc2VDb2xvcl09Y2FzZV8uY29sb3I+XG4gICAgPG5nLXRlbXBsYXRlICNjYXNlUGFuZWxIZWFkZXI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0PVwicm93XCIgZnhGbGV4PVwiOTVcIiAoY2xpY2spPVwicHJldmVudFNlbGVjdGlvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nSWY9XCJhcHByb3ZhbCAmJiB0eXBlQXBwcm92YWwoKSA9PT0gJ211bHRpY2hvaWNlJ1wiIFtmb3JtQ29udHJvbF09XCJhcHByb3ZhbEZvcm1Db250cm9sXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIiBjb2xvcj0ncHJpbWFyeScgY2xhc3M9XCJjaGVja2JveC1wYWRkaW5nXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwICpuZ0lmPVwiYXBwcm92YWwgJiYgdHlwZUFwcHJvdmFsKCkgPT09ICdlbnVtZXJhdGlvbidcIiBbZm9ybUNvbnRyb2xdPVwiYXBwcm92YWxGb3JtQ29udHJvbFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgY2xhc3M9XCJyYWRpby1wYWRkaW5nXCIgY29sb3I9J3ByaW1hcnknPlxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJjYXNlVmFsdWUoKVwiPjwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmVhdHVyZWRGaWVsZHNWYWx1ZXM7IGxldCBpID0gaW5kZXhcIiBmeEZsZXhcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWNvbHVtbi1kaXZcIiBbbmdTdHlsZV09XCJ7J21pbi13aWR0aCc6IGdldE1pbldpZHRoKCl9XCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC14bF09XCJpID49IDQgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQtbGddPVwiaSA+PSAzICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LW1kXT1cImkgPj0gMiAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1zbV09XCJpID49IDEgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncGFuZWwtaGVhZGVyLXBhZGRpbmcnOiAhdGV4dEVsbGlwc2lzICYmIGZpZWxkLnR5cGUgIT09ICdidXR0b24nfVwiPlxuICAgICAgICAgICAgICAgIDxuYy1wYW5lbC1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFtsZWFkaW5nSWNvbl09XCJjYXNlXy5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdJY29uRW5hYmxlZF09XCJpID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZlYXR1cmVkVmFsdWVdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dEVsbGlwc2lzXT1cInRleHRFbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgIDwvbmMtcGFuZWwtaXRlbT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgZnhGbGV4PVwiNVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVNZW51ICYmIGNhbkRlbGV0ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNob3coJGV2ZW50KVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkZWxldGVDYXNlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ3BhbmVsLmNhc2UuZGVsZXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25jLWFwcC1wYW5lbD5cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Inject, Injector, Optional } from '@angular/core';
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
-
import { AbstractTaskPanelComponent, AssignPolicyService, AssignTaskService, BOOLEAN_VALUE_LABEL_ENABLED, CancelTaskService, ChangedFieldsService, DataFocusPolicyService, DelegateTaskService, FinishPolicyService, FinishTaskService, NAE_TASK_FORCE_OPEN, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, SingleTaskContentService, SubjectTaskOperations, TaskContentService, TaskDataService, TaskEventService, TaskRequestStateService } from '@netgrif/components-core';
|
|
3
|
+
import { AbstractTaskPanelComponent, AssignPolicyService, AssignTaskService, BOOLEAN_VALUE_LABEL_ENABLED, CancelTaskService, ChangedFieldsService, DataFocusPolicyService, DelegateTaskService, FinishPolicyService, FinishTaskService, NAE_TASK_FORCE_OPEN, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, SingleTaskContentService, SubjectTaskOperations, TaskContentService, TaskDataService, TaskEventService, TaskRequestStateService, FrontActionService, NAE_TAB_DATA } from '@netgrif/components-core';
|
|
4
4
|
import { TaskContentComponent } from '../../task-content/task-content/task-content.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@netgrif/components-core";
|
|
@@ -17,8 +17,8 @@ import * as i11 from "@angular/flex-layout/extended";
|
|
|
17
17
|
import * as i12 from "@angular/cdk/portal";
|
|
18
18
|
import * as i13 from "@angular/material/expansion";
|
|
19
19
|
export class TaskPanelComponent extends AbstractTaskPanelComponent {
|
|
20
|
-
constructor(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _translate, _taskOperations, _disableFunctions, isEnabled, _parentInjector, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen) {
|
|
21
|
-
super(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _taskOperations, _disableFunctions, _translate, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen);
|
|
20
|
+
constructor(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _translate, _taskOperations, _disableFunctions, isEnabled, _parentInjector, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen, injectedTabData) {
|
|
21
|
+
super(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _taskOperations, _disableFunctions, _translate, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen, injectedTabData);
|
|
22
22
|
this._taskContentService = _taskContentService;
|
|
23
23
|
this._log = _log;
|
|
24
24
|
this._taskViewService = _taskViewService;
|
|
@@ -59,10 +59,11 @@ export class TaskPanelComponent extends AbstractTaskPanelComponent {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
TaskPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskPanelComponent, deps: [{ token: i1.TaskContentService }, { token: i1.LoggerService }, { token: i1.TaskViewService }, { token: i1.PaperViewService }, { token: i1.TaskEventService }, { token: i1.AssignTaskService }, { token: i1.DelegateTaskService }, { token: i1.CancelTaskService }, { token: i1.FinishTaskService }, { token: i1.TaskRequestStateService }, { token: i1.TaskDataService }, { token: i1.AssignPolicyService }, { token: i1.FinishPolicyService }, { token: i1.CallChainService }, { token: i2.TranslateService }, { token: NAE_TASK_OPERATIONS }, { token: NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, optional: true }, { token: BOOLEAN_VALUE_LABEL_ENABLED, optional: true }, { token: i0.Injector }, { token: i3.CurrencyPipe }, { token: i1.ChangedFieldsService }, { token: i1.PermissionService }, { token: i1.OverflowService, optional: true }, { token: NAE_TASK_FORCE_OPEN, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
TaskPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskPanelComponent, deps: [{ token: i1.TaskContentService }, { token: i1.LoggerService }, { token: i1.TaskViewService }, { token: i1.PaperViewService }, { token: i1.TaskEventService }, { token: i1.AssignTaskService }, { token: i1.DelegateTaskService }, { token: i1.CancelTaskService }, { token: i1.FinishTaskService }, { token: i1.TaskRequestStateService }, { token: i1.TaskDataService }, { token: i1.AssignPolicyService }, { token: i1.FinishPolicyService }, { token: i1.CallChainService }, { token: i2.TranslateService }, { token: NAE_TASK_OPERATIONS }, { token: NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, optional: true }, { token: BOOLEAN_VALUE_LABEL_ENABLED, optional: true }, { token: i0.Injector }, { token: i3.CurrencyPipe }, { token: i1.ChangedFieldsService }, { token: i1.PermissionService }, { token: i1.OverflowService, optional: true }, { token: NAE_TASK_FORCE_OPEN, optional: true }, { token: NAE_TAB_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
63
|
TaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TaskPanelComponent, selector: "nc-task-panel", providers: [
|
|
64
64
|
{ provide: TaskContentService, useClass: SingleTaskContentService },
|
|
65
65
|
TaskDataService,
|
|
66
|
+
FrontActionService,
|
|
66
67
|
TaskEventService,
|
|
67
68
|
AssignTaskService,
|
|
68
69
|
DelegateTaskService,
|
|
@@ -74,12 +75,13 @@ TaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
74
75
|
FinishPolicyService,
|
|
75
76
|
ChangedFieldsService,
|
|
76
77
|
{ provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
|
|
77
|
-
], usesInheritance: true, ngImport: i0, template: "<nc-app-panel [panelContent]=\"taskPanelContent\" [panelHeader]=\"taskPanelHeader\"\n (stopLoading)=\"stopLoading()\" (getExpansionPanelRef)=\"setPanelRef($event)\" [first]=\"first\" [last]=\"last\"\n [preventCollapse]='preventCollapse' [hidePanelHeader]='hidePanelHeader'>\n <ng-template #taskPanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"taskPanelData.task.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <button mat-icon-button (click)=\"preventPanelOpen($event)\"\n *ngIf=\"!isLoading && (canAssign() || canDo('delegate') || canReassign() || canCancel() || canFinish())\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngIf=\"canAssign()\" (click)=\"assign()\" [disabled]=\"canDisable('assign')\">\n <mat-icon>person</mat-icon>\n <span>{{ getAssignTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canDo('delegate')\" (click)=\"delegate()\"\n [disabled]=\"canDisable('delegate')\">\n <mat-icon>person_outline</mat-icon>\n <span>{{ getDelegateTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canReassign()\" (click)=\"delegate()\" [disabled]=\"canDisable('reassign')\">\n <mat-icon>person_add</mat-icon>\n <span>{{ 'tasks.view.reassign' | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canCancel()\" (click)=\"cancel()\" [disabled]=\"canDisable('cancel')\">\n <mat-icon>cancel</mat-icon>\n <span>{{ getCancelTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canFinish()\" (click)=\"finish()\" [disabled]=\"canDisable('finish')\">\n <mat-icon>done</mat-icon>\n <span>{{ getFinishTitle() | translate}}</span>\n </button>\n </mat-menu>\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"30\"></mat-spinner>\n </div>\n </ng-template>\n <ng-template #taskPanelContent>\n <div class=\"panel-main-content\" fxLayout=\"column\"\n [ngStyle]=\"(isForceOpen() && {'min-height': getContentMinHeight()}) || null\">\n <div class=\"task-panel-body\" [ngClass]=\"{'paper-view': isPaperView()}\" fxFlex=\"100\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </div>\n <mat-action-row fxLayout.lt-sm=\"column\" [ngStyle]=\"{'justify-content': actionRowJustifyContent ?? 'flex-end' }\">\n <mat-spinner class='action-row-spinner' *ngIf=\"isLoading && hidePanelHeader\"\n [diameter]=\"20\"></mat-spinner>\n <div fxLayoutAlign.lt-sm=\"center stretch\" ngClass.lt-sm=\"width-100\"\n *ngFor='let button of (!!actionButtonTemplates && actionButtonTemplates.length > 0 ?\n actionButtonTemplates : [assignButton, delegateButton, reassignButton, cancelButton, finishButton, collapseButton])'>\n <ng-container *ngTemplateOutlet='button; context:thisContext'></ng-container>\n </div>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n\n<ng-template #assignButton>\n <button *ngIf=\"canAssign() && getAssignTitle()?.length > 0\" (click)=\"assign()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('assign')\">\n {{ getAssignTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #delegateButton>\n <button *ngIf=\"canDo('delegate') && getDelegateTitle()?.length > 0\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('delegate')\">\n {{ getDelegateTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #reassignButton>\n <button *ngIf=\"canReassign()\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('reassign')\">\n {{ 'tasks.view.reassign' | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #cancelButton>\n <button *ngIf=\"canCancel() && getCancelTitle()?.length > 0\" (click)=\"cancel()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('cancel')\">\n {{ getCancelTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #finishButton>\n <button *ngIf=\"canFinish() && getFinishTitle()?.length > 0\" (click)=\"finish()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('finish')\">\n {{ getFinishTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #collapseButton>\n <button *ngIf=\"canCollapse()\" color=\"primary\" (click)=\"collapse()\" mat-stroked-button color=\"primary\">\n {{ 'tasks.view.collapse' | translate | uppercase }}</button>\n</ng-template>\n", styles: [".task-panel-icon{margin-right:8px}.task-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.task-panel-body{padding:10px 24px}.paper-view{margin:auto}.width-100{width:100%}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-div{min-width:0;width:0}.text-column-margin{margin-right:15px;line-height:24px}.panel-header-padding{padding:9px 0!important}.pre-line-dialog{white-space:pre-line!important}.action-row-spinner{box-sizing:border-box;width:20px;height:20px;display:inline;margin:auto 5px}@media only screen and (max-width: 959.99px){.task-panel-body{padding:10px 0}.task-panel-action-row{padding:8px}}\n"], components: [{ type: i4.PanelComponent, selector: "nc-app-panel" }, { type: i5.PanelItemComponent, selector: "nc-panel-item" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.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: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i11.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i12.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i13.MatExpansionPanelActionRow, selector: "mat-action-row" }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i2.TranslatePipe, "uppercase": i3.UpperCasePipe } });
|
|
78
|
+
], usesInheritance: true, ngImport: i0, template: "<nc-app-panel [panelContent]=\"taskPanelContent\" [panelHeader]=\"taskPanelHeader\"\n (stopLoading)=\"stopLoading()\" (getExpansionPanelRef)=\"setPanelRef($event)\" [first]=\"first\" [last]=\"last\"\n [preventCollapse]='preventCollapse' [hidePanelHeader]='hidePanelHeader'>\n <ng-template #taskPanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"taskPanelData.task.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <button mat-icon-button (click)=\"preventPanelOpen($event)\"\n *ngIf=\"!isLoading && showMoreMenu && (canAssign() || canDo('delegate') || canReassign() || canCancel() || canFinish())\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngIf=\"canAssign()\" (click)=\"assign()\" [disabled]=\"canDisable('assign')\">\n <mat-icon>person</mat-icon>\n <span>{{ getAssignTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canDo('delegate')\" (click)=\"delegate()\"\n [disabled]=\"canDisable('delegate')\">\n <mat-icon>person_outline</mat-icon>\n <span>{{ getDelegateTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canReassign()\" (click)=\"delegate()\" [disabled]=\"canDisable('reassign')\">\n <mat-icon>person_add</mat-icon>\n <span>{{ 'tasks.view.reassign' | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canCancel()\" (click)=\"cancel()\" [disabled]=\"canDisable('cancel')\">\n <mat-icon>cancel</mat-icon>\n <span>{{ getCancelTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canFinish()\" (click)=\"finish()\" [disabled]=\"canDisable('finish')\">\n <mat-icon>done</mat-icon>\n <span>{{ getFinishTitle() | translate}}</span>\n </button>\n </mat-menu>\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"30\"></mat-spinner>\n </div>\n </ng-template>\n <ng-template #taskPanelContent>\n <div class=\"panel-main-content\" fxLayout=\"column\"\n [ngStyle]=\"(isForceOpen() && {'min-height': getContentMinHeight()}) || null\">\n <div class=\"task-panel-body\" [ngClass]=\"{'paper-view': isPaperView()}\" fxFlex=\"100\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </div>\n <mat-action-row *ngIf=\"!hideActionRow\" fxLayout.lt-sm=\"column\" [ngStyle]=\"{'justify-content': actionRowJustifyContent ?? 'flex-end' }\">\n <mat-spinner class='action-row-spinner' *ngIf=\"isLoading && hidePanelHeader\"\n [diameter]=\"20\"></mat-spinner>\n <div fxLayoutAlign.lt-sm=\"center stretch\" ngClass.lt-sm=\"width-100\"\n *ngFor='let button of (!!actionButtonTemplates && actionButtonTemplates.length > 0 ?\n actionButtonTemplates : [assignButton, delegateButton, reassignButton, cancelButton, finishButton, collapseButton])'>\n <ng-container *ngTemplateOutlet='button; context:thisContext'></ng-container>\n </div>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n\n<ng-template #assignButton>\n <button *ngIf=\"canAssign() && getAssignTitle()?.length > 0\" (click)=\"assign()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('assign')\">\n {{ getAssignTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #delegateButton>\n <button *ngIf=\"canDo('delegate') && getDelegateTitle()?.length > 0\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('delegate')\">\n {{ getDelegateTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #reassignButton>\n <button *ngIf=\"canReassign()\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('reassign')\">\n {{ 'tasks.view.reassign' | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #cancelButton>\n <button *ngIf=\"canCancel() && getCancelTitle()?.length > 0\" (click)=\"cancel()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('cancel')\">\n {{ getCancelTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #finishButton>\n <button *ngIf=\"canFinish() && getFinishTitle()?.length > 0\" (click)=\"finish()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('finish')\">\n {{ getFinishTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #collapseButton>\n <button *ngIf=\"canCollapse()\" color=\"primary\" (click)=\"collapse()\" mat-stroked-button color=\"primary\">\n {{ 'tasks.view.collapse' | translate | uppercase }}</button>\n</ng-template>\n", styles: [".task-panel-icon{margin-right:8px}.task-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.task-panel-body{padding:10px 24px}.paper-view{margin:auto}.width-100{width:100%}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-div{min-width:0;width:0}.text-column-margin{margin-right:15px;line-height:24px}.panel-header-padding{padding:9px 0!important}.pre-line-dialog{white-space:pre-line!important}.action-row-spinner{box-sizing:border-box;width:20px;height:20px;display:inline;margin:auto 5px}@media only screen and (max-width: 959.99px){.task-panel-body{padding:10px 0}.task-panel-action-row{padding:8px}}\n"], components: [{ type: i4.PanelComponent, selector: "nc-app-panel" }, { type: i5.PanelItemComponent, selector: "nc-panel-item" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.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: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i11.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i12.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i13.MatExpansionPanelActionRow, selector: "mat-action-row" }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i2.TranslatePipe, "uppercase": i3.UpperCasePipe } });
|
|
78
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskPanelComponent, decorators: [{
|
|
79
80
|
type: Component,
|
|
80
81
|
args: [{ selector: 'nc-task-panel', providers: [
|
|
81
82
|
{ provide: TaskContentService, useClass: SingleTaskContentService },
|
|
82
83
|
TaskDataService,
|
|
84
|
+
FrontActionService,
|
|
83
85
|
TaskEventService,
|
|
84
86
|
AssignTaskService,
|
|
85
87
|
DelegateTaskService,
|
|
@@ -91,7 +93,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
91
93
|
FinishPolicyService,
|
|
92
94
|
ChangedFieldsService,
|
|
93
95
|
{ provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
|
|
94
|
-
], template: "<nc-app-panel [panelContent]=\"taskPanelContent\" [panelHeader]=\"taskPanelHeader\"\n (stopLoading)=\"stopLoading()\" (getExpansionPanelRef)=\"setPanelRef($event)\" [first]=\"first\" [last]=\"last\"\n [preventCollapse]='preventCollapse' [hidePanelHeader]='hidePanelHeader'>\n <ng-template #taskPanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"taskPanelData.task.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <button mat-icon-button (click)=\"preventPanelOpen($event)\"\n *ngIf=\"!isLoading && (canAssign() || canDo('delegate') || canReassign() || canCancel() || canFinish())\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngIf=\"canAssign()\" (click)=\"assign()\" [disabled]=\"canDisable('assign')\">\n <mat-icon>person</mat-icon>\n <span>{{ getAssignTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canDo('delegate')\" (click)=\"delegate()\"\n [disabled]=\"canDisable('delegate')\">\n <mat-icon>person_outline</mat-icon>\n <span>{{ getDelegateTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canReassign()\" (click)=\"delegate()\" [disabled]=\"canDisable('reassign')\">\n <mat-icon>person_add</mat-icon>\n <span>{{ 'tasks.view.reassign' | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canCancel()\" (click)=\"cancel()\" [disabled]=\"canDisable('cancel')\">\n <mat-icon>cancel</mat-icon>\n <span>{{ getCancelTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canFinish()\" (click)=\"finish()\" [disabled]=\"canDisable('finish')\">\n <mat-icon>done</mat-icon>\n <span>{{ getFinishTitle() | translate}}</span>\n </button>\n </mat-menu>\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"30\"></mat-spinner>\n </div>\n </ng-template>\n <ng-template #taskPanelContent>\n <div class=\"panel-main-content\" fxLayout=\"column\"\n [ngStyle]=\"(isForceOpen() && {'min-height': getContentMinHeight()}) || null\">\n <div class=\"task-panel-body\" [ngClass]=\"{'paper-view': isPaperView()}\" fxFlex=\"100\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </div>\n <mat-action-row fxLayout.lt-sm=\"column\" [ngStyle]=\"{'justify-content': actionRowJustifyContent ?? 'flex-end' }\">\n <mat-spinner class='action-row-spinner' *ngIf=\"isLoading && hidePanelHeader\"\n [diameter]=\"20\"></mat-spinner>\n <div fxLayoutAlign.lt-sm=\"center stretch\" ngClass.lt-sm=\"width-100\"\n *ngFor='let button of (!!actionButtonTemplates && actionButtonTemplates.length > 0 ?\n actionButtonTemplates : [assignButton, delegateButton, reassignButton, cancelButton, finishButton, collapseButton])'>\n <ng-container *ngTemplateOutlet='button; context:thisContext'></ng-container>\n </div>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n\n<ng-template #assignButton>\n <button *ngIf=\"canAssign() && getAssignTitle()?.length > 0\" (click)=\"assign()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('assign')\">\n {{ getAssignTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #delegateButton>\n <button *ngIf=\"canDo('delegate') && getDelegateTitle()?.length > 0\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('delegate')\">\n {{ getDelegateTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #reassignButton>\n <button *ngIf=\"canReassign()\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('reassign')\">\n {{ 'tasks.view.reassign' | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #cancelButton>\n <button *ngIf=\"canCancel() && getCancelTitle()?.length > 0\" (click)=\"cancel()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('cancel')\">\n {{ getCancelTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #finishButton>\n <button *ngIf=\"canFinish() && getFinishTitle()?.length > 0\" (click)=\"finish()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('finish')\">\n {{ getFinishTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #collapseButton>\n <button *ngIf=\"canCollapse()\" color=\"primary\" (click)=\"collapse()\" mat-stroked-button color=\"primary\">\n {{ 'tasks.view.collapse' | translate | uppercase }}</button>\n</ng-template>\n", styles: [".task-panel-icon{margin-right:8px}.task-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.task-panel-body{padding:10px 24px}.paper-view{margin:auto}.width-100{width:100%}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-div{min-width:0;width:0}.text-column-margin{margin-right:15px;line-height:24px}.panel-header-padding{padding:9px 0!important}.pre-line-dialog{white-space:pre-line!important}.action-row-spinner{box-sizing:border-box;width:20px;height:20px;display:inline;margin:auto 5px}@media only screen and (max-width: 959.99px){.task-panel-body{padding:10px 0}.task-panel-action-row{padding:8px}}\n"] }]
|
|
96
|
+
], template: "<nc-app-panel [panelContent]=\"taskPanelContent\" [panelHeader]=\"taskPanelHeader\"\n (stopLoading)=\"stopLoading()\" (getExpansionPanelRef)=\"setPanelRef($event)\" [first]=\"first\" [last]=\"last\"\n [preventCollapse]='preventCollapse' [hidePanelHeader]='hidePanelHeader'>\n <ng-template #taskPanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\"\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody && !overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody && !overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody && !overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody && !overflowMode\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <nc-panel-item\n [leadingIcon]=\"taskPanelData.task.icon\"\n [leadingIconEnabled]=\"i === 0\"\n [featuredValue]=\"field\"\n [textEllipsis]=\"textEllipsis\">\n </nc-panel-item>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <button mat-icon-button (click)=\"preventPanelOpen($event)\"\n *ngIf=\"!isLoading && showMoreMenu && (canAssign() || canDo('delegate') || canReassign() || canCancel() || canFinish())\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngIf=\"canAssign()\" (click)=\"assign()\" [disabled]=\"canDisable('assign')\">\n <mat-icon>person</mat-icon>\n <span>{{ getAssignTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canDo('delegate')\" (click)=\"delegate()\"\n [disabled]=\"canDisable('delegate')\">\n <mat-icon>person_outline</mat-icon>\n <span>{{ getDelegateTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canReassign()\" (click)=\"delegate()\" [disabled]=\"canDisable('reassign')\">\n <mat-icon>person_add</mat-icon>\n <span>{{ 'tasks.view.reassign' | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canCancel()\" (click)=\"cancel()\" [disabled]=\"canDisable('cancel')\">\n <mat-icon>cancel</mat-icon>\n <span>{{ getCancelTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canFinish()\" (click)=\"finish()\" [disabled]=\"canDisable('finish')\">\n <mat-icon>done</mat-icon>\n <span>{{ getFinishTitle() | translate}}</span>\n </button>\n </mat-menu>\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"30\"></mat-spinner>\n </div>\n </ng-template>\n <ng-template #taskPanelContent>\n <div class=\"panel-main-content\" fxLayout=\"column\"\n [ngStyle]=\"(isForceOpen() && {'min-height': getContentMinHeight()}) || null\">\n <div class=\"task-panel-body\" [ngClass]=\"{'paper-view': isPaperView()}\" fxFlex=\"100\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </div>\n <mat-action-row *ngIf=\"!hideActionRow\" fxLayout.lt-sm=\"column\" [ngStyle]=\"{'justify-content': actionRowJustifyContent ?? 'flex-end' }\">\n <mat-spinner class='action-row-spinner' *ngIf=\"isLoading && hidePanelHeader\"\n [diameter]=\"20\"></mat-spinner>\n <div fxLayoutAlign.lt-sm=\"center stretch\" ngClass.lt-sm=\"width-100\"\n *ngFor='let button of (!!actionButtonTemplates && actionButtonTemplates.length > 0 ?\n actionButtonTemplates : [assignButton, delegateButton, reassignButton, cancelButton, finishButton, collapseButton])'>\n <ng-container *ngTemplateOutlet='button; context:thisContext'></ng-container>\n </div>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n\n<ng-template #assignButton>\n <button *ngIf=\"canAssign() && getAssignTitle()?.length > 0\" (click)=\"assign()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('assign')\">\n {{ getAssignTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #delegateButton>\n <button *ngIf=\"canDo('delegate') && getDelegateTitle()?.length > 0\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('delegate')\">\n {{ getDelegateTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #reassignButton>\n <button *ngIf=\"canReassign()\" (click)=\"delegate()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('reassign')\">\n {{ 'tasks.view.reassign' | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #cancelButton>\n <button *ngIf=\"canCancel() && getCancelTitle()?.length > 0\" (click)=\"cancel()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('cancel')\">\n {{ getCancelTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #finishButton>\n <button *ngIf=\"canFinish() && getFinishTitle()?.length > 0\" (click)=\"finish()\" mat-stroked-button color=\"primary\" [disabled]=\"canDisable('finish')\">\n {{ getFinishTitle() | translate | uppercase }}</button>\n</ng-template>\n\n<ng-template #collapseButton>\n <button *ngIf=\"canCollapse()\" color=\"primary\" (click)=\"collapse()\" mat-stroked-button color=\"primary\">\n {{ 'tasks.view.collapse' | translate | uppercase }}</button>\n</ng-template>\n", styles: [".task-panel-icon{margin-right:8px}.task-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.task-panel-body{padding:10px 24px}.paper-view{margin:auto}.width-100{width:100%}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-div{min-width:0;width:0}.text-column-margin{margin-right:15px;line-height:24px}.panel-header-padding{padding:9px 0!important}.pre-line-dialog{white-space:pre-line!important}.action-row-spinner{box-sizing:border-box;width:20px;height:20px;display:inline;margin:auto 5px}@media only screen and (max-width: 959.99px){.task-panel-body{padding:10px 0}.task-panel-action-row{padding:8px}}\n"] }]
|
|
95
97
|
}], ctorParameters: function () { return [{ type: i1.TaskContentService }, { type: i1.LoggerService }, { type: i1.TaskViewService }, { type: i1.PaperViewService }, { type: i1.TaskEventService }, { type: i1.AssignTaskService }, { type: i1.DelegateTaskService }, { type: i1.CancelTaskService }, { type: i1.FinishTaskService }, { type: i1.TaskRequestStateService }, { type: i1.TaskDataService }, { type: i1.AssignPolicyService }, { type: i1.FinishPolicyService }, { type: i1.CallChainService }, { type: i2.TranslateService }, { type: i1.SubjectTaskOperations, decorators: [{
|
|
96
98
|
type: Inject,
|
|
97
99
|
args: [NAE_TASK_OPERATIONS]
|
|
@@ -112,5 +114,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
112
114
|
}, {
|
|
113
115
|
type: Inject,
|
|
114
116
|
args: [NAE_TASK_FORCE_OPEN]
|
|
117
|
+
}] }, { type: undefined, decorators: [{
|
|
118
|
+
type: Optional
|
|
119
|
+
}, {
|
|
120
|
+
type: Inject,
|
|
121
|
+
args: [NAE_TAB_DATA]
|
|
115
122
|
}] }]; } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsL3Rhc2stcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvdGFzay1wYW5lbC90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBRTNCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsdUNBQXVDLEVBSXZDLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRTFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQXdCNUYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLDBCQUEwQjtJQUU5RCxZQUFzQixtQkFBdUMsRUFDdkMsSUFBbUIsRUFDbkIsZ0JBQWlDLEVBQ2pDLFVBQTRCLEVBQzVCLGlCQUFtQyxFQUNuQyxrQkFBcUMsRUFDckMsb0JBQXlDLEVBQ3pDLGtCQUFxQyxFQUNyQyxrQkFBcUMs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QkFBa0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUM7UUFDakUsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUM7S0FDbEUsaURDcERMLG85TEFvR0E7NEZEOUNhLGtCQUFrQjtrQkFwQjlCLFNBQVM7K0JBQ0ksZUFBZSxhQUdkO3dCQUNQLEVBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBQzt3QkFDakUsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQztxQkFDbEU7OzBCQW1CWSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUNBQXVDOzswQkFDMUQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkI7OzBCQUs5QyxRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgU3RhdGljUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFRhc2tQYW5lbENvbXBvbmVudCxcbiAgICBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgIEFzc2lnblRhc2tTZXJ2aWNlLFxuICAgIEJPT0xFQU5fVkFMVUVfTEFCRUxfRU5BQkxFRCxcbiAgICBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgIENhbmNlbFRhc2tTZXJ2aWNlLFxuICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgIERhdGFGb2N1c1BvbGljeVNlcnZpY2UsXG4gICAgRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICBEaXNhYmxlQnV0dG9uRnVudGlvbnMsXG4gICAgRmluaXNoUG9saWN5U2VydmljZSxcbiAgICBGaW5pc2hUYXNrU2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIE5BRV9UQVNLX0ZPUkNFX09QRU4sXG4gICAgTkFFX1RBU0tfT1BFUkFUSU9OUyxcbiAgICBOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlMsXG4gICAgT3ZlcmZsb3dTZXJ2aWNlLFxuICAgIFBhcGVyVmlld1NlcnZpY2UsXG4gICAgUGVybWlzc2lvblNlcnZpY2UsXG4gICAgU2luZ2xlVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgIFN1YmplY3RUYXNrT3BlcmF0aW9ucyxcbiAgICBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgVGFza0RhdGFTZXJ2aWNlLFxuICAgIFRhc2tFdmVudFNlcnZpY2UsXG4gICAgVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgVGFza1ZpZXdTZXJ2aWNlXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge1Rhc2tDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvdGFzay1jb250ZW50L3Rhc2stY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLXRhc2stcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBUYXNrQ29udGVudFNlcnZpY2UsIHVzZUNsYXNzOiBTaW5nbGVUYXNrQ29udGVudFNlcnZpY2V9LFxuICAgICAgICBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgIFRhc2tFdmVudFNlcnZpY2UsXG4gICAgICAgIEFzc2lnblRhc2tTZXJ2aWNlLFxuICAgICAgICBEZWxlZ2F0ZVRhc2tTZXJ2aWNlLFxuICAgICAgICBDYW5jZWxUYXNrU2VydmljZSxcbiAgICAgICAgRmluaXNoVGFza1NlcnZpY2UsXG4gICAgICAgIFRhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlLFxuICAgICAgICBEYXRhRm9jdXNQb2xpY3lTZXJ2aWNlLFxuICAgICAgICBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgICAgICBGaW5pc2hQb2xpY3lTZXJ2aWNlLFxuICAgICAgICBDaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAge3Byb3ZpZGU6IE5BRV9UQVNLX09QRVJBVElPTlMsIHVzZUNsYXNzOiBTdWJqZWN0VGFza09wZXJhdGlvbnN9LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFza1BhbmVsQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RUYXNrUGFuZWxDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrQ29udGVudFNlcnZpY2U6IFRhc2tDb250ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGFwZXJWaWV3OiBQYXBlclZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0V2ZW50U2VydmljZTogVGFza0V2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fzc2lnblRhc2tTZXJ2aWNlOiBBc3NpZ25UYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2RlbGVnYXRlVGFza1NlcnZpY2U6IERlbGVnYXRlVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYW5jZWxUYXNrU2VydmljZTogQ2FuY2VsVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hUYXNrU2VydmljZTogRmluaXNoVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrU3RhdGU6IFRhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0RhdGFTZXJ2aWNlOiBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hc3NpZ25Qb2xpY3lTZXJ2aWNlOiBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZmluaXNoUG9saWN5U2VydmljZTogRmluaXNoUG9saWN5U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbGxDaGFpbjogQ2FsbENoYWluU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KE5BRV9UQVNLX09QRVJBVElPTlMpIF90YXNrT3BlcmF0aW9uczogU3ViamVjdFRhc2tPcGVyYXRpb25zLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfUEFORUxfRElTQUJMRV9CVVRUT05fRlVOQ1RJT05TKSBwcm90ZWN0ZWQgX2Rpc2FibGVGdW5jdGlvbnM6IERpc2FibGVCdXR0b25GdW50aW9ucyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJPT0xFQU5fVkFMVUVfTEFCRUxfRU5BQkxFRCkgcHJvdGVjdGVkIGlzRW5hYmxlZDogYm9vbGVhbixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3BhcmVudEluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2N1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlZEZpZWxkc1NlcnZpY2U6IENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIG92ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfRk9SQ0VfT1BFTikgcHJvdGVjdGVkIF90YXNrRm9yY2VPcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyKF90YXNrQ29udGVudFNlcnZpY2UsIF9sb2csIF90YXNrVmlld1NlcnZpY2UsIF9wYXBlclZpZXcsIF90YXNrRXZlbnRTZXJ2aWNlLCBfYXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgICAgICBfZGVsZWdhdGVUYXNrU2VydmljZSwgX2NhbmNlbFRhc2tTZXJ2aWNlLCBfZmluaXNoVGFza1NlcnZpY2UsIF90YXNrU3RhdGUsIF90YXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICBfYXNzaWduUG9saWN5U2VydmljZSwgX2ZpbmlzaFBvbGljeVNlcnZpY2UsIF9jYWxsQ2hhaW4sIF90YXNrT3BlcmF0aW9ucywgX2Rpc2FibGVGdW5jdGlvbnMsIF90cmFuc2xhdGUsIF9jdXJyZW5jeVBpcGUsIF9jaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAgICAgIF9wZXJtaXNzaW9uU2VydmljZSwgb3ZlcmZsb3dTZXJ2aWNlLCBfdGFza0ZvcmNlT3Blbik7XG4gICAgICAgIGlmIChfdGFza0ZvcmNlT3Blbikge1xuICAgICAgICAgICAgdGhpcy5oaWRlUGFuZWxIZWFkZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUNvbnRlbnRQb3J0YWwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyczogQXJyYXk8U3RhdGljUHJvdmlkZXI+ID0gW1xuICAgICAgICAgICAge3Byb3ZpZGU6IFRhc2tDb250ZW50U2VydmljZSwgdXNlVmFsdWU6IHRoaXMuX3Rhc2tDb250ZW50U2VydmljZX0sXG4gICAgICAgICAgICB7cHJvdmlkZTogQk9PTEVBTl9WQUxVRV9MQUJFTF9FTkFCTEVELCB1c2VWYWx1ZTogdGhpcy5pc0VuYWJsZWR9XG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtwcm92aWRlcnMsIHBhcmVudDogdGhpcy5fcGFyZW50SW5qZWN0b3J9KTtcblxuICAgICAgICBpZiAodGhpcy5wYW5lbENvbnRlbnRDb21wb25lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRhc2tDb250ZW50Q29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5wYW5lbENvbnRlbnRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuYy1hcHAtcGFuZWwgW3BhbmVsQ29udGVudF09XCJ0YXNrUGFuZWxDb250ZW50XCIgW3BhbmVsSGVhZGVyXT1cInRhc2tQYW5lbEhlYWRlclwiXG4gICAgICAgICAgICAgIChzdG9wTG9hZGluZyk9XCJzdG9wTG9hZGluZygpXCIgKGdldEV4cGFuc2lvblBhbmVsUmVmKT1cInNldFBhbmVsUmVmKCRldmVudClcIiBbZmlyc3RdPVwiZmlyc3RcIiBbbGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgW3ByZXZlbnRDb2xsYXBzZV09J3ByZXZlbnRDb2xsYXBzZScgW2hpZGVQYW5lbEhlYWRlcl09J2hpZGVQYW5lbEhlYWRlcic+XG4gICAgPG5nLXRlbXBsYXRlICN0YXNrUGFuZWxIZWFkZXI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0PVwicm93XCIgZnhGbGV4PVwiOTVcIiAoY2xpY2spPVwicHJldmVudFNlbGVjdGlvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZlYXR1cmVkRmllbGRzVmFsdWVzOyBsZXQgaSA9IGluZGV4XCIgZnhGbGV4XG4gICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1jb2x1bW4tZGl2XCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC14bF09XCJpID49IDQgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQtbGddPVwiaSA+PSAzICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LW1kXT1cImkgPj0gMiAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1zbV09XCJpID49IDEgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncGFuZWwtaGVhZGVyLXBhZGRpbmcnOiAhdGV4dEVsbGlwc2lzICYmIGZpZWxkLnR5cGUgIT09ICdidXR0b24nfVwiPlxuICAgICAgICAgICAgICAgIDxuYy1wYW5lbC1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFtsZWFkaW5nSWNvbl09XCJ0YXNrUGFuZWxEYXRhLnRhc2suaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWFkaW5nSWNvbkVuYWJsZWRdPVwiaSA9PT0gMFwiXG4gICAgICAgICAgICAgICAgICAgIFtmZWF0dXJlZFZhbHVlXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRFbGxpcHNpc109XCJ0ZXh0RWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICA8L25jLXBhbmVsLWl0ZW0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiIGZ4RmxleD1cIjVcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJwcmV2ZW50UGFuZWxPcGVuKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgKGNhbkFzc2lnbigpIHx8IGNhbkRvKCdkZWxlZ2F0ZScpIHx8IGNhblJlYXNzaWduKCkgfHwgY2FuQ2FuY2VsKCkgfHwgY2FuRmluaXNoKCkpXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhbkFzc2lnbigpXCIgKGNsaWNrKT1cImFzc2lnbigpXCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2Fzc2lnbicpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRBc3NpZ25UaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuRG8oJ2RlbGVnYXRlJylcIiAoY2xpY2spPVwiZGVsZWdhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnZGVsZWdhdGUnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXREZWxlZ2F0ZVRpdGxlKCkgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5SZWFzc2lnbigpXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgncmVhc3NpZ24nKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uX2FkZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICd0YXNrcy52aWV3LnJlYXNzaWduJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhbkNhbmNlbCgpXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2NhbmNlbCcpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRDYW5jZWxUaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuRmluaXNoKClcIiAoY2xpY2spPVwiZmluaXNoKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnZmluaXNoJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaW5pc2hUaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3Rhc2tQYW5lbENvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1tYWluLWNvbnRlbnRcIiBmeExheW91dD1cImNvbHVtblwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwiKGlzRm9yY2VPcGVuKCkgJiYgeydtaW4taGVpZ2h0JzogZ2V0Q29udGVudE1pbkhlaWdodCgpfSkgfHwgbnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhc2stcGFuZWwtYm9keVwiIFtuZ0NsYXNzXT1cInsncGFwZXItdmlldyc6IGlzUGFwZXJWaWV3KCl9XCIgZnhGbGV4PVwiMTAwXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1hY3Rpb24tcm93IGZ4TGF5b3V0Lmx0LXNtPVwiY29sdW1uXCIgW25nU3R5bGVdPVwieydqdXN0aWZ5LWNvbnRlbnQnOiBhY3Rpb25Sb3dKdXN0aWZ5Q29udGVudCA/PyAnZmxleC1lbmQnIH1cIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9J2FjdGlvbi1yb3ctc3Bpbm5lcicgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaGlkZVBhbmVsSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjIwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ24ubHQtc209XCJjZW50ZXIgc3RyZXRjaFwiIG5nQ2xhc3MubHQtc209XCJ3aWR0aC0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPSdsZXQgYnV0dG9uIG9mICghIWFjdGlvbkJ1dHRvblRlbXBsYXRlcyAmJiBhY3Rpb25CdXR0b25UZW1wbGF0ZXMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvblRlbXBsYXRlcyA6IFthc3NpZ25CdXR0b24sIGRlbGVnYXRlQnV0dG9uLCByZWFzc2lnbkJ1dHRvbiwgY2FuY2VsQnV0dG9uLCBmaW5pc2hCdXR0b24sIGNvbGxhcHNlQnV0dG9uXSknPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PSdidXR0b247IGNvbnRleHQ6dGhpc0NvbnRleHQnPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtYWN0aW9uLXJvdz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmMtYXBwLXBhbmVsPlxuXG48bmctdGVtcGxhdGUgI2Fzc2lnbkJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuQXNzaWduKCkgJiYgZ2V0QXNzaWduVGl0bGUoKT8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJhc3NpZ24oKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnYXNzaWduJylcIj5cbiAgICAgICAge3sgZ2V0QXNzaWduVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWxlZ2F0ZUJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuRG8oJ2RlbGVnYXRlJykgJiYgZ2V0RGVsZWdhdGVUaXRsZSgpPy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2RlbGVnYXRlJylcIj5cbiAgICAgICAge3sgZ2V0RGVsZWdhdGVUaXRsZSgpIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JlYXNzaWduQnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5SZWFzc2lnbigpXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ3JlYXNzaWduJylcIj5cbiAgICAgICAge3sgJ3Rhc2tzLnZpZXcucmVhc3NpZ24nIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NhbmNlbEJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuQ2FuY2VsKCkgJiYgZ2V0Q2FuY2VsVGl0bGUoKT8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJjYW5jZWwoKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnY2FuY2VsJylcIj5cbiAgICAgICAge3sgZ2V0Q2FuY2VsVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmaW5pc2hCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkZpbmlzaCgpICYmIGdldEZpbmlzaFRpdGxlKCk/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiZmluaXNoKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2ZpbmlzaCcpXCI+XG4gICAgICAgIHt7IGdldEZpbmlzaFRpdGxlKCkgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sbGFwc2VCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkNvbGxhcHNlKClcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29sbGFwc2UoKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAge3sgJ3Rhc2tzLnZpZXcuY29sbGFwc2UnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsL3Rhc2stcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvdGFzay1wYW5lbC90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBRTNCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsdUNBQXVDLEVBSXZDLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLGtCQUFrQixFQUNsQixZQUFZLEVBRWYsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBeUI1RixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBRTlELFlBQXNCLG1CQUF1QyxFQUN2QyxJQUFtQixFQUNuQixnQkFBaUMsRUFDakMsVUFBNEIsRUFDNUIsaUJBQW1DLEVBQ25DLGtCQUFxQyxFQUNyQyxvQkFBeUMsRUFD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U3RhdGljUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFRhc2tQYW5lbENvbXBvbmVudCxcbiAgICBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgIEFzc2lnblRhc2tTZXJ2aWNlLFxuICAgIEJPT0xFQU5fVkFMVUVfTEFCRUxfRU5BQkxFRCxcbiAgICBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgIENhbmNlbFRhc2tTZXJ2aWNlLFxuICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgIERhdGFGb2N1c1BvbGljeVNlcnZpY2UsXG4gICAgRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICBEaXNhYmxlQnV0dG9uRnVudGlvbnMsXG4gICAgRmluaXNoUG9saWN5U2VydmljZSxcbiAgICBGaW5pc2hUYXNrU2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIE5BRV9UQVNLX0ZPUkNFX09QRU4sXG4gICAgTkFFX1RBU0tfT1BFUkFUSU9OUyxcbiAgICBOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlMsXG4gICAgT3ZlcmZsb3dTZXJ2aWNlLFxuICAgIFBhcGVyVmlld1NlcnZpY2UsXG4gICAgUGVybWlzc2lvblNlcnZpY2UsXG4gICAgU2luZ2xlVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgIFN1YmplY3RUYXNrT3BlcmF0aW9ucyxcbiAgICBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgVGFza0RhdGFTZXJ2aWNlLFxuICAgIFRhc2tFdmVudFNlcnZpY2UsXG4gICAgVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgIEZyb250QWN0aW9uU2VydmljZSxcbiAgICBOQUVfVEFCX0RBVEEsXG4gICAgSW5qZWN0ZWRUYWJEYXRhXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge1Rhc2tDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvdGFzay1jb250ZW50L3Rhc2stY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLXRhc2stcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBUYXNrQ29udGVudFNlcnZpY2UsIHVzZUNsYXNzOiBTaW5nbGVUYXNrQ29udGVudFNlcnZpY2V9LFxuICAgICAgICBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgIEZyb250QWN0aW9uU2VydmljZSxcbiAgICAgICAgVGFza0V2ZW50U2VydmljZSxcbiAgICAgICAgQXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgIERlbGVnYXRlVGFza1NlcnZpY2UsXG4gICAgICAgIENhbmNlbFRhc2tTZXJ2aWNlLFxuICAgICAgICBGaW5pc2hUYXNrU2VydmljZSxcbiAgICAgICAgVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgICAgIERhdGFGb2N1c1BvbGljeVNlcnZpY2UsXG4gICAgICAgIEFzc2lnblBvbGljeVNlcnZpY2UsXG4gICAgICAgIEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICB7cHJvdmlkZTogTkFFX1RBU0tfT1BFUkFUSU9OUywgdXNlQ2xhc3M6IFN1YmplY3RUYXNrT3BlcmF0aW9uc30sXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYXNrUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFRhc2tQYW5lbENvbXBvbmVudCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tDb250ZW50U2VydmljZTogVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1ZpZXdTZXJ2aWNlOiBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wYXBlclZpZXc6IFBhcGVyVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnRTZXJ2aWNlOiBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfYXNzaWduVGFza1NlcnZpY2U6IEFzc2lnblRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZGVsZWdhdGVUYXNrU2VydmljZTogRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbmNlbFRhc2tTZXJ2aWNlOiBDYW5jZWxUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbmlzaFRhc2tTZXJ2aWNlOiBGaW5pc2hUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tTdGF0ZTogVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRGF0YVNlcnZpY2U6IFRhc2tEYXRhU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fzc2lnblBvbGljeVNlcnZpY2U6IEFzc2lnblBvbGljeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hQb2xpY3lTZXJ2aWNlOiBGaW5pc2hQb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FsbENoYWluOiBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX1RBU0tfT1BFUkFUSU9OUykgX3Rhc2tPcGVyYXRpb25zOiBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlMpIHByb3RlY3RlZCBfZGlzYWJsZUZ1bmN0aW9uczogRGlzYWJsZUJ1dHRvbkZ1bnRpb25zLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQk9PTEVBTl9WQUxVRV9MQUJFTF9FTkFCTEVEKSBwcm90ZWN0ZWQgaXNFbmFibGVkOiBib29sZWFuLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGFyZW50SW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jaGFuZ2VkRmllbGRzU2VydmljZTogQ2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFTS19GT1JDRV9PUEVOKSBwcm90ZWN0ZWQgX3Rhc2tGb3JjZU9wZW46IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJEYXRhKSB7XG4gICAgICAgIHN1cGVyKF90YXNrQ29udGVudFNlcnZpY2UsIF9sb2csIF90YXNrVmlld1NlcnZpY2UsIF9wYXBlclZpZXcsIF90YXNrRXZlbnRTZXJ2aWNlLCBfYXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgICAgICBfZGVsZWdhdGVUYXNrU2VydmljZSwgX2NhbmNlbFRhc2tTZXJ2aWNlLCBfZmluaXNoVGFza1NlcnZpY2UsIF90YXNrU3RhdGUsIF90YXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICBfYXNzaWduUG9saWN5U2VydmljZSwgX2ZpbmlzaFBvbGljeVNlcnZpY2UsIF9jYWxsQ2hhaW4sIF90YXNrT3BlcmF0aW9ucywgX2Rpc2FibGVGdW5jdGlvbnMsIF90cmFuc2xhdGUsIF9jdXJyZW5jeVBpcGUsIF9jaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAgICAgIF9wZXJtaXNzaW9uU2VydmljZSwgb3ZlcmZsb3dTZXJ2aWNlLCBfdGFza0ZvcmNlT3BlbiwgaW5qZWN0ZWRUYWJEYXRhKTtcbiAgICAgICAgaWYgKF90YXNrRm9yY2VPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVQYW5lbEhlYWRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQ29udGVudFBvcnRhbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXJzOiBBcnJheTxTdGF0aWNQcm92aWRlcj4gPSBbXG4gICAgICAgICAgICB7cHJvdmlkZTogVGFza0NvbnRlbnRTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlfSxcbiAgICAgICAgICAgIHtwcm92aWRlOiBCT09MRUFOX1ZBTFVFX0xBQkVMX0VOQUJMRUQsIHVzZVZhbHVlOiB0aGlzLmlzRW5hYmxlZH1cbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe3Byb3ZpZGVycywgcGFyZW50OiB0aGlzLl9wYXJlbnRJbmplY3Rvcn0pO1xuXG4gICAgICAgIGlmICh0aGlzLnBhbmVsQ29udGVudENvbXBvbmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoVGFza0NvbnRlbnRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLnBhbmVsQ29udGVudENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5jLWFwcC1wYW5lbCBbcGFuZWxDb250ZW50XT1cInRhc2tQYW5lbENvbnRlbnRcIiBbcGFuZWxIZWFkZXJdPVwidGFza1BhbmVsSGVhZGVyXCJcbiAgICAgICAgICAgICAgKHN0b3BMb2FkaW5nKT1cInN0b3BMb2FkaW5nKClcIiAoZ2V0RXhwYW5zaW9uUGFuZWxSZWYpPVwic2V0UGFuZWxSZWYoJGV2ZW50KVwiIFtmaXJzdF09XCJmaXJzdFwiIFtsYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICBbcHJldmVudENvbGxhcHNlXT0ncHJldmVudENvbGxhcHNlJyBbaGlkZVBhbmVsSGVhZGVyXT0naGlkZVBhbmVsSGVhZGVyJz5cbiAgICA8bmctdGVtcGxhdGUgI3Rhc2tQYW5lbEhlYWRlcj5cbiAgICAgICAgPGRpdiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeEZsZXg9XCI5NVwiIChjbGljayk9XCJwcmV2ZW50U2VsZWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmVhdHVyZWRGaWVsZHNWYWx1ZXM7IGxldCBpID0gaW5kZXhcIiBmeEZsZXhcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWNvbHVtbi1kaXZcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LXhsXT1cImkgPj0gNCAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1sZ109XCJpID49IDMgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQtbWRdPVwiaSA+PSAyICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LXNtXT1cImkgPj0gMSAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydwYW5lbC1oZWFkZXItcGFkZGluZyc6ICF0ZXh0RWxsaXBzaXMgJiYgZmllbGQudHlwZSAhPT0gJ2J1dHRvbid9XCI+XG4gICAgICAgICAgICAgICAgPG5jLXBhbmVsLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdJY29uXT1cInRhc2tQYW5lbERhdGEudGFzay5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdJY29uRW5hYmxlZF09XCJpID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZlYXR1cmVkVmFsdWVdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dEVsbGlwc2lzXT1cInRleHRFbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgIDwvbmMtcGFuZWwtaXRlbT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgZnhGbGV4PVwiNVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInByZXZlbnRQYW5lbE9wZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGluZyAmJiBzaG93TW9yZU1lbnUgJiYgKGNhbkFzc2lnbigpIHx8IGNhbkRvKCdkZWxlZ2F0ZScpIHx8IGNhblJlYXNzaWduKCkgfHwgY2FuQ2FuY2VsKCkgfHwgY2FuRmluaXNoKCkpXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhbkFzc2lnbigpXCIgKGNsaWNrKT1cImFzc2lnbigpXCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2Fzc2lnbicpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRBc3NpZ25UaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuRG8oJ2RlbGVnYXRlJylcIiAoY2xpY2spPVwiZGVsZWdhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnZGVsZWdhdGUnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXREZWxlZ2F0ZVRpdGxlKCkgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5SZWFzc2lnbigpXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgncmVhc3NpZ24nKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uX2FkZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICd0YXNrcy52aWV3LnJlYXNzaWduJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhbkNhbmNlbCgpXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2NhbmNlbCcpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRDYW5jZWxUaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuRmluaXNoKClcIiAoY2xpY2spPVwiZmluaXNoKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnZmluaXNoJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaW5pc2hUaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3Rhc2tQYW5lbENvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1tYWluLWNvbnRlbnRcIiBmeExheW91dD1cImNvbHVtblwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwiKGlzRm9yY2VPcGVuKCkgJiYgeydtaW4taGVpZ2h0JzogZ2V0Q29udGVudE1pbkhlaWdodCgpfSkgfHwgbnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhc2stcGFuZWwtYm9keVwiIFtuZ0NsYXNzXT1cInsncGFwZXItdmlldyc6IGlzUGFwZXJWaWV3KCl9XCIgZnhGbGV4PVwiMTAwXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1hY3Rpb24tcm93ICpuZ0lmPVwiIWhpZGVBY3Rpb25Sb3dcIiBmeExheW91dC5sdC1zbT1cImNvbHVtblwiIFtuZ1N0eWxlXT1cInsnanVzdGlmeS1jb250ZW50JzogYWN0aW9uUm93SnVzdGlmeUNvbnRlbnQgPz8gJ2ZsZXgtZW5kJyB9XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPSdhY3Rpb24tcm93LXNwaW5uZXInICpuZ0lmPVwiaXNMb2FkaW5nICYmIGhpZGVQYW5lbEhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFtZXRlcl09XCIyMFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dEFsaWduLmx0LXNtPVwiY2VudGVyIHN0cmV0Y2hcIiBuZ0NsYXNzLmx0LXNtPVwid2lkdGgtMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj0nbGV0IGJ1dHRvbiBvZiAoISFhY3Rpb25CdXR0b25UZW1wbGF0ZXMgJiYgYWN0aW9uQnV0dG9uVGVtcGxhdGVzLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b25UZW1wbGF0ZXMgOiBbYXNzaWduQnV0dG9uLCBkZWxlZ2F0ZUJ1dHRvbiwgcmVhc3NpZ25CdXR0b24sIGNhbmNlbEJ1dHRvbiwgZmluaXNoQnV0dG9uLCBjb2xsYXBzZUJ1dHRvbl0pJz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD0nYnV0dG9uOyBjb250ZXh0OnRoaXNDb250ZXh0Jz48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWFjdGlvbi1yb3c+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25jLWFwcC1wYW5lbD5cblxuPG5nLXRlbXBsYXRlICNhc3NpZ25CdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkFzc2lnbigpICYmIGdldEFzc2lnblRpdGxlKCk/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiYXNzaWduKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2Fzc2lnbicpXCI+XG4gICAgICAgIHt7IGdldEFzc2lnblRpdGxlKCkgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVsZWdhdGVCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkRvKCdkZWxlZ2F0ZScpICYmIGdldERlbGVnYXRlVGl0bGUoKT8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJkZWxlZ2F0ZSgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdkZWxlZ2F0ZScpXCI+XG4gICAgICAgIHt7IGdldERlbGVnYXRlVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZWFzc2lnbkJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuUmVhc3NpZ24oKVwiIChjbGljayk9XCJkZWxlZ2F0ZSgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdyZWFzc2lnbicpXCI+XG4gICAgICAgIHt7ICd0YXNrcy52aWV3LnJlYXNzaWduJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYW5jZWxCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkNhbmNlbCgpICYmIGdldENhbmNlbFRpdGxlKCk/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2NhbmNlbCcpXCI+XG4gICAgICAgIHt7IGdldENhbmNlbFRpdGxlKCkgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmluaXNoQnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5GaW5pc2goKSAmJiBnZXRGaW5pc2hUaXRsZSgpPy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImZpbmlzaCgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdmaW5pc2gnKVwiPlxuICAgICAgICB7eyBnZXRGaW5pc2hUaXRsZSgpIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbGxhcHNlQnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5Db2xsYXBzZSgpXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbGxhcHNlKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgIHt7ICd0YXNrcy52aWV3LmNvbGxhcHNlJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -21,14 +21,14 @@ export class TaskListComponent extends AbstractTaskListComponent {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
TaskListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskListComponent, deps: [{ token: i1.TaskViewService }, { token: i1.LoggerService }, { token: NAE_TAB_DATA, optional: true }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
TaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TaskListComponent, selector: "nc-task-list", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"tasks$ | async as tasks\">\n\n <div *ngIf=\"(loading$ | async) === false && tasks.length === 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n fxFlex>\n <mat-icon color=\"accent\">check_box</mat-icon>\n <span class=\"font-size-20\">{{ 'tasks.view.noTasksSatisfyingThisFilter' | translate }}</span>\n </div>\n\n <mat-accordion [multi]=\"allowMultiOpen\" class=\"full-width panel-list-content\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"52\" (scrolledIndexChange)=\"loadNextPage()\" #taskListVirtualScroll\n [ngClass]=\"{'task-panel-scroll-container': (loading$ | async) === false && tasks.length > 0}\" class=\"full-width full-height dashboard-task-list\">\n <nc-task-panel\n [textEllipsis]=\"textEllipsis\"\n *cdkVirtualFor=\"let task of tasks;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [taskPanelData]=\"task\" [selectedHeaders$]=\"selectedHeaders$\" [first]=\"first\" [last]=\"last\"\n [forceLoadDataOnOpen]=\"forceLoadDataOnOpen\"\n [responsiveBody]=\"responsiveBody\"\n (taskEvent)=\"emitTaskEvent($event)\"\n (panelRefOutput)=\"addToPanelRefs(task, $event)\"\n [taskListVirtualScroll]=\"taskListVirtualScroll\"\n class=\"panel-expanded-spacing\">\n </nc-task-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n\n </ng-container>\n</div>\n\n<div *ngIf=\"!showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n</div>\n", styles: [".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i5.TaskPanelComponent, selector: "nc-task-panel" }, { type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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: 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: i9.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], pipes: { "async": i7.AsyncPipe, "translate": i11.TranslatePipe } });
|
|
24
|
+
TaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TaskListComponent, selector: "nc-task-list", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"tasks$ | async as tasks\">\n\n <div *ngIf=\"(loading$ | async) === false && tasks.length === 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n fxFlex>\n <mat-icon color=\"accent\">check_box</mat-icon>\n <span class=\"font-size-20\">{{ 'tasks.view.noTasksSatisfyingThisFilter' | translate }}</span>\n </div>\n\n <mat-accordion [multi]=\"allowMultiOpen\" class=\"full-width panel-list-content\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"52\" (scrolledIndexChange)=\"loadNextPage()\" #taskListVirtualScroll\n [ngClass]=\"{'task-panel-scroll-container': (loading$ | async) === false && tasks.length > 0}\" class=\"full-width full-height dashboard-task-list\">\n <nc-task-panel\n [textEllipsis]=\"textEllipsis\"\n *cdkVirtualFor=\"let task of tasks;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [taskPanelData]=\"task\" [selectedHeaders$]=\"selectedHeaders$\" [first]=\"first\" [last]=\"last\"\n [forceLoadDataOnOpen]=\"forceLoadDataOnOpen\"\n [responsiveBody]=\"responsiveBody\"\n (taskEvent)=\"emitTaskEvent($event)\"\n (panelRefOutput)=\"addToPanelRefs(task, $event)\"\n [taskListVirtualScroll]=\"taskListVirtualScroll\"\n [showMoreMenu]=\"showMoreMenu\"\n class=\"panel-expanded-spacing\">\n </nc-task-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n\n </ng-container>\n</div>\n\n<div *ngIf=\"!showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n</div>\n", styles: [".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i5.TaskPanelComponent, selector: "nc-task-panel" }, { type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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: 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: i9.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], pipes: { "async": i7.AsyncPipe, "translate": i11.TranslatePipe } });
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskListComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'nc-task-list', template: "<div *ngIf=\"showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"tasks$ | async as tasks\">\n\n <div *ngIf=\"(loading$ | async) === false && tasks.length === 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n fxFlex>\n <mat-icon color=\"accent\">check_box</mat-icon>\n <span class=\"font-size-20\">{{ 'tasks.view.noTasksSatisfyingThisFilter' | translate }}</span>\n </div>\n\n <mat-accordion [multi]=\"allowMultiOpen\" class=\"full-width panel-list-content\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"52\" (scrolledIndexChange)=\"loadNextPage()\" #taskListVirtualScroll\n [ngClass]=\"{'task-panel-scroll-container': (loading$ | async) === false && tasks.length > 0}\" class=\"full-width full-height dashboard-task-list\">\n <nc-task-panel\n [textEllipsis]=\"textEllipsis\"\n *cdkVirtualFor=\"let task of tasks;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [taskPanelData]=\"task\" [selectedHeaders$]=\"selectedHeaders$\" [first]=\"first\" [last]=\"last\"\n [forceLoadDataOnOpen]=\"forceLoadDataOnOpen\"\n [responsiveBody]=\"responsiveBody\"\n (taskEvent)=\"emitTaskEvent($event)\"\n (panelRefOutput)=\"addToPanelRefs(task, $event)\"\n [taskListVirtualScroll]=\"taskListVirtualScroll\"\n class=\"panel-expanded-spacing\">\n </nc-task-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n\n </ng-container>\n</div>\n\n<div *ngIf=\"!showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n</div>\n", styles: [".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}\n"] }]
|
|
27
|
+
args: [{ selector: 'nc-task-list', template: "<div *ngIf=\"showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"tasks$ | async as tasks\">\n\n <div *ngIf=\"(loading$ | async) === false && tasks.length === 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n fxFlex>\n <mat-icon color=\"accent\">check_box</mat-icon>\n <span class=\"font-size-20\">{{ 'tasks.view.noTasksSatisfyingThisFilter' | translate }}</span>\n </div>\n\n <mat-accordion [multi]=\"allowMultiOpen\" class=\"full-width panel-list-content\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"52\" (scrolledIndexChange)=\"loadNextPage()\" #taskListVirtualScroll\n [ngClass]=\"{'task-panel-scroll-container': (loading$ | async) === false && tasks.length > 0}\" class=\"full-width full-height dashboard-task-list\">\n <nc-task-panel\n [textEllipsis]=\"textEllipsis\"\n *cdkVirtualFor=\"let task of tasks;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [taskPanelData]=\"task\" [selectedHeaders$]=\"selectedHeaders$\" [first]=\"first\" [last]=\"last\"\n [forceLoadDataOnOpen]=\"forceLoadDataOnOpen\"\n [responsiveBody]=\"responsiveBody\"\n (taskEvent)=\"emitTaskEvent($event)\"\n (panelRefOutput)=\"addToPanelRefs(task, $event)\"\n [taskListVirtualScroll]=\"taskListVirtualScroll\"\n [showMoreMenu]=\"showMoreMenu\"\n class=\"panel-expanded-spacing\">\n </nc-task-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n\n </ng-container>\n</div>\n\n<div *ngIf=\"!showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n</div>\n", styles: [".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}\n"] }]
|
|
28
28
|
}], ctorParameters: function () { return [{ type: i1.TaskViewService }, { type: i1.LoggerService }, { type: undefined, decorators: [{
|
|
29
29
|
type: Optional
|
|
30
30
|
}, {
|
|
31
31
|
type: Inject,
|
|
32
32
|
args: [NAE_TAB_DATA]
|
|
33
33
|
}] }, { type: i2.ActivatedRoute }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL3BhbmVsL3Rhc2stcGFuZWwtbGlzdC90YXNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvdGFzay1wYW5lbC1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFDLHlCQUF5QixFQUFrQyxZQUFZLEVBQWtCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRbEksTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQUM1RCxZQUFzQixnQkFBaUMsRUFDakMsSUFBbUIsRUFDSyxlQUFnQyxFQUN4RCxLQUFzQjtRQUN4QyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUpwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQWU7UUFFbkIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFFNUMsQ0FBQzs7K0dBTlEsaUJBQWlCLDhFQUdNLFlBQVk7bUdBSG5DLGlCQUFpQiwyRUNUOUIseTFFQTJDQTs0RkRsQ2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLGNBQWM7OzBCQU9YLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUYXNrTGlzdENvbXBvbmVudCwgSW5qZWN0ZWRUYWJEYXRhLCBMb2dnZXJTZXJ2aWNlLCBOQUVfVEFCX0RBVEEsIFRhc2tWaWV3U2VydmljZX0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtdGFzay1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWxpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYXNrTGlzdENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VGFza0xpc3RDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza1ZpZXdTZXJ2aWNlOiBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJEYXRhLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKF90YXNrVmlld1NlcnZpY2UsIF9sb2csIGluamVjdGVkVGFiRGF0YSwgcm91dGUpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaG93VmlydHVhbFNjcm9sbFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFza3MkIHwgYXN5bmMgYXMgdGFza3NcIj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGxvYWRpbmckIHwgYXN5bmMpID09PSBmYWxzZSAmJiB0YXNrcy5sZW5ndGggPT09IDBcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICBmeEZsZXg+XG4gICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJhY2NlbnRcIj5jaGVja19ib3g8L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNpemUtMjBcIj57eyAndGFza3Mudmlldy5ub1Rhc2tzU2F0aXNmeWluZ1RoaXNGaWx0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWF0LWFjY29yZGlvbiBbbXVsdGldPVwiYWxsb3dNdWx0aU9wZW5cIiBjbGFzcz1cImZ1bGwtd2lkdGggcGFuZWwtbGlzdC1jb250ZW50XCIgZnhGbGV4PVwiMTAwXCI+XG4gICAgICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiNTJcIiAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJsb2FkTmV4dFBhZ2UoKVwiICN0YXNrTGlzdFZpcnR1YWxTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0YXNrLXBhbmVsLXNjcm9sbC1jb250YWluZXInOiAobG9hZGluZyQgfCBhc3luYykgPT09IGZhbHNlICYmIHRhc2tzLmxlbmd0aCA+IDB9XCIgY2xhc3M9XCJmdWxsLXdpZHRoIGZ1bGwtaGVpZ2h0IGRhc2hib2FyZC10YXNrLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmMtdGFzay1wYW5lbFxuICAgICAgICAgICAgICAgICAgICBbdGV4dEVsbGlwc2lzXT1cInRleHRFbGxpcHNpc1wiXG4gICAgICAgICAgICAgICAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IHRhc2sgb2YgdGFza3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gZmlyc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9IGxhc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVDYWNoZVNpemU6IDBcIlxuICAgICAgICAgICAgICAgICAgICBbdGFza1BhbmVsRGF0YV09XCJ0YXNrXCIgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiIFtmaXJzdF09XCJmaXJzdFwiIFtsYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICBbZm9yY2VMb2FkRGF0YU9uT3Blbl09XCJmb3JjZUxvYWREYXRhT25PcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW3Jlc3BvbnNpdmVCb2R5XT1cInJlc3BvbnNpdmVCb2R5XCJcbiAgICAgICAgICAgICAgICAgICAgKHRhc2tFdmVudCk9XCJlbWl0VGFza0V2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAocGFuZWxSZWZPdXRwdXQpPVwiYWRkVG9QYW5lbFJlZnModGFzaywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YXNrTGlzdFZpcnR1YWxTY3JvbGxdPVwidGFza0xpc3RWaXJ0dWFsU2Nyb2xsXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dNb3JlTWVudV09XCJzaG93TW9yZU1lbnVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhbmVsLWV4cGFuZGVkLXNwYWNpbmdcIj5cbiAgICAgICAgICAgICAgICA8L25jLXRhc2stcGFuZWw+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZyQgfCBhc3luY1wiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNvbG9yPVwicHJpbWFyeVwiIGRpYW1ldGVyPVwiNTJcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICAgICAgPC9tYXQtYWNjb3JkaW9uPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFzaG93VmlydHVhbFNjcm9sbFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICA8bWF0LXNwaW5uZXIgY29sb3I9XCJwcmltYXJ5XCIgZGlhbWV0ZXI9XCI1MlwiPjwvbWF0LXNwaW5uZXI+XG48L2Rpdj5cbiJdfQ==
|