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
package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
2
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, Inject, Input, Output, ViewChild } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
-
import { MatDatepicker, MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle } from '@angular/material/datepicker';
|
|
1
|
+
import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators, } from '@angular/forms';
|
|
2
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, Inject, Input, Output, ViewChild, } from '@angular/core';
|
|
3
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
|
6
4
|
import { CustomDateFormat } from './date-format';
|
|
7
|
-
import { MatFormField, MatFormFieldModule } from "@angular/material/form-field";
|
|
8
|
-
import { NgClass, NgIf } from "@angular/common";
|
|
9
|
-
import { InfoItemComponent } from "../info-item/info-item.component";
|
|
10
|
-
// import moment from 'moment'
|
|
11
5
|
import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
|
|
12
|
-
import { MatInput } from '@angular/material/input';
|
|
13
|
-
import { MatIcon } from '@angular/material/icon';
|
|
14
6
|
import { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';
|
|
15
|
-
import { format } from
|
|
7
|
+
import { format } from 'date-fns';
|
|
8
|
+
import { MatDatePickerImports, MatFormImports } from '../shared-imports';
|
|
9
|
+
import { MAT_DATE_FORMATS } from '@angular/material/core';
|
|
10
|
+
import { MatDatepicker } from '@angular/material/datepicker';
|
|
11
|
+
import { InfoItemComponent } from '../info-item/info-item.component';
|
|
16
12
|
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "@angular/
|
|
13
|
+
import * as i1 from "@angular/forms";
|
|
18
14
|
import * as i2 from "@angular/material/datepicker";
|
|
19
|
-
import * as i3 from "@angular/
|
|
15
|
+
import * as i3 from "@angular/material/form-field";
|
|
16
|
+
import * as i4 from "@angular/material/input";
|
|
20
17
|
const YEAR_ONLY_FORMAT = {
|
|
21
18
|
parse: {
|
|
22
19
|
dateInput: 'YYYY',
|
|
@@ -30,12 +27,10 @@ const YEAR_ONLY_FORMAT = {
|
|
|
30
27
|
};
|
|
31
28
|
export class DatePickerComponent extends ControlValueAccessorDirective {
|
|
32
29
|
date = new FormControl();
|
|
33
|
-
tooltip;
|
|
34
30
|
className;
|
|
35
31
|
calendarType;
|
|
36
32
|
showLabel = true;
|
|
37
33
|
yearOnly;
|
|
38
|
-
resetDate = false;
|
|
39
34
|
dateValue = new EventEmitter();
|
|
40
35
|
showIslamic = false;
|
|
41
36
|
error;
|
|
@@ -52,18 +47,36 @@ export class DatePickerComponent extends ControlValueAccessorDirective {
|
|
|
52
47
|
this.activateYearOnlyMode();
|
|
53
48
|
}
|
|
54
49
|
ngOnChanges(changes) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
50
|
+
this.setDateFormControl();
|
|
51
|
+
}
|
|
52
|
+
setDateFormControl() {
|
|
53
|
+
const today = new Date();
|
|
54
|
+
const currentYear = today.getFullYear();
|
|
55
|
+
const currentMonth = today.getMonth();
|
|
56
|
+
const currentDay = today.getDate();
|
|
57
|
+
if (this.minDate) {
|
|
58
|
+
if (this.minDate == 'today') {
|
|
59
|
+
this.minDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
|
-
if (
|
|
62
|
-
if (this.
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
if (this.maxDate) {
|
|
63
|
+
if (this.maxDate == 'today') {
|
|
64
|
+
this.maxDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
65
|
+
}
|
|
66
|
+
else if (this.maxDate == 'oneYear') {
|
|
67
|
+
this.maxDateValue = new Date(currentYear + 1, currentMonth, currentDay - 1);
|
|
65
68
|
}
|
|
66
69
|
}
|
|
70
|
+
if (this.customMaxDate) {
|
|
71
|
+
const date = new Date(this.customMaxDate);
|
|
72
|
+
this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
73
|
+
}
|
|
74
|
+
if (this.customMinDate) {
|
|
75
|
+
const date = new Date(this.customMinDate);
|
|
76
|
+
this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
77
|
+
}
|
|
78
|
+
if (this.required)
|
|
79
|
+
this.control.addValidators(Validators.required);
|
|
67
80
|
}
|
|
68
81
|
focusPicker(picker) {
|
|
69
82
|
picker.open();
|
|
@@ -81,11 +94,11 @@ export class DatePickerComponent extends ControlValueAccessorDirective {
|
|
|
81
94
|
activateYearOnlyMode() {
|
|
82
95
|
this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);
|
|
83
96
|
if (this.control) {
|
|
84
|
-
this.control.setValue(format(new Date(this.control.value),
|
|
97
|
+
this.control.setValue(format(new Date(this.control.value), 'yyyy'));
|
|
85
98
|
}
|
|
86
99
|
this.datepicker.startView = 'multi-year';
|
|
87
|
-
this.datepicker.yearSelected.subscribe(e => {
|
|
88
|
-
this.control.setValue(format(new Date(e),
|
|
100
|
+
this.datepicker.yearSelected.subscribe((e) => {
|
|
101
|
+
this.control.setValue(format(new Date(e), 'yyyy'));
|
|
89
102
|
this.datepicker.close();
|
|
90
103
|
});
|
|
91
104
|
this.datepicker.openedStream.subscribe(() => {
|
|
@@ -95,59 +108,41 @@ export class DatePickerComponent extends ControlValueAccessorDirective {
|
|
|
95
108
|
document.body.classList.remove('year-only');
|
|
96
109
|
});
|
|
97
110
|
}
|
|
98
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
99
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
100
|
-
{
|
|
101
|
-
provide: DateAdapter,
|
|
102
|
-
useClass: MomentDateAdapter,
|
|
103
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
provide: MAT_DATE_FORMATS,
|
|
107
|
-
useClass: CustomDateFormat
|
|
108
|
-
},
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DatePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: DatePickerComponent, isStandalone: true, selector: "app-datepicker", inputs: { className: "className", calendarType: "calendarType", showLabel: "showLabel", yearOnly: "yearOnly", error: "error", format: "format" }, outputs: { dateValue: "dateValue" }, providers: [
|
|
109
113
|
{
|
|
110
114
|
provide: NG_VALUE_ACCESSOR,
|
|
111
115
|
useExisting: forwardRef(() => DatePickerComponent),
|
|
112
116
|
multi: true,
|
|
113
117
|
},
|
|
114
|
-
|
|
118
|
+
{
|
|
119
|
+
provide: MAT_DATE_FORMATS,
|
|
120
|
+
useClass: CustomDateFormat,
|
|
121
|
+
},
|
|
122
|
+
], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly){\r\n<ng-container>\r\n @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 <div class=\"justify-content-between mb-1\">\r\n <mat-form-field\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n (dateInput)=\"dateChange($event)\"\r\n [placeholder]=\"label ? i18n.translate('select') + ' ' + label : ''\"\r\n (focus)=\"focusPicker(dp)\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n readonly\r\n [matDatepicker]=\"dp\"\r\n [formControl]=\"control\"\r\n />\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]=\"dp\">\r\n <ds-icon\r\n icon=\"calendar-o\"\r\n class=\"fc-black fs-18\"\r\n matDatepickerToggleIcon\r\n ></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp> </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n</ng-container>\r\n} @if(isReadOnly && control){\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]=\"control.value\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\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: "ngmodule", type: MatNativeDateModule }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "component", type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: i2.MatDatepickerModule }, { kind: "directive", type: i2.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { 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: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }] });
|
|
115
123
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
117
125
|
type: Component,
|
|
118
126
|
args: [{ selector: 'app-datepicker', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [
|
|
119
|
-
{
|
|
120
|
-
provide: DateAdapter,
|
|
121
|
-
useClass: MomentDateAdapter,
|
|
122
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
provide: MAT_DATE_FORMATS,
|
|
126
|
-
useClass: CustomDateFormat
|
|
127
|
-
},
|
|
128
127
|
{
|
|
129
128
|
provide: NG_VALUE_ACCESSOR,
|
|
130
129
|
useExisting: forwardRef(() => DatePickerComponent),
|
|
131
130
|
multi: true,
|
|
132
131
|
},
|
|
132
|
+
{
|
|
133
|
+
provide: MAT_DATE_FORMATS,
|
|
134
|
+
useClass: CustomDateFormat,
|
|
135
|
+
},
|
|
133
136
|
], imports: [
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
MatInput,
|
|
138
|
-
MatIcon,
|
|
139
|
-
MatDatepickerToggle,
|
|
137
|
+
ReactiveFormsModule,
|
|
138
|
+
ValidationErrorsComponent,
|
|
139
|
+
MatNativeDateModule,
|
|
140
140
|
MatDatepicker,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
NgIf,
|
|
141
|
+
...MatDatePickerImports,
|
|
142
|
+
...MatFormImports,
|
|
144
143
|
InfoItemComponent,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
], template: "@if(!isReadOnly){\r\n <ng-container>\r\n @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 <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : isDisabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"label ? (i18n.translate('select') + ' ' + label) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"control\">\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n \r\n </ng-container>\r\n}\r\n@if(isReadOnly && control){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"control.value\" [hasLabel]=\"label? true: false\">\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\n"] }]
|
|
148
|
-
}], propDecorators: { tooltip: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}], className: [{
|
|
144
|
+
], template: "@if(!isReadOnly){\r\n<ng-container>\r\n @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 <div class=\"justify-content-between mb-1\">\r\n <mat-form-field\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n (dateInput)=\"dateChange($event)\"\r\n [placeholder]=\"label ? i18n.translate('select') + ' ' + label : ''\"\r\n (focus)=\"focusPicker(dp)\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n readonly\r\n [matDatepicker]=\"dp\"\r\n [formControl]=\"control\"\r\n />\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]=\"dp\">\r\n <ds-icon\r\n icon=\"calendar-o\"\r\n class=\"fc-black fs-18\"\r\n matDatepickerToggleIcon\r\n ></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp> </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n</ng-container>\r\n} @if(isReadOnly && control){\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]=\"control.value\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\n"] }]
|
|
145
|
+
}], propDecorators: { className: [{
|
|
151
146
|
type: Input
|
|
152
147
|
}], calendarType: [{
|
|
153
148
|
type: Input
|
|
@@ -155,8 +150,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
155
150
|
type: Input
|
|
156
151
|
}], yearOnly: [{
|
|
157
152
|
type: Input
|
|
158
|
-
}], resetDate: [{
|
|
159
|
-
type: Input
|
|
160
153
|
}], dateValue: [{
|
|
161
154
|
type: Output
|
|
162
155
|
}], error: [{
|
|
@@ -170,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
170
163
|
type: ViewChild,
|
|
171
164
|
args: [MatDatepicker]
|
|
172
165
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFFTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEcsT0FBTyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3pILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFP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LEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsV0FHUTt3QkFDUCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLE9BQU87d0JBQ1AsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix5QkFBeUI7cUJBQzFCOzhCQUlRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQzJCLFVBQVU7c0JBQTFDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUVYLE1BQU07c0JBQWxCLEtBQUs7Z0JBTW9CLFVBQVU7c0JBQW5DLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7TUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHtNYXREYXRlcGlja2VyLCBNYXREYXRlcGlja2VySW5wdXQsIE1hdERhdGVwaWNrZXJNb2R1bGUsIE1hdERhdGVwaWNrZXJUb2dnbGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge0N1c3RvbURhdGVGb3JtYXR9IGZyb20gJy4vZGF0ZS1mb3JtYXQnO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZCwgTWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtJbmZvSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL2luZm8taXRlbS9pbmZvLWl0ZW0uY29tcG9uZW50XCI7XHJcbi8vIGltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50J1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50fSBmcm9tICcuLi92YWxpZGF0aW9uLWVycm9ycy92YWxpZGF0aW9uLWVycm9ycy5jb21wb25lbnQnO1xyXG5pbXBvcnQge2Zvcm1hdH0gZnJvbSBcImRhdGUtZm5zXCI7XHJcblxyXG5cclxuY29uc3QgWUVBUl9PTkxZX0ZPUk1BVCA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiAnWVlZWScsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnWVlZWScsXHJcbiAgfSxcclxufTtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxyXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXHJcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcclxuICAgICAgdXNlQ2xhc3M6IEN1c3RvbURhdGVGb3JtYXRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcblxyXG5cclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0SW5wdXQsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0RGF0ZXBpY2tlclRvZ2dsZSxcclxuICAgIE1hdERhdGVwaWNrZXIsXHJcbiAgICBNYXREYXRlcGlja2VySW5wdXQsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdJZixcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50PFR5cGU+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBkYXRlID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgQElucHV0KCkgdG9vbHRpcCE6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc05hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2FsZW5kYXJUeXBlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgeWVhck9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmVzZXREYXRlID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIGRhdGVWYWx1ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc2hvd0lzbGFtaWMgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGVycm9yITogc3RyaW5nO1xyXG4gIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHVibGljIGRhdGVGb3JtYXQ6IEN1c3RvbURhdGVGb3JtYXRcclxuXHJcbiAgQElucHV0KCkgc2V0IGZvcm1hdChfZm9ybWF0OiBzdHJpbmcpIHtcclxuICAgIGlmIChfZm9ybWF0KSB7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1hdC51cGRhdGVEYXRlRm9ybWF0KHtkYXRlSW5wdXQ6IF9mb3JtYXR9LCB7ZGF0ZUlucHV0OiBfZm9ybWF0fSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXIpIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55PjtcclxuICBmbG9hdExhYmVsOiBhbnkgPSAnYXV0byc7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMueWVhck9ubHkpIHRoaXMuYWN0aXZhdGVZZWFyT25seU1vZGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzKSB7XHJcbiAgICAgIGlmICh0aGlzLmN1c3RvbU1heERhdGUpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NYXhEYXRlKTtcclxuICAgICAgICB0aGlzLm1heERhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzICYmICF0aGlzLmlzUmVhZE9ubHkpIHsgLy8gYWRkIG1pbiBkYXRlIHZhbHVlIGZvciAyIGRhdGVzIHZhbGlkYXRpb25zXHJcbiAgICAgIGlmICh0aGlzLmN1c3RvbU1pbkRhdGUpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NaW5EYXRlKTtcclxuICAgICAgICB0aGlzLm1pbkRhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZm9jdXNQaWNrZXIocGlja2VyKSB7XHJcbiAgICBwaWNrZXIub3BlbigpO1xyXG4gIH1cclxuXHJcblxyXG4gIGRhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICBpZiAoZXZlbnQ/LnZhbHVlICYmICF0aGlzLmlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgIGxldCBpbnB1dFZhbHVlXHJcbiAgICAgICAgaW5wdXRWYWx1ZSA9IGZvcm1hdChuZXcgRGF0ZShldmVudC52YWx1ZSksIFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4eFwiKTtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShpbnB1dFZhbHVlKVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckRhdGVWYWx1ZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG51bGwpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlWWVhck9ubHlNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0LnVwZGF0ZURhdGVGb3JtYXQoWUVBUl9PTkxZX0ZPUk1BVC5wYXJzZSwgWUVBUl9PTkxZX0ZPUk1BVC5kaXNwbGF5KTtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZvcm1hdChuZXcgRGF0ZSh0aGlzLmNvbnRyb2wudmFsdWUpLCBcInl5eXlcIikpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLnN0YXJ0VmlldyA9ICdtdWx0aS15ZWFyJztcclxuICAgIHRoaXMuZGF0ZXBpY2tlci55ZWFyU2VsZWN0ZWQuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZm9ybWF0KG5ldyBEYXRlKGUpLCBcInl5eXlcIikpO1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmRhdGVwaWNrZXIub3BlbmVkU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgneWVhci1vbmx5Jyk7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3llYXItb25seScpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIkBpZighaXNSZWFkT25seSl7XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIEBpZihsYWJlbCl7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+e3tsYWJlbH19PC9zcGFuPlxyXG4gICAgICAgIEBpZighcmVxdWlyZWQpe1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5XCI+IHt7aTE4bi50cmFuc2xhdGUoJ29wdGlvbmFsJyl9fSA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7J2lucHV0LWRpc2FibGVkJyA6IGlzRGlzYWJsZWQgfVwiIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGRhdGVJbnB1dCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwibGFiZWwgPyAoaTE4bi50cmFuc2xhdGUoJ3NlbGVjdCcpICsgJyAnICsgbGFiZWwpIDogJydcIiAoZm9jdXMpPVwiZm9jdXNQaWNrZXIoZHApXCIgW21pbl09XCJtaW5EYXRlVmFsdWVcIlxyXG4gICAgICAgICAgICBbbWF4XT1cIm1heERhdGVWYWx1ZVwiIHJlYWRvbmx5IFttYXREYXRlcGlja2VyXT1cImRwXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIEBpZihjb250cm9sPy52YWx1ZSl7XHJcbiAgICAgICAgPGRzLWljb24gbWF0U3VmZml4IGljb249XCJjbG9zZVwiIGNsYXNzPVwiZmMtb255eCBmcy0xMCBteC0yIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsZWFyRGF0ZVZhbHVlKCRldmVudClcIj48L2RzLWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZHBcIj5cclxuICAgICAgICAgIDxkcy1pY29uIGljb249XCJjYWxlbmRhci1vXCIgY2xhc3M9XCJmYy1ibGFjayBmcy0xOFwiIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uPjwvZHMtaWNvbj5cclxuICAgICAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2RwPlxyXG4gICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgPCEtLSA8bWF0LWVycm9yICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+e3tlcnJvck1lc3NhZ2V9fTwvbWF0LWVycm9yPiAtLT5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICA8YXBwLXZhbGlkYXRpb24tZXJyb3JzIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnNcIj48L2FwcC12YWxpZGF0aW9uLWVycm9ycz5cclxuICAgIDwvZGl2PlxyXG4gIFxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59XHJcbkBpZihpc1JlYWRPbmx5ICYmIGNvbnRyb2wpe1xyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiIHR5cGU9XCJkYXRlXCIgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCIgW2RhdGVUeXBlXT1cImNhbGVuZGFyVHlwZVwiIFtsYWJlbF09XCJsYWJlbFRleHRSZWFkTW9kZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlXCIgW2hhc0xhYmVsXT1cImxhYmVsPyB0cnVlOiBmYWxzZVwiPlxyXG4gICAgPC9hcHAtaW5mby1pdGVtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59XHJcblxyXG4iXX0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0s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Q25CLHlCQUF5Qiw0R0FDekIsbUJBQW1CLCtCQUNuQixhQUFhLGt6Q0FHYixpQkFBaUI7OzJGQUdSLG1CQUFtQjtrQkE1Qi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBR2QsSUFBSSxXQUNQLENBQUMsc0JBQXNCLENBQUMsYUFDdEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7eUJBQzNCO3FCQUNGLFdBRVE7d0JBQ1AsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixHQUFHLG9CQUFvQjt3QkFDdkIsR0FBRyxjQUFjO3dCQUNqQixpQkFBaUI7cUJBQ2xCOzhCQU9RLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQzJCLFVBQVU7c0JBQTFDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUVYLE1BQU07c0JBQWxCLEtBQUs7Z0JBU29CLFVBQVU7c0JBQW5DLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZUZvcm1hdCB9IGZyb20gJy4vZGF0ZS1mb3JtYXQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yc0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tZXJyb3JzL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgTWF0RGF0ZVBpY2tlckltcG9ydHMsIE1hdEZvcm1JbXBvcnRzIH0gZnJvbSAnLi4vc2hhcmVkLWltcG9ydHMnO1xyXG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgSW5mb0l0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWl0ZW0vaW5mby1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBZRUFSX09OTFlfRk9STUFUID0ge1xyXG4gIHBhcnNlOiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcclxuICB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgIGRhdGVJbnB1dDogJ1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdZWVlZJyxcclxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdZWVlZJyxcclxuICB9LFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcclxuICAgICAgdXNlQ2xhc3M6IEN1c3RvbURhdGVGb3JtYXQsXHJcbiAgICB9LFxyXG4gIF0sXHJcblxyXG4gIGltcG9ydHM6IFtcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50LFxyXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXIsXHJcbiAgICAuLi5NYXREYXRlUGlja2VySW1wb3J0cyxcclxuICAgIC4uLk1hdEZvcm1JbXBvcnRzLFxyXG4gICAgSW5mb0l0ZW1Db21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQ8VHlwZT5cclxuICBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlPFR5cGU+XHJcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0XHJcbntcclxuICBkYXRlID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNhbGVuZGFyVHlwZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHllYXJPbmx5OiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBkYXRlVmFsdWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHNob3dJc2xhbWljID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IhOiBzdHJpbmc7XHJcbiAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwdWJsaWMgZGF0ZUZvcm1hdDogQ3VzdG9tRGF0ZUZvcm1hdDtcclxuXHJcbiAgQElucHV0KCkgc2V0IGZvcm1hdChfZm9ybWF0OiBzdHJpbmcpIHtcclxuICAgIGlmIChfZm9ybWF0KSB7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1hdC51cGRhdGVEYXRlRm9ybWF0KFxyXG4gICAgICAgIHsgZGF0ZUlucHV0OiBfZm9ybWF0IH0sXHJcbiAgICAgICAgeyBkYXRlSW5wdXQ6IF9mb3JtYXQgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChNYXREYXRlcGlja2VyKSBkYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPGFueT47XHJcbiAgZmxvYXRMYWJlbDogYW55ID0gJ2F1dG8nO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLnllYXJPbmx5KSB0aGlzLmFjdGl2YXRlWWVhck9ubHlNb2RlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnNldERhdGVGb3JtQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZUZvcm1Db250cm9sKCkge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgY3VycmVudE1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXkgPSB0b2RheS5nZXREYXRlKCk7XHJcbiAgICBpZiAodGhpcy5taW5EYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbkRhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWluRGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1heERhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXhEYXRlID09ICdvbmVZZWFyJykge1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoXHJcbiAgICAgICAgICBjdXJyZW50WWVhciArIDEsXHJcbiAgICAgICAgICBjdXJyZW50TW9udGgsXHJcbiAgICAgICAgICBjdXJyZW50RGF5IC0gMVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbU1heERhdGUpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VzdG9tTWF4RGF0ZSk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tTWluRGF0ZSkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NaW5EYXRlKTtcclxuICAgICAgdGhpcy5taW5EYXRlVmFsdWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkgdGhpcy5jb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c1BpY2tlcihwaWNrZXIpIHtcclxuICAgIHBpY2tlci5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udmFsdWUgJiYgIXRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICBsZXQgaW5wdXRWYWx1ZTtcclxuICAgICAgaW5wdXRWYWx1ZSA9IGZvcm1hdChcclxuICAgICAgICBuZXcgRGF0ZShldmVudC52YWx1ZSksXHJcbiAgICAgICAgXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MuU1NTeHh4XCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGlucHV0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRlVmFsdWUoZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWN0aXZhdGVZZWFyT25seU1vZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQudXBkYXRlRGF0ZUZvcm1hdChcclxuICAgICAgWUVBUl9PTkxZX0ZPUk1BVC5wYXJzZSxcclxuICAgICAgWUVBUl9PTkxZX0ZPUk1BVC5kaXNwbGF5XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZm9ybWF0KG5ldyBEYXRlKHRoaXMuY29udHJvbC52YWx1ZSksICd5eXl5JykpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLnN0YXJ0VmlldyA9ICdtdWx0aS15ZWFyJztcclxuICAgIHRoaXMuZGF0ZXBpY2tlci55ZWFyU2VsZWN0ZWQuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmb3JtYXQobmV3IERhdGUoZSksICd5eXl5JykpO1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyLm9wZW5lZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3llYXItb25seScpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2VkU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgneWVhci1vbmx5Jyk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiQGlmKCFpc1JlYWRPbmx5KXtcclxuPG5nLWNvbnRhaW5lcj5cclxuICBAaWYobGFiZWwpe1xyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTBcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIEBpZighcmVxdWlyZWQpe1xyXG4gICAgPHNwYW4gY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj4ge3sgaTE4bi50cmFuc2xhdGUoXCJvcHRpb25hbFwiKSB9fSA8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGRcclxuICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtZGlzYWJsZWQnOiBpc0Rpc2FibGVkIH1cIlxyXG4gICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcclxuICAgID5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIChkYXRlSW5wdXQpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbCA/IGkxOG4udHJhbnNsYXRlKCdzZWxlY3QnKSArICcgJyArIGxhYmVsIDogJydcIlxyXG4gICAgICAgICAgKGZvY3VzKT1cImZvY3VzUGlja2VyKGRwKVwiXHJcbiAgICAgICAgICBbbWluXT1cIm1pbkRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICBbbWF4XT1cIm1heERhdGVWYWx1ZVwiXHJcbiAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZHBcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIEBpZihjb250cm9sPy52YWx1ZSl7XHJcbiAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgaWNvbj1cImNsb3NlXCJcclxuICAgICAgICBjbGFzcz1cImZjLW9ueXggZnMtMTAgbXgtMiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyRGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICA+PC9kcy1pY29uPlxyXG4gICAgICB9XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZHBcIj5cclxuICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgaWNvbj1cImNhbGVuZGFyLW9cIlxyXG4gICAgICAgICAgY2xhc3M9XCJmYy1ibGFjayBmcy0xOFwiXHJcbiAgICAgICAgICBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxyXG4gICAgICAgID48L2RzLWljb24+XHJcbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI2RwPiA8L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICA8IS0tIDxtYXQtZXJyb3IgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+IC0tPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxhcHAtdmFsaWRhdGlvbi1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiPjwvYXBwLXZhbGlkYXRpb24tZXJyb3JzPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxufSBAaWYoaXNSZWFkT25seSAmJiBjb250cm9sKXtcclxuPG5nLWNvbnRhaW5lcj5cclxuICA8YXBwLWluZm8taXRlbVxyXG4gICAgY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIlxyXG4gICAgdHlwZT1cImRhdGVcIlxyXG4gICAgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCJcclxuICAgIFtkYXRlVHlwZV09XCJjYWxlbmRhclR5cGVcIlxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlXCJcclxuICAgIFtoYXNMYWJlbF09XCIhIWxhYmVsXCJcclxuICA+XHJcbiAgPC9hcHAtaW5mby1pdGVtPlxyXG48L25nLWNvbnRhaW5lcj5cclxufVxyXG4iXX0=
|