@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.
Files changed (70) hide show
  1. package/README.md +24 -0
  2. package/esm2022/ieeesa-npm-presentation.mjs +5 -0
  3. package/esm2022/lib/assets/constants.json +91 -0
  4. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +143 -0
  5. package/esm2022/lib/components/checkbox/checkbox.component.mjs +102 -0
  6. package/esm2022/lib/components/date-picker/date-picker.component.mjs +306 -0
  7. package/esm2022/lib/components/date-picker-header/date-picker-header.component.mjs +153 -0
  8. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +310 -0
  9. package/esm2022/lib/components/form-error/form-error.component.mjs +24 -0
  10. package/esm2022/lib/components/input/input.component.mjs +78 -0
  11. package/esm2022/lib/components/notification/notification.component.mjs +43 -0
  12. package/esm2022/lib/components/radio/radio.component.mjs +93 -0
  13. package/esm2022/lib/components/search/search.component.mjs +137 -0
  14. package/esm2022/lib/components/select/select.component.mjs +253 -0
  15. package/esm2022/lib/components/text-area/text-area.component.mjs +31 -0
  16. package/esm2022/lib/date-formats.mjs +11 -0
  17. package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +209 -0
  18. package/esm2022/lib/models/autocomplete-option.model.mjs +2 -0
  19. package/esm2022/lib/models/calendar.model.mjs +10 -0
  20. package/esm2022/lib/models/checkbox-option.model.mjs +2 -0
  21. package/esm2022/lib/models/date-picker.model.mjs +2 -0
  22. package/esm2022/lib/models/field-config.model.mjs +2 -0
  23. package/esm2022/lib/models/form-control-types.model.mjs +20 -0
  24. package/esm2022/lib/models/form-field.model.mjs +2 -0
  25. package/esm2022/lib/models/form-grid.model.mjs +2 -0
  26. package/esm2022/lib/models/form.model.mjs +2 -0
  27. package/esm2022/lib/models/radio-option.model.mjs +2 -0
  28. package/esm2022/lib/models/search.model.mjs +10 -0
  29. package/esm2022/lib/models/select-option.model.mjs +2 -0
  30. package/esm2022/lib/presentation.module.mjs +16 -0
  31. package/esm2022/lib/services/datepicker.service.mjs +55 -0
  32. package/esm2022/lib/services/form-utility.service.mjs +47 -0
  33. package/esm2022/lib/validation-patterns.mjs +7 -0
  34. package/esm2022/public-api.mjs +20 -0
  35. package/fesm2022/ieeesa-npm-presentation.mjs +1868 -0
  36. package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -0
  37. package/index.d.ts +5 -0
  38. package/lib/components/autocomplete/autocomplete.component.d.ts +64 -0
  39. package/lib/components/checkbox/checkbox.component.d.ts +55 -0
  40. package/lib/components/date-picker/date-picker.component.d.ts +130 -0
  41. package/lib/components/date-picker-header/date-picker-header.component.d.ts +76 -0
  42. package/lib/components/dynamic-form/dynamic-form.component.d.ts +186 -0
  43. package/lib/components/form-error/form-error.component.d.ts +15 -0
  44. package/lib/components/input/input.component.d.ts +34 -0
  45. package/lib/components/notification/notification.component.d.ts +21 -0
  46. package/lib/components/radio/radio.component.d.ts +49 -0
  47. package/lib/components/search/search.component.d.ts +66 -0
  48. package/lib/components/select/select.component.d.ts +116 -0
  49. package/lib/components/text-area/text-area.component.d.ts +11 -0
  50. package/lib/date-formats.d.ts +10 -0
  51. package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +78 -0
  52. package/lib/models/autocomplete-option.model.d.ts +4 -0
  53. package/lib/models/calendar.model.d.ts +5 -0
  54. package/lib/models/checkbox-option.model.d.ts +6 -0
  55. package/lib/models/date-picker.model.d.ts +13 -0
  56. package/lib/models/field-config.model.d.ts +42 -0
  57. package/lib/models/form-control-types.model.d.ts +10 -0
  58. package/lib/models/form-field.model.d.ts +6 -0
  59. package/lib/models/form-grid.model.d.ts +7 -0
  60. package/lib/models/form.model.d.ts +7 -0
  61. package/lib/models/radio-option.model.d.ts +5 -0
  62. package/lib/models/search.model.d.ts +5 -0
  63. package/lib/models/select-option.model.d.ts +5 -0
  64. package/lib/presentation.module.d.ts +6 -0
  65. package/lib/services/datepicker.service.d.ts +48 -0
  66. package/lib/services/form-utility.service.d.ts +29 -0
  67. package/lib/validation-patterns.d.ts +6 -0
  68. package/package.json +25 -0
  69. package/public-api.d.ts +16 -0
  70. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7Ozs7O0FBRXJIOzs7Ozs7R0FNRztBQWNILE1BQU0sT0FBTyxvQkFBb0I7SUFJL0I7OztPQUdHO0lBQ0gsSUFDSSxVQUFVLENBQUMsS0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsSUFFSSxjQUFjLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsOERBQThEO0lBQzlELElBQUksY0FBYztRQUNoQixPQUFPLElB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TUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBSUcsaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFFRywwQkFBMEI7c0JBQW5DLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1Nb2RlbCB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1HcmlkIH0gZnJvbSAnQHByZXNlbnRhdGlvbi9tb2RlbHMvZm9ybS1ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJ0BwcmVzZW50YXRpb24vZGlyZWN0aXZlcy9keW5hbWljLWZvcm0tZmllbGQvZHluYW1pYy1mb3JtLWZpZWxkLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHJlYWN0aXZlIGZvcm0gZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIHBhc3NlZCBmb3JtIGZpZWxkIGNvbmZpZ3VyYXRpb24gYW5kIGhhbmRsZXMgdGhlIGZvcm0gZXZlbnRzLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7QWZ0ZXJDb250ZW50SW5pdH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnZHluYW1pY0Zvcm0nLFxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWR5bmFtaWMtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSlcclxuICBmb3JtRmllbGRzITogUXVlcnlMaXN0PER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmU+O1xyXG4gIHByaXZhdGUgX2Zvcm1Hcm91cHMhOiBGb3JtTW9kZWw7XHJcbiAgLyoqXHJcbiAgICogRm9ybUdyb3VwcyBwYXNzZWQgYW4gYW4gaW5wdXQgYW5kIHdoaWNoIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgZXZlcnkgZm9ybSBmaWVsZHMuXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZm9ybUdyb3Vwcyh2YWx1ZTogRm9ybU1vZGVsKSB7XHJcbiAgICB0aGlzLl9mb3JtR3JvdXBzID0gdmFsdWU7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG4gIGdldCBmb3JtR3JvdXBzKCk6IEZvcm1Nb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwcztcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBfc3VibWl0UmVzcG9uc2UhOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogU2V0cyBzdWJtaXQgcmVzcG9uc2Ugb24gZm9ybSBzdWJtaXRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2V0IHN1Ym1pdFJlc3BvbnNlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3N1Ym1pdFJlc3BvbnNlID0gdmFsdWU7XHJcbiAgfVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0IHN1Ym1pdFJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWl0UmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3NlYXJjaFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc2VhcmNoIHJlc3BvbnNlIG9uIGZvcm0gc2VhcmNoIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzZWFyY2hSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zZWFyY2hSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzZWFyY2hSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFJlc3BvbnNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb2xXaWR0aCE6IEZvcm1HcmlkO1xyXG4gIEBJbnB1dCgpIGlzTGVnZW5kVmlzaWJsZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmlnaHRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsZWZ0QnV0dG9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMZWZ0QnV0dG9uTmVlZGVkID0gZmFsc2U7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1JbnB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtTGVmdEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVNlYXJjaEFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Hcm91cHNSZWZlcmVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGRyb3Bkb3duQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1EYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNlbGVjdFNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VhcmNoRXZlbnQ6IEV2ZW50O1xyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ29udHJvbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BdXRvQ29tcGxldGVTZWFyY2g6IEV2ZW50RW1pdHRlcjxFdmVudD4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQWZ0ZXJDb250ZW50SW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TZWxlY3RlZERhdGVSYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICBlbmREYXRlOiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIGZvcm1Hcm91cEFycmF5OiBGb3JtR3JvdXBbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZm9ybUNvbnRyb2xBcnJheTogYW55W10gPSBbXTtcclxuICBsZWdlbmRzQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIGNyZWF0ZSBmb3JtIGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGdlbmVyYXRlZCBmb3JtIHJlZmVyZW5jZSBvbiBuZ0FmdGVyQ29udGVudEluaXQgbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQWZ0ZXJDb250ZW50SW5pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIG9uIHRoZSBiYXNpcyBvZiBmb3JtR3JvdXBzIGNvbmZpZ3VyYXRpb24gaW5wdXRcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Hcm91cEFycmF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXBBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbEFycmF5ID0gW107XHJcbiAgICB0aGlzLmxlZ2VuZHNBcnJheSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtR3JvdXBzPy5mb3JtR3JvdXA/LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBlbGVtZW50LmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoY29udHJvbCkgPT4gY29udHJvbC50eXBlICE9PSAnYnV0dG9uJ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cEFycmF5LnB1c2godGhpcy5jcmVhdGVHcm91cChjb250cm9scykpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkucHVzaChjb250cm9scyk7XHJcbiAgICAgIHRoaXMubGVnZW5kc0FycmF5LnB1c2goZWxlbWVudC5sZWdlbmQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY2hpbGRyZW46IHRoaXMuZm9ybUdyb3VwQXJyYXksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cHNSZWZlcmVuY2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIHVzaW5nIGZvcm0gYnVpbGRlclxyXG4gICAqIEBwYXJhbSB7YW55W119IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUdyb3VwfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXAoY29udHJvbHM6IGFueVtdKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKChjb250cm9sOiBGaWVsZENvbmZpZykgPT5cclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbChjb250cm9sLmNvbnRyb2xOYW1lLCB0aGlzLmNyZWF0ZUNvbnRyb2woY29udHJvbCkpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2wgYmFzZWQgb24gZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbFxyXG4gICAqIEByZXR1cm4ge0Zvcm1Db250cm9sfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUNvbnRyb2woY29udHJvbDogRmllbGRDb25maWcpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCB7IGRpc2FibGVkLCB2YWxpZGF0aW9uLCB2YWx1ZSB9ID0gY29udHJvbDtcclxuICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2woeyBkaXNhYmxlZCwgdmFsdWUgfSwgdmFsaWRhdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkxlZnRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTGVmdEJ1dHRvbkNsaWNrZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgc2VsZWN0IHR5cGUgZHJvcCBkb3duIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gaW5wdXQgY2hhbmdlIGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBmb3JtSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5mb3JtSW5wdXQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWFyY2ggYXBwbHkgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoQXBwbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TZWFyY2hBcHBseS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgc2VhcmNoIGV2ZW50IGluc2lkZSBmb3JtIGZpZWxkIHNlbGVjdFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RTZWFyY2goZXZlbnQ6IHsgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdFNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGZvcm1Hcm91cCBhcyBhcmd1bWVudHMgYW5kIG5lZWRzIHRvIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgZm9ybUdyb3VwLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwfSBmb3JtR3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm9ybUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGRhdGUgc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkRhdGVTZWxlY3RlZChldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1EYXRlU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBzZWxlY3RlZCBmb3JtIGRhdGUgcmFuZ2VcclxuICAgKiBAcGFyYW0ge3tzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0gZGF0ZVJhbmdlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RlZERhdGVSYW5nZShkYXRlUmFuZ2U6IHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZyB9KSB7XHJcbiAgICB0aGlzLmZvcm1TZWxlY3RlZERhdGVSYW5nZS5lbWl0KGRhdGVSYW5nZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBzZWFyY2ggZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlU2VhcmNoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQXV0b0NvbXBsZXRlU2VhcmNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgb3B0aW9uIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBwYXNzZWQgY29udHJvbCBuYW1lIGluIGh5cGhlbmF0ZWQgY3NzIGNsYXNzIG5hbWVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvd0NsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY2xhc3NOYW1lXHJcbiAgICAgIC5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKVxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAuc3BsaXQoJyAnKVxyXG4gICAgICAuam9pbignLScpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAoY2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAobmdTdWJtaXQpPVwib25Gb3JtU3VibWl0KClcIlxyXG4gIChpbnB1dCk9XCJmb3JtSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbj5cclxuICA8ZmllbGRzZXRcclxuICAgIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybV9fZmllbGRzZXQgcC0yXCJcclxuICAgICpuZ0Zvcj1cIlxyXG4gICAgICBsZXQgZm9ybUdycCBvZiBmb3JtR3JvdXBBcnJheTtcclxuICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgdHJhY2tCeTogdHJhY2tCeUZvcm1Hcm91cFxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bGVnZW5kIGNsYXNzPVwiZmxvYXQtbm9uZSB3LWF1dG8gcC0yXCIgKm5nSWY9XCJpc0xlZ2VuZFZpc2libGVcIj5cclxuICAgICAge3sgbGVnZW5kc0FycmF5W2ldIH19OlxyXG4gICAgPC9sZWdlbmQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvbC17eyBjb2xXaWR0aC54cyB9fSBjb2wtc20te3sgY29sV2lkdGguc20gfX0gY29sLW1kLXt7XHJcbiAgICAgICAgICBjb2xXaWR0aC5tZFxyXG4gICAgICAgIH19IGNvbC1sZy17eyBjb2xXaWR0aC5sZyB9fSBjb2wteGwte3sgY29sV2lkdGgueGwgfX1cclxuICAgICAgICBpZWVlc2EtZHluYW1pYy1mb3JtX19mb3JtLWZpZWxkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJnZXRSb3dDbGFzc05hbWUoZm9ybUNvbnRyb2xBcnJheVtpXVtqXS5jb250cm9sTmFtZSlcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGZvcm1Db250cm9sQXJyYXlbaV07IGxldCBqID0gaW5kZXhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBpZWVlc2FEeW5hbWljRm9ybUZpZWxkXHJcbiAgICAgICAgICBbY29uZmlnXT1cImZvcm1Db250cm9sQXJyYXlbaV1bal1cIlxyXG4gICAgICAgICAgW2dyb3VwXT1cImZvcm1HcnBcIlxyXG4gICAgICAgICAgW3N1Ym1pdFJlc3BvbnNlXT1cInN1Ym1pdFJlc3BvbnNlXCJcclxuICAgICAgICAgIFtzZWFyY2hSZXNwb25zZV09XCJzZWFyY2hSZXNwb25zZVwiXHJcbiAgICAgICAgICAoZm9ybVNlYXJjaEFwcGx5KT1cIm9uU2VhcmNoQXBwbHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybURyb3Bkb3duU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRHJvcGRvd25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAoZm9ybURhdGVTZWxlY3RlZCk9XCJvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2VsZWN0ZWREYXRlUmFuZ2UpPVwib25TZWxlY3RlZERhdGVSYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2VsZWN0U2VhcmNoKT1cIm9uU2VsZWN0U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1BdXRvQ29tcGxldGVTZWFyY2gpPVwib25BdXRvQ29tcGxldGVTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQpPVwib25BdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2ZpZWxkc2V0PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXByaW1hcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLXJpZ2h0LWJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcmlnaHRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNMZWZ0QnV0dG9uTmVlZGVkXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtc2Vjb25kYXJ5LWJ1dHRvbiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zLS1sZWZ0LWJ0blwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uTGVmdEJ1dHRvbkNsaWNrZWQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGVmdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGxlZnRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==