ng-tailwind 4.2.28 → 4.3.30
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/components/ngt-action/ngt-action.component.d.ts +15 -4
- package/components/ngt-button/ngt-button.component.d.ts +8 -5
- package/components/ngt-checkbox/ngt-checkbox.component.d.ts +10 -6
- package/components/ngt-form/ngt-form.component.d.ts +6 -3
- package/components/ngt-radio-button/ngt-radio-button.component.d.ts +10 -5
- package/components/ngt-section/ngt-section.component.d.ts +6 -3
- package/components/ngt-select/ngt-select.component.d.ts +8 -5
- package/esm2020/components/ngt-action/ngt-action.component.mjs +59 -9
- package/esm2020/components/ngt-button/ngt-button.component.mjs +35 -26
- package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +46 -19
- package/esm2020/components/ngt-datatable/ngt-datatable.component.mjs +4 -2
- package/esm2020/components/ngt-form/ngt-form.component.mjs +14 -4
- package/esm2020/components/ngt-input/ngt-input.component.mjs +28 -10
- package/esm2020/components/ngt-radio-button/ngt-radio-button.component.mjs +46 -18
- package/esm2020/components/ngt-section/ngt-section.component.mjs +13 -3
- package/esm2020/components/ngt-select/ngt-select.component.mjs +66 -36
- package/esm2020/components/ngt-shining/ngt-shining.component.mjs +2 -2
- package/fesm2015/ng-tailwind.mjs +812 -617
- package/fesm2015/ng-tailwind.mjs.map +1 -1
- package/fesm2020/ng-tailwind.mjs +803 -624
- package/fesm2020/ng-tailwind.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -6,28 +6,25 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "@angular/forms";
|
|
7
7
|
import * as i2 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
|
|
8
8
|
import * as i3 from "../ngt-form/ngt-form.component";
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "../ngt-
|
|
9
|
+
import * as i4 from "../ngt-section/ngt-section.component";
|
|
10
|
+
import * as i5 from "./ngt-radio-button-container/ngt-radio-button-container.component";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
import * as i7 from "../ngt-shining/ngt-shining.component";
|
|
13
|
+
import * as i8 from "../ngt-helper/ngt-helper.component";
|
|
13
14
|
export class NgtRadioButtonComponent extends NgtBaseNgModel {
|
|
14
|
-
constructor(injector, formContainer, renderer, ngtStylizableDirective,
|
|
15
|
+
constructor(changeDetector, injector, formContainer, renderer, ngtStylizableDirective, ngtForm, ngtSection, ngtRadioButtonContainer) {
|
|
15
16
|
super();
|
|
17
|
+
this.changeDetector = changeDetector;
|
|
16
18
|
this.injector = injector;
|
|
17
19
|
this.formContainer = formContainer;
|
|
18
20
|
this.renderer = renderer;
|
|
19
21
|
this.ngtStylizableDirective = ngtStylizableDirective;
|
|
20
|
-
this.
|
|
22
|
+
this.ngtForm = ngtForm;
|
|
23
|
+
this.ngtSection = ngtSection;
|
|
21
24
|
this.ngtRadioButtonContainer = ngtRadioButtonContainer;
|
|
22
25
|
this.isSelectable = true;
|
|
23
26
|
this.helpTextColor = 'text-green-500';
|
|
24
27
|
this.subscriptions = [];
|
|
25
|
-
if (this.ngtFormComponent) {
|
|
26
|
-
this.shining = this.ngtFormComponent.isShining();
|
|
27
|
-
this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
|
|
28
|
-
this.shining = shining;
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
31
28
|
if (this.ngtRadioButtonContainer) {
|
|
32
29
|
this.subscriptions.push(this.ngtRadioButtonContainer.onActiveRadioButtonChange.subscribe((activeRadioButton) => {
|
|
33
30
|
this.value = (activeRadioButton.name === this.name);
|
|
@@ -50,6 +47,12 @@ export class NgtRadioButtonComponent extends NgtBaseNgModel {
|
|
|
50
47
|
this.renderer.listen(this.element.nativeElement, 'change', (value) => {
|
|
51
48
|
this.onNativeChange(this.element.nativeElement.checked);
|
|
52
49
|
});
|
|
50
|
+
this.bindSubscriptions();
|
|
51
|
+
}
|
|
52
|
+
ngOnChanges(changes) {
|
|
53
|
+
if (changes.isDisabled && !changes.isDisabled.currentValue) {
|
|
54
|
+
this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
|
|
55
|
+
}
|
|
53
56
|
}
|
|
54
57
|
ngOnDestroy() {
|
|
55
58
|
this.destroySubscriptions();
|
|
@@ -68,15 +71,36 @@ export class NgtRadioButtonComponent extends NgtBaseNgModel {
|
|
|
68
71
|
this.ngtRadioButtonContainer.setActiveRadioButton(this);
|
|
69
72
|
}
|
|
70
73
|
}
|
|
74
|
+
bindSubscriptions() {
|
|
75
|
+
this.changeDetector.detectChanges();
|
|
76
|
+
if (!this.isDisabled) {
|
|
77
|
+
this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
|
|
78
|
+
}
|
|
79
|
+
if (this.ngtForm) {
|
|
80
|
+
this.subscriptions.push(this.ngtForm.onIsDisabledChange.subscribe((isDisabled) => {
|
|
81
|
+
if (!this.isDisabled) {
|
|
82
|
+
this.isDisabled = isDisabled || this.ngtSection?.isDisabled;
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
if (this.ngtSection) {
|
|
87
|
+
this.subscriptions.push(this.ngtSection.onIsDisabledChange.subscribe((isDisabled) => {
|
|
88
|
+
if (!this.isDisabled) {
|
|
89
|
+
this.isDisabled = isDisabled || this.ngtForm?.isDisabled;
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
this.changeDetector.detectChanges();
|
|
94
|
+
}
|
|
71
95
|
destroySubscriptions() {
|
|
72
96
|
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
73
97
|
this.subscriptions = [];
|
|
74
98
|
}
|
|
75
99
|
}
|
|
76
|
-
NgtRadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtRadioButtonComponent, deps: [{ token: i0.Injector }, { token: i1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: i2.NgtStylizableDirective, optional: true, self: true }, { token: i3.NgtFormComponent, optional: true, skipSelf: true }, { token: i4.NgtRadioButtonContainerComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
NgtRadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtRadioButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: i2.NgtStylizableDirective, optional: true, self: true }, { token: i3.NgtFormComponent, optional: true, skipSelf: true }, { token: i4.NgtSectionComponent, optional: true, skipSelf: true }, { token: i5.NgtRadioButtonContainerComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
101
|
NgtRadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtRadioButtonComponent, selector: "ngt-radio-button", inputs: { label: "label", name: "name", shining: "shining", isSelectable: "isSelectable", isDisabled: "isDisabled", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText" }, providers: [
|
|
78
102
|
NgtMakeProvider(NgtRadioButtonComponent),
|
|
79
|
-
], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<label
|
|
103
|
+
], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label\n class=\"inline-flex items-center {{ isDisabled || !isSelectable ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]='isDisabled || !isSelectable'\n #element>\n\n <div class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow rounded-full border border-gray-400 {{ !shining ? 'flex justify-center items-center' : 'hidden' }}\"\n style=\"width: 19px; height: 19px;\">\n <svg *ngIf=\"value\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 29.107 29.107\"\n style=\"width: 13px; height: 13px;\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n\n <span *ngIf='label && !shining' class=\"text-sm ml-2\" [class.line-through]='!isSelectable'>\n {{ label }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", styles: ["label{margin-bottom:unset!important}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: i8.NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
|
|
80
104
|
{ provide: ControlContainer, useExisting: NgForm }
|
|
81
105
|
] });
|
|
82
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtRadioButtonComponent, decorators: [{
|
|
@@ -85,8 +109,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
85
109
|
NgtMakeProvider(NgtRadioButtonComponent),
|
|
86
110
|
], viewProviders: [
|
|
87
111
|
{ provide: ControlContainer, useExisting: NgForm }
|
|
88
|
-
], template: "<label
|
|
89
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ControlContainer, decorators: [{
|
|
112
|
+
], template: "<label\n class=\"inline-flex items-center {{ isDisabled || !isSelectable ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]='isDisabled || !isSelectable'\n #element>\n\n <div class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow rounded-full border border-gray-400 {{ !shining ? 'flex justify-center items-center' : 'hidden' }}\"\n style=\"width: 19px; height: 19px;\">\n <svg *ngIf=\"value\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 29.107 29.107\"\n style=\"width: 13px; height: 13px;\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n\n <span *ngIf='label && !shining' class=\"text-sm ml-2\" [class.line-through]='!isSelectable'>\n {{ label }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", styles: ["label{margin-bottom:unset!important}\n"] }]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i1.ControlContainer, decorators: [{
|
|
90
114
|
type: Optional
|
|
91
115
|
}, {
|
|
92
116
|
type: Host
|
|
@@ -98,7 +122,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
98
122
|
type: Optional
|
|
99
123
|
}, {
|
|
100
124
|
type: SkipSelf
|
|
101
|
-
}] }, { type: i4.
|
|
125
|
+
}] }, { type: i4.NgtSectionComponent, decorators: [{
|
|
126
|
+
type: Optional
|
|
127
|
+
}, {
|
|
128
|
+
type: SkipSelf
|
|
129
|
+
}] }, { type: i5.NgtRadioButtonContainerComponent, decorators: [{
|
|
102
130
|
type: Optional
|
|
103
131
|
}, {
|
|
104
132
|
type: SkipSelf
|
|
@@ -122,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
122
150
|
}], helpText: [{
|
|
123
151
|
type: Input
|
|
124
152
|
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXJhZGlvLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtcmFkaW8tYnV0dG9uL25ndC1yYWRpby1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXJhZGlvLWJ1dHRvbi9uZ3QtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxFQUNKLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7OztBQWU1RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQWlCdkQsWUFDWSxRQUFrQixFQUVuQixhQUErQixFQUM5QixRQUFtQixFQUVuQixzQkFBOEMsRUFFOUMsZ0JBQWtDLEVBRWxDLHVCQUF5RDtRQUVqRSxLQUFLLEVBQUUsQ0FBQztRQVhBLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFbkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUU5QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRWxDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBa0M7UUFyQnJELGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBSTdCLGtCQUFhLEdBQVcsZ0JBQWdCLENBQUM7UUFLakQsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBZ0I1QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVqRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDtRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUMsaUJBQTBDLEVBQUUsRUFBRTtnQkFDNUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO1FBRUQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUN6RTthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRTtZQUM3QyxLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLE1BQU0sRUFBRSxpQkFBaUI7YUFDNUI7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWM7UUFDeEIsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBRTNDLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO2dCQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0Q7U0FDSjtJQUNMLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0Q7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7b0hBOUZRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLCtPQVByQjtRQUNQLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQztLQUMzQyxtS0M3QkwscTFDQTRCQSx3Z0JERW1CO1FBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtLQUNyRDsyRkFFUSx1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQLGVBQWUseUJBQXlCO3FCQUMzQyxpQkFDYzt3QkFDWCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFO3FCQUNyRDs7MEJBcUJJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUdoQixJQUFJOzswQkFBSSxRQUFROzswQkFFaEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBRXBCLFFBQVE7OzBCQUFJLFFBQVE7NENBekJzQixPQUFPO3NCQUFyRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXRCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3RSYWRpb0J1dHRvbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbmd0LXJhZGlvLWJ1dHRvbi1jb250YWluZXIvbmd0LXJhZGlvLWJ1dHRvbi1jb250YWluZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtcmFkaW8tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LXJhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmd0LXJhZGlvLWJ1dHRvbi5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5ndE1ha2VQcm92aWRlcihOZ3RSYWRpb0J1dHRvbkNvbXBvbmVudCksXG4gICAgXSxcbiAgICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RSYWRpb0J1dHRvbkNvbXBvbmVudCBleHRlbmRzIE5ndEJhc2VOZ01vZGVsIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKCdlbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaGluaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1NlbGVjdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dENvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi01MDAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgbmd0U3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RGb3JtQ29tcG9uZW50OiBOZ3RGb3JtQ29tcG9uZW50LFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndFJhZGlvQnV0dG9uQ29udGFpbmVyOiBOZ3RSYWRpb0J1dHRvbkNvbnRhaW5lckNvbXBvbmVudFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGlmICh0aGlzLm5ndEZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpbmluZyA9IHRoaXMubmd0Rm9ybUNvbXBvbmVudC5pc1NoaW5pbmcoKTtcblxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3RGb3JtQ29tcG9uZW50Lm9uU2hpbmluZ0NoYW5nZS5zdWJzY3JpYmUoKHNoaW5pbmc6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gc2hpbmluZztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5ndFJhZGlvQnV0dG9uQ29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndFJhZGlvQnV0dG9uQ29udGFpbmVyLm9uQWN0aXZlUmFkaW9CdXR0b25DaGFuZ2Uuc3Vic2NyaWJlKChhY3RpdmVSYWRpb0J1dHRvbjogTmd0UmFkaW9CdXR0b25Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IChhY3RpdmVSYWRpb0J1dHRvbi5uYW1lID09PSB0aGlzLm5hbWUpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RDaGVja2JveCcsIHtcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJ2JvcmRlci1ncmF5LTUwMCcsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2hhbmdlJywgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTmF0aXZlQ2hhbmdlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5uZ3RSYWRpb0J1dHRvbkNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMubmd0UmFkaW9CdXR0b25Db250YWluZXIuc2V0QWN0aXZlUmFkaW9CdXR0b24odGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25OYXRpdmVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gdmFsdWUgOiAhdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMubmd0UmFkaW9CdXR0b25Db250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMubmd0UmFkaW9CdXR0b25Db250YWluZXIuc2V0QWN0aXZlUmFkaW9CdXR0b24odGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb25zKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIge3sgaXNEaXNhYmxlZCB8fCAhaXNTZWxlY3RhYmxlID8gJ2N1cnNvci1ub3QtYWxsb3dlZCcgOiAnY3Vyc29yLXBvaW50ZXInIH19XCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT0nbmFtZScgY2xhc3M9XCJoaWRkZW5cIiAoW25nTW9kZWxdKT0ndmFsdWUnIFtkaXNhYmxlZF09J2lzRGlzYWJsZWQgfHwgIWlzU2VsZWN0YWJsZSdcbiAgICAgICAgI2VsZW1lbnQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwie3sgdmFsdWUgPyBuZ3RTdHlsZS5jb21waWxlKFsnY29sb3IuYm9yZGVyJywgJ2NvbG9yLnRleHQnXSkgOiAnYm9yZGVyLWdyYXktNTAwJyB9fVxuICAgICAgICAgICAgICAgICAgICBzaGFkb3cgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgIXNoaW5pbmcgPyAnZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXInIDogJ2hpZGRlbicgfX1cIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxOXB4OyBoZWlnaHQ6IDE5cHg7XCI+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJ2YWx1ZVwiIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjkuMTA3IDI5LjEwN1wiXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxM3B4OyBoZWlnaHQ6IDEzcHg7XCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTQuNTU0IDBDNi41NjEgMCAwIDYuNTYyIDAgMTQuNTUyYzAgNy45OTYgNi41NjEgMTQuNTU1IDE0LjU1NCAxNC41NTUgNy45OTYgMCAxNC41NTMtNi41NTkgMTQuNTUzLTE0LjU1NUMyOS4xMDYgNi41NjIgMjIuNTUgMCAxNC41NTQgMHpcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cblxuICAgIDxzcGFuICpuZ0lmPSdsYWJlbCAmJiAhc2hpbmluZycgY2xhc3M9XCJ0ZXh0LXNtIG1sLTJcIiBbY2xhc3MubGluZS10aHJvdWdoXT0nIWlzU2VsZWN0YWJsZSc+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPG5ndC1oZWxwZXIgKm5nSWY9XCJoZWxwVGV4dFwiIFtoZWxwVGl0bGVdPVwiaGVscFRpdGxlXCIgW2ljb25Db2xvcl09XCJoZWxwVGV4dENvbG9yXCIgY2xhc3M9XCJtbC0xXCI+XG4gICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgPC9uZ3QtaGVscGVyPlxuPC9sYWJlbD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj0nc2hpbmluZyc+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwidy0xNiBoLTEyXCI+PC9uZ3Qtc2hpbmluZz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXJhZGlvLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtcmFkaW8tYnV0dG9uL25ndC1yYWRpby1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXJhZGlvLWJ1dHRvbi9uZ3QtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssRUFHTCxRQUFRLEVBRVIsSUFBSSxFQUVKLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7Ozs7QUFnQjVGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxjQUFjO0lBaUJ2RCxZQUNZLGNBQWlDLEVBQ2pDLFFBQWtCLEVBRW5CLGFBQStCLEVBQzlCLFFBQW1CLEVBRW5CLHNCQUE4QyxFQUU5QyxPQUF5QixFQUUxQixVQUErQixFQUU5Qix1QkFBeUQ7UUFFakUsS0FBSyxFQUFFLENBQUM7UUFkQSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUVuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRTlDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBRTFCLGVB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YUFHakI7d0JBQ1AsZUFBZSx5QkFBeUI7cUJBQzNDLGlCQUNjO3dCQUNYLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7cUJBQ3JEOzswQkFzQkksUUFBUTs7MEJBQUksSUFBSTs7MEJBR2hCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUVoQixRQUFROzswQkFBSSxRQUFROzswQkFFcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBRXBCLFFBQVE7OzBCQUFJLFFBQVE7NENBNUJzQixPQUFPO3NCQUFyRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXRCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3RTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd0LXNlY3Rpb24vbmd0LXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5ndFJhZGlvQnV0dG9uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtcmFkaW8tYnV0dG9uLWNvbnRhaW5lci9uZ3QtcmFkaW8tYnV0dG9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1yYWRpby1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3QtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndFJhZGlvQnV0dG9uQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndFJhZGlvQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgTmd0QmFzZU5nTW9kZWwgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnZWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hpbmluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTZWxlY3RhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRleHRDb2xvcjogc3RyaW5nID0gJ3RleHQtZ3JlZW4tNTAwJztcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRleHQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpXG4gICAgICAgIHB1YmxpYyBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndEZvcm06IE5ndEZvcm1Db21wb25lbnQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXG4gICAgICAgIHB1YmxpYyBuZ3RTZWN0aW9uOiBOZ3RTZWN0aW9uQ29tcG9uZW50LFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndFJhZGlvQnV0dG9uQ29udGFpbmVyOiBOZ3RSYWRpb0J1dHRvbkNvbnRhaW5lckNvbXBvbmVudFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGlmICh0aGlzLm5ndFJhZGlvQnV0dG9uQ29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndFJhZGlvQnV0dG9uQ29udGFpbmVyLm9uQWN0aXZlUmFkaW9CdXR0b25DaGFuZ2Uuc3Vic2NyaWJlKChhY3RpdmVSYWRpb0J1dHRvbjogTmd0UmFkaW9CdXR0b25Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IChhY3RpdmVSYWRpb0J1dHRvbi5uYW1lID09PSB0aGlzLm5hbWUpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RDaGVja2JveCcsIHtcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJ2JvcmRlci1ncmF5LTUwMCcsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2hhbmdlJywgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTmF0aXZlQ2hhbmdlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmJpbmRTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNEaXNhYmxlZCAmJiAhY2hhbmdlcy5pc0Rpc2FibGVkLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdGhpcy5uZ3RGb3JtPy5pc0Rpc2FibGVkIHx8IHRoaXMubmd0U2VjdGlvbj8uaXNEaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdmFsdWU7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm5ndFJhZGlvQnV0dG9uQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ3RSYWRpb0J1dHRvbkNvbnRhaW5lci5zZXRBY3RpdmVSYWRpb0J1dHRvbih0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk5hdGl2ZUNoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgPyB2YWx1ZSA6ICF2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5uZ3RSYWRpb0J1dHRvbkNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5uZ3RSYWRpb0J1dHRvbkNvbnRhaW5lci5zZXRBY3RpdmVSYWRpb0J1dHRvbih0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYmluZFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0aGlzLm5ndEZvcm0/LmlzRGlzYWJsZWQgfHwgdGhpcy5uZ3RTZWN0aW9uPy5pc0Rpc2FibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmd0Rm9ybSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3RGb3JtLm9uSXNEaXNhYmxlZENoYW5nZS5zdWJzY3JpYmUoKGlzRGlzYWJsZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQgfHwgdGhpcy5uZ3RTZWN0aW9uPy5pc0Rpc2FibGVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uZ3RTZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndFNlY3Rpb24ub25Jc0Rpc2FibGVkQ2hhbmdlLnN1YnNjcmliZSgoaXNEaXNhYmxlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZCB8fCB0aGlzLm5ndEZvcm0/LmlzRGlzYWJsZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbn1cbiIsIjxsYWJlbFxuICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHt7IGlzRGlzYWJsZWQgfHwgIWlzU2VsZWN0YWJsZSA/ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcgOiAnY3Vyc29yLXBvaW50ZXInIH19XCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT0nbmFtZScgY2xhc3M9XCJoaWRkZW5cIiAoW25nTW9kZWxdKT0ndmFsdWUnIFtkaXNhYmxlZF09J2lzRGlzYWJsZWQgfHwgIWlzU2VsZWN0YWJsZSdcbiAgICAgICAgI2VsZW1lbnQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwie3sgdmFsdWUgPyBuZ3RTdHlsZS5jb21waWxlKFsnY29sb3IuYm9yZGVyJywgJ2NvbG9yLnRleHQnXSkgOiAnYm9yZGVyLWdyYXktNTAwJyB9fVxuICAgICAgICAgICAgICAgICAgICBzaGFkb3cgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgIXNoaW5pbmcgPyAnZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXInIDogJ2hpZGRlbicgfX1cIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxOXB4OyBoZWlnaHQ6IDE5cHg7XCI+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJ2YWx1ZVwiIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjkuMTA3IDI5LjEwN1wiXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxM3B4OyBoZWlnaHQ6IDEzcHg7XCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTQuNTU0IDBDNi41NjEgMCAwIDYuNTYyIDAgMTQuNTUyYzAgNy45OTYgNi41NjEgMTQuNTU1IDE0LjU1NCAxNC41NTUgNy45OTYgMCAxNC41NTMtNi41NTkgMTQuNTUzLTE0LjU1NUMyOS4xMDYgNi41NjIgMjIuNTUgMCAxNC41NTQgMHpcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cblxuICAgIDxzcGFuICpuZ0lmPSdsYWJlbCAmJiAhc2hpbmluZycgY2xhc3M9XCJ0ZXh0LXNtIG1sLTJcIiBbY2xhc3MubGluZS10aHJvdWdoXT0nIWlzU2VsZWN0YWJsZSc+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPG5ndC1oZWxwZXIgKm5nSWY9XCJoZWxwVGV4dFwiIFtoZWxwVGl0bGVdPVwiaGVscFRpdGxlXCIgW2ljb25Db2xvcl09XCJoZWxwVGV4dENvbG9yXCIgY2xhc3M9XCJtbC0xXCI+XG4gICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgPC9uZ3QtaGVscGVyPlxuPC9sYWJlbD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj0nc2hpbmluZyc+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwidy0xNiBoLTEyXCI+PC9uZ3Qtc2hpbmluZz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -13,6 +13,7 @@ export class NgtSectionComponent {
|
|
|
13
13
|
this.showSection = true;
|
|
14
14
|
this.onRemove = new EventEmitter();
|
|
15
15
|
this.onToggleSection = new EventEmitter();
|
|
16
|
+
this.onIsDisabledChange = new EventEmitter;
|
|
16
17
|
this.ngtCaptionStyle = new NgtStylizableService();
|
|
17
18
|
this.ngtSubtitleStyle = new NgtStylizableService();
|
|
18
19
|
if (this.ngtStylizableDirective) {
|
|
@@ -53,6 +54,11 @@ export class NgtSectionComponent {
|
|
|
53
54
|
}
|
|
54
55
|
});
|
|
55
56
|
}
|
|
57
|
+
ngOnChanges(changes) {
|
|
58
|
+
if (changes.isDisabled) {
|
|
59
|
+
this.onIsDisabledChange.emit(changes.isDisabled.currentValue);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
56
62
|
open() {
|
|
57
63
|
this.showSection = true;
|
|
58
64
|
this.onToggleSection.emit(this.showSection);
|
|
@@ -71,7 +77,7 @@ export class NgtSectionComponent {
|
|
|
71
77
|
}
|
|
72
78
|
}
|
|
73
79
|
NgtSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSectionComponent, deps: [{ token: i0.Injector }, { token: i1.NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
NgtSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSectionComponent, selector: "ngt-section", inputs: { icon: "icon", caption: "caption", subtitle: "subtitle", accordion: "accordion", showSection: "showSection", removable: "removable", helpTitle: "helpTitle", helpText: "helpText", helpIconColor: "helpIconColor" }, outputs: { onRemove: "onRemove", onToggleSection: "onToggleSection" }, ngImport: i0, template: "<div class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"
|
|
80
|
+
NgtSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSectionComponent, selector: "ngt-section", inputs: { icon: "icon", caption: "caption", subtitle: "subtitle", accordion: "accordion", showSection: "showSection", removable: "removable", helpTitle: "helpTitle", helpText: "helpText", helpIconColor: "helpIconColor", isDisabled: "isDisabled" }, outputs: { onRemove: "onRemove", onToggleSection: "onToggleSection", onIsDisabledChange: "onIsDisabledChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"self-center {{ ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml']) }}\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1 hover:opacity-100 opacity-100\"\n [iconColor]=\"helpIconColor\">\n {{ helpText }}\n </ngt-helper>\n </div>\n\n <ng-container *ngIf=\"accordion\">\n <div class=\"flex flex-wrap items-center px-5 cursor-pointer {{ helpText ? '' : 'hover:opacity-75' }} {{ accordion && showSection ? ngtCaptionStyle.compile(['pb']) : ngtCaptionStyle.compile(['py']) }}\"\n (click)='toggle()' style=\"max-width: fit-content;\">\n <div *ngIf=\"!showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 4.59l9.18 9.16 9.18 -9.16 2.82 2.82 -12 12 -12 -12 2.82 -2.82z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 19.41l9.18 -9.16 9.18 9.16 2.82 -2.82 -12 -12 -12 12 2.82 2.82z\" />\n </svg>\n </div>\n\n <span [class]=\"ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n [class]=\"ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1\" [iconColor]=\"helpIconColor\"\n class=\"ml-1 hover:opacity-100 opacity-100\">\n {{ helpText }}\n </ngt-helper>\n\n <div *ngIf=\"removable\"\n class=\"flex items-center justify-center h-8 w-8 ml-2 rounded-full hover:bg-red-500 hover:text-white text-gray-600 text-xl\"\n (click)='remove($event)'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M4 21.33c0,1.47 1.2,2.67 2.67,2.67l10.66 0c1.47,0 2.67,-1.2 2.67,-2.67l0 -16 -16 0 0 16zm17.33 -20l-4.66 0 -1.34 -1.33 -6.66 0 -1.34 1.33 -4.66 0 0 2.67 18.66 0 0 -2.67z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf='showSection' class=\"{{ ngtSectionStyle.compile(['px']) }}\" [@enterAnimation]='!showSection'>\n <fieldset [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n </fieldset>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "component", type: i4.NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], animations: [
|
|
75
81
|
trigger('enterAnimation', [
|
|
76
82
|
state('void', style({ transform: 'translateY(-20px)', opacity: 0 })),
|
|
77
83
|
transition(':enter', [
|
|
@@ -88,7 +94,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
88
94
|
animate(400)
|
|
89
95
|
])
|
|
90
96
|
]),
|
|
91
|
-
], template: "<div class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"
|
|
97
|
+
], template: "<div class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"self-center {{ ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml']) }}\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1 hover:opacity-100 opacity-100\"\n [iconColor]=\"helpIconColor\">\n {{ helpText }}\n </ngt-helper>\n </div>\n\n <ng-container *ngIf=\"accordion\">\n <div class=\"flex flex-wrap items-center px-5 cursor-pointer {{ helpText ? '' : 'hover:opacity-75' }} {{ accordion && showSection ? ngtCaptionStyle.compile(['pb']) : ngtCaptionStyle.compile(['py']) }}\"\n (click)='toggle()' style=\"max-width: fit-content;\">\n <div *ngIf=\"!showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 4.59l9.18 9.16 9.18 -9.16 2.82 2.82 -12 12 -12 -12 2.82 -2.82z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 19.41l9.18 -9.16 9.18 9.16 2.82 -2.82 -12 -12 -12 12 2.82 2.82z\" />\n </svg>\n </div>\n\n <span [class]=\"ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n [class]=\"ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1\" [iconColor]=\"helpIconColor\"\n class=\"ml-1 hover:opacity-100 opacity-100\">\n {{ helpText }}\n </ngt-helper>\n\n <div *ngIf=\"removable\"\n class=\"flex items-center justify-center h-8 w-8 ml-2 rounded-full hover:bg-red-500 hover:text-white text-gray-600 text-xl\"\n (click)='remove($event)'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M4 21.33c0,1.47 1.2,2.67 2.67,2.67l10.66 0c1.47,0 2.67,-1.2 2.67,-2.67l0 -16 -16 0 0 16zm17.33 -20l-4.66 0 -1.34 -1.33 -6.66 0 -1.34 1.33 -4.66 0 0 2.67 18.66 0 0 -2.67z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf='showSection' class=\"{{ ngtSectionStyle.compile(['px']) }}\" [@enterAnimation]='!showSection'>\n <fieldset [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n </fieldset>\n </div>\n </div>\n</div>" }]
|
|
92
98
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtStylizableDirective, decorators: [{
|
|
93
99
|
type: Self
|
|
94
100
|
}, {
|
|
@@ -111,9 +117,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
111
117
|
type: Input
|
|
112
118
|
}], helpIconColor: [{
|
|
113
119
|
type: Input
|
|
120
|
+
}], isDisabled: [{
|
|
121
|
+
type: Input
|
|
114
122
|
}], onRemove: [{
|
|
115
123
|
type: Output
|
|
116
124
|
}], onToggleSection: [{
|
|
117
125
|
type: Output
|
|
126
|
+
}], onIsDisabledChange: [{
|
|
127
|
+
type: Output
|
|
118
128
|
}] } });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXNlY3Rpb24vbmd0LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXNlY3Rpb24vbmd0LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7OztBQWM1RixNQUFNLE9BQU8sbUJBQW1CO0lBa0I1QixZQUNZLFFBQWtCLEVBQ0Usc0JBQThDO1FBRGxFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDRSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBZjlELGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBTTNCLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxvQkFBZSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBVXpFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsdUJBQXVC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O2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFFVyxRQUFRO3NCQUF4QixNQUFNO2dCQUNVLGVBQWU7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LXNlY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3Qtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdlbnRlckFuaW1hdGlvbicsIFtcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0yMHB4KScsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIGFuaW1hdGUoNDAwKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RTZWN0aW9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYXB0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHN1YnRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGFjY29yZGlvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd1NlY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByZW1vdmFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwSWNvbkNvbG9yOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblRvZ2dsZVNlY3Rpb246IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBuZ3RTZWN0aW9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuICAgIHB1YmxpYyBuZ3RDYXB0aW9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuICAgIHB1YmxpYyBuZ3RTdWJ0aXRsZVN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgICAgIHRoaXMubmd0Q2FwdGlvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMubmd0U3VidGl0bGVTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U2VjdGlvblN0eWxlID0gdGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFNlY3Rpb25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTZWN0aW9uU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0U2VjdGlvbicsIHtcbiAgICAgICAgICAgIGg6ICdoLTEyJyxcbiAgICAgICAgICAgIHc6ICd3LTEyJyxcbiAgICAgICAgICAgIG15OiAnbXktMScsXG4gICAgICAgICAgICBwcjogJ3ByLTEnLFxuICAgICAgICAgICAgcHg6ICdtZDpweC01JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtZ3JheS04MDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0Q2FwdGlvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFNlY3Rpb25DYXB0aW9uJywge1xuICAgICAgICAgICAgdGV4dDogJ3RleHQtc20nLFxuICAgICAgICAgICAgZm9udDogJ2ZvbnQtbm9ybWFsJyxcbiAgICAgICAgICAgIG1sOiAnbWwtMicsXG4gICAgICAgICAgICBwYjogJ3BiLTInLFxuICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyLW5vbmUnLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTgwMCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm5ndFN1YnRpdGxlU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0U2VjdGlvblN1YnRpdGxlJywge1xuICAgICAgICAgICAgdGV4dDogJ3RleHQteHMnLFxuICAgICAgICAgICAgZm9udDogJ2ZvbnQtbm9ybWFsJyxcbiAgICAgICAgICAgIGJvcmRlcjogJ2JvcmRlci1ub25lJyxcbiAgICAgICAgICAgIG1sOiAnbWwtMicsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dTZWN0aW9uID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLm9uVG9nZ2xlU2VjdGlvbi5lbWl0KHRoaXMuc2hvd1NlY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93U2VjdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMub25Ub2dnbGVTZWN0aW9uLmVtaXQodGhpcy5zaG93U2VjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93U2VjdGlvbiA9ICF0aGlzLnNob3dTZWN0aW9uO1xuXG4gICAgICAgIHRoaXMub25Ub2dnbGVTZWN0aW9uLmVtaXQodGhpcy5zaG93U2VjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggbWItNlwiPlxuICAgIDxuZ3Qtc3ZnICpuZ0lmPVwiaWNvblwiIFtzcmNdPSdpY29uJ1xuICAgICAgICBjbGFzcz1cImhpZGRlbiBtZDpibG9jayB7eyBuZ3RTZWN0aW9uU3R5bGUuY29tcGlsZShbJ2NvbG9yLnRleHQnLCAnaCcsICd3JywgJ215JywgJ3ByJ10pIH19XCI+XG4gICAgPC9uZ3Qtc3ZnPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInctZnVsbCBwYi00IG1kOnBiLTAgYm9yZGVyLWItNCBtZDpib3JkZXItYi0wIGJvcmRlci1kYXNoZWQgbWQ6Ym9yZGVyLXNvbGlkIG1kOmJvcmRlci1sIHt7IGFjY29yZGlvbiAmJiAhc2hvd1NlY3Rpb24gPyAnZmxleCcgOiAnJyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFjY29yZGlvbiAmJiBjYXB0aW9uXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTUge3sgbmd0Q2FwdGlvblN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250J10pIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY2FwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiBwdC0xIHNlbGYtY2VudGVyIHt7IG5ndFN1YnRpdGxlU3R5bGUuY29tcGlsZShbJ2NvbG9yLnRleHQnLCAnY29sb3IuYm9yZGVyJywgJ3RleHQnLCAnYm9yZGVyJywgJ2ZvbnQnLCAnbWwnXSkgfX1cIj5cbiAgICAgICAgICAgICAgICB7eyBzdWJ0aXRsZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8bmd0LWhlbHBlciAqbmdJZj1cImhlbHBUZXh0XCIgW2hlbHBUaXRsZV09XCJoZWxwVGl0bGVcIiBjbGFzcz1cIm1sLTEgaG92ZXI6b3BhY2l0eS0xMDAgb3BhY2l0eS0xMDBcIlxuICAgICAgICAgICAgICAgIFtpY29uQ29sb3JdPVwiaGVscEljb25Db2xvclwiPlxuICAgICAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgICAgICAgICA8L25ndC1oZWxwZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY2NvcmRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcHgtNSBjdXJzb3ItcG9pbnRlciB7eyBoZWxwVGV4dCA/ICcnIDogJ2hvdmVyOm9wYWNpdHktNzUnIH19IHt7IGFjY29yZGlvbiAmJiBzaG93U2VjdGlvbiA/IG5ndENhcHRpb25TdHlsZS5jb21waWxlKFsncGInXSkgOiBuZ3RDYXB0aW9uU3R5bGUuY29tcGlsZShbJ3B5J10pIH19XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPSd0b2dnbGUoKScgc3R5bGU9XCJtYXgtd2lkdGg6IGZpdC1jb250ZW50O1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1NlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgge3sgbmd0Q2FwdGlvblN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250J10pIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjgyIDQuNTlsOS4xOCA5LjE2IDkuMTggLTkuMTYgMi44MiAyLjgyIC0xMiAxMiAtMTIgLTEyIDIuODIgLTIuODJ6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1NlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgge3sgbmd0Q2FwdGlvblN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250J10pIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjgyIDE5LjQxbDkuMTggLTkuMTYgOS4xOCA5LjE2IDIuODIgLTIuODIgLTEyIC0xMiAtMTIgMTIgMi44MiAyLjgyelwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIm5ndENhcHRpb25TdHlsZS5jb21waWxlKFsnY29sb3IudGV4dCcsICdjb2xvci5ib3JkZXInLCAndGV4dCcsICdib3JkZXInLCAnZm9udCcsICdtbCddKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjYXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJuZ3RTdWJ0aXRsZVN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250JywgJ21sJ10pXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHN1YnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPG5ndC1oZWxwZXIgKm5nSWY9XCJoZWxwVGV4dFwiIFtoZWxwVGl0bGVdPVwiaGVscFRpdGxlXCIgY2xhc3M9XCJtbC0xXCIgW2ljb25Db2xvcl09XCJoZWxwSWNvbkNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xIGhvdmVyOm9wYWNpdHktMTAwIG9wYWNpdHktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgICAgICAgICAgICAgPC9uZ3QtaGVscGVyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC04IHctOCBtbC0yIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1yZWQtNTAwIGhvdmVyOnRleHQtd2hpdGUgdGV4dC1ncmF5LTYwMCB0ZXh0LXhsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT0ncmVtb3ZlKCRldmVudCknPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDIxLjMzYzAsMS40NyAxLjIsMi42NyAyLjY3LDIuNjdsMTAuNjYgMGMxLjQ3LDAgMi42NywtMS4yIDIuNjcsLTIuNjdsMCAtMTYgLTE2IDAgMCAxNnptMTcuMzMgLTIwbC00LjY2IDAgLTEuMzQgLTEuMzMgLTYuNjYgMCAtMS4zNCAxLjMzIC00LjY2IDAgMCAyLjY3IDE4LjY2IDAgMCAtMi42N3pcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPSdzaG93U2VjdGlvbicgY2xhc3M9XCJ7eyBuZ3RTZWN0aW9uU3R5bGUuY29tcGlsZShbJ3B4J10pIH19XCIgW0BlbnRlckFuaW1hdGlvbl09JyFzaG93U2VjdGlvbic+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXNlY3Rpb24vbmd0LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXNlY3Rpb24vbmd0LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRzNILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7QUFjNUYsTUFBTSxPQUFPLG1CQUFtQjtJQW9CNUIsWUFDWSxRQUFrQixFQUNFLHNCQUE4QztRQURsRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQWpCOUQsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFPM0IsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELG9CQUFlLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUQsdUJBQWtCLEdBQTBCLElBQUksWUFBWSxDQUFDO1FBVTFFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGVB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RUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDcEUsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDZixDQUFDO3lCQUNMLENBQUM7cUJBQ0w7OzBCQXdCSSxJQUFJOzswQkFBSSxRQUFROzRDQXJCTCxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUVXLFFBQVE7c0JBQXhCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxrQkFBa0I7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3Qtc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2VudGVyQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTIwcHgpJywgb3BhY2l0eTogMCB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSg0MDApXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGNhcHRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VidGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjb3JkaW9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93U2VjdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIHJlbW92YWJsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBJY29uQ29sb3I6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVG9nZ2xlU2VjdGlvbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Jc0Rpc2FibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyO1xuXG4gICAgcHVibGljIG5ndFNlY3Rpb25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIG5ndENhcHRpb25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIG5ndFN1YnRpdGxlU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIG5ndFN0eWxpemFibGVEaXJlY3RpdmU6IE5ndFN0eWxpemFibGVEaXJlY3RpdmVcbiAgICApIHtcbiAgICAgICAgdGhpcy5uZ3RDYXB0aW9uU3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5uZ3RTdWJ0aXRsZVN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTZWN0aW9uU3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmd0U2VjdGlvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFNlY3Rpb25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RTZWN0aW9uJywge1xuICAgICAgICAgICAgaDogJ2gtMTInLFxuICAgICAgICAgICAgdzogJ3ctMTInLFxuICAgICAgICAgICAgbXk6ICdteS0xJyxcbiAgICAgICAgICAgIHByOiAncHItMScsXG4gICAgICAgICAgICBweDogJ21kOnB4LTUnLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTgwMCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5uZ3RDYXB0aW9uU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0U2VjdGlvbkNhcHRpb24nLCB7XG4gICAgICAgICAgICB0ZXh0OiAndGV4dC1zbScsXG4gICAgICAgICAgICBmb250OiAnZm9udC1ub3JtYWwnLFxuICAgICAgICAgICAgbWw6ICdtbC0yJyxcbiAgICAgICAgICAgIHBiOiAncGItMicsXG4gICAgICAgICAgICBib3JkZXI6ICdib3JkZXItbm9uZScsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LWdyYXktODAwJyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0U3VidGl0bGVTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RTZWN0aW9uU3VidGl0bGUnLCB7XG4gICAgICAgICAgICB0ZXh0OiAndGV4dC14cycsXG4gICAgICAgICAgICBmb250OiAnZm9udC1ub3JtYWwnLFxuICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyLW5vbmUnLFxuICAgICAgICAgICAgbWw6ICdtbC0yJyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5vbklzRGlzYWJsZWRDaGFuZ2UuZW1pdChjaGFuZ2VzLmlzRGlzYWJsZWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dTZWN0aW9uID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLm9uVG9nZ2xlU2VjdGlvbi5lbWl0KHRoaXMuc2hvd1NlY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93U2VjdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMub25Ub2dnbGVTZWN0aW9uLmVtaXQodGhpcy5zaG93U2VjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93U2VjdGlvbiA9ICF0aGlzLnNob3dTZWN0aW9uO1xuXG4gICAgICAgIHRoaXMub25Ub2dnbGVTZWN0aW9uLmVtaXQodGhpcy5zaG93U2VjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggbWItNlwiPlxuICAgIDxuZ3Qtc3ZnICpuZ0lmPVwiaWNvblwiIFtzcmNdPSdpY29uJ1xuICAgICAgICBjbGFzcz1cImhpZGRlbiBtZDpibG9jayB7eyBuZ3RTZWN0aW9uU3R5bGUuY29tcGlsZShbJ2NvbG9yLnRleHQnLCAnaCcsICd3JywgJ215JywgJ3ByJ10pIH19XCI+XG4gICAgPC9uZ3Qtc3ZnPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInctZnVsbCBwYi00IG1kOnBiLTAgYm9yZGVyLWItNCBtZDpib3JkZXItYi0wIGJvcmRlci1kYXNoZWQgbWQ6Ym9yZGVyLXNvbGlkIG1kOmJvcmRlci1sIHt7IGFjY29yZGlvbiAmJiAhc2hvd1NlY3Rpb24gPyAnZmxleCcgOiAnJyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFjY29yZGlvbiAmJiBjYXB0aW9uXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTUge3sgbmd0Q2FwdGlvblN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250J10pIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY2FwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGYtY2VudGVyIHt7IG5ndFN1YnRpdGxlU3R5bGUuY29tcGlsZShbJ2NvbG9yLnRleHQnLCAnY29sb3IuYm9yZGVyJywgJ3RleHQnLCAnYm9yZGVyJywgJ2ZvbnQnLCAnbWwnXSkgfX1cIj5cbiAgICAgICAgICAgICAgICB7eyBzdWJ0aXRsZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8bmd0LWhlbHBlciAqbmdJZj1cImhlbHBUZXh0XCIgW2hlbHBUaXRsZV09XCJoZWxwVGl0bGVcIiBjbGFzcz1cIm1sLTEgaG92ZXI6b3BhY2l0eS0xMDAgb3BhY2l0eS0xMDBcIlxuICAgICAgICAgICAgICAgIFtpY29uQ29sb3JdPVwiaGVscEljb25Db2xvclwiPlxuICAgICAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgICAgICAgICA8L25ndC1oZWxwZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY2NvcmRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcHgtNSBjdXJzb3ItcG9pbnRlciB7eyBoZWxwVGV4dCA/ICcnIDogJ2hvdmVyOm9wYWNpdHktNzUnIH19IHt7IGFjY29yZGlvbiAmJiBzaG93U2VjdGlvbiA/IG5ndENhcHRpb25TdHlsZS5jb21waWxlKFsncGInXSkgOiBuZ3RDYXB0aW9uU3R5bGUuY29tcGlsZShbJ3B5J10pIH19XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPSd0b2dnbGUoKScgc3R5bGU9XCJtYXgtd2lkdGg6IGZpdC1jb250ZW50O1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1NlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgge3sgbmd0Q2FwdGlvblN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250J10pIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjgyIDQuNTlsOS4xOCA5LjE2IDkuMTggLTkuMTYgMi44MiAyLjgyIC0xMiAxMiAtMTIgLTEyIDIuODIgLTIuODJ6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1NlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgge3sgbmd0Q2FwdGlvblN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250J10pIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjgyIDE5LjQxbDkuMTggLTkuMTYgOS4xOCA5LjE2IDIuODIgLTIuODIgLTEyIC0xMiAtMTIgMTIgMi44MiAyLjgyelwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIm5ndENhcHRpb25TdHlsZS5jb21waWxlKFsnY29sb3IudGV4dCcsICdjb2xvci5ib3JkZXInLCAndGV4dCcsICdib3JkZXInLCAnZm9udCcsICdtbCddKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjYXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJuZ3RTdWJ0aXRsZVN0eWxlLmNvbXBpbGUoWydjb2xvci50ZXh0JywgJ2NvbG9yLmJvcmRlcicsICd0ZXh0JywgJ2JvcmRlcicsICdmb250JywgJ21sJ10pXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHN1YnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPG5ndC1oZWxwZXIgKm5nSWY9XCJoZWxwVGV4dFwiIFtoZWxwVGl0bGVdPVwiaGVscFRpdGxlXCIgY2xhc3M9XCJtbC0xXCIgW2ljb25Db2xvcl09XCJoZWxwSWNvbkNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xIGhvdmVyOm9wYWNpdHktMTAwIG9wYWNpdHktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgICAgICAgICAgICAgPC9uZ3QtaGVscGVyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC04IHctOCBtbC0yIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1yZWQtNTAwIGhvdmVyOnRleHQtd2hpdGUgdGV4dC1ncmF5LTYwMCB0ZXh0LXhsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT0ncmVtb3ZlKCRldmVudCknPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDIxLjMzYzAsMS40NyAxLjIsMi42NyAyLjY3LDIuNjdsMTAuNjYgMGMxLjQ3LDAgMi42NywtMS4yIDIuNjcsLTIuNjdsMCAtMTYgLTE2IDAgMCAxNnptMTcuMzMgLTIwbC00LjY2IDAgLTEuMzQgLTEuMzMgLTYuNjYgMCAtMS4zNCAxLjMzIC00LjY2IDAgMCAyLjY3IDE4LjY2IDAgMCAtMi42N3pcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPSdzaG93U2VjdGlvbicgY2xhc3M9XCJ7eyBuZ3RTZWN0aW9uU3R5bGUuY29tcGlsZShbJ3B4J10pIH19XCIgW0BlbnRlckFuaW1hdGlvbl09JyFzaG93U2VjdGlvbic+XG4gICAgICAgICAgICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|