@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
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # Presentation
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project presentation` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project presentation`.
8
+ > Note: Don't forget to add `--project presentation` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build presentation` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build presentation`, go to the dist folder `cd dist/presentation` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test presentation` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWVlZXNhLW5wbS1wcmVzZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2llZWVzYS1ucG0tcHJlc2VudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,91 @@
1
+ {
2
+ "ariaLabel": {
3
+ "clear": "Clear",
4
+ "warning": "Warning",
5
+ "previousMonth": "Previous month",
6
+ "nextMonth": "Next month"
7
+ },
8
+ "button": {
9
+ "cancel": "Cancel",
10
+ "ok": "Ok"
11
+ },
12
+ "datePicker": {
13
+ "selectDateLabel": "Select Date",
14
+ "dateFormatLabel": "DD-MMM-YYYY",
15
+ "startDateLabel": "Start Date",
16
+ "endDateLabel": "End Date"
17
+ },
18
+ "dropdown": {
19
+ "placeholderText": "Select your option(s)"
20
+ },
21
+ "textarea": {
22
+ "maxLengthDefault": 1000
23
+ },
24
+ "autocomplete": {
25
+ "minCharToSearch": 3,
26
+ "debounceTime": 1000
27
+ },
28
+ "header": {
29
+ "alt": {
30
+ "logo": "Logo"
31
+ },
32
+ "ariaLabel": {
33
+ "helpLink": "Help Link",
34
+ "userProfile": "User profile",
35
+ "hamburgerMenu": "Hamburger Menu"
36
+ },
37
+ "label": {
38
+ "signOut": "Sign Out"
39
+ }
40
+ },
41
+ "footer": {
42
+ "alt": {
43
+ "logo": "IEEE Logo"
44
+ },
45
+ "links": [
46
+ {
47
+ "label": "Dashboard",
48
+ "ariaLabel": "Dashboard",
49
+ "redirectUrl": "#"
50
+ },
51
+ {
52
+ "label": "Contact & Support",
53
+ "ariaLabel": "Contact & Support",
54
+ "redirectUrl": "https://www.ieee.org/about/contact.html"
55
+ },
56
+ {
57
+ "label": "Accessibility",
58
+ "ariaLabel": "Accessibility",
59
+ "redirectUrl": "https://www.ieee.org/accessibility_statement.html"
60
+ },
61
+ {
62
+ "label": "Nondiscrimination Policy",
63
+ "ariaLabel": "Nondiscrimination Policy",
64
+ "redirectUrl": "https://www.ieee.org/about/corporate/governance/p9-26.html"
65
+ },
66
+ {
67
+ "label": "IEEE Ethics Reporting",
68
+ "ariaLabel": "",
69
+ "redirectUrl": "https://secure.ethicspoint.com/domain/media/en/gui/20410/index.html"
70
+ },
71
+ {
72
+ "label": "IEEE Privacy Policy",
73
+ "ariaLabel": "IEEE Privacy Policy",
74
+ "redirectUrl": "https://www.ieee.org/security-privacy.html"
75
+ },
76
+ {
77
+ "label": "IEEE SA Copyright Policy",
78
+ "ariaLabel": "IEEE SA Copyright Policy",
79
+ "redirectUrl": "https://standards.ieee.org/ipr/"
80
+ }
81
+ ],
82
+ "ieeeLogo": "assets/images/ieee-logo.svg",
83
+ "copyright": {
84
+ "link": "https://www.ieee.org/about/help/site-terms-conditions.html",
85
+ "textPart1": "© Copyright",
86
+ "textPart2": "IEEE – All rights reserved. Use of this website signifies your agreement to the",
87
+ "hyperLinkPart3": " IEEE Terms and Conditions.",
88
+ "textPart4": "A not-for-profit organization, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity."
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,143 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
2
+ import { debounceTime, distinctUntilChanged, filter, Subject, takeUntil, } from 'rxjs';
3
+ import { CommonModule } from '@angular/common';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { MatOptionModule } from '@angular/material/core';
6
+ import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteModule, } from '@angular/material/autocomplete';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { FormErrorComponent } from '@presentation/components/form-error/form-error.component';
11
+ import * as autocompleteConstInfo from '@presentation/assets/constants.json';
12
+ import { FormControlType } from '@presentation/models/form-control-types.model';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@presentation/services/form-utility.service";
15
+ import * as i2 from "@angular/common";
16
+ import * as i3 from "@angular/forms";
17
+ import * as i4 from "@angular/material/core";
18
+ import * as i5 from "@angular/material/autocomplete";
19
+ import * as i6 from "@angular/material/input";
20
+ import * as i7 from "@angular/material/form-field";
21
+ import * as i8 from "@angular/material/button";
22
+ /**
23
+ * Provides auto suggestion for the entered input by filtering the options from the given list of options.
24
+ * @export
25
+ * @class AutocompleteComponent
26
+ * @implements {OnInit}
27
+ * @implements {FormField}
28
+ * @implements {OnDestroy}
29
+ */
30
+ export class AutocompleteComponent {
31
+ // eslint-disable-next-line no-unused-vars, no-empty-function
32
+ constructor(formUtilityService) {
33
+ this.formUtilityService = formUtilityService;
34
+ this.value = '';
35
+ this.filteredOptions = [];
36
+ this.isSelectedOptionsVisible = true;
37
+ this.autoCompleteSearchValue = new EventEmitter();
38
+ this.autoCompleteOptionSelected = new EventEmitter();
39
+ this.destroy$ = new Subject();
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ this.autocompleteConstInfo = autocompleteConstInfo;
42
+ this.optionsToFilter = [];
43
+ }
44
+ /**
45
+ * Implementation of ngOnInit lifecycle hook method to initialize components instance properties.
46
+ * @memberof AutocompleteComponent
47
+ */
48
+ ngOnInit() {
49
+ this.config =
50
+ this.config ??
51
+ this.formUtilityService.getFormFieldConfig('autocomplete', FormControlType.AUTO_COMPLETE);
52
+ this.group =
53
+ this.group ?? this.formUtilityService.getFormGroup('autocomplete');
54
+ this.filteredOptions =
55
+ this.config?.autoCompleteOptions ?? this.filteredOptions;
56
+ this.optionsToFilter = this.filteredOptions;
57
+ }
58
+ /**
59
+ * Filters the options on form control value changes.
60
+ * @memberof AutocompleteComponent
61
+ */
62
+ filterOptions() {
63
+ this.group?.controls[this.config?.controlName]?.valueChanges
64
+ .pipe(
65
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
+ filter(
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+ (res) => res.length >=
69
+ this.autocompleteConstInfo.autocomplete.minCharToSearch ||
70
+ res.length === 0), debounceTime(this.autocompleteConstInfo.autocomplete.debounceTime), distinctUntilChanged())
71
+ .pipe(takeUntil(this.destroy$))
72
+ .subscribe((text) => {
73
+ const options = this.optionsToFilter?.filter((item) => item.name.toLowerCase().includes(text.toLowerCase()));
74
+ this.filteredOptions = options ?? this.optionsToFilter;
75
+ this.autoCompleteSearchValue.emit(text);
76
+ });
77
+ }
78
+ /**
79
+ * Emits the selected option name when the form on change event is triggered and returns option name.
80
+ * @param {AutoCompleteOption} data // data is an selected option of filteredOptions.
81
+ * @return {string} // Returns selected option name as string
82
+ * @memberof AutocompleteComponent
83
+ */
84
+ onChange(data) {
85
+ this.autoCompleteOptionSelected.emit(data.name);
86
+ return data.name;
87
+ }
88
+ /**
89
+ * Takes the index and the current item as arguments and needs to return the unique identifier for this item.
90
+ * @param {number} index
91
+ * @param {SelectOption} option
92
+ * @return {(number | string)}
93
+ * @memberof AutocompleteComponent
94
+ */
95
+ trackByFn(index, option) {
96
+ return option.id;
97
+ }
98
+ /**
99
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
100
+ * @memberof AutocompleteComponent
101
+ */
102
+ ngOnDestroy() {
103
+ this.destroy$.next(true);
104
+ this.destroy$.unsubscribe();
105
+ }
106
+ 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 }); }
107
+ 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: [
108
+ {
109
+ provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
110
+ useValue: { overlayPanelClass: 'ieeesa-autocomplete-overlay-pane' },
111
+ },
112
+ ], 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: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.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 }); }
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AutocompleteComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ selector: 'ieeesa-autocomplete', standalone: true, imports: [
117
+ CommonModule,
118
+ ReactiveFormsModule,
119
+ FormErrorComponent,
120
+ MatOptionModule,
121
+ MatAutocompleteModule,
122
+ MatInputModule,
123
+ MatIconModule,
124
+ MatButtonModule,
125
+ ], providers: [
126
+ {
127
+ provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
128
+ useValue: { overlayPanelClass: 'ieeesa-autocomplete-overlay-pane' },
129
+ },
130
+ ], 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"] }]
131
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { filteredOptions: [{
132
+ type: Input
133
+ }], isSelectedOptionsVisible: [{
134
+ type: Input
135
+ }], autoCompleteSearchValue: [{
136
+ type: Output
137
+ }], autoCompleteOptionSelected: [{
138
+ type: Output
139
+ }], autoComplete: [{
140
+ type: ViewChild,
141
+ args: ['autoComplete']
142
+ }] } });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLHFCQUFxQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzlGLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7Ozs7QUFHaEY7Ozs7Ozs7R0FPRztBQXdCSCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLDZEQUE2RDtJQUM3RCxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVgxRCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ0Ysb0JBQWUsR0FBeUIsRUFBRSxDQUFDO1FBQzNDLDZCQUF3QixHQUFHLElBQUksQ0FBQztRQUMvQiw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3JELCtCQUEwQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbEUsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3BELDhEQUE4RDtRQUM5RCwwQkFBcUIsR0FBUSxxQkFBcUIsQ0FBQztRQUNuRCxvQkFBZSxHQUF5QixFQUFFLENBQUM7SUFFa0IsQ0FBQztJQUM5RDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU07WUFDVCxJQUFJLENBQUMsTUFBTTtnQkFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQ3hDLGNBQWMsRUFDZCxlQUFlLENBQUMsYUFBYSxDQUM5QixDQUFDO1FBQ0osSUFBSSxDQUFDLEtBQUs7WUFDUixJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGVBQWU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsWUFBWTthQUN6RCxJQUFJO1FBQ0gsOERBQThEO1FBQzlELE1BQU07UUFDSiw4REFBOEQ7UUFDOUQsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUNYLEdBQUcsQ0FBQyxNQUFNO1lBQ1IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxlQUFlO1lBQ3pELEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNuQixFQUNELFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUNsRSxvQkFBb0IsRUFBRSxDQUN2QjthQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3JELENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3ZELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQW9CO1FBQzNDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F0RlUscUJBQXFCO2tHQUFyQixxQkFBcUIsbVNBVnJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGdDQUFnQztnQkFDekMsUUFBUSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsa0NBQWtDLEVBQUU7YUFDcEU7U0FDRix3SUMvREgsZ2xEQWdEQSw2aU1EQ0ksWUFBWSw2VkFDWixtQkFBbUIsbTJCQUVuQixlQUFlLDBIQUNmLHFCQUFxQixvV0FDckIsY0FBYyx1dkJBQ2QsYUFBYSw4QkFDYixlQUFlOzsyRkFZTixxQkFBcUI7a0JBdkJqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixlQUFlO3FCQUNoQixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixFQUFFLGtDQUFrQyxFQUFFO3lCQUNwRTtxQkFDRixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJO3lHQU01QixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUNvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBTdWJqZWN0LFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUyxcclxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICdAcHJlc2VudGF0aW9uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICdAcHJlc2VudGF0aW9uL21vZGVscy9mb3JtLWZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlT3B0aW9uIH0gZnJvbSAnQHByZXNlbnRhdGlvbi9tb2RlbHMvYXV0b2NvbXBsZXRlLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICdAcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGF1dG9jb21wbGV0ZUNvbnN0SW5mbyBmcm9tICdAcHJlc2VudGF0aW9uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sVHlwZSB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1VdGlsaXR5U2VydmljZSB9IGZyb20gJ0BwcmVzZW50YXRpb24vc2VydmljZXMvZm9ybS11dGlsaXR5LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGF1dG8gc3VnZ2VzdGlvbiBmb3IgdGhlIGVudGVyZWQgaW5wdXQgYnkgZmlsdGVyaW5nIHRoZSBvcHRpb25zIGZyb20gdGhlIGdpdmVuIGxpc3Qgb2Ygb3B0aW9ucy5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtGb3JtRmllbGR9XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkRlc3Ryb3l9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1hdXRvY29tcGxldGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1FcnJvckNvbXBvbmVudCxcclxuICAgIE1hdE9wdGlvbk1vZHVsZSxcclxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUyxcclxuICAgICAgdXNlVmFsdWU6IHsgb3ZlcmxheVBhbmVsQ2xhc3M6ICdpZWVlc2EtYXV0b2NvbXBsZXRlLW92ZXJsYXktcGFuZScgfSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBGb3JtRmllbGQsIE9uRGVzdHJveSB7XHJcbiAgY29uZmlnITogRmllbGRDb25maWc7XHJcbiAgZ3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgdmFsdWUgPSAnJztcclxuICBASW5wdXQoKSBmaWx0ZXJlZE9wdGlvbnM6IEF1dG9Db21wbGV0ZU9wdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgaXNTZWxlY3RlZE9wdGlvbnNWaXNpYmxlID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgYXV0b0NvbXBsZXRlU2VhcmNoVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAVmlld0NoaWxkKCdhdXRvQ29tcGxldGUnKSBhdXRvQ29tcGxldGUhOiBFbGVtZW50UmVmO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGF1dG9jb21wbGV0ZUNvbnN0SW5mbzogYW55ID0gYXV0b2NvbXBsZXRlQ29uc3RJbmZvO1xyXG4gIG9wdGlvbnNUb0ZpbHRlcjogQXV0b0NvbXBsZXRlT3B0aW9uW10gPSBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtVXRpbGl0eVNlcnZpY2U6IEZvcm1VdGlsaXR5U2VydmljZSkge31cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gaW5pdGlhbGl6ZSBjb21wb25lbnRzIGluc3RhbmNlIHByb3BlcnRpZXMuXHJcbiAgICogQG1lbWJlcm9mIEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWcgPVxyXG4gICAgICB0aGlzLmNvbmZpZyA/P1xyXG4gICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtRmllbGRDb25maWcoXHJcbiAgICAgICAgJ2F1dG9jb21wbGV0ZScsXHJcbiAgICAgICAgRm9ybUNvbnRyb2xUeXBlLkFVVE9fQ09NUExFVEVcclxuICAgICAgKTtcclxuICAgIHRoaXMuZ3JvdXAgPVxyXG4gICAgICB0aGlzLmdyb3VwID8/IHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1Hcm91cCgnYXV0b2NvbXBsZXRlJyk7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5hdXRvQ29tcGxldGVPcHRpb25zID8/IHRoaXMuZmlsdGVyZWRPcHRpb25zO1xyXG4gICAgdGhpcy5vcHRpb25zVG9GaWx0ZXIgPSB0aGlzLmZpbHRlcmVkT3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVycyB0aGUgb3B0aW9ucyBvbiBmb3JtIGNvbnRyb2wgdmFsdWUgY2hhbmdlcy5cclxuICAgKiBAbWVtYmVyb2YgQXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZmlsdGVyT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0/LnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICAocmVzOiBhbnkpID0+XHJcbiAgICAgICAgICAgIHJlcy5sZW5ndGggPj1cclxuICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mby5hdXRvY29tcGxldGUubWluQ2hhclRvU2VhcmNoIHx8XHJcbiAgICAgICAgICAgIHJlcy5sZW5ndGggPT09IDBcclxuICAgICAgICApLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mby5hdXRvY29tcGxldGUuZGVib3VuY2VUaW1lKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zVG9GaWx0ZXI/LmZpbHRlcigoaXRlbSkgPT5cclxuICAgICAgICAgIGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRleHQudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gb3B0aW9ucyA/PyB0aGlzLm9wdGlvbnNUb0ZpbHRlcjtcclxuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyB0aGUgc2VsZWN0ZWQgb3B0aW9uIG5hbWUgd2hlbiB0aGUgZm9ybSBvbiBjaGFuZ2UgZXZlbnQgaXMgdHJpZ2dlcmVkIGFuZCByZXR1cm5zIG9wdGlvbiBuYW1lLlxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9ufSBkYXRhIC8vIGRhdGEgaXMgYW4gc2VsZWN0ZWQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucy5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IC8vIFJldHVybnMgc2VsZWN0ZWQgb3B0aW9uIG5hbWUgYXMgc3RyaW5nXHJcbiAgICogQG1lbWJlcm9mIEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hhbmdlKGRhdGE6IEF1dG9Db21wbGV0ZU9wdGlvbik6IHN0cmluZyB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkLmVtaXQoZGF0YS5uYW1lKTtcclxuICAgIHJldHVybiBkYXRhLm5hbWU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGN1cnJlbnQgaXRlbSBhcyBhcmd1bWVudHMgYW5kIG5lZWRzIHRvIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaXRlbS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQHJldHVybiB7KG51bWJlciB8IHN0cmluZyl9XHJcbiAgICogQG1lbWJlcm9mIEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBvcHRpb246IFNlbGVjdE9wdGlvbik6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gb3B0aW9uLmlkO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uRGVzdHJveSBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIG9wZW4gb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLWF1dG9jb21wbGV0ZVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgKm5nSWY9XCJncm91cFwiXHJcbiAgW25nQ2xhc3NdPVwiXHJcbiAgICBjb25maWcuaXNMYWJlbEFsaWduZWRMZWZ0XHJcbiAgICAgID8gJ2llZWVzYS1hdXRvY29tcGxldGUtZmllbGRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1hdXRvY29tcGxldGUtZmllbGRfX2xhYmVsLXRvcCdcclxuICBcIlxyXG4+XHJcbiAgPG1hdC1sYWJlbCBjbGFzcz1cImllZWVzYS1hdXRvY29tcGxldGVfX2xhYmVsXCI+e3sgY29uZmlnLmxhYmVsIH19PC9tYXQtbGFiZWw+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaWVlZXNhLWF1dG9jb21wbGV0ZV9fbWF0LWZvcm1cIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWF1dG9jb21wbGV0ZV9faW5wdXRcIlxyXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyID8/ICcnXCJcclxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIlxyXG4gICAgICBbbmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIlxyXG4gICAgICAjYXV0b0NvbXBsZXRlXHJcbiAgICAgIChrZXlwcmVzcyk9XCJmaWx0ZXJPcHRpb25zKClcIlxyXG4gICAgLz5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uQ2hhbmdlKCRldmVudC5vcHRpb24udmFsdWUpXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtYXV0b2NvbXBsZXRlX19hdXRvY29tcGxldGUtbGlzdFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlbGVjdGVkT3B0aW9uc1Zpc2libGVcIj5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLm5hbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0b2NvbXBsZXRlQ29uc3RJbmZvLmFyaWFMYWJlbC5jbGVhclwiXHJcbiAgICAgICpuZ0lmPVwidmFsdWVcIlxyXG4gICAgICAoY2xpY2spPVwidmFsdWUgPSAnJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEteG1hcmsgaWVlZXNhLWF1dG9jb21wbGV0ZV9fY2FuY2VsLWljb25cIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,102 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, FormsModule, ReactiveFormsModule, } from '@angular/forms';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatListModule } from '@angular/material/list';
8
+ import { MatCheckboxModule } from '@angular/material/checkbox';
9
+ import { FormErrorComponent } from '@presentation/components/form-error/form-error.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@presentation/services/form-utility.service";
12
+ import * as i2 from "@angular/common";
13
+ import * as i3 from "@angular/material/list";
14
+ import * as i4 from "@angular/material/form-field";
15
+ import * as i5 from "@angular/forms";
16
+ import * as i6 from "@angular/material/checkbox";
17
+ /**
18
+ * Provides implementation of all types of checkboxes.
19
+ * @export
20
+ * @class CheckboxComponent
21
+ * @implements {OnInit}
22
+ * @implements {FormField}
23
+ */
24
+ export class CheckboxComponent {
25
+ /**
26
+ * Input property to get checkbox options.
27
+ * @memberof CheckboxComponent
28
+ * @usageNotes const checkboxes = [{ id: 1, name:"Angular"}]
29
+ */
30
+ set checkboxes(value) {
31
+ this._checkboxes = value;
32
+ }
33
+ get checkboxes() {
34
+ return this._checkboxes;
35
+ }
36
+ // eslint-disable-next-line no-unused-vars, no-empty-function
37
+ constructor(formUtilityService) {
38
+ this.formUtilityService = formUtilityService;
39
+ this.checkboxSelection = new EventEmitter();
40
+ }
41
+ /**
42
+ * Implementation of ngOnInit lifecycle hook method of component to initialize component instance properties.
43
+ * @memberof CheckboxComponent
44
+ */
45
+ ngOnInit() {
46
+ this.createFormGroupAndInitializeProperties();
47
+ }
48
+ /**
49
+ * Creates form group and initializes components properties from config.
50
+ * @memberof CheckboxComponent
51
+ */
52
+ createFormGroupAndInitializeProperties() {
53
+ this.checkboxes = this.config?.checkboxOptions ?? this.checkboxes;
54
+ this.group = this.group ?? this.formUtilityService.getFormGroup('checkbox');
55
+ this.checkboxes?.forEach((checkbox) => {
56
+ this.group.addControl(checkbox.id, new FormControl({
57
+ value: checkbox.checked,
58
+ disabled: checkbox.disabled,
59
+ }));
60
+ });
61
+ }
62
+ /**
63
+ * Sets checkbox selection and emits selected option on change event.
64
+ * @param {CheckboxOption} option
65
+ * @param {boolean} checked
66
+ * @memberof CheckboxComponent
67
+ */
68
+ onChange(option, checked) {
69
+ option.checked = checked;
70
+ this.checkboxSelection.emit(option);
71
+ }
72
+ /**
73
+ * 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.
74
+ * @param {number} index
75
+ * @return {number}
76
+ * @memberof CheckboxComponent
77
+ */
78
+ trackById(index, option) {
79
+ return option.id;
80
+ }
81
+ 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 }); }
82
+ 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.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: FormErrorComponent, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.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 }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CheckboxComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'ieeesa-checkbox', standalone: true, imports: [
87
+ CommonModule,
88
+ MatListModule,
89
+ MatButtonModule,
90
+ MatInputModule,
91
+ FormsModule,
92
+ MatFormFieldModule,
93
+ FormErrorComponent,
94
+ ReactiveFormsModule,
95
+ MatCheckboxModule,
96
+ ], 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"] }]
97
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { checkboxes: [{
98
+ type: Input
99
+ }], checkboxSelection: [{
100
+ type: Output
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc2VudGF0aW9uL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsV0FBVyxFQUVYLFdBQVcsRUFDWCxtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7QUFHOUY7Ozs7OztHQU1HO0FBbUJILE1BQU0sT0FBTyxpQkFBaUI7SUFJNUI7Ozs7T0FJRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQXVCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUZoRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUVKLENBQUM7SUFFOUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFDRDs7O09BR0c7SUFDSCxzQ0FBc0M7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQ25CLFFBQVEsQ0FBQyxFQUFZLEVBQ3JCLElBQUksV0FBVyxDQUFDO2dCQUNkLEtBQUssRUFBRSxRQUFRLENBQUMsT0FBTztnQkFDdkIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO2FBQzVCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsTUFBc0IsRUFBRSxPQUFnQjtRQUMvQyxNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBc0I7UUFDN0MsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7OEdBOURVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHNLQ25EOUIsd3lCQTBCQSwwN1VEV0ksWUFBWSw2VkFDWixhQUFhLG9IQUNiLGVBQWUsOEJBQ2YsY0FBYywrRkFDZCxXQUFXLGtTQUNYLGtCQUFrQiwrQkFDbEIsa0JBQWtCLGdIQUNsQixtQkFBbUIsK1VBQ25CLGlCQUFpQjs7MkZBTVIsaUJBQWlCO2tCQWxCN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGlCQUFpQjtxQkFDbEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTt5R0FZakMsVUFBVTtzQkFEYixLQUFLO2dCQU9JLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Hcm91cCxcclxuICBGb3Jtc01vZHVsZSxcclxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2Zvcm0tZmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJ0BwcmVzZW50YXRpb24vbW9kZWxzL2NoZWNrYm94LW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJ0BwcmVzZW50YXRpb24vY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybVV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQHByZXNlbnRhdGlvbi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgaW1wbGVtZW50YXRpb24gb2YgYWxsIHR5cGVzIG9mIGNoZWNrYm94ZXMuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIENoZWNrYm94Q29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtGb3JtRmllbGR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1jaGVja2JveCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIEZvcm1FcnJvckNvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEZvcm1GaWVsZCB7XHJcbiAgY29uZmlnITogRmllbGRDb25maWc7XHJcbiAgZ3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgcHJpdmF0ZSBfY2hlY2tib3hlcyE6IENoZWNrYm94T3B0aW9uW107XHJcbiAgLyoqXHJcbiAgICogSW5wdXQgcHJvcGVydHkgdG8gZ2V0IGNoZWNrYm94IG9wdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIENoZWNrYm94Q29tcG9uZW50XHJcbiAgICogQHVzYWdlTm90ZXMgY29uc3QgY2hlY2tib3hlcyA9IFt7IGlkOiAxLCBuYW1lOlwiQW5ndWxhclwifV1cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBjaGVja2JveGVzKHZhbHVlOiBDaGVja2JveE9wdGlvbltdKSB7XHJcbiAgICB0aGlzLl9jaGVja2JveGVzID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBjaGVja2JveGVzKCk6IENoZWNrYm94T3B0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94ZXM7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBjaGVja2JveFNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hPcHRpb24+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybVV0aWxpdHlTZXJ2aWNlOiBGb3JtVXRpbGl0eVNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25Jbml0IGxpZmVjeWNsZSBob29rIG1ldGhvZCBvZiBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZSBjb21wb25lbnQgaW5zdGFuY2UgcHJvcGVydGllcy5cclxuICAgKiBAbWVtYmVyb2YgQ2hlY2tib3hDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwQW5kSW5pdGlhbGl6ZVByb3BlcnRpZXMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIGFuZCBpbml0aWFsaXplcyBjb21wb25lbnRzIHByb3BlcnRpZXMgZnJvbSBjb25maWcuXHJcbiAgICogQG1lbWJlcm9mIENoZWNrYm94Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybUdyb3VwQW5kSW5pdGlhbGl6ZVByb3BlcnRpZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrYm94ZXMgPSB0aGlzLmNvbmZpZz8uY2hlY2tib3hPcHRpb25zID8/IHRoaXMuY2hlY2tib3hlcztcclxuICAgIHRoaXMuZ3JvdXAgPSB0aGlzLmdyb3VwID8/IHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1Hcm91cCgnY2hlY2tib3gnKTtcclxuICAgIHRoaXMuY2hlY2tib3hlcz8uZm9yRWFjaCgoY2hlY2tib3gpID0+IHtcclxuICAgICAgdGhpcy5ncm91cC5hZGRDb250cm9sKFxyXG4gICAgICAgIGNoZWNrYm94LmlkIGFzIHN0cmluZyxcclxuICAgICAgICBuZXcgRm9ybUNvbnRyb2woe1xyXG4gICAgICAgICAgdmFsdWU6IGNoZWNrYm94LmNoZWNrZWQsXHJcbiAgICAgICAgICBkaXNhYmxlZDogY2hlY2tib3guZGlzYWJsZWQsXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGNoZWNrYm94IHNlbGVjdGlvbiBhbmQgZW1pdHMgc2VsZWN0ZWQgb3B0aW9uIG9uIGNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9ufSBvcHRpb25cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNoZWNrZWRcclxuICAgKiBAbWVtYmVyb2YgQ2hlY2tib3hDb21wb25lbnRcclxuICAgKi9cclxuICBvbkNoYW5nZShvcHRpb246IENoZWNrYm94T3B0aW9uLCBjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBvcHRpb24uY2hlY2tlZCA9IGNoZWNrZWQ7XHJcbiAgICB0aGlzLmNoZWNrYm94U2VsZWN0aW9uLmVtaXQob3B0aW9uKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQWxsb3dzIEFuZ3VsYXIgdG8gZGV0ZWN0IHRoZSBzcGVjaWZpYyBjaGVja2JveCBvcHRpb24gdGhhdCBuZWVkcyB0byBjaGFuZ2Ugb3IgYmUgYWRkZWQgaW5zdGVhZCBvZiByZWJ1aWxkaW5nIHRoZSB3aG9sZSBjaGVja2JveCBvcHRpb25zIGluIERPTSBieSB0cmFja2luZyBvcHRpb24gdW5pcXVlIElkLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEByZXR1cm4ge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgQ2hlY2tib3hDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5SWQoaW5kZXg6IG51bWJlciwgb3B0aW9uOiBDaGVja2JveE9wdGlvbik6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gb3B0aW9uLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgY2xhc3M9XCJpZWVlc2EtY2hlY2tib3gtZmllbGRcIlxyXG4gICpuZ0lmPVwiZ3JvdXBcIlxyXG4gIFtuZ0NsYXNzXT1cIlxyXG4gICAgY29uZmlnLmlzTGFiZWxBbGlnbmVkTGVmdFxyXG4gICAgICA/ICdpZWVlc2EtY2hlY2tib3gtZmllbGRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1jaGVja2JveC1maWVsZF9fbGFiZWwtdG9wJ1xyXG4gIFwiXHJcbj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwiaWVlZXNhLWJvZHktc20tMTQgaWVlZXNhLWNoZWNrYm94LWZpZWxkX19sYWJlbFwiPnt7XHJcbiAgICBjb25maWcubGFiZWxcclxuICB9fTwvbWF0LWxhYmVsPlxyXG4gIDxtYXQtbGlzdD5cclxuICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjaGVja2JveGVzOyB0cmFja0J5OiB0cmFja0J5SWRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2Uob3B0aW9uLCB0cnVlKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxyXG4gICAgICBbY2hlY2tlZF09XCJvcHRpb24uY2hlY2tlZFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IG9wdGlvbi5uYW1lIH19XHJcbiAgICA8L21hdC1jaGVja2JveD5cclxuICA8L21hdC1saXN0PlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuPC9kaXY+XHJcbiJdfQ==