vc-create-dashboard 3.0.3 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2022/lib/configurations.mjs +7 -7
- package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -210
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +551 -549
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -47
- package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +34 -10
- package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1121 -1121
- package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +132 -132
- package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -24
- package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -36
- package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -153
- package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -309
- package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -30
- package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -25
- package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +19 -19
- package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +149 -145
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -195
- package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -31
- package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +230 -227
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +160 -160
- package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -28
- package/esm2022/lib/create-dashboard-container/services/urlConfig.service.mjs +29 -29
- package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -421
- package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -2
- package/esm2022/lib/create-dashboard.service.mjs +14 -14
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -52
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -32
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -7
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -17
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -11
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +99 -99
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -20
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -56
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -17
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -57
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -32
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -30
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -29
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -34
- package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -14
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -119
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -39
- package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -55
- package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -19
- package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -24
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -47
- package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -18
- package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -130
- package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -18
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -142
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -93
- package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -21
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -23
- package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -41
- package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -107
- package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -21
- package/esm2022/lib/ui-kit/select/select.module.mjs +21 -21
- package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -16
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -52
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -46
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -23
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -168
- package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -18
- package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -19
- package/esm2022/public-api.mjs +10 -10
- package/esm2022/vc-create-dashboard.mjs +4 -4
- package/fesm2022/vc-create-dashboard.mjs +5367 -5308
- package/fesm2022/vc-create-dashboard.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/configurations.d.ts +4 -4
- package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/categories/categories.component.d.ts +64 -31
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +121 -88
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -9
- package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -14
- package/lib/create-dashboard-container/constants/assets.constant.d.ts +33 -9
- package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -18
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +178 -178
- package/lib/create-dashboard-container/create-dashboard.module.d.ts +40 -40
- package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -8
- package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -12
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -48
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -39
- package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -8
- package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +60 -27
- package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +64 -31
- package/lib/create-dashboard-container/services/auth.service.d.ts +11 -11
- package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +38 -38
- package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +45 -45
- package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -12
- package/lib/create-dashboard-container/services/urlConfig.service.d.ts +10 -10
- package/lib/create-dashboard-container/user-list/user-list.component.d.ts +121 -88
- package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -13
- package/lib/create-dashboard.service.d.ts +6 -6
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -17
- package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -11
- package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -10
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -20
- package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -10
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -10
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -13
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -8
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -36
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -17
- package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -7
- package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -7
- package/lib/ui-kit/no-data/no-data.component.d.ts +19 -19
- package/lib/ui-kit/no-data/no-data.module.d.ts +8 -8
- package/lib/ui-kit/pagination/pagination.component.d.ts +21 -21
- package/lib/ui-kit/pagination/pagination.module.d.ts +8 -8
- package/lib/ui-kit/popover/popover.component.d.ts +28 -28
- package/lib/ui-kit/popover/popover.directive.d.ts +17 -17
- package/lib/ui-kit/popover/popover.module.d.ts +9 -9
- package/lib/ui-kit/popover/popover.service.d.ts +13 -13
- package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -16
- package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -32
- package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -10
- package/lib/ui-kit/select/select.module.d.ts +11 -11
- package/lib/ui-kit/services/cs-select.service.d.ts +7 -7
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -17
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -17
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -9
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -28
- package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -8
- package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +3 -3
|
@@ -1,153 +1,153 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { ASSETS } from '../constants/assets.constant';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../ui-kit/dialog/dialog.service";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@vcomply/editor";
|
|
7
|
-
import * as i4 from "../../ui-kit/formgroup/cs-radio/cs-radio.component";
|
|
8
|
-
import * as i5 from "@angular/forms";
|
|
9
|
-
import * as i6 from "../../ui-kit/tooltip/tooltip.directive";
|
|
10
|
-
import * as i7 from "ng2-date-picker";
|
|
11
|
-
export class FormGroupComponent {
|
|
12
|
-
dialog;
|
|
13
|
-
openCategoryList = new EventEmitter();
|
|
14
|
-
openResponsibilityCenterList = new EventEmitter();
|
|
15
|
-
openWhoCanViewThis = new EventEmitter();
|
|
16
|
-
closeCreateDashboard = new EventEmitter();
|
|
17
|
-
openFrequency = new EventEmitter();
|
|
18
|
-
disabled;
|
|
19
|
-
fromDatePicker;
|
|
20
|
-
toDatePicker;
|
|
21
|
-
datePickerOverlay = false;
|
|
22
|
-
selectedFromDate;
|
|
23
|
-
selectedToDate;
|
|
24
|
-
dashboardName;
|
|
25
|
-
dashboardDescriptionText;
|
|
26
|
-
fieldEmptyErrorMessage = 'Enter a value for this input box.';
|
|
27
|
-
fieldLimitExceededErrorMessage = 'You have exceeded the maximum character limit of XYZ characters.';
|
|
28
|
-
dashboardNameNotUniqueErrorMessage = 'A dashboard with this name already exists. Specify a different name for the dashboard.';
|
|
29
|
-
dashboardNameError;
|
|
30
|
-
dashboardDescriptionError;
|
|
31
|
-
displayCriteria;
|
|
32
|
-
ASSETS = ASSETS;
|
|
33
|
-
constructor(dialog) {
|
|
34
|
-
this.dialog = dialog;
|
|
35
|
-
}
|
|
36
|
-
dashboardDescription = {
|
|
37
|
-
placeholder: 'Description (Max limit: 250 characters)',
|
|
38
|
-
mode: 'prime',
|
|
39
|
-
id: 'description',
|
|
40
|
-
};
|
|
41
|
-
fromDatePickerConfig = {
|
|
42
|
-
min: this.getCurrentDate(),
|
|
43
|
-
};
|
|
44
|
-
toDatePickerConfig = {};
|
|
45
|
-
ngOnInit() { }
|
|
46
|
-
openFromDatePicker() {
|
|
47
|
-
this.fromDatePicker.api.open();
|
|
48
|
-
this.datePickerOverlay = true;
|
|
49
|
-
}
|
|
50
|
-
openToDatePicker() {
|
|
51
|
-
this.toDatePicker.api.open();
|
|
52
|
-
this.datePickerOverlay = true;
|
|
53
|
-
}
|
|
54
|
-
closeFromDatePicker() {
|
|
55
|
-
let minToDate = this.selectedFromDate?.clone()?.add(1, 'days');
|
|
56
|
-
this.toDatePickerConfig = { min: minToDate, minTime: minToDate };
|
|
57
|
-
if (this.selectedToDate && minToDate.diff(this.selectedToDate) > 0) {
|
|
58
|
-
this.selectedToDate = undefined;
|
|
59
|
-
}
|
|
60
|
-
this.fromDatePicker.api.close();
|
|
61
|
-
this.datePickerOverlay = false;
|
|
62
|
-
}
|
|
63
|
-
closeToDatePicker() {
|
|
64
|
-
this.toDatePicker.api.close();
|
|
65
|
-
this.datePickerOverlay = false;
|
|
66
|
-
}
|
|
67
|
-
animateImage() {
|
|
68
|
-
const circleImage = document.getElementsByClassName('image');
|
|
69
|
-
console.log(circleImage);
|
|
70
|
-
}
|
|
71
|
-
selectWhoCanViewThis() {
|
|
72
|
-
this.openWhoCanViewThis.emit();
|
|
73
|
-
}
|
|
74
|
-
selectResponsibilityCenter() {
|
|
75
|
-
this.openResponsibilityCenterList.emit();
|
|
76
|
-
}
|
|
77
|
-
selectCategories() {
|
|
78
|
-
this.openCategoryList.emit();
|
|
79
|
-
}
|
|
80
|
-
selectFrequency() {
|
|
81
|
-
this.openFrequency.emit();
|
|
82
|
-
}
|
|
83
|
-
configureDashboard() {
|
|
84
|
-
let fieldsStatus = this.verifyFields();
|
|
85
|
-
// if(fieldsStatus) {
|
|
86
|
-
// this.closeCreateDashboard.emit();
|
|
87
|
-
// const ref = this.dialog.open(ConfigureWidgetsComponent, {
|
|
88
|
-
// data: {},
|
|
89
|
-
// position: 'CENTER',
|
|
90
|
-
// pointer: 'none'
|
|
91
|
-
// });
|
|
92
|
-
// }
|
|
93
|
-
}
|
|
94
|
-
verifyFields() {
|
|
95
|
-
let allFieldsValid = true;
|
|
96
|
-
this.dashboardNameError = '';
|
|
97
|
-
this.dashboardDescriptionError = '';
|
|
98
|
-
if (this.dashboardName === null ||
|
|
99
|
-
this.dashboardName === undefined ||
|
|
100
|
-
this.dashboardName === '') {
|
|
101
|
-
this.dashboardNameError = this.fieldEmptyErrorMessage;
|
|
102
|
-
allFieldsValid = false;
|
|
103
|
-
}
|
|
104
|
-
else if (this.dashboardName.length > 30) {
|
|
105
|
-
this.dashboardNameError = this.fieldLimitExceededErrorMessage.replace('XYZ', '30');
|
|
106
|
-
allFieldsValid = false;
|
|
107
|
-
}
|
|
108
|
-
else if (this.dashboardDescriptionText === null ||
|
|
109
|
-
this.dashboardDescriptionText === undefined ||
|
|
110
|
-
this.dashboardDescriptionText === '') {
|
|
111
|
-
this.dashboardDescriptionError = this.fieldEmptyErrorMessage;
|
|
112
|
-
allFieldsValid = false;
|
|
113
|
-
}
|
|
114
|
-
else if (this.dashboardDescriptionText.length > 250) {
|
|
115
|
-
this.dashboardDescriptionError =
|
|
116
|
-
this.fieldLimitExceededErrorMessage.replace('XYZ', '250');
|
|
117
|
-
allFieldsValid = false;
|
|
118
|
-
}
|
|
119
|
-
return allFieldsValid;
|
|
120
|
-
}
|
|
121
|
-
getCurrentDate() {
|
|
122
|
-
let today = new Date();
|
|
123
|
-
return (today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear());
|
|
124
|
-
}
|
|
125
|
-
displayCriteriaSelected(event, selection) {
|
|
126
|
-
this.displayCriteria = selection;
|
|
127
|
-
}
|
|
128
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormGroupComponent, selector: "app-form-group", inputs: { disabled: "disabled" }, outputs: { openCategoryList: "openCategoryList", openResponsibilityCenterList: "openResponsibilityCenterList", openWhoCanViewThis: "openWhoCanViewThis", closeCreateDashboard: "closeCreateDashboard", openFrequency: "openFrequency" }, viewQueries: [{ propertyName: "fromDatePicker", first: true, predicate: ["fromDatePicker"], descendants: true }, { propertyName: "toDatePicker", first: true, predicate: ["toDatePicker"], descendants: true }], ngImport: i0, template: "<!-- <p>form-group works!</p> -->\r\n<div class=\"form-group\" [class.disabled]=\"disabled\">\r\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\">\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img [ngSrc]=\"ASSETS.dashBoardIcon\" alt=\"\" width=\"36\" height=\"36\" />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Dashboard Name<span class=\"required\">*</span></label\r\n >\r\n <div class=\"vx-input-group\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Add dashboard name (Max limit: 30 characters).\"\r\n [(ngModel)]=\"dashboardName\"\r\n />\r\n <span class=\"counter\" *ngIf=\"dashboardName?.length > 0\">{{\r\n 30 - dashboardName?.length\r\n }}</span>\r\n </div>\r\n <p class=\"vx-txt-error\">{{ dashboardNameError }}</p>\r\n <div class=\"vx-input-group\">\r\n <vcomply-editor\r\n [editorConfig]=\"dashboardDescription\"\r\n [(ngModel)]=\"dashboardDescriptionText\"\r\n ></vcomply-editor>\r\n <span\r\n class=\"counter\"\r\n *ngIf=\"dashboardDescriptionText?.length > 0\"\r\n >{{ 250 - dashboardDescriptionText?.length }}</span\r\n >\r\n </div>\r\n <p class=\"vx-txt-error\">{{ dashboardDescriptionError }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Who can view this dashboard?<span class=\"required\">*</span></label\r\n >\r\n <div class=\"selectbox\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Who can view this dashboard?\"\r\n readonly\r\n (click)=\"selectWhoCanViewThis()\"\r\n />\r\n </div>\r\n <div class=\"selected\">\r\n <div class=\"left\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\">\r\n <span class=\"value\">Samantha Jones</span>\r\n </span>\r\n <span class=\"chip\">\r\n <i class=\"icons\"></i>\r\n <span class=\"value\">Angel Kleven</span>\r\n </span>\r\n </div>\r\n <button class=\"count\">+10</button>\r\n </div>\r\n <button class=\"edit\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img [ngSrc]=\"ASSETS.dashBoardRcIcon\" alt=\"\" width=\"36\" height=\"36\" />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER(S)</label>\r\n <div class=\"selectbox\">\r\n <div\r\n class=\"custom-input\"\r\n aria-placeholder=\"Select the Responsibility Center(s) that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectResponsibilityCenter()\"\r\n ></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardProgramIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">PROGRAM</label>\r\n <div class=\"selectbox\">\r\n <div\r\n class=\"custom-input\"\r\n aria-placeholder=\"Select the Program that this responsibility relates to.\"\r\n (click)=\"selectCategories()\"\r\n ></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img [ngSrc]=\"ASSETS.dashBoardRiskIcon\" alt=\"\" width=\"36\" height=\"36\" />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RISK CATEGORIES</label>\r\n <div class=\"selectbox\">\r\n <div\r\n class=\"custom-input\"\r\n aria-placeholder=\"Select the Risk Categories that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectCategories()\"\r\n ></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">DISPLAY CRITERIA</label>\r\n <div class=\"radio-group\">\r\n <app-cs-radio\r\n (checkedEvent)=\"\r\n displayCriteriaSelected($event, 'BOTH_RC_AND_CATEGORY')\r\n \"\r\n >Those responsibilities that have been assigned to both the\r\n selected Responsibility Center(s) and the selected\r\n Categories.</app-cs-radio\r\n >\r\n <app-cs-radio\r\n (checkedEvent)=\"displayCriteriaSelected($event, 'RC_OR_CATEGORY')\"\r\n >Those responsibilities that have been assigned to either the\r\n selected Responsibility Center(s) or the selected\r\n Categories.</app-cs-radio\r\n >\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardTimeFrameIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">TIMEFRAME</label>\r\n <label class=\"vx-control-panel-sub-label\"\r\n >Select how long you would like the information selected to be\r\n displayed for. If no timeframe is selected, the information will be\r\n displayed permanently.</label\r\n >\r\n <div class=\"input-group vx-d-flex vx-justify-between\">\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input\r\n type=\"text\"\r\n [value]=\"selectedFromDate | date : 'dd MMM yyyy'\"\r\n [placeholder]=\"'From'\"\r\n (click)=\"openFromDatePicker()\"\r\n readonly\r\n />\r\n <dp-date-picker\r\n #fromDatePicker\r\n [(ngModel)]=\"selectedFromDate\"\r\n placeholder=\"Select Date\"\r\n (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\"\r\n [config]=\"fromDatePickerConfig\"\r\n ></dp-date-picker>\r\n <div\r\n class=\"overlay\"\r\n (click)=\"closeFromDatePicker()\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input\r\n type=\"text\"\r\n [value]=\"selectedToDate | date : 'dd MMM yyyy'\"\r\n [placeholder]=\"'To'\"\r\n (click)=\"openToDatePicker()\"\r\n readonly\r\n />\r\n <dp-date-picker\r\n #toDatePicker\r\n [(ngModel)]=\"selectedToDate\"\r\n placeholder=\"Select Date\"\r\n (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\"\r\n [config]=\"toDatePickerConfig\"\r\n ></dp-date-picker>\r\n <div\r\n class=\"overlay\"\r\n (click)=\"closeToDatePicker()\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <!--active class will appear on open list-->\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardEmailSummariesIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Email Summaries\r\n <i\r\n class=\"icons\"\r\n [arTooltip]=\"'This is a test tooltip'\"\r\n placement=\"bottom-left\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></label\r\n >\r\n <label class=\"vx-control-panel-sub-label\">\r\n If you would like to send a summary of this Dashboard, please select\r\n a frequency(By default VComply sends a weekly Summary).\r\n </label>\r\n <div class=\"selectbox\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Email Summaries\"\r\n readonly\r\n (click)=\"selectFrequency()\"\r\n />\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-block\">\r\n <button\r\n class=\"vx-btn block primary\"\r\n [disabled]=\"disabled\"\r\n (click)=\"configureDashboard()\"\r\n >\r\n Next: Configure Widgets\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/dialog/dialog.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animation.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\";@import\"https://cdn.v-comply.com/design-system/css/forms/forms.css\";::ng-deep .form-group .vx-dialog-body-container{padding:36px 28px 0 40px!important;height:calc(100vh - 50px);overflow:auto;margin-left:-22px;background-color:transparent;position:relative;border-radius:0 0 0 30px;background:transparent}::ng-deep .form-group .vx-dialog-body-container .form-group-row{display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image{width:40px;height:40px;margin-left:-38px;margin-right:20px;margin-top:28px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image img{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+vcomply-editor{margin-top:8px;display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:after{border-left:none;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top:none;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% + 8px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:hover .custom-input{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .left{width:auto;display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .chip-container{width:auto}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group{display:flex;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group span.counter{background:transparent;color:#161b2f;font-size:9px;font-weight:500;position:absolute;top:0;right:0;border-radius:3px;height:16px;text-align:center;line-height:16px;padding:0 2px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group vcomply-editor{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group.vx-input-group{margin-top:8px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor{display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container{border-radius:4px;border-color:#dbdbdb}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover{border-color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover .editor-tools{border-top-color:#1e5dd3!important;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;max-height:90px}@media not all and (min-resolution: .001dpcm){@supports (-webkit-appearance: none){::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block:before,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools{border-color:#dbdbdb;border-radius:0 0 2px 2px;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input{height:2.5rem;border-radius:.25rem;border:1px solid #DBDBDB;background:#fff;outline:none;padding:.1875rem .75rem;line-height:1.25rem;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:12px;width:94%;display:block;pointer-events:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel i{font-size:12px;color:#1e5dd3;margin-left:7px;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;margin-bottom:.5rem;display:block;text-transform:none;width:100%;margin-top:0}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label span.required{color:#eb2424}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel+.vx-control-panel-sub-label{margin-top:-.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.radio{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #DBDBDB;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item svg{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio+app-cs-radio{margin-top:.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select{position:relative;width:calc(50% - .25rem)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select input{padding-left:36px!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select i{display:flex;justify-content:center;align-items:center;height:39px;width:14px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:14px;pointer-events:none;z-index:1}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel span.sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;text-transform:none;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image{filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image:before{display:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form{opacity:1;filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form .custom-input,::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form input[type=text]{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container:after{content:\"\";width:100%;display:block;height:30px;position:sticky;right:0;bottom:0;left:0;z-index:6;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}::ng-deep .form-group .button-block{position:relative;z-index:2}::ng-deep .form-group .button-block button{height:50px;line-height:48px!important}::ng-deep .form-group .button-block button:disabled{opacity:.3}::ng-deep .form-group.disabled{pointer-events:none;z-index:2}::ng-deep .form-group.disabled .image{position:relative;filter:grayscale(1)}::ng-deep .form-group.disabled .image:before{content:\"\";position:absolute;inset:0;background:#fff;opacity:.7}::ng-deep .form-group.disabled .form{opacity:.3;filter:grayscale(1)}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i7.DatePickerComponent, selector: "dp-date-picker", inputs: ["config", "mode", "placeholder", "disabled", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "directive", type: i2.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
|
|
130
|
-
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
132
|
-
type: Component,
|
|
133
|
-
args: [{ selector: 'app-form-group', template: "<!-- <p>form-group works!</p> -->\r\n<div class=\"form-group\" [class.disabled]=\"disabled\">\r\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\">\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img [ngSrc]=\"ASSETS.dashBoardIcon\" alt=\"\" width=\"36\" height=\"36\" />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Dashboard Name<span class=\"required\">*</span></label\r\n >\r\n <div class=\"vx-input-group\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Add dashboard name (Max limit: 30 characters).\"\r\n [(ngModel)]=\"dashboardName\"\r\n />\r\n <span class=\"counter\" *ngIf=\"dashboardName?.length > 0\">{{\r\n 30 - dashboardName?.length\r\n }}</span>\r\n </div>\r\n <p class=\"vx-txt-error\">{{ dashboardNameError }}</p>\r\n <div class=\"vx-input-group\">\r\n <vcomply-editor\r\n [editorConfig]=\"dashboardDescription\"\r\n [(ngModel)]=\"dashboardDescriptionText\"\r\n ></vcomply-editor>\r\n <span\r\n class=\"counter\"\r\n *ngIf=\"dashboardDescriptionText?.length > 0\"\r\n >{{ 250 - dashboardDescriptionText?.length }}</span\r\n >\r\n </div>\r\n <p class=\"vx-txt-error\">{{ dashboardDescriptionError }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Who can view this dashboard?<span class=\"required\">*</span></label\r\n >\r\n <div class=\"selectbox\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Who can view this dashboard?\"\r\n readonly\r\n (click)=\"selectWhoCanViewThis()\"\r\n />\r\n </div>\r\n <div class=\"selected\">\r\n <div class=\"left\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\">\r\n <span class=\"value\">Samantha Jones</span>\r\n </span>\r\n <span class=\"chip\">\r\n <i class=\"icons\"></i>\r\n <span class=\"value\">Angel Kleven</span>\r\n </span>\r\n </div>\r\n <button class=\"count\">+10</button>\r\n </div>\r\n <button class=\"edit\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img [ngSrc]=\"ASSETS.dashBoardRcIcon\" alt=\"\" width=\"36\" height=\"36\" />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER(S)</label>\r\n <div class=\"selectbox\">\r\n <div\r\n class=\"custom-input\"\r\n aria-placeholder=\"Select the Responsibility Center(s) that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectResponsibilityCenter()\"\r\n ></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardProgramIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">PROGRAM</label>\r\n <div class=\"selectbox\">\r\n <div\r\n class=\"custom-input\"\r\n aria-placeholder=\"Select the Program that this responsibility relates to.\"\r\n (click)=\"selectCategories()\"\r\n ></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img [ngSrc]=\"ASSETS.dashBoardRiskIcon\" alt=\"\" width=\"36\" height=\"36\" />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RISK CATEGORIES</label>\r\n <div class=\"selectbox\">\r\n <div\r\n class=\"custom-input\"\r\n aria-placeholder=\"Select the Risk Categories that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectCategories()\"\r\n ></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">DISPLAY CRITERIA</label>\r\n <div class=\"radio-group\">\r\n <app-cs-radio\r\n (checkedEvent)=\"\r\n displayCriteriaSelected($event, 'BOTH_RC_AND_CATEGORY')\r\n \"\r\n >Those responsibilities that have been assigned to both the\r\n selected Responsibility Center(s) and the selected\r\n Categories.</app-cs-radio\r\n >\r\n <app-cs-radio\r\n (checkedEvent)=\"displayCriteriaSelected($event, 'RC_OR_CATEGORY')\"\r\n >Those responsibilities that have been assigned to either the\r\n selected Responsibility Center(s) or the selected\r\n Categories.</app-cs-radio\r\n >\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardTimeFrameIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">TIMEFRAME</label>\r\n <label class=\"vx-control-panel-sub-label\"\r\n >Select how long you would like the information selected to be\r\n displayed for. If no timeframe is selected, the information will be\r\n displayed permanently.</label\r\n >\r\n <div class=\"input-group vx-d-flex vx-justify-between\">\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input\r\n type=\"text\"\r\n [value]=\"selectedFromDate | date : 'dd MMM yyyy'\"\r\n [placeholder]=\"'From'\"\r\n (click)=\"openFromDatePicker()\"\r\n readonly\r\n />\r\n <dp-date-picker\r\n #fromDatePicker\r\n [(ngModel)]=\"selectedFromDate\"\r\n placeholder=\"Select Date\"\r\n (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\"\r\n [config]=\"fromDatePickerConfig\"\r\n ></dp-date-picker>\r\n <div\r\n class=\"overlay\"\r\n (click)=\"closeFromDatePicker()\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input\r\n type=\"text\"\r\n [value]=\"selectedToDate | date : 'dd MMM yyyy'\"\r\n [placeholder]=\"'To'\"\r\n (click)=\"openToDatePicker()\"\r\n readonly\r\n />\r\n <dp-date-picker\r\n #toDatePicker\r\n [(ngModel)]=\"selectedToDate\"\r\n placeholder=\"Select Date\"\r\n (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\"\r\n [config]=\"toDatePickerConfig\"\r\n ></dp-date-picker>\r\n <div\r\n class=\"overlay\"\r\n (click)=\"closeToDatePicker()\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <!--active class will appear on open list-->\r\n <div class=\"image\">\r\n <img\r\n [ngSrc]=\"ASSETS.dashBoardEmailSummariesIcon\"\r\n alt=\"\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Email Summaries\r\n <i\r\n class=\"icons\"\r\n [arTooltip]=\"'This is a test tooltip'\"\r\n placement=\"bottom-left\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></label\r\n >\r\n <label class=\"vx-control-panel-sub-label\">\r\n If you would like to send a summary of this Dashboard, please select\r\n a frequency(By default VComply sends a weekly Summary).\r\n </label>\r\n <div class=\"selectbox\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Email Summaries\"\r\n readonly\r\n (click)=\"selectFrequency()\"\r\n />\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-block\">\r\n <button\r\n class=\"vx-btn block primary\"\r\n [disabled]=\"disabled\"\r\n (click)=\"configureDashboard()\"\r\n >\r\n Next: Configure Widgets\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/dialog/dialog.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animation.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\";@import\"https://cdn.v-comply.com/design-system/css/forms/forms.css\";::ng-deep .form-group .vx-dialog-body-container{padding:36px 28px 0 40px!important;height:calc(100vh - 50px);overflow:auto;margin-left:-22px;background-color:transparent;position:relative;border-radius:0 0 0 30px;background:transparent}::ng-deep .form-group .vx-dialog-body-container .form-group-row{display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image{width:40px;height:40px;margin-left:-38px;margin-right:20px;margin-top:28px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image img{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+vcomply-editor{margin-top:8px;display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:after{border-left:none;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top:none;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% + 8px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:hover .custom-input{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .left{width:auto;display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .chip-container{width:auto}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group{display:flex;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group span.counter{background:transparent;color:#161b2f;font-size:9px;font-weight:500;position:absolute;top:0;right:0;border-radius:3px;height:16px;text-align:center;line-height:16px;padding:0 2px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group vcomply-editor{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group.vx-input-group{margin-top:8px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor{display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container{border-radius:4px;border-color:#dbdbdb}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover{border-color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover .editor-tools{border-top-color:#1e5dd3!important;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;max-height:90px}@media not all and (min-resolution: .001dpcm){@supports (-webkit-appearance: none){::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block:before,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools{border-color:#dbdbdb;border-radius:0 0 2px 2px;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input{height:2.5rem;border-radius:.25rem;border:1px solid #DBDBDB;background:#fff;outline:none;padding:.1875rem .75rem;line-height:1.25rem;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:12px;width:94%;display:block;pointer-events:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel i{font-size:12px;color:#1e5dd3;margin-left:7px;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;margin-bottom:.5rem;display:block;text-transform:none;width:100%;margin-top:0}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label span.required{color:#eb2424}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel+.vx-control-panel-sub-label{margin-top:-.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.radio{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #DBDBDB;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item svg{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio+app-cs-radio{margin-top:.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select{position:relative;width:calc(50% - .25rem)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select input{padding-left:36px!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select i{display:flex;justify-content:center;align-items:center;height:39px;width:14px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:14px;pointer-events:none;z-index:1}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel span.sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;text-transform:none;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image{filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image:before{display:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form{opacity:1;filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form .custom-input,::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form input[type=text]{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container:after{content:\"\";width:100%;display:block;height:30px;position:sticky;right:0;bottom:0;left:0;z-index:6;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}::ng-deep .form-group .button-block{position:relative;z-index:2}::ng-deep .form-group .button-block button{height:50px;line-height:48px!important}::ng-deep .form-group .button-block button:disabled{opacity:.3}::ng-deep .form-group.disabled{pointer-events:none;z-index:2}::ng-deep .form-group.disabled .image{position:relative;filter:grayscale(1)}::ng-deep .form-group.disabled .image:before{content:\"\";position:absolute;inset:0;background:#fff;opacity:.7}::ng-deep .form-group.disabled .form{opacity:.3;filter:grayscale(1)}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}\n"] }]
|
|
134
|
-
}], ctorParameters: function () { return [{ type: i1.DialogService }]; }, propDecorators: { openCategoryList: [{
|
|
135
|
-
type: Output
|
|
136
|
-
}], openResponsibilityCenterList: [{
|
|
137
|
-
type: Output
|
|
138
|
-
}], openWhoCanViewThis: [{
|
|
139
|
-
type: Output
|
|
140
|
-
}], closeCreateDashboard: [{
|
|
141
|
-
type: Output
|
|
142
|
-
}], openFrequency: [{
|
|
143
|
-
type: Output
|
|
144
|
-
}], disabled: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], fromDatePicker: [{
|
|
147
|
-
type: ViewChild,
|
|
148
|
-
args: ['fromDatePicker']
|
|
149
|
-
}], toDatePicker: [{
|
|
150
|
-
type: ViewChild,
|
|
151
|
-
args: ['toDatePicker']
|
|
152
|
-
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLGtCQUFrQjtJQXlCVDtJQXhCVixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzlDLDRCQUE0QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUQsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNoRCxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ2xELGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzVDLFFBQVEsQ0FBVztJQUVDLGNBQWMsQ0FBdUI7SUFDdkMsWUFBWSxDQUF1QjtJQUM5RCxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsZ0JBQWdCLENBQU87SUFDdkIsY0FBYyxDQUFPO0lBQ3JCLGFBQWEsQ0FBTztJQUNwQix3QkFBd0IsQ0FBTztJQUMvQixzQkFBc0IsR0FBVyxtQ0FBbUMsQ0FBQztJQUNyRSw4QkFBOEIsR0FDNUIsa0VBQWtFLENBQUM7SUFDckUsa0NBQWtDLEdB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QztJQUVELHVCQUF1QixDQUFDLEtBQWMsRUFBRSxTQUFpQjtRQUN2RCxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUNuQyxDQUFDO3dHQS9JVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixraEJDbEIvQix1elZBZ1NBOzs0RkQ5UWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQjtvR0FLaEIsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLDRCQUE0QjtzQkFBckMsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0EsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBJRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAnQHZjb21wbHkvZWRpdG9yJztcclxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mb3JtLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgb3BlbkNhdGVnb3J5TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5XaG9DYW5WaWV3VGhpcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZURhc2hib2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdmcm9tRGF0ZVBpY2tlcicpIGZyb21EYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0b0RhdGVQaWNrZXInKSB0b0RhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRGcm9tRGF0ZSE6IGFueTtcclxuICBzZWxlY3RlZFRvRGF0ZSE6IGFueTtcclxuICBkYXNoYm9hcmROYW1lITogYW55O1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCE6IGFueTtcclxuICBmaWVsZEVtcHR5RXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guJztcclxuICBmaWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2U6IHN0cmluZyA9XHJcbiAgICAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIG1heGltdW0gY2hhcmFjdGVyIGxpbWl0IG9mIFhZWiBjaGFyYWN0ZXJzLic7XHJcbiAgZGFzaGJvYXJkTmFtZU5vdFVuaXF1ZUVycm9yTWVzc2FnZTogc3RyaW5nID1cclxuICAgICdBIGRhc2hib2FyZCB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cy4gU3BlY2lmeSBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGUgZGFzaGJvYXJkLic7XHJcbiAgZGFzaGJvYXJkTmFtZUVycm9yITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IhOiBzdHJpbmc7XHJcbiAgZGlzcGxheUNyaXRlcmlhITogc3RyaW5nO1xyXG4gIEFTU0VUUzogYW55ID0gQVNTRVRTO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZSkge31cclxuXHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24gKE1heCBsaW1pdDogMjUwIGNoYXJhY3RlcnMpJyxcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJyxcclxuICB9O1xyXG5cclxuICBmcm9tRGF0ZVBpY2tlckNvbmZpZzogSURhdGVQaWNrZXJDb25maWcgPSB7XHJcbiAgICBtaW46IHRoaXMuZ2V0Q3VycmVudERhdGUoKSxcclxuICB9O1xyXG5cclxuICB0b0RhdGVQaWNrZXJDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge307XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgb3BlbkZyb21EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGcm9tRGF0ZVBpY2tlcigpIHtcclxuICAgIGxldCBtaW5Ub0RhdGUgPSB0aGlzLnNlbGVjdGVkRnJvbURhdGU/LmNsb25lKCk/LmFkZCgxLCAnZGF5cycpO1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXJDb25maWcgPSB7IG1pbjogbWluVG9EYXRlLCBtaW5UaW1lOiBtaW5Ub0RhdGUgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRvRGF0ZSAmJiBtaW5Ub0RhdGUuZGlmZih0aGlzLnNlbGVjdGVkVG9EYXRlKSA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRvRGF0ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZyb21EYXRlUGlja2VyLmFwaS5jbG9zZSgpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VUb0RhdGVQaWNrZXIoKSB7XHJcbiAgICB0aGlzLnRvRGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGFuaW1hdGVJbWFnZSgpIHtcclxuICAgIGNvbnN0IGNpcmNsZUltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaW1hZ2UnKTtcclxuICAgIGNvbnNvbGUubG9nKGNpcmNsZUltYWdlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFdob0NhblZpZXdUaGlzKCkge1xyXG4gICAgdGhpcy5vcGVuV2hvQ2FuVmlld1RoaXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmVzcG9uc2liaWxpdHlDZW50ZXIoKSB7XHJcbiAgICB0aGlzLm9wZW5SZXNwb25zaWJpbGl0eUNlbnRlckxpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2F0ZWdvcmllcygpIHtcclxuICAgIHRoaXMub3BlbkNhdGVnb3J5TGlzdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLm9wZW5GcmVxdWVuY3kuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlRGFzaGJvYXJkKCkge1xyXG4gICAgbGV0IGZpZWxkc1N0YXR1cyA9IHRoaXMudmVyaWZ5RmllbGRzKCk7XHJcbiAgICAvLyBpZihmaWVsZHNTdGF0dXMpIHtcclxuICAgIC8vICAgdGhpcy5jbG9zZUNyZWF0ZURhc2hib2FyZC5lbWl0KCk7XHJcbiAgICAvLyAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCwge1xyXG4gICAgLy8gICAgIGRhdGE6IHt9LFxyXG4gICAgLy8gICAgIHBvc2l0aW9uOiAnQ0VOVEVSJyxcclxuICAgIC8vICAgICBwb2ludGVyOiAnbm9uZSdcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICB2ZXJpZnlGaWVsZHMoKSB7XHJcbiAgICBsZXQgYWxsRmllbGRzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSAnJztcclxuICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9ICcnO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5kYXNoYm9hcmROYW1lID09PSBudWxsIHx8XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZSA9PT0gJydcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWVFcnJvciA9IHRoaXMuZmllbGRFbXB0eUVycm9yTWVzc2FnZTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXNoYm9hcmROYW1lLmxlbmd0aCA+IDMwKSB7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZUVycm9yID0gdGhpcy5maWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2UucmVwbGFjZShcclxuICAgICAgICAnWFlaJyxcclxuICAgICAgICAnMzAnXHJcbiAgICAgICk7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gbnVsbCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0ID09PSAnJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9IHRoaXMuZmllbGRFbXB0eUVycm9yTWVzc2FnZTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQubGVuZ3RoID4gMjUwKSB7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9XHJcbiAgICAgICAgdGhpcy5maWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2UucmVwbGFjZSgnWFlaJywgJzI1MCcpO1xyXG4gICAgICBhbGxGaWVsZHNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFsbEZpZWxkc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudERhdGUoKSB7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdG9kYXkuZ2V0RGF0ZSgpICsgJy0nICsgKHRvZGF5LmdldE1vbnRoKCkgKyAxKSArICctJyArIHRvZGF5LmdldEZ1bGxZZWFyKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZChldmVudDogYm9vbGVhbiwgc2VsZWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlzcGxheUNyaXRlcmlhID0gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxwPmZvcm0tZ3JvdXAgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWJvZHktY29udGFpbmVyXCIgKHNjcm9sbCk9XCJhbmltYXRlSW1hZ2UoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWcgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRJY29uXCIgYWx0PVwiXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgICA+RGFzaGJvYXJkIE5hbWU8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGRhc2hib2FyZCBuYW1lIChNYXggbGltaXQ6IDMwIGNoYXJhY3RlcnMpLlwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmROYW1lXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJkYXNoYm9hcmROYW1lPy5sZW5ndGggPiAwXCI+e3tcclxuICAgICAgICAgICAgICAzMCAtIGRhc2hib2FyZE5hbWU/Lmxlbmd0aFxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj57eyBkYXNoYm9hcmROYW1lRXJyb3IgfX08L3A+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJkYXNoYm9hcmREZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmREZXNjcmlwdGlvblRleHRcIlxyXG4gICAgICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXJcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Py5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICA+e3sgMjUwIC0gZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Py5sZW5ndGggfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPnt7IGRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRVc2Vyc0ljb25cIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgIHdpZHRoPVwiMzZcIlxyXG4gICAgICAgICAgaGVpZ2h0PVwiMzZcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgICAgPldobyBjYW4gdmlldyB0aGlzIGRhc2hib2FyZD88c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBjYW4gdmlldyB0aGlzIGRhc2hib2FyZD9cIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdob0NhblZpZXdUaGlzKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+U2FtYW50aGEgSm9uZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+QW5nZWwgS2xldmVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiPisxMDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgPGltZyBbbmdTcmNdPVwiQVNTRVRTLmRhc2hCb2FyZFJjSWNvblwiIGFsdD1cIlwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UkVTUE9OU0lCSUxJVFkgQ0VOVEVSKFMpPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJlc3BvbnNpYmlsaXR5Q2VudGVyKClcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIFtuZ1NyY109XCJBU1NFVFMuZGFzaEJvYXJkUHJvZ3JhbUljb25cIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgIHdpZHRoPVwiMzZcIlxyXG4gICAgICAgICAgaGVpZ2h0PVwiMzZcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UFJPR1JBTTwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUHJvZ3JhbSB0aGF0IHRoaXMgcmVzcG9uc2liaWxpdHkgcmVsYXRlcyB0by5cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yaWVzKClcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWcgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRSaXNrSWNvblwiIGFsdD1cIlwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UklTSyBDQVRFR09SSUVTPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSaXNrIENhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhdGVnb3JpZXMoKVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRVc2Vyc0ljb25cIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgIHdpZHRoPVwiMzZcIlxyXG4gICAgICAgICAgaGVpZ2h0PVwiMzZcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RElTUExBWSBDUklURVJJQTwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwiXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZCgkZXZlbnQsICdCT1RIX1JDX0FORF9DQVRFR09SWScpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+VGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBib3RoIHRoZVxyXG4gICAgICAgICAgICAgIHNlbGVjdGVkIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBhbmQgdGhlIHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cImRpc3BsYXlDcml0ZXJpYVNlbGVjdGVkKCRldmVudCwgJ1JDX09SX0NBVEVHT1JZJylcIlxyXG4gICAgICAgICAgICAgID5UaG9zZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIGVpdGhlciB0aGVcclxuICAgICAgICAgICAgICBzZWxlY3RlZCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgb3IgdGhlIHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIFtuZ1NyY109XCJBU1NFVFMuZGFzaEJvYXJkVGltZUZyYW1lSWNvblwiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgd2lkdGg9XCIzNlwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIzNlwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5USU1FRlJBTUU8L2xhYmVsPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIlxyXG4gICAgICAgICAgICA+U2VsZWN0IGhvdyBsb25nIHlvdSB3b3VsZCBsaWtlIHRoZSBpbmZvcm1hdGlvbiBzZWxlY3RlZCB0byBiZVxyXG4gICAgICAgICAgICBkaXNwbGF5ZWQgZm9yLiBJZiBubyB0aW1lZnJhbWUgaXMgc2VsZWN0ZWQsIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGJlXHJcbiAgICAgICAgICAgIGRpc3BsYXllZCBwZXJtYW5lbnRseS48L2xhYmVsXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRGcm9tRGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRnJvbSdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Gcm9tRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgICNmcm9tRGF0ZVBpY2tlclxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEZyb21EYXRlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIlxyXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZyb21EYXRlUGlja2VyQ29uZmlnXCJcclxuICAgICAgICAgICAgICA+PC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRUb0RhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RvJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblRvRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgICN0b0RhdGVQaWNrZXJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUb0RhdGVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY2xvc2VUb0RhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cInRvRGF0ZVBpY2tlckNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgPjwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVRvRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgIDwhLS1hY3RpdmUgY2xhc3Mgd2lsbCBhcHBlYXIgb24gb3BlbiBsaXN0LS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIFtuZ1NyY109XCJBU1NFVFMuZGFzaEJvYXJkRW1haWxTdW1tYXJpZXNJY29uXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICB3aWR0aD1cIjM2XCJcclxuICAgICAgICAgIGhlaWdodD1cIjM2XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlxyXG4gICAgICAgICAgICBFbWFpbCBTdW1tYXJpZXNcclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICBbYXJUb29sdGlwXT1cIidUaGlzIGlzIGEgdGVzdCB0b29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcclxuICAgICAgICAgICAgPjwvbGFiZWxcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWwtc3ViLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIElmIHlvdSB3b3VsZCBsaWtlIHRvIHNlbmQgYSBzdW1tYXJ5IG9mIHRoaXMgRGFzaGJvYXJkLCBwbGVhc2Ugc2VsZWN0XHJcbiAgICAgICAgICAgIGEgZnJlcXVlbmN5KEJ5IGRlZmF1bHQgVkNvbXBseSBzZW5kcyBhIHdlZWtseSBTdW1tYXJ5KS5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVtYWlsIFN1bW1hcmllc1wiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RnJlcXVlbmN5KClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWJsb2NrXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwidngtYnRuIGJsb2NrIHByaW1hcnlcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAoY2xpY2spPVwiY29uZmlndXJlRGFzaGJvYXJkKClcIlxyXG4gICAgPlxyXG4gICAgICBOZXh0OiBDb25maWd1cmUgV2lkZ2V0c1xyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { ASSETS } from '../constants/assets.constant';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../ui-kit/dialog/dialog.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@vcomply/editor";
|
|
7
|
+
import * as i4 from "../../ui-kit/formgroup/cs-radio/cs-radio.component";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "../../ui-kit/tooltip/tooltip.directive";
|
|
10
|
+
import * as i7 from "ng2-date-picker";
|
|
11
|
+
export class FormGroupComponent {
|
|
12
|
+
dialog;
|
|
13
|
+
openCategoryList = new EventEmitter();
|
|
14
|
+
openResponsibilityCenterList = new EventEmitter();
|
|
15
|
+
openWhoCanViewThis = new EventEmitter();
|
|
16
|
+
closeCreateDashboard = new EventEmitter();
|
|
17
|
+
openFrequency = new EventEmitter();
|
|
18
|
+
disabled;
|
|
19
|
+
fromDatePicker;
|
|
20
|
+
toDatePicker;
|
|
21
|
+
datePickerOverlay = false;
|
|
22
|
+
selectedFromDate;
|
|
23
|
+
selectedToDate;
|
|
24
|
+
dashboardName;
|
|
25
|
+
dashboardDescriptionText;
|
|
26
|
+
fieldEmptyErrorMessage = 'Enter a value for this input box.';
|
|
27
|
+
fieldLimitExceededErrorMessage = 'You have exceeded the maximum character limit of XYZ characters.';
|
|
28
|
+
dashboardNameNotUniqueErrorMessage = 'A dashboard with this name already exists. Specify a different name for the dashboard.';
|
|
29
|
+
dashboardNameError;
|
|
30
|
+
dashboardDescriptionError;
|
|
31
|
+
displayCriteria;
|
|
32
|
+
ASSETS = ASSETS;
|
|
33
|
+
constructor(dialog) {
|
|
34
|
+
this.dialog = dialog;
|
|
35
|
+
}
|
|
36
|
+
dashboardDescription = {
|
|
37
|
+
placeholder: 'Description (Max limit: 250 characters)',
|
|
38
|
+
mode: 'prime',
|
|
39
|
+
id: 'description',
|
|
40
|
+
};
|
|
41
|
+
fromDatePickerConfig = {
|
|
42
|
+
min: this.getCurrentDate(),
|
|
43
|
+
};
|
|
44
|
+
toDatePickerConfig = {};
|
|
45
|
+
ngOnInit() { }
|
|
46
|
+
openFromDatePicker() {
|
|
47
|
+
this.fromDatePicker.api.open();
|
|
48
|
+
this.datePickerOverlay = true;
|
|
49
|
+
}
|
|
50
|
+
openToDatePicker() {
|
|
51
|
+
this.toDatePicker.api.open();
|
|
52
|
+
this.datePickerOverlay = true;
|
|
53
|
+
}
|
|
54
|
+
closeFromDatePicker() {
|
|
55
|
+
let minToDate = this.selectedFromDate?.clone()?.add(1, 'days');
|
|
56
|
+
this.toDatePickerConfig = { min: minToDate, minTime: minToDate };
|
|
57
|
+
if (this.selectedToDate && minToDate.diff(this.selectedToDate) > 0) {
|
|
58
|
+
this.selectedToDate = undefined;
|
|
59
|
+
}
|
|
60
|
+
this.fromDatePicker.api.close();
|
|
61
|
+
this.datePickerOverlay = false;
|
|
62
|
+
}
|
|
63
|
+
closeToDatePicker() {
|
|
64
|
+
this.toDatePicker.api.close();
|
|
65
|
+
this.datePickerOverlay = false;
|
|
66
|
+
}
|
|
67
|
+
animateImage() {
|
|
68
|
+
const circleImage = document.getElementsByClassName('image');
|
|
69
|
+
console.log(circleImage);
|
|
70
|
+
}
|
|
71
|
+
selectWhoCanViewThis() {
|
|
72
|
+
this.openWhoCanViewThis.emit();
|
|
73
|
+
}
|
|
74
|
+
selectResponsibilityCenter() {
|
|
75
|
+
this.openResponsibilityCenterList.emit();
|
|
76
|
+
}
|
|
77
|
+
selectCategories() {
|
|
78
|
+
this.openCategoryList.emit();
|
|
79
|
+
}
|
|
80
|
+
selectFrequency() {
|
|
81
|
+
this.openFrequency.emit();
|
|
82
|
+
}
|
|
83
|
+
configureDashboard() {
|
|
84
|
+
let fieldsStatus = this.verifyFields();
|
|
85
|
+
// if(fieldsStatus) {
|
|
86
|
+
// this.closeCreateDashboard.emit();
|
|
87
|
+
// const ref = this.dialog.open(ConfigureWidgetsComponent, {
|
|
88
|
+
// data: {},
|
|
89
|
+
// position: 'CENTER',
|
|
90
|
+
// pointer: 'none'
|
|
91
|
+
// });
|
|
92
|
+
// }
|
|
93
|
+
}
|
|
94
|
+
verifyFields() {
|
|
95
|
+
let allFieldsValid = true;
|
|
96
|
+
this.dashboardNameError = '';
|
|
97
|
+
this.dashboardDescriptionError = '';
|
|
98
|
+
if (this.dashboardName === null ||
|
|
99
|
+
this.dashboardName === undefined ||
|
|
100
|
+
this.dashboardName === '') {
|
|
101
|
+
this.dashboardNameError = this.fieldEmptyErrorMessage;
|
|
102
|
+
allFieldsValid = false;
|
|
103
|
+
}
|
|
104
|
+
else if (this.dashboardName.length > 30) {
|
|
105
|
+
this.dashboardNameError = this.fieldLimitExceededErrorMessage.replace('XYZ', '30');
|
|
106
|
+
allFieldsValid = false;
|
|
107
|
+
}
|
|
108
|
+
else if (this.dashboardDescriptionText === null ||
|
|
109
|
+
this.dashboardDescriptionText === undefined ||
|
|
110
|
+
this.dashboardDescriptionText === '') {
|
|
111
|
+
this.dashboardDescriptionError = this.fieldEmptyErrorMessage;
|
|
112
|
+
allFieldsValid = false;
|
|
113
|
+
}
|
|
114
|
+
else if (this.dashboardDescriptionText.length > 250) {
|
|
115
|
+
this.dashboardDescriptionError =
|
|
116
|
+
this.fieldLimitExceededErrorMessage.replace('XYZ', '250');
|
|
117
|
+
allFieldsValid = false;
|
|
118
|
+
}
|
|
119
|
+
return allFieldsValid;
|
|
120
|
+
}
|
|
121
|
+
getCurrentDate() {
|
|
122
|
+
let today = new Date();
|
|
123
|
+
return (today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear());
|
|
124
|
+
}
|
|
125
|
+
displayCriteriaSelected(event, selection) {
|
|
126
|
+
this.displayCriteria = selection;
|
|
127
|
+
}
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormGroupComponent, selector: "app-form-group", inputs: { disabled: "disabled" }, outputs: { openCategoryList: "openCategoryList", openResponsibilityCenterList: "openResponsibilityCenterList", openWhoCanViewThis: "openWhoCanViewThis", closeCreateDashboard: "closeCreateDashboard", openFrequency: "openFrequency" }, viewQueries: [{ propertyName: "fromDatePicker", first: true, predicate: ["fromDatePicker"], descendants: true }, { propertyName: "toDatePicker", first: true, predicate: ["toDatePicker"], descendants: true }], ngImport: i0, template: "<!-- <p>form-group works!</p> -->\n<div class=\"form-group\" [class.disabled]=\"disabled\">\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\">\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img [ngSrc]=\"ASSETS.dashBoardIcon\" alt=\"\" width=\"36\" height=\"36\" />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\"\n >Dashboard Name<span class=\"required\">*</span></label\n >\n <div class=\"vx-input-group\">\n <input\n type=\"text\"\n placeholder=\"Add dashboard name (Max limit: 30 characters).\"\n [(ngModel)]=\"dashboardName\"\n />\n <span class=\"counter\" *ngIf=\"dashboardName?.length > 0\">{{\n 30 - dashboardName?.length\n }}</span>\n </div>\n <p class=\"vx-txt-error\">{{ dashboardNameError }}</p>\n <div class=\"vx-input-group\">\n <vcomply-editor\n [editorConfig]=\"dashboardDescription\"\n [(ngModel)]=\"dashboardDescriptionText\"\n ></vcomply-editor>\n <span\n class=\"counter\"\n *ngIf=\"dashboardDescriptionText?.length > 0\"\n >{{ 250 - dashboardDescriptionText?.length }}</span\n >\n </div>\n <p class=\"vx-txt-error\">{{ dashboardDescriptionError }}</p>\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\"\n >Who can view this dashboard?<span class=\"required\">*</span></label\n >\n <div class=\"selectbox\">\n <input\n type=\"text\"\n placeholder=\"Who can view this dashboard?\"\n readonly\n (click)=\"selectWhoCanViewThis()\"\n />\n </div>\n <div class=\"selected\">\n <div class=\"left\">\n <div class=\"chip-container\">\n <span class=\"chip\">\n <span class=\"value\">Samantha Jones</span>\n </span>\n <span class=\"chip\">\n <i class=\"icons\"></i>\n <span class=\"value\">Angel Kleven</span>\n </span>\n </div>\n <button class=\"count\">+10</button>\n </div>\n <button class=\"edit\"><i class=\"icons\"></i> Edit</button>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img [ngSrc]=\"ASSETS.dashBoardRcIcon\" alt=\"\" width=\"36\" height=\"36\" />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER(S)</label>\n <div class=\"selectbox\">\n <div\n class=\"custom-input\"\n aria-placeholder=\"Select the Responsibility Center(s) that you would like displayed in the Dashboard, if any.\"\n (click)=\"selectResponsibilityCenter()\"\n ></div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardProgramIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">PROGRAM</label>\n <div class=\"selectbox\">\n <div\n class=\"custom-input\"\n aria-placeholder=\"Select the Program that this responsibility relates to.\"\n (click)=\"selectCategories()\"\n ></div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img [ngSrc]=\"ASSETS.dashBoardRiskIcon\" alt=\"\" width=\"36\" height=\"36\" />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">RISK CATEGORIES</label>\n <div class=\"selectbox\">\n <div\n class=\"custom-input\"\n aria-placeholder=\"Select the Risk Categories that you would like displayed in the Dashboard, if any.\"\n (click)=\"selectCategories()\"\n ></div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">DISPLAY CRITERIA</label>\n <div class=\"radio-group\">\n <app-cs-radio\n (checkedEvent)=\"\n displayCriteriaSelected($event, 'BOTH_RC_AND_CATEGORY')\n \"\n >Those responsibilities that have been assigned to both the\n selected Responsibility Center(s) and the selected\n Categories.</app-cs-radio\n >\n <app-cs-radio\n (checkedEvent)=\"displayCriteriaSelected($event, 'RC_OR_CATEGORY')\"\n >Those responsibilities that have been assigned to either the\n selected Responsibility Center(s) or the selected\n Categories.</app-cs-radio\n >\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardTimeFrameIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">TIMEFRAME</label>\n <label class=\"vx-control-panel-sub-label\"\n >Select how long you would like the information selected to be\n displayed for. If no timeframe is selected, the information will be\n displayed permanently.</label\n >\n <div class=\"input-group vx-d-flex vx-justify-between\">\n <div class=\"date-select\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [value]=\"selectedFromDate | date : 'dd MMM yyyy'\"\n [placeholder]=\"'From'\"\n (click)=\"openFromDatePicker()\"\n readonly\n />\n <dp-date-picker\n #fromDatePicker\n [(ngModel)]=\"selectedFromDate\"\n placeholder=\"Select Date\"\n (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\"\n [config]=\"fromDatePickerConfig\"\n ></dp-date-picker>\n <div\n class=\"overlay\"\n (click)=\"closeFromDatePicker()\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n <div class=\"date-select\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [value]=\"selectedToDate | date : 'dd MMM yyyy'\"\n [placeholder]=\"'To'\"\n (click)=\"openToDatePicker()\"\n readonly\n />\n <dp-date-picker\n #toDatePicker\n [(ngModel)]=\"selectedToDate\"\n placeholder=\"Select Date\"\n (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\"\n [config]=\"toDatePickerConfig\"\n ></dp-date-picker>\n <div\n class=\"overlay\"\n (click)=\"closeToDatePicker()\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <!--active class will appear on open list-->\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardEmailSummariesIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">\n Email Summaries\n <i\n class=\"icons\"\n [arTooltip]=\"'This is a test tooltip'\"\n placement=\"bottom-left\"\n type=\"white\"\n delay=\"0\"\n [tooltipMandatory]=\"true\"\n ></i\n ></label\n >\n <label class=\"vx-control-panel-sub-label\">\n If you would like to send a summary of this Dashboard, please select\n a frequency(By default VComply sends a weekly Summary).\n </label>\n <div class=\"selectbox\">\n <input\n type=\"text\"\n placeholder=\"Email Summaries\"\n readonly\n (click)=\"selectFrequency()\"\n />\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button\n class=\"vx-btn block primary\"\n [disabled]=\"disabled\"\n (click)=\"configureDashboard()\"\n >\n Next: Configure Widgets\n </button>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/dialog/dialog.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animation.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\";@import\"https://cdn.v-comply.com/design-system/css/forms/forms.css\";::ng-deep .form-group .vx-dialog-body-container{padding:36px 28px 0 40px!important;height:calc(100vh - 50px);overflow:auto;margin-left:-22px;background-color:transparent;position:relative;border-radius:0 0 0 30px;background:transparent}::ng-deep .form-group .vx-dialog-body-container .form-group-row{display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image{width:40px;height:40px;margin-left:-38px;margin-right:20px;margin-top:28px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image img{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+vcomply-editor{margin-top:8px;display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:after{border-left:none;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top:none;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% + 8px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:hover .custom-input{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .left{width:auto;display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .chip-container{width:auto}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group{display:flex;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group span.counter{background:transparent;color:#161b2f;font-size:9px;font-weight:500;position:absolute;top:0;right:0;border-radius:3px;height:16px;text-align:center;line-height:16px;padding:0 2px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group vcomply-editor{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group.vx-input-group{margin-top:8px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor{display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container{border-radius:4px;border-color:#dbdbdb}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover{border-color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover .editor-tools{border-top-color:#1e5dd3!important;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;max-height:90px}@media not all and (min-resolution: .001dpcm){@supports (-webkit-appearance: none){::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block:before,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools{border-color:#dbdbdb;border-radius:0 0 2px 2px;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input{height:2.5rem;border-radius:.25rem;border:1px solid #DBDBDB;background:#fff;outline:none;padding:.1875rem .75rem;line-height:1.25rem;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:12px;width:94%;display:block;pointer-events:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel i{font-size:12px;color:#1e5dd3;margin-left:7px;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;margin-bottom:.5rem;display:block;text-transform:none;width:100%;margin-top:0}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label span.required{color:#eb2424}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel+.vx-control-panel-sub-label{margin-top:-.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.radio{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #DBDBDB;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item svg{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio+app-cs-radio{margin-top:.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select{position:relative;width:calc(50% - .25rem)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select input{padding-left:36px!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select i{display:flex;justify-content:center;align-items:center;height:39px;width:14px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:14px;pointer-events:none;z-index:1}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel span.sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;text-transform:none;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image{filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image:before{display:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form{opacity:1;filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form .custom-input,::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form input[type=text]{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container:after{content:\"\";width:100%;display:block;height:30px;position:sticky;right:0;bottom:0;left:0;z-index:6;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}::ng-deep .form-group .button-block{position:relative;z-index:2}::ng-deep .form-group .button-block button{height:50px;line-height:48px!important}::ng-deep .form-group .button-block button:disabled{opacity:.3}::ng-deep .form-group.disabled{pointer-events:none;z-index:2}::ng-deep .form-group.disabled .image{position:relative;filter:grayscale(1)}::ng-deep .form-group.disabled .image:before{content:\"\";position:absolute;inset:0;background:#fff;opacity:.7}::ng-deep .form-group.disabled .form{opacity:.3;filter:grayscale(1)}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i7.DatePickerComponent, selector: "dp-date-picker", inputs: ["config", "mode", "placeholder", "disabled", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "directive", type: i2.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'app-form-group', template: "<!-- <p>form-group works!</p> -->\n<div class=\"form-group\" [class.disabled]=\"disabled\">\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\">\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img [ngSrc]=\"ASSETS.dashBoardIcon\" alt=\"\" width=\"36\" height=\"36\" />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\"\n >Dashboard Name<span class=\"required\">*</span></label\n >\n <div class=\"vx-input-group\">\n <input\n type=\"text\"\n placeholder=\"Add dashboard name (Max limit: 30 characters).\"\n [(ngModel)]=\"dashboardName\"\n />\n <span class=\"counter\" *ngIf=\"dashboardName?.length > 0\">{{\n 30 - dashboardName?.length\n }}</span>\n </div>\n <p class=\"vx-txt-error\">{{ dashboardNameError }}</p>\n <div class=\"vx-input-group\">\n <vcomply-editor\n [editorConfig]=\"dashboardDescription\"\n [(ngModel)]=\"dashboardDescriptionText\"\n ></vcomply-editor>\n <span\n class=\"counter\"\n *ngIf=\"dashboardDescriptionText?.length > 0\"\n >{{ 250 - dashboardDescriptionText?.length }}</span\n >\n </div>\n <p class=\"vx-txt-error\">{{ dashboardDescriptionError }}</p>\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\"\n >Who can view this dashboard?<span class=\"required\">*</span></label\n >\n <div class=\"selectbox\">\n <input\n type=\"text\"\n placeholder=\"Who can view this dashboard?\"\n readonly\n (click)=\"selectWhoCanViewThis()\"\n />\n </div>\n <div class=\"selected\">\n <div class=\"left\">\n <div class=\"chip-container\">\n <span class=\"chip\">\n <span class=\"value\">Samantha Jones</span>\n </span>\n <span class=\"chip\">\n <i class=\"icons\"></i>\n <span class=\"value\">Angel Kleven</span>\n </span>\n </div>\n <button class=\"count\">+10</button>\n </div>\n <button class=\"edit\"><i class=\"icons\"></i> Edit</button>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img [ngSrc]=\"ASSETS.dashBoardRcIcon\" alt=\"\" width=\"36\" height=\"36\" />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER(S)</label>\n <div class=\"selectbox\">\n <div\n class=\"custom-input\"\n aria-placeholder=\"Select the Responsibility Center(s) that you would like displayed in the Dashboard, if any.\"\n (click)=\"selectResponsibilityCenter()\"\n ></div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardProgramIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">PROGRAM</label>\n <div class=\"selectbox\">\n <div\n class=\"custom-input\"\n aria-placeholder=\"Select the Program that this responsibility relates to.\"\n (click)=\"selectCategories()\"\n ></div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img [ngSrc]=\"ASSETS.dashBoardRiskIcon\" alt=\"\" width=\"36\" height=\"36\" />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">RISK CATEGORIES</label>\n <div class=\"selectbox\">\n <div\n class=\"custom-input\"\n aria-placeholder=\"Select the Risk Categories that you would like displayed in the Dashboard, if any.\"\n (click)=\"selectCategories()\"\n ></div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardUsersIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">DISPLAY CRITERIA</label>\n <div class=\"radio-group\">\n <app-cs-radio\n (checkedEvent)=\"\n displayCriteriaSelected($event, 'BOTH_RC_AND_CATEGORY')\n \"\n >Those responsibilities that have been assigned to both the\n selected Responsibility Center(s) and the selected\n Categories.</app-cs-radio\n >\n <app-cs-radio\n (checkedEvent)=\"displayCriteriaSelected($event, 'RC_OR_CATEGORY')\"\n >Those responsibilities that have been assigned to either the\n selected Responsibility Center(s) or the selected\n Categories.</app-cs-radio\n >\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardTimeFrameIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">TIMEFRAME</label>\n <label class=\"vx-control-panel-sub-label\"\n >Select how long you would like the information selected to be\n displayed for. If no timeframe is selected, the information will be\n displayed permanently.</label\n >\n <div class=\"input-group vx-d-flex vx-justify-between\">\n <div class=\"date-select\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [value]=\"selectedFromDate | date : 'dd MMM yyyy'\"\n [placeholder]=\"'From'\"\n (click)=\"openFromDatePicker()\"\n readonly\n />\n <dp-date-picker\n #fromDatePicker\n [(ngModel)]=\"selectedFromDate\"\n placeholder=\"Select Date\"\n (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\"\n [config]=\"fromDatePickerConfig\"\n ></dp-date-picker>\n <div\n class=\"overlay\"\n (click)=\"closeFromDatePicker()\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n <div class=\"date-select\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [value]=\"selectedToDate | date : 'dd MMM yyyy'\"\n [placeholder]=\"'To'\"\n (click)=\"openToDatePicker()\"\n readonly\n />\n <dp-date-picker\n #toDatePicker\n [(ngModel)]=\"selectedToDate\"\n placeholder=\"Select Date\"\n (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\"\n [config]=\"toDatePickerConfig\"\n ></dp-date-picker>\n <div\n class=\"overlay\"\n (click)=\"closeToDatePicker()\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n <div class=\"form-group-row\">\n <!--active class will appear on open list-->\n <div class=\"image\">\n <img\n [ngSrc]=\"ASSETS.dashBoardEmailSummariesIcon\"\n alt=\"\"\n width=\"36\"\n height=\"36\"\n />\n </div>\n <div class=\"form\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">\n Email Summaries\n <i\n class=\"icons\"\n [arTooltip]=\"'This is a test tooltip'\"\n placement=\"bottom-left\"\n type=\"white\"\n delay=\"0\"\n [tooltipMandatory]=\"true\"\n ></i\n ></label\n >\n <label class=\"vx-control-panel-sub-label\">\n If you would like to send a summary of this Dashboard, please select\n a frequency(By default VComply sends a weekly Summary).\n </label>\n <div class=\"selectbox\">\n <input\n type=\"text\"\n placeholder=\"Email Summaries\"\n readonly\n (click)=\"selectFrequency()\"\n />\n </div>\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\n </div>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button\n class=\"vx-btn block primary\"\n [disabled]=\"disabled\"\n (click)=\"configureDashboard()\"\n >\n Next: Configure Widgets\n </button>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/dialog/dialog.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animation.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\";@import\"https://cdn.v-comply.com/design-system/css/forms/forms.css\";::ng-deep .form-group .vx-dialog-body-container{padding:36px 28px 0 40px!important;height:calc(100vh - 50px);overflow:auto;margin-left:-22px;background-color:transparent;position:relative;border-radius:0 0 0 30px;background:transparent}::ng-deep .form-group .vx-dialog-body-container .form-group-row{display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image{width:40px;height:40px;margin-left:-38px;margin-right:20px;margin-top:28px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .image img{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input+vcomply-editor{margin-top:8px;display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:after{border-left:none;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top:none;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% + 8px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selectbox:hover .custom-input{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .left{width:auto;display:flex}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .selected .chip-container{width:auto}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group{display:flex;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group span.counter{background:transparent;color:#161b2f;font-size:9px;font-weight:500;position:absolute;top:0;right:0;border-radius:3px;height:16px;text-align:center;line-height:16px;padding:0 2px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group vcomply-editor{width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-form-group .vx-input-group.vx-input-group{margin-top:8px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor{display:block}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container{border-radius:4px;border-color:#dbdbdb}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover{border-color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:focus-within .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container:hover .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container:hover .editor-tools{border-top-color:#1e5dd3!important;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;max-height:90px}@media not all and (min-resolution: .001dpcm){@supports (-webkit-appearance: none){::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editable-block:before,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools{border-color:#dbdbdb;border-radius:0 0 2px 2px;transition:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button,::ng-deep .form-group .vx-dialog-body-container .form-group-row .form vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input{height:2.5rem;border-radius:.25rem;border:1px solid #DBDBDB;background:#fff;outline:none;padding:.1875rem .75rem;line-height:1.25rem;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:12px;width:94%;display:block;pointer-events:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel i{font-size:12px;color:#1e5dd3;margin-left:7px;cursor:pointer}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;margin-bottom:.5rem;display:block;text-transform:none;width:100%;margin-top:0}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .vx-control-panel-sub-label span.required{color:#eb2424}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel+.vx-control-panel-sub-label{margin-top:-.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.radio{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #DBDBDB;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item svg{position:absolute;top:17px;left:12px}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .radio-group app-cs-radio+app-cs-radio{margin-top:.5rem}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select{position:relative;width:calc(50% - .25rem)}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select input{padding-left:36px!important}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form .date-select i{display:flex;justify-content:center;align-items:center;height:39px;width:14px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:14px;pointer-events:none;z-index:1}::ng-deep .form-group .vx-dialog-body-container .form-group-row .form label.vx-control-panel span.sub-label{color:#747576;font-size:.6875rem;font-weight:400;line-height:1rem;text-transform:none;width:100%}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image{filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .image:before{display:none}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form{opacity:1;filter:grayscale(0)}::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form .custom-input,::ng-deep .form-group .vx-dialog-body-container .form-group-row.active .form input[type=text]{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .form-group .vx-dialog-body-container:after{content:\"\";width:100%;display:block;height:30px;position:sticky;right:0;bottom:0;left:0;z-index:6;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}::ng-deep .form-group .button-block{position:relative;z-index:2}::ng-deep .form-group .button-block button{height:50px;line-height:48px!important}::ng-deep .form-group .button-block button:disabled{opacity:.3}::ng-deep .form-group.disabled{pointer-events:none;z-index:2}::ng-deep .form-group.disabled .image{position:relative;filter:grayscale(1)}::ng-deep .form-group.disabled .image:before{content:\"\";position:absolute;inset:0;background:#fff;opacity:.7}::ng-deep .form-group.disabled .form{opacity:.3;filter:grayscale(1)}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}\n"] }]
|
|
134
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }]; }, propDecorators: { openCategoryList: [{
|
|
135
|
+
type: Output
|
|
136
|
+
}], openResponsibilityCenterList: [{
|
|
137
|
+
type: Output
|
|
138
|
+
}], openWhoCanViewThis: [{
|
|
139
|
+
type: Output
|
|
140
|
+
}], closeCreateDashboard: [{
|
|
141
|
+
type: Output
|
|
142
|
+
}], openFrequency: [{
|
|
143
|
+
type: Output
|
|
144
|
+
}], disabled: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], fromDatePicker: [{
|
|
147
|
+
type: ViewChild,
|
|
148
|
+
args: ['fromDatePicker']
|
|
149
|
+
}], toDatePicker: [{
|
|
150
|
+
type: ViewChild,
|
|
151
|
+
args: ['toDatePicker']
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLGtCQUFrQjtJQXlCVDtJQXhCVixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzlDLDRCQUE0QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUQsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNoRCxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ2xELGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzVDLFFBQVEsQ0FBVztJQUVDLGNBQWMsQ0FBdUI7SUFDdkMsWUFBWSxDQUF1QjtJQUM5RCxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsZ0JBQWdCLENBQU87SUFDdkIsY0FBYyxDQUFPO0lBQ3JCLGFBQWEsQ0FBTztJQUNwQix3QkFBd0IsQ0FBTztJQUMvQixzQkFBc0IsR0FBVyxtQ0FBbUMsQ0FBQztJQUNyRSw4QkFBOEIsR0FDNUIsa0VBQWtFLENBQUM7SUFDckUsa0NBQWtDLEdB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QztJQUVELHVCQUF1QixDQUFDLEtBQWMsRUFBRSxTQUFpQjtRQUN2RCxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUNuQyxDQUFDO3dHQS9JVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixraEJDbEIvQix1dlVBZ1NBOzs0RkQ5UWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQjtvR0FLaEIsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLDRCQUE0QjtzQkFBckMsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0EsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIElEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ0B2Y29tcGx5L2VkaXRvcic7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm0tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIG9wZW5DYXRlZ29yeUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9wZW5SZXNwb25zaWJpbGl0eUNlbnRlckxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9wZW5XaG9DYW5WaWV3VGhpcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgY2xvc2VDcmVhdGVEYXNoYm9hcmQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9wZW5GcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2Zyb21EYXRlUGlja2VyJykgZnJvbURhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0b0RhdGVQaWNrZXInKSB0b0RhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xuICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICBzZWxlY3RlZEZyb21EYXRlITogYW55O1xuICBzZWxlY3RlZFRvRGF0ZSE6IGFueTtcbiAgZGFzaGJvYXJkTmFtZSE6IGFueTtcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0ITogYW55O1xuICBmaWVsZEVtcHR5RXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guJztcbiAgZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlOiBzdHJpbmcgPVxuICAgICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgbGltaXQgb2YgWFlaIGNoYXJhY3RlcnMuJztcbiAgZGFzaGJvYXJkTmFtZU5vdFVuaXF1ZUVycm9yTWVzc2FnZTogc3RyaW5nID1cbiAgICAnQSBkYXNoYm9hcmQgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMuIFNwZWNpZnkgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhlIGRhc2hib2FyZC4nO1xuICBkYXNoYm9hcmROYW1lRXJyb3IhOiBzdHJpbmc7XG4gIGRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IhOiBzdHJpbmc7XG4gIGRpc3BsYXlDcml0ZXJpYSE6IHN0cmluZztcbiAgQVNTRVRTOiBhbnkgPSBBU1NFVFM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UpIHt9XG5cbiAgZGFzaGJvYXJkRGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcbiAgICBwbGFjZWhvbGRlcjogJ0Rlc2NyaXB0aW9uIChNYXggbGltaXQ6IDI1MCBjaGFyYWN0ZXJzKScsXG4gICAgbW9kZTogJ3ByaW1lJyxcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJyxcbiAgfTtcblxuICBmcm9tRGF0ZVBpY2tlckNvbmZpZzogSURhdGVQaWNrZXJDb25maWcgPSB7XG4gICAgbWluOiB0aGlzLmdldEN1cnJlbnREYXRlKCksXG4gIH07XG5cbiAgdG9EYXRlUGlja2VyQ29uZmlnOiBJRGF0ZVBpY2tlckNvbmZpZyA9IHt9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBvcGVuRnJvbURhdGVQaWNrZXIoKSB7XG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkub3BlbigpO1xuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xuICB9XG5cbiAgb3BlblRvRGF0ZVBpY2tlcigpIHtcbiAgICB0aGlzLnRvRGF0ZVBpY2tlci5hcGkub3BlbigpO1xuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xuICB9XG5cbiAgY2xvc2VGcm9tRGF0ZVBpY2tlcigpIHtcbiAgICBsZXQgbWluVG9EYXRlID0gdGhpcy5zZWxlY3RlZEZyb21EYXRlPy5jbG9uZSgpPy5hZGQoMSwgJ2RheXMnKTtcbiAgICB0aGlzLnRvRGF0ZVBpY2tlckNvbmZpZyA9IHsgbWluOiBtaW5Ub0RhdGUsIG1pblRpbWU6IG1pblRvRGF0ZSB9O1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUb0RhdGUgJiYgbWluVG9EYXRlLmRpZmYodGhpcy5zZWxlY3RlZFRvRGF0ZSkgPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVG9EYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMuZnJvbURhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICB9XG5cbiAgY2xvc2VUb0RhdGVQaWNrZXIoKSB7XG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICB9XG5cbiAgYW5pbWF0ZUltYWdlKCkge1xuICAgIGNvbnN0IGNpcmNsZUltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaW1hZ2UnKTtcbiAgICBjb25zb2xlLmxvZyhjaXJjbGVJbWFnZSk7XG4gIH1cblxuICBzZWxlY3RXaG9DYW5WaWV3VGhpcygpIHtcbiAgICB0aGlzLm9wZW5XaG9DYW5WaWV3VGhpcy5lbWl0KCk7XG4gIH1cblxuICBzZWxlY3RSZXNwb25zaWJpbGl0eUNlbnRlcigpIHtcbiAgICB0aGlzLm9wZW5SZXNwb25zaWJpbGl0eUNlbnRlckxpc3QuZW1pdCgpO1xuICB9XG5cbiAgc2VsZWN0Q2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLm9wZW5DYXRlZ29yeUxpc3QuZW1pdCgpO1xuICB9XG5cbiAgc2VsZWN0RnJlcXVlbmN5KCkge1xuICAgIHRoaXMub3BlbkZyZXF1ZW5jeS5lbWl0KCk7XG4gIH1cblxuICBjb25maWd1cmVEYXNoYm9hcmQoKSB7XG4gICAgbGV0IGZpZWxkc1N0YXR1cyA9IHRoaXMudmVyaWZ5RmllbGRzKCk7XG4gICAgLy8gaWYoZmllbGRzU3RhdHVzKSB7XG4gICAgLy8gICB0aGlzLmNsb3NlQ3JlYXRlRGFzaGJvYXJkLmVtaXQoKTtcbiAgICAvLyAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCwge1xuICAgIC8vICAgICBkYXRhOiB7fSxcbiAgICAvLyAgICAgcG9zaXRpb246ICdDRU5URVInLFxuICAgIC8vICAgICBwb2ludGVyOiAnbm9uZSdcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cbiAgfVxuXG4gIHZlcmlmeUZpZWxkcygpIHtcbiAgICBsZXQgYWxsRmllbGRzVmFsaWQgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkTmFtZUVycm9yID0gJyc7XG4gICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbkVycm9yID0gJyc7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPT09IG51bGwgfHxcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPT09ICcnXG4gICAgKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWVFcnJvciA9IHRoaXMuZmllbGRFbXB0eUVycm9yTWVzc2FnZTtcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRhc2hib2FyZE5hbWUubGVuZ3RoID4gMzApIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZUVycm9yID0gdGhpcy5maWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2UucmVwbGFjZShcbiAgICAgICAgJ1hZWicsXG4gICAgICAgICczMCdcbiAgICAgICk7XG4gICAgICBhbGxGaWVsZHNWYWxpZCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gbnVsbCB8fFxuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQgPT09ICcnXG4gICAgKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XG4gICAgICBhbGxGaWVsZHNWYWxpZCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQubGVuZ3RoID4gMjUwKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPVxuICAgICAgICB0aGlzLmZpZWxkTGltaXRFeGNlZWRlZEVycm9yTWVzc2FnZS5yZXBsYWNlKCdYWVonLCAnMjUwJyk7XG4gICAgICBhbGxGaWVsZHNWYWxpZCA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gYWxsRmllbGRzVmFsaWQ7XG4gIH1cblxuICBnZXRDdXJyZW50RGF0ZSgpIHtcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHJldHVybiAoXG4gICAgICB0b2RheS5nZXREYXRlKCkgKyAnLScgKyAodG9kYXkuZ2V0TW9udGgoKSArIDEpICsgJy0nICsgdG9kYXkuZ2V0RnVsbFllYXIoKVxuICAgICk7XG4gIH1cblxuICBkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZChldmVudDogYm9vbGVhbiwgc2VsZWN0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc3BsYXlDcml0ZXJpYSA9IHNlbGVjdGlvbjtcbiAgfVxufVxuIiwiPCEtLSA8cD5mb3JtLWdyb3VwIHdvcmtzITwvcD4gLS0+XG48ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWJvZHktY29udGFpbmVyXCIgKHNjcm9sbCk9XCJhbmltYXRlSW1hZ2UoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XG4gICAgICAgIDxpbWcgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRJY29uXCIgYWx0PVwiXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgICAgID5EYXNoYm9hcmQgTmFtZTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFkZCBkYXNoYm9hcmQgbmFtZSAoTWF4IGxpbWl0OiAzMCBjaGFyYWN0ZXJzKS5cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZE5hbWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwiZGFzaGJvYXJkTmFtZT8ubGVuZ3RoID4gMFwiPnt7XG4gICAgICAgICAgICAgIDMwIC0gZGFzaGJvYXJkTmFtZT8ubGVuZ3RoXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPnt7IGRhc2hib2FyZE5hbWVFcnJvciB9fTwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvclxuICAgICAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cImRhc2hib2FyZERlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmREZXNjcmlwdGlvblRleHRcIlxuICAgICAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgID57eyAyNTAgLSBkYXNoYm9hcmREZXNjcmlwdGlvblRleHQ/Lmxlbmd0aCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+e3sgZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRVc2Vyc0ljb25cIlxuICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgd2lkdGg9XCIzNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMzZcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICAgICAgPldobyBjYW4gdmlldyB0aGlzIGRhc2hib2FyZD88c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkP1wiXG4gICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaG9DYW5WaWV3VGhpcygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5TYW1hbnRoYSBKb25lczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+QW5nZWwgS2xldmVuPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiPisxMDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XG4gICAgICAgIDxpbWcgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRSY0ljb25cIiBhbHQ9XCJcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SRVNQT05TSUJJTElUWSBDRU5URVIoUyk8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxuICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSZXNwb25zaWJpbGl0eUNlbnRlcigpXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRQcm9ncmFtSWNvblwiXG4gICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICB3aWR0aD1cIjM2XCJcbiAgICAgICAgICBoZWlnaHQ9XCIzNlwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlBST0dSQU08L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxuICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBQcm9ncmFtIHRoYXQgdGhpcyByZXNwb25zaWJpbGl0eSByZWxhdGVzIHRvLlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yaWVzKClcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XG4gICAgICAgIDxpbWcgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRSaXNrSWNvblwiIGFsdD1cIlwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJJU0sgQ0FURUdPUklFUzwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXG4gICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFJpc2sgQ2F0ZWdvcmllcyB0aGF0IHlvdSB3b3VsZCBsaWtlIGRpc3BsYXllZCBpbiB0aGUgRGFzaGJvYXJkLCBpZiBhbnkuXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhdGVnb3JpZXMoKVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtuZ1NyY109XCJBU1NFVFMuZGFzaEJvYXJkVXNlcnNJY29uXCJcbiAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgIHdpZHRoPVwiMzZcIlxuICAgICAgICAgIGhlaWdodD1cIjM2XCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RElTUExBWSBDUklURVJJQTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwiXG4gICAgICAgICAgICAgICAgZGlzcGxheUNyaXRlcmlhU2VsZWN0ZWQoJGV2ZW50LCAnQk9USF9SQ19BTkRfQ0FURUdPUlknKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+VGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBib3RoIHRoZVxuICAgICAgICAgICAgICBzZWxlY3RlZCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgYW5kIHRoZSBzZWxlY3RlZFxuICAgICAgICAgICAgICBDYXRlZ29yaWVzLjwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwiZGlzcGxheUNyaXRlcmlhU2VsZWN0ZWQoJGV2ZW50LCAnUkNfT1JfQ0FURUdPUlknKVwiXG4gICAgICAgICAgICAgID5UaG9zZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIGVpdGhlciB0aGVcbiAgICAgICAgICAgICAgc2VsZWN0ZWQgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpIG9yIHRoZSBzZWxlY3RlZFxuICAgICAgICAgICAgICBDYXRlZ29yaWVzLjwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtuZ1NyY109XCJBU1NFVFMuZGFzaEJvYXJkVGltZUZyYW1lSWNvblwiXG4gICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICB3aWR0aD1cIjM2XCJcbiAgICAgICAgICBoZWlnaHQ9XCIzNlwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlRJTUVGUkFNRTwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIlxuICAgICAgICAgICAgPlNlbGVjdCBob3cgbG9uZyB5b3Ugd291bGQgbGlrZSB0aGUgaW5mb3JtYXRpb24gc2VsZWN0ZWQgdG8gYmVcbiAgICAgICAgICAgIGRpc3BsYXllZCBmb3IuIElmIG5vIHRpbWVmcmFtZSBpcyBzZWxlY3RlZCwgdGhlIGluZm9ybWF0aW9uIHdpbGwgYmVcbiAgICAgICAgICAgIGRpc3BsYXllZCBwZXJtYW5lbnRseS48L2xhYmVsXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkRnJvbURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidGcm9tJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Gcm9tRGF0ZVBpY2tlcigpXCJcbiAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAjZnJvbURhdGVQaWNrZXJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRnJvbURhdGVcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIlxuICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjbG9zZUZyb21EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiZnJvbURhdGVQaWNrZXJDb25maWdcIlxuICAgICAgICAgICAgICA+PC9kcC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwib3ZlcmxheVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFRvRGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RvJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Ub0RhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRwLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgICAgI3RvRGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUb0RhdGVcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIlxuICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjbG9zZVRvRGF0ZVBpY2tlcigpOyBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cInRvRGF0ZVBpY2tlckNvbmZpZ1wiXG4gICAgICAgICAgICAgID48L2RwLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VUb0RhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxuICAgICAgPCEtLWFjdGl2ZSBjbGFzcyB3aWxsIGFwcGVhciBvbiBvcGVuIGxpc3QtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW25nU3JjXT1cIkFTU0VUUy5kYXNoQm9hcmRFbWFpbFN1bW1hcmllc0ljb25cIlxuICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgd2lkdGg9XCIzNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMzZcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cbiAgICAgICAgICAgIEVtYWlsIFN1bW1hcmllc1xuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgIFthclRvb2x0aXBdPVwiJ1RoaXMgaXMgYSB0ZXN0IHRvb2x0aXAnXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICA+PC9sYWJlbFxuICAgICAgICAgID5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsLXN1Yi1sYWJlbFwiPlxuICAgICAgICAgICAgSWYgeW91IHdvdWxkIGxpa2UgdG8gc2VuZCBhIHN1bW1hcnkgb2YgdGhpcyBEYXNoYm9hcmQsIHBsZWFzZSBzZWxlY3RcbiAgICAgICAgICAgIGEgZnJlcXVlbmN5KEJ5IGRlZmF1bHQgVkNvbXBseSBzZW5kcyBhIHdlZWtseSBTdW1tYXJ5KS5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW1haWwgU3VtbWFyaWVzXCJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEZyZXF1ZW5jeSgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWJsb2NrXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ2eC1idG4gYmxvY2sgcHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cImNvbmZpZ3VyZURhc2hib2FyZCgpXCJcbiAgICA+XG4gICAgICBOZXh0OiBDb25maWd1cmUgV2lkZ2V0c1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|