@sebgroup/green-angular 1.0.0-beta.14 → 1.0.0-beta.18
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/esm2020/index.mjs +2 -1
- package/esm2020/lib/datepicker/datepicker.component.mjs +1 -1
- package/esm2020/lib/dropdown/dropdown-option.directive.mjs +16 -0
- package/esm2020/lib/dropdown/dropdown.component.mjs +86 -25
- package/esm2020/lib/dropdown/dropdown.module.mjs +5 -4
- package/fesm2015/sebgroup-green-angular.mjs +105 -29
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular.mjs +103 -29
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/dropdown/dropdown-option.directive.d.ts +8 -0
- package/lib/dropdown/dropdown.component.d.ts +6 -2
- package/lib/dropdown/dropdown.module.d.ts +3 -2
- package/package.json +3 -3
package/esm2020/index.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export * from './lib/green-angular.module';
|
|
2
2
|
export * from './lib/dropdown/dropdown.module';
|
|
3
3
|
export * from './lib/dropdown/dropdown.component';
|
|
4
|
+
export * from './lib/dropdown/dropdown-option.directive';
|
|
4
5
|
export * from './lib/datepicker/datepicker.module';
|
|
5
6
|
export * from './lib/datepicker/datepicker.component';
|
|
6
7
|
export * from './lib/segmented-control/segmented-control.module';
|
|
7
8
|
export * from './lib/segmented-control/segmented-control.component';
|
|
8
9
|
export * from './lib/badge/badge.module';
|
|
9
10
|
export * from './lib/badge/badge.component';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9ncmVlbi1hbmd1bGFyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLW9wdGlvbi5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JhZGdlL2JhZGdlLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudCdcbiJdfQ==
|
|
@@ -116,7 +116,7 @@ NggDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
116
116
|
useExisting: NggDatepickerComponent,
|
|
117
117
|
multi: true,
|
|
118
118
|
},
|
|
119
|
-
], viewQueries: [{ propertyName: "datepickerDialogElRef", first: true, predicate: ["datepickerDialogElRef"], descendants: true }, { propertyName: "dateInputElRef", first: true, predicate: ["dateInputElRef"], descendants: true }, { propertyName: "datepickerElRef", first: true, predicate: ["datepickerElRef"], descendants: true }, { propertyName: "datepickerTriggerElRef", first: true, predicate: ["datepickerTriggerElRef"], descendants: true }], ngImport: i0, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\">{{ label }}</label>\n <div\n class=\"group\"\n #datepickerElRef\n [class.is-valid]=\"isValid\"\n [class.is-invalid]=\"isValid === false\"\n >\n <input\n [attr.id]=\"id\"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? id + '_info'\n : null\n \"\n type=\"text\"\n placeholder=\"yyyy-mm-dd\"\n #dateInputElRef\n [value]=\"data?.formattedSelectedDate || ''\"\n (change)=\"onDateChange(dateInputElRef.value)\"\n />\n <button\n #datepickerTriggerElRef\n (click)=\"dp?.toggle()\"\n type=\"button\"\n class=\"primary\"\n >\n <i class=\"sg-icon sg-icon-calendar\">Select date</i>\n </button>\n </div>\n <span class=\"form-info\" #formInfo [attr.id]=\"id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n</div>\n<!-- TODO: get or set attributes from within datepicker instance (dp) -->\n<div\n #datepickerDialogElRef\n class=\"popover popover-datepicker\"\n [class.active]=\"dp?.state?.isActive\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose Date\"\n>\n <button type=\"button\" class=\"close\" (click)=\"dp?.close()\">Close</button>\n <div class=\"sg-date\">\n <header>\n <button type=\"button\" class=\"link\" (click)=\"dp?.sub(1, 'months')\">\n <i class=\"sg-icon sg-icon-previous\">Previous month</i>\n </button>\n <ngg-dropdown\n [options]=\"months\"\n text=\"Select\"\n [value]=\"data?.month\"\n selectValue=\"value\"\n (valueChange)=\"dp?.setMonth($event)\"\n ></ngg-dropdown>\n <ngg-dropdown\n *ngIf=\"years\"\n [options]=\"years\"\n text=\"Select\"\n [value]=\"data?.year\"\n selectValue=\"value\"\n (valueChange)=\"dp?.setYear($event)\"\n ></ngg-dropdown>\n <button type=\"button\" class=\"link\" (click)=\"dp?.add(1, 'months')\">\n <i class=\"sg-icon sg-icon-next\">Next month</i>\n </button>\n </header>\n <main>\n <table role=\"grid\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let header of data?.calendar?.headers\"\n [abbr]=\"header.abbr\"\n [class.sg-week-header]=\"header.type === 'week'\"\n [class.sg-day-header]=\"header.type === 'day'\"\n >\n {{ header.displayText }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let week of data?.calendar?.calendarGrid;\n trackBy: trackWeek;\n let i = index\n \"\n >\n <th\n *ngIf=\"data?.calendar?.weekNumbers as weekNumbers\"\n class=\"sg-week-number\"\n >\n {{ weekNumbers[i] }}\n </th>\n <td\n *ngFor=\"let day of week\"\n [attr.data-date]=\"day.formattedDate\"\n [attr.role]=\"day.selected ? 'gridcell' : null\"\n [attr.aria-selected]=\"\n day.selected && !data?.highlightedDate ? true : null\n \"\n [class.disabled]=\"day.disabled\"\n [class.sg-date-today]=\"day.today\"\n [title]=\"day.today ? 'Today' : ''\"\n [tabIndex]=\"\n day.highlighted ||\n (day.selected && !data?.highlightedDate) ||\n (day.today && !data?.highlightedDate && !data?.selectedDate)\n ? 0\n : -1\n \"\n (click)=\"day.currentMonth && dp?.select(day.date)\"\n >\n {{ day.day }}\n </td>\n </tr>\n </tbody>\n </table>\n </main>\n </div>\n</div>\n", components: [{ type: i1.NggDropdownComponent, selector: "ngg-dropdown", inputs: ["id", "texts", "loop", "display", "selectValue", "useValue", "multiSelect", "label", "options", "valid", "invalid", "value"], outputs: ["valueChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
119
|
+
], viewQueries: [{ propertyName: "datepickerDialogElRef", first: true, predicate: ["datepickerDialogElRef"], descendants: true }, { propertyName: "dateInputElRef", first: true, predicate: ["dateInputElRef"], descendants: true }, { propertyName: "datepickerElRef", first: true, predicate: ["datepickerElRef"], descendants: true }, { propertyName: "datepickerTriggerElRef", first: true, predicate: ["datepickerTriggerElRef"], descendants: true }], ngImport: i0, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\">{{ label }}</label>\n <div\n class=\"group\"\n #datepickerElRef\n [class.is-valid]=\"isValid\"\n [class.is-invalid]=\"isValid === false\"\n >\n <input\n [attr.id]=\"id\"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? id + '_info'\n : null\n \"\n type=\"text\"\n placeholder=\"yyyy-mm-dd\"\n #dateInputElRef\n [value]=\"data?.formattedSelectedDate || ''\"\n (change)=\"onDateChange(dateInputElRef.value)\"\n />\n <button\n #datepickerTriggerElRef\n (click)=\"dp?.toggle()\"\n type=\"button\"\n class=\"primary\"\n >\n <i class=\"sg-icon sg-icon-calendar\">Select date</i>\n </button>\n </div>\n <span class=\"form-info\" #formInfo [attr.id]=\"id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n</div>\n<!-- TODO: get or set attributes from within datepicker instance (dp) -->\n<div\n #datepickerDialogElRef\n class=\"popover popover-datepicker\"\n [class.active]=\"dp?.state?.isActive\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose Date\"\n>\n <button type=\"button\" class=\"close\" (click)=\"dp?.close()\">Close</button>\n <div class=\"sg-date\">\n <header>\n <button type=\"button\" class=\"link\" (click)=\"dp?.sub(1, 'months')\">\n <i class=\"sg-icon sg-icon-previous\">Previous month</i>\n </button>\n <ngg-dropdown\n [options]=\"months\"\n text=\"Select\"\n [value]=\"data?.month\"\n selectValue=\"value\"\n (valueChange)=\"dp?.setMonth($event)\"\n ></ngg-dropdown>\n <ngg-dropdown\n *ngIf=\"years\"\n [options]=\"years\"\n text=\"Select\"\n [value]=\"data?.year\"\n selectValue=\"value\"\n (valueChange)=\"dp?.setYear($event)\"\n ></ngg-dropdown>\n <button type=\"button\" class=\"link\" (click)=\"dp?.add(1, 'months')\">\n <i class=\"sg-icon sg-icon-next\">Next month</i>\n </button>\n </header>\n <main>\n <table role=\"grid\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let header of data?.calendar?.headers\"\n [abbr]=\"header.abbr\"\n [class.sg-week-header]=\"header.type === 'week'\"\n [class.sg-day-header]=\"header.type === 'day'\"\n >\n {{ header.displayText }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let week of data?.calendar?.calendarGrid;\n trackBy: trackWeek;\n let i = index\n \"\n >\n <th\n *ngIf=\"data?.calendar?.weekNumbers as weekNumbers\"\n class=\"sg-week-number\"\n >\n {{ weekNumbers[i] }}\n </th>\n <td\n *ngFor=\"let day of week\"\n [attr.data-date]=\"day.formattedDate\"\n [attr.role]=\"day.selected ? 'gridcell' : null\"\n [attr.aria-selected]=\"\n day.selected && !data?.highlightedDate ? true : null\n \"\n [class.disabled]=\"day.disabled\"\n [class.sg-date-today]=\"day.today\"\n [title]=\"day.today ? 'Today' : ''\"\n [tabIndex]=\"\n day.highlighted ||\n (day.selected && !data?.highlightedDate) ||\n (day.today && !data?.highlightedDate && !data?.selectedDate)\n ? 0\n : -1\n \"\n (click)=\"day.currentMonth && dp?.select(day.date)\"\n >\n {{ day.day }}\n </td>\n </tr>\n </tbody>\n </table>\n </main>\n </div>\n</div>\n", components: [{ type: i1.NggDropdownComponent, selector: "ngg-dropdown", inputs: ["id", "texts", "loop", "display", "selectValue", "useValue", "multiSelect", "label", "options", "valid", "invalid", "value"], outputs: ["valueChange", "touched"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDatepickerComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{ selector: 'ngg-datepicker', providers: [
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Directive, TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NggDropdownOptionDirective {
|
|
4
|
+
constructor(templateRef) {
|
|
5
|
+
this.templateRef = templateRef;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
NggDropdownOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownOptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
NggDropdownOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: NggDropdownOptionDirective, selector: "[nggDropdownOption]", ngImport: i0 });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownOptionDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: '[nggDropdownOption]',
|
|
14
|
+
}]
|
|
15
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tb3B0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBS3RELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBbUIsV0FBaUM7UUFBakMsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO0lBQUcsQ0FBQzs7dUhBRDdDLDBCQUEwQjsyR0FBMUIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25nZ0Ryb3Bkb3duT3B0aW9uXScsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikge31cbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Output, ViewChild, EventEmitter, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Output, ViewChild, EventEmitter, ContentChild, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { createDropdown, dropdownValues, } from '@sebgroup/extract';
|
|
4
|
+
import { NggDropdownOptionDirective } from './dropdown-option.directive';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common";
|
|
6
7
|
export class NggDropdownComponent {
|
|
@@ -10,6 +11,7 @@ export class NggDropdownComponent {
|
|
|
10
11
|
this._multiSelect = false;
|
|
11
12
|
this.options = [];
|
|
12
13
|
this.valueChange = new EventEmitter();
|
|
14
|
+
this.touched = new EventEmitter();
|
|
13
15
|
this.toggler = dropdownValues.elements?.toggler;
|
|
14
16
|
this.listbox = dropdownValues.elements?.listbox;
|
|
15
17
|
this.fieldset = dropdownValues.elements?.fieldset;
|
|
@@ -48,12 +50,7 @@ export class NggDropdownComponent {
|
|
|
48
50
|
selectedOption = dropdown.selectValue
|
|
49
51
|
? data[dropdown.selectValue]
|
|
50
52
|
: data;
|
|
51
|
-
|
|
52
|
-
this._value = selectedOption;
|
|
53
|
-
this.valueChange.emit(selectedOption);
|
|
54
|
-
this.onChangeFn && this.onChangeFn(selectedOption);
|
|
55
|
-
this.onTouchedFn && this.onTouchedFn();
|
|
56
|
-
}, 0);
|
|
53
|
+
this.updateValue(selectedOption);
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
56
|
else {
|
|
@@ -67,12 +64,7 @@ export class NggDropdownComponent {
|
|
|
67
64
|
this._value !== [] &&
|
|
68
65
|
selectedOption &&
|
|
69
66
|
JSON.stringify(this._value) !== JSON.stringify(selectedOption)) {
|
|
70
|
-
|
|
71
|
-
this._value = selectedOption;
|
|
72
|
-
this.valueChange.emit(selectedOption);
|
|
73
|
-
this.onChangeFn && this.onChangeFn(selectedOption);
|
|
74
|
-
this.onTouchedFn && this.onTouchedFn();
|
|
75
|
-
}, 0);
|
|
67
|
+
this.updateValue(selectedOption);
|
|
76
68
|
}
|
|
77
69
|
}
|
|
78
70
|
this.cd.detectChanges();
|
|
@@ -108,8 +100,18 @@ export class NggDropdownComponent {
|
|
|
108
100
|
loop: this.loop,
|
|
109
101
|
value: this.value,
|
|
110
102
|
multiSelect: this.multiSelect,
|
|
103
|
+
onTouched: () => {
|
|
104
|
+
this.onTouchedFn?.();
|
|
105
|
+
this.touched.emit(true);
|
|
106
|
+
this.cd.markForCheck();
|
|
107
|
+
},
|
|
111
108
|
};
|
|
112
109
|
}
|
|
110
|
+
updateValue(option) {
|
|
111
|
+
this._value = option;
|
|
112
|
+
this.valueChange.emit(option);
|
|
113
|
+
this.onChangeFn?.(option);
|
|
114
|
+
}
|
|
113
115
|
setSelectionByValue(value) {
|
|
114
116
|
if (!this.dropdown?.isMultiSelect) {
|
|
115
117
|
if (this._value !== value && value !== undefined) {
|
|
@@ -123,13 +125,13 @@ export class NggDropdownComponent {
|
|
|
123
125
|
}
|
|
124
126
|
}
|
|
125
127
|
NggDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
-
NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: NggDropdownComponent, selector: "ngg-dropdown", inputs: { id: "id", texts: "texts", loop: "loop", display: "display", selectValue: "selectValue", useValue: "useValue", multiSelect: "multiSelect", label: "label", options: "options", valid: "valid", invalid: "invalid", value: "value" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
128
|
+
NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: NggDropdownComponent, selector: "ngg-dropdown", inputs: { id: "id", texts: "texts", loop: "loop", display: "display", selectValue: "selectValue", useValue: "useValue", multiSelect: "multiSelect", label: "label", options: "options", valid: "valid", invalid: "invalid", value: "value" }, outputs: { valueChange: "valueChange", touched: "touched" }, providers: [
|
|
127
129
|
{
|
|
128
130
|
provide: NG_VALUE_ACCESSOR,
|
|
129
131
|
useExisting: NggDropdownComponent,
|
|
130
132
|
multi: true,
|
|
131
133
|
},
|
|
132
|
-
], viewQueries: [{ propertyName: "togglerRef", first: true, predicate: ["togglerRef"], descendants: true }, { propertyName: "listboxRef", first: true, predicate: ["listboxRef"], descendants: true }, { propertyName: "fieldsetRef", first: true, predicate: ["fieldsetRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
134
|
+
], queries: [{ propertyName: "customOption", first: true, predicate: NggDropdownOptionDirective, descendants: true }], viewQueries: [{ propertyName: "togglerRef", first: true, predicate: ["togglerRef"], descendants: true }, { propertyName: "listboxRef", first: true, predicate: ["listboxRef"], descendants: true }, { propertyName: "fieldsetRef", first: true, predicate: ["fieldsetRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
133
135
|
<div>
|
|
134
136
|
<span
|
|
135
137
|
class="label"
|
|
@@ -189,7 +191,11 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
189
191
|
</button>
|
|
190
192
|
<ul role="listbox" *ngIf="!dropdown?.isMultiSelect">
|
|
191
193
|
<li
|
|
192
|
-
*ngFor="
|
|
194
|
+
*ngFor="
|
|
195
|
+
let option of dropdown?.options;
|
|
196
|
+
let index = index;
|
|
197
|
+
trackBy: trackByKey
|
|
198
|
+
"
|
|
193
199
|
[id]="option.attributes.id"
|
|
194
200
|
[attr.role]="option.attributes.role"
|
|
195
201
|
[attr.aria-selected]="option.attributes['aria-selected']"
|
|
@@ -197,7 +203,14 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
197
203
|
[class]="option.classes"
|
|
198
204
|
(click)="handler?.select(option)"
|
|
199
205
|
>
|
|
200
|
-
|
|
206
|
+
<ng-container
|
|
207
|
+
*ngTemplateOutlet="
|
|
208
|
+
customOption?.templateRef
|
|
209
|
+
? customOption!.templateRef
|
|
210
|
+
: defaultOption;
|
|
211
|
+
context: { option: option, index: index }
|
|
212
|
+
"
|
|
213
|
+
></ng-container>
|
|
201
214
|
</li>
|
|
202
215
|
</ul>
|
|
203
216
|
<div *ngIf="dropdown?.isMultiSelect" class="sg-fieldset-container">
|
|
@@ -217,21 +230,37 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
217
230
|
[id]="option.attributes.id"
|
|
218
231
|
[attr.aria-selected]="option.attributes['aria-selected']"
|
|
219
232
|
[class]="option.classes"
|
|
220
|
-
*ngFor="
|
|
233
|
+
*ngFor="
|
|
234
|
+
let option of dropdown?.options;
|
|
235
|
+
let index = index;
|
|
236
|
+
trackBy: trackByKey
|
|
237
|
+
"
|
|
221
238
|
>
|
|
222
239
|
<input
|
|
223
240
|
type="checkbox"
|
|
224
241
|
(change)="handler?.select(option, false)"
|
|
225
242
|
[checked]="option.selected"
|
|
243
|
+
tabIndex="-1"
|
|
226
244
|
/>
|
|
227
|
-
<
|
|
245
|
+
<ng-container
|
|
246
|
+
*ngTemplateOutlet="
|
|
247
|
+
customOption?.templateRef
|
|
248
|
+
? customOption!.templateRef
|
|
249
|
+
: defaultOption;
|
|
250
|
+
context: { option: option, index: index }
|
|
251
|
+
"
|
|
252
|
+
></ng-container>
|
|
228
253
|
<i></i>
|
|
229
254
|
</label>
|
|
230
255
|
</fieldset>
|
|
231
256
|
</div>
|
|
232
257
|
</div>
|
|
233
258
|
</div>
|
|
234
|
-
|
|
259
|
+
|
|
260
|
+
<ng-template #defaultOption let-option="option">
|
|
261
|
+
{{ option[dropdown!.display] }}
|
|
262
|
+
</ng-template>
|
|
263
|
+
`, isInline: true, directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
235
264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownComponent, decorators: [{
|
|
236
265
|
type: Component,
|
|
237
266
|
args: [{
|
|
@@ -296,7 +325,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
296
325
|
</button>
|
|
297
326
|
<ul role="listbox" *ngIf="!dropdown?.isMultiSelect">
|
|
298
327
|
<li
|
|
299
|
-
*ngFor="
|
|
328
|
+
*ngFor="
|
|
329
|
+
let option of dropdown?.options;
|
|
330
|
+
let index = index;
|
|
331
|
+
trackBy: trackByKey
|
|
332
|
+
"
|
|
300
333
|
[id]="option.attributes.id"
|
|
301
334
|
[attr.role]="option.attributes.role"
|
|
302
335
|
[attr.aria-selected]="option.attributes['aria-selected']"
|
|
@@ -304,7 +337,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
304
337
|
[class]="option.classes"
|
|
305
338
|
(click)="handler?.select(option)"
|
|
306
339
|
>
|
|
307
|
-
|
|
340
|
+
<ng-container
|
|
341
|
+
*ngTemplateOutlet="
|
|
342
|
+
customOption?.templateRef
|
|
343
|
+
? customOption!.templateRef
|
|
344
|
+
: defaultOption;
|
|
345
|
+
context: { option: option, index: index }
|
|
346
|
+
"
|
|
347
|
+
></ng-container>
|
|
308
348
|
</li>
|
|
309
349
|
</ul>
|
|
310
350
|
<div *ngIf="dropdown?.isMultiSelect" class="sg-fieldset-container">
|
|
@@ -324,20 +364,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
324
364
|
[id]="option.attributes.id"
|
|
325
365
|
[attr.aria-selected]="option.attributes['aria-selected']"
|
|
326
366
|
[class]="option.classes"
|
|
327
|
-
*ngFor="
|
|
367
|
+
*ngFor="
|
|
368
|
+
let option of dropdown?.options;
|
|
369
|
+
let index = index;
|
|
370
|
+
trackBy: trackByKey
|
|
371
|
+
"
|
|
328
372
|
>
|
|
329
373
|
<input
|
|
330
374
|
type="checkbox"
|
|
331
375
|
(change)="handler?.select(option, false)"
|
|
332
376
|
[checked]="option.selected"
|
|
377
|
+
tabIndex="-1"
|
|
333
378
|
/>
|
|
334
|
-
<
|
|
379
|
+
<ng-container
|
|
380
|
+
*ngTemplateOutlet="
|
|
381
|
+
customOption?.templateRef
|
|
382
|
+
? customOption!.templateRef
|
|
383
|
+
: defaultOption;
|
|
384
|
+
context: { option: option, index: index }
|
|
385
|
+
"
|
|
386
|
+
></ng-container>
|
|
335
387
|
<i></i>
|
|
336
388
|
</label>
|
|
337
389
|
</fieldset>
|
|
338
390
|
</div>
|
|
339
391
|
</div>
|
|
340
392
|
</div>
|
|
393
|
+
|
|
394
|
+
<ng-template #defaultOption let-option="option">
|
|
395
|
+
{{ option[dropdown!.display] }}
|
|
396
|
+
</ng-template>
|
|
341
397
|
`,
|
|
342
398
|
providers: [
|
|
343
399
|
{
|
|
@@ -374,6 +430,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
374
430
|
type: Input
|
|
375
431
|
}], valueChange: [{
|
|
376
432
|
type: Output
|
|
433
|
+
}], touched: [{
|
|
434
|
+
type: Output
|
|
377
435
|
}], togglerRef: [{
|
|
378
436
|
type: ViewChild,
|
|
379
437
|
args: ['togglerRef']
|
|
@@ -383,5 +441,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
383
441
|
}], fieldsetRef: [{
|
|
384
442
|
type: ViewChild,
|
|
385
443
|
args: ['fieldsetRef']
|
|
444
|
+
}], customOption: [{
|
|
445
|
+
type: ContentChild,
|
|
446
|
+
args: [NggDropdownOptionDirective]
|
|
386
447
|
}] } });
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLEVBQ0wsY0FBYyxFQU9kLGNBQWMsR0FFZixNQUFNLG1CQUFtQixDQUFBOzs7QUFvSDFCLE1BQU0sT0FBTyxvQkFBb0I7SUErQy9CLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBMUNoQyxTQUFJLEdBQWEsS0FBSyxDQUFBO1FBWXZCLGlCQUFZLEdBQUcsS0FBSyxDQUFBO1FBRW5CLFlBQU8sR0FBcUIsRUFBRSxDQUFBO1FBWXBCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUE7UUFZM0UsWUFBTyxHQUEyQixjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtRQUNsRSxZQUFPLEdBQTJCLGNBQWMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO1FBQ2xFLGFBQVEsR0FBMkIsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUE7UUErRnBFLGVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBRSxNQUE4QixFQUFVLEVBQUU7WUFDckUsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQTtRQUNqQyxDQUFDLENBQUE7SUEvRjJDLENBQUM7SUFyQzdDLElBQWEsV0FBVyxDQUFDLEtBQXVCO1FBQzlDLElBQUksQ0FBQyxZQUFZO1lBQ2Ys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Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS2EsV0FBVztzQkFBN0IsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxZQUFZO2dCQUVTLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsWUFBWTtnQkFDVSxXQUFXO3NCQUEzQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQge1xuICBjcmVhdGVEcm9wZG93bixcbiAgQWJzdHJhY3REcm9wZG93bixcbiAgRHJvcGRvd25IYW5kbGVyLFxuICBEcm9wZG93bk9wdGlvbixcbiAgRXh0ZW5kZWREcm9wZG93bk9wdGlvbixcbiAgRWxlbWVudFByb3BzLFxuICBEcm9wZG93bkFyZ3MsXG4gIGRyb3Bkb3duVmFsdWVzLFxuICBEcm9wZG93blRleHRzLFxufSBmcm9tICdAc2ViZ3JvdXAvZXh0cmFjdCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICpuZ0lmPVwibGFiZWxcIlxuICAgICAgICBbaWRdPVwidG9nZ2xlcj8uYXR0cmlidXRlcz8uaWQgKyAnX2xhYmVsJ1wiXG4gICAgICAgID57eyBsYWJlbCB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgbGFiZWwgPyB0b2dnbGVyPy5hdHRyaWJ1dGVzPy5pZCArICdfbGFiZWwnIDogbnVsbFxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIlxuICAgICAgICAgIGZvcm1JbmZvPy50ZXh0Q29udGVudCAmJiAoZm9ybUluZm8/LnRleHRDb250ZW50Py5sZW5ndGggPz8gMCA+IDApXG4gICAgICAgICAgICA/IHRvZ2dsZXI/LmF0dHJpYnV0ZXM/LmlkICsgJ19pbmZvJ1xuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAjdG9nZ2xlclJlZlxuICAgICAgICBbaWRdPVwidG9nZ2xlcj8uYXR0cmlidXRlcz8uaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cInRvZ2dsZXI/LmF0dHJpYnV0ZXM/LlsnYXJpYS1oYXNwb3B1cCddXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJ0b2dnbGVyPy5hdHRyaWJ1dGVzPy5bJ2FyaWEtZXhwYW5kZWQnXVwiXG4gICAgICAgIFthdHRyLmFyaWEtb3duc109XCJ0b2dnbGVyPy5hdHRyaWJ1dGVzPy5bJ2FyaWEtb3ducyddXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRvZ2dsZXI/LmF0dHJpYnV0ZXM/LnRhYkluZGV4XCJcbiAgICAgICAgW3N0eWxlXT1cInRvZ2dsZXI/LmF0dHJpYnV0ZXM/LnN0eWxlXCJcbiAgICAgICAgW2NsYXNzXT1cInRvZ2dsZXI/LmNsYXNzZXNcIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlcj8udG9nZ2xlKClcIlxuICAgICAgICBbY2xhc3MuaXMtdmFsaWRdPVwidmFsaWRcIlxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICBkcm9wZG93bj8udGV4dHM/LnNlbGVjdCB8fCBkcm9wZG93bj8udGV4dHM/LnBsYWNlaG9sZGVyXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZvcm0taW5mb1wiXG4gICAgICAgICNmb3JtSW5mb1xuICAgICAgICBbYXR0ci5pZF09XCJ0b2dnbGVyPy5hdHRyaWJ1dGVzPy5pZCArICdfaW5mbydcIlxuICAgICAgICA+PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGEtZm9ybS1pbmZvXVwiPjwvbmctY29udGVudFxuICAgICAgPjwvc3Bhbj5cbiAgICAgIDxkaXZcbiAgICAgICAgI2xpc3Rib3hSZWZcbiAgICAgICAgW2lkXT1cImxpc3Rib3g/LmF0dHJpYnV0ZXM/LmlkXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJsaXN0Ym94Py5hdHRyaWJ1dGVzPy5yb2xlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIlxuICAgICAgICAgIGxpc3Rib3g/LmF0dHJpYnV0ZXM/LlsnYXJpYS1hY3RpdmVkZXNjZW5kYW50J11cbiAgICAgICAgXCJcbiAgICAgICAgW3RhYmluZGV4XT1cImxpc3Rib3g/LmF0dHJpYnV0ZXM/LnRhYkluZGV4XCJcbiAgICAgICAgW3N0eWxlXT1cImxpc3Rib3g/LmF0dHJpYnV0ZXM/LnN0eWxlXCJcbiAgICAgICAgW2NsYXNzXT1cImxpc3Rib3g/LmNsYXNzZXNcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjbG9zZSBtLTQgbS1zbS0yIGQtYmxvY2sgZC1zbS1ub25lXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlcj8uY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyBkcm9wZG93bj8udGV4dHM/LmNsb3NlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHVsIHJvbGU9XCJsaXN0Ym94XCIgKm5nSWY9XCIhZHJvcGRvd24/LmlzTXVsdGlTZWxlY3RcIj5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZHJvcGRvd24/Lm9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlLZXlcIlxuICAgICAgICAgICAgW2lkXT1cIm9wdGlvbi5hdHRyaWJ1dGVzLmlkXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwib3B0aW9uLmF0dHJpYnV0ZXMucm9sZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIm9wdGlvbi5hdHRyaWJ1dGVzWydhcmlhLXNlbGVjdGVkJ11cIlxuICAgICAgICAgICAgW3N0eWxlXT1cIm9wdGlvbi5hdHRyaWJ1dGVzLnN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJvcHRpb24uY2xhc3Nlc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlcj8uc2VsZWN0KG9wdGlvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG9wdGlvbltkcm9wZG93biEuZGlzcGxheV0gfX1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcGRvd24/LmlzTXVsdGlTZWxlY3RcIiBjbGFzcz1cInNnLWZpZWxkc2V0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxmaWVsZHNldFxuICAgICAgICAgICAgI2ZpZWxkc2V0UmVmXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImZpZWxkc2V0Py5hdHRyaWJ1dGVzPy5pZFwiXG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGFyaWEtbXVsdGlzZWxlY3RhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cInNyLW9ubHlcIiBbaWRdPVwiZmllbGRzZXQ/LmF0dHJpYnV0ZXM/LmlkXCI+XG4gICAgICAgICAgICAgIE9wdGlvbnNcbiAgICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJvcHRpb24uYXR0cmlidXRlcy5yb2xlXCJcbiAgICAgICAgICAgICAgW2lkXT1cIm9wdGlvbi5hdHRyaWJ1dGVzLmlkXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJvcHRpb24uYXR0cmlidXRlc1snYXJpYS1zZWxlY3RlZCddXCJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cIm9wdGlvbi5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkcm9wZG93bj8ub3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUtleVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVyPy5zZWxlY3Qob3B0aW9uLCBmYWxzZSlcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIm9wdGlvbi5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbltkcm9wZG93biEuZGlzcGxheV0gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpPjwvaT5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTmdnRHJvcGRvd25Db21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmdnRHJvcGRvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KCkgaWQ/OiBzdHJpbmdcbiAgQElucHV0KCkgdGV4dHM/OiBEcm9wZG93blRleHRzXG4gIEBJbnB1dCgpIGxvb3A/OiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgZGlzcGxheT86IHN0cmluZ1xuICBASW5wdXQoKSBzZWxlY3RWYWx1ZT86IHN0cmluZ1xuICBASW5wdXQoKSB1c2VWYWx1ZT86IHN0cmluZ1xuXG4gIEBJbnB1dCgpIHNldCBtdWx0aVNlbGVjdCh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpU2VsZWN0ID1cbiAgICAgIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlLnRvU3RyaW5nKCkgPT09ICd0cnVlJyB8fCBmYWxzZVxuICB9XG4gIGdldCBtdWx0aVNlbGVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlTZWxlY3RcbiAgfVxuICBwcml2YXRlIF9tdWx0aVNlbGVjdCA9IGZhbHNlXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIG9wdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXVxuICBASW5wdXQoKSB2YWxpZD86IGJvb2xlYW5cbiAgQElucHV0KCkgaW52YWxpZD86IGJvb2xlYW5cblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuICBASW5wdXQoKSBzZXQgdmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2V0U2VsZWN0aW9uQnlWYWx1ZShuZXdWYWx1ZSlcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogYW55XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgQFZpZXdDaGlsZCgndG9nZ2xlclJlZicpIHB1YmxpYyB0b2dnbGVyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cblxuICBAVmlld0NoaWxkKCdsaXN0Ym94UmVmJykgcHVibGljIGxpc3Rib3hSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICBAVmlld0NoaWxkKCdmaWVsZHNldFJlZicpIHB1YmxpYyBmaWVsZHNldFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cbiAgb25DaGFuZ2VGbj86ICh2YWx1ZTogYW55KSA9PiB2b2lkXG4gIG9uVG91Y2hlZEZuPzogYW55XG5cbiAgZHJvcGRvd24/OiBBYnN0cmFjdERyb3Bkb3duXG4gIGhhbmRsZXI/OiBEcm9wZG93bkhhbmRsZXJcbiAgdG9nZ2xlcj86IFBhcnRpYWw8RWxlbWVudFByb3BzPiA9IGRyb3Bkb3duVmFsdWVzLmVsZW1lbnRzPy50b2dnbGVyXG4gIGxpc3Rib3g/OiBQYXJ0aWFsPEVsZW1lbnRQcm9wcz4gPSBkcm9wZG93blZhbHVlcy5lbGVtZW50cz8ubGlzdGJveFxuICBmaWVsZHNldD86IFBhcnRpYWw8RWxlbWVudFByb3BzPiA9IGRyb3Bkb3duVmFsdWVzLmVsZW1lbnRzPy5maWVsZHNldFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b2dnbGVyUmVmPy5uYXRpdmVFbGVtZW50ICYmIHRoaXMubGlzdGJveFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5oYW5kbGVyID0gY3JlYXRlRHJvcGRvd24oXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgIHRoaXMudG9nZ2xlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aGlzLmxpc3Rib3hSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgdGhpcy5maWVsZHNldFJlZj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKGRyb3Bkb3duKSA9PiB7XG4gICAgICAgICAgdGhpcy5kcm9wZG93biA9IGRyb3Bkb3duXG4gICAgICAgICAgdGhpcy50b2dnbGVyID0gZHJvcGRvd24uZWxlbWVudHMudG9nZ2xlclxuICAgICAgICAgIHRoaXMubGlzdGJveCA9IGRyb3Bkb3duLmVsZW1lbnRzLmxpc3Rib3hcbiAgICAgICAgICB0aGlzLmZpZWxkc2V0ID0gZHJvcGRvd24uZWxlbWVudHMuZmllbGRzZXRcblxuICAgICAgICAgIC8vIFRPRE86IHJlZmFjdG9yIHN0YXRlIGhhbmRsaW5nIHRvIG9ubHkgZW1pdCB2YWx1ZSBjaGFuZ2VzIHdoZW4gdmFsdWUgY2hhbmdlcyAobm90IG9uIHN0YXRlIGNoYW5nZSksIHBlcmhhcHMgdXNpbmcgcnhqcz9cbiAgICAgICAgICBpZiAoIWRyb3Bkb3duLmlzTXVsdGlTZWxlY3QpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuZHJvcGRvd24ub3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChzZWxlY3RlZE9wdGlvbiAmJiAhdGhpcy5fdmFsdWUpIHx8XG4gICAgICAgICAgICAgIChzZWxlY3RlZE9wdGlvbiAmJlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uW2Ryb3Bkb3duLnVzZVZhbHVlXSAhPT1cbiAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlW2Ryb3Bkb3duLnVzZVZhbHVlXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb25zdCB7IGF0dHJpYnV0ZXMsIGNsYXNzZXMsIGFjdGl2ZSwgc2VsZWN0ZWQsIC4uLmRhdGEgfSA9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25cbiAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24gPSBkcm9wZG93bi5zZWxlY3RWYWx1ZVxuICAgICAgICAgICAgICAgID8gZGF0YVtkcm9wZG93bi5zZWxlY3RWYWx1ZV1cbiAgICAgICAgICAgICAgICA6IGRhdGFcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBzZWxlY3RlZE9wdGlvblxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gJiYgdGhpcy5vbkNoYW5nZUZuKHNlbGVjdGVkT3B0aW9uKVxuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4gJiYgdGhpcy5vblRvdWNoZWRGbigpXG4gICAgICAgICAgICAgIH0sIDApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5kcm9wZG93bi5vcHRpb25zXG4gICAgICAgICAgICAgID8uZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZClcbiAgICAgICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBhdHRyaWJ1dGVzLCBjbGFzc2VzLCBhY3RpdmUsIHNlbGVjdGVkLCAuLi5kYXRhIH0gPVxuICAgICAgICAgICAgICAgICAgb3B0aW9uXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRyb3Bkb3duLnNlbGVjdFZhbHVlID8gZGF0YVtkcm9wZG93bi5zZWxlY3RWYWx1ZV0gOiBkYXRhXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKHRoaXMuX3ZhbHVlICE9PSB1bmRlZmluZWQgfHwgc2VsZWN0ZWRPcHRpb24/Lmxlbmd0aCA+IDApICYmXG4gICAgICAgICAgICAgIHRoaXMuX3ZhbHVlICE9PSBbXSAmJlxuICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbiAmJlxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLl92YWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkT3B0aW9uKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0ZWRPcHRpb25cbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuICYmIHRoaXMub25DaGFuZ2VGbihzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuICYmIHRoaXMub25Ub3VjaGVkRm4oKVxuICAgICAgICAgICAgICB9LCAwKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXI/LmRlc3Ryb3koKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaGFuZGxlciAmJlxuICAgICAgKGNoYW5nZXMuaWQgfHwgY2hhbmdlcy50ZXh0IHx8IGNoYW5nZXMubG9vcCB8fCBjaGFuZ2VzLm9wdGlvbnMpXG4gICAgKSB7XG4gICAgICB0aGlzLmhhbmRsZXIudXBkYXRlKHRoaXMucHJvcHMpXG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmblxuICB9XG5cbiAgdHJhY2tCeUtleSA9IChpbmRleDogbnVtYmVyLCBvcHRpb246IEV4dGVuZGVkRHJvcGRvd25PcHRpb24pOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBvcHRpb25bJyddIHx8IG9wdGlvbi5rZXlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHByb3BzKCk6IERyb3Bkb3duQXJncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkIHx8IHRoaXMuZHJvcGRvd24/LmlkLFxuICAgICAgdGV4dHM6IHRoaXMudGV4dHMsXG4gICAgICB1c2VWYWx1ZTogdGhpcy51c2VWYWx1ZSxcbiAgICAgIGRpc3BsYXk6IHRoaXMuZGlzcGxheSxcbiAgICAgIHNlbGVjdFZhbHVlOiB0aGlzLnNlbGVjdFZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgbG9vcDogdGhpcy5sb29wLFxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICBtdWx0aVNlbGVjdDogdGhpcy5tdWx0aVNlbGVjdCxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGlvbkJ5VmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICghdGhpcy5kcm9wZG93bj8uaXNNdWx0aVNlbGVjdCkge1xuICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWVcbiAgICAgICAgY29uc3QgdmFsdWVLZXkgPSA8c3RyaW5nPnRoaXMuaGFuZGxlcj8uZHJvcGRvd24udXNlVmFsdWVcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmhhbmRsZXI/LmRyb3Bkb3duPy5vcHRpb25zLmZpbmQoXG4gICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgIG9wdGlvblt2YWx1ZUtleV0gPT09IHZhbHVlW3ZhbHVlS2V5XSB8fCBvcHRpb25bdmFsdWVLZXldID09PSB2YWx1ZVxuICAgICAgICApXG4gICAgICAgIGlmIChzZWxlY3RlZCkgdGhpcy5oYW5kbGVyPy5zZWxlY3Qoc2VsZWN0ZWQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
448
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUNMLGNBQWMsRUFPZCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTs7O0FBK0l4RSxNQUFNLE9BQU8sb0JBQW9CO0lBbUQvQixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTlDaEMsU0FBSSxHQUFhLEtBQUssQ0FBQTtRQVl2QixpQkFBWSxHQUFHLEtBQUssQ0FBQTtRQUVuQixZQUFPLEdBQXFCLEVBQUUsQ0FBQTtRQVlwQixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3hELFlBQU8sR0FDeEIsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQWM3QixZQUFPLEdBQTJCLGNBQWMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO1FBQ2xFLFlBQU8sR0FBMkIsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUE7UUFDbEUsYUFBUSxHQUEyQixjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQTtRQXNGcEUsZUFBVSxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQThCLEVBQVUsRUFBRTtZQUNyRSxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMs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QW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxXQUFXO3NCQUF2QixLQUFLO2dCQVFHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLO2dCQUthLFdBQVc7c0JBQTdCLE1BQU07Z0JBQ1ksT0FBTztzQkFBekIsTUFBTTtnQkFHeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxZQUFZO2dCQUNTLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsWUFBWTtnQkFDVSxXQUFXO3NCQUEzQyxTQUFTO3VCQUFDLGFBQWE7Z0JBR3hCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBDb250ZW50Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7XG4gIGNyZWF0ZURyb3Bkb3duLFxuICBBYnN0cmFjdERyb3Bkb3duLFxuICBEcm9wZG93bkhhbmRsZXIsXG4gIERyb3Bkb3duT3B0aW9uLFxuICBFeHRlbmRlZERyb3Bkb3duT3B0aW9uLFxuICBFbGVtZW50UHJvcHMsXG4gIERyb3Bkb3duQXJncyxcbiAgZHJvcGRvd25WYWx1ZXMsXG4gIERyb3Bkb3duVGV4dHMsXG59IGZyb20gJ0BzZWJncm91cC9leHRyYWN0J1xuaW1wb3J0IHsgTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLW9wdGlvbi5kaXJlY3RpdmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZy1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAqbmdJZj1cImxhYmVsXCJcbiAgICAgICAgW2lkXT1cInRvZ2dsZXI/LmF0dHJpYnV0ZXM/LmlkICsgJ19sYWJlbCdcIlxuICAgICAgICA+e3sgbGFiZWwgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgIGxhYmVsID8gdG9nZ2xlcj8uYXR0cmlidXRlcz8uaWQgKyAnX2xhYmVsJyA6IG51bGxcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJcbiAgICAgICAgICBmb3JtSW5mbz8udGV4dENvbnRlbnQgJiYgKGZvcm1JbmZvPy50ZXh0Q29udGVudD8ubGVuZ3RoID8/IDAgPiAwKVxuICAgICAgICAgICAgPyB0b2dnbGVyPy5hdHRyaWJ1dGVzPy5pZCArICdfaW5mbydcbiAgICAgICAgICAgIDogbnVsbFxuICAgICAgICBcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgI3RvZ2dsZXJSZWZcbiAgICAgICAgW2lkXT1cInRvZ2dsZXI/LmF0dHJpYnV0ZXM/LmlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0b2dnbGVyPy5hdHRyaWJ1dGVzPy5bJ2FyaWEtaGFzcG9wdXAnXVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwidG9nZ2xlcj8uYXR0cmlidXRlcz8uWydhcmlhLWV4cGFuZGVkJ11cIlxuICAgICAgICBbYXR0ci5hcmlhLW93bnNdPVwidG9nZ2xlcj8uYXR0cmlidXRlcz8uWydhcmlhLW93bnMnXVwiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0b2dnbGVyPy5hdHRyaWJ1dGVzPy50YWJJbmRleFwiXG4gICAgICAgIFtzdHlsZV09XCJ0b2dnbGVyPy5hdHRyaWJ1dGVzPy5zdHlsZVwiXG4gICAgICAgIFtjbGFzc109XCJ0b2dnbGVyPy5jbGFzc2VzXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZXI/LnRvZ2dsZSgpXCJcbiAgICAgICAgW2NsYXNzLmlzLXZhbGlkXT1cInZhbGlkXCJcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgZHJvcGRvd24/LnRleHRzPy5zZWxlY3QgfHwgZHJvcGRvd24/LnRleHRzPy5wbGFjZWhvbGRlclxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmb3JtLWluZm9cIlxuICAgICAgICAjZm9ybUluZm9cbiAgICAgICAgW2F0dHIuaWRdPVwidG9nZ2xlcj8uYXR0cmlidXRlcz8uaWQgKyAnX2luZm8nXCJcbiAgICAgICAgPjxuZy1jb250ZW50IHNlbGVjdD1cIltkYXRhLWZvcm0taW5mb11cIj48L25nLWNvbnRlbnRcbiAgICAgID48L3NwYW4+XG4gICAgICA8ZGl2XG4gICAgICAgICNsaXN0Ym94UmVmXG4gICAgICAgIFtpZF09XCJsaXN0Ym94Py5hdHRyaWJ1dGVzPy5pZFwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwibGlzdGJveD8uYXR0cmlidXRlcz8ucm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJcbiAgICAgICAgICBsaXN0Ym94Py5hdHRyaWJ1dGVzPy5bJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCddXG4gICAgICAgIFwiXG4gICAgICAgIFt0YWJpbmRleF09XCJsaXN0Ym94Py5hdHRyaWJ1dGVzPy50YWJJbmRleFwiXG4gICAgICAgIFtzdHlsZV09XCJsaXN0Ym94Py5hdHRyaWJ1dGVzPy5zdHlsZVwiXG4gICAgICAgIFtjbGFzc109XCJsaXN0Ym94Py5jbGFzc2VzXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY2xvc2UgbS00IG0tc20tMiBkLWJsb2NrIGQtc20tbm9uZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXI/LmNsb3NlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgZHJvcGRvd24/LnRleHRzPy5jbG9zZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDx1bCByb2xlPVwibGlzdGJveFwiICpuZ0lmPVwiIWRyb3Bkb3duPy5pc011bHRpU2VsZWN0XCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IG9wdGlvbiBvZiBkcm9wZG93bj8ub3B0aW9ucztcbiAgICAgICAgICAgICAgbGV0IGluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlLZXlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbaWRdPVwib3B0aW9uLmF0dHJpYnV0ZXMuaWRcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJvcHRpb24uYXR0cmlidXRlcy5yb2xlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwib3B0aW9uLmF0dHJpYnV0ZXNbJ2FyaWEtc2VsZWN0ZWQnXVwiXG4gICAgICAgICAgICBbc3R5bGVdPVwib3B0aW9uLmF0dHJpYnV0ZXMuc3R5bGVcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIm9wdGlvbi5jbGFzc2VzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyPy5zZWxlY3Qob3B0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIGN1c3RvbU9wdGlvbj8udGVtcGxhdGVSZWZcbiAgICAgICAgICAgICAgICAgID8gY3VzdG9tT3B0aW9uIS50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0T3B0aW9uO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgb3B0aW9uOiBvcHRpb24sIGluZGV4OiBpbmRleCB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRyb3Bkb3duPy5pc011bHRpU2VsZWN0XCIgY2xhc3M9XCJzZy1maWVsZHNldC1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZmllbGRzZXRcbiAgICAgICAgICAgICNmaWVsZHNldFJlZlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJmaWVsZHNldD8uYXR0cmlidXRlcz8uaWRcIlxuICAgICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT1cInRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJzci1vbmx5XCIgW2lkXT1cImZpZWxkc2V0Py5hdHRyaWJ1dGVzPy5pZFwiPlxuICAgICAgICAgICAgICBPcHRpb25zXG4gICAgICAgICAgICA8L2xlZ2VuZD5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwib3B0aW9uLmF0dHJpYnV0ZXMucm9sZVwiXG4gICAgICAgICAgICAgIFtpZF09XCJvcHRpb24uYXR0cmlidXRlcy5pZFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwib3B0aW9uLmF0dHJpYnV0ZXNbJ2FyaWEtc2VsZWN0ZWQnXVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJvcHRpb24uY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBvcHRpb24gb2YgZHJvcGRvd24/Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUtleVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlcj8uc2VsZWN0KG9wdGlvbiwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbU9wdGlvbj8udGVtcGxhdGVSZWZcbiAgICAgICAgICAgICAgICAgICAgPyBjdXN0b21PcHRpb24hLnRlbXBsYXRlUmVmXG4gICAgICAgICAgICAgICAgICAgIDogZGVmYXVsdE9wdGlvbjtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgb3B0aW9uOiBvcHRpb24sIGluZGV4OiBpbmRleCB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8aT48L2k+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPcHRpb24gbGV0LW9wdGlvbj1cIm9wdGlvblwiPlxuICAgICAge3sgb3B0aW9uW2Ryb3Bkb3duIS5kaXNwbGF5XSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE5nZ0Ryb3Bkb3duQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ0Ryb3Bkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nXG4gIEBJbnB1dCgpIHRleHRzPzogRHJvcGRvd25UZXh0c1xuICBASW5wdXQoKSBsb29wPzogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIGRpc3BsYXk/OiBzdHJpbmdcbiAgQElucHV0KCkgc2VsZWN0VmFsdWU/OiBzdHJpbmdcbiAgQElucHV0KCkgdXNlVmFsdWU/OiBzdHJpbmdcblxuICBASW5wdXQoKSBzZXQgbXVsdGlTZWxlY3QodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tdWx0aVNlbGVjdCA9XG4gICAgICB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZS50b1N0cmluZygpID09PSAndHJ1ZScgfHwgZmFsc2VcbiAgfVxuICBnZXQgbXVsdGlTZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpU2VsZWN0XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlTZWxlY3QgPSBmYWxzZVxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZ1xuICBASW5wdXQoKSBvcHRpb25zOiBEcm9wZG93bk9wdGlvbltdID0gW11cbiAgQElucHV0KCkgdmFsaWQ/OiBib29sZWFuXG4gIEBJbnB1dCgpIGludmFsaWQ/OiBib29sZWFuXG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlXG4gIH1cbiAgQElucHV0KCkgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnNldFNlbGVjdGlvbkJ5VmFsdWUobmV3VmFsdWUpXG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdG91Y2hlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBAVmlld0NoaWxkKCd0b2dnbGVyUmVmJykgcHVibGljIHRvZ2dsZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICBAVmlld0NoaWxkKCdsaXN0Ym94UmVmJykgcHVibGljIGxpc3Rib3hSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICBAVmlld0NoaWxkKCdmaWVsZHNldFJlZicpIHB1YmxpYyBmaWVsZHNldFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cbiAgQENvbnRlbnRDaGlsZChOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSlcbiAgY3VzdG9tT3B0aW9uPzogTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmVcblxuICBvbkNoYW5nZUZuPzogKHZhbHVlOiBhbnkpID0+IHZvaWRcbiAgb25Ub3VjaGVkRm4/OiAoKSA9PiB2b2lkXG5cbiAgZHJvcGRvd24/OiBBYnN0cmFjdERyb3Bkb3duXG4gIGhhbmRsZXI/OiBEcm9wZG93bkhhbmRsZXJcbiAgdG9nZ2xlcj86IFBhcnRpYWw8RWxlbWVudFByb3BzPiA9IGRyb3Bkb3duVmFsdWVzLmVsZW1lbnRzPy50b2dnbGVyXG4gIGxpc3Rib3g/OiBQYXJ0aWFsPEVsZW1lbnRQcm9wcz4gPSBkcm9wZG93blZhbHVlcy5lbGVtZW50cz8ubGlzdGJveFxuICBmaWVsZHNldD86IFBhcnRpYWw8RWxlbWVudFByb3BzPiA9IGRyb3Bkb3duVmFsdWVzLmVsZW1lbnRzPy5maWVsZHNldFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b2dnbGVyUmVmPy5uYXRpdmVFbGVtZW50ICYmIHRoaXMubGlzdGJveFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5oYW5kbGVyID0gY3JlYXRlRHJvcGRvd24oXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgIHRoaXMudG9nZ2xlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aGlzLmxpc3Rib3hSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgdGhpcy5maWVsZHNldFJlZj8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKGRyb3Bkb3duKSA9PiB7XG4gICAgICAgICAgdGhpcy5kcm9wZG93biA9IGRyb3Bkb3duXG4gICAgICAgICAgdGhpcy50b2dnbGVyID0gZHJvcGRvd24uZWxlbWVudHMudG9nZ2xlclxuICAgICAgICAgIHRoaXMubGlzdGJveCA9IGRyb3Bkb3duLmVsZW1lbnRzLmxpc3Rib3hcbiAgICAgICAgICB0aGlzLmZpZWxkc2V0ID0gZHJvcGRvd24uZWxlbWVudHMuZmllbGRzZXRcblxuICAgICAgICAgIC8vIFRPRE86IHJlZmFjdG9yIHN0YXRlIGhhbmRsaW5nIHRvIG9ubHkgZW1pdCB2YWx1ZSBjaGFuZ2VzIHdoZW4gdmFsdWUgY2hhbmdlcyAobm90IG9uIHN0YXRlIGNoYW5nZSksIHBlcmhhcHMgdXNpbmcgcnhqcz9cbiAgICAgICAgICBpZiAoIWRyb3Bkb3duLmlzTXVsdGlTZWxlY3QpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuZHJvcGRvd24ub3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChzZWxlY3RlZE9wdGlvbiAmJiAhdGhpcy5fdmFsdWUpIHx8XG4gICAgICAgICAgICAgIChzZWxlY3RlZE9wdGlvbiAmJlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uW2Ryb3Bkb3duLnVzZVZhbHVlXSAhPT1cbiAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlW2Ryb3Bkb3duLnVzZVZhbHVlXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb25zdCB7IGF0dHJpYnV0ZXMsIGNsYXNzZXMsIGFjdGl2ZSwgc2VsZWN0ZWQsIC4uLmRhdGEgfSA9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25cbiAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24gPSBkcm9wZG93bi5zZWxlY3RWYWx1ZVxuICAgICAgICAgICAgICAgID8gZGF0YVtkcm9wZG93bi5zZWxlY3RWYWx1ZV1cbiAgICAgICAgICAgICAgICA6IGRhdGFcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHNlbGVjdGVkT3B0aW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuZHJvcGRvd24ub3B0aW9uc1xuICAgICAgICAgICAgICA/LmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpXG4gICAgICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgYXR0cmlidXRlcywgY2xhc3NlcywgYWN0aXZlLCBzZWxlY3RlZCwgLi4uZGF0YSB9ID1cbiAgICAgICAgICAgICAgICAgIG9wdGlvblxuICAgICAgICAgICAgICAgIHJldHVybiBkcm9wZG93bi5zZWxlY3RWYWx1ZSA/IGRhdGFbZHJvcGRvd24uc2VsZWN0VmFsdWVdIDogZGF0YVxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICh0aGlzLl92YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IHNlbGVjdGVkT3B0aW9uPy5sZW5ndGggPiAwKSAmJlxuICAgICAgICAgICAgICB0aGlzLl92YWx1ZSAhPT0gW10gJiZcbiAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24gJiZcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5fdmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHNlbGVjdGVkT3B0aW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXI/LmRlc3Ryb3koKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaGFuZGxlciAmJlxuICAgICAgKGNoYW5nZXMuaWQgfHwgY2hhbmdlcy50ZXh0IHx8IGNoYW5nZXMubG9vcCB8fCBjaGFuZ2VzLm9wdGlvbnMpXG4gICAgKSB7XG4gICAgICB0aGlzLmhhbmRsZXIudXBkYXRlKHRoaXMucHJvcHMpXG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmblxuICB9XG5cbiAgdHJhY2tCeUtleSA9IChpbmRleDogbnVtYmVyLCBvcHRpb246IEV4dGVuZGVkRHJvcGRvd25PcHRpb24pOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBvcHRpb25bJyddIHx8IG9wdGlvbi5rZXlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHByb3BzKCk6IERyb3Bkb3duQXJncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkIHx8IHRoaXMuZHJvcGRvd24/LmlkLFxuICAgICAgdGV4dHM6IHRoaXMudGV4dHMsXG4gICAgICB1c2VWYWx1ZTogdGhpcy51c2VWYWx1ZSxcbiAgICAgIGRpc3BsYXk6IHRoaXMuZGlzcGxheSxcbiAgICAgIHNlbGVjdFZhbHVlOiB0aGlzLnNlbGVjdFZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgbG9vcDogdGhpcy5sb29wLFxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICBtdWx0aVNlbGVjdDogdGhpcy5tdWx0aVNlbGVjdCxcbiAgICAgIG9uVG91Y2hlZDogKCkgPT4ge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuPy4oKVxuICAgICAgICB0aGlzLnRvdWNoZWQuZW1pdCh0cnVlKVxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpXG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUob3B0aW9uOiBhbnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IG9wdGlvblxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvcHRpb24pXG4gICAgdGhpcy5vbkNoYW5nZUZuPy4ob3B0aW9uKVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3Rpb25CeVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd24/LmlzTXVsdGlTZWxlY3QpIHtcbiAgICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlXG4gICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gPHN0cmluZz50aGlzLmhhbmRsZXI/LmRyb3Bkb3duLnVzZVZhbHVlXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5oYW5kbGVyPy5kcm9wZG93bj8ub3B0aW9ucy5maW5kKFxuICAgICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgICBvcHRpb25bdmFsdWVLZXldID09PSB2YWx1ZVt2YWx1ZUtleV0gfHwgb3B0aW9uW3ZhbHVlS2V5XSA9PT0gdmFsdWVcbiAgICAgICAgKVxuICAgICAgICBpZiAoc2VsZWN0ZWQpIHRoaXMuaGFuZGxlcj8uc2VsZWN0KHNlbGVjdGVkKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NggDropdownComponent } from './dropdown.component';
|
|
4
|
+
import { NggDropdownOptionDirective } from './dropdown-option.directive';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class NggDropdownModule {
|
|
6
7
|
}
|
|
7
8
|
NggDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
NggDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownModule, declarations: [NggDropdownComponent], imports: [CommonModule], exports: [NggDropdownComponent] });
|
|
9
|
+
NggDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownModule, declarations: [NggDropdownComponent, NggDropdownOptionDirective], imports: [CommonModule], exports: [NggDropdownComponent, NggDropdownOptionDirective] });
|
|
9
10
|
NggDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownModule, imports: [[CommonModule]] });
|
|
10
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: NggDropdownModule, decorators: [{
|
|
11
12
|
type: NgModule,
|
|
12
13
|
args: [{
|
|
13
|
-
declarations: [NggDropdownComponent],
|
|
14
|
+
declarations: [NggDropdownComponent, NggDropdownOptionDirective],
|
|
14
15
|
imports: [CommonModule],
|
|
15
|
-
exports: [NggDropdownComponent],
|
|
16
|
+
exports: [NggDropdownComponent, NggDropdownOptionDirective],
|
|
16
17
|
}]
|
|
17
18
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFBOztBQU94RSxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSmIsb0JBQW9CLEVBQUUsMEJBQTBCLGFBQ3JELFlBQVksYUFDWixvQkFBb0IsRUFBRSwwQkFBMEI7K0dBRS9DLGlCQUFpQixZQUhuQixDQUFDLFlBQVksQ0FBQzsyRkFHWixpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMEJBQTBCLENBQUM7b0JBQ2hFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMEJBQTBCLENBQUM7aUJBQzVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdnRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1vcHRpb24uZGlyZWN0aXZlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ2dEcm9wZG93bkNvbXBvbmVudCwgTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW05nZ0Ryb3Bkb3duQ29tcG9uZW50LCBOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ0Ryb3Bkb3duTW9kdWxlIHt9XG4iXX0=
|