bpm-core 0.0.49 → 0.0.51
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/esm2022/lib/app/app.component.mjs +6 -6
- package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +6 -5
- package/esm2022/lib/components/app-component-sections/approvals/approvals.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.mjs +5 -5
- package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/layout/header/header.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/layout/layout.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/layout/side-nav/side-nav.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +128 -24
- package/esm2022/lib/components/app-component-sections/profile-section/profile-section.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/status/status.component.mjs +4 -4
- package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/confirmation-popup/confirmation-popup.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/delete-popup/delete-popup.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +42 -20
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +5 -5
- package/esm2022/lib/components/shared-components/form-field/base-component/base-component.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +9 -15
- package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +36 -39
- package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +13 -25
- package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +60 -67
- package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +75 -80
- package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +579 -0
- package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +6 -8
- package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +11 -10
- package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +6 -8
- package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +5 -7
- package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +5 -8
- package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +23 -131
- package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +29 -27
- package/esm2022/lib/components/shared-components/form-field/repeated-list/repeated-list.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +87 -78
- package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/shared-imports.mjs +14 -0
- package/esm2022/lib/components/shared-components/form-field/table-list/table-list.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/textarea/special-chars.directive.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +10 -9
- package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +33 -32
- package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +7 -6
- package/esm2022/lib/components/shared-components/index.mjs +1 -2
- package/esm2022/lib/components/shared-components/terms-conditions/terms-conditions.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/title-section/title-section.component.mjs +4 -4
- package/esm2022/lib/directives/ar.directive.mjs +4 -4
- package/esm2022/lib/directives/currency.directive.mjs +4 -4
- package/esm2022/lib/directives/en.directive.mjs +4 -4
- package/esm2022/lib/directives/number.directive.mjs +4 -4
- package/esm2022/lib/i18n/ar.mjs +7 -1
- package/esm2022/lib/i18n/en.mjs +7 -1
- package/esm2022/lib/pipes/currency.pipe.mjs +4 -4
- package/esm2022/lib/pipes/format-as-password.pipe.mjs +4 -4
- package/esm2022/lib/pipes/status-style.pipe.mjs +4 -4
- package/esm2022/lib/services/action.service.ts.mjs +4 -4
- package/esm2022/lib/services/core.service.ts.mjs +63 -100
- package/esm2022/lib/services/feedBack.service.mjs +4 -4
- package/esm2022/lib/services/i18n.service.mjs +4 -4
- package/esm2022/lib/services/sidenav.service.mjs +4 -4
- package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +4 -4
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +28 -21
- package/esm2022/lib/testComponent/services/i18n.service.mjs +4 -4
- package/esm2022/lib/testComponent/services/segment-dynamic-loader.service.mjs +4 -4
- package/esm2022/lib/validators/string-to-boolean.pipe.mjs +4 -4
- package/esm2022/lib/validators/text.directive.mjs +4 -4
- package/esm2022/lib/validators/timer.pipe.mjs +4 -4
- package/fesm2022/bpm-core.mjs +2568 -2697
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/app/app.component.d.ts +1 -1
- package/lib/components/app-component-sections/previous-requests/previous-requests.component.d.ts +27 -6
- package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +9 -5
- package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +1 -3
- package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +15 -7
- package/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.d.ts +2 -5
- package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +3 -4
- package/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.d.ts +6 -6
- package/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.d.ts +131 -0
- package/lib/components/shared-components/form-field/input-telephone/input-telephone.component.d.ts +5 -27
- package/lib/components/shared-components/form-field/radio/radio.component.d.ts +5 -8
- package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +4 -6
- package/lib/components/shared-components/form-field/shared-imports.d.ts +5 -0
- package/lib/components/shared-components/form-field/toggle-button/toggle-button.component.d.ts +7 -8
- package/lib/components/shared-components/form-field/validation-errors/validation-errors.component.d.ts +1 -0
- package/lib/components/shared-components/index.d.ts +0 -1
- package/lib/i18n/ar.d.ts +6 -0
- package/lib/i18n/en.d.ts +6 -0
- package/lib/services/core.service.ts.d.ts +9 -4
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +1 -0
- package/package.json +2 -3
- package/src/lib/assets/scss/_general.scss +1 -0
- package/src/lib/assets/scss/input-telephone.scss +133 -159
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
/* eslint-disable @angular-eslint/component-selector */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
3
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject, Input, ViewChild, } from '@angular/core';
|
|
4
4
|
import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { MatInput } from '@angular/material/input';
|
|
9
|
-
import { MatIcon } from '@angular/material/icon';
|
|
10
|
-
import { NgClass, NgIf } from '@angular/common';
|
|
11
|
-
import { InfoItemComponent } from '../info-item/info-item.component';
|
|
12
|
-
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
13
|
-
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators, } from '@angular/forms';
|
|
6
|
+
import { MatDatepicker } from '@angular/material/datepicker';
|
|
7
|
+
import { MAT_DATE_FORMATS } from '@angular/material/core';
|
|
14
8
|
import { CustomDateFormat } from '../date-picker/date-format';
|
|
15
|
-
// import moment from 'moment';
|
|
16
9
|
import { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';
|
|
17
|
-
import { format } from
|
|
10
|
+
import { format } from 'date-fns';
|
|
11
|
+
import { MatDatePickerImports, MatFormImports } from '../shared-imports';
|
|
12
|
+
import { InfoItemComponent } from '../info-item/info-item.component';
|
|
18
13
|
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "@angular/
|
|
14
|
+
import * as i1 from "@angular/forms";
|
|
20
15
|
import * as i2 from "@angular/material/datepicker";
|
|
21
|
-
import * as i3 from "@angular/
|
|
16
|
+
import * as i3 from "@angular/material/form-field";
|
|
22
17
|
const YEAR_ONLY_FORMAT = {
|
|
23
18
|
parse: {
|
|
24
19
|
dateInput: 'YYYY',
|
|
@@ -31,13 +26,11 @@ const YEAR_ONLY_FORMAT = {
|
|
|
31
26
|
},
|
|
32
27
|
};
|
|
33
28
|
export class DateRangePickerComponent extends ControlValueAccessorDirective {
|
|
34
|
-
tooltip;
|
|
35
29
|
className = 'white-input';
|
|
36
30
|
yearOnly;
|
|
37
31
|
dateFormat;
|
|
38
32
|
datepicker;
|
|
39
|
-
|
|
40
|
-
endControl = new FormControl();
|
|
33
|
+
calendarType;
|
|
41
34
|
startInputValue;
|
|
42
35
|
endInputValue;
|
|
43
36
|
dateRange;
|
|
@@ -46,60 +39,80 @@ export class DateRangePickerComponent extends ControlValueAccessorDirective {
|
|
|
46
39
|
this.activateYearOnlyMode();
|
|
47
40
|
}
|
|
48
41
|
ngOnChanges(changes) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
this.setDateFormControl();
|
|
43
|
+
}
|
|
44
|
+
setDateFormControl() {
|
|
45
|
+
const today = new Date();
|
|
46
|
+
const currentYear = today.getFullYear();
|
|
47
|
+
const currentMonth = today.getMonth();
|
|
48
|
+
const currentDay = today.getDate();
|
|
49
|
+
if (this.minDate) {
|
|
50
|
+
if (this.minDate == 'today') {
|
|
51
|
+
this.minDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
52
|
+
console.log(this.minDateValue);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
if (
|
|
56
|
-
if (this.
|
|
57
|
-
|
|
58
|
-
this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
|
|
55
|
+
if (this.maxDate) {
|
|
56
|
+
if (this.maxDate == 'today') {
|
|
57
|
+
this.maxDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
59
58
|
}
|
|
59
|
+
if (this.maxDate == 'oneYear') {
|
|
60
|
+
this.maxDateValue = new Date(currentYear + 1, currentMonth, currentDay - 1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (this.customMaxDate) {
|
|
64
|
+
const date = new Date(this.customMaxDate);
|
|
65
|
+
this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
60
66
|
}
|
|
67
|
+
if (this.customMinDate) {
|
|
68
|
+
const date = new Date(this.customMinDate);
|
|
69
|
+
this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
70
|
+
}
|
|
71
|
+
if (this.required)
|
|
72
|
+
this.control.addValidators(Validators.required);
|
|
61
73
|
}
|
|
62
74
|
focusPicker(picker) {
|
|
63
75
|
picker.open();
|
|
76
|
+
this.control.markAsTouched();
|
|
64
77
|
}
|
|
65
|
-
|
|
78
|
+
startDateChange(event) {
|
|
66
79
|
if (event?.value && !this.isDisabled) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
this.startInputValue = format(new Date(event.value), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx");
|
|
70
|
-
// this.startInputValue = moment(event.value).locale('en-US').format("YYYY-MM-DDTHH:mm:ss.SSSZ")
|
|
71
|
-
}
|
|
72
|
-
if (this.startControl.value && this.endControl.value) {
|
|
73
|
-
this.endInputValue = format(new Date(event.value), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx");
|
|
74
|
-
// this.endInputValue = moment(event.value).locale('en-US').format("YYYY-MM-DDTHH:mm:ss.SSSZ")
|
|
75
|
-
}
|
|
76
|
-
if (this.endInputValue && this.startInputValue) {
|
|
77
|
-
this.dateRange = {
|
|
78
|
-
startDate: this.startInputValue,
|
|
79
|
-
endDate: this.endInputValue
|
|
80
|
-
};
|
|
80
|
+
if (this.startDateControl.value) {
|
|
81
|
+
this.startDateControl.setValue(format(new Date(event.value), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"));
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
endDateChange(event) {
|
|
86
|
+
if (event?.value && !this.isDisabled) {
|
|
87
|
+
if (this.startDateControl.value && this.endDateControl.value) {
|
|
88
|
+
this.endDateControl.setValue(format(new Date(event.value), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"));
|
|
89
|
+
this.setDateRangeControlValue();
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
}
|
|
93
|
+
setDateRangeControlValue() {
|
|
94
|
+
this.dateRange = {
|
|
95
|
+
startDate: this.startDateControl.value,
|
|
96
|
+
endDate: this.endDateControl.value,
|
|
97
|
+
};
|
|
98
|
+
this.control.setValue(this.dateRange);
|
|
99
|
+
}
|
|
87
100
|
clearDateValue(event) {
|
|
88
101
|
this.dateRange = null;
|
|
89
102
|
this.startInputValue = null;
|
|
90
103
|
this.endInputValue = null;
|
|
91
104
|
this.control.setValue(null);
|
|
92
|
-
this.
|
|
93
|
-
this.
|
|
105
|
+
this.endDateControl.setValue(null);
|
|
106
|
+
this.startDateControl.setValue(null);
|
|
94
107
|
}
|
|
95
108
|
activateYearOnlyMode() {
|
|
96
109
|
this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);
|
|
97
110
|
if (this.control) {
|
|
98
|
-
this.control.setValue(format(new Date(this.control.value),
|
|
111
|
+
this.control.setValue(format(new Date(this.control.value), 'yyyy'));
|
|
99
112
|
}
|
|
100
113
|
this.datepicker.startView = 'multi-year';
|
|
101
|
-
this.datepicker.yearSelected.subscribe(e => {
|
|
102
|
-
this.control.setValue(format(new Date(e),
|
|
114
|
+
this.datepicker.yearSelected.subscribe((e) => {
|
|
115
|
+
this.control.setValue(format(new Date(e), 'yyyy'));
|
|
103
116
|
this.datepicker.close();
|
|
104
117
|
});
|
|
105
118
|
this.datepicker.openedStream.subscribe(() => {
|
|
@@ -109,25 +122,20 @@ export class DateRangePickerComponent extends ControlValueAccessorDirective {
|
|
|
109
122
|
document.body.classList.remove('year-only');
|
|
110
123
|
});
|
|
111
124
|
}
|
|
112
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
113
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
125
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: DateRangePickerComponent, isStandalone: true, selector: "app-date-range-picker", inputs: { className: "className", yearOnly: "yearOnly", calendarType: "calendarType" }, providers: [
|
|
114
127
|
{
|
|
115
128
|
provide: NG_VALUE_ACCESSOR,
|
|
116
129
|
useExisting: forwardRef(() => DateRangePickerComponent),
|
|
117
130
|
multi: true,
|
|
118
131
|
},
|
|
119
|
-
{
|
|
120
|
-
provide: DateAdapter,
|
|
121
|
-
useClass: MomentDateAdapter,
|
|
122
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
123
|
-
},
|
|
124
132
|
{
|
|
125
133
|
provide: MAT_DATE_FORMATS,
|
|
126
|
-
useClass: CustomDateFormat
|
|
134
|
+
useClass: CustomDateFormat,
|
|
127
135
|
},
|
|
128
|
-
], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(label){\r\n
|
|
136
|
+
], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly){ @if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\"> {{ i18n.translate(\"optional\") }} </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field class=\"date-range primary-form {{ className }}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\" [min]=\"minDateValue\" [max]=\"maxDateValue\">\r\n <input\r\n matStartDate\r\n placeholder=\"Start date\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"End date\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-onyx fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n} @else {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control.value.startDate,\r\n endDate: control.value.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }, { kind: "component", type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: i2.MatDatepickerModule }, { kind: "directive", type: i2.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: i3.MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }] });
|
|
129
137
|
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
131
139
|
type: Component,
|
|
132
140
|
args: [{ selector: 'app-date-range-picker', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, providers: [
|
|
133
141
|
{
|
|
@@ -135,33 +143,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
135
143
|
useExisting: forwardRef(() => DateRangePickerComponent),
|
|
136
144
|
multi: true,
|
|
137
145
|
},
|
|
138
|
-
{
|
|
139
|
-
provide: DateAdapter,
|
|
140
|
-
useClass: MomentDateAdapter,
|
|
141
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
142
|
-
},
|
|
143
146
|
{
|
|
144
147
|
provide: MAT_DATE_FORMATS,
|
|
145
|
-
useClass: CustomDateFormat
|
|
148
|
+
useClass: CustomDateFormat,
|
|
146
149
|
},
|
|
147
150
|
], imports: [
|
|
148
|
-
MatFormFieldModule,
|
|
149
|
-
MatDatepickerModule,
|
|
150
|
-
MatFormField,
|
|
151
|
-
MatInput,
|
|
152
|
-
MatIcon,
|
|
153
|
-
MatDatepickerToggle,
|
|
154
|
-
MatDatepicker,
|
|
155
|
-
MatDatepickerInput,
|
|
156
|
-
NgClass,
|
|
157
|
-
NgIf,
|
|
158
|
-
InfoItemComponent,
|
|
159
151
|
ReactiveFormsModule,
|
|
160
|
-
ValidationErrorsComponent
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
152
|
+
ValidationErrorsComponent,
|
|
153
|
+
...MatDatePickerImports,
|
|
154
|
+
...MatFormImports,
|
|
155
|
+
InfoItemComponent,
|
|
156
|
+
], template: "@if(!isReadOnly){ @if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\"> {{ i18n.translate(\"optional\") }} </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field class=\"date-range primary-form {{ className }}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\" [min]=\"minDateValue\" [max]=\"maxDateValue\">\r\n <input\r\n matStartDate\r\n placeholder=\"Start date\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"End date\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-onyx fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n} @else {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control.value.startDate,\r\n endDate: control.value.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}\n"] }]
|
|
157
|
+
}], propDecorators: { className: [{
|
|
165
158
|
type: Input
|
|
166
159
|
}], yearOnly: [{
|
|
167
160
|
type: Input
|
|
@@ -171,5 +164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
171
164
|
}], datepicker: [{
|
|
172
165
|
type: ViewChild,
|
|
173
166
|
args: [MatDatepicker]
|
|
167
|
+
}], calendarType: [{
|
|
168
|
+
type: Input
|
|
174
169
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHlEQUF5RDtBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFpQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDekgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9B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QWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZX0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0Zvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZCwgTWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHtNYXREYXRlcGlja2VyLCBNYXREYXRlcGlja2VySW5wdXQsIE1hdERhdGVwaWNrZXJNb2R1bGUsIE1hdERhdGVwaWNrZXJUb2dnbGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge01hdElucHV0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtJbmZvSXRlbUNvbXBvbmVudH0gZnJvbSAnLi4vaW5mby1pdGVtL2luZm8taXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQge01BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIE1vbWVudERhdGVBZGFwdGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XHJcbmltcG9ydCB7Q3VzdG9tRGF0ZUZvcm1hdH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1mb3JtYXQnO1xyXG4vLyBpbXBvcnQgIG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25FcnJvcnNDb21wb25lbnR9IGZyb20gJy4uL3ZhbGlkYXRpb24tZXJyb3JzL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Zm9ybWF0fSBmcm9tIFwiZGF0ZS1mbnNcIjtcclxuXHJcbmNvbnN0IFlFQVJfT05MWV9GT1JNQVQgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ1lZWVknLFxyXG4gIH0sXHJcbiAgZGlzcGxheToge1xyXG4gICAgZGF0ZUlucHV0OiAnWVlZWScsXHJcbiAgICBtb250aFllYXJMYWJlbDogJ1lZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ1lZWVknLFxyXG4gIH0sXHJcbn07XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGF0ZS1yYW5nZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXHJcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcclxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLFxyXG4gICAgICB1c2VDbGFzczogQ3VzdG9tRGF0ZUZvcm1hdFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXRJbnB1dCxcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXREYXRlcGlja2VyVG9nZ2xlLFxyXG4gICAgTWF0RGF0ZXBpY2tlcixcclxuICAgIE1hdERhdGVwaWNrZXJJbnB1dCxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ0lmLFxyXG4gICAgSW5mb0l0ZW1Db21wb25lbnQsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgVmFsaWRhdGlvbkVycm9yc0NvbXBvbmVudFxyXG4gIF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQ8VHlwZT4gZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPiAge1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAhIDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICd3aGl0ZS1pbnB1dCc7XHJcbiAgQElucHV0KCkgeWVhck9ubHk6IGJvb2xlYW47XHJcbiAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwdWJsaWMgZGF0ZUZvcm1hdDogQ3VzdG9tRGF0ZUZvcm1hdDtcclxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXIpIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55PjtcclxuICBzdGFydENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKVxyXG4gIGVuZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBzdGFydElucHV0VmFsdWU6c3RyaW5nXHJcbiAgZW5kSW5wdXRWYWx1ZTpzdHJpbmdcclxuICBkYXRlUmFuZ2U6YW55XHJcblxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVhZE9ubHkgJiYgdGhpcy55ZWFyT25seSkgdGhpcy5hY3RpdmF0ZVllYXJPbmx5TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMpIHtcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tTWF4RGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1c3RvbU1heERhdGUpO1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMgJiYgIXRoaXMuaXNSZWFkT25seSkgeyAvLyBhZGQgbWluIGRhdGUgdmFsdWUgZm9yIDIgZGF0ZXMgdmFsaWRhdGlvbnNcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tTWluRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1c3RvbU1pbkRhdGUpO1xyXG4gICAgICAgIHRoaXMubWluRGF0ZVZhbHVlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmb2N1c1BpY2tlcihwaWNrZXIpIHtcclxuICAgIHBpY2tlci5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgaWYgKGV2ZW50Py52YWx1ZSAmJiAhdGhpcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICBsZXQgaW5wdXRWYWx1ZVxyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhcnRDb250cm9sLnZhbHVlICYmICF0aGlzLmVuZENvbnRyb2wudmFsdWUpe1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0SW5wdXRWYWx1ZSA9IGZvcm1hdChuZXcgRGF0ZShldmVudC52YWx1ZSksIFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4eFwiKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5zdGFydElucHV0VmFsdWUgPSBtb21lbnQoZXZlbnQudmFsdWUpLmxvY2FsZSgnZW4tVVMnKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzLlNTU1pcIilcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHRoaXMuc3RhcnRDb250cm9sLnZhbHVlICYmIHRoaXMuZW5kQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kSW5wdXRWYWx1ZSA9IGZvcm1hdChuZXcgRGF0ZShldmVudC52YWx1ZSksIFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4eFwiKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5lbmRJbnB1dFZhbHVlID0gbW9tZW50KGV2ZW50LnZhbHVlKS5sb2NhbGUoJ2VuLVVTJykuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzcy5TU1NaXCIpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5lbmRJbnB1dFZhbHVlICYmIHRoaXMuc3RhcnRJbnB1dFZhbHVlKXtcclxuICAgICAgICAgICAgdGhpcy5kYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLnN0YXJ0SW5wdXRWYWx1ZSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmVuZElucHV0VmFsdWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmRhdGVSYW5nZT8uc3RhcnREYXRlICYmIHRoaXMuZGF0ZVJhbmdlPy5lbmREYXRlKXtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuZGF0ZVJhbmdlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckRhdGVWYWx1ZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlUmFuZ2UgPSBudWxsO1xyXG4gICAgdGhpcy5zdGFydElucHV0VmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5lbmRJbnB1dFZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZW5kQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuc3RhcnRDb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmF0ZVllYXJPbmx5TW9kZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZUZvcm1hdC51cGRhdGVEYXRlRm9ybWF0KFlFQVJfT05MWV9GT1JNQVQucGFyc2UsIFlFQVJfT05MWV9GT1JNQVQuZGlzcGxheSk7XHJcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmb3JtYXQobmV3IERhdGUodGhpcy5jb250cm9sLnZhbHVlKSwgXCJ5eXl5XCIpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGFydFZpZXcgPSAnbXVsdGkteWVhcic7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIueWVhclNlbGVjdGVkLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZvcm1hdChuZXcgRGF0ZShlKSwgXCJ5eXl5XCIpKTtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLm9wZW5lZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3llYXItb25seScpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZGF0ZXBpY2tlci5jbG9zZWRTdHJlYW0uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCd5ZWFyLW9ubHknKTtcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIkBpZihsYWJlbCl7XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPnt7bGFiZWx9fTwvc3Bhbj5cclxuICAgIEBpZighcmVxdWlyZWQpe1xyXG4gICAgPHNwYW4gY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj4ge3tpMThuLnRyYW5zbGF0ZSgnb3B0aW9uYWwnKX19IDwvc3Bhbj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG48bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkYXRlLXJhbmdlIHByaW1hcnktZm9ybSB7e2NsYXNzTmFtZX19XCI+XHJcbiAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG4gICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIj5cclxuICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBwbGFjZWhvbGRlcj1cIlN0YXJ0IGRhdGVcIiBbZm9ybUNvbnRyb2xdPVwic3RhcnRDb250cm9sXCIgW3ZhbHVlXT1cInZhbHVlPy5zdGFydERhdGUgPyB2YWx1ZT8uc3RhcnREYXRlIDogbnVsbFwiIChkYXRlSW5wdXQpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCIgKGZvY3VzKT1cImZvY3VzUGlja2VyKHBpY2tlcilcIiBbbWluXT1cIm1pbkRhdGVWYWx1ZVwiXHJcbiAgICAgIFttYXhdPVwibWF4RGF0ZVZhbHVlXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRFbmREYXRlIHBsYWNlaG9sZGVyPVwiRW5kIGRhdGVcIiBbZm9ybUNvbnRyb2xdPVwiZW5kQ29udHJvbFwiIFt2YWx1ZV09XCJ2YWx1ZT8uZW5kRGF0ZSA/IHZhbHVlPy5lbmREYXRlIDogbnVsbFwiIChkYXRlSW5wdXQpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCIgKGZvY3VzKT1cImZvY3VzUGlja2VyKHBpY2tlcilcIiBbbWluXT1cIm1pbkRhdGVWYWx1ZVwiXHJcbiAgICAgIFttYXhdPVwibWF4RGF0ZVZhbHVlXCI+XHJcbiAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxyXG4gIDwvbGFiZWw+XHJcbiAgQGlmKGNvbnRyb2w/LnZhbHVlKXtcclxuICAgIDxkcy1pY29uIG1hdFN1ZmZpeCBpY29uPVwiY2xvc2VcIiBjbGFzcz1cImZjLW9ueXggZnMtMTAgbXgtMiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbGVhckRhdGVWYWx1ZSgkZXZlbnQpXCI+PC9kcy1pY29uPlxyXG4gICAgfVxyXG4gIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCIgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiPlxyXG4gICAgPGkgY2xhc3M9XCJzZmkgc2ZpLWNhbGVuZGFyLW8gZmMtb255eCBmb250LTE4XCIgbWF0RGF0ZXBpY2tlclRvZ2dsZUljb24+PC9pPlxyXG4gIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuPGFwcC12YWxpZGF0aW9uLWVycm9ycyBbZXJyb3JzXT1cImNvbnRyb2wuZXJyb3JzXCI+PC9hcHAtdmFsaWRhdGlvbi1lcnJvcnM+XHJcbiJdfQ==
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHlEQUF5RDtBQUN6RCxPQUFPLEVBQ0wsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pF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LGlCQUFpQjtxQkFDbEI7OEJBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUMyQixVQUFVO3NCQUExQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFDRSxVQUFVO3NCQUFuQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2YsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1xyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBDdXN0b21EYXRlRm9ybWF0IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1mb3JtYXQnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgeyBNYXREYXRlUGlja2VySW1wb3J0cywgTWF0Rm9ybUltcG9ydHMgfSBmcm9tICcuLi9zaGFyZWQtaW1wb3J0cyc7XHJcbmltcG9ydCB7IEluZm9JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5mby1pdGVtL2luZm8taXRlbS5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgWUVBUl9PTkxZX0ZPUk1BVCA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiAnWVlZWScsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnWVlZWScsXHJcbiAgfSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRhdGUtcmFuZ2UtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsXHJcbiAgICAgIHVzZUNsYXNzOiBDdXN0b21EYXRlRm9ybWF0LFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50LFxyXG4gICAgLi4uTWF0RGF0ZVBpY2tlckltcG9ydHMsXHJcbiAgICAuLi5NYXRGb3JtSW1wb3J0cyxcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQ8XHJcbiAgVHlwZVxyXG4+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4ge1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICd3aGl0ZS1pbnB1dCc7XHJcbiAgQElucHV0KCkgeWVhck9ubHk6IGJvb2xlYW47XHJcbiAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwdWJsaWMgZGF0ZUZvcm1hdDogQ3VzdG9tRGF0ZUZvcm1hdDtcclxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXIpIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55PjtcclxuICBASW5wdXQoKSBjYWxlbmRhclR5cGUhOiBzdHJpbmc7XHJcbiAgc3RhcnRJbnB1dFZhbHVlOiBzdHJpbmc7XHJcbiAgZW5kSW5wdXRWYWx1ZTogc3RyaW5nO1xyXG4gIGRhdGVSYW5nZTogYW55O1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLnllYXJPbmx5KSB0aGlzLmFjdGl2YXRlWWVhck9ubHlNb2RlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnNldERhdGVGb3JtQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZUZvcm1Db250cm9sKCkge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgY3VycmVudE1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXkgPSB0b2RheS5nZXREYXRlKCk7XHJcbiAgICBpZiAodGhpcy5taW5EYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbkRhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWluRGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5taW5EYXRlVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICBpZiAodGhpcy5tYXhEYXRlID09ICd0b2RheScpIHtcclxuICAgICAgICB0aGlzLm1heERhdGVWYWx1ZSA9IG5ldyBEYXRlKGN1cnJlbnRZZWFyLCBjdXJyZW50TW9udGgsIGN1cnJlbnREYXkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1heERhdGUgPT0gJ29uZVllYXInKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEYXRlVmFsdWUgPSBuZXcgRGF0ZShcclxuICAgICAgICAgIGN1cnJlbnRZZWFyICsgMSxcclxuICAgICAgICAgIGN1cnJlbnRNb250aCxcclxuICAgICAgICAgIGN1cnJlbnREYXkgLSAxXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tTWF4RGF0ZSkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NYXhEYXRlKTtcclxuICAgICAgdGhpcy5tYXhEYXRlVmFsdWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21NaW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1c3RvbU1pbkRhdGUpO1xyXG4gICAgICB0aGlzLm1pbkRhdGVWYWx1ZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgICAgZGF0ZS5nZXREYXRlKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkgdGhpcy5jb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c1BpY2tlcihwaWNrZXIpIHtcclxuICAgIHBpY2tlci5vcGVuKCk7XHJcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udmFsdWUgJiYgIXRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5zdGFydERhdGVDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERhdGVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgZm9ybWF0KG5ldyBEYXRlKGV2ZW50LnZhbHVlKSwgXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MuU1NTeHh4XCIpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZW5kRGF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQ/LnZhbHVlICYmICF0aGlzLmlzRGlzYWJsZWQpIHtcclxuICAgICAgaWYgKHRoaXMuc3RhcnREYXRlQ29udHJvbC52YWx1ZSAmJiB0aGlzLmVuZERhdGVDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5lbmREYXRlQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgIGZvcm1hdChuZXcgRGF0ZShldmVudC52YWx1ZSksIFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4eFwiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zZXREYXRlUmFuZ2VDb250cm9sVmFsdWUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZVJhbmdlQ29udHJvbFZhbHVlKCkge1xyXG4gICAgdGhpcy5kYXRlUmFuZ2UgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogdGhpcy5zdGFydERhdGVDb250cm9sLnZhbHVlLFxyXG4gICAgICBlbmREYXRlOiB0aGlzLmVuZERhdGVDb250cm9sLnZhbHVlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmRhdGVSYW5nZSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckRhdGVWYWx1ZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlUmFuZ2UgPSBudWxsO1xyXG4gICAgdGhpcy5zdGFydElucHV0VmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5lbmRJbnB1dFZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZW5kRGF0ZUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlWWVhck9ubHlNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0LnVwZGF0ZURhdGVGb3JtYXQoXHJcbiAgICAgIFlFQVJfT05MWV9GT1JNQVQucGFyc2UsXHJcbiAgICAgIFlFQVJfT05MWV9GT1JNQVQuZGlzcGxheVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZvcm1hdChuZXcgRGF0ZSh0aGlzLmNvbnRyb2wudmFsdWUpLCAneXl5eScpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGFydFZpZXcgPSAnbXVsdGkteWVhcic7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIueWVhclNlbGVjdGVkLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZm9ybWF0KG5ldyBEYXRlKGUpLCAneXl5eScpKTtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0ZXBpY2tlci5vcGVuZWRTdHJlYW0uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCd5ZWFyLW9ubHknKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3llYXItb25seScpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZighaXNSZWFkT25seSl7IEBpZihsYWJlbCl7XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgQGlmKCFyZXF1aXJlZCl7XHJcbiAgPHNwYW4gY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj4ge3sgaTE4bi50cmFuc2xhdGUoXCJvcHRpb25hbFwiKSB9fSA8L3NwYW4+XHJcbiAgfVxyXG48L2Rpdj5cclxufVxyXG48bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkYXRlLXJhbmdlIHByaW1hcnktZm9ybSB7eyBjbGFzc05hbWUgfX1cIj5cclxuICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIiAgW21pbl09XCJtaW5EYXRlVmFsdWVcIiBbbWF4XT1cIm1heERhdGVWYWx1ZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRTdGFydERhdGVcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIlN0YXJ0IGRhdGVcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVDb250cm9sXCJcclxuICAgICAgICAoZGF0ZUlucHV0KT1cInN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoZm9jdXMpPVwiZm9jdXNQaWNrZXIocGlja2VyKVwiXHJcbiAgICAgICAgcmVhZG9ubHlcclxuICAgICAgLz5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0RW5kRGF0ZVxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiRW5kIGRhdGVcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJlbmREYXRlQ29udHJvbFwiXHJcbiAgICAgICAgKGRhdGVJbnB1dCk9XCJlbmREYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJmb2N1c1BpY2tlcihwaWNrZXIpXCJcclxuICAgICAgICByZWFkb25seVxyXG4gICAgICAvPlxyXG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cclxuICA8L2xhYmVsPlxyXG4gIEBpZihjb250cm9sPy52YWx1ZSl7XHJcbiAgPGRzLWljb25cclxuICAgIG1hdFN1ZmZpeFxyXG4gICAgaWNvbj1cImNsb3NlXCJcclxuICAgIGNsYXNzPVwiZmMtb255eCBmcy0xMCBteC0yIGN1cnNvci1wb2ludGVyXCJcclxuICAgIChjbGljayk9XCJjbGVhckRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICA+PC9kcy1pY29uPlxyXG4gIH1cclxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIj5cclxuICAgIDxpIGNsYXNzPVwic2ZpIHNmaS1jYWxlbmRhci1vIGZjLW9ueXggZm9udC0xOFwiIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uPjwvaT5cclxuICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxhcHAtdmFsaWRhdGlvbi1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiPjwvYXBwLXZhbGlkYXRpb24tZXJyb3JzPlxyXG59IEBlbHNlIHtcclxuPG5nLWNvbnRhaW5lcj5cclxuICA8YXBwLWluZm8taXRlbVxyXG4gICAgY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIlxyXG4gICAgdHlwZT1cImRhdGVcIlxyXG4gICAgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCJcclxuICAgIFtkYXRlVHlwZV09XCJjYWxlbmRhclR5cGVcIlxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFt2YWx1ZV09XCJ7XHJcbiAgICAgIHN0YXJ0RGF0ZTogY29udHJvbC52YWx1ZS5zdGFydERhdGUsXHJcbiAgICAgIGVuZERhdGU6IGNvbnRyb2wudmFsdWUuZW5kRGF0ZVxyXG4gICAgfVwiXHJcbiAgICBbaGFzTGFiZWxdPVwiISFsYWJlbFwiXHJcbiAgPlxyXG4gIDwvYXBwLWluZm8taXRlbT5cclxuPC9uZy1jb250YWluZXI+XHJcbn1cclxuIl19
|