@ieeesa-npm/presentation 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/ieeesa-npm-presentation.mjs +5 -0
- package/esm2022/lib/assets/constants.json +91 -0
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +143 -0
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +102 -0
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +306 -0
- package/esm2022/lib/components/date-picker-header/date-picker-header.component.mjs +153 -0
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +310 -0
- package/esm2022/lib/components/form-error/form-error.component.mjs +24 -0
- package/esm2022/lib/components/input/input.component.mjs +78 -0
- package/esm2022/lib/components/notification/notification.component.mjs +43 -0
- package/esm2022/lib/components/radio/radio.component.mjs +93 -0
- package/esm2022/lib/components/search/search.component.mjs +137 -0
- package/esm2022/lib/components/select/select.component.mjs +253 -0
- package/esm2022/lib/components/text-area/text-area.component.mjs +31 -0
- package/esm2022/lib/date-formats.mjs +11 -0
- package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +209 -0
- package/esm2022/lib/models/autocomplete-option.model.mjs +2 -0
- package/esm2022/lib/models/calendar.model.mjs +10 -0
- package/esm2022/lib/models/checkbox-option.model.mjs +2 -0
- package/esm2022/lib/models/date-picker.model.mjs +2 -0
- package/esm2022/lib/models/field-config.model.mjs +2 -0
- package/esm2022/lib/models/form-control-types.model.mjs +20 -0
- package/esm2022/lib/models/form-field.model.mjs +2 -0
- package/esm2022/lib/models/form-grid.model.mjs +2 -0
- package/esm2022/lib/models/form.model.mjs +2 -0
- package/esm2022/lib/models/radio-option.model.mjs +2 -0
- package/esm2022/lib/models/search.model.mjs +10 -0
- package/esm2022/lib/models/select-option.model.mjs +2 -0
- package/esm2022/lib/presentation.module.mjs +16 -0
- package/esm2022/lib/services/datepicker.service.mjs +55 -0
- package/esm2022/lib/services/form-utility.service.mjs +47 -0
- package/esm2022/lib/validation-patterns.mjs +7 -0
- package/esm2022/public-api.mjs +20 -0
- package/fesm2022/ieeesa-npm-presentation.mjs +1868 -0
- package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/autocomplete/autocomplete.component.d.ts +64 -0
- package/lib/components/checkbox/checkbox.component.d.ts +55 -0
- package/lib/components/date-picker/date-picker.component.d.ts +130 -0
- package/lib/components/date-picker-header/date-picker-header.component.d.ts +76 -0
- package/lib/components/dynamic-form/dynamic-form.component.d.ts +186 -0
- package/lib/components/form-error/form-error.component.d.ts +15 -0
- package/lib/components/input/input.component.d.ts +34 -0
- package/lib/components/notification/notification.component.d.ts +21 -0
- package/lib/components/radio/radio.component.d.ts +49 -0
- package/lib/components/search/search.component.d.ts +66 -0
- package/lib/components/select/select.component.d.ts +116 -0
- package/lib/components/text-area/text-area.component.d.ts +11 -0
- package/lib/date-formats.d.ts +10 -0
- package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +78 -0
- package/lib/models/autocomplete-option.model.d.ts +4 -0
- package/lib/models/calendar.model.d.ts +5 -0
- package/lib/models/checkbox-option.model.d.ts +6 -0
- package/lib/models/date-picker.model.d.ts +13 -0
- package/lib/models/field-config.model.d.ts +42 -0
- package/lib/models/form-control-types.model.d.ts +10 -0
- package/lib/models/form-field.model.d.ts +6 -0
- package/lib/models/form-grid.model.d.ts +7 -0
- package/lib/models/form.model.d.ts +7 -0
- package/lib/models/radio-option.model.d.ts +5 -0
- package/lib/models/search.model.d.ts +5 -0
- package/lib/models/select-option.model.d.ts +5 -0
- package/lib/presentation.module.d.ts +6 -0
- package/lib/services/datepicker.service.d.ts +48 -0
- package/lib/services/form-utility.service.d.ts +29 -0
- package/lib/validation-patterns.d.ts +6 -0
- package/package.json +25 -0
- package/public-api.d.ts +16 -0
- package/src/lib/assets/constants.json +91 -0
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==
|