@ieeesa-npm/presentation 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/ieeesa-npm-presentation.mjs +5 -0
- package/esm2022/lib/assets/constants.json +91 -0
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +143 -0
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +102 -0
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +306 -0
- package/esm2022/lib/components/date-picker-header/date-picker-header.component.mjs +153 -0
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +310 -0
- package/esm2022/lib/components/form-error/form-error.component.mjs +24 -0
- package/esm2022/lib/components/input/input.component.mjs +78 -0
- package/esm2022/lib/components/notification/notification.component.mjs +43 -0
- package/esm2022/lib/components/radio/radio.component.mjs +93 -0
- package/esm2022/lib/components/search/search.component.mjs +137 -0
- package/esm2022/lib/components/select/select.component.mjs +253 -0
- package/esm2022/lib/components/text-area/text-area.component.mjs +31 -0
- package/esm2022/lib/date-formats.mjs +11 -0
- package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +209 -0
- package/esm2022/lib/models/autocomplete-option.model.mjs +2 -0
- package/esm2022/lib/models/calendar.model.mjs +10 -0
- package/esm2022/lib/models/checkbox-option.model.mjs +2 -0
- package/esm2022/lib/models/date-picker.model.mjs +2 -0
- package/esm2022/lib/models/field-config.model.mjs +2 -0
- package/esm2022/lib/models/form-control-types.model.mjs +20 -0
- package/esm2022/lib/models/form-field.model.mjs +2 -0
- package/esm2022/lib/models/form-grid.model.mjs +2 -0
- package/esm2022/lib/models/form.model.mjs +2 -0
- package/esm2022/lib/models/radio-option.model.mjs +2 -0
- package/esm2022/lib/models/search.model.mjs +10 -0
- package/esm2022/lib/models/select-option.model.mjs +2 -0
- package/esm2022/lib/presentation.module.mjs +16 -0
- package/esm2022/lib/services/datepicker.service.mjs +55 -0
- package/esm2022/lib/services/form-utility.service.mjs +47 -0
- package/esm2022/lib/validation-patterns.mjs +7 -0
- package/esm2022/public-api.mjs +20 -0
- package/fesm2022/ieeesa-npm-presentation.mjs +1868 -0
- package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/autocomplete/autocomplete.component.d.ts +64 -0
- package/lib/components/checkbox/checkbox.component.d.ts +55 -0
- package/lib/components/date-picker/date-picker.component.d.ts +130 -0
- package/lib/components/date-picker-header/date-picker-header.component.d.ts +76 -0
- package/lib/components/dynamic-form/dynamic-form.component.d.ts +186 -0
- package/lib/components/form-error/form-error.component.d.ts +15 -0
- package/lib/components/input/input.component.d.ts +34 -0
- package/lib/components/notification/notification.component.d.ts +21 -0
- package/lib/components/radio/radio.component.d.ts +49 -0
- package/lib/components/search/search.component.d.ts +66 -0
- package/lib/components/select/select.component.d.ts +116 -0
- package/lib/components/text-area/text-area.component.d.ts +11 -0
- package/lib/date-formats.d.ts +10 -0
- package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +78 -0
- package/lib/models/autocomplete-option.model.d.ts +4 -0
- package/lib/models/calendar.model.d.ts +5 -0
- package/lib/models/checkbox-option.model.d.ts +6 -0
- package/lib/models/date-picker.model.d.ts +13 -0
- package/lib/models/field-config.model.d.ts +42 -0
- package/lib/models/form-control-types.model.d.ts +10 -0
- package/lib/models/form-field.model.d.ts +6 -0
- package/lib/models/form-grid.model.d.ts +7 -0
- package/lib/models/form.model.d.ts +7 -0
- package/lib/models/radio-option.model.d.ts +5 -0
- package/lib/models/search.model.d.ts +5 -0
- package/lib/models/select-option.model.d.ts +5 -0
- package/lib/presentation.module.d.ts +6 -0
- package/lib/services/datepicker.service.d.ts +48 -0
- package/lib/services/form-utility.service.d.ts +29 -0
- package/lib/validation-patterns.d.ts +6 -0
- package/package.json +25 -0
- package/public-api.d.ts +16 -0
- package/src/lib/assets/constants.json +91 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
4
|
+
import { MAT_DATE_FORMATS, MatNativeDateModule, } from '@angular/material/core';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
+
import moment_ from 'moment';
|
|
8
|
+
import { DateFormats } from '@presentation/date-formats';
|
|
9
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
10
|
+
import * as datePickerInfo from '@presentation/assets/constants.json';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/material/datepicker";
|
|
13
|
+
import * as i2 from "@angular/material/core";
|
|
14
|
+
import * as i3 from "@presentation/services/datepicker.service";
|
|
15
|
+
import * as i4 from "@angular/common";
|
|
16
|
+
import * as i5 from "@angular/material/icon";
|
|
17
|
+
const moment = moment_;
|
|
18
|
+
/**
|
|
19
|
+
* Provides implementation of date picker custom header and being used in date-picker component.
|
|
20
|
+
* @export
|
|
21
|
+
* @class DatePickerHeaderComponent
|
|
22
|
+
* @implements {OnInit}
|
|
23
|
+
* @implements {OnDestroy}
|
|
24
|
+
*/
|
|
25
|
+
export class DatePickerHeaderComponent {
|
|
26
|
+
constructor(
|
|
27
|
+
// eslint-disable-next-line no-unused-vars
|
|
28
|
+
calendar,
|
|
29
|
+
// eslint-disable-next-line no-unused-vars
|
|
30
|
+
dateAdapter,
|
|
31
|
+
// eslint-disable-next-line no-unused-vars
|
|
32
|
+
dateFormats,
|
|
33
|
+
// eslint-disable-next-line no-unused-vars
|
|
34
|
+
datepickerService // eslint-disable-next-line no-empty-function
|
|
35
|
+
) {
|
|
36
|
+
this.calendar = calendar;
|
|
37
|
+
this.dateAdapter = dateAdapter;
|
|
38
|
+
this.dateFormats = dateFormats;
|
|
39
|
+
this.datepickerService = datepickerService;
|
|
40
|
+
this.destroy$ = new Subject();
|
|
41
|
+
this.arrowDirection = false;
|
|
42
|
+
this.isRangeSelection = false;
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
|
+
this.datePickerInfo = datePickerInfo;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Implementation of ngOnInit lifecycle hook method to initialize components instance properties.
|
|
48
|
+
* @memberof DatePickerHeaderComponent
|
|
49
|
+
*/
|
|
50
|
+
ngOnInit() {
|
|
51
|
+
this.isRangeSelection = this.datepickerService.getCalendarType();
|
|
52
|
+
const selectedRange = this.datepickerService.getSelectedRange();
|
|
53
|
+
if (selectedRange) {
|
|
54
|
+
this.setRange(selectedRange);
|
|
55
|
+
}
|
|
56
|
+
this.datepickerService.range$
|
|
57
|
+
?.pipe(takeUntil(this.destroy$))
|
|
58
|
+
.subscribe((range) => {
|
|
59
|
+
this.setRange(range);
|
|
60
|
+
});
|
|
61
|
+
this.selectedDate = this.datepickerService.selectedDate
|
|
62
|
+
? moment(this.datepickerService.selectedDate).format(DateFormats.display.daysFormat) +
|
|
63
|
+
', ' +
|
|
64
|
+
moment(this.datepickerService.selectedDate).date() +
|
|
65
|
+
' ' +
|
|
66
|
+
moment(this.datepickerService.selectedDate).format(DateFormats.display.fullMonthLabel)
|
|
67
|
+
: '';
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the min and max date range.
|
|
71
|
+
* @param {({ start: Date | string; end: Date | string })} range
|
|
72
|
+
* @memberof DatePickerHeaderComponent
|
|
73
|
+
*/
|
|
74
|
+
setRange(range) {
|
|
75
|
+
this.range = {
|
|
76
|
+
start: moment(range.start).date() +
|
|
77
|
+
' ' +
|
|
78
|
+
moment(range.start).format(DateFormats.display.fullMonthLabel),
|
|
79
|
+
end: moment(range.end).date() +
|
|
80
|
+
' ' +
|
|
81
|
+
moment(range.end).format(DateFormats.display.fullMonthLabel),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Implementation of getMonthLabel method to get the month label.
|
|
86
|
+
* @readonly
|
|
87
|
+
* @return {string}
|
|
88
|
+
* @memberof DatePickerHeaderComponent
|
|
89
|
+
*/
|
|
90
|
+
get getMonthLabel() {
|
|
91
|
+
if (this.dateAdapter?.format) {
|
|
92
|
+
return this.dateAdapter.format(this.calendar.activeDate, this.dateFormats.display.monthYearA11yLabel);
|
|
93
|
+
}
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Sets previous month in a calendar on click of previous month arrow in date picker.
|
|
98
|
+
* @param {('month' | 'year')} mode
|
|
99
|
+
* @memberof DatePickerHeaderComponent
|
|
100
|
+
*/
|
|
101
|
+
setPreviousMonth(mode) {
|
|
102
|
+
this.calendar.activeDate =
|
|
103
|
+
mode === 'month'
|
|
104
|
+
? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1)
|
|
105
|
+
: this.dateAdapter.addCalendarYears(this.calendar.activeDate, -1);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Sets next month in a calendar on click of previous month arrow in date picker.
|
|
109
|
+
* @param {('month' | 'year')} mode
|
|
110
|
+
* @memberof DatePickerHeaderComponent
|
|
111
|
+
*/
|
|
112
|
+
setNextMonth(mode) {
|
|
113
|
+
this.calendar.activeDate =
|
|
114
|
+
mode === 'month'
|
|
115
|
+
? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1)
|
|
116
|
+
: this.dateAdapter.addCalendarYears(this.calendar.activeDate, 1);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sets the calendar current view on the open of year drop down in date picker.
|
|
120
|
+
* @memberof DatePickerHeaderComponent
|
|
121
|
+
*/
|
|
122
|
+
setCalendarView() {
|
|
123
|
+
this.calendar.currentView =
|
|
124
|
+
this.calendar.currentView === 'month' ? 'multi-year' : 'month';
|
|
125
|
+
this.arrowDirection = !this.arrowDirection;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
|
|
129
|
+
* @memberof DatePickerHeaderComponent
|
|
130
|
+
*/
|
|
131
|
+
ngOnDestroy() {
|
|
132
|
+
this.destroy$.next(true);
|
|
133
|
+
this.destroy$.unsubscribe();
|
|
134
|
+
}
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatePickerHeaderComponent, deps: [{ token: i1.MatCalendar }, { token: i2.DateAdapter }, { token: MAT_DATE_FORMATS }, { token: i3.DatepickerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DatePickerHeaderComponent, isStandalone: true, selector: "ieeesa-date-picker-header", inputs: { group: "group" }, ngImport: i0, template: "<div class=\"ieeesa-datepicker-header--selected-date-container\">\r\n <p class=\"ieeesa-label-lg-bold-16 ieeesa-datepicker-header__select-date-label\">\r\n {{ datePickerInfo.datePicker.selectDateLabel }}\r\n </p>\r\n <p\r\n class=\"headline-lg-34 ieeesa-datepicker-header__selected-date\"\r\n *ngIf=\"range || isRangeSelection\"\r\n >\r\n {{ range.start }} - {{ range.end }}\r\n </p>\r\n <p\r\n class=\"headline-lg-34 ieeesa-datepicker-header__selected-date\"\r\n *ngIf=\"!isRangeSelection\"\r\n >\r\n {{ selectedDate }}\r\n </p>\r\n</div>\r\n<div class=\"ieeesa-datepicker-header--content\">\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"ieeesa-datepicker-header--content--period-button ieeesa-label-lg-16\"\r\n (click)=\"setCalendarView()\"\r\n [attr.aria-label]=\"getMonthLabel\"\r\n cdkAriaLive=\"polite\"\r\n >\r\n {{ getMonthLabel }}\r\n <mat-icon\r\n class=\"ieeesa-datepicker-header--content--period-button--arrow-icon\"\r\n *ngIf=\"!arrowDirection\"\r\n >arrow_drop_down</mat-icon\r\n >\r\n <mat-icon\r\n class=\"ieeesa-datepicker-header--content--period-button--arrow-icon\"\r\n *ngIf=\"arrowDirection\"\r\n >arrow_drop_up</mat-icon\r\n >\r\n </button>\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"ieeesa-label-lg-16 ieeesa-datepicker-header--content--arrow-left-btn\"\r\n [attr.aria-label]=\"datePickerInfo.ariaLabel.previousMonth\"\r\n cdkAriaLive=\"polite\"\r\n >\r\n <mat-icon\r\n (click)=\"setPreviousMonth('month')\"\r\n class=\"ieeesa-datepicker-header__arrow-left\"\r\n >keyboard_arrow_left</mat-icon\r\n >\r\n </button>\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"ieeesa-label-lg-16 ieeesa-datepicker-header--content--arrow-right-btn\"\r\n [attr.aria-label]=\"datePickerInfo.ariaLabel.nextMonth\"\r\n cdkAriaLive=\"polite\"\r\n >\r\n <mat-icon (click)=\"setNextMonth('month')\"> keyboard_arrow_right</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane{width:100%;min-width:312px}.ieeesa-datepicker-header--selected-date-container{padding:16px 27px 12px 24px;border-bottom:1px solid #cac4d0}.ieeesa-datepicker-header__selected-date{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#1c1b1f;letter-spacing:0}.ieeesa-datepicker-header--content{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;min-height:35px;border-top-right-radius:5px;border-top-left-radius:5px;padding:0 20px}.ieeesa-datepicker-header--content--period-button,.ieeesa-datepicker-header--content--arrow-left-btn,.ieeesa-datepicker-header--content--arrow-right-btn{margin:0;padding:0;border:unset;color:#49454f;background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe}.ieeesa-datepicker-header--content--period-button--arrow-icon,.ieeesa-datepicker-header--content--arrow-left-btn--arrow-icon,.ieeesa-datepicker-header--content--arrow-right-btn--arrow-icon{position:relative;top:7px;color:#49454f}.ieeesa-datepicker-header__arrow-left{border:unset;color:#49454f;background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatePickerHeaderComponent, decorators: [{
|
|
139
|
+
type: Component,
|
|
140
|
+
args: [{ selector: 'ieeesa-date-picker-header', standalone: true, imports: [
|
|
141
|
+
CommonModule,
|
|
142
|
+
MatDatepickerModule,
|
|
143
|
+
MatFormFieldModule,
|
|
144
|
+
MatNativeDateModule,
|
|
145
|
+
MatIconModule,
|
|
146
|
+
], template: "<div class=\"ieeesa-datepicker-header--selected-date-container\">\r\n <p class=\"ieeesa-label-lg-bold-16 ieeesa-datepicker-header__select-date-label\">\r\n {{ datePickerInfo.datePicker.selectDateLabel }}\r\n </p>\r\n <p\r\n class=\"headline-lg-34 ieeesa-datepicker-header__selected-date\"\r\n *ngIf=\"range || isRangeSelection\"\r\n >\r\n {{ range.start }} - {{ range.end }}\r\n </p>\r\n <p\r\n class=\"headline-lg-34 ieeesa-datepicker-header__selected-date\"\r\n *ngIf=\"!isRangeSelection\"\r\n >\r\n {{ selectedDate }}\r\n </p>\r\n</div>\r\n<div class=\"ieeesa-datepicker-header--content\">\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"ieeesa-datepicker-header--content--period-button ieeesa-label-lg-16\"\r\n (click)=\"setCalendarView()\"\r\n [attr.aria-label]=\"getMonthLabel\"\r\n cdkAriaLive=\"polite\"\r\n >\r\n {{ getMonthLabel }}\r\n <mat-icon\r\n class=\"ieeesa-datepicker-header--content--period-button--arrow-icon\"\r\n *ngIf=\"!arrowDirection\"\r\n >arrow_drop_down</mat-icon\r\n >\r\n <mat-icon\r\n class=\"ieeesa-datepicker-header--content--period-button--arrow-icon\"\r\n *ngIf=\"arrowDirection\"\r\n >arrow_drop_up</mat-icon\r\n >\r\n </button>\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"ieeesa-label-lg-16 ieeesa-datepicker-header--content--arrow-left-btn\"\r\n [attr.aria-label]=\"datePickerInfo.ariaLabel.previousMonth\"\r\n cdkAriaLive=\"polite\"\r\n >\r\n <mat-icon\r\n (click)=\"setPreviousMonth('month')\"\r\n class=\"ieeesa-datepicker-header__arrow-left\"\r\n >keyboard_arrow_left</mat-icon\r\n >\r\n </button>\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"ieeesa-label-lg-16 ieeesa-datepicker-header--content--arrow-right-btn\"\r\n [attr.aria-label]=\"datePickerInfo.ariaLabel.nextMonth\"\r\n cdkAriaLive=\"polite\"\r\n >\r\n <mat-icon (click)=\"setNextMonth('month')\"> keyboard_arrow_right</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane{width:100%;min-width:312px}.ieeesa-datepicker-header--selected-date-container{padding:16px 27px 12px 24px;border-bottom:1px solid #cac4d0}.ieeesa-datepicker-header__selected-date{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#1c1b1f;letter-spacing:0}.ieeesa-datepicker-header--content{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;min-height:35px;border-top-right-radius:5px;border-top-left-radius:5px;padding:0 20px}.ieeesa-datepicker-header--content--period-button,.ieeesa-datepicker-header--content--arrow-left-btn,.ieeesa-datepicker-header--content--arrow-right-btn{margin:0;padding:0;border:unset;color:#49454f;background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe}.ieeesa-datepicker-header--content--period-button--arrow-icon,.ieeesa-datepicker-header--content--arrow-left-btn--arrow-icon,.ieeesa-datepicker-header--content--arrow-right-btn--arrow-icon{position:relative;top:7px;color:#49454f}.ieeesa-datepicker-header__arrow-left{border:unset;color:#49454f;background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe}\n"] }]
|
|
147
|
+
}], ctorParameters: function () { return [{ type: i1.MatCalendar }, { type: i2.DateAdapter }, { type: undefined, decorators: [{
|
|
148
|
+
type: Inject,
|
|
149
|
+
args: [MAT_DATE_FORMATS]
|
|
150
|
+
}] }, { type: i3.DatepickerService }]; }, propDecorators: { group: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1waWNrZXItaGVhZGVyL2RhdGUtcGlja2VyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyLWhlYWRlci9kYXRlLXBpY2tlci1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUVMLGdCQUFnQixFQUVoQixtQkFBbUIsR0FDcEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssY0FBYyxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBQ3RFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUV2Qjs7Ozs7O0dBTUc7QUFjSCxNQUFNLE9BQU8seUJBQXlCO0lBVXBDO0lBQ0UsMENBQTBDO0lBQ25DLFFBQTJCO0lBQ2xD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QkFBbUIsOEJBQ25CLGtCQUFrQiw4QkFDbEIsbUJBQW1CLDhCQUNuQixhQUFhOzsyRkFLSix5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2Q7OzBCQW9CRSxNQUFNOzJCQUFDLGdCQUFnQjs0RUFkakIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge1xyXG4gIERhdGVBZGFwdGVyLFxyXG4gIE1BVF9EQVRFX0ZPUk1BVFMsXHJcbiAgTWF0RGF0ZUZvcm1hdHMsXHJcbiAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBEYXRlcGlja2VyU2VydmljZSB9IGZyb20gJ0BwcmVzZW50YXRpb24vc2VydmljZXMvZGF0ZXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICdAcHJlc2VudGF0aW9uL2RhdGUtZm9ybWF0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBkYXRlUGlja2VySW5mbyBmcm9tICdAcHJlc2VudGF0aW9uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgaW1wbGVtZW50YXRpb24gb2YgZGF0ZSBwaWNrZXIgY3VzdG9tIGhlYWRlciBhbmQgYmVpbmcgdXNlZCBpbiBkYXRlLXBpY2tlciBjb21wb25lbnQuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWRhdGUtcGlja2VyLWhlYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xyXG4gIGFycm93RGlyZWN0aW9uID0gZmFsc2U7XHJcbiAgcmFuZ2UhOiB7IHN0YXJ0OiBzdHJpbmc7IGVuZDogc3RyaW5nIH07XHJcbiAgaXNSYW5nZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0ZSE6IHN0cmluZztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRhdGVQaWNrZXJJbmZvOiBhbnkgPSBkYXRlUGlja2VySW5mbztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBjYWxlbmRhcjogTWF0Q2FsZW5kYXI8RGF0ZT4sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHVibGljIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBkYXRlcGlja2VyU2VydmljZTogRGF0ZXBpY2tlclNlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gaW5pdGlhbGl6ZSBjb21wb25lbnRzIGluc3RhbmNlIHByb3BlcnRpZXMuXHJcbiAgICogQG1lbWJlcm9mIERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNSYW5nZVNlbGVjdGlvbiA9IHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuZ2V0Q2FsZW5kYXJUeXBlKCk7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gdGhpcy5kYXRlcGlja2VyU2VydmljZS5nZXRTZWxlY3RlZFJhbmdlKCk7XHJcbiAgICBpZiAoc2VsZWN0ZWRSYW5nZSkge1xyXG4gICAgICB0aGlzLnNldFJhbmdlKHNlbGVjdGVkUmFuZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlcGlja2VyU2VydmljZS5yYW5nZSRcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmFuZ2UpID0+IHtcclxuICAgICAgICB0aGlzLnNldFJhbmdlKHJhbmdlKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uuc2VsZWN0ZWREYXRlXHJcbiAgICAgID8gbW9tZW50KHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uuc2VsZWN0ZWREYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5LmRheXNGb3JtYXRcclxuICAgICAgICApICtcclxuICAgICAgICAnLCAnICtcclxuICAgICAgICBtb21lbnQodGhpcy5kYXRlcGlja2VyU2VydmljZS5zZWxlY3RlZERhdGUpLmRhdGUoKSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICBtb21lbnQodGhpcy5kYXRlcGlja2VyU2VydmljZS5zZWxlY3RlZERhdGUpLmZvcm1hdChcclxuICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXkuZnVsbE1vbnRoTGFiZWxcclxuICAgICAgICApXHJcbiAgICAgIDogJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBtaW4gYW5kIG1heCBkYXRlIHJhbmdlLlxyXG4gICAqIEBwYXJhbSB7KHsgc3RhcnQ6IERhdGUgfCBzdHJpbmc7IGVuZDogRGF0ZSB8IHN0cmluZyB9KX0gcmFuZ2VcclxuICAgKiBAbWVtYmVyb2YgRGF0ZVBpY2tlckhlYWRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFJhbmdlKHJhbmdlOiB7IHN0YXJ0OiBEYXRlIHwgc3RyaW5nOyBlbmQ6IERhdGUgfCBzdHJpbmcgfSk6IHZvaWQge1xyXG4gICAgdGhpcy5yYW5nZSA9IHtcclxuICAgICAgc3RhcnQ6XHJcbiAgICAgICAgbW9tZW50KHJhbmdlLnN0YXJ0KS5kYXRlKCkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgbW9tZW50KHJhbmdlLnN0YXJ0KS5mb3JtYXQoRGF0ZUZvcm1hdHMuZGlzcGxheS5mdWxsTW9udGhMYWJlbCksXHJcbiAgICAgIGVuZDpcclxuICAgICAgICBtb21lbnQocmFuZ2UuZW5kKS5kYXRlKCkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgbW9tZW50KHJhbmdlLmVuZCkuZm9ybWF0KERhdGVGb3JtYXRzLmRpc3BsYXkuZnVsbE1vbnRoTGFiZWwpLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIGdldE1vbnRoTGFiZWwgbWV0aG9kIHRvIGdldCB0aGUgbW9udGggbGFiZWwuXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBEYXRlUGlja2VySGVhZGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IGdldE1vbnRoTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmRhdGVBZGFwdGVyPy5mb3JtYXQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSxcclxuICAgICAgICB0aGlzLmRhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyQTExeUxhYmVsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHByZXZpb3VzIG1vbnRoIGluIGEgY2FsZW5kYXIgb24gY2xpY2sgb2YgcHJldmlvdXMgbW9udGggYXJyb3cgaW4gZGF0ZSBwaWNrZXIuXHJcbiAgICogQHBhcmFtIHsoJ21vbnRoJyB8ICd5ZWFyJyl9IG1vZGVcclxuICAgKiBAbWVtYmVyb2YgRGF0ZVBpY2tlckhlYWRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFByZXZpb3VzTW9udGgobW9kZTogJ21vbnRoJyB8ICd5ZWFyJyk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlID1cclxuICAgICAgbW9kZSA9PT0gJ21vbnRoJ1xyXG4gICAgICAgID8gdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsIC0xKVxyXG4gICAgICAgIDogdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhclllYXJzKHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSwgLTEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBuZXh0IG1vbnRoIGluIGEgY2FsZW5kYXIgb24gY2xpY2sgb2YgcHJldmlvdXMgbW9udGggYXJyb3cgaW4gZGF0ZSBwaWNrZXIuXHJcbiAgICogQHBhcmFtIHsoJ21vbnRoJyB8ICd5ZWFyJyl9IG1vZGVcclxuICAgKiBAbWVtYmVyb2YgRGF0ZVBpY2tlckhlYWRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldE5leHRNb250aChtb2RlOiAnbW9udGgnIHwgJ3llYXInKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUgPVxyXG4gICAgICBtb2RlID09PSAnbW9udGgnXHJcbiAgICAgICAgPyB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSwgMSlcclxuICAgICAgICA6IHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsIDEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY2FsZW5kYXIgY3VycmVudCB2aWV3IG9uIHRoZSBvcGVuIG9mIHllYXIgZHJvcCBkb3duIGluIGRhdGUgcGlja2VyLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRlUGlja2VySGVhZGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2V0Q2FsZW5kYXJWaWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhci5jdXJyZW50VmlldyA9XHJcbiAgICAgIHRoaXMuY2FsZW5kYXIuY3VycmVudFZpZXcgPT09ICdtb250aCcgPyAnbXVsdGkteWVhcicgOiAnbW9udGgnO1xyXG4gICAgdGhpcy5hcnJvd0RpcmVjdGlvbiA9ICF0aGlzLmFycm93RGlyZWN0aW9uO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uRGVzdHJveSBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIG9wZW4gb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRlUGlja2VySGVhZGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZGF0ZXBpY2tlci1oZWFkZXItLXNlbGVjdGVkLWRhdGUtY29udGFpbmVyXCI+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2EtbGFiZWwtbGctYm9sZC0xNiBpZWVlc2EtZGF0ZXBpY2tlci1oZWFkZXJfX3NlbGVjdC1kYXRlLWxhYmVsXCI+XHJcbiAgICB7eyBkYXRlUGlja2VySW5mby5kYXRlUGlja2VyLnNlbGVjdERhdGVMYWJlbCB9fVxyXG4gIDwvcD5cclxuICA8cFxyXG4gICAgY2xhc3M9XCJoZWFkbGluZS1sZy0zNCBpZWVlc2EtZGF0ZXBpY2tlci1oZWFkZXJfX3NlbGVjdGVkLWRhdGVcIlxyXG4gICAgKm5nSWY9XCJyYW5nZSB8fCBpc1JhbmdlU2VsZWN0aW9uXCJcclxuICA+XHJcbiAgICB7eyByYW5nZS5zdGFydCB9fSAtIHt7IHJhbmdlLmVuZCB9fVxyXG4gIDwvcD5cclxuICA8cFxyXG4gICAgY2xhc3M9XCJoZWFkbGluZS1sZy0zNCBpZWVlc2EtZGF0ZXBpY2tlci1oZWFkZXJfX3NlbGVjdGVkLWRhdGVcIlxyXG4gICAgKm5nSWY9XCIhaXNSYW5nZVNlbGVjdGlvblwiXHJcbiAgPlxyXG4gICAge3sgc2VsZWN0ZWREYXRlIH19XHJcbiAgPC9wPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImllZWVzYS1kYXRlcGlja2VyLWhlYWRlci0tY29udGVudFwiPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1idXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZGF0ZXBpY2tlci1oZWFkZXItLWNvbnRlbnQtLXBlcmlvZC1idXR0b24gaWVlZXNhLWxhYmVsLWxnLTE2XCJcclxuICAgIChjbGljayk9XCJzZXRDYWxlbmRhclZpZXcoKVwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldE1vbnRoTGFiZWxcIlxyXG4gICAgY2RrQXJpYUxpdmU9XCJwb2xpdGVcIlxyXG4gID5cclxuICAgIHt7IGdldE1vbnRoTGFiZWwgfX1cclxuICAgIDxtYXQtaWNvblxyXG4gICAgICBjbGFzcz1cImllZWVzYS1kYXRlcGlja2VyLWhlYWRlci0tY29udGVudC0tcGVyaW9kLWJ1dHRvbi0tYXJyb3ctaWNvblwiXHJcbiAgICAgICpuZ0lmPVwiIWFycm93RGlyZWN0aW9uXCJcclxuICAgICAgPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb25cclxuICAgID5cclxuICAgIDxtYXQtaWNvblxyXG4gICAgICBjbGFzcz1cImllZWVzYS1kYXRlcGlja2VyLWhlYWRlci0tY29udGVudC0tcGVyaW9kLWJ1dHRvbi0tYXJyb3ctaWNvblwiXHJcbiAgICAgICpuZ0lmPVwiYXJyb3dEaXJlY3Rpb25cIlxyXG4gICAgICA+YXJyb3dfZHJvcF91cDwvbWF0LWljb25cclxuICAgID5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtYnV0dG9uXHJcbiAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLWxhYmVsLWxnLTE2IGllZWVzYS1kYXRlcGlja2VyLWhlYWRlci0tY29udGVudC0tYXJyb3ctbGVmdC1idG5cIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkYXRlUGlja2VySW5mby5hcmlhTGFiZWwucHJldmlvdXNNb250aFwiXHJcbiAgICBjZGtBcmlhTGl2ZT1cInBvbGl0ZVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uXHJcbiAgICAgIChjbGljayk9XCJzZXRQcmV2aW91c01vbnRoKCdtb250aCcpXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZGF0ZXBpY2tlci1oZWFkZXJfX2Fycm93LWxlZnRcIlxyXG4gICAgICA+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb25cclxuICAgID5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtYnV0dG9uXHJcbiAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLWxhYmVsLWxnLTE2IGllZWVzYS1kYXRlcGlja2VyLWhlYWRlci0tY29udGVudC0tYXJyb3ctcmlnaHQtYnRuXCJcclxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGF0ZVBpY2tlckluZm8uYXJpYUxhYmVsLm5leHRNb250aFwiXHJcbiAgICBjZGtBcmlhTGl2ZT1cInBvbGl0ZVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIChjbGljayk9XCJzZXROZXh0TW9udGgoJ21vbnRoJylcIj4ga2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChildren, } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule, } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { DynamicFormFieldDirective } from '@presentation/directives/dynamic-form-field/dynamic-form-field.directive';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@angular/material/button";
|
|
10
|
+
/**
|
|
11
|
+
* Creates a reactive form dynamically based on the passed form field configuration and handles the form events.
|
|
12
|
+
* @export
|
|
13
|
+
* @class DynamicFormComponent
|
|
14
|
+
* @implements {OnInit}
|
|
15
|
+
* @implements {AfterContentInit}
|
|
16
|
+
*/
|
|
17
|
+
export class DynamicFormComponent {
|
|
18
|
+
/**
|
|
19
|
+
* FormGroups passed an an input and which contains configuration information of every form fields.
|
|
20
|
+
* @memberof DynamicFormComponent
|
|
21
|
+
*/
|
|
22
|
+
set formGroups(value) {
|
|
23
|
+
this._formGroups = value;
|
|
24
|
+
this.createFormGroupArray();
|
|
25
|
+
}
|
|
26
|
+
get formGroups() {
|
|
27
|
+
return this._formGroups;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Sets submit response on form submit
|
|
31
|
+
* @memberof DynamicFormComponent
|
|
32
|
+
*/
|
|
33
|
+
set submitResponse(value) {
|
|
34
|
+
this._submitResponse = value;
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
get submitResponse() {
|
|
38
|
+
return this._submitResponse;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Sets search response on form search event
|
|
42
|
+
* @memberof DynamicFormComponent
|
|
43
|
+
*/
|
|
44
|
+
set searchResponse(value) {
|
|
45
|
+
this._searchResponse = value;
|
|
46
|
+
}
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
get searchResponse() {
|
|
49
|
+
return this._searchResponse;
|
|
50
|
+
}
|
|
51
|
+
// eslint-disable-next-line no-unused-vars, no-empty-function
|
|
52
|
+
constructor(fb) {
|
|
53
|
+
this.fb = fb;
|
|
54
|
+
this.isSubmitButtonDisabled = false;
|
|
55
|
+
this.isLeftButtonDisabled = false;
|
|
56
|
+
this.isLeftButtonNeeded = false;
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
this.formSubmit = new EventEmitter();
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
+
this.formChange = new EventEmitter();
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
this.formInput = new EventEmitter();
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
+
this.formLeftButtonClicked = new EventEmitter();
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
+
this.formSearchApply = new EventEmitter();
|
|
67
|
+
this.formGroupsReference = new EventEmitter();
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
+
this.dropdownChange = new EventEmitter();
|
|
70
|
+
this.formDateSelected = new EventEmitter();
|
|
71
|
+
this.formSelectSearch = new EventEmitter();
|
|
72
|
+
this.formControlChange = new EventEmitter();
|
|
73
|
+
this.formAutoCompleteSearch = new EventEmitter();
|
|
74
|
+
this.autoCompleteOptionSelected = new EventEmitter();
|
|
75
|
+
this.formAfterContentInit = new EventEmitter();
|
|
76
|
+
this.formSelectedDateRange = new EventEmitter();
|
|
77
|
+
this.formGroupArray = [];
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
79
|
+
this.formControlArray = [];
|
|
80
|
+
this.legendsArray = [];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Implementation of ngOnInit lifecycle hook method to create form group
|
|
84
|
+
* @memberof DynamicFormComponent
|
|
85
|
+
*/
|
|
86
|
+
ngOnInit() {
|
|
87
|
+
this.createFormGroupArray();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Emit generated form reference on ngAfterContentInit lifecycle hook.
|
|
91
|
+
* @memberof DynamicFormComponent
|
|
92
|
+
*/
|
|
93
|
+
ngAfterContentInit() {
|
|
94
|
+
this.formAfterContentInit.emit(this.formGroupArray);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Creates form group on the basis of formGroups configuration input
|
|
98
|
+
* @return {void}
|
|
99
|
+
* @memberof DynamicFormComponent
|
|
100
|
+
*/
|
|
101
|
+
createFormGroupArray() {
|
|
102
|
+
this.formGroupArray = [];
|
|
103
|
+
this.formControlArray = [];
|
|
104
|
+
this.legendsArray = [];
|
|
105
|
+
if (!this.formGroups) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.formGroups?.formGroup?.forEach((element) => {
|
|
109
|
+
const controls = element.controls.filter((control) => control.type !== 'button');
|
|
110
|
+
this.formGroupArray.push(this.createGroup(controls));
|
|
111
|
+
this.formControlArray.push(controls);
|
|
112
|
+
this.legendsArray.push(element.legend);
|
|
113
|
+
});
|
|
114
|
+
this.form = this.fb.group({
|
|
115
|
+
children: this.formGroupArray,
|
|
116
|
+
});
|
|
117
|
+
this.formGroupsReference.emit(this.formGroupArray);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Creates form group using form builder
|
|
121
|
+
* @param {any[]} controls
|
|
122
|
+
* @return {FormGroup}
|
|
123
|
+
* @memberof DynamicFormComponent
|
|
124
|
+
*/
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
+
createGroup(controls) {
|
|
127
|
+
const group = this.fb.group({});
|
|
128
|
+
controls.forEach((control) => group.addControl(control.controlName, this.createControl(control)));
|
|
129
|
+
return group;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Creates form control based on form field configuration
|
|
133
|
+
* @param {FieldConfig} control
|
|
134
|
+
* @return {FormControl}
|
|
135
|
+
* @memberof DynamicFormComponent
|
|
136
|
+
*/
|
|
137
|
+
createControl(control) {
|
|
138
|
+
const { disabled, validation, value } = control;
|
|
139
|
+
return this.fb.control({ disabled, value }, validation);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Emits formGroupArray
|
|
143
|
+
* @memberof DynamicFormComponent
|
|
144
|
+
*/
|
|
145
|
+
onFormSubmit() {
|
|
146
|
+
this.formSubmit.emit(this.formGroupArray);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Emits formGroupArray
|
|
150
|
+
* @memberof DynamicFormComponent
|
|
151
|
+
*/
|
|
152
|
+
onLeftButtonClicked() {
|
|
153
|
+
this.formLeftButtonClicked.emit(this.formGroupArray);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Emits formGroupArray
|
|
157
|
+
* @memberof DynamicFormComponent
|
|
158
|
+
*/
|
|
159
|
+
onFormChange() {
|
|
160
|
+
this.formChange.emit(this.formGroupArray);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Handles form field select type drop down selection event
|
|
164
|
+
* @memberof DynamicFormComponent
|
|
165
|
+
*/
|
|
166
|
+
onDropdownChange() {
|
|
167
|
+
this.dropdownChange.emit(this.formGroupArray);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Handles form input change event
|
|
171
|
+
* @param {Event} event
|
|
172
|
+
* @memberof DynamicFormComponent
|
|
173
|
+
*/
|
|
174
|
+
formInputChange(event) {
|
|
175
|
+
this.formControlChange.emit(event);
|
|
176
|
+
this.formInput.emit(this.formGroupArray);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Handles form field search apply event
|
|
180
|
+
* @param {Event} event
|
|
181
|
+
* @memberof DynamicFormComponent
|
|
182
|
+
*/
|
|
183
|
+
onSearchApply(event) {
|
|
184
|
+
this.formSearchApply.emit(event);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Handles search event inside form field select
|
|
188
|
+
* @param {Event} event
|
|
189
|
+
* @memberof DynamicFormComponent
|
|
190
|
+
*/
|
|
191
|
+
onSelectSearch(event) {
|
|
192
|
+
this.formSelectSearch.emit(event);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Takes the index and the formGroup as arguments and needs to return the unique identifier for this formGroup.
|
|
196
|
+
* @param {number} index
|
|
197
|
+
* @param {FormGroup} formGroup
|
|
198
|
+
* @memberof DynamicFormComponent
|
|
199
|
+
*/
|
|
200
|
+
trackByFormGroup(index, formGroup) {
|
|
201
|
+
return formGroup.controls;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Handles form date selection event
|
|
205
|
+
* @param {string[]} event
|
|
206
|
+
* @memberof DynamicFormComponent
|
|
207
|
+
*/
|
|
208
|
+
onDateSelected(event) {
|
|
209
|
+
this.formDateSelected.emit(event);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Emits selected form date range
|
|
213
|
+
* @param {{startDate: string, endDate: string}} dateRange
|
|
214
|
+
* @memberof DynamicFormComponent
|
|
215
|
+
*/
|
|
216
|
+
onSelectedDateRange(dateRange) {
|
|
217
|
+
this.formSelectedDateRange.emit(dateRange);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Handles form field auto complete search event
|
|
221
|
+
* @param {Event} event
|
|
222
|
+
* @memberof DynamicFormComponent
|
|
223
|
+
*/
|
|
224
|
+
onAutoCompleteSearch(event) {
|
|
225
|
+
this.formAutoCompleteSearch.emit(event);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Handles form field auto complete option selection event
|
|
229
|
+
* @memberof DynamicFormComponent
|
|
230
|
+
*/
|
|
231
|
+
onAutoCompleteOptionSelected() {
|
|
232
|
+
this.autoCompleteOptionSelected.emit(this.formGroupArray);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Converts passed control name in hyphenated css class name
|
|
236
|
+
* @param {string} className
|
|
237
|
+
* @return {string}
|
|
238
|
+
* @memberof DynamicFormComponent
|
|
239
|
+
*/
|
|
240
|
+
getRowClassName(className) {
|
|
241
|
+
return className
|
|
242
|
+
.replace(/([A-Z])/g, ' $1')
|
|
243
|
+
.toLowerCase()
|
|
244
|
+
.split(' ')
|
|
245
|
+
.join('-');
|
|
246
|
+
}
|
|
247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
248
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicFormComponent, isStandalone: true, selector: "ieeesa-dynamic-form", inputs: { formGroups: "formGroups", submitResponse: "submitResponse", searchResponse: "searchResponse", colWidth: "colWidth", isLegendVisible: "isLegendVisible", rightButtonLabel: "rightButtonLabel", leftButtonLabel: "leftButtonLabel", isSubmitButtonDisabled: "isSubmitButtonDisabled", isLeftButtonDisabled: "isLeftButtonDisabled", isLeftButtonNeeded: "isLeftButtonNeeded" }, outputs: { formSubmit: "formSubmit", formChange: "formChange", formInput: "formInput", formLeftButtonClicked: "formLeftButtonClicked", formSearchApply: "formSearchApply", formGroupsReference: "formGroupsReference", dropdownChange: "dropdownChange", formDateSelected: "formDateSelected", formSelectSearch: "formSelectSearch", formControlChange: "formControlChange", formAutoCompleteSearch: "formAutoCompleteSearch", autoCompleteOptionSelected: "autoCompleteOptionSelected", formAfterContentInit: "formAfterContentInit", formSelectedDateRange: "formSelectedDateRange" }, viewQueries: [{ propertyName: "formFields", predicate: DynamicFormFieldDirective, descendants: true }], exportAs: ["dynamicForm"], ngImport: i0, template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset p-2\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend class=\"float-none w-auto p-2\" *ngIf=\"isLegendVisible\">\r\n {{ legendsArray[i] }}:\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteOptionSelected)=\"onAutoCompleteOptionSelected()\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <div class=\"row\">\r\n <div class=\"col-12 ieeesa-dynamic-form__actions\">\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-secondary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane{width:100%;min-width:312px}.ieeesa-dynamic-form__actions{display:flex;flex-direction:row-reverse;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: DynamicFormFieldDirective, selector: "[ieeesaDynamicFormField]", inputs: ["config", "group", "submitResponse", "searchResponse"], outputs: ["formSearchApply", "formDropdownSelected", "formDateSelected", "formSelectedDateRange", "formSelectSearch", "formAutoCompleteSearch", "autoCompleteOptionSelected"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); }
|
|
249
|
+
}
|
|
250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormComponent, decorators: [{
|
|
251
|
+
type: Component,
|
|
252
|
+
args: [{ exportAs: 'dynamicForm', selector: 'ieeesa-dynamic-form', standalone: true, imports: [
|
|
253
|
+
CommonModule,
|
|
254
|
+
ReactiveFormsModule,
|
|
255
|
+
DynamicFormFieldDirective,
|
|
256
|
+
MatButtonModule,
|
|
257
|
+
], template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset p-2\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend class=\"float-none w-auto p-2\" *ngIf=\"isLegendVisible\">\r\n {{ legendsArray[i] }}:\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteOptionSelected)=\"onAutoCompleteOptionSelected()\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <div class=\"row\">\r\n <div class=\"col-12 ieeesa-dynamic-form__actions\">\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-secondary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane{width:100%;min-width:312px}.ieeesa-dynamic-form__actions{display:flex;flex-direction:row-reverse;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"] }]
|
|
258
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { formFields: [{
|
|
259
|
+
type: ViewChildren,
|
|
260
|
+
args: [DynamicFormFieldDirective]
|
|
261
|
+
}], formGroups: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], submitResponse: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], searchResponse: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], colWidth: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], isLegendVisible: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], rightButtonLabel: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], leftButtonLabel: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], isSubmitButtonDisabled: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], isLeftButtonDisabled: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], isLeftButtonNeeded: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], formSubmit: [{
|
|
282
|
+
type: Output
|
|
283
|
+
}], formChange: [{
|
|
284
|
+
type: Output
|
|
285
|
+
}], formInput: [{
|
|
286
|
+
type: Output
|
|
287
|
+
}], formLeftButtonClicked: [{
|
|
288
|
+
type: Output
|
|
289
|
+
}], formSearchApply: [{
|
|
290
|
+
type: Output
|
|
291
|
+
}], formGroupsReference: [{
|
|
292
|
+
type: Output
|
|
293
|
+
}], dropdownChange: [{
|
|
294
|
+
type: Output
|
|
295
|
+
}], formDateSelected: [{
|
|
296
|
+
type: Output
|
|
297
|
+
}], formSelectSearch: [{
|
|
298
|
+
type: Output
|
|
299
|
+
}], formControlChange: [{
|
|
300
|
+
type: Output
|
|
301
|
+
}], formAutoCompleteSearch: [{
|
|
302
|
+
type: Output
|
|
303
|
+
}], autoCompleteOptionSelected: [{
|
|
304
|
+
type: Output
|
|
305
|
+
}], formAfterContentInit: [{
|
|
306
|
+
type: Output
|
|
307
|
+
}], formSelectedDateRange: [{
|
|
308
|
+
type: Output
|
|
309
|
+
}] } });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7Ozs7O0FBRXJIOzs7Ozs7R0FNRztBQWNILE1BQU0sT0FBTyxvQkFBb0I7SUFJL0I7OztPQUdHO0lBQ0gsSUFDSSxVQUFVLENBQUMsS0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsSUFFSSxjQUFjLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsOERBQThEO0lBQzlELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlEOzs7T0FHRztJQUNILElBRUksY0FBYyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELDhEQUE4RDtJQUM5RCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUF5Q0QsNkRBQTZEO0lBQzdELFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBckMxQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNwQyw4REFBOEQ7UUFDcEQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2xFLDhEQUE4RDtRQUNwRCxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbEUsOERBQThEO1FBQ3BELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqRSw4REFBOEQ7UUFDcEQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDN0UsOERBQThEO1FBQ3BELG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDL0Qsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUNoRSw4REFBOEQ7UUFDcEQsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM5RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUd6QyxDQUFDO1FBQ0ssc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM5QywyQkFBc0IsR0FDOUIsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNsQiwrQkFBMEIsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQzdELHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDdkQsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBRzlDLENBQUM7UUFFTCxtQkFBYyxHQUFnQixFQUFFLENBQUM7UUFDakMsOERBQThEO1FBQzlELHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFhLEVBQUUsQ0FBQztJQUdVLENBQUM7SUFFdkM7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUN2QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsOERBQThEO0lBQzlELFdBQVcsQ0FBQyxRQUFlO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FDeEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDbkUsQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLE9BQW9CO1FBQ2hDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsS0FBa0Q7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsU0FBb0I7UUFDbEQsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLFNBQWlEO1FBQ25FLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILDRCQUE0QjtRQUMxQixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsU0FBaUI7UUFDL0IsT0FBTyxTQUFTO2FBQ2IsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7YUFDMUIsV0FBVyxFQUFFO2FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7OEdBcFJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtoQ0FDakIseUJBQXlCLDJFQzVDekMsazRFQW9FQSwrcUtEakNJLFlBQVksNlZBQ1osbUJBQW1CLHFiQUNuQix5QkFBeUIsb1RBQ3pCLGVBQWU7OzJGQUtOLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDRSxhQUFhLFlBQ2IscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixlQUFlO3FCQUNoQjtrR0FNRCxVQUFVO3NCQURULFlBQVk7dUJBQUMseUJBQXlCO2dCQVFuQyxVQUFVO3NCQURiLEtBQUs7Z0JBaUJGLGNBQWM7c0JBRmpCLEtBQUs7Z0JBa0JGLGNBQWM7c0JBRmpCLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBSUcsaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFFRywwQkFBMEI7c0JBQW5DLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1Nb2RlbCB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1HcmlkIH0gZnJvbSAnQHByZXNlbnRhdGlvbi9tb2RlbHMvZm9ybS1ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJ0BwcmVzZW50YXRpb24vZGlyZWN0aXZlcy9keW5hbWljLWZvcm0tZmllbGQvZHluYW1pYy1mb3JtLWZpZWxkLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHJlYWN0aXZlIGZvcm0gZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIHBhc3NlZCBmb3JtIGZpZWxkIGNvbmZpZ3VyYXRpb24gYW5kIGhhbmRsZXMgdGhlIGZvcm0gZXZlbnRzLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7QWZ0ZXJDb250ZW50SW5pdH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnZHluYW1pY0Zvcm0nLFxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWR5bmFtaWMtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSlcclxuICBmb3JtRmllbGRzITogUXVlcnlMaXN0PER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmU+O1xyXG4gIHByaXZhdGUgX2Zvcm1Hcm91cHMhOiBGb3JtTW9kZWw7XHJcbiAgLyoqXHJcbiAgICogRm9ybUdyb3VwcyBwYXNzZWQgYW4gYW4gaW5wdXQgYW5kIHdoaWNoIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgZXZlcnkgZm9ybSBmaWVsZHMuXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZm9ybUdyb3Vwcyh2YWx1ZTogRm9ybU1vZGVsKSB7XHJcbiAgICB0aGlzLl9mb3JtR3JvdXBzID0gdmFsdWU7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG4gIGdldCBmb3JtR3JvdXBzKCk6IEZvcm1Nb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwcztcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBfc3VibWl0UmVzcG9uc2UhOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogU2V0cyBzdWJtaXQgcmVzcG9uc2Ugb24gZm9ybSBzdWJtaXRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2V0IHN1Ym1pdFJlc3BvbnNlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3N1Ym1pdFJlc3BvbnNlID0gdmFsdWU7XHJcbiAgfVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0IHN1Ym1pdFJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWl0UmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3NlYXJjaFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc2VhcmNoIHJlc3BvbnNlIG9uIGZvcm0gc2VhcmNoIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzZWFyY2hSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zZWFyY2hSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzZWFyY2hSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFJlc3BvbnNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb2xXaWR0aCE6IEZvcm1HcmlkO1xyXG4gIEBJbnB1dCgpIGlzTGVnZW5kVmlzaWJsZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmlnaHRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsZWZ0QnV0dG9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMZWZ0QnV0dG9uTmVlZGVkID0gZmFsc2U7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1JbnB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtTGVmdEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVNlYXJjaEFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Hcm91cHNSZWZlcmVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGRyb3Bkb3duQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1EYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNlbGVjdFNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VhcmNoRXZlbnQ6IEV2ZW50O1xyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ29udHJvbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BdXRvQ29tcGxldGVTZWFyY2g6IEV2ZW50RW1pdHRlcjxFdmVudD4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQWZ0ZXJDb250ZW50SW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TZWxlY3RlZERhdGVSYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICBlbmREYXRlOiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIGZvcm1Hcm91cEFycmF5OiBGb3JtR3JvdXBbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZm9ybUNvbnRyb2xBcnJheTogYW55W10gPSBbXTtcclxuICBsZWdlbmRzQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIGNyZWF0ZSBmb3JtIGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGdlbmVyYXRlZCBmb3JtIHJlZmVyZW5jZSBvbiBuZ0FmdGVyQ29udGVudEluaXQgbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQWZ0ZXJDb250ZW50SW5pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIG9uIHRoZSBiYXNpcyBvZiBmb3JtR3JvdXBzIGNvbmZpZ3VyYXRpb24gaW5wdXRcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Hcm91cEFycmF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXBBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbEFycmF5ID0gW107XHJcbiAgICB0aGlzLmxlZ2VuZHNBcnJheSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtR3JvdXBzPy5mb3JtR3JvdXA/LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBlbGVtZW50LmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoY29udHJvbCkgPT4gY29udHJvbC50eXBlICE9PSAnYnV0dG9uJ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cEFycmF5LnB1c2godGhpcy5jcmVhdGVHcm91cChjb250cm9scykpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkucHVzaChjb250cm9scyk7XHJcbiAgICAgIHRoaXMubGVnZW5kc0FycmF5LnB1c2goZWxlbWVudC5sZWdlbmQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY2hpbGRyZW46IHRoaXMuZm9ybUdyb3VwQXJyYXksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cHNSZWZlcmVuY2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIHVzaW5nIGZvcm0gYnVpbGRlclxyXG4gICAqIEBwYXJhbSB7YW55W119IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUdyb3VwfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXAoY29udHJvbHM6IGFueVtdKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKChjb250cm9sOiBGaWVsZENvbmZpZykgPT5cclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbChjb250cm9sLmNvbnRyb2xOYW1lLCB0aGlzLmNyZWF0ZUNvbnRyb2woY29udHJvbCkpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2wgYmFzZWQgb24gZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbFxyXG4gICAqIEByZXR1cm4ge0Zvcm1Db250cm9sfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUNvbnRyb2woY29udHJvbDogRmllbGRDb25maWcpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCB7IGRpc2FibGVkLCB2YWxpZGF0aW9uLCB2YWx1ZSB9ID0gY29udHJvbDtcclxuICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2woeyBkaXNhYmxlZCwgdmFsdWUgfSwgdmFsaWRhdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkxlZnRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTGVmdEJ1dHRvbkNsaWNrZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgc2VsZWN0IHR5cGUgZHJvcCBkb3duIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gaW5wdXQgY2hhbmdlIGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBmb3JtSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5mb3JtSW5wdXQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWFyY2ggYXBwbHkgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoQXBwbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TZWFyY2hBcHBseS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgc2VhcmNoIGV2ZW50IGluc2lkZSBmb3JtIGZpZWxkIHNlbGVjdFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RTZWFyY2goZXZlbnQ6IHsgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdFNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGZvcm1Hcm91cCBhcyBhcmd1bWVudHMgYW5kIG5lZWRzIHRvIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgZm9ybUdyb3VwLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwfSBmb3JtR3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm9ybUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGRhdGUgc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkRhdGVTZWxlY3RlZChldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1EYXRlU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBzZWxlY3RlZCBmb3JtIGRhdGUgcmFuZ2VcclxuICAgKiBAcGFyYW0ge3tzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0gZGF0ZVJhbmdlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RlZERhdGVSYW5nZShkYXRlUmFuZ2U6IHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZyB9KSB7XHJcbiAgICB0aGlzLmZvcm1TZWxlY3RlZERhdGVSYW5nZS5lbWl0KGRhdGVSYW5nZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBzZWFyY2ggZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlU2VhcmNoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQXV0b0NvbXBsZXRlU2VhcmNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgb3B0aW9uIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBwYXNzZWQgY29udHJvbCBuYW1lIGluIGh5cGhlbmF0ZWQgY3NzIGNsYXNzIG5hbWVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvd0NsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY2xhc3NOYW1lXHJcbiAgICAgIC5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKVxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAuc3BsaXQoJyAnKVxyXG4gICAgICAuam9pbignLScpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAoY2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAobmdTdWJtaXQpPVwib25Gb3JtU3VibWl0KClcIlxyXG4gIChpbnB1dCk9XCJmb3JtSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbj5cclxuICA8ZmllbGRzZXRcclxuICAgIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybV9fZmllbGRzZXQgcC0yXCJcclxuICAgICpuZ0Zvcj1cIlxyXG4gICAgICBsZXQgZm9ybUdycCBvZiBmb3JtR3JvdXBBcnJheTtcclxuICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgdHJhY2tCeTogdHJhY2tCeUZvcm1Hcm91cFxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bGVnZW5kIGNsYXNzPVwiZmxvYXQtbm9uZSB3LWF1dG8gcC0yXCIgKm5nSWY9XCJpc0xlZ2VuZFZpc2libGVcIj5cclxuICAgICAge3sgbGVnZW5kc0FycmF5W2ldIH19OlxyXG4gICAgPC9sZWdlbmQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvbC17eyBjb2xXaWR0aC54cyB9fSBjb2wtc20te3sgY29sV2lkdGguc20gfX0gY29sLW1kLXt7XHJcbiAgICAgICAgICBjb2xXaWR0aC5tZFxyXG4gICAgICAgIH19IGNvbC1sZy17eyBjb2xXaWR0aC5sZyB9fSBjb2wteGwte3sgY29sV2lkdGgueGwgfX1cclxuICAgICAgICBpZWVlc2EtZHluYW1pYy1mb3JtX19mb3JtLWZpZWxkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJnZXRSb3dDbGFzc05hbWUoZm9ybUNvbnRyb2xBcnJheVtpXVtqXS5jb250cm9sTmFtZSlcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGZvcm1Db250cm9sQXJyYXlbaV07IGxldCBqID0gaW5kZXhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBpZWVlc2FEeW5hbWljRm9ybUZpZWxkXHJcbiAgICAgICAgICBbY29uZmlnXT1cImZvcm1Db250cm9sQXJyYXlbaV1bal1cIlxyXG4gICAgICAgICAgW2dyb3VwXT1cImZvcm1HcnBcIlxyXG4gICAgICAgICAgW3N1Ym1pdFJlc3BvbnNlXT1cInN1Ym1pdFJlc3BvbnNlXCJcclxuICAgICAgICAgIFtzZWFyY2hSZXNwb25zZV09XCJzZWFyY2hSZXNwb25zZVwiXHJcbiAgICAgICAgICAoZm9ybVNlYXJjaEFwcGx5KT1cIm9uU2VhcmNoQXBwbHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybURyb3Bkb3duU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRHJvcGRvd25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAoZm9ybURhdGVTZWxlY3RlZCk9XCJvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2VsZWN0ZWREYXRlUmFuZ2UpPVwib25TZWxlY3RlZERhdGVSYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2VsZWN0U2VhcmNoKT1cIm9uU2VsZWN0U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1BdXRvQ29tcGxldGVTZWFyY2gpPVwib25BdXRvQ29tcGxldGVTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQpPVwib25BdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2ZpZWxkc2V0PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXByaW1hcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLXJpZ2h0LWJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcmlnaHRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNMZWZ0QnV0dG9uTmVlZGVkXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtc2Vjb25kYXJ5LWJ1dHRvbiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zLS1sZWZ0LWJ0blwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uTGVmdEJ1dHRvbkNsaWNrZWQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGVmdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGxlZnRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|