@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,1868 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ViewChildren, Input, Output, Directive, ViewEncapsulation, ViewChild, Injectable, Inject, NgModule } from '@angular/core';
3
+ import * as i3 from '@angular/forms';
4
+ import { ReactiveFormsModule, FormControl, FormsModule, Validators } from '@angular/forms';
5
+ import * as i2 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i8 from '@angular/material/button';
8
+ import { MatButtonModule } from '@angular/material/button';
9
+ import { DynamicFormFieldDirective as DynamicFormFieldDirective$1 } from '@presentation/directives/dynamic-form-field/dynamic-form-field.directive';
10
+ import { Subject, takeUntil, filter, debounceTime, distinctUntilChanged, fromEvent, map } from 'rxjs';
11
+ import { InputComponent as InputComponent$1 } from '@presentation/components/input/input.component';
12
+ import { AutocompleteComponent as AutocompleteComponent$1 } from '@presentation/components/autocomplete/autocomplete.component';
13
+ import { CheckboxComponent as CheckboxComponent$1 } from '@presentation/components/checkbox/checkbox.component';
14
+ import { DatePickerComponent as DatePickerComponent$1 } from '@presentation/components/date-picker/date-picker.component';
15
+ import { RadioComponent as RadioComponent$1 } from '@presentation/components/radio/radio.component';
16
+ import { SearchComponent as SearchComponent$1 } from '@presentation/components/search/search.component';
17
+ import { SelectComponent as SelectComponent$1 } from '@presentation/components/select/select.component';
18
+ import { TextAreaComponent as TextAreaComponent$1 } from '@presentation/components/text-area/text-area.component';
19
+ import { FormControlType } from '@presentation/models/form-control-types.model';
20
+ import * as i5$2 from '@angular/material/icon';
21
+ import { MatIconModule } from '@angular/material/icon';
22
+ import * as i5 from '@angular/material/input';
23
+ import { MatInputModule } from '@angular/material/input';
24
+ import { FormErrorComponent as FormErrorComponent$1 } from '@presentation/components/form-error/form-error.component';
25
+ import * as buttonActionsInfo from '@presentation/assets/constants.json';
26
+ import * as i4 from '@angular/material/form-field';
27
+ import { MatFormFieldModule } from '@angular/material/form-field';
28
+ import * as i3$1 from '@angular/material/radio';
29
+ import { MatRadioModule } from '@angular/material/radio';
30
+ import * as i1 from '@presentation/services/form-utility.service';
31
+ import * as i3$2 from '@angular/material/list';
32
+ import { MatListModule } from '@angular/material/list';
33
+ import * as i6 from '@angular/material/checkbox';
34
+ import { MatCheckboxModule } from '@angular/material/checkbox';
35
+ import * as i2$1 from '@angular/material/core';
36
+ import { MatOptionModule, DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatNativeDateModule } from '@angular/material/core';
37
+ import * as i5$1 from '@angular/material/autocomplete';
38
+ import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteModule } from '@angular/material/autocomplete';
39
+ import { ValidationPatterns } from '@presentation/validation-patterns';
40
+ import { SearchType } from '@presentation/models/search.model';
41
+ import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
42
+ import { MatExpansionModule } from '@angular/material/expansion';
43
+ import * as i7 from '@angular/material/datepicker';
44
+ import { MatDatepickerModule } from '@angular/material/datepicker';
45
+ import { MatMenuModule } from '@angular/material/menu';
46
+ import moment_ from 'moment';
47
+ import { DatePickerHeaderComponent as DatePickerHeaderComponent$1 } from '@presentation/components/date-picker-header/date-picker-header.component';
48
+ import { DateFormats } from '@presentation/date-formats';
49
+ import { CalendarType } from '@presentation/models/calendar.model';
50
+ import * as i2$2 from '@presentation/services/datepicker.service';
51
+ import * as i5$3 from '@angular/material/select';
52
+ import { MAT_SELECT_CONFIG, MatSelectModule } from '@angular/material/select';
53
+
54
+ /**
55
+ * Creates a reactive form dynamically based on the passed form field configuration and handles the form events.
56
+ * @export
57
+ * @class DynamicFormComponent
58
+ * @implements {OnInit}
59
+ * @implements {AfterContentInit}
60
+ */
61
+ class DynamicFormComponent {
62
+ /**
63
+ * FormGroups passed an an input and which contains configuration information of every form fields.
64
+ * @memberof DynamicFormComponent
65
+ */
66
+ set formGroups(value) {
67
+ this._formGroups = value;
68
+ this.createFormGroupArray();
69
+ }
70
+ get formGroups() {
71
+ return this._formGroups;
72
+ }
73
+ /**
74
+ * Sets submit response on form submit
75
+ * @memberof DynamicFormComponent
76
+ */
77
+ set submitResponse(value) {
78
+ this._submitResponse = value;
79
+ }
80
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+ get submitResponse() {
82
+ return this._submitResponse;
83
+ }
84
+ /**
85
+ * Sets search response on form search event
86
+ * @memberof DynamicFormComponent
87
+ */
88
+ set searchResponse(value) {
89
+ this._searchResponse = value;
90
+ }
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
+ get searchResponse() {
93
+ return this._searchResponse;
94
+ }
95
+ // eslint-disable-next-line no-unused-vars, no-empty-function
96
+ constructor(fb) {
97
+ this.fb = fb;
98
+ this.isSubmitButtonDisabled = false;
99
+ this.isLeftButtonDisabled = false;
100
+ this.isLeftButtonNeeded = false;
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ this.formSubmit = new EventEmitter();
103
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
+ this.formChange = new EventEmitter();
105
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
+ this.formInput = new EventEmitter();
107
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
+ this.formLeftButtonClicked = new EventEmitter();
109
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
+ this.formSearchApply = new EventEmitter();
111
+ this.formGroupsReference = new EventEmitter();
112
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
+ this.dropdownChange = new EventEmitter();
114
+ this.formDateSelected = new EventEmitter();
115
+ this.formSelectSearch = new EventEmitter();
116
+ this.formControlChange = new EventEmitter();
117
+ this.formAutoCompleteSearch = new EventEmitter();
118
+ this.autoCompleteOptionSelected = new EventEmitter();
119
+ this.formAfterContentInit = new EventEmitter();
120
+ this.formSelectedDateRange = new EventEmitter();
121
+ this.formGroupArray = [];
122
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
123
+ this.formControlArray = [];
124
+ this.legendsArray = [];
125
+ }
126
+ /**
127
+ * Implementation of ngOnInit lifecycle hook method to create form group
128
+ * @memberof DynamicFormComponent
129
+ */
130
+ ngOnInit() {
131
+ this.createFormGroupArray();
132
+ }
133
+ /**
134
+ * Emit generated form reference on ngAfterContentInit lifecycle hook.
135
+ * @memberof DynamicFormComponent
136
+ */
137
+ ngAfterContentInit() {
138
+ this.formAfterContentInit.emit(this.formGroupArray);
139
+ }
140
+ /**
141
+ * Creates form group on the basis of formGroups configuration input
142
+ * @return {void}
143
+ * @memberof DynamicFormComponent
144
+ */
145
+ createFormGroupArray() {
146
+ this.formGroupArray = [];
147
+ this.formControlArray = [];
148
+ this.legendsArray = [];
149
+ if (!this.formGroups) {
150
+ return;
151
+ }
152
+ this.formGroups?.formGroup?.forEach((element) => {
153
+ const controls = element.controls.filter((control) => control.type !== 'button');
154
+ this.formGroupArray.push(this.createGroup(controls));
155
+ this.formControlArray.push(controls);
156
+ this.legendsArray.push(element.legend);
157
+ });
158
+ this.form = this.fb.group({
159
+ children: this.formGroupArray,
160
+ });
161
+ this.formGroupsReference.emit(this.formGroupArray);
162
+ }
163
+ /**
164
+ * Creates form group using form builder
165
+ * @param {any[]} controls
166
+ * @return {FormGroup}
167
+ * @memberof DynamicFormComponent
168
+ */
169
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
+ createGroup(controls) {
171
+ const group = this.fb.group({});
172
+ controls.forEach((control) => group.addControl(control.controlName, this.createControl(control)));
173
+ return group;
174
+ }
175
+ /**
176
+ * Creates form control based on form field configuration
177
+ * @param {FieldConfig} control
178
+ * @return {FormControl}
179
+ * @memberof DynamicFormComponent
180
+ */
181
+ createControl(control) {
182
+ const { disabled, validation, value } = control;
183
+ return this.fb.control({ disabled, value }, validation);
184
+ }
185
+ /**
186
+ * Emits formGroupArray
187
+ * @memberof DynamicFormComponent
188
+ */
189
+ onFormSubmit() {
190
+ this.formSubmit.emit(this.formGroupArray);
191
+ }
192
+ /**
193
+ * Emits formGroupArray
194
+ * @memberof DynamicFormComponent
195
+ */
196
+ onLeftButtonClicked() {
197
+ this.formLeftButtonClicked.emit(this.formGroupArray);
198
+ }
199
+ /**
200
+ * Emits formGroupArray
201
+ * @memberof DynamicFormComponent
202
+ */
203
+ onFormChange() {
204
+ this.formChange.emit(this.formGroupArray);
205
+ }
206
+ /**
207
+ * Handles form field select type drop down selection event
208
+ * @memberof DynamicFormComponent
209
+ */
210
+ onDropdownChange() {
211
+ this.dropdownChange.emit(this.formGroupArray);
212
+ }
213
+ /**
214
+ * Handles form input change event
215
+ * @param {Event} event
216
+ * @memberof DynamicFormComponent
217
+ */
218
+ formInputChange(event) {
219
+ this.formControlChange.emit(event);
220
+ this.formInput.emit(this.formGroupArray);
221
+ }
222
+ /**
223
+ * Handles form field search apply event
224
+ * @param {Event} event
225
+ * @memberof DynamicFormComponent
226
+ */
227
+ onSearchApply(event) {
228
+ this.formSearchApply.emit(event);
229
+ }
230
+ /**
231
+ * Handles search event inside form field select
232
+ * @param {Event} event
233
+ * @memberof DynamicFormComponent
234
+ */
235
+ onSelectSearch(event) {
236
+ this.formSelectSearch.emit(event);
237
+ }
238
+ /**
239
+ * Takes the index and the formGroup as arguments and needs to return the unique identifier for this formGroup.
240
+ * @param {number} index
241
+ * @param {FormGroup} formGroup
242
+ * @memberof DynamicFormComponent
243
+ */
244
+ trackByFormGroup(index, formGroup) {
245
+ return formGroup.controls;
246
+ }
247
+ /**
248
+ * Handles form date selection event
249
+ * @param {string[]} event
250
+ * @memberof DynamicFormComponent
251
+ */
252
+ onDateSelected(event) {
253
+ this.formDateSelected.emit(event);
254
+ }
255
+ /**
256
+ * Emits selected form date range
257
+ * @param {{startDate: string, endDate: string}} dateRange
258
+ * @memberof DynamicFormComponent
259
+ */
260
+ onSelectedDateRange(dateRange) {
261
+ this.formSelectedDateRange.emit(dateRange);
262
+ }
263
+ /**
264
+ * Handles form field auto complete search event
265
+ * @param {Event} event
266
+ * @memberof DynamicFormComponent
267
+ */
268
+ onAutoCompleteSearch(event) {
269
+ this.formAutoCompleteSearch.emit(event);
270
+ }
271
+ /**
272
+ * Handles form field auto complete option selection event
273
+ * @memberof DynamicFormComponent
274
+ */
275
+ onAutoCompleteOptionSelected() {
276
+ this.autoCompleteOptionSelected.emit(this.formGroupArray);
277
+ }
278
+ /**
279
+ * Converts passed control name in hyphenated css class name
280
+ * @param {string} className
281
+ * @return {string}
282
+ * @memberof DynamicFormComponent
283
+ */
284
+ getRowClassName(className) {
285
+ return className
286
+ .replace(/([A-Z])/g, ' $1')
287
+ .toLowerCase()
288
+ .split(' ')
289
+ .join('-');
290
+ }
291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormComponent, deps: [{ token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
292
+ 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$1, 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: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: DynamicFormFieldDirective$1, selector: "[ieeesaDynamicFormField]", inputs: ["config", "group", "submitResponse", "searchResponse"], outputs: ["formSearchApply", "formDropdownSelected", "formDateSelected", "formSelectedDateRange", "formSelectSearch", "formAutoCompleteSearch", "autoCompleteOptionSelected"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); }
293
+ }
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormComponent, decorators: [{
295
+ type: Component,
296
+ args: [{ exportAs: 'dynamicForm', selector: 'ieeesa-dynamic-form', standalone: true, imports: [
297
+ CommonModule,
298
+ ReactiveFormsModule,
299
+ DynamicFormFieldDirective$1,
300
+ MatButtonModule,
301
+ ], 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"] }]
302
+ }], ctorParameters: function () { return [{ type: i3.FormBuilder }]; }, propDecorators: { formFields: [{
303
+ type: ViewChildren,
304
+ args: [DynamicFormFieldDirective$1]
305
+ }], formGroups: [{
306
+ type: Input
307
+ }], submitResponse: [{
308
+ type: Input
309
+ }], searchResponse: [{
310
+ type: Input
311
+ }], colWidth: [{
312
+ type: Input
313
+ }], isLegendVisible: [{
314
+ type: Input
315
+ }], rightButtonLabel: [{
316
+ type: Input
317
+ }], leftButtonLabel: [{
318
+ type: Input
319
+ }], isSubmitButtonDisabled: [{
320
+ type: Input
321
+ }], isLeftButtonDisabled: [{
322
+ type: Input
323
+ }], isLeftButtonNeeded: [{
324
+ type: Input
325
+ }], formSubmit: [{
326
+ type: Output
327
+ }], formChange: [{
328
+ type: Output
329
+ }], formInput: [{
330
+ type: Output
331
+ }], formLeftButtonClicked: [{
332
+ type: Output
333
+ }], formSearchApply: [{
334
+ type: Output
335
+ }], formGroupsReference: [{
336
+ type: Output
337
+ }], dropdownChange: [{
338
+ type: Output
339
+ }], formDateSelected: [{
340
+ type: Output
341
+ }], formSelectSearch: [{
342
+ type: Output
343
+ }], formControlChange: [{
344
+ type: Output
345
+ }], formAutoCompleteSearch: [{
346
+ type: Output
347
+ }], autoCompleteOptionSelected: [{
348
+ type: Output
349
+ }], formAfterContentInit: [{
350
+ type: Output
351
+ }], formSelectedDateRange: [{
352
+ type: Output
353
+ }] } });
354
+
355
+ const components = {
356
+ [FormControlType.INPUT]: InputComponent$1,
357
+ [FormControlType.TEXT_AREA]: TextAreaComponent$1,
358
+ [FormControlType.SELECT]: SelectComponent$1,
359
+ [FormControlType.SEARCH]: SearchComponent$1,
360
+ [FormControlType.DATE]: DatePickerComponent$1,
361
+ [FormControlType.CHECKBOX]: CheckboxComponent$1,
362
+ [FormControlType.RADIO]: RadioComponent$1,
363
+ [FormControlType.AUTO_COMPLETE]: AutocompleteComponent$1,
364
+ };
365
+ /**
366
+ * Provides the implementation of DynamicFormFieldDirective which hosts and creates the form fields components dynamically.
367
+ * @export
368
+ * @class DynamicFormFieldDirective
369
+ * @implements {FormField}
370
+ * @implements {OnInit}
371
+ * @implements {OnDestroy}
372
+ */
373
+ class DynamicFormFieldDirective {
374
+ /**
375
+ * Sets the form field configuration
376
+ * @memberof DynamicFormFieldDirective
377
+ */
378
+ set config(value) {
379
+ this._config = value;
380
+ if (this.component) {
381
+ this.loadComponent();
382
+ }
383
+ }
384
+ get config() {
385
+ return this._config;
386
+ }
387
+ /**
388
+ * Sets the form group
389
+ * @memberof DynamicFormFieldDirective
390
+ */
391
+ set group(value) {
392
+ if (this.component?.instance) {
393
+ this.component.instance.group = value;
394
+ }
395
+ this._group = value;
396
+ }
397
+ get group() {
398
+ return this._group;
399
+ }
400
+ /**
401
+ * Sets the submit response of form submit event
402
+ * @memberof DynamicFormFieldDirective
403
+ */
404
+ set submitResponse(value) {
405
+ if (this.component?.instance) {
406
+ this.component.instance.submitResponse = value;
407
+ }
408
+ this._submitResponse = value;
409
+ }
410
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
411
+ get submitResponse() {
412
+ return this._submitResponse;
413
+ }
414
+ /**
415
+ * Sets the form search response of form search apply.
416
+ * @memberof DynamicFormFieldDirective
417
+ */
418
+ set searchResponse(value) {
419
+ if (this.component?.instance) {
420
+ this.component.instance.searchResponse = value;
421
+ }
422
+ this._searchResponse = value;
423
+ }
424
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
425
+ get searchResponse() {
426
+ return this._searchResponse;
427
+ }
428
+ // eslint-disable-next-line no-unused-vars, no-empty-function
429
+ constructor(container) {
430
+ this.container = container;
431
+ this.destroy$ = new Subject();
432
+ this.formSearchApply = new EventEmitter();
433
+ this.formDropdownSelected = new EventEmitter();
434
+ this.formDateSelected = new EventEmitter();
435
+ this.formSelectedDateRange = new EventEmitter();
436
+ this.formSelectSearch = new EventEmitter();
437
+ this.formAutoCompleteSearch = new EventEmitter();
438
+ this.autoCompleteOptionSelected = new EventEmitter();
439
+ }
440
+ /**
441
+ * Implementation of ngOnInit lifecycle hook method to call loadComponents method.
442
+ * @memberof DynamicFormFieldDirective
443
+ */
444
+ ngOnInit() {
445
+ this.loadComponent();
446
+ }
447
+ /**
448
+ * Creates the component dynamically and initializes the instance properties of created component, also handles the created component events.
449
+ * @memberof DynamicFormFieldDirective
450
+ */
451
+ loadComponent() {
452
+ if (!components[this.config?.type]) {
453
+ const supportedTypes = Object.keys(components).join(', ');
454
+ throw new Error(`Trying to use an unsupported type (${this.config.type}).
455
+ Supported types: ${supportedTypes}`);
456
+ }
457
+ this.component = this.container.createComponent(components[this.config?.type]);
458
+ if (this.component?.instance) {
459
+ this.component.instance.config = this.config;
460
+ this.component.instance.group = this.group;
461
+ this.component.instance.submitResponse = this.submitResponse;
462
+ this.component.instance.searchResponse = this.searchResponse;
463
+ if (this.config.type === FormControlType.SEARCH) {
464
+ this.component.instance.searchValue
465
+ ?.pipe(takeUntil(this.destroy$))
466
+ ?.subscribe((event) => {
467
+ this.formSearchApply.emit(event);
468
+ });
469
+ }
470
+ else if (this.config.type === FormControlType.SELECT) {
471
+ this.component.instance.optionSelected
472
+ ?.pipe(takeUntil(this.destroy$))
473
+ ?.subscribe((event) => {
474
+ this.formDropdownSelected.emit(event);
475
+ });
476
+ this.component.instance.optionSearched
477
+ ?.pipe(takeUntil(this.destroy$))
478
+ ?.subscribe((event) => {
479
+ this.formSelectSearch.emit({
480
+ searchEvent: event,
481
+ controlName: this.config.controlName,
482
+ });
483
+ });
484
+ }
485
+ else if (this.config.type === FormControlType.DATE) {
486
+ this.component.instance.selectedDate
487
+ ?.pipe(takeUntil(this.destroy$))
488
+ ?.subscribe((event) => {
489
+ this.formDateSelected.emit(event);
490
+ });
491
+ this.component.instance.selectedDateRange
492
+ ?.pipe(takeUntil(this.destroy$))
493
+ ?.subscribe((event) => {
494
+ this.formSelectedDateRange.emit(event);
495
+ });
496
+ }
497
+ else if (this.config.type === FormControlType.AUTO_COMPLETE) {
498
+ this.component.instance.autoCompleteSearchValue
499
+ ?.pipe(takeUntil(this.destroy$))
500
+ ?.subscribe((event) => {
501
+ this.formAutoCompleteSearch.emit(event);
502
+ });
503
+ this.component.instance.autoCompleteOptionSelected
504
+ ?.pipe(takeUntil(this.destroy$))
505
+ ?.subscribe((event) => {
506
+ this.autoCompleteOptionSelected.emit(event);
507
+ });
508
+ }
509
+ }
510
+ }
511
+ /**
512
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
513
+ * @memberof DynamicFormFieldDirective
514
+ */
515
+ ngOnDestroy() {
516
+ this.destroy$.next(true);
517
+ this.destroy$.unsubscribe();
518
+ }
519
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormFieldDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
520
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: DynamicFormFieldDirective, isStandalone: true, selector: "[ieeesaDynamicFormField]", inputs: { config: "config", group: "group", submitResponse: "submitResponse", searchResponse: "searchResponse" }, outputs: { formSearchApply: "formSearchApply", formDropdownSelected: "formDropdownSelected", formDateSelected: "formDateSelected", formSelectedDateRange: "formSelectedDateRange", formSelectSearch: "formSelectSearch", formAutoCompleteSearch: "formAutoCompleteSearch", autoCompleteOptionSelected: "autoCompleteOptionSelected" }, ngImport: i0 }); }
521
+ }
522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormFieldDirective, decorators: [{
523
+ type: Directive,
524
+ args: [{
525
+ selector: '[ieeesaDynamicFormField]',
526
+ standalone: true,
527
+ }]
528
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { config: [{
529
+ type: Input
530
+ }], group: [{
531
+ type: Input
532
+ }], submitResponse: [{
533
+ type: Input
534
+ }], searchResponse: [{
535
+ type: Input
536
+ }], formSearchApply: [{
537
+ type: Output
538
+ }], formDropdownSelected: [{
539
+ type: Output
540
+ }], formDateSelected: [{
541
+ type: Output
542
+ }], formSelectedDateRange: [{
543
+ type: Output
544
+ }], formSelectSearch: [{
545
+ type: Output
546
+ }], formAutoCompleteSearch: [{
547
+ type: Output
548
+ }], autoCompleteOptionSelected: [{
549
+ type: Output
550
+ }] } });
551
+
552
+ /**
553
+ * Implements and displays form error messages and form submission error response message on submission of form.
554
+ * @export
555
+ * @class FormErrorComponent
556
+ */
557
+ class FormErrorComponent {
558
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: FormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
559
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: FormErrorComponent, isStandalone: true, selector: "ieeesa-form-error", inputs: { formGroup: "formGroup", config: "config", submitResponse: "submitResponse" }, ngImport: i0, template: "<ng-container *ngIf=\"formGroup\">\r\n <div\r\n class=\"ieeesa-body-sm-14 ieeesa-form-error\"\r\n *ngIf=\"\r\n formGroup.controls[config.controlName]?.touched ||\r\n (formGroup.controls[config.controlName]?.dirty &&\r\n formGroup.controls[config.controlName]?.invalid)\r\n \"\r\n >\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['required']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.requiredErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['minlength']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.minErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['maxlength'] || formGroup.controls[config.controlName].errors?.['max']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.maxErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['pattern']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.patternErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"\r\n formGroup.controls[config.controlName].errors?.['email']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.invalidEmailErrorMessage }}\r\n </p>\r\n </div>\r\n <div\r\n class=\"ieeesa-form-error\"\r\n *ngIf=\"\r\n (formGroup.controls[config.controlName]?.touched ||\r\n formGroup.controls[config.controlName]?.dirty) &&\r\n submitResponse\r\n \"\r\n >\r\n <p class=\"ieeesa-form-error--text mt-1\">\r\n {{ submitResponse }}\r\n </p>\r\n </div>\r\n</ng-container>\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-form-error--text{color:#ba0c2f;padding-left:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
560
+ }
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: FormErrorComponent, decorators: [{
562
+ type: Component,
563
+ args: [{ selector: 'ieeesa-form-error', standalone: true, imports: [CommonModule], template: "<ng-container *ngIf=\"formGroup\">\r\n <div\r\n class=\"ieeesa-body-sm-14 ieeesa-form-error\"\r\n *ngIf=\"\r\n formGroup.controls[config.controlName]?.touched ||\r\n (formGroup.controls[config.controlName]?.dirty &&\r\n formGroup.controls[config.controlName]?.invalid)\r\n \"\r\n >\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['required']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.requiredErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['minlength']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.minErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['maxlength'] || formGroup.controls[config.controlName].errors?.['max']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.maxErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"formGroup.controls[config.controlName].errors?.['pattern']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.patternErrorMessage }}\r\n </p>\r\n <p\r\n *ngIf=\"\r\n formGroup.controls[config.controlName].errors?.['email']\"\r\n class=\"ieeesa-form-error--text\"\r\n >\r\n {{ config.invalidEmailErrorMessage }}\r\n </p>\r\n </div>\r\n <div\r\n class=\"ieeesa-form-error\"\r\n *ngIf=\"\r\n (formGroup.controls[config.controlName]?.touched ||\r\n formGroup.controls[config.controlName]?.dirty) &&\r\n submitResponse\r\n \"\r\n >\r\n <p class=\"ieeesa-form-error--text mt-1\">\r\n {{ submitResponse }}\r\n </p>\r\n </div>\r\n</ng-container>\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-form-error--text{color:#ba0c2f;padding-left:14px}\n"] }]
564
+ }], propDecorators: { formGroup: [{
565
+ type: Input
566
+ }], config: [{
567
+ type: Input
568
+ }], submitResponse: [{
569
+ type: Input
570
+ }] } });
571
+
572
+ /**
573
+ * The NotificationComponent displays a notification with a heading, title, content, and an optional button.
574
+ * Component can be reused in page not found, access denied, session expired notification, logged out pages.
575
+ * @class NotificationComponent
576
+ */
577
+ class NotificationComponent {
578
+ constructor() {
579
+ this.buttonIcon = true;
580
+ this.notify = new EventEmitter();
581
+ }
582
+ /**
583
+ * Emits the notify event on clicking notify button.
584
+ */
585
+ onClick() {
586
+ this.notify.emit();
587
+ }
588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
589
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: NotificationComponent, isStandalone: true, selector: "ieeesa-notification", inputs: { heading: "heading", title: "title", content: "content", buttonLabel: "buttonLabel", buttonIcon: "buttonIcon" }, outputs: { notify: "notify" }, ngImport: i0, template: "<div class=\"ieeesa-notification flex-align-center row\">\r\n <div class=\"ieeesa-notification__body col-md-4 col-lg-4 p-4\">\r\n <h1\r\n class=\"ieeesa-notification__heading ieeesa-display-lg-57 text-capitalize\"\r\n *ngIf=\"heading\"\r\n >\r\n {{ heading }}\r\n </h1>\r\n <p class=\"ieeesa-notification__title ieeesa-title-lg-bold-24\">\r\n {{ title }}\r\n </p>\r\n <p class=\"ieeesa-notification__message ieeesa-title-md-18\">{{ content }}</p>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n class=\"ieeesa-notification__button ieeesa-label-lg-bold-16 mat-primary-button\"\r\n (click)=\"onClick()\"\r\n >\r\n <i *ngIf=\"buttonIcon\" class=\"fa-solid fa-arrow-left\"></i>\r\n {{ buttonLabel }}\r\n </button>\r\n </div>\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-notification{text-align:center}.ieeesa-notification__body{box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026;border-radius:.5rem;margin:0 auto;font-family:Calibri Regular;padding:2em 0;background-color:#fff;height:max-content;display:flex;flex-direction:column;align-items:center}.ieeesa-notification__heading{color:#0188aa;margin:0;padding-bottom:.5rem}.ieeesa-notification__title{color:#0188aa;padding-bottom:2.5rem;margin:0}.ieeesa-notification__message{color:#002c37;letter-spacing:.03125em;padding-bottom:1rem;margin:0}.ieeesa-notification__button{margin-bottom:.5rem;color:#fff}.ieeesa-notification__button i{padding-right:.5rem}@media screen and (max-width: 576px){.ieeesa-notification__body{width:80%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); }
590
+ }
591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: NotificationComponent, decorators: [{
592
+ type: Component,
593
+ args: [{ selector: 'ieeesa-notification', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: "<div class=\"ieeesa-notification flex-align-center row\">\r\n <div class=\"ieeesa-notification__body col-md-4 col-lg-4 p-4\">\r\n <h1\r\n class=\"ieeesa-notification__heading ieeesa-display-lg-57 text-capitalize\"\r\n *ngIf=\"heading\"\r\n >\r\n {{ heading }}\r\n </h1>\r\n <p class=\"ieeesa-notification__title ieeesa-title-lg-bold-24\">\r\n {{ title }}\r\n </p>\r\n <p class=\"ieeesa-notification__message ieeesa-title-md-18\">{{ content }}</p>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n class=\"ieeesa-notification__button ieeesa-label-lg-bold-16 mat-primary-button\"\r\n (click)=\"onClick()\"\r\n >\r\n <i *ngIf=\"buttonIcon\" class=\"fa-solid fa-arrow-left\"></i>\r\n {{ buttonLabel }}\r\n </button>\r\n </div>\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-notification{text-align:center}.ieeesa-notification__body{box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026;border-radius:.5rem;margin:0 auto;font-family:Calibri Regular;padding:2em 0;background-color:#fff;height:max-content;display:flex;flex-direction:column;align-items:center}.ieeesa-notification__heading{color:#0188aa;margin:0;padding-bottom:.5rem}.ieeesa-notification__title{color:#0188aa;padding-bottom:2.5rem;margin:0}.ieeesa-notification__message{color:#002c37;letter-spacing:.03125em;padding-bottom:1rem;margin:0}.ieeesa-notification__button{margin-bottom:.5rem;color:#fff}.ieeesa-notification__button i{padding-right:.5rem}@media screen and (max-width: 576px){.ieeesa-notification__body{width:80%}}\n"] }]
594
+ }], propDecorators: { heading: [{
595
+ type: Input
596
+ }], title: [{
597
+ type: Input
598
+ }], content: [{
599
+ type: Input
600
+ }], buttonLabel: [{
601
+ type: Input
602
+ }], buttonIcon: [{
603
+ type: Input
604
+ }], notify: [{
605
+ type: Output
606
+ }] } });
607
+
608
+ /**
609
+ * Provides implementation of input type number and text
610
+ * @export
611
+ * @class InputComponent
612
+ * @implements {FormField}
613
+ */
614
+ class InputComponent {
615
+ constructor() {
616
+ this.invalidChars = ['-', '+', 'e'];
617
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
618
+ this.buttonActionsInfo = buttonActionsInfo;
619
+ }
620
+ /**
621
+ * Handles keyboard event of type keydown to restrict invalid characters.
622
+ * @param {KeyboardEvent} event
623
+ * @memberof InputComponent
624
+ */
625
+ onKeyDown(event) {
626
+ if ((this.invalidChars.includes(event.key.toLowerCase()) ||
627
+ (this.config.isInteger && event.key.toLowerCase() === '.')) &&
628
+ this.config.isNumber) {
629
+ event.preventDefault();
630
+ }
631
+ }
632
+ /**
633
+ * Clears the form group control value of type input
634
+ * @memberof InputComponent
635
+ */
636
+ clear() {
637
+ this.group.get(this.config.controlName)?.setValue('');
638
+ }
639
+ /**
640
+ * Handles form control input on change event to set min and max value errors
641
+ * @memberof InputComponent
642
+ */
643
+ onChange() {
644
+ if (this.config.max &&
645
+ this.config.isNumber &&
646
+ Number(this.group.get(this.config.controlName)?.value) > this.config.max) {
647
+ this.group.get(this.config.controlName)?.setErrors({
648
+ maxlength: true,
649
+ });
650
+ }
651
+ if (this.config.min &&
652
+ this.config.isNumber &&
653
+ this.group.get(this.config.controlName)?.value !== '' &&
654
+ Number(this.group.get(this.config.controlName)?.value) < this.config.min) {
655
+ this.group.get(this.config.controlName)?.setErrors({
656
+ minlength: true,
657
+ });
658
+ }
659
+ }
660
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
661
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: InputComponent, isStandalone: true, selector: "ieeesa-input", ngImport: i0, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-input-field\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-input-field__label-left'\r\n : 'ieeesa-input-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-input-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-form-field>\r\n <input\r\n class=\"ieeesa-input-field__content ieeesa-body-sm-14\"\r\n [type]=\"config.isNumber ? 'number' : 'text'\"\r\n [min]=\"config.min\"\r\n [max]=\"config.max\"\r\n [maxlength]=\"config.maxLength ?? ''\"\r\n [minlength]=\"config.minLength ?? ''\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [name]=\"config.controlName\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (input)=\"onChange()\"\r\n autocomplete=\"off\"\r\n matInput\r\n />\r\n <button\r\n *ngIf=\"\r\n group.get(this.config.controlName)?.value &&\r\n group.get(this.config.controlName)?.valid\r\n \"\r\n matSuffix\r\n mat-icon-button\r\n [attr.aria-label]=\"buttonActionsInfo.ariaLabel.clear\"\r\n class=\"ieeesa-input-field__btn--clear\"\r\n (click)=\"clear()\"\r\n >\r\n <i class=\"fa-regular fa-circle-xmark ieeesa-input-field__icon--clear\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"\r\n group.get(this.config.controlName)?.invalid &&\r\n group.get(this.config.controlName)?.dirty\r\n \"\r\n class=\"ieeesa-input-field__btn--warning\"\r\n matSuffix\r\n mat-icon-button\r\n [attr.aria-label]=\"buttonActionsInfo.ariaLabel.warning\"\r\n >\r\n <i\r\n class=\"fa-solid fa-circle-exclamation ieeesa-input-field__icon--warning\"\r\n ></i>\r\n </button>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-input-field__warning-btn{display:none}.ieeesa-input-field__icon--clear,.ieeesa-input-field__icon--warning{height:20px;width:20px}.ieeesa-input-field__icon--warning{color:#ba0c2f}.ieeesa-input-field__btn--clear,.ieeesa-input-field__btn--warning{border:none;background-color:inherit}.ieeesa-input-field__content{font-family:Calibri Regular;font-size:1.125em}.ieeesa-input-field__label-left{display:flex}.ieeesa-input-field__label-top{display:block}.ieeesa-input-field .mat-mdc-form-field{min-height:52px;width:-webkit-fill-available}.ieeesa-input-field .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-input-field .mat-mdc-text-field-wrapper{height:40px;min-width:210px;width:auto;background-color:#fffbfe;border-radius:4px 4px 0 0}.ieeesa-input-field .mat-mdc-form-field-focus-overlay{background-color:#fffbfe}.ieeesa-input-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom:2px solid #00b5e2;opacity:.5}.ieeesa-input-field .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:9px}.ieeesa-input-field .mat-mdc-form-field-icon-suffix,.ieeesa-input-field [dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 8px 16px 4px}.ieeesa-input-field:has(.mdc-line-ripple--active) .ieeesa-input-field__label{color:#00b5e2}.ieeesa-input-field:has(.mdc-line-ripple--active) .mat-mdc-form-field-focus-overlay{background-color:#1c1b1f;opacity:.2}.ieeesa-input-field:has(.mdc-text-field--invalid) .mdc-text-field--filled .mdc-line-ripple:after{border-bottom:2px solid #ba0c2f;opacity:.5}.ieeesa-input-field:has(.mdc-text-field--invalid) .ieeesa-input-field__btn--warning{display:block}.ieeesa-input-field:has(.mdc-text-field--invalid) .ieeesa-input-field__label{color:#ba0c2f}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }], encapsulation: i0.ViewEncapsulation.None }); }
662
+ }
663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: InputComponent, decorators: [{
664
+ type: Component,
665
+ args: [{ selector: 'ieeesa-input', standalone: true, imports: [
666
+ CommonModule,
667
+ ReactiveFormsModule,
668
+ FormErrorComponent$1,
669
+ MatInputModule,
670
+ MatIconModule,
671
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-input-field\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-input-field__label-left'\r\n : 'ieeesa-input-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-input-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-form-field>\r\n <input\r\n class=\"ieeesa-input-field__content ieeesa-body-sm-14\"\r\n [type]=\"config.isNumber ? 'number' : 'text'\"\r\n [min]=\"config.min\"\r\n [max]=\"config.max\"\r\n [maxlength]=\"config.maxLength ?? ''\"\r\n [minlength]=\"config.minLength ?? ''\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [name]=\"config.controlName\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (input)=\"onChange()\"\r\n autocomplete=\"off\"\r\n matInput\r\n />\r\n <button\r\n *ngIf=\"\r\n group.get(this.config.controlName)?.value &&\r\n group.get(this.config.controlName)?.valid\r\n \"\r\n matSuffix\r\n mat-icon-button\r\n [attr.aria-label]=\"buttonActionsInfo.ariaLabel.clear\"\r\n class=\"ieeesa-input-field__btn--clear\"\r\n (click)=\"clear()\"\r\n >\r\n <i class=\"fa-regular fa-circle-xmark ieeesa-input-field__icon--clear\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"\r\n group.get(this.config.controlName)?.invalid &&\r\n group.get(this.config.controlName)?.dirty\r\n \"\r\n class=\"ieeesa-input-field__btn--warning\"\r\n matSuffix\r\n mat-icon-button\r\n [attr.aria-label]=\"buttonActionsInfo.ariaLabel.warning\"\r\n >\r\n <i\r\n class=\"fa-solid fa-circle-exclamation ieeesa-input-field__icon--warning\"\r\n ></i>\r\n </button>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-input-field__warning-btn{display:none}.ieeesa-input-field__icon--clear,.ieeesa-input-field__icon--warning{height:20px;width:20px}.ieeesa-input-field__icon--warning{color:#ba0c2f}.ieeesa-input-field__btn--clear,.ieeesa-input-field__btn--warning{border:none;background-color:inherit}.ieeesa-input-field__content{font-family:Calibri Regular;font-size:1.125em}.ieeesa-input-field__label-left{display:flex}.ieeesa-input-field__label-top{display:block}.ieeesa-input-field .mat-mdc-form-field{min-height:52px;width:-webkit-fill-available}.ieeesa-input-field .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-input-field .mat-mdc-text-field-wrapper{height:40px;min-width:210px;width:auto;background-color:#fffbfe;border-radius:4px 4px 0 0}.ieeesa-input-field .mat-mdc-form-field-focus-overlay{background-color:#fffbfe}.ieeesa-input-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom:2px solid #00b5e2;opacity:.5}.ieeesa-input-field .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:9px}.ieeesa-input-field .mat-mdc-form-field-icon-suffix,.ieeesa-input-field [dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 8px 16px 4px}.ieeesa-input-field:has(.mdc-line-ripple--active) .ieeesa-input-field__label{color:#00b5e2}.ieeesa-input-field:has(.mdc-line-ripple--active) .mat-mdc-form-field-focus-overlay{background-color:#1c1b1f;opacity:.2}.ieeesa-input-field:has(.mdc-text-field--invalid) .mdc-text-field--filled .mdc-line-ripple:after{border-bottom:2px solid #ba0c2f;opacity:.5}.ieeesa-input-field:has(.mdc-text-field--invalid) .ieeesa-input-field__btn--warning{display:block}.ieeesa-input-field:has(.mdc-text-field--invalid) .ieeesa-input-field__label{color:#ba0c2f}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
672
+ }] });
673
+
674
+ class TextAreaComponent {
675
+ constructor() {
676
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
677
+ this.constants = buttonActionsInfo;
678
+ }
679
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
680
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: TextAreaComponent, isStandalone: true, selector: "ieeesa-text-area", ngImport: i0, template: "<div\r\n class=\"ieeesa-text-area-field\"\r\n [formGroup]=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-text-area-field__label-left'\r\n : 'ieeesa-text-area-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-text-area-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-form-field appearance=\"fill\">\r\n <textarea\r\n name=\"config.name\"\r\n matInput\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [maxlength]=\"config.maxLength ?? constants.textarea.maxLengthDefault\"\r\n [readonly]=\"config.isReadonly\"\r\n class=\"ieeesa-text-area-field__content ieeesa-body-lg-18\"\r\n [ngClass]=\"\r\n config.isResize\r\n ? 'ieeesa-text-area-field__resize'\r\n : 'ieeesa-text-area-field__no-resize'\r\n \"\r\n >\r\n {{ config.value }}</textarea\r\n >\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-text-area-field__label-left{display:flex}.ieeesa-text-area-field__label-top{display:block}.ieeesa-text-area-field__content{min-width:444px;min-height:40px;width:auto;height:auto;border:none;padding-left:14px;border-radius:4px 4px 0 0}.ieeesa-text-area-field__no-resize{resize:none}.ieeesa-text-area-field__resize{resize:auto}.ieeesa-text-area-field .mat-mdc-form-field{width:-webkit-fill-available}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], encapsulation: i0.ViewEncapsulation.None }); }
681
+ }
682
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TextAreaComponent, decorators: [{
683
+ type: Component,
684
+ args: [{ selector: 'ieeesa-text-area', standalone: true, imports: [
685
+ CommonModule,
686
+ ReactiveFormsModule,
687
+ FormErrorComponent$1,
688
+ MatFormFieldModule,
689
+ MatInputModule,
690
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-text-area-field\"\r\n [formGroup]=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-text-area-field__label-left'\r\n : 'ieeesa-text-area-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-text-area-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-form-field appearance=\"fill\">\r\n <textarea\r\n name=\"config.name\"\r\n matInput\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [maxlength]=\"config.maxLength ?? constants.textarea.maxLengthDefault\"\r\n [readonly]=\"config.isReadonly\"\r\n class=\"ieeesa-text-area-field__content ieeesa-body-lg-18\"\r\n [ngClass]=\"\r\n config.isResize\r\n ? 'ieeesa-text-area-field__resize'\r\n : 'ieeesa-text-area-field__no-resize'\r\n \"\r\n >\r\n {{ config.value }}</textarea\r\n >\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-text-area-field__label-left{display:flex}.ieeesa-text-area-field__label-top{display:block}.ieeesa-text-area-field__content{min-width:444px;min-height:40px;width:auto;height:auto;border:none;padding-left:14px;border-radius:4px 4px 0 0}.ieeesa-text-area-field__no-resize{resize:none}.ieeesa-text-area-field__resize{resize:auto}.ieeesa-text-area-field .mat-mdc-form-field{width:-webkit-fill-available}\n"] }]
691
+ }] });
692
+
693
+ /**
694
+ * Provides implementation of form field radio type component
695
+ * @export
696
+ * @class RadioComponent
697
+ * @implements {OnInit}
698
+ * @implements {FormField}
699
+ */
700
+ class RadioComponent {
701
+ // eslint-disable-next-line no-unused-vars, no-empty-function
702
+ constructor(formUtilityService) {
703
+ this.formUtilityService = formUtilityService;
704
+ this.formControlName = 'radio';
705
+ this.radioGroup = [];
706
+ this.isDisabled = false;
707
+ this.selectedRadioOption = new EventEmitter();
708
+ }
709
+ /**
710
+ * Implementation of ngOnInit lifecycle hook method to create form group and initialize components instance properties
711
+ * @memberof RadioComponent
712
+ */
713
+ ngOnInit() {
714
+ if (!this.group) {
715
+ this.group =
716
+ this.group ??
717
+ this.formUtilityService.getFormGroup(this.formControlName);
718
+ }
719
+ this.initializeConfigProperties();
720
+ }
721
+ /**
722
+ * Initializes the components instance properties from config else it defines config
723
+ * @memberof RadioComponent
724
+ */
725
+ initializeConfigProperties() {
726
+ if (this.config?.radioOptions) {
727
+ this.radioGroup = this.config.radioOptions;
728
+ this.isDisabled = this.config?.disabled ?? false;
729
+ }
730
+ this.config =
731
+ this.config ??
732
+ this.formUtilityService.getFormFieldConfig(this.formControlName, FormControlType.RADIO);
733
+ }
734
+ /**
735
+ * Handles radio selection event on change of it
736
+ * @param {RadioOption} value
737
+ * @memberof RadioComponent
738
+ */
739
+ onChange(value) {
740
+ this.selectedRadioOption.emit(value);
741
+ }
742
+ /**
743
+ * Allows Angular to detect the specific radio option that needs to change or be added instead of rebuilding the whole radio options in DOM by tracking option unique Id.
744
+ * @param {number} index
745
+ * @return {number}
746
+ * @memberof RadioComponent
747
+ */
748
+ trackById(index, radio) {
749
+ return radio.id;
750
+ }
751
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RadioComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
752
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: RadioComponent, isStandalone: true, selector: "ieeesa-radio", inputs: { formControlName: "formControlName", radioGroup: "radioGroup", isDisabled: "isDisabled" }, outputs: { selectedRadioOption: "selectedRadioOption" }, ngImport: i0, template: "<div [formGroup]=\"group\" class=\"ieeesa-radio-field\" *ngIf=\"group\">\r\n <mat-label\r\n class=\"ieeesa-body-sm-14 ieeesa-radio-field__label\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-radio-field__label-left'\r\n : 'ieeesa-radio-field__label-top'\r\n \"\r\n >{{ config.label }}</mat-label\r\n >\r\n <mat-radio-group\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <mat-radio-button\r\n *ngFor=\"let radio of radioGroup; trackBy: trackById\"\r\n [value]=\"radio.label\"\r\n [name]=\"radio.label\"\r\n [id]=\"'' + radio.id\"\r\n (change)=\"onChange(radio)\"\r\n [checked]=\"radio.checked\"\r\n class=\"ieeesa-radio-field__button\"\r\n >\r\n {{ radio.label }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-radio-field__label-left{display:inline-block;padding-right:20%}.ieeesa-radio-field__label-top{display:block}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#00b5e2!important}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#00b5e2!important}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#49454f}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#1c1b1f}.ieeesa-radio-field .mat-ripple-element{background-color:#6750a4}.ieeesa-radio-field .mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:#1c1b1f}.ieeesa-radio-field .mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.12}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background:before{opacity:.08}.ieeesa-radio-field .mat-mdc-radio-button.mat-accent{--mat-mdc-radio-checked-ripple-color: $ieeesa-radio-ripple-blue-color;--mat-mdc-radio-ripple-color: $ieeesa-background-black}\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: MatRadioModule }, { kind: "directive", type: i3$1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }], encapsulation: i0.ViewEncapsulation.None }); }
753
+ }
754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RadioComponent, decorators: [{
755
+ type: Component,
756
+ args: [{ selector: 'ieeesa-radio', standalone: true, imports: [
757
+ CommonModule,
758
+ MatRadioModule,
759
+ ReactiveFormsModule,
760
+ FormErrorComponent$1,
761
+ MatFormFieldModule,
762
+ ], encapsulation: ViewEncapsulation.None, template: "<div [formGroup]=\"group\" class=\"ieeesa-radio-field\" *ngIf=\"group\">\r\n <mat-label\r\n class=\"ieeesa-body-sm-14 ieeesa-radio-field__label\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-radio-field__label-left'\r\n : 'ieeesa-radio-field__label-top'\r\n \"\r\n >{{ config.label }}</mat-label\r\n >\r\n <mat-radio-group\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <mat-radio-button\r\n *ngFor=\"let radio of radioGroup; trackBy: trackById\"\r\n [value]=\"radio.label\"\r\n [name]=\"radio.label\"\r\n [id]=\"'' + radio.id\"\r\n (change)=\"onChange(radio)\"\r\n [checked]=\"radio.checked\"\r\n class=\"ieeesa-radio-field__button\"\r\n >\r\n {{ radio.label }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-radio-field__label-left{display:inline-block;padding-right:20%}.ieeesa-radio-field__label-top{display:block}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#00b5e2!important}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#00b5e2!important}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#49454f}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#1c1b1f}.ieeesa-radio-field .mat-ripple-element{background-color:#6750a4}.ieeesa-radio-field .mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:#1c1b1f}.ieeesa-radio-field .mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.12}.ieeesa-radio-field .mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background:before{opacity:.08}.ieeesa-radio-field .mat-mdc-radio-button.mat-accent{--mat-mdc-radio-checked-ripple-color: $ieeesa-radio-ripple-blue-color;--mat-mdc-radio-ripple-color: $ieeesa-background-black}\n"] }]
763
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { formControlName: [{
764
+ type: Input
765
+ }], radioGroup: [{
766
+ type: Input
767
+ }], isDisabled: [{
768
+ type: Input
769
+ }], selectedRadioOption: [{
770
+ type: Output
771
+ }] } });
772
+
773
+ /**
774
+ * Provides implementation of all types of checkboxes.
775
+ * @export
776
+ * @class CheckboxComponent
777
+ * @implements {OnInit}
778
+ * @implements {FormField}
779
+ */
780
+ class CheckboxComponent {
781
+ /**
782
+ * Input property to get checkbox options.
783
+ * @memberof CheckboxComponent
784
+ * @usageNotes const checkboxes = [{ id: 1, name:"Angular"}]
785
+ */
786
+ set checkboxes(value) {
787
+ this._checkboxes = value;
788
+ }
789
+ get checkboxes() {
790
+ return this._checkboxes;
791
+ }
792
+ // eslint-disable-next-line no-unused-vars, no-empty-function
793
+ constructor(formUtilityService) {
794
+ this.formUtilityService = formUtilityService;
795
+ this.checkboxSelection = new EventEmitter();
796
+ }
797
+ /**
798
+ * Implementation of ngOnInit lifecycle hook method of component to initialize component instance properties.
799
+ * @memberof CheckboxComponent
800
+ */
801
+ ngOnInit() {
802
+ this.createFormGroupAndInitializeProperties();
803
+ }
804
+ /**
805
+ * Creates form group and initializes components properties from config.
806
+ * @memberof CheckboxComponent
807
+ */
808
+ createFormGroupAndInitializeProperties() {
809
+ this.checkboxes = this.config?.checkboxOptions ?? this.checkboxes;
810
+ this.group = this.group ?? this.formUtilityService.getFormGroup('checkbox');
811
+ this.checkboxes?.forEach((checkbox) => {
812
+ this.group.addControl(checkbox.id, new FormControl({
813
+ value: checkbox.checked,
814
+ disabled: checkbox.disabled,
815
+ }));
816
+ });
817
+ }
818
+ /**
819
+ * Sets checkbox selection and emits selected option on change event.
820
+ * @param {CheckboxOption} option
821
+ * @param {boolean} checked
822
+ * @memberof CheckboxComponent
823
+ */
824
+ onChange(option, checked) {
825
+ option.checked = checked;
826
+ this.checkboxSelection.emit(option);
827
+ }
828
+ /**
829
+ * Allows Angular to detect the specific checkbox option that needs to change or be added instead of rebuilding the whole checkbox options in DOM by tracking option unique Id.
830
+ * @param {number} index
831
+ * @return {number}
832
+ * @memberof CheckboxComponent
833
+ */
834
+ trackById(index, option) {
835
+ return option.id;
836
+ }
837
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CheckboxComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
838
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CheckboxComponent, isStandalone: true, selector: "ieeesa-checkbox", inputs: { checkboxes: "checkboxes" }, outputs: { checkboxSelection: "checkboxSelection" }, ngImport: i0, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-checkbox-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-checkbox-field__label-left'\r\n : 'ieeesa-checkbox-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-checkbox-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-list>\r\n <mat-checkbox\r\n *ngFor=\"let option of checkboxes; trackBy: trackById\"\r\n [formControlName]=\"option.id\"\r\n (change)=\"onChange(option, true)\"\r\n [disabled]=\"option.disabled\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ option.name }}\r\n </mat-checkbox>\r\n </mat-list>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-checkbox-field__label-left{display:flex;align-items:center}.ieeesa-checkbox-field__label-top{display:block}.ieeesa-checkbox-field .mat-mdc-list{display:flex;list-style-type:none}.ieeesa-checkbox-field .mat-mdc-checkbox .mat-mdc-checkbox-touch-target{height:40px;width:40px}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:not([disabled])~.mdc-checkbox__ripple{background-color:#1c1b1f!important;opacity:.08!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#49454f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox__native-control:focus:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox__background{border-color:#00b5e2!important;background-color:#00b5e2!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox:hover .mdc-checkbox__ripple{background-color:#6750a4!important;opacity:.08!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox:focus .mdc-checkbox__ripple{background-color:#6750a4}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mat-mdc-checkbox-ripple:not(:empty){background-color:#6750a4!important;opacity:.12!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox__ripple{background-color:#6750a4}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:#00b5e2!important;background-color:#00b5e2!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#00b5e2!important;background-color:#00b5e2!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:#1c1b1f!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:#1c1b1f!important}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox:hover .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox:hover .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox:hover .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.08!important}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox:focus .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox:focus .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox:focus .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.12!important}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox__ripple{background-color:#b3261e}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox__background,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox__background,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox__background{border-color:#ba0c2f!important;background-color:transparent!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox__background{border-color:#ba0c2f!important;background-color:#ba0c2f!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox:hover .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.08!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox:focus .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.12!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox__ripple{background-color:#b3261e}\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: MatListModule }, { kind: "component", type: i3$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }], encapsulation: i0.ViewEncapsulation.None }); }
839
+ }
840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CheckboxComponent, decorators: [{
841
+ type: Component,
842
+ args: [{ selector: 'ieeesa-checkbox', standalone: true, imports: [
843
+ CommonModule,
844
+ MatListModule,
845
+ MatButtonModule,
846
+ MatInputModule,
847
+ FormsModule,
848
+ MatFormFieldModule,
849
+ FormErrorComponent$1,
850
+ ReactiveFormsModule,
851
+ MatCheckboxModule,
852
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-checkbox-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-checkbox-field__label-left'\r\n : 'ieeesa-checkbox-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-checkbox-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-list>\r\n <mat-checkbox\r\n *ngFor=\"let option of checkboxes; trackBy: trackById\"\r\n [formControlName]=\"option.id\"\r\n (change)=\"onChange(option, true)\"\r\n [disabled]=\"option.disabled\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ option.name }}\r\n </mat-checkbox>\r\n </mat-list>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-checkbox-field__label-left{display:flex;align-items:center}.ieeesa-checkbox-field__label-top{display:block}.ieeesa-checkbox-field .mat-mdc-list{display:flex;list-style-type:none}.ieeesa-checkbox-field .mat-mdc-checkbox .mat-mdc-checkbox-touch-target{height:40px;width:40px}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:not([disabled])~.mdc-checkbox__ripple{background-color:#1c1b1f!important;opacity:.08!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#49454f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox__native-control:focus:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox__background{border-color:#00b5e2!important;background-color:#00b5e2!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox:hover .mdc-checkbox__ripple{background-color:#6750a4!important;opacity:.08!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox:focus .mdc-checkbox__ripple{background-color:#6750a4}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mat-mdc-checkbox-ripple:not(:empty){background-color:#6750a4!important;opacity:.12!important}.ieeesa-checkbox-field .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox__ripple{background-color:#6750a4}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:#00b5e2!important;background-color:#00b5e2!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#00b5e2!important;background-color:#00b5e2!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:#1c1b1f!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:transparent!important}.ieeesa-checkbox-field .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background{border-color:#1c1b1f!important;background-color:#1c1b1f!important}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox:hover .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox:hover .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox:hover .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.08!important}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox:focus .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox:focus .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox:focus .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.12!important}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox__ripple,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox__ripple{background-color:#b3261e}.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-touched .mdc-checkbox__background,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-pristine.ng-invalid.ng-untouched .mdc-checkbox__background,.ng-valid.ng-submitted .mat-mdc-checkbox.checkbox.mat-accent.ng-dirty.ng-invalid.ng-touched .mdc-checkbox__background{border-color:#ba0c2f!important;background-color:transparent!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox__background{border-color:#ba0c2f!important;background-color:#ba0c2f!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox:hover .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.08!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox:focus .mdc-checkbox__ripple{background-color:#b3261e!important;opacity:.12!important}.ng-valid.ng-submitted .mat-mdc-checkbox.mat-accent.mat-mdc-checkbox-checked.ng-dirty.ng-valid.ng-touched .mdc-checkbox__ripple{background-color:#b3261e}\n"] }]
853
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { checkboxes: [{
854
+ type: Input
855
+ }], checkboxSelection: [{
856
+ type: Output
857
+ }] } });
858
+
859
+ /**
860
+ * Provides auto suggestion for the entered input by filtering the options from the given list of options.
861
+ * @export
862
+ * @class AutocompleteComponent
863
+ * @implements {OnInit}
864
+ * @implements {FormField}
865
+ * @implements {OnDestroy}
866
+ */
867
+ class AutocompleteComponent {
868
+ // eslint-disable-next-line no-unused-vars, no-empty-function
869
+ constructor(formUtilityService) {
870
+ this.formUtilityService = formUtilityService;
871
+ this.value = '';
872
+ this.filteredOptions = [];
873
+ this.isSelectedOptionsVisible = true;
874
+ this.autoCompleteSearchValue = new EventEmitter();
875
+ this.autoCompleteOptionSelected = new EventEmitter();
876
+ this.destroy$ = new Subject();
877
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
878
+ this.autocompleteConstInfo = buttonActionsInfo;
879
+ this.optionsToFilter = [];
880
+ }
881
+ /**
882
+ * Implementation of ngOnInit lifecycle hook method to initialize components instance properties.
883
+ * @memberof AutocompleteComponent
884
+ */
885
+ ngOnInit() {
886
+ this.config =
887
+ this.config ??
888
+ this.formUtilityService.getFormFieldConfig('autocomplete', FormControlType.AUTO_COMPLETE);
889
+ this.group =
890
+ this.group ?? this.formUtilityService.getFormGroup('autocomplete');
891
+ this.filteredOptions =
892
+ this.config?.autoCompleteOptions ?? this.filteredOptions;
893
+ this.optionsToFilter = this.filteredOptions;
894
+ }
895
+ /**
896
+ * Filters the options on form control value changes.
897
+ * @memberof AutocompleteComponent
898
+ */
899
+ filterOptions() {
900
+ this.group?.controls[this.config?.controlName]?.valueChanges
901
+ .pipe(
902
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
903
+ filter(
904
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
905
+ (res) => res.length >=
906
+ this.autocompleteConstInfo.autocomplete.minCharToSearch ||
907
+ res.length === 0), debounceTime(this.autocompleteConstInfo.autocomplete.debounceTime), distinctUntilChanged())
908
+ .pipe(takeUntil(this.destroy$))
909
+ .subscribe((text) => {
910
+ const options = this.optionsToFilter?.filter((item) => item.name.toLowerCase().includes(text.toLowerCase()));
911
+ this.filteredOptions = options ?? this.optionsToFilter;
912
+ this.autoCompleteSearchValue.emit(text);
913
+ });
914
+ }
915
+ /**
916
+ * Emits the selected option name when the form on change event is triggered and returns option name.
917
+ * @param {AutoCompleteOption} data // data is an selected option of filteredOptions.
918
+ * @return {string} // Returns selected option name as string
919
+ * @memberof AutocompleteComponent
920
+ */
921
+ onChange(data) {
922
+ this.autoCompleteOptionSelected.emit(data.name);
923
+ return data.name;
924
+ }
925
+ /**
926
+ * Takes the index and the current item as arguments and needs to return the unique identifier for this item.
927
+ * @param {number} index
928
+ * @param {SelectOption} option
929
+ * @return {(number | string)}
930
+ * @memberof AutocompleteComponent
931
+ */
932
+ trackByFn(index, option) {
933
+ return option.id;
934
+ }
935
+ /**
936
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
937
+ * @memberof AutocompleteComponent
938
+ */
939
+ ngOnDestroy() {
940
+ this.destroy$.next(true);
941
+ this.destroy$.unsubscribe();
942
+ }
943
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
944
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AutocompleteComponent, isStandalone: true, selector: "ieeesa-autocomplete", inputs: { filteredOptions: "filteredOptions", isSelectedOptionsVisible: "isSelectedOptionsVisible" }, outputs: { autoCompleteSearchValue: "autoCompleteSearchValue", autoCompleteOptionSelected: "autoCompleteOptionSelected" }, providers: [
945
+ {
946
+ provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
947
+ useValue: { overlayPanelClass: 'ieeesa-autocomplete-overlay-pane' },
948
+ },
949
+ ], viewQueries: [{ propertyName: "autoComplete", first: true, predicate: ["autoComplete"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"ieeesa-autocomplete\"\r\n [formGroup]=\"group\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-autocomplete-field__label-left'\r\n : 'ieeesa-autocomplete-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-autocomplete__label\">{{ config.label }}</mat-label>\r\n <mat-form-field class=\"ieeesa-autocomplete__mat-form\" appearance=\"outline\">\r\n <input\r\n matInput\r\n class=\"ieeesa-autocomplete__input\"\r\n [matAutocomplete]=\"auto\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [name]=\"config.controlName\"\r\n #autoComplete\r\n (keypress)=\"filterOptions()\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onChange($event.option.value)\"\r\n class=\"ieeesa-autocomplete__autocomplete-list\"\r\n >\r\n <ng-container *ngIf=\"isSelectedOptionsVisible\">\r\n <mat-option\r\n *ngFor=\"let option of filteredOptions; trackBy: trackByFn\"\r\n [value]=\"option.name\"\r\n >\r\n <span>{{ option.name }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <button\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n [attr.aria-label]=\"autocompleteConstInfo.ariaLabel.clear\"\r\n *ngIf=\"value\"\r\n (click)=\"value = ''\"\r\n >\r\n <i class=\"fa-solid fa-xmark ieeesa-autocomplete__cancel-icon\"></i>\r\n </button>\r\n </mat-form-field>\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-autocomplete__label-left{display:flex}.ieeesa-autocomplete__label-top{display:block}.ieeesa-autocomplete__cancel-icon{height:20px;width:20px}.ieeesa-autocomplete .mat-mdc-form-field{border-radius:4px 4px 0 0;width:-webkit-fill-available}.ieeesa-autocomplete .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{color:#00b5e2}.ieeesa-autocomplete .mat-focused .mat-mdc-form-field{caret-color:#00b5e2}.ieeesa-autocomplete .mat-focused .mdc-notched-outline__leading,.ieeesa-autocomplete .mat-focused .mdc-notched-outline__trailing,.ieeesa-autocomplete .mat-focused .mdc-notched-outline__notch{border-color:#00b5e2}.ieeesa-autocomplete .mat-mdc-text-field-wrapper{min-width:12.5em;width:auto;height:3.5em;flex:auto}.ieeesa-autocomplete .mat-mdc-form-field-subscript-wrapper{width:0px;position:relative;height:0px}.ieeesa-autocomplete-overlay-pane .mat-mdc-autocomplete-panel{padding:8px 0;background:linear-gradient(0deg,rgba(0,98,155,.0784313725),rgba(0,98,155,.0784313725)),#fffbfe;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026;border-radius:4px}\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: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
950
+ }
951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AutocompleteComponent, decorators: [{
952
+ type: Component,
953
+ args: [{ selector: 'ieeesa-autocomplete', standalone: true, imports: [
954
+ CommonModule,
955
+ ReactiveFormsModule,
956
+ FormErrorComponent$1,
957
+ MatOptionModule,
958
+ MatAutocompleteModule,
959
+ MatInputModule,
960
+ MatIconModule,
961
+ MatButtonModule,
962
+ ], providers: [
963
+ {
964
+ provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
965
+ useValue: { overlayPanelClass: 'ieeesa-autocomplete-overlay-pane' },
966
+ },
967
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-autocomplete\"\r\n [formGroup]=\"group\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-autocomplete-field__label-left'\r\n : 'ieeesa-autocomplete-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-autocomplete__label\">{{ config.label }}</mat-label>\r\n <mat-form-field class=\"ieeesa-autocomplete__mat-form\" appearance=\"outline\">\r\n <input\r\n matInput\r\n class=\"ieeesa-autocomplete__input\"\r\n [matAutocomplete]=\"auto\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [name]=\"config.controlName\"\r\n #autoComplete\r\n (keypress)=\"filterOptions()\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onChange($event.option.value)\"\r\n class=\"ieeesa-autocomplete__autocomplete-list\"\r\n >\r\n <ng-container *ngIf=\"isSelectedOptionsVisible\">\r\n <mat-option\r\n *ngFor=\"let option of filteredOptions; trackBy: trackByFn\"\r\n [value]=\"option.name\"\r\n >\r\n <span>{{ option.name }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <button\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n [attr.aria-label]=\"autocompleteConstInfo.ariaLabel.clear\"\r\n *ngIf=\"value\"\r\n (click)=\"value = ''\"\r\n >\r\n <i class=\"fa-solid fa-xmark ieeesa-autocomplete__cancel-icon\"></i>\r\n </button>\r\n </mat-form-field>\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-autocomplete__label-left{display:flex}.ieeesa-autocomplete__label-top{display:block}.ieeesa-autocomplete__cancel-icon{height:20px;width:20px}.ieeesa-autocomplete .mat-mdc-form-field{border-radius:4px 4px 0 0;width:-webkit-fill-available}.ieeesa-autocomplete .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{color:#00b5e2}.ieeesa-autocomplete .mat-focused .mat-mdc-form-field{caret-color:#00b5e2}.ieeesa-autocomplete .mat-focused .mdc-notched-outline__leading,.ieeesa-autocomplete .mat-focused .mdc-notched-outline__trailing,.ieeesa-autocomplete .mat-focused .mdc-notched-outline__notch{border-color:#00b5e2}.ieeesa-autocomplete .mat-mdc-text-field-wrapper{min-width:12.5em;width:auto;height:3.5em;flex:auto}.ieeesa-autocomplete .mat-mdc-form-field-subscript-wrapper{width:0px;position:relative;height:0px}.ieeesa-autocomplete-overlay-pane .mat-mdc-autocomplete-panel{padding:8px 0;background:linear-gradient(0deg,rgba(0,98,155,.0784313725),rgba(0,98,155,.0784313725)),#fffbfe;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026;border-radius:4px}\n"] }]
968
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { filteredOptions: [{
969
+ type: Input
970
+ }], isSelectedOptionsVisible: [{
971
+ type: Input
972
+ }], autoCompleteSearchValue: [{
973
+ type: Output
974
+ }], autoCompleteOptionSelected: [{
975
+ type: Output
976
+ }], autoComplete: [{
977
+ type: ViewChild,
978
+ args: ['autoComplete']
979
+ }] } });
980
+
981
+ const MIN_CHAR = 3;
982
+ /**
983
+ * Component support search capability and used as a form filed with type search and independently as search component.
984
+ * @export
985
+ * @class SearchComponent
986
+ * @implements {OnInit}
987
+ * @implements {AfterViewInit}
988
+ * @implements {OnDestroy}
989
+ * @implements {FormField}
990
+ */
991
+ class SearchComponent {
992
+ constructor(
993
+ // eslint-disable-next-line no-unused-vars
994
+ formUtilityService // eslint-disable-next-line no-empty-function
995
+ ) {
996
+ this.formUtilityService = formUtilityService;
997
+ this.formControlName = 'search';
998
+ this.placeholderLabel = '';
999
+ this.searchType = SearchType.AUTO;
1000
+ this.searchTerm = '';
1001
+ this.searchValue = new EventEmitter();
1002
+ this.destroy$ = new Subject();
1003
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1004
+ this.searchInfo = buttonActionsInfo;
1005
+ }
1006
+ /**
1007
+ * Implementation of ngOnInit lifecycle hook method to initialize config and form group if its undefined
1008
+ * @memberof SearchComponent
1009
+ */
1010
+ ngOnInit() {
1011
+ this.config =
1012
+ this.config ??
1013
+ this.formUtilityService.getFormFieldConfig(this.formControlName, FormControlType.SEARCH);
1014
+ this.group =
1015
+ this.group ?? this.formUtilityService.getFormGroup(this.formControlName);
1016
+ }
1017
+ /**
1018
+ * Handles form control search keyup event and emits searched value
1019
+ * @memberof SearchComponent
1020
+ */
1021
+ ngAfterViewInit() {
1022
+ if (this.searchType === SearchType.AUTO && this.searchControl) {
1023
+ fromEvent(this.searchControl?.nativeElement, 'keyup')
1024
+ .pipe(
1025
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1026
+ map((event) => {
1027
+ return event.target.value;
1028
+ }), filter((res) => res.length >= MIN_CHAR || res.length === 0), debounceTime(this.searchInfo.autocomplete.debounceTime), distinctUntilChanged())
1029
+ .pipe(takeUntil(this.destroy$))
1030
+ .subscribe((text) => {
1031
+ this.searchValue.emit(text);
1032
+ });
1033
+ }
1034
+ }
1035
+ /**
1036
+ * Validates email based on defined validation patterns
1037
+ * @param {string} email
1038
+ * @return {boolean}
1039
+ * @memberof SearchComponent
1040
+ */
1041
+ isValidateEmail(email) {
1042
+ const regularExpression = ValidationPatterns.email;
1043
+ return regularExpression.test(String(email).toLowerCase());
1044
+ }
1045
+ /**
1046
+ * Clears search response on change of form search control value
1047
+ * @memberof SearchComponent
1048
+ */
1049
+ onChange() {
1050
+ this.searchResponse = '';
1051
+ }
1052
+ /**
1053
+ * Clears search response and emits searched value on search input change
1054
+ * @memberof SearchComponent
1055
+ */
1056
+ onSearchInputChange() {
1057
+ if (this.group.get(this.config.controlName)?.value === '') {
1058
+ this.searchValue.emit(this.group.get(this.config.controlName)?.value);
1059
+ }
1060
+ if (this.searchTerm.length === 0) {
1061
+ this.searchResponse = '';
1062
+ }
1063
+ }
1064
+ /**
1065
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
1066
+ * @memberof SearchComponent
1067
+ */
1068
+ ngOnDestroy() {
1069
+ this.destroy$.next(true);
1070
+ this.destroy$.unsubscribe();
1071
+ }
1072
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: SearchComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
1073
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: SearchComponent, isStandalone: true, selector: "ieeesa-search", inputs: { formControlName: "formControlName", placeholderLabel: "placeholderLabel", searchType: "searchType", searchTerm: "searchTerm" }, outputs: { searchValue: "searchValue" }, viewQueries: [{ propertyName: "searchControl", first: true, predicate: ["searchControl"], descendants: true }], ngImport: i0, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-search-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-search-field__label-left'\r\n : 'ieeesa-search-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-search-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-form-field appearance=\"outline\">\r\n <span class=\"ieeesa-search-field__content\">\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"searchType\"\r\n [formControlName]=\"config.controlName\"\r\n [placeholder]=\"placeholderLabel\"\r\n (change)=\"onChange()\"\r\n (input)=\"onSearchInputChange()\"\r\n bindon-ngModel=\"searchTerm\"\r\n #searchControl\r\n />\r\n <i\r\n class=\"fa-solid fa-magnifying-glass ieeesa-search-field__search-icon\"\r\n ></i>\r\n </span>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-search-field__search-icon{height:20px;width:20px}.ieeesa-search-field__content{display:flex;align-items:center}.ieeesa-search-field__label-left{display:flex}.ieeesa-search-field__label-top{display:block}.ieeesa-search-field .mat-mdc-form-field{height:50px;width:-webkit-fill-available;padding:0 5px}.ieeesa-search-field .mat-form-field-flex{display:flex;align-items:center;height:40px;margin-left:0}.ieeesa-search-field .mat-mdc-input-element{padding-left:5px}.ieeesa-search-field .mat-mdc-form-field-infix{padding-top:10px;padding-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }], encapsulation: i0.ViewEncapsulation.None }); }
1074
+ }
1075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: SearchComponent, decorators: [{
1076
+ type: Component,
1077
+ args: [{ selector: 'ieeesa-search', standalone: true, imports: [
1078
+ CommonModule,
1079
+ ReactiveFormsModule,
1080
+ FormErrorComponent$1,
1081
+ MatFormFieldModule,
1082
+ MatInputModule,
1083
+ MatIconModule,
1084
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-search-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-search-field__label-left'\r\n : 'ieeesa-search-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-search-field__label\">{{\r\n config.label\r\n }}</mat-label>\r\n <mat-form-field appearance=\"outline\">\r\n <span class=\"ieeesa-search-field__content\">\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"searchType\"\r\n [formControlName]=\"config.controlName\"\r\n [placeholder]=\"placeholderLabel\"\r\n (change)=\"onChange()\"\r\n (input)=\"onSearchInputChange()\"\r\n bindon-ngModel=\"searchTerm\"\r\n #searchControl\r\n />\r\n <i\r\n class=\"fa-solid fa-magnifying-glass ieeesa-search-field__search-icon\"\r\n ></i>\r\n </span>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-search-field__search-icon{height:20px;width:20px}.ieeesa-search-field__content{display:flex;align-items:center}.ieeesa-search-field__label-left{display:flex}.ieeesa-search-field__label-top{display:block}.ieeesa-search-field .mat-mdc-form-field{height:50px;width:-webkit-fill-available;padding:0 5px}.ieeesa-search-field .mat-form-field-flex{display:flex;align-items:center;height:40px;margin-left:0}.ieeesa-search-field .mat-mdc-input-element{padding-left:5px}.ieeesa-search-field .mat-mdc-form-field-infix{padding-top:10px;padding-bottom:0}\n"] }]
1085
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { formControlName: [{
1086
+ type: Input
1087
+ }], placeholderLabel: [{
1088
+ type: Input
1089
+ }], searchType: [{
1090
+ type: Input
1091
+ }], searchTerm: [{
1092
+ type: Input
1093
+ }], searchValue: [{
1094
+ type: Output
1095
+ }], searchControl: [{
1096
+ type: ViewChild,
1097
+ args: ['searchControl']
1098
+ }] } });
1099
+
1100
+ const moment$1 = moment_;
1101
+ class CustomDateAdapter extends MomentDateAdapter {
1102
+ /**
1103
+ * Overrides the getDayOfWeekNames method of MomentDateAdapter to show first letter of day in capital in date picker header.
1104
+ * @return {string[]}
1105
+ * @memberof CustomDateAdapter
1106
+ */
1107
+ getDayOfWeekNames() {
1108
+ return ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
1109
+ }
1110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CustomDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CustomDateAdapter }); }
1112
+ }
1113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CustomDateAdapter, decorators: [{
1114
+ type: Injectable
1115
+ }] });
1116
+ /**
1117
+ * Date selection of type SINGLE_DATE_SELECTION, DATE_RANGE_SELECTION and CALENDAR and handling of calendar events.
1118
+ * @export
1119
+ * @class DatePickerComponent
1120
+ * @implements {FormField}
1121
+ * @implements {OnInit}
1122
+ * @implements {AfterViewInit}
1123
+ */
1124
+ class DatePickerComponent {
1125
+ /**
1126
+ * Gets preselected dates as an input.
1127
+ * @memberof DatePickerComponent
1128
+ */
1129
+ set selectedDates(value) {
1130
+ this._selectedDates = value;
1131
+ if (this.formControlName &&
1132
+ this.selectedDates?.length === 1 &&
1133
+ this.selectedDates[0] !== undefined &&
1134
+ this.calendarType === CalendarType.SINGLE_DATE_SELECTION) {
1135
+ this.datepickerService.selectedDate = value[0];
1136
+ this.createFormGroup(value[0]);
1137
+ this.datepickerService.isRangeSelection = false;
1138
+ }
1139
+ }
1140
+ /**
1141
+ * Returns selected dates
1142
+ * @readonly
1143
+ * @type {string[]}
1144
+ * @memberof DatePickerComponent
1145
+ */
1146
+ get selectedDates() {
1147
+ return this._selectedDates;
1148
+ }
1149
+ /**
1150
+ * Gets preselected date range as an input.
1151
+ * @memberof DatePickerComponent
1152
+ */
1153
+ set selectedRange(value) {
1154
+ this._selectedRange = value;
1155
+ if (this.selectedRange?.length === 2 &&
1156
+ this.calendarType === CalendarType.DATE_RANGE_SELECTION) {
1157
+ this.createFormGroupWithRangeControls(value[0], value[1]);
1158
+ this.setDateRange(value[0], value[1]);
1159
+ this.datepickerService.isRangeSelection = true;
1160
+ }
1161
+ }
1162
+ /**
1163
+ * Returns selected date range
1164
+ * @readonly
1165
+ * @type {string[]}
1166
+ * @memberof DatePickerComponent
1167
+ */
1168
+ get selectedRange() {
1169
+ return this._selectedRange;
1170
+ }
1171
+ constructor(
1172
+ // eslint-disable-next-line no-unused-vars
1173
+ fb,
1174
+ // eslint-disable-next-line no-unused-vars
1175
+ changeDetectorRef,
1176
+ // eslint-disable-next-line no-unused-vars
1177
+ datepickerService,
1178
+ // eslint-disable-next-line no-unused-vars
1179
+ formUtilityService // eslint-disable-next-line no-empty-function,
1180
+ ) {
1181
+ this.fb = fb;
1182
+ this.changeDetectorRef = changeDetectorRef;
1183
+ this.datepickerService = datepickerService;
1184
+ this.formUtilityService = formUtilityService;
1185
+ this.datePickerHeader = DatePickerHeaderComponent$1;
1186
+ this.calendarTypes = CalendarType;
1187
+ this._selectedDates = [];
1188
+ this._selectedRange = [];
1189
+ this.calendarType = CalendarType.SINGLE_DATE_SELECTION;
1190
+ this.placeholderLabel = '';
1191
+ this.isDisabled = false;
1192
+ this.isLabelAlignedLeft = false;
1193
+ this.datepickerLabel = '';
1194
+ this.selectedDate = new EventEmitter();
1195
+ this.selectedDateRange = new EventEmitter();
1196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1197
+ this.buttonActionsInfo = buttonActionsInfo;
1198
+ }
1199
+ /**
1200
+ * Implementation of ngOnInit lifecycle hook method to creates config if its undefined and sets components instance variables if config is defined. Sets the form group value if form group is defined.
1201
+ * @memberof DatePickerComponent
1202
+ */
1203
+ ngOnInit() {
1204
+ if (!this.config) {
1205
+ const controlName = this.formControlName ?? 'datepicker';
1206
+ this.config = this.formUtilityService.getFormFieldConfig(controlName, FormControlType.DATE);
1207
+ if (this.config &&
1208
+ this.calendarType === CalendarType.DATE_RANGE_SELECTION) {
1209
+ this.config.dateRangeControls = {
1210
+ startDate: 'startDate',
1211
+ endDate: 'endDate',
1212
+ };
1213
+ }
1214
+ }
1215
+ else {
1216
+ this.initializePropertiesFromConfig();
1217
+ }
1218
+ if (!this.group) {
1219
+ if (this.calendarType === CalendarType.SINGLE_DATE_SELECTION) {
1220
+ this.createFormGroup();
1221
+ }
1222
+ else if (this.calendarType === CalendarType.DATE_RANGE_SELECTION) {
1223
+ this.createFormGroupWithRangeControls();
1224
+ }
1225
+ }
1226
+ }
1227
+ /**
1228
+ * Initializes properties from the config input
1229
+ * @memberof DatePickerComponent
1230
+ */
1231
+ initializePropertiesFromConfig() {
1232
+ this.calendarType =
1233
+ this.config?.datePicker?.calendarType ??
1234
+ CalendarType.SINGLE_DATE_SELECTION;
1235
+ this.placeholderLabel = this.config?.datePicker?.placeholderLabel ?? '';
1236
+ this.datepickerLabel = this.config?.datePicker?.label ?? '';
1237
+ this.isLabelAlignedLeft =
1238
+ this.config?.datePicker?.isLabelAlignedLeft ?? false;
1239
+ this.dateRange = this.config?.datePicker?.dateRange ?? {
1240
+ minDate: '',
1241
+ maxDate: '',
1242
+ };
1243
+ this.isDisabled = !!this.config.disabled;
1244
+ if (this.config.datePicker?.calendarType === CalendarType.DATE_RANGE_SELECTION) {
1245
+ this.group.addControl('startDate', new FormControl());
1246
+ this.group.addControl('endDate', new FormControl());
1247
+ }
1248
+ }
1249
+ /**
1250
+ * Handle date change event and emits the selected date.
1251
+ * @memberof DatePickerComponent
1252
+ */
1253
+ onDateChange() {
1254
+ this.selectedDate.emit(this.group?.get(this.config.controlName)?.value);
1255
+ this.datepickerService.selectedDate = this.group?.get(this.config.controlName)?.value;
1256
+ this.datepickerService.isRangeSelection = false;
1257
+ }
1258
+ /**
1259
+ * Sets and emits selected date range
1260
+ * @memberof DatePickerComponent
1261
+ */
1262
+ onDateRangeChange() {
1263
+ this.datepickerService.isRangeSelection = true;
1264
+ this.setDateRange(this.group.value.startDate ?? '', this.group.value.endDate ?? '');
1265
+ this.selectedDateRange.emit({
1266
+ startDate: this.group.value.startDate ?? '',
1267
+ endDate: this.group.value.endDate ?? '',
1268
+ });
1269
+ }
1270
+ /**
1271
+ * Sets the min and max date range.
1272
+ * @param {(string | Date)} startDate
1273
+ * @param {(string | Date)} endDate
1274
+ * @memberof DatePickerComponent
1275
+ */
1276
+ setDateRange(startDate, endDate) {
1277
+ this.datepickerService.range.next({
1278
+ start: startDate,
1279
+ end: endDate,
1280
+ });
1281
+ }
1282
+ /**
1283
+ * Creates form group and initializes form value
1284
+ * @param {string} [date]
1285
+ * @memberof DatePickerComponent
1286
+ */
1287
+ createFormGroup(date) {
1288
+ this.group = this.fb.group({
1289
+ [this.formControlName ? this.formControlName : 'datepicker']: date
1290
+ ? [moment$1(date).utc(true).format()]
1291
+ : [],
1292
+ });
1293
+ }
1294
+ /**
1295
+ * Creates form group with range type of controls and sets the min and max range values.
1296
+ * @param {string} [startDate]
1297
+ * @param {string} [endDate]
1298
+ * @memberof DatePickerComponent
1299
+ */
1300
+ createFormGroupWithRangeControls(startDate, endDate) {
1301
+ this.group = this.fb.group({
1302
+ startDate: startDate ? [moment$1(startDate).utc(true).format()] : [],
1303
+ endDate: endDate ? [moment$1(endDate).utc(true).format()] : [],
1304
+ });
1305
+ }
1306
+ /**
1307
+ * Checks if the form control has required validator.
1308
+ * @return {boolean}
1309
+ * @memberof DatePickerComponent
1310
+ */
1311
+ isRequired() {
1312
+ return this.group?.controls[this.config?.controlName]?.hasValidator(Validators.required);
1313
+ }
1314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatePickerComponent, deps: [{ token: i3.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2$2.DatepickerService }, { token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
1315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DatePickerComponent, isStandalone: true, selector: "ieeesa-date-picker", inputs: { selectedDates: "selectedDates", selectedRange: "selectedRange", calendarType: "calendarType", formControlName: "formControlName", placeholderLabel: "placeholderLabel", isDisabled: "isDisabled", isLabelAlignedLeft: "isLabelAlignedLeft", datepickerLabel: "datepickerLabel", dateRange: "dateRange" }, outputs: { selectedDate: "selectedDate", selectedDateRange: "selectedDateRange" }, providers: [
1316
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },
1317
+ {
1318
+ provide: DateAdapter,
1319
+ useClass: CustomDateAdapter,
1320
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
1321
+ },
1322
+ {
1323
+ provide: MAT_DATE_FORMATS,
1324
+ useValue: DateFormats,
1325
+ },
1326
+ ], ngImport: i0, template: "<div class=\"ieeesa-datepicker\">\r\n <div\r\n [formGroup]=\"group\"\r\n *ngIf=\"calendarType === calendarTypes.SINGLE_DATE_SELECTION\"\r\n class=\"ieeesa-datepicker--single-selection\"\r\n [ngClass]=\"!isRequired() ? 'ieeesa-datepicker__valid-date' : ''\"\r\n [ngClass]=\"{\r\n 'ieeesa-datepicker__valid-date': !isRequired(),\r\n 'ieeesa-datepicker__label-left': isLabelAlignedLeft,\r\n 'ieeesa-datepicker__label-top': !isLabelAlignedLeft\r\n }\"\r\n >\r\n <mat-label *ngIf=\"datepickerLabel\">{{ datepickerLabel }} </mat-label>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n (dateInput)=\"onDateChange()\"\r\n (click)=\"picker.open()\"\r\n [matDatepicker]=\"picker\"\r\n [formControlName]=\"config.controlName\"\r\n [placeholder]=\"buttonActionsInfo?.datePicker?.dateFormatLabel\"\r\n #calendar\r\n readonly\r\n />\r\n <mat-datepicker-toggle\r\n class=\"mat-datepicker-toggle\"\r\n matIconSuffix\r\n [for]=\"picker\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"datePickerHeader\">\r\n <mat-datepicker-actions>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n type=\"button\"\r\n matDatepickerCancel\r\n >\r\n {{ buttonActionsInfo?.button?.cancel }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n color=\"primary\"\r\n type=\"button\"\r\n matDatepickerApply\r\n >\r\n {{ buttonActionsInfo?.button?.ok }}\r\n </button>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\">\r\n </ieeesa-form-error>\r\n </div>\r\n\r\n <div\r\n [formGroup]=\"group\"\r\n *ngIf=\"calendarType === calendarTypes.DATE_RANGE_SELECTION\"\r\n class=\"ieeesa-datepicker--multi-selection\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-datepicker__label-left'\r\n : 'ieeesa-datepicker__label-top'\r\n \"\r\n >\r\n <mat-label *ngIf=\"datepickerLabel\">{{ datepickerLabel }} </mat-label>\r\n <mat-form-field>\r\n <mat-date-range-input [rangePicker]=\"rangePicker\" [formGroup]=\"group\">\r\n <input\r\n matStartDate\r\n matInput\r\n [formControlName]=\"config.dateRangeControls?.startDate ?? ''\"\r\n [placeholder]=\"buttonActionsInfo?.datePicker?.dateFormatLabel + ' - '\"\r\n (dateChange)=\"onDateRangeChange()\"\r\n />\r\n <input\r\n matEndDate\r\n matInput\r\n [formControlName]=\"config.dateRangeControls?.endDate ?? ''\"\r\n [placeholder]=\"buttonActionsInfo?.datePicker?.dateFormatLabel\"\r\n (dateChange)=\"onDateRangeChange()\"\r\n />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle\r\n class=\"mat-datepicker-toggle\"\r\n matIconSuffix\r\n [for]=\"rangePicker\"\r\n ></mat-datepicker-toggle>\r\n <mat-date-range-picker\r\n #rangePicker\r\n [calendarHeaderComponent]=\"datePickerHeader\"\r\n (dateInput)=\"onDateRangeChange()\"\r\n >\r\n <mat-date-range-picker-actions>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n matDateRangePickerCancel\r\n type=\"button\"\r\n >\r\n {{ buttonActionsInfo?.button?.cancel }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n color=\"primary\"\r\n matDateRangePickerApply\r\n (click)=\"onDateRangeChange()\"\r\n type=\"button\"\r\n >\r\n {{ buttonActionsInfo?.button?.ok }}\r\n </button>\r\n </mat-date-range-picker-actions>\r\n </mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"calendarType === calendarTypes.CALENDAR\"\r\n class=\"ieeesa-datepicker--calendar\"\r\n >\r\n <mat-calendar\r\n [headerComponent]=\"datePickerHeader\"\r\n [(selected)]=\"calendarSelectedDate\"\r\n >\r\n </mat-calendar>\r\n </div>\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{min-width:360px;width:auto}.ieeesa-datepicker__label-left{display:flex}.ieeesa-datepicker__label-top{display:block}.ieeesa-datepicker__date-picker-button{background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe}.ieeesa-datepicker--calendar{background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe;border-radius:16px}.ieeesa-datepicker--calendar .mat-calendar-body-cell-container{margin:0;padding-top:24px 0}.ieeesa-datepicker--calendar .mat-calendar-table-header th,.ieeesa-datepicker--calendar .mat-calendar-body td{height:24px!important;padding-top:24px!important;width:24px!important;padding-bottom:24px!important}.ieeesa-datepicker--calendar .mat-calendar-body-selected{background-color:#00b5e2;color:#fff;border:none;box-shadow:none}.ieeesa-datepicker--calendar .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00b5e2;color:#fff;border:none;box-shadow:none}.ieeesa-datepicker--calendar .mat-calendar-content{padding:0 8px 35px}.ieeesa-datepicker .mat-mdc-form-field{width:-webkit-fill-available}.ieeesa-datepicker .mat-mdc-text-field-wrapper.mdc-text-field.mdc-text-field--outlined.mdc-text-field--no-label,.ieeesa-datepicker .mdc-text-field--filled:not(.mdc-text-field--disabled){border:2px solid #00b5e2;border-radius:4px;height:56px;align-items:center;background-color:#f0f5f9}.ieeesa-datepicker .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.ieeesa-datepicker .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input,.ieeesa-datepicker .mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-datepicker .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input::placeholder,.ieeesa-datepicker .mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input::placeholder{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-datepicker .mat-mdc-form-field-hint{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:16px;color:#49454f;letter-spacing:.025em}.ieeesa-datepicker .mat-datepicker-toggle-default-icon{width:18px;height:20px}.mat-datepicker-popup .mat-datepicker-content-container{background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe;border-radius:28px}.mat-datepicker-popup .mat-datepicker-content-container .mat-calendar-body-cell-content{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.mat-datepicker-popup .mat-datepicker-content-container .mat-calendar-body-selected{background-color:#00b5e2;color:#fff;border:none;box-shadow:none}.mat-datepicker-popup .mat-datepicker-content-container .mat-calendar-body-in-range:before{background-color:#a7a8aa;color:#49454f}.mat-datepicker-popup .mat-datepicker-content{border-radius:28px}.mat-datepicker-popup .mat-calendar-table-header{position:relative;top:25px}.mat-datepicker-popup .mat-calendar-table-header th,.mat-datepicker-popup .mat-calendar-body td{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.mat-datepicker-popup .mat-calendar-table-header-divider,.mat-datepicker-popup .mat-calendar-body tr:first-child td:only-child{display:none}.mat-datepicker-popup .mat-calendar-body tr:first-child td:first-child:not(:only-child){visibility:hidden}.mat-datepicker-popup .mat-calendar-body{position:relative;top:20px}.mat-datepicker-popup .mat-mdc-menu-panel{min-width:360px;width:auto}.mat-datepicker-popup .mat-calendar-body-today{border-color:#00b5e2;color:#00b5e2}.mat-datepicker-popup .mat-datepicker-actions{padding:15px 10px 10px}.mat-datepicker-popup .mat-datepicker-toggle{color:#49454f}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i7.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i7.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i7.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i7.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i7.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i7.MatDatepickerCancel, selector: "[matDatepickerCancel], [matDateRangePickerCancel]" }, { kind: "directive", type: i7.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
1327
+ }
1328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatePickerComponent, decorators: [{
1329
+ type: Component,
1330
+ args: [{ selector: 'ieeesa-date-picker', standalone: true, imports: [
1331
+ CommonModule,
1332
+ ReactiveFormsModule,
1333
+ FormErrorComponent$1,
1334
+ MatExpansionModule,
1335
+ MatMenuModule,
1336
+ MatIconModule,
1337
+ MatInputModule,
1338
+ MatFormFieldModule,
1339
+ MatDatepickerModule,
1340
+ DatePickerHeaderComponent$1,
1341
+ MatButtonModule,
1342
+ ], providers: [
1343
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },
1344
+ {
1345
+ provide: DateAdapter,
1346
+ useClass: CustomDateAdapter,
1347
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
1348
+ },
1349
+ {
1350
+ provide: MAT_DATE_FORMATS,
1351
+ useValue: DateFormats,
1352
+ },
1353
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-datepicker\">\r\n <div\r\n [formGroup]=\"group\"\r\n *ngIf=\"calendarType === calendarTypes.SINGLE_DATE_SELECTION\"\r\n class=\"ieeesa-datepicker--single-selection\"\r\n [ngClass]=\"!isRequired() ? 'ieeesa-datepicker__valid-date' : ''\"\r\n [ngClass]=\"{\r\n 'ieeesa-datepicker__valid-date': !isRequired(),\r\n 'ieeesa-datepicker__label-left': isLabelAlignedLeft,\r\n 'ieeesa-datepicker__label-top': !isLabelAlignedLeft\r\n }\"\r\n >\r\n <mat-label *ngIf=\"datepickerLabel\">{{ datepickerLabel }} </mat-label>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n (dateInput)=\"onDateChange()\"\r\n (click)=\"picker.open()\"\r\n [matDatepicker]=\"picker\"\r\n [formControlName]=\"config.controlName\"\r\n [placeholder]=\"buttonActionsInfo?.datePicker?.dateFormatLabel\"\r\n #calendar\r\n readonly\r\n />\r\n <mat-datepicker-toggle\r\n class=\"mat-datepicker-toggle\"\r\n matIconSuffix\r\n [for]=\"picker\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"datePickerHeader\">\r\n <mat-datepicker-actions>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n type=\"button\"\r\n matDatepickerCancel\r\n >\r\n {{ buttonActionsInfo?.button?.cancel }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n color=\"primary\"\r\n type=\"button\"\r\n matDatepickerApply\r\n >\r\n {{ buttonActionsInfo?.button?.ok }}\r\n </button>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\">\r\n </ieeesa-form-error>\r\n </div>\r\n\r\n <div\r\n [formGroup]=\"group\"\r\n *ngIf=\"calendarType === calendarTypes.DATE_RANGE_SELECTION\"\r\n class=\"ieeesa-datepicker--multi-selection\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-datepicker__label-left'\r\n : 'ieeesa-datepicker__label-top'\r\n \"\r\n >\r\n <mat-label *ngIf=\"datepickerLabel\">{{ datepickerLabel }} </mat-label>\r\n <mat-form-field>\r\n <mat-date-range-input [rangePicker]=\"rangePicker\" [formGroup]=\"group\">\r\n <input\r\n matStartDate\r\n matInput\r\n [formControlName]=\"config.dateRangeControls?.startDate ?? ''\"\r\n [placeholder]=\"buttonActionsInfo?.datePicker?.dateFormatLabel + ' - '\"\r\n (dateChange)=\"onDateRangeChange()\"\r\n />\r\n <input\r\n matEndDate\r\n matInput\r\n [formControlName]=\"config.dateRangeControls?.endDate ?? ''\"\r\n [placeholder]=\"buttonActionsInfo?.datePicker?.dateFormatLabel\"\r\n (dateChange)=\"onDateRangeChange()\"\r\n />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle\r\n class=\"mat-datepicker-toggle\"\r\n matIconSuffix\r\n [for]=\"rangePicker\"\r\n ></mat-datepicker-toggle>\r\n <mat-date-range-picker\r\n #rangePicker\r\n [calendarHeaderComponent]=\"datePickerHeader\"\r\n (dateInput)=\"onDateRangeChange()\"\r\n >\r\n <mat-date-range-picker-actions>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n matDateRangePickerCancel\r\n type=\"button\"\r\n >\r\n {{ buttonActionsInfo?.button?.cancel }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-text-button ieeesa-datepicker__date-picker-button\"\r\n color=\"primary\"\r\n matDateRangePickerApply\r\n (click)=\"onDateRangeChange()\"\r\n type=\"button\"\r\n >\r\n {{ buttonActionsInfo?.button?.ok }}\r\n </button>\r\n </mat-date-range-picker-actions>\r\n </mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"calendarType === calendarTypes.CALENDAR\"\r\n class=\"ieeesa-datepicker--calendar\"\r\n >\r\n <mat-calendar\r\n [headerComponent]=\"datePickerHeader\"\r\n [(selected)]=\"calendarSelectedDate\"\r\n >\r\n </mat-calendar>\r\n </div>\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{min-width:360px;width:auto}.ieeesa-datepicker__label-left{display:flex}.ieeesa-datepicker__label-top{display:block}.ieeesa-datepicker__date-picker-button{background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe}.ieeesa-datepicker--calendar{background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe;border-radius:16px}.ieeesa-datepicker--calendar .mat-calendar-body-cell-container{margin:0;padding-top:24px 0}.ieeesa-datepicker--calendar .mat-calendar-table-header th,.ieeesa-datepicker--calendar .mat-calendar-body td{height:24px!important;padding-top:24px!important;width:24px!important;padding-bottom:24px!important}.ieeesa-datepicker--calendar .mat-calendar-body-selected{background-color:#00b5e2;color:#fff;border:none;box-shadow:none}.ieeesa-datepicker--calendar .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00b5e2;color:#fff;border:none;box-shadow:none}.ieeesa-datepicker--calendar .mat-calendar-content{padding:0 8px 35px}.ieeesa-datepicker .mat-mdc-form-field{width:-webkit-fill-available}.ieeesa-datepicker .mat-mdc-text-field-wrapper.mdc-text-field.mdc-text-field--outlined.mdc-text-field--no-label,.ieeesa-datepicker .mdc-text-field--filled:not(.mdc-text-field--disabled){border:2px solid #00b5e2;border-radius:4px;height:56px;align-items:center;background-color:#f0f5f9}.ieeesa-datepicker .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.ieeesa-datepicker .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input,.ieeesa-datepicker .mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-datepicker .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input::placeholder,.ieeesa-datepicker .mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input::placeholder{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-datepicker .mat-mdc-form-field-hint{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:16px;color:#49454f;letter-spacing:.025em}.ieeesa-datepicker .mat-datepicker-toggle-default-icon{width:18px;height:20px}.mat-datepicker-popup .mat-datepicker-content-container{background:linear-gradient(0deg,rgba(0,98,155,.11),rgba(0,98,155,.11)),#fffbfe;border-radius:28px}.mat-datepicker-popup .mat-datepicker-content-container .mat-calendar-body-cell-content{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.mat-datepicker-popup .mat-datepicker-content-container .mat-calendar-body-selected{background-color:#00b5e2;color:#fff;border:none;box-shadow:none}.mat-datepicker-popup .mat-datepicker-content-container .mat-calendar-body-in-range:before{background-color:#a7a8aa;color:#49454f}.mat-datepicker-popup .mat-datepicker-content{border-radius:28px}.mat-datepicker-popup .mat-calendar-table-header{position:relative;top:25px}.mat-datepicker-popup .mat-calendar-table-header th,.mat-datepicker-popup .mat-calendar-body td{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.mat-datepicker-popup .mat-calendar-table-header-divider,.mat-datepicker-popup .mat-calendar-body tr:first-child td:only-child{display:none}.mat-datepicker-popup .mat-calendar-body tr:first-child td:first-child:not(:only-child){visibility:hidden}.mat-datepicker-popup .mat-calendar-body{position:relative;top:20px}.mat-datepicker-popup .mat-mdc-menu-panel{min-width:360px;width:auto}.mat-datepicker-popup .mat-calendar-body-today{border-color:#00b5e2;color:#00b5e2}.mat-datepicker-popup .mat-datepicker-actions{padding:15px 10px 10px}.mat-datepicker-popup .mat-datepicker-toggle{color:#49454f}\n"] }]
1354
+ }], ctorParameters: function () { return [{ type: i3.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2$2.DatepickerService }, { type: i1.FormUtilityService }]; }, propDecorators: { selectedDates: [{
1355
+ type: Input
1356
+ }], selectedRange: [{
1357
+ type: Input
1358
+ }], calendarType: [{
1359
+ type: Input
1360
+ }], formControlName: [{
1361
+ type: Input
1362
+ }], placeholderLabel: [{
1363
+ type: Input
1364
+ }], isDisabled: [{
1365
+ type: Input
1366
+ }], isLabelAlignedLeft: [{
1367
+ type: Input
1368
+ }], datepickerLabel: [{
1369
+ type: Input
1370
+ }], dateRange: [{
1371
+ type: Input
1372
+ }], selectedDate: [{
1373
+ type: Output
1374
+ }], selectedDateRange: [{
1375
+ type: Output
1376
+ }] } });
1377
+
1378
+ const moment = moment_;
1379
+ /**
1380
+ * Provides implementation of date picker custom header and being used in date-picker component.
1381
+ * @export
1382
+ * @class DatePickerHeaderComponent
1383
+ * @implements {OnInit}
1384
+ * @implements {OnDestroy}
1385
+ */
1386
+ class DatePickerHeaderComponent {
1387
+ constructor(
1388
+ // eslint-disable-next-line no-unused-vars
1389
+ calendar,
1390
+ // eslint-disable-next-line no-unused-vars
1391
+ dateAdapter,
1392
+ // eslint-disable-next-line no-unused-vars
1393
+ dateFormats,
1394
+ // eslint-disable-next-line no-unused-vars
1395
+ datepickerService // eslint-disable-next-line no-empty-function
1396
+ ) {
1397
+ this.calendar = calendar;
1398
+ this.dateAdapter = dateAdapter;
1399
+ this.dateFormats = dateFormats;
1400
+ this.datepickerService = datepickerService;
1401
+ this.destroy$ = new Subject();
1402
+ this.arrowDirection = false;
1403
+ this.isRangeSelection = false;
1404
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1405
+ this.datePickerInfo = buttonActionsInfo;
1406
+ }
1407
+ /**
1408
+ * Implementation of ngOnInit lifecycle hook method to initialize components instance properties.
1409
+ * @memberof DatePickerHeaderComponent
1410
+ */
1411
+ ngOnInit() {
1412
+ this.isRangeSelection = this.datepickerService.getCalendarType();
1413
+ const selectedRange = this.datepickerService.getSelectedRange();
1414
+ if (selectedRange) {
1415
+ this.setRange(selectedRange);
1416
+ }
1417
+ this.datepickerService.range$
1418
+ ?.pipe(takeUntil(this.destroy$))
1419
+ .subscribe((range) => {
1420
+ this.setRange(range);
1421
+ });
1422
+ this.selectedDate = this.datepickerService.selectedDate
1423
+ ? moment(this.datepickerService.selectedDate).format(DateFormats.display.daysFormat) +
1424
+ ', ' +
1425
+ moment(this.datepickerService.selectedDate).date() +
1426
+ ' ' +
1427
+ moment(this.datepickerService.selectedDate).format(DateFormats.display.fullMonthLabel)
1428
+ : '';
1429
+ }
1430
+ /**
1431
+ * Sets the min and max date range.
1432
+ * @param {({ start: Date | string; end: Date | string })} range
1433
+ * @memberof DatePickerHeaderComponent
1434
+ */
1435
+ setRange(range) {
1436
+ this.range = {
1437
+ start: moment(range.start).date() +
1438
+ ' ' +
1439
+ moment(range.start).format(DateFormats.display.fullMonthLabel),
1440
+ end: moment(range.end).date() +
1441
+ ' ' +
1442
+ moment(range.end).format(DateFormats.display.fullMonthLabel),
1443
+ };
1444
+ }
1445
+ /**
1446
+ * Implementation of getMonthLabel method to get the month label.
1447
+ * @readonly
1448
+ * @return {string}
1449
+ * @memberof DatePickerHeaderComponent
1450
+ */
1451
+ get getMonthLabel() {
1452
+ if (this.dateAdapter?.format) {
1453
+ return this.dateAdapter.format(this.calendar.activeDate, this.dateFormats.display.monthYearA11yLabel);
1454
+ }
1455
+ return '';
1456
+ }
1457
+ /**
1458
+ * Sets previous month in a calendar on click of previous month arrow in date picker.
1459
+ * @param {('month' | 'year')} mode
1460
+ * @memberof DatePickerHeaderComponent
1461
+ */
1462
+ setPreviousMonth(mode) {
1463
+ this.calendar.activeDate =
1464
+ mode === 'month'
1465
+ ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1)
1466
+ : this.dateAdapter.addCalendarYears(this.calendar.activeDate, -1);
1467
+ }
1468
+ /**
1469
+ * Sets next month in a calendar on click of previous month arrow in date picker.
1470
+ * @param {('month' | 'year')} mode
1471
+ * @memberof DatePickerHeaderComponent
1472
+ */
1473
+ setNextMonth(mode) {
1474
+ this.calendar.activeDate =
1475
+ mode === 'month'
1476
+ ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1)
1477
+ : this.dateAdapter.addCalendarYears(this.calendar.activeDate, 1);
1478
+ }
1479
+ /**
1480
+ * Sets the calendar current view on the open of year drop down in date picker.
1481
+ * @memberof DatePickerHeaderComponent
1482
+ */
1483
+ setCalendarView() {
1484
+ this.calendar.currentView =
1485
+ this.calendar.currentView === 'month' ? 'multi-year' : 'month';
1486
+ this.arrowDirection = !this.arrowDirection;
1487
+ }
1488
+ /**
1489
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
1490
+ * @memberof DatePickerHeaderComponent
1491
+ */
1492
+ ngOnDestroy() {
1493
+ this.destroy$.next(true);
1494
+ this.destroy$.unsubscribe();
1495
+ }
1496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatePickerHeaderComponent, deps: [{ token: i7.MatCalendar }, { token: i2$1.DateAdapter }, { token: MAT_DATE_FORMATS }, { token: i2$2.DatepickerService }], target: i0.ɵɵFactoryTarget.Component }); }
1497
+ 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: i2.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$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1498
+ }
1499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatePickerHeaderComponent, decorators: [{
1500
+ type: Component,
1501
+ args: [{ selector: 'ieeesa-date-picker-header', standalone: true, imports: [
1502
+ CommonModule,
1503
+ MatDatepickerModule,
1504
+ MatFormFieldModule,
1505
+ MatNativeDateModule,
1506
+ MatIconModule,
1507
+ ], 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"] }]
1508
+ }], ctorParameters: function () { return [{ type: i7.MatCalendar }, { type: i2$1.DateAdapter }, { type: undefined, decorators: [{
1509
+ type: Inject,
1510
+ args: [MAT_DATE_FORMATS]
1511
+ }] }, { type: i2$2.DatepickerService }]; }, propDecorators: { group: [{
1512
+ type: Input
1513
+ }] } });
1514
+
1515
+ /**
1516
+ * Component implementation supports select type of form filed and select type is configurable to support single selection or multi-selection with multilevel or single level.
1517
+ * @export
1518
+ * @class SelectComponent
1519
+ * @implements {OnInit}
1520
+ * @implements {AfterViewInit}
1521
+ * @implements {OnDestroy}
1522
+ */
1523
+ class SelectComponent {
1524
+ /**
1525
+ * Takes isSortNeeded as input to check if the passed options are sorted or not.
1526
+ * @memberof SelectComponent
1527
+ */
1528
+ set isSortNeeded(value) {
1529
+ this._isSortNeeded = value;
1530
+ }
1531
+ get isSortNeeded() {
1532
+ return this._isSortNeeded;
1533
+ }
1534
+ /**
1535
+ * Sets the dropdown options for selection.
1536
+ * @memberof SelectComponent
1537
+ */
1538
+ set dropdownOptions(value) {
1539
+ this._dropdownOptions = value;
1540
+ }
1541
+ get dropdownOptions() {
1542
+ return this._dropdownOptions;
1543
+ }
1544
+ /**
1545
+ * Sets the selected option
1546
+ * @memberof SelectComponent
1547
+ */
1548
+ set selectedOptions(value) {
1549
+ if (Array.isArray(value)) {
1550
+ this._selectedOptions = this.arraySorting(value);
1551
+ }
1552
+ else {
1553
+ this._selectedOptions = value;
1554
+ }
1555
+ }
1556
+ get selectedOptions() {
1557
+ return this._selectedOptions;
1558
+ }
1559
+ constructor(
1560
+ // eslint-disable-next-line no-unused-vars
1561
+ formUtilityService // eslint-disable-next-line no-empty-function
1562
+ ) {
1563
+ this.formUtilityService = formUtilityService;
1564
+ this.arrowDirection = false;
1565
+ this.searchType = SearchType.AUTO;
1566
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1567
+ this.dropdownInfo = buttonActionsInfo;
1568
+ this._isSortNeeded = true;
1569
+ this.formControlName = 'select';
1570
+ this.isMultiLevel = false;
1571
+ this.isLabelAlignedLeft = false;
1572
+ this.selectLabel = '';
1573
+ this.isMultiSelect = false;
1574
+ this.isDisabled = false;
1575
+ this.isSearch = false;
1576
+ this.placeholderText = this.dropdownInfo.dropdown.placeholderText;
1577
+ this.optionSelected = new EventEmitter();
1578
+ this.optionSearched = new EventEmitter();
1579
+ }
1580
+ /**
1581
+ * Initializes components instance properties from config if its defined otherwise creates form group and config.
1582
+ * @memberof SelectComponent
1583
+ */
1584
+ ngOnInit() {
1585
+ this.updateArrowDirection(false);
1586
+ this.group =
1587
+ this.group ?? this.formUtilityService.getFormGroup(this.formControlName);
1588
+ this.config =
1589
+ this.config ??
1590
+ this.formUtilityService.getFormFieldConfig(this.formControlName, FormControlType.SELECT);
1591
+ if (this.config) {
1592
+ this.isMultiSelect = this.config.isMultiSelect ?? false;
1593
+ this.dropdownOptions =
1594
+ this.config?.dropdownOptions ?? this.dropdownOptions;
1595
+ this.selectedOptions = this.config?.value;
1596
+ this.selectLabel = this.config?.label ?? '';
1597
+ this.placeholderText = this.config?.placeholder ?? this.placeholderText;
1598
+ this.isMultiSelect = this.config?.isMultiSelect ?? this.isMultiSelect;
1599
+ this.isDisabled = this.config?.disabled ?? this.isDisabled;
1600
+ this.searchType = this.config?.searchType ?? this.searchType;
1601
+ this.isSortNeeded = this.config?.isSortNeeded ?? this.isSortNeeded;
1602
+ }
1603
+ }
1604
+ /**
1605
+ * Emits selected option on changes the selected option.
1606
+ * @param {SelectOption} event
1607
+ * @memberof SelectComponent
1608
+ */
1609
+ onChange(event) {
1610
+ this.optionSelected.emit(event);
1611
+ }
1612
+ /**
1613
+ * Sets the select dropdown arrow direction
1614
+ * @param {boolean} opened
1615
+ * @memberof SelectComponent
1616
+ */
1617
+ updateArrowDirection(opened) {
1618
+ this.arrowDirection = opened;
1619
+ }
1620
+ /**
1621
+ * Takes the index and the current option as arguments and needs to return the unique identifier for this option.
1622
+ * @param {number} index
1623
+ * @param {SelectOption} option
1624
+ * @return {(number | string)}
1625
+ * @memberof SelectComponent
1626
+ */
1627
+ trackByFn(index, option) {
1628
+ return option.id;
1629
+ }
1630
+ /**
1631
+ * Emits searched options on filtering options in select dropdown
1632
+ * @param {string} searchText
1633
+ * @memberof SelectComponent
1634
+ */
1635
+ onOptionSearch(searchText) {
1636
+ this.optionSearched.emit(searchText);
1637
+ }
1638
+ /**
1639
+ * Compares the two passed options
1640
+ * @param {any} option1
1641
+ * @param {any} option2
1642
+ * @return {boolean}
1643
+ * @memberof SelectComponent
1644
+ */
1645
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1646
+ comparer(option1, option2) {
1647
+ return option1 && option2 ? option1.id === option2.id : option1 === option2;
1648
+ }
1649
+ /**
1650
+ * Sorts the options
1651
+ * @memberof SelectComponent
1652
+ */
1653
+ ngAfterViewInit() {
1654
+ if (this.isSortNeeded && Array.isArray(this.dropdownOptions)) {
1655
+ this.dropdownOptions = this.arraySorting(this.dropdownOptions);
1656
+ }
1657
+ }
1658
+ /**
1659
+ * Sorts the options by using arraySorting method
1660
+ * @memberof SelectComponent
1661
+ */
1662
+ sortOptions() {
1663
+ if (this.isSortNeeded && Array.isArray(this.dropdownOptions)) {
1664
+ this.sortedOptions = this.arraySorting(this.dropdownOptions);
1665
+ }
1666
+ else {
1667
+ this.sortedOptions = this.dropdownOptions;
1668
+ }
1669
+ }
1670
+ /**
1671
+ * Utility method to sort dropdown options in ascending order.
1672
+ * @param {SelectOption[]} list
1673
+ * @return {SelectOption[]}
1674
+ * @memberof SelectComponent
1675
+ */
1676
+ arraySorting(list) {
1677
+ const clonedValue = [...list];
1678
+ const sort = clonedValue.sort((a, b) => {
1679
+ if (a.name.toLowerCase() === b.name.toLowerCase())
1680
+ return 0;
1681
+ if (a.name.toLowerCase() === 'all')
1682
+ return -1;
1683
+ if (b.name.toLowerCase() === 'all')
1684
+ return 1;
1685
+ if (a.name.toLowerCase() < b.name.toLowerCase())
1686
+ return -1;
1687
+ if (a.name.toLowerCase() > b.name.toLowerCase())
1688
+ return 1;
1689
+ return 0;
1690
+ });
1691
+ return sort;
1692
+ }
1693
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: SelectComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
1694
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: SelectComponent, isStandalone: true, selector: "ieeesa-select", inputs: { isSortNeeded: "isSortNeeded", dropdownOptions: "dropdownOptions", selectedOptions: "selectedOptions", formControlName: "formControlName", isMultiLevel: "isMultiLevel", isLabelAlignedLeft: "isLabelAlignedLeft", selectLabel: "selectLabel", isMultiSelect: "isMultiSelect", isDisabled: "isDisabled", isSearch: "isSearch", placeholderText: "placeholderText" }, outputs: { optionSelected: "optionSelected", optionSearched: "optionSearched" }, providers: [
1695
+ {
1696
+ provide: MAT_SELECT_CONFIG,
1697
+ useValue: { overlayPanelClass: 'ieeesa-select-overlay-pane' },
1698
+ },
1699
+ ], viewQueries: [{ propertyName: "formFields", predicate: SearchComponent$1, descendants: true }], ngImport: i0, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-select-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-select-field__label-left'\r\n : 'ieeesa-select-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-select-field__label\">{{ selectLabel }}</mat-label>\r\n <mat-form-field\r\n [ngClass]=\"\r\n arrowDirection\r\n ? 'ieeesa-select-field__arrow-up'\r\n : 'ieeesa-select-field__arrow-down'\r\n \"\r\n >\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [multiple]=\"isMultiSelect\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n [compareWith]=\"comparer\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"!isMultiSelect\"\r\n [multiple]=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-select-field .mat-mdc-form-field{width:-webkit-fill-available}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__label-left{display:flex}.ieeesa-select-field__label-top{display:block}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:before{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-line-ripple--active:after{opacity:0}.ieeesa-select-field .mat-mdc-select-placeholder{font-size:1em;font-weight:400;color:#000}.ieeesa-select-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fffbfe}.ieeesa-select-field .mdc-text-field--focused,.ieeesa-select-field .mat-mdc-form-field-focus-overlay,.ieeesa-select-overlay-pane .mat-mdc-select-panel{background-color:#fffbfe}.ieeesa-select-overlay-pane .mdc-list-item__primary-text{color:#000}.ieeesa-select-overlay-pane .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:0;float:right}.ieeesa-select-overlay-pane .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-select-overlay-pane .ieeesa-search-field .mat-mdc-form-field-infix{width:100%}\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: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SearchComponent$1, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchType", "searchTerm"], outputs: ["searchValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent$1, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i2$1.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }], encapsulation: i0.ViewEncapsulation.None }); }
1700
+ }
1701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: SelectComponent, decorators: [{
1702
+ type: Component,
1703
+ args: [{ selector: 'ieeesa-select', standalone: true, imports: [
1704
+ CommonModule,
1705
+ SearchComponent$1,
1706
+ ReactiveFormsModule,
1707
+ FormErrorComponent$1,
1708
+ MatFormFieldModule,
1709
+ MatInputModule,
1710
+ MatIconModule,
1711
+ MatSelectModule,
1712
+ ], providers: [
1713
+ {
1714
+ provide: MAT_SELECT_CONFIG,
1715
+ useValue: { overlayPanelClass: 'ieeesa-select-overlay-pane' },
1716
+ },
1717
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-select-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-select-field__label-left'\r\n : 'ieeesa-select-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-select-field__label\">{{ selectLabel }}</mat-label>\r\n <mat-form-field\r\n [ngClass]=\"\r\n arrowDirection\r\n ? 'ieeesa-select-field__arrow-up'\r\n : 'ieeesa-select-field__arrow-down'\r\n \"\r\n >\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [multiple]=\"isMultiSelect\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n [compareWith]=\"comparer\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"!isMultiSelect\"\r\n [multiple]=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\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-select-field .mat-mdc-form-field{width:-webkit-fill-available}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__label-left{display:flex}.ieeesa-select-field__label-top{display:block}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:before{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-line-ripple--active:after{opacity:0}.ieeesa-select-field .mat-mdc-select-placeholder{font-size:1em;font-weight:400;color:#000}.ieeesa-select-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fffbfe}.ieeesa-select-field .mdc-text-field--focused,.ieeesa-select-field .mat-mdc-form-field-focus-overlay,.ieeesa-select-overlay-pane .mat-mdc-select-panel{background-color:#fffbfe}.ieeesa-select-overlay-pane .mdc-list-item__primary-text{color:#000}.ieeesa-select-overlay-pane .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:0;float:right}.ieeesa-select-overlay-pane .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-select-overlay-pane .ieeesa-search-field .mat-mdc-form-field-infix{width:100%}\n"] }]
1718
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { formFields: [{
1719
+ type: ViewChildren,
1720
+ args: [SearchComponent$1]
1721
+ }], isSortNeeded: [{
1722
+ type: Input
1723
+ }], dropdownOptions: [{
1724
+ type: Input
1725
+ }], selectedOptions: [{
1726
+ type: Input
1727
+ }], formControlName: [{
1728
+ type: Input
1729
+ }], isMultiLevel: [{
1730
+ type: Input
1731
+ }], isLabelAlignedLeft: [{
1732
+ type: Input
1733
+ }], selectLabel: [{
1734
+ type: Input
1735
+ }], isMultiSelect: [{
1736
+ type: Input
1737
+ }], isDisabled: [{
1738
+ type: Input
1739
+ }], isSearch: [{
1740
+ type: Input
1741
+ }], placeholderText: [{
1742
+ type: Input
1743
+ }], optionSelected: [{
1744
+ type: Output
1745
+ }], optionSearched: [{
1746
+ type: Output
1747
+ }] } });
1748
+
1749
+ /**
1750
+ * Creates form fields configuration and form group based on passed parameters.
1751
+ * @export
1752
+ * @class FormUtilityService
1753
+ */
1754
+ class FormUtilityService {
1755
+ // eslint-disable-next-line no-unused-vars, no-empty-function
1756
+ constructor(fb) {
1757
+ this.fb = fb;
1758
+ }
1759
+ /**
1760
+ * Returns form fields configuration based on passed control name and type.
1761
+ * @param {string} controlName
1762
+ * @param {string} controlType
1763
+ * @return {FieldConfig}
1764
+ * @memberof FormUtilityService
1765
+ */
1766
+ getFormFieldConfig(controlName, controlType) {
1767
+ return {
1768
+ controlName: controlName,
1769
+ type: controlType,
1770
+ };
1771
+ }
1772
+ /**
1773
+ * Creates and returns form group with passed control name added.
1774
+ * @param {string} controlName
1775
+ * @return {FormGroup}
1776
+ * @memberof FormUtilityService
1777
+ */
1778
+ getFormGroup(controlName) {
1779
+ return this.fb.group({
1780
+ [controlName]: [],
1781
+ });
1782
+ }
1783
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: FormUtilityService, deps: [{ token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
1784
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: FormUtilityService, providedIn: 'root' }); }
1785
+ }
1786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: FormUtilityService, decorators: [{
1787
+ type: Injectable,
1788
+ args: [{
1789
+ providedIn: 'root',
1790
+ }]
1791
+ }], ctorParameters: function () { return [{ type: i3.FormBuilder }]; } });
1792
+
1793
+ /**
1794
+ * DatepickerService is used in date-picker and date-picker-header component to get date range, isRangeSelection, and selected date(s).
1795
+ * @export
1796
+ * @class DatepickerService
1797
+ */
1798
+ class DatepickerService {
1799
+ constructor() {
1800
+ this.destroy$ = new Subject();
1801
+ this.range = new Subject();
1802
+ this.range$ = this.range.asObservable();
1803
+ this.isRangeSelection = false;
1804
+ this.range$?.pipe(takeUntil(this.destroy$)).subscribe((range) => {
1805
+ this.selectedRange = {
1806
+ start: range.start,
1807
+ end: range.end,
1808
+ };
1809
+ });
1810
+ }
1811
+ /**
1812
+ * Returns the calendar type.
1813
+ * @return {boolean}
1814
+ * @memberof DatepickerService
1815
+ */
1816
+ getCalendarType() {
1817
+ return this.isRangeSelection;
1818
+ }
1819
+ /**
1820
+ * Returns selected range
1821
+ * @return {({ start: Date | string; end: Date | string })}
1822
+ * @memberof DatepickerService
1823
+ */
1824
+ getSelectedRange() {
1825
+ return this.selectedRange;
1826
+ }
1827
+ /**
1828
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
1829
+ * @memberof DatePickerHeaderComponent
1830
+ */
1831
+ ngOnDestroy() {
1832
+ this.destroy$.next(true);
1833
+ this.destroy$.unsubscribe();
1834
+ }
1835
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatepickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1836
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatepickerService, providedIn: 'root' }); }
1837
+ }
1838
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DatepickerService, decorators: [{
1839
+ type: Injectable,
1840
+ args: [{
1841
+ providedIn: 'root',
1842
+ }]
1843
+ }], ctorParameters: function () { return []; } });
1844
+
1845
+ class PresentationModule {
1846
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: PresentationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1847
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: PresentationModule }); }
1848
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: PresentationModule }); }
1849
+ }
1850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: PresentationModule, decorators: [{
1851
+ type: NgModule,
1852
+ args: [{
1853
+ declarations: [],
1854
+ imports: [],
1855
+ exports: [],
1856
+ }]
1857
+ }] });
1858
+
1859
+ /*
1860
+ * Public API Surface of presentation
1861
+ */
1862
+
1863
+ /**
1864
+ * Generated bundle index. Do not edit.
1865
+ */
1866
+
1867
+ export { AutocompleteComponent, CheckboxComponent, CustomDateAdapter, DatePickerComponent, DatePickerHeaderComponent, DatepickerService, DynamicFormComponent, DynamicFormFieldDirective, FormErrorComponent, FormUtilityService, InputComponent, NotificationComponent, PresentationModule, RadioComponent, SearchComponent, SelectComponent, TextAreaComponent };
1868
+ //# sourceMappingURL=ieeesa-npm-presentation.mjs.map