asksuite-citrus 0.2.1 → 0.3.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/esm2022/lib/asksuite-citrus.module.mjs +22 -14
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +12 -6
- package/esm2022/lib/components/skeleton/skeleton.component.mjs +22 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/asksuite-citrus.mjs +46 -13
- package/fesm2022/asksuite-citrus.mjs.map +1 -1
- package/lib/asksuite-citrus.module.d.ts +8 -6
- package/lib/components/autocomplete/autocomplete.component.d.ts +2 -2
- package/lib/components/skeleton/skeleton.component.d.ts +10 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
@@ -1,21 +1,23 @@
|
|
1
1
|
import { NgModule } from '@angular/core';
|
2
2
|
import { ButtonComponent } from './components/button/button.component';
|
3
|
-
import { CommonModule } from
|
3
|
+
import { CommonModule } from '@angular/common';
|
4
4
|
import { InputComponent } from './components/input/input.component';
|
5
5
|
import { SelectComponent } from './components/select/select.component';
|
6
6
|
import { BoxComponent } from './components/box/box.component';
|
7
|
-
import { FormsModule, ReactiveFormsModule } from
|
7
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
8
8
|
import { AvatarComponent } from './components/avatar/avatar.component';
|
9
|
-
import { DropdownContainerComponent } from
|
9
|
+
import { DropdownContainerComponent } from './components/dropdown-container/dropdown-container.component';
|
10
10
|
import { AskDropdownDirective } from './directives/ask-dropdown.directive';
|
11
11
|
import { AutocompleteComponent } from './components/autocomplete/autocomplete.component';
|
12
|
-
import { CdkConnectedOverlay, CdkOverlayOrigin, OverlayModule } from
|
12
|
+
import { CdkConnectedOverlay, CdkOverlayOrigin, OverlayModule, } from '@angular/cdk/overlay';
|
13
13
|
import { ChipsComponent } from './components/chips/chips.component';
|
14
14
|
import { CheckboxComponent } from './components/checkbox/checkbox.component';
|
15
15
|
import { DatePickerComponent } from './components/date-picker/date-picker.component';
|
16
16
|
import { DatePickerCalendarComponent } from './components/date-picker/date-picker-calendar/date-picker-calendar.component';
|
17
|
-
import { ScrollingModule } from
|
18
|
-
import { TranslateModule } from
|
17
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
18
|
+
import { TranslateModule } from '@ngx-translate/core';
|
19
|
+
import { SkeletonComponent } from './components/skeleton/skeleton.component';
|
20
|
+
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
19
21
|
import * as i0 from "@angular/core";
|
20
22
|
import * as i1 from "@ngx-translate/core";
|
21
23
|
export class AsksuiteCitrusModule {
|
@@ -31,13 +33,14 @@ export class AsksuiteCitrusModule {
|
|
31
33
|
ChipsComponent,
|
32
34
|
CheckboxComponent,
|
33
35
|
DatePickerComponent,
|
34
|
-
DatePickerCalendarComponent
|
36
|
+
DatePickerCalendarComponent,
|
37
|
+
SkeletonComponent], imports: [CommonModule,
|
35
38
|
FormsModule,
|
36
39
|
ReactiveFormsModule,
|
37
40
|
CdkOverlayOrigin,
|
38
41
|
CdkConnectedOverlay,
|
39
42
|
OverlayModule,
|
40
|
-
ScrollingModule, i1.TranslateModule], exports: [ButtonComponent,
|
43
|
+
ScrollingModule, i1.TranslateModule, NgxSkeletonLoaderModule], exports: [ButtonComponent,
|
41
44
|
InputComponent,
|
42
45
|
SelectComponent,
|
43
46
|
BoxComponent,
|
@@ -48,13 +51,15 @@ export class AsksuiteCitrusModule {
|
|
48
51
|
ChipsComponent,
|
49
52
|
CheckboxComponent,
|
50
53
|
DatePickerComponent,
|
51
|
-
DatePickerCalendarComponent
|
54
|
+
DatePickerCalendarComponent,
|
55
|
+
SkeletonComponent] }); }
|
52
56
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AsksuiteCitrusModule, imports: [CommonModule,
|
53
57
|
FormsModule,
|
54
58
|
ReactiveFormsModule,
|
55
59
|
OverlayModule,
|
56
60
|
ScrollingModule,
|
57
|
-
TranslateModule.forChild()
|
61
|
+
TranslateModule.forChild(),
|
62
|
+
NgxSkeletonLoaderModule] }); }
|
58
63
|
}
|
59
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AsksuiteCitrusModule, decorators: [{
|
60
65
|
type: NgModule,
|
@@ -72,6 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
72
77
|
CheckboxComponent,
|
73
78
|
DatePickerComponent,
|
74
79
|
DatePickerCalendarComponent,
|
80
|
+
SkeletonComponent,
|
75
81
|
],
|
76
82
|
imports: [
|
77
83
|
CommonModule,
|
@@ -81,7 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
81
87
|
CdkConnectedOverlay,
|
82
88
|
OverlayModule,
|
83
89
|
ScrollingModule,
|
84
|
-
TranslateModule.forChild()
|
90
|
+
TranslateModule.forChild(),
|
91
|
+
NgxSkeletonLoaderModule,
|
85
92
|
],
|
86
93
|
exports: [
|
87
94
|
ButtonComponent,
|
@@ -95,8 +102,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
95
102
|
ChipsComponent,
|
96
103
|
CheckboxComponent,
|
97
104
|
DatePickerComponent,
|
98
|
-
DatePickerCalendarComponent
|
99
|
-
|
105
|
+
DatePickerCalendarComponent,
|
106
|
+
SkeletonComponent,
|
107
|
+
],
|
100
108
|
}]
|
101
109
|
}] });
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNrc3VpdGUtY2l0cnVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2Fza3N1aXRlLWNpdHJ1cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsYUFBYSxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQTZDOUQsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsaUJBekM3QixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZixZQUFZO1lBQ1osZUFBZTtZQUNmLDBCQUEwQjtZQUMxQixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQixpQkFBaUIsYUFHakIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZUFBZSxzQkFFZix1QkFBdUIsYUFHdkIsZUFBZTtZQUNmLGNBQWM7WUFDZCxlQUFlO1lBQ2YsWUFBWTtZQUNaLGVBQWU7WUFDZiwwQkFBMEI7WUFDMUIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQiwyQkFBMkI7WUFDM0IsaUJBQWlCOytHQUdSLG9CQUFvQixZQTFCN0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFHbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzFCLHVCQUF1Qjs7MkZBa0JkLG9CQUFvQjtrQkEzQ2hDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JveC9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFza0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Fzay1kcm9wZG93bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gIENka092ZXJsYXlPcmlnaW4sXG4gIE92ZXJsYXlNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoaXBzL2NoaXBzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLWNhbGVuZGFyL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgQm94Q29tcG9uZW50LFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBBc2tEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgQ2hpcHNDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgU2tlbGV0b25Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIEJveENvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgRHJvcGRvd25Db250YWluZXJDb21wb25lbnQsXG4gICAgQXNrRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIENoaXBzQ29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNhbGVuZGFyQ29tcG9uZW50LFxuICAgIFNrZWxldG9uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBc2tzdWl0ZUNpdHJ1c01vZHVsZSB7fVxuIl19
|
@@ -71,6 +71,7 @@ export class AutocompleteComponent {
|
|
71
71
|
this.selectedOption = item;
|
72
72
|
this.onChange(this.selectedOption);
|
73
73
|
this.hideOptions();
|
74
|
+
this.change.detectChanges();
|
74
75
|
}
|
75
76
|
handleAutocompleteClick() {
|
76
77
|
this.closed
|
@@ -125,6 +126,11 @@ export class AutocompleteComponent {
|
|
125
126
|
this.selectAllOptions(checked);
|
126
127
|
}
|
127
128
|
selectAllOptions(selected) {
|
129
|
+
this.options.forEach(option => {
|
130
|
+
if (this.selectionForm.value[option[this.valueProp]] === undefined) {
|
131
|
+
this.selectionForm.addControl(option[this.valueProp], this.formBuilder.control(selected), { emitEvent: false });
|
132
|
+
}
|
133
|
+
});
|
128
134
|
const newValues = Object.keys(this.selectionForm.controls)
|
129
135
|
.reduce((acc, curr) => {
|
130
136
|
acc[curr] = selected;
|
@@ -165,20 +171,20 @@ export class AutocompleteComponent {
|
|
165
171
|
}
|
166
172
|
// Control Value Accessor
|
167
173
|
writeValue(obj) {
|
168
|
-
if (!obj || !obj.length) {
|
174
|
+
if (!obj || (Array.isArray(obj) && !obj.length) && this.selectAll) {
|
169
175
|
this.selectAllOptions(this.selectAll);
|
170
176
|
return;
|
171
177
|
}
|
172
|
-
if (this.multiple) {
|
178
|
+
if (this.multiple && Array.isArray(obj)) {
|
173
179
|
obj.forEach((item) => {
|
174
180
|
this.selectionForm.addControl(item[this.valueProp], this.formBuilder.control(true), { emitEvent: false });
|
175
181
|
});
|
176
182
|
this.selectionForm.updateValueAndValidity();
|
177
|
-
this.change.detectChanges();
|
178
183
|
}
|
179
184
|
else {
|
180
185
|
this.selectedOption = obj;
|
181
186
|
}
|
187
|
+
this.change.detectChanges();
|
182
188
|
}
|
183
189
|
registerOnChange(fn) {
|
184
190
|
this.onChange = fn;
|
@@ -190,11 +196,11 @@ export class AutocompleteComponent {
|
|
190
196
|
this.disabled = isDisabled;
|
191
197
|
}
|
192
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1.FormBuilder }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.ChipsComponent, selector: "ask-chips", inputs: ["color"], outputs: ["action"] }, { kind: "component", type: i6.CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.ChipsComponent, selector: "ask-chips", inputs: ["color"], outputs: ["action"] }, { kind: "component", type: i6.CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
194
200
|
}
|
195
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
196
202
|
type: Component,
|
197
|
-
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"] }]
|
203
|
+
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"] }]
|
198
204
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
|
199
205
|
type: ViewChild,
|
200
206
|
args: ["autocomplete"]
|
@@ -227,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
227
233
|
type: HostListener,
|
228
234
|
args: ["window:mousedown", ['$event']]
|
229
235
|
}] } });
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFFOUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Q0FDckQsQ0FBQTtBQVNELE1BQU0sT0FBTyxxQkFBcUI7SUFnRGhDLFlBQW9CLFdBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUF5QjtRQUh6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFT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QUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNTLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQW9CM0IsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkEwRk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcblxuY29uc3QgdmFsdWVBY2Nlc3NvcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXNrLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbdmFsdWVBY2Nlc3Nvcl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBAVmlld0NoaWxkKFwiYXV0b2NvbXBsZXRlXCIpIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoXCJsaXN0XCIpIGxpc3Q6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGVudCcpIG92ZXJsYXlDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcIlwiKVxuICBwcm90ZWN0ZWQgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb24/OiBhbnk7XG4gIHByb3RlY3RlZCBjbG9zZWQgPSB0cnVlO1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uRm9ybTogRm9ybUdyb3VwXG4gIHByb3RlY3RlZCBjaGlwc0NvbGxhcHNlZCA9IHRydWVcbiAgcHJvdGVjdGVkIGNoZWNrQWxsVmFsdWUgPSBmYWxzZVxuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9wb3J0YWw6IFRlbXBsYXRlUG9ydGFsPGFueT4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Rlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZilcbiAgcHJpdmF0ZSByZWFkb25seSBJVEVNU19QRVJfUEFHRSA9IDQwXG4gIHByaXZhdGUgX3BhZ2VOdW1iZXIgPSAxXG4gIHByaXZhdGUgX3JlYWNoZWRFbmQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbj86IChpdGVtOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlGbj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlUHJvcDogc3RyaW5nID0gJydcblxuICBASW5wdXQoKVxuICBvcHRpb25zOiBhbnlbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZSA9ICdOZW5odW1hIG9ww6fDo28nO1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdEFsbCA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZTogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkZvcm0gPSBmb3JtQnVpbGRlci5ncm91cCh7fSlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG5cbiAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpO1xuXG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5zZWxlY3RBbGw7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlKCkge1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgPSAxXG4gICAgICAgIHRoaXMuX3JlYWNoZWRFbmQgPSBmYWxzZVxuICAgICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckZuID8gdGhpcy5maWx0ZXJGbih2YWx1ZSB8fCAnJykgOiBbXSlcbiAgICApLnN1YnNjcmliZShpdGVtcyA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGl0ZW1zXG4gICAgICB0aGlzLmdldE1vcmVJdGVtcygwKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkZvcm1cbiAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDEwMCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufSkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSBPYmplY3Qua2V5cyh2YWx1ZXMpLmV2ZXJ5KHZhbHVlID0+IHZhbHVlc1t2YWx1ZV0pXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gdmFsdWVzW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dKSlcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKVxuICAgICAgfSlcbiAgfVxuXG4gIGhhbmRsZU9wdGlvblNlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBpdGVtO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbilcbiAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VkXG4gICAgICA/IHRoaXMuc2hvd09wdGlvbnMoKVxuICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgfVxuXG4gIHNob3dPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gZmFsc2VcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy53cmFwcGVyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKHRoaXMud3JhcHBlcilcblxuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNvbnRlbnQhLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcod3JhcHBlcjogRWxlbWVudFJlZikge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHdpZHRoOiB3cmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9XSlcbiAgICB9KTtcbiAgfVxuXG4gIGhpZGVPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzptb3VzZWRvd25cIiwgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IFt0aGlzLnNlbGVjdGVkT3B0aW9uXSA6IFtdXG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMub3B0aW9uc1xuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gdGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlW2l0ZW1bdGhpcy52YWx1ZVByb3BdXSlcblxuICAgIHJldHVybiB0aGlzLmNoaXBzQ29sbGFwc2VkXG4gICAgICA/IHNlbGVjdGVkLnNsaWNlKDAsIDEpXG4gICAgICA6IHNlbGVjdGVkO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSAoPEhUTUxJbnB1dEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5jaGVja2VkXG5cbiAgICB0aGlzLnNlbGVjdEFsbE9wdGlvbnMoY2hlY2tlZCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWVzID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25Gb3JtLmNvbnRyb2xzKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgIGFjY1tjdXJyXSA9IHNlbGVjdGVkXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSBhcyB7W2tleTogc3RyaW5nXTogYm9vbGVhbn0pXG5cbiAgICB0aGlzLnNlbGVjdGlvbkZvcm0ucGF0Y2hWYWx1ZShuZXdWYWx1ZXMpXG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBoYW5kbGVDaGlwQWN0aW9uKG9wdGlvbjogYW55KSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5nZXQob3B0aW9uW3RoaXMudmFsdWVQcm9wXSk/LnNldFZhbHVlKGZhbHNlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICB9XG5cbiAgfVxuXG4gIGRpc3BsYXkob3B0aW9uOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Rm4gJiYgdGhpcy5kaXNwbGF5Rm4ob3B0aW9uKVxuICB9XG5cbiAgZ2V0TW9yZUl0ZW1zKHNjcm9sbEluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuX3JlYWNoZWRFbmQgJiYgKCF0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGhcbiAgICAgIHx8ICgoc2Nyb2xsSW5kZXggKyA1KSA+PSAodGhpcy5JVEVNU19QRVJfUEFHRSAqICh0aGlzLl9wYWdlTnVtYmVyIC0gMSB8fCAxKSkpKSkge1xuICAgICAgY29uc3QgbmV4dFBhZ2VJdGVtcyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zLnNsaWNlKFxuICAgICAgICB0aGlzLklURU1TX1BFUl9QQUdFICogKHRoaXMuX3BhZ2VOdW1iZXIgLSAxKSxcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqIHRoaXMuX3BhZ2VOdW1iZXIpO1xuICAgICAgaWYgKG5leHRQYWdlSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIG5leHRQYWdlSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uRm9ybS52YWx1ZVtpdGVtW3RoaXMudmFsdWVQcm9wXV0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICBpdGVtW3RoaXMudmFsdWVQcm9wXSxcbiAgICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuY2hlY2tBbGxWYWx1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLCAuLi5uZXh0UGFnZUl0ZW1zXTtcbiAgICAgICAgdGhpcy5fcGFnZU51bWJlciArPSAxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yZWFjaGVkRW5kID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcblxuICB3cml0ZVZhbHVlKG9iajogYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIW9iaiB8fCAhb2JqLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxPcHRpb25zKHRoaXMuc2VsZWN0QWxsKVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBvYmouZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICBpdGVtW3RoaXMudmFsdWVQcm9wXSxcbiAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodHJ1ZSksXG4gICAgICAgICAge2VtaXRFdmVudDogZmFsc2V9KVxuICAgICAgfSlcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvYmpcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge31cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyXCJcbiAgICAgW2NsYXNzLi1jbG9zZWRdPVwiY2xvc2VkXCJcbiAgICAgW2NsYXNzLi1vcGVuZWRdPVwiIWNsb3NlZFwiXG4gICAgICN3cmFwcGVyXG4+XG4gIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGVcIiAjYXV0b2NvbXBsZXRlPlxuICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1maWVsZFwiXG4gICAgICAgICAgICpuZ0lmPVwiIWNsb3NlZDsgZWxzZSBzZWxlY3Rpb25PclBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiLz5cbiAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGlvbk9yUGxhY2Vob2xkZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAmJiBjbG9zZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtbGlzdFwiIFtjbGFzcy4tY29sbGFwc2VkXT1cImNoaXBzQ29sbGFwc2VkXCI+XG4gICAgICAgICAgPGFzay1jaGlwcyBbc3R5bGUubWF4LXdpZHRoXT1cImNoaXBzQ29sbGFwc2VkID8gJzc1JScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgKGFjdGlvbik9XCJoYW5kbGVDaGlwQWN0aW9uKG9wdGlvbilcIj5cbiAgICAgICAgICAgIHt7ZGlzcGxheShvcHRpb24pfX1cbiAgICAgICAgICA8L2Fzay1jaGlwcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4cGFuZFwiICpuZ0lmPVwibXVsdGlwbGVcIiAoY2xpY2spPVwiY2hpcHNDb2xsYXBzZWQgPSAhY2hpcHNDb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIHt7Y2hpcHNDb2xsYXBzZWQgPyAnVmVyIG1haXMnIDogJ1ZlciBtZW5vcyd9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2xvc2VkICYmICFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+e3twbGFjZWhvbGRlcn19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiIWRpc2FibGVkICYmIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKClcIj57e2Nsb3NlZCA/IFwiZXhwYW5kX21vcmVcIiA6IFwiZXhwYW5kX2xlc3NcIn19PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDb250ZW50PlxuICA8ZGl2ICNsaXN0IGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgZWxzZSBtdWx0aXBsZVNlbGVjdGlvblwiPlxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBbaXRlbVNpemVdPVwiMzZcIiBjbGFzcz1cImxpc3RcIiAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJnZXRNb3JlSXRlbXMoJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgW2NsYXNzLi1oaWdobGlnaHRlZF09XCJzZWxlY3RlZE9wdGlvbiAmJiBzZWxlY3RlZE9wdGlvblt2YWx1ZVByb3BdID09PSBvcHRpb25bdmFsdWVQcm9wXVwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQob3B0aW9uKVwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCI+e3tkaXNwbGF5KG9wdGlvbil9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlU2VsZWN0aW9uPlxuICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCIgKm5nSWY9XCJwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoICYmIHNlbGVjdEFsbFwiPlxuICAgICAgICA8YXNrLWNoZWNrYm94IChjaGFuZ2UpPVwiaGFuZGxlU2VsZWN0QWxsKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImNoZWNrQWxsVmFsdWVcIj5TZWxlY2lvbmFyIHRvZGFzPC9hc2stY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb3JtICpuZ0lmPVwic2VsZWN0aW9uRm9ybS5jb250cm9sc1wiIFtmb3JtR3JvdXBdPVwic2VsZWN0aW9uRm9ybVwiPlxuICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCIzNlwiIGNsYXNzPVwibGlzdC1ib3hcIiAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJnZXRNb3JlSXRlbXMoJGV2ZW50KVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIDxhc2stY2hlY2tib3ggW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb25bdmFsdWVQcm9wXVwiPnt7ZGlzcGxheShvcHRpb24pfX08L2Fzay1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxzcGFuIGNsYXNzPVwiZW1wdHlcIiAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCI+e3tlbXB0eU1lc3NhZ2V9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFFOUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Q0FDckQsQ0FBQTtBQVNELE1BQU0sT0FBTyxxQkFBcUI7SUFnRGhDLFlBQW9CLFdBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUF5QjtRQUh6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFT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O1NBQzFCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBSUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzs4R0FoUVUscUJBQXFCO2tHQUFyQixxQkFBcUIsNlRBSHJCLENBQUMsYUFBYSxDQUFDLHdZQy9CNUIsNmhHQThEQTs7MkZENUJhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakIsQ0FBQyxhQUFhLENBQUMsbUJBQ1QsdUJBQXVCLENBQUMsTUFBTTt1TEFJcEIsS0FBSztzQkFBL0IsU0FBUzt1QkFBQyxjQUFjO2dCQUNOLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1MsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBb0IzQixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQTJGTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBQcm92aWRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBWaWV3Q2hpbGQoXCJhdXRvY29tcGxldGVcIikgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcImxpc3RcIikgbGlzdDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKFwid3JhcHBlclwiKSB3cmFwcGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50Jykgb3ZlcmxheUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpXG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbj86IGFueTtcbiAgcHJvdGVjdGVkIGNsb3NlZCA9IHRydWU7XG4gIHByb3RlY3RlZCBzZWxlY3Rpb25Gb3JtOiBGb3JtR3JvdXBcbiAgcHJvdGVjdGVkIGNoaXBzQ29sbGFwc2VkID0gdHJ1ZVxuICBwcm90ZWN0ZWQgY2hlY2tBbGxWYWx1ZSA9IGZhbHNlXG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHJlYWRvbmx5IElURU1TX1BFUl9QQUdFID0gNDBcbiAgcHJpdmF0ZSBfcGFnZU51bWJlciA9IDFcbiAgcHJpdmF0ZSBfcmVhY2hlZEVuZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuPzogKGl0ZW06IHN0cmluZykgPT4gYW55W107XG5cbiAgQElucHV0KClcbiAgZGlzcGxheUZuPzogKGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmFsdWVQcm9wOiBzdHJpbmcgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IGFueVtdID0gW11cblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnXG5cbiAgQElucHV0KClcbiAgZW1wdHlNZXNzYWdlID0gJ05lbmh1bWEgb3DDp8Ojbyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0QWxsID0gZmFsc2VcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuc2VsZWN0aW9uRm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHt9KVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoKTtcblxuICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCk7XG5cbiAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSB0aGlzLnNlbGVjdEFsbDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSksXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcGFnZU51bWJlciA9IDFcbiAgICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IGZhbHNlXG4gICAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gW11cbiAgICAgIH0pLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuZmlsdGVyRm4gPyB0aGlzLmZpbHRlckZuKHZhbHVlIHx8ICcnKSA6IFtdKVxuICAgICkuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gaXRlbXNcbiAgICAgIHRoaXMuZ2V0TW9yZUl0ZW1zKDApXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uRm9ybVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczoge1trZXk6IHN0cmluZ106IGJvb2xlYW59KSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IE9iamVjdC5rZXlzKHZhbHVlcykuZXZlcnkodmFsdWUgPT4gdmFsdWVzW3ZhbHVlXSlcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiB2YWx1ZXNbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0pKVxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGl0ZW07XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9uKVxuICAgIHRoaXMuaGlkZU9wdGlvbnMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VkXG4gICAgICA/IHRoaXMuc2hvd09wdGlvbnMoKVxuICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgfVxuXG4gIHNob3dPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gZmFsc2VcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy53cmFwcGVyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKHRoaXMud3JhcHBlcilcblxuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNvbnRlbnQhLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcod3JhcHBlcjogRWxlbWVudFJlZikge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHdpZHRoOiB3cmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9XSlcbiAgICB9KTtcbiAgfVxuXG4gIGhpZGVPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzptb3VzZWRvd25cIiwgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IFt0aGlzLnNlbGVjdGVkT3B0aW9uXSA6IFtdXG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMub3B0aW9uc1xuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gdGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlW2l0ZW1bdGhpcy52YWx1ZVByb3BdXSlcblxuICAgIHJldHVybiB0aGlzLmNoaXBzQ29sbGFwc2VkXG4gICAgICA/IHNlbGVjdGVkLnNsaWNlKDAsIDEpXG4gICAgICA6IHNlbGVjdGVkO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSAoPEhUTUxJbnB1dEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5jaGVja2VkXG5cbiAgICB0aGlzLnNlbGVjdEFsbE9wdGlvbnMoY2hlY2tlZCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWVbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICBvcHRpb25bdGhpcy52YWx1ZVByb3BdLFxuICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChzZWxlY3RlZCksXG4gICAgICAgICAge2VtaXRFdmVudDogZmFsc2V9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRm9ybS5jb250cm9scylcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vycl0gPSBzZWxlY3RlZFxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMge1trZXk6IHN0cmluZ106IGJvb2xlYW59KVxuXG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnBhdGNoVmFsdWUobmV3VmFsdWVzKVxuICAgIHRoaXMuc2VsZWN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGFuZGxlQ2hpcEFjdGlvbihvcHRpb246IGFueSkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uZ2V0KG9wdGlvblt0aGlzLnZhbHVlUHJvcF0pPy5zZXRWYWx1ZShmYWxzZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG4gICAgfVxuXG4gIH1cblxuICBkaXNwbGF5KG9wdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZuICYmIHRoaXMuZGlzcGxheUZuKG9wdGlvbilcbiAgfVxuXG4gIGdldE1vcmVJdGVtcyhzY3JvbGxJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLl9yZWFjaGVkRW5kICYmICghdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXG4gICAgICB8fCAoKHNjcm9sbEluZGV4ICsgNSkgPj0gKHRoaXMuSVRFTVNfUEVSX1BBR0UgKiAodGhpcy5fcGFnZU51bWJlciAtIDEgfHwgMSkpKSkpIHtcbiAgICAgIGNvbnN0IG5leHRQYWdlSXRlbXMgPSB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zbGljZShcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqICh0aGlzLl9wYWdlTnVtYmVyIC0gMSksXG4gICAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiB0aGlzLl9wYWdlTnVtYmVyKTtcbiAgICAgIGlmIChuZXh0UGFnZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBuZXh0UGFnZUl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWVbaXRlbVt0aGlzLnZhbHVlUHJvcF1dKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgaXRlbVt0aGlzLnZhbHVlUHJvcF0sXG4gICAgICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0aGlzLmNoZWNrQWxsVmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucywgLi4ubmV4dFBhZ2VJdGVtc107XG4gICAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgKz0gMVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueVtdIHwgYW55KTogdm9pZCB7XG4gICAgaWYgKCFvYmogfHwgKEFycmF5LmlzQXJyYXkob2JqKSAmJiAhb2JqLmxlbmd0aCkgJiYgdGhpcy5zZWxlY3RBbGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyh0aGlzLnNlbGVjdEFsbClcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIG9iai5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgIGl0ZW1bdGhpcy52YWx1ZVByb3BdLFxuICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0cnVlKSxcbiAgICAgICAgICB7ZW1pdEV2ZW50OiBmYWxzZX0pXG4gICAgICB9KVxuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9ialxuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge31cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlclwiXG4gICAgIFtjbGFzcy4tY2xvc2VkXT1cImNsb3NlZFwiXG4gICAgIFtjbGFzcy4tb3BlbmVkXT1cIiFjbG9zZWRcIlxuICAgICAjd3JhcHBlclxuPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlXCIgI2F1dG9jb21wbGV0ZT5cbiAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtZmllbGRcIlxuICAgICAgICAgICAqbmdJZj1cIiFjbG9zZWQ7IGVsc2Ugc2VsZWN0aW9uT3JQbGFjZWhvbGRlclwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dENvbnRyb2xcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIi8+XG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3Rpb25PclBsYWNlaG9sZGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggJiYgY2xvc2VkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWxpc3RcIiBbY2xhc3MuLWNvbGxhcHNlZF09XCJjaGlwc0NvbGxhcHNlZFwiPlxuICAgICAgICAgIDxhc2stY2hpcHMgW3N0eWxlLm1heC13aWR0aF09XCJjaGlwc0NvbGxhcHNlZCA/ICc3NSUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiaGFuZGxlQ2hpcEFjdGlvbihvcHRpb24pXCI+XG4gICAgICAgICAgICB7e2Rpc3BsYXkob3B0aW9uKX19XG4gICAgICAgICAgPC9hc2stY2hpcHM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBhbmRcIiBkYXRhLXRlc3RpZD1cInNlZS1tb3JlXCIgKm5nSWY9XCJtdWx0aXBsZVwiIChjbGljayk9XCJjaGlwc0NvbGxhcHNlZCA9ICFjaGlwc0NvbGxhcHNlZFwiPlxuICAgICAgICAgICAge3tjaGlwc0NvbGxhcHNlZCA/ICdWZXIgbWFpcycgOiAnVmVyIG1lbm9zJ319XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJwbGFjZWhvbGRlclwiICpuZ0lmPVwiY2xvc2VkICYmICFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+e3twbGFjZWhvbGRlcn19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImJ0bi1leHBhbmRcIlxuICAgICAgICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZWQgJiYgaGFuZGxlQXV0b2NvbXBsZXRlQ2xpY2soKVwiPnt7Y2xvc2VkID8gXCJleHBhbmRfbW9yZVwiIDogXCJleHBhbmRfbGVzc1wifX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheUNvbnRlbnQ+XG4gIDxkaXYgI2xpc3QgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiIFtjbGFzcy4tbXVsdGlwbGVdPVwibXVsdGlwbGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpcGxlOyBlbHNlIG11bHRpcGxlU2VsZWN0aW9uXCI+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCIzNlwiIGNsYXNzPVwibGlzdFwiIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cImdldE1vcmVJdGVtcygkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuLWhpZ2hsaWdodGVkXT1cInNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uW3ZhbHVlUHJvcF0gPT09IG9wdGlvblt2YWx1ZVByb3BdXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb24pXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHRcIj57e2Rpc3BsYXkob3B0aW9uKX19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIiAqbmdJZj1cInBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggJiYgc2VsZWN0QWxsXCI+XG4gICAgICAgIDxhc2stY2hlY2tib3ggKGNoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGwoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiY2hlY2tBbGxWYWx1ZVwiPlNlbGVjaW9uYXIgdG9kYXM8L2Fzay1jaGVja2JveD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGZvcm0gZGF0YS10ZXN0aWQ9XCJvcHRpb25zLWZvcm1cIiAqbmdJZj1cInNlbGVjdGlvbkZvcm0uY29udHJvbHNcIiBbZm9ybUdyb3VwXT1cInNlbGVjdGlvbkZvcm1cIj5cbiAgICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBbaXRlbVNpemVdPVwiMzZcIiBjbGFzcz1cImxpc3QtYm94XCIgKHNjcm9sbGVkSW5kZXhDaGFuZ2UpPVwiZ2V0TW9yZUl0ZW1zKCRldmVudClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8YXNrLWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uW3ZhbHVlUHJvcF1cIj57e2Rpc3BsYXkob3B0aW9uKX19PC9hc2stY2hlY2tib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cImVtcHR5XCIgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiPnt7ZW1wdHlNZXNzYWdlfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "ngx-skeleton-loader";
|
4
|
+
export class SkeletonComponent {
|
5
|
+
constructor(elementRef) {
|
6
|
+
this.elementRef = elementRef;
|
7
|
+
this.barsHeight = 100;
|
8
|
+
}
|
9
|
+
get barsCount() {
|
10
|
+
const height = this.elementRef.nativeElement.clientHeight;
|
11
|
+
return Math.round(height / this.barsHeight) || 1;
|
12
|
+
}
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SkeletonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SkeletonComponent, selector: "ask-skeleton", inputs: { barsHeight: "barsHeight" }, ngImport: i0, template: "<ngx-skeleton-loader\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [count]=\"barsCount\"\n appearance=\"line\"\n animation=\"progress\"\n [theme]=\"{\n 'border-radius': '5px',\n height: barsHeight+'px',\n margin: 0,\n display: 'block',\n }\"\n></ngx-skeleton-loader>\n", styles: [":host{display:block}.skeleton-component{display:flex;gap:10px;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "component", type: i1.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }] }); }
|
15
|
+
}
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SkeletonComponent, decorators: [{
|
17
|
+
type: Component,
|
18
|
+
args: [{ selector: 'ask-skeleton', template: "<ngx-skeleton-loader\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [count]=\"barsCount\"\n appearance=\"line\"\n animation=\"progress\"\n [theme]=\"{\n 'border-radius': '5px',\n height: barsHeight+'px',\n margin: 0,\n display: 'block',\n }\"\n></ngx-skeleton-loader>\n", styles: [":host{display:block}.skeleton-component{display:flex;gap:10px;flex-direction:column;height:100%}\n"] }]
|
19
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { barsHeight: [{
|
20
|
+
type: Input
|
21
|
+
}] } });
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFvQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUY5QyxlQUFVLEdBQUcsR0FBRyxDQUFDO0lBRWdDLENBQUM7SUFFM0QsSUFBYyxTQUFTO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0FSVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwRkNQOUIsc1RBYUE7OzJGRE5hLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjO2lHQUtmLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fzay1za2VsZXRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9za2VsZXRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NrZWxldG9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgYmFyc0hlaWdodCA9IDEwMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gIHByb3RlY3RlZCBnZXQgYmFyc0NvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIHJldHVybiBNYXRoLnJvdW5kKGhlaWdodCAvIHRoaXMuYmFyc0hlaWdodCkgfHwgMTtcbiAgfVxufVxuIiwiPG5neC1za2VsZXRvbi1sb2FkZXJcbiAgZGF0YS10ZXN0aWQ9XCJza2VsZXRvbi1sb2FkZXJcIlxuICBjbGFzcz1cInNrZWxldG9uLWNvbXBvbmVudFwiXG4gIFtjb3VudF09XCJiYXJzQ291bnRcIlxuICBhcHBlYXJhbmNlPVwibGluZVwiXG4gIGFuaW1hdGlvbj1cInByb2dyZXNzXCJcbiAgW3RoZW1lXT1cIntcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICc1cHgnLFxuICAgIGhlaWdodDogYmFyc0hlaWdodCsncHgnLFxuICAgIG1hcmdpbjogMCxcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICB9XCJcbj48L25neC1za2VsZXRvbi1sb2FkZXI+XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
@@ -14,6 +14,7 @@ export * from './lib/components/checkbox/checkbox.component';
|
|
14
14
|
export * from './lib/components/chips/chips.component';
|
15
15
|
export * from './lib/components/date-picker/date-picker.component';
|
16
16
|
export * from './lib/components/date-picker/date-picker-calendar/date-picker-calendar.component';
|
17
|
+
export * from './lib/components/skeleton/skeleton.component';
|
17
18
|
// Directives
|
18
19
|
export * from './lib/directives/ask-dropdown.directive';
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFFN0MsYUFBYTtBQUNiLGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQTtBQUN0RCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCxjQUFjLGtFQUFrRSxDQUFBO0FBQ2hGLGNBQWMsc0RBQXNELENBQUE7QUFDcEUsY0FBYyw4Q0FBOEMsQ0FBQTtBQUM1RCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsb0RBQW9ELENBQUE7QUFDbEUsY0FBYyxrRkFBa0YsQ0FBQTtBQUNoRyxjQUFjLDhDQUE4QyxDQUFBO0FBRTVELGFBQWE7QUFDYixjQUFjLHlDQUF5QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhc2tzdWl0ZS1jaXRydXNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc2tzdWl0ZS1jaXRydXMubW9kdWxlJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYm94L2JveC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hpcHMvY2hpcHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLWNhbGVuZGFyL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50J1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2Fzay1kcm9wZG93bi5kaXJlY3RpdmUnXG4iXX0=
|