@skyux/inline-form 7.0.0-beta.2 → 7.0.0-beta.3
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/documentation.json +56 -56
- package/esm2020/lib/modules/inline-form/inline-form-adapter.service.mjs +28 -25
- package/esm2020/lib/modules/inline-form/inline-form.component.mjs +47 -35
- package/fesm2015/skyux-inline-form.mjs +72 -57
- package/fesm2015/skyux-inline-form.mjs.map +1 -1
- package/fesm2020/skyux-inline-form.mjs +71 -57
- package/fesm2020/skyux-inline-form.mjs.map +1 -1
- package/lib/modules/inline-form/inline-form-adapter.service.d.ts +1 -3
- package/lib/modules/inline-form/inline-form.component.d.ts +6 -13
- package/package.json +3 -3
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
var _SkyInlineFormComponent_instances, _SkyInlineFormComponent__config, _SkyInlineFormComponent__showForm, _SkyInlineFormComponent_adapter, _SkyInlineFormComponent_elementRef, _SkyInlineFormComponent_resourcesService, _SkyInlineFormComponent_skyAppWindowRef, _SkyInlineFormComponent_changeDetectorRef, _SkyInlineFormComponent_setupButtons;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
4
|
import { SkyAppWindowRef } from '@skyux/core';
|
|
3
5
|
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
4
6
|
import { zip as observableZip } from 'rxjs';
|
|
@@ -16,29 +18,36 @@ import * as i4 from "@angular/common";
|
|
|
16
18
|
*/
|
|
17
19
|
export class SkyInlineFormComponent {
|
|
18
20
|
constructor(adapter, elementRef, resourcesService, skyAppWindowRef, changeDetectorRef) {
|
|
19
|
-
this
|
|
20
|
-
this.elementRef = elementRef;
|
|
21
|
-
this.resourcesService = resourcesService;
|
|
22
|
-
this.skyAppWindowRef = skyAppWindowRef;
|
|
23
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
21
|
+
_SkyInlineFormComponent_instances.add(this);
|
|
24
22
|
/**
|
|
25
23
|
* Fires when users close the inline form.
|
|
26
24
|
*/
|
|
27
25
|
this.close = new EventEmitter();
|
|
28
|
-
this
|
|
26
|
+
_SkyInlineFormComponent__config.set(this, void 0);
|
|
27
|
+
_SkyInlineFormComponent__showForm.set(this, false);
|
|
28
|
+
_SkyInlineFormComponent_adapter.set(this, void 0);
|
|
29
|
+
_SkyInlineFormComponent_elementRef.set(this, void 0);
|
|
30
|
+
_SkyInlineFormComponent_resourcesService.set(this, void 0);
|
|
31
|
+
_SkyInlineFormComponent_skyAppWindowRef.set(this, void 0);
|
|
32
|
+
_SkyInlineFormComponent_changeDetectorRef.set(this, void 0);
|
|
33
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_adapter, adapter, "f");
|
|
34
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_elementRef, elementRef, "f");
|
|
35
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_resourcesService, resourcesService, "f");
|
|
36
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_skyAppWindowRef, skyAppWindowRef, "f");
|
|
37
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_changeDetectorRef, changeDetectorRef, "f");
|
|
29
38
|
}
|
|
30
39
|
/**
|
|
31
40
|
* Specifies configuration options for the buttons to display with the inline form.
|
|
32
41
|
* @required
|
|
33
42
|
*/
|
|
34
43
|
set config(value) {
|
|
35
|
-
if (value !== this
|
|
36
|
-
this
|
|
37
|
-
this.
|
|
44
|
+
if (value !== __classPrivateFieldGet(this, _SkyInlineFormComponent__config, "f") && !!value) {
|
|
45
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent__config, value, "f");
|
|
46
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_instances, "m", _SkyInlineFormComponent_setupButtons).call(this);
|
|
38
47
|
}
|
|
39
48
|
}
|
|
40
49
|
get config() {
|
|
41
|
-
return this
|
|
50
|
+
return __classPrivateFieldGet(this, _SkyInlineFormComponent__config, "f");
|
|
42
51
|
}
|
|
43
52
|
/**
|
|
44
53
|
* Indicates whether to display the inline form. Users can toggle between displaying
|
|
@@ -46,21 +55,21 @@ export class SkyInlineFormComponent {
|
|
|
46
55
|
* @default false
|
|
47
56
|
*/
|
|
48
57
|
set showForm(value) {
|
|
49
|
-
this
|
|
58
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent__showForm, value, "f");
|
|
50
59
|
/* istanbul ignore else */
|
|
51
60
|
if (value) {
|
|
52
61
|
// setTimeout() prevents applyAutofocus() from firing
|
|
53
62
|
// until after *ngIf has added the form element to the DOM.
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
63
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_skyAppWindowRef, "f").nativeWindow.setTimeout(() => {
|
|
64
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_adapter, "f").applyAutofocus(__classPrivateFieldGet(this, _SkyInlineFormComponent_elementRef, "f"));
|
|
56
65
|
});
|
|
57
66
|
}
|
|
58
67
|
}
|
|
59
68
|
get showForm() {
|
|
60
|
-
return this
|
|
69
|
+
return __classPrivateFieldGet(this, _SkyInlineFormComponent__showForm, "f");
|
|
61
70
|
}
|
|
62
71
|
ngOnInit() {
|
|
63
|
-
this.
|
|
72
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_instances, "m", _SkyInlineFormComponent_setupButtons).call(this);
|
|
64
73
|
}
|
|
65
74
|
ngOnDestroy() {
|
|
66
75
|
this.close.complete();
|
|
@@ -71,17 +80,6 @@ export class SkyInlineFormComponent {
|
|
|
71
80
|
};
|
|
72
81
|
this.close.emit(args);
|
|
73
82
|
}
|
|
74
|
-
setupButtons() {
|
|
75
|
-
if (this.isValidCustomConfig(this.config)) {
|
|
76
|
-
this.buttons = this.getCustomButtons(this.config.buttons);
|
|
77
|
-
this.changeDetectorRef.markForCheck();
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.getPresetButtons().then((buttons) => {
|
|
81
|
-
this.buttons = buttons;
|
|
82
|
-
this.changeDetectorRef.markForCheck();
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
83
|
getPresetButtons() {
|
|
86
84
|
const buttonType = this.config
|
|
87
85
|
? this.config.buttonLayout
|
|
@@ -91,7 +89,7 @@ export class SkyInlineFormComponent {
|
|
|
91
89
|
/* istanbul ignore next */
|
|
92
90
|
default:
|
|
93
91
|
case SkyInlineFormButtonLayout.DoneCancel:
|
|
94
|
-
observableZip(this.
|
|
92
|
+
observableZip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_done'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
95
93
|
.pipe(take(1))
|
|
96
94
|
.subscribe((values) => {
|
|
97
95
|
promise = new Promise((resolve) => {
|
|
@@ -111,7 +109,7 @@ export class SkyInlineFormComponent {
|
|
|
111
109
|
});
|
|
112
110
|
break;
|
|
113
111
|
case SkyInlineFormButtonLayout.SaveCancel:
|
|
114
|
-
observableZip(this.
|
|
112
|
+
observableZip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_save'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
115
113
|
.pipe(take(1))
|
|
116
114
|
.subscribe((values) => {
|
|
117
115
|
promise = new Promise((resolve) => {
|
|
@@ -131,7 +129,7 @@ export class SkyInlineFormComponent {
|
|
|
131
129
|
});
|
|
132
130
|
break;
|
|
133
131
|
case SkyInlineFormButtonLayout.DoneDeleteCancel:
|
|
134
|
-
observableZip(this.
|
|
132
|
+
observableZip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_done'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_delete'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
135
133
|
.pipe(take(1))
|
|
136
134
|
.subscribe((values) => {
|
|
137
135
|
promise = new Promise((resolve) => {
|
|
@@ -156,7 +154,7 @@ export class SkyInlineFormComponent {
|
|
|
156
154
|
});
|
|
157
155
|
break;
|
|
158
156
|
case SkyInlineFormButtonLayout.SaveDeleteCancel:
|
|
159
|
-
observableZip(this.
|
|
157
|
+
observableZip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_save'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_delete'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
160
158
|
.pipe(take(1))
|
|
161
159
|
.subscribe((values) => {
|
|
162
160
|
promise = new Promise((resolve) => {
|
|
@@ -198,11 +196,25 @@ export class SkyInlineFormComponent {
|
|
|
198
196
|
return buttons;
|
|
199
197
|
}
|
|
200
198
|
isValidCustomConfig(config) {
|
|
201
|
-
return (config &&
|
|
202
|
-
config.
|
|
203
|
-
config.buttons.length > 0
|
|
199
|
+
return (!!config &&
|
|
200
|
+
!!config.buttons &&
|
|
201
|
+
config.buttons.length > 0 &&
|
|
202
|
+
config.buttonLayout === SkyInlineFormButtonLayout.Custom);
|
|
204
203
|
}
|
|
205
204
|
}
|
|
205
|
+
_SkyInlineFormComponent__config = new WeakMap(), _SkyInlineFormComponent__showForm = new WeakMap(), _SkyInlineFormComponent_adapter = new WeakMap(), _SkyInlineFormComponent_elementRef = new WeakMap(), _SkyInlineFormComponent_resourcesService = new WeakMap(), _SkyInlineFormComponent_skyAppWindowRef = new WeakMap(), _SkyInlineFormComponent_changeDetectorRef = new WeakMap(), _SkyInlineFormComponent_instances = new WeakSet(), _SkyInlineFormComponent_setupButtons = function _SkyInlineFormComponent_setupButtons() {
|
|
206
|
+
if (this.isValidCustomConfig(this.config) &&
|
|
207
|
+
this.config &&
|
|
208
|
+
this.config.buttons) {
|
|
209
|
+
this.buttons = this.getCustomButtons(this.config.buttons);
|
|
210
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_changeDetectorRef, "f").markForCheck();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
this.getPresetButtons()?.then((buttons) => {
|
|
214
|
+
this.buttons = buttons;
|
|
215
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_changeDetectorRef, "f").markForCheck();
|
|
216
|
+
});
|
|
217
|
+
};
|
|
206
218
|
SkyInlineFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormComponent, deps: [{ token: i1.SkyInlineFormAdapterService }, { token: i0.ElementRef }, { token: i2.SkyLibResourcesService }, { token: i3.SkyAppWindowRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
207
219
|
SkyInlineFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyInlineFormComponent, selector: "sky-inline-form", inputs: { config: "config", template: "template", showForm: "showForm" }, outputs: { close: "close" }, providers: [SkyInlineFormAdapterService], ngImport: i0, template: "<div [@skySlideDissolve]=\"showForm\">\n <div *ngIf=\"!showForm\" class=\"sky-slide-dissolve-first\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"template && showForm\" class=\"sky-slide-dissolve-last\">\n <div class=\"sky-inline-form sky-shadow sky-box sky-elevation-3\">\n <div class=\"sky-inline-form-content\">\n <ng-container [ngTemplateOutlet]=\"template\"> </ng-container>\n </div>\n <div class=\"sky-inline-form-footer\">\n <button\n *ngFor=\"let button of buttons\"\n class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n type=\"button\"\n [disabled]=\"button.disabled ? true : null\"\n [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n (click)=\"closeInlineForm(button)\"\n >\n {{ button.text }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-form{background:#eeeeef;border:1px solid #cdcfd2;padding:10px;width:100%}.sky-inline-form .sky-inline-form-footer{margin-top:20px}.sky-inline-form .sky-inline-form-footer button{margin:0 5px 0 0}:host-context(.sky-theme-modern) .sky-inline-form{background-color:#fff;border:none;padding:15px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer{margin-top:30px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer button{margin-right:10px}.sky-theme-modern .sky-inline-form{background-color:#fff;border:none;padding:15px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer{margin-top:30px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer button{margin-right:10px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-inline-form{background-color:#232427}.sky-theme-modern.sky-theme-mode-dark .sky-inline-form{background-color:#232427}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [skySlideDissolve], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
208
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormComponent, decorators: [{
|
|
@@ -217,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
217
229
|
}], close: [{
|
|
218
230
|
type: Output
|
|
219
231
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2lubGluZS1mb3JtL3NyYy9saWIvbW9kdWxlcy9pbmxpbmUtZm9ybS9pbmxpbmUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5saW5lLWZvcm0vc3JjL2xpYi9tb2R1bGVzL2lubGluZS1mb3JtL2lubGluZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxHQUFHLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7O0FBSTlFOztHQUVHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQTREakMsWUFDVSxPQUFvQyxFQUNwQyxVQUFzQixFQUN0QixnQkFBd0MsRUFDeEMsZUFBZ0MsRUFDaEMsaUJBQW9DO1FBSnBDLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENB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QU0sQ0FBQyxZQUFZLEtBQUsseUJBQXlCLENBQUMsTUFBTTtZQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDOzttSEE1UFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsaUpBSHRCLENBQUMsMkJBQTJCLENBQUMsMEJDakMxQyxrNEJBeUJBLGk2Q0RTYyxDQUFDLGdCQUFnQixDQUFDOzJGQUVuQixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQywyQkFBMkIsQ0FBQyxjQUM1QixDQUFDLGdCQUFnQixDQUFDOzhPQVFuQixNQUFNO3NCQURoQixLQUFLO2dCQWlCQyxRQUFRO3NCQURkLEtBQUs7Z0JBU0ssUUFBUTtzQkFEbEIsS0FBSztnQkF1QkMsS0FBSztzQkFGWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IHppcCBhcyBvYnNlcnZhYmxlWmlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBza3lTbGlkZURpc3NvbHZlIH0gZnJvbSAnLi9hbmltYXRpb25zL3NsaWRlLWRpc3NvbHZlJztcbmltcG9ydCB7IFNreUlubGluZUZvcm1BZGFwdGVyU2VydmljZSB9IGZyb20gJy4vaW5saW5lLWZvcm0tYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUlubGluZUZvcm1CdXR0b25Db25maWcgfSBmcm9tICcuL3R5cGVzL2lubGluZS1mb3JtLWJ1dHRvbi1jb25maWcnO1xuaW1wb3J0IHsgU2t5SW5saW5lRm9ybUJ1dHRvbkxheW91dCB9IGZyb20gJy4vdHlwZXMvaW5saW5lLWZvcm0tYnV0dG9uLWxheW91dCc7XG5pbXBvcnQgeyBTa3lJbmxpbmVGb3JtQ2xvc2VBcmdzIH0gZnJvbSAnLi90eXBlcy9pbmxpbmUtZm9ybS1jbG9zZS1hcmdzJztcbmltcG9ydCB7IFNreUlubGluZUZvcm1Db25maWcgfSBmcm9tICcuL3R5cGVzL2lubGluZS1mb3JtLWNvbmZpZyc7XG5cbi8qKlxuICogUmVuZGVycyBmb3JtIGNvbnRlbnQgaW4gdGhlIGN1cnJlbnQgdmlldyBpbnN0ZWFkIG9mIGEgc2VwYXJhdGUgbW9kYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1pbmxpbmUtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lubGluZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtTa3lJbmxpbmVGb3JtQWRhcHRlclNlcnZpY2VdLFxuICBhbmltYXRpb25zOiBbc2t5U2xpZGVEaXNzb2x2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUlubGluZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYnV0dG9ucyB0byBkaXNwbGF5IHdpdGggdGhlIGlubGluZSBmb3JtLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBTa3lJbmxpbmVGb3JtQ29uZmlnKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9jb25maWcpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IHZhbHVlO1xuICAgICAgdGhpcy5zZXR1cEJ1dHRvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBTa3lJbmxpbmVGb3JtQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHRlbXBsYXRlIHRvIHVzZSB0byBpbnN0YW50aWF0ZSB0aGUgaW5saW5lIGZvcm0uXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSB0aGUgaW5saW5lIGZvcm0uIFVzZXJzIGNhbiB0b2dnbGUgYmV0d2VlbiBkaXNwbGF5aW5nXG4gICAqIGFuZCBoaWRpbmcgdGhlIGlubGluZSBmb3JtLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzaG93Rm9ybSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dGb3JtID0gdmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgLy8gc2V0VGltZW91dCgpIHByZXZlbnRzIGFwcGx5QXV0b2ZvY3VzKCkgZnJvbSBmaXJpbmdcbiAgICAgIC8vIHVudGlsIGFmdGVyICpuZ0lmIGhhcyBhZGRlZCB0aGUgZm9ybSBlbGVtZW50IHRvIHRoZSBET00uXG4gICAgICB0aGlzLnNreUFwcFdpbmRvd1JlZi5uYXRpdmVXaW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWRhcHRlci5hcHBseUF1dG9mb2N1cyh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBzaG93Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0Zvcm07XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjbG9zZSB0aGUgaW5saW5lIGZvcm0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5SW5saW5lRm9ybUNsb3NlQXJncz4oKTtcblxuICBwdWJsaWMgYnV0dG9uczogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdO1xuXG4gIHByaXZhdGUgX2NvbmZpZzogU2t5SW5saW5lRm9ybUNvbmZpZztcblxuICBwcml2YXRlIF9zaG93Rm9ybSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlcjogU2t5SW5saW5lRm9ybUFkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBza3lBcHBXaW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBCdXR0b25zKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlSW5saW5lRm9ybShldmVudDogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGFyZ3M6IFNreUlubGluZUZvcm1DbG9zZUFyZ3MgPSB7XG4gICAgICByZWFzb246IGV2ZW50LmFjdGlvbixcbiAgICB9O1xuICAgIHRoaXMuY2xvc2UuZW1pdChhcmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBCdXR0b25zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzVmFsaWRDdXN0b21Db25maWcodGhpcy5jb25maWcpKSB7XG4gICAgICB0aGlzLmJ1dHRvbnMgPSB0aGlzLmdldEN1c3RvbUJ1dHRvbnModGhpcy5jb25maWcuYnV0dG9ucyk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0UHJlc2V0QnV0dG9ucygpLnRoZW4oKGJ1dHRvbnMpID0+IHtcbiAgICAgIHRoaXMuYnV0dG9ucyA9IGJ1dHRvbnM7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmVzZXRCdXR0b25zKCk6IFByb21pc2U8U2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdPiB7XG4gICAgY29uc3QgYnV0dG9uVHlwZSA9IHRoaXMuY29uZmlnXG4gICAgICA/IHRoaXMuY29uZmlnLmJ1dHRvbkxheW91dFxuICAgICAgOiBTa3lJbmxpbmVGb3JtQnV0dG9uTGF5b3V0LkRvbmVDYW5jZWw7XG5cbiAgICBsZXQgcHJvbWlzZTogUHJvbWlzZTxTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10+O1xuXG4gICAgc3dpdGNoIChidXR0b25UeXBlKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgU2t5SW5saW5lRm9ybUJ1dHRvbkxheW91dC5Eb25lQ2FuY2VsOlxuICAgICAgICBvYnNlcnZhYmxlWmlwKFxuICAgICAgICAgIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9kb25lJyksXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX2NhbmNlbCcpXG4gICAgICAgIClcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogYW55KSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2U8U2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHJlc29sdmU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdkb25lJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1sxXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAnbGluaycsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lJbmxpbmVGb3JtQnV0dG9uTGF5b3V0LlNhdmVDYW5jZWw6XG4gICAgICAgIG9ic2VydmFibGVaaXAoXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX3NhdmUnKSxcbiAgICAgICAgICB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9pbmxpbmVfZm9ybV9idXR0b25fY2FuY2VsJylcbiAgICAgICAgKVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsdWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZTxTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10+KFxuICAgICAgICAgICAgICAocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzFdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdsaW5rJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUlubGluZUZvcm1CdXR0b25MYXlvdXQuRG9uZURlbGV0ZUNhbmNlbDpcbiAgICAgICAgb2JzZXJ2YWJsZVppcChcbiAgICAgICAgICB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9pbmxpbmVfZm9ybV9idXR0b25fZG9uZScpLFxuICAgICAgICAgIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9kZWxldGUnKSxcbiAgICAgICAgICB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9pbmxpbmVfZm9ybV9idXR0b25fY2FuY2VsJylcbiAgICAgICAgKVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsdWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZTxTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10+KFxuICAgICAgICAgICAgICAocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2RvbmUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzFdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1syXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAnbGluaycsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lJbmxpbmVGb3JtQnV0dG9uTGF5b3V0LlNhdmVEZWxldGVDYW5jZWw6XG4gICAgICAgIG9ic2VydmFibGVaaXAoXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX3NhdmUnKSxcbiAgICAgICAgICB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9pbmxpbmVfZm9ybV9idXR0b25fZGVsZXRlJyksXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX2NhbmNlbCcpXG4gICAgICAgIClcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogYW55KSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2U8U2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHJlc29sdmU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1sxXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXNbMl0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEN1c3RvbUJ1dHRvbnMoXG4gICAgYnV0dG9uQ29uZmlnczogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdXG4gICk6IFNreUlubGluZUZvcm1CdXR0b25Db25maWdbXSB7XG4gICAgY29uc3QgYnV0dG9uczogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdID0gW107XG5cbiAgICBidXR0b25Db25maWdzLmZvckVhY2goKGNvbmZpZzogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZykgPT4ge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGNvbnN0IHN0eWxlVHlwZSA9IGNvbmZpZy5zdHlsZVR5cGUgfHwgJ2RlZmF1bHQnO1xuXG4gICAgICBidXR0b25zLnB1c2goe1xuICAgICAgICBhY3Rpb246IGNvbmZpZy5hY3Rpb24sXG4gICAgICAgIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQsXG4gICAgICAgIHN0eWxlVHlwZTogc3R5bGVUeXBlLFxuICAgICAgICB0ZXh0OiBjb25maWcudGV4dCxcbiAgICAgIH0gYXMgU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYnV0dG9ucztcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEN1c3RvbUNvbmZpZyhjb25maWc6IFNreUlubGluZUZvcm1Db25maWcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29uZmlnICYmXG4gICAgICBjb25maWcuYnV0dG9uTGF5b3V0ID09PSBTa3lJbmxpbmVGb3JtQnV0dG9uTGF5b3V0LkN1c3RvbSAmJlxuICAgICAgY29uZmlnLmJ1dHRvbnMubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgW0Bza3lTbGlkZURpc3NvbHZlXT1cInNob3dGb3JtXCI+XG4gIDxkaXYgKm5nSWY9XCIhc2hvd0Zvcm1cIiBjbGFzcz1cInNreS1zbGlkZS1kaXNzb2x2ZS1maXJzdFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cInRlbXBsYXRlICYmIHNob3dGb3JtXCIgY2xhc3M9XCJza3ktc2xpZGUtZGlzc29sdmUtbGFzdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktaW5saW5lLWZvcm0gc2t5LXNoYWRvdyBza3ktYm94IHNreS1lbGV2YXRpb24tM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1pbmxpbmUtZm9ybS1jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktaW5saW5lLWZvcm0tZm9vdGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvbnNcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biB7eyAnc2t5LWJ0bi0nICsgYnV0dG9uLnN0eWxlVHlwZSB9fVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbi5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdza3ktYnRuLWRpc2FibGVkJzogYnV0dG9uLmRpc2FibGVkIH1cIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZUlubGluZUZvcm0oYnV0dG9uKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBidXR0b24udGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2lubGluZS1mb3JtL3NyYy9saWIvbW9kdWxlcy9pbmxpbmUtZm9ybS9pbmxpbmUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5saW5lLWZvcm0vc3JjL2xpYi9tb2R1bGVzL2lubGluZS1mb3JtL2lubGluZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsR0FBRyxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7OztBQUk5RTs7R0FFRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUFtRWpDLFlBQ0UsT0FBb0MsRUFDcEMsVUFBc0IsRUFDdEIsZ0JBQXdDLEVBQ3hDLGVBQWdDLEVBQ2hDLGlCQUFvQzs7UUF6QnRDOztXQUVHO1FBR0ksVUFBSyxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBSzFELGtE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LElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU07UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkI7UUFDQSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELHVCQUFBLElBQUksaURBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsT0FBTztLQUNSO0lBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsdUJBQUEsSUFBSSxpREFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7bUhBL0dVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGlKQUh0QixDQUFDLDJCQUEyQixDQUFDLDBCQ2pDMUMsazRCQXlCQSxpNkNEU2MsQ0FBQyxnQkFBZ0IsQ0FBQzsyRkFFbkIsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMkJBQTJCLENBQUMsY0FDNUIsQ0FBQyxnQkFBZ0IsQ0FBQzs4T0FRbkIsTUFBTTtzQkFEaEIsS0FBSztnQkFpQkMsUUFBUTtzQkFEZCxLQUFLO2dCQVNLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBdUJDLEtBQUs7c0JBRlgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyB6aXAgYXMgb2JzZXJ2YWJsZVppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgc2t5U2xpZGVEaXNzb2x2ZSB9IGZyb20gJy4vYW5pbWF0aW9ucy9zbGlkZS1kaXNzb2x2ZSc7XG5pbXBvcnQgeyBTa3lJbmxpbmVGb3JtQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2lubGluZS1mb3JtLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi90eXBlcy9pbmxpbmUtZm9ybS1idXR0b24tY29uZmlnJztcbmltcG9ydCB7IFNreUlubGluZUZvcm1CdXR0b25MYXlvdXQgfSBmcm9tICcuL3R5cGVzL2lubGluZS1mb3JtLWJ1dHRvbi1sYXlvdXQnO1xuaW1wb3J0IHsgU2t5SW5saW5lRm9ybUNsb3NlQXJncyB9IGZyb20gJy4vdHlwZXMvaW5saW5lLWZvcm0tY2xvc2UtYXJncyc7XG5pbXBvcnQgeyBTa3lJbmxpbmVGb3JtQ29uZmlnIH0gZnJvbSAnLi90eXBlcy9pbmxpbmUtZm9ybS1jb25maWcnO1xuXG4vKipcbiAqIFJlbmRlcnMgZm9ybSBjb250ZW50IGluIHRoZSBjdXJyZW50IHZpZXcgaW5zdGVhZCBvZiBhIHNlcGFyYXRlIG1vZGFsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktaW5saW5lLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5saW5lLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmxpbmUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbU2t5SW5saW5lRm9ybUFkYXB0ZXJTZXJ2aWNlXSxcbiAgYW5pbWF0aW9uczogW3NreVNsaWRlRGlzc29sdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJbmxpbmVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3BlY2lmaWVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGJ1dHRvbnMgdG8gZGlzcGxheSB3aXRoIHRoZSBpbmxpbmUgZm9ybS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogU2t5SW5saW5lRm9ybUNvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2NvbmZpZyAmJiAhIXZhbHVlKSB7XG4gICAgICB0aGlzLiNfY29uZmlnID0gdmFsdWU7XG4gICAgICB0aGlzLiNzZXR1cEJ1dHRvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBTa3lJbmxpbmVGb3JtQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB0ZW1wbGF0ZSB0byB1c2UgdG8gaW5zdGFudGlhdGUgdGhlIGlubGluZSBmb3JtLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgdGhlIGlubGluZSBmb3JtLiBVc2VycyBjYW4gdG9nZ2xlIGJldHdlZW4gZGlzcGxheWluZ1xuICAgKiBhbmQgaGlkaW5nIHRoZSBpbmxpbmUgZm9ybS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2hvd0Zvcm0odmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc2hvd0Zvcm0gPSB2YWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBzZXRUaW1lb3V0KCkgcHJldmVudHMgYXBwbHlBdXRvZm9jdXMoKSBmcm9tIGZpcmluZ1xuICAgICAgLy8gdW50aWwgYWZ0ZXIgKm5nSWYgaGFzIGFkZGVkIHRoZSBmb3JtIGVsZW1lbnQgdG8gdGhlIERPTS5cbiAgICAgIHRoaXMuI3NreUFwcFdpbmRvd1JlZi5uYXRpdmVXaW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXIuYXBwbHlBdXRvZm9jdXModGhpcy4jZWxlbWVudFJlZik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNob3dGb3JtKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfc2hvd0Zvcm07XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjbG9zZSB0aGUgaW5saW5lIGZvcm0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5SW5saW5lRm9ybUNsb3NlQXJncz4oKTtcblxuICAvLyBUT0RPOiBoYW5kbGUgYnV0dG9ucyBiZWluZyBzZXQgYXN5bmNocm9ub3VzbHkgKFwifCB1bmRlZmluZWRcIikgd2hlbiBzZXR0aW5nIGF1dG9mb2N1c1xuICBwdWJsaWMgYnV0dG9ucyE6IFNreUlubGluZUZvcm1CdXR0b25Db25maWdbXTtcblxuICAjX2NvbmZpZzogU2t5SW5saW5lRm9ybUNvbmZpZyB8IHVuZGVmaW5lZDtcblxuICAjX3Nob3dGb3JtOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgI2FkYXB0ZXI6IFNreUlubGluZUZvcm1BZGFwdGVyU2VydmljZTtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICNyZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlO1xuICAjc2t5QXBwV2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG4gICNjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlcjogU2t5SW5saW5lRm9ybUFkYXB0ZXJTZXJ2aWNlLFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgICBza3lBcHBXaW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy4jYWRhcHRlciA9IGFkYXB0ZXI7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG4gICAgdGhpcy4jc2t5QXBwV2luZG93UmVmID0gc2t5QXBwV2luZG93UmVmO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmID0gY2hhbmdlRGV0ZWN0b3JSZWY7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc2V0dXBCdXR0b25zKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlSW5saW5lRm9ybShldmVudDogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGFyZ3M6IFNreUlubGluZUZvcm1DbG9zZUFyZ3MgPSB7XG4gICAgICByZWFzb246IGV2ZW50LmFjdGlvbixcbiAgICB9O1xuICAgIHRoaXMuY2xvc2UuZW1pdChhcmdzKTtcbiAgfVxuXG4gICNzZXR1cEJ1dHRvbnMoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pc1ZhbGlkQ3VzdG9tQ29uZmlnKHRoaXMuY29uZmlnKSAmJlxuICAgICAgdGhpcy5jb25maWcgJiZcbiAgICAgIHRoaXMuY29uZmlnLmJ1dHRvbnNcbiAgICApIHtcbiAgICAgIHRoaXMuYnV0dG9ucyA9IHRoaXMuZ2V0Q3VzdG9tQnV0dG9ucyh0aGlzLmNvbmZpZy5idXR0b25zKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0UHJlc2V0QnV0dG9ucygpPy50aGVuKChidXR0b25zKSA9PiB7XG4gICAgICB0aGlzLmJ1dHRvbnMgPSBidXR0b25zO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByZXNldEJ1dHRvbnMoKTogUHJvbWlzZTxTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBidXR0b25UeXBlID0gdGhpcy5jb25maWdcbiAgICAgID8gdGhpcy5jb25maWcuYnV0dG9uTGF5b3V0XG4gICAgICA6IFNreUlubGluZUZvcm1CdXR0b25MYXlvdXQuRG9uZUNhbmNlbDtcblxuICAgIGxldCBwcm9taXNlOiBQcm9taXNlPFNreUlubGluZUZvcm1CdXR0b25Db25maWdbXT4gfCB1bmRlZmluZWQ7XG5cbiAgICBzd2l0Y2ggKGJ1dHRvblR5cGUpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBTa3lJbmxpbmVGb3JtQnV0dG9uTGF5b3V0LkRvbmVDYW5jZWw6XG4gICAgICAgIG9ic2VydmFibGVaaXAoXG4gICAgICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9kb25lJyksXG4gICAgICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9jYW5jZWwnKVxuICAgICAgICApXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2U8U2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHJlc29sdmU6ICh2YWx1ZTogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2RvbmUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzFdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdsaW5rJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUlubGluZUZvcm1CdXR0b25MYXlvdXQuU2F2ZUNhbmNlbDpcbiAgICAgICAgb2JzZXJ2YWJsZVppcChcbiAgICAgICAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX3NhdmUnKSxcbiAgICAgICAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX2NhbmNlbCcpXG4gICAgICAgIClcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZTxTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10+KFxuICAgICAgICAgICAgICAocmVzb2x2ZTogKHZhbHVlOiBTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10pID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzBdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXNbMV0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2t5SW5saW5lRm9ybUJ1dHRvbkxheW91dC5Eb25lRGVsZXRlQ2FuY2VsOlxuICAgICAgICBvYnNlcnZhYmxlWmlwKFxuICAgICAgICAgIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9pbmxpbmVfZm9ybV9idXR0b25fZG9uZScpLFxuICAgICAgICAgIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9pbmxpbmVfZm9ybV9idXR0b25fZGVsZXRlJyksXG4gICAgICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9jYW5jZWwnKVxuICAgICAgICApXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2U8U2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHJlc29sdmU6ICh2YWx1ZTogU2t5SW5saW5lRm9ybUJ1dHRvbkNvbmZpZ1tdKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2RvbmUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzFdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlc1syXSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUeXBlOiAnbGluaycsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lJbmxpbmVGb3JtQnV0dG9uTGF5b3V0LlNhdmVEZWxldGVDYW5jZWw6XG4gICAgICAgIG9ic2VydmFibGVaaXAoXG4gICAgICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9zYXZlJyksXG4gICAgICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoJ3NreXV4X2lubGluZV9mb3JtX2J1dHRvbl9kZWxldGUnKSxcbiAgICAgICAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfaW5saW5lX2Zvcm1fYnV0dG9uX2NhbmNlbCcpXG4gICAgICAgIClcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZTxTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10+KFxuICAgICAgICAgICAgICAocmVzb2x2ZTogKHZhbHVlOiBTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10pID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzBdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXNbMV0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzWzJdLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdsaW5rJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXN0b21CdXR0b25zKFxuICAgIGJ1dHRvbkNvbmZpZ3M6IFNreUlubGluZUZvcm1CdXR0b25Db25maWdbXVxuICApOiBTa3lJbmxpbmVGb3JtQnV0dG9uQ29uZmlnW10ge1xuICAgIGNvbnN0IGJ1dHRvbnM6IFNreUlubGluZUZvcm1CdXR0b25Db25maWdbXSA9IFtdO1xuXG4gICAgYnV0dG9uQ29uZmlncy5mb3JFYWNoKChjb25maWc6IFNreUlubGluZUZvcm1CdXR0b25Db25maWcpID0+IHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBjb25zdCBzdHlsZVR5cGUgPSBjb25maWcuc3R5bGVUeXBlIHx8ICdkZWZhdWx0JztcblxuICAgICAgYnV0dG9ucy5wdXNoKHtcbiAgICAgICAgYWN0aW9uOiBjb25maWcuYWN0aW9uLFxuICAgICAgICBkaXNhYmxlZDogY29uZmlnLmRpc2FibGVkLFxuICAgICAgICBzdHlsZVR5cGU6IHN0eWxlVHlwZSxcbiAgICAgICAgdGV4dDogY29uZmlnLnRleHQsXG4gICAgICB9IGFzIFNreUlubGluZUZvcm1CdXR0b25Db25maWcpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJ1dHRvbnM7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRDdXN0b21Db25maWcoXG4gICAgY29uZmlnOiBTa3lJbmxpbmVGb3JtQ29uZmlnIHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIWNvbmZpZyAmJlxuICAgICAgISFjb25maWcuYnV0dG9ucyAmJlxuICAgICAgY29uZmlnLmJ1dHRvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgY29uZmlnLmJ1dHRvbkxheW91dCA9PT0gU2t5SW5saW5lRm9ybUJ1dHRvbkxheW91dC5DdXN0b21cbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IFtAc2t5U2xpZGVEaXNzb2x2ZV09XCJzaG93Rm9ybVwiPlxuICA8ZGl2ICpuZ0lmPVwiIXNob3dGb3JtXCIgY2xhc3M9XCJza3ktc2xpZGUtZGlzc29sdmUtZmlyc3RcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJ0ZW1wbGF0ZSAmJiBzaG93Rm9ybVwiIGNsYXNzPVwic2t5LXNsaWRlLWRpc3NvbHZlLWxhc3RcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWlubGluZS1mb3JtIHNreS1zaGFkb3cgc2t5LWJveCBza3ktZWxldmF0aW9uLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktaW5saW5lLWZvcm0tY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWlubGluZS1mb3JtLWZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4ge3sgJ3NreS1idG4tJyArIGJ1dHRvbi5zdHlsZVR5cGUgfX1cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b24uZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2t5LWJ0bi1kaXNhYmxlZCc6IGJ1dHRvbi5kaXNhYmxlZCB9XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2VJbmxpbmVGb3JtKGJ1dHRvbilcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYnV0dG9uLnRleHQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -4,6 +4,7 @@ import * as i0 from '@angular/core';
|
|
|
4
4
|
import { NgModule, Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
|
|
5
5
|
import * as i2 from '@skyux/i18n';
|
|
6
6
|
import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
|
|
7
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
7
8
|
import { zip } from 'rxjs';
|
|
8
9
|
import { take } from 'rxjs/operators';
|
|
9
10
|
import { trigger, transition, query, style, animate, group } from '@angular/animations';
|
|
@@ -81,6 +82,7 @@ const skySlideDissolve = trigger('skySlideDissolve', [
|
|
|
81
82
|
]),
|
|
82
83
|
]);
|
|
83
84
|
|
|
85
|
+
var _SkyInlineFormAdapterService_instances, _SkyInlineFormAdapterService_loadFocusableChildren, _SkyInlineFormAdapterService_isVisible, _SkyInlineFormAdapterService_focusFirstElement;
|
|
84
86
|
const SKY_TABBABLE_SELECTOR = [
|
|
85
87
|
'a[href]',
|
|
86
88
|
'area[href]',
|
|
@@ -98,6 +100,9 @@ const SKY_TABBABLE_SELECTOR = [
|
|
|
98
100
|
* @internal
|
|
99
101
|
*/
|
|
100
102
|
class SkyInlineFormAdapterService {
|
|
103
|
+
constructor() {
|
|
104
|
+
_SkyInlineFormAdapterService_instances.add(this);
|
|
105
|
+
}
|
|
101
106
|
applyAutofocus(inlineFormElementRef) {
|
|
102
107
|
const inputWithAutofocus = inlineFormElementRef.nativeElement.querySelector('[autofocus]');
|
|
103
108
|
if (inputWithAutofocus) {
|
|
@@ -105,34 +110,32 @@ class SkyInlineFormAdapterService {
|
|
|
105
110
|
}
|
|
106
111
|
else {
|
|
107
112
|
const focusEl = inlineFormElementRef.nativeElement.querySelector('.sky-inline-form-content');
|
|
108
|
-
const focusableChildren = this.
|
|
109
|
-
this.
|
|
113
|
+
const focusableChildren = __classPrivateFieldGet(this, _SkyInlineFormAdapterService_instances, "m", _SkyInlineFormAdapterService_loadFocusableChildren).call(this, focusEl);
|
|
114
|
+
__classPrivateFieldGet(this, _SkyInlineFormAdapterService_instances, "m", _SkyInlineFormAdapterService_focusFirstElement).call(this, focusableChildren);
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
/* istanbul ignore next */
|
|
125
|
-
const hasBounds = !!(element.offsetWidth ||
|
|
126
|
-
element.offsetHeight ||
|
|
127
|
-
element.getClientRects().length);
|
|
128
|
-
return hasBounds;
|
|
117
|
+
}
|
|
118
|
+
_SkyInlineFormAdapterService_instances = new WeakSet(), _SkyInlineFormAdapterService_loadFocusableChildren = function _SkyInlineFormAdapterService_loadFocusableChildren(elem) {
|
|
119
|
+
const elements = Array.prototype.slice.call(elem.querySelectorAll(SKY_TABBABLE_SELECTOR));
|
|
120
|
+
return elements.filter((element) => {
|
|
121
|
+
return __classPrivateFieldGet(this, _SkyInlineFormAdapterService_instances, "m", _SkyInlineFormAdapterService_isVisible).call(this, element);
|
|
122
|
+
});
|
|
123
|
+
}, _SkyInlineFormAdapterService_isVisible = function _SkyInlineFormAdapterService_isVisible(element) {
|
|
124
|
+
const style = window.getComputedStyle(element);
|
|
125
|
+
const isHidden = style.display === 'none' || style.visibility === 'hidden';
|
|
126
|
+
if (isHidden) {
|
|
127
|
+
return false;
|
|
129
128
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
/* istanbul ignore next */
|
|
130
|
+
const hasBounds = !!(element.offsetWidth ||
|
|
131
|
+
element.offsetHeight ||
|
|
132
|
+
element.getClientRects().length);
|
|
133
|
+
return hasBounds;
|
|
134
|
+
}, _SkyInlineFormAdapterService_focusFirstElement = function _SkyInlineFormAdapterService_focusFirstElement(list) {
|
|
135
|
+
if (list.length > 0) {
|
|
136
|
+
list[0].focus();
|
|
134
137
|
}
|
|
135
|
-
}
|
|
138
|
+
};
|
|
136
139
|
SkyInlineFormAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
137
140
|
SkyInlineFormAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormAdapterService });
|
|
138
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormAdapterService, decorators: [{
|
|
@@ -163,34 +166,42 @@ var SkyInlineFormButtonLayout;
|
|
|
163
166
|
SkyInlineFormButtonLayout[SkyInlineFormButtonLayout["SaveDeleteCancel"] = 4] = "SaveDeleteCancel";
|
|
164
167
|
})(SkyInlineFormButtonLayout || (SkyInlineFormButtonLayout = {}));
|
|
165
168
|
|
|
169
|
+
var _SkyInlineFormComponent_instances, _SkyInlineFormComponent__config, _SkyInlineFormComponent__showForm, _SkyInlineFormComponent_adapter, _SkyInlineFormComponent_elementRef, _SkyInlineFormComponent_resourcesService, _SkyInlineFormComponent_skyAppWindowRef, _SkyInlineFormComponent_changeDetectorRef, _SkyInlineFormComponent_setupButtons;
|
|
166
170
|
/**
|
|
167
171
|
* Renders form content in the current view instead of a separate modal.
|
|
168
172
|
*/
|
|
169
173
|
class SkyInlineFormComponent {
|
|
170
174
|
constructor(adapter, elementRef, resourcesService, skyAppWindowRef, changeDetectorRef) {
|
|
171
|
-
this
|
|
172
|
-
this.elementRef = elementRef;
|
|
173
|
-
this.resourcesService = resourcesService;
|
|
174
|
-
this.skyAppWindowRef = skyAppWindowRef;
|
|
175
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
175
|
+
_SkyInlineFormComponent_instances.add(this);
|
|
176
176
|
/**
|
|
177
177
|
* Fires when users close the inline form.
|
|
178
178
|
*/
|
|
179
179
|
this.close = new EventEmitter();
|
|
180
|
-
this
|
|
180
|
+
_SkyInlineFormComponent__config.set(this, void 0);
|
|
181
|
+
_SkyInlineFormComponent__showForm.set(this, false);
|
|
182
|
+
_SkyInlineFormComponent_adapter.set(this, void 0);
|
|
183
|
+
_SkyInlineFormComponent_elementRef.set(this, void 0);
|
|
184
|
+
_SkyInlineFormComponent_resourcesService.set(this, void 0);
|
|
185
|
+
_SkyInlineFormComponent_skyAppWindowRef.set(this, void 0);
|
|
186
|
+
_SkyInlineFormComponent_changeDetectorRef.set(this, void 0);
|
|
187
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_adapter, adapter, "f");
|
|
188
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_elementRef, elementRef, "f");
|
|
189
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_resourcesService, resourcesService, "f");
|
|
190
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_skyAppWindowRef, skyAppWindowRef, "f");
|
|
191
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent_changeDetectorRef, changeDetectorRef, "f");
|
|
181
192
|
}
|
|
182
193
|
/**
|
|
183
194
|
* Specifies configuration options for the buttons to display with the inline form.
|
|
184
195
|
* @required
|
|
185
196
|
*/
|
|
186
197
|
set config(value) {
|
|
187
|
-
if (value !== this
|
|
188
|
-
this
|
|
189
|
-
this.
|
|
198
|
+
if (value !== __classPrivateFieldGet(this, _SkyInlineFormComponent__config, "f") && !!value) {
|
|
199
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent__config, value, "f");
|
|
200
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_instances, "m", _SkyInlineFormComponent_setupButtons).call(this);
|
|
190
201
|
}
|
|
191
202
|
}
|
|
192
203
|
get config() {
|
|
193
|
-
return this
|
|
204
|
+
return __classPrivateFieldGet(this, _SkyInlineFormComponent__config, "f");
|
|
194
205
|
}
|
|
195
206
|
/**
|
|
196
207
|
* Indicates whether to display the inline form. Users can toggle between displaying
|
|
@@ -198,21 +209,21 @@ class SkyInlineFormComponent {
|
|
|
198
209
|
* @default false
|
|
199
210
|
*/
|
|
200
211
|
set showForm(value) {
|
|
201
|
-
this
|
|
212
|
+
__classPrivateFieldSet(this, _SkyInlineFormComponent__showForm, value, "f");
|
|
202
213
|
/* istanbul ignore else */
|
|
203
214
|
if (value) {
|
|
204
215
|
// setTimeout() prevents applyAutofocus() from firing
|
|
205
216
|
// until after *ngIf has added the form element to the DOM.
|
|
206
|
-
this.
|
|
207
|
-
this.
|
|
217
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_skyAppWindowRef, "f").nativeWindow.setTimeout(() => {
|
|
218
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_adapter, "f").applyAutofocus(__classPrivateFieldGet(this, _SkyInlineFormComponent_elementRef, "f"));
|
|
208
219
|
});
|
|
209
220
|
}
|
|
210
221
|
}
|
|
211
222
|
get showForm() {
|
|
212
|
-
return this
|
|
223
|
+
return __classPrivateFieldGet(this, _SkyInlineFormComponent__showForm, "f");
|
|
213
224
|
}
|
|
214
225
|
ngOnInit() {
|
|
215
|
-
this.
|
|
226
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_instances, "m", _SkyInlineFormComponent_setupButtons).call(this);
|
|
216
227
|
}
|
|
217
228
|
ngOnDestroy() {
|
|
218
229
|
this.close.complete();
|
|
@@ -223,17 +234,6 @@ class SkyInlineFormComponent {
|
|
|
223
234
|
};
|
|
224
235
|
this.close.emit(args);
|
|
225
236
|
}
|
|
226
|
-
setupButtons() {
|
|
227
|
-
if (this.isValidCustomConfig(this.config)) {
|
|
228
|
-
this.buttons = this.getCustomButtons(this.config.buttons);
|
|
229
|
-
this.changeDetectorRef.markForCheck();
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
this.getPresetButtons().then((buttons) => {
|
|
233
|
-
this.buttons = buttons;
|
|
234
|
-
this.changeDetectorRef.markForCheck();
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
237
|
getPresetButtons() {
|
|
238
238
|
const buttonType = this.config
|
|
239
239
|
? this.config.buttonLayout
|
|
@@ -243,7 +243,7 @@ class SkyInlineFormComponent {
|
|
|
243
243
|
/* istanbul ignore next */
|
|
244
244
|
default:
|
|
245
245
|
case SkyInlineFormButtonLayout.DoneCancel:
|
|
246
|
-
zip(this.
|
|
246
|
+
zip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_done'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
247
247
|
.pipe(take(1))
|
|
248
248
|
.subscribe((values) => {
|
|
249
249
|
promise = new Promise((resolve) => {
|
|
@@ -263,7 +263,7 @@ class SkyInlineFormComponent {
|
|
|
263
263
|
});
|
|
264
264
|
break;
|
|
265
265
|
case SkyInlineFormButtonLayout.SaveCancel:
|
|
266
|
-
zip(this.
|
|
266
|
+
zip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_save'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
267
267
|
.pipe(take(1))
|
|
268
268
|
.subscribe((values) => {
|
|
269
269
|
promise = new Promise((resolve) => {
|
|
@@ -283,7 +283,7 @@ class SkyInlineFormComponent {
|
|
|
283
283
|
});
|
|
284
284
|
break;
|
|
285
285
|
case SkyInlineFormButtonLayout.DoneDeleteCancel:
|
|
286
|
-
zip(this.
|
|
286
|
+
zip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_done'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_delete'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
287
287
|
.pipe(take(1))
|
|
288
288
|
.subscribe((values) => {
|
|
289
289
|
promise = new Promise((resolve) => {
|
|
@@ -308,7 +308,7 @@ class SkyInlineFormComponent {
|
|
|
308
308
|
});
|
|
309
309
|
break;
|
|
310
310
|
case SkyInlineFormButtonLayout.SaveDeleteCancel:
|
|
311
|
-
zip(this.
|
|
311
|
+
zip(__classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_save'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_delete'), __classPrivateFieldGet(this, _SkyInlineFormComponent_resourcesService, "f").getString('skyux_inline_form_button_cancel'))
|
|
312
312
|
.pipe(take(1))
|
|
313
313
|
.subscribe((values) => {
|
|
314
314
|
promise = new Promise((resolve) => {
|
|
@@ -350,11 +350,26 @@ class SkyInlineFormComponent {
|
|
|
350
350
|
return buttons;
|
|
351
351
|
}
|
|
352
352
|
isValidCustomConfig(config) {
|
|
353
|
-
return (config &&
|
|
354
|
-
config.
|
|
355
|
-
config.buttons.length > 0
|
|
353
|
+
return (!!config &&
|
|
354
|
+
!!config.buttons &&
|
|
355
|
+
config.buttons.length > 0 &&
|
|
356
|
+
config.buttonLayout === SkyInlineFormButtonLayout.Custom);
|
|
356
357
|
}
|
|
357
358
|
}
|
|
359
|
+
_SkyInlineFormComponent__config = new WeakMap(), _SkyInlineFormComponent__showForm = new WeakMap(), _SkyInlineFormComponent_adapter = new WeakMap(), _SkyInlineFormComponent_elementRef = new WeakMap(), _SkyInlineFormComponent_resourcesService = new WeakMap(), _SkyInlineFormComponent_skyAppWindowRef = new WeakMap(), _SkyInlineFormComponent_changeDetectorRef = new WeakMap(), _SkyInlineFormComponent_instances = new WeakSet(), _SkyInlineFormComponent_setupButtons = function _SkyInlineFormComponent_setupButtons() {
|
|
360
|
+
var _a;
|
|
361
|
+
if (this.isValidCustomConfig(this.config) &&
|
|
362
|
+
this.config &&
|
|
363
|
+
this.config.buttons) {
|
|
364
|
+
this.buttons = this.getCustomButtons(this.config.buttons);
|
|
365
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_changeDetectorRef, "f").markForCheck();
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
(_a = this.getPresetButtons()) === null || _a === void 0 ? void 0 : _a.then((buttons) => {
|
|
369
|
+
this.buttons = buttons;
|
|
370
|
+
__classPrivateFieldGet(this, _SkyInlineFormComponent_changeDetectorRef, "f").markForCheck();
|
|
371
|
+
});
|
|
372
|
+
};
|
|
358
373
|
SkyInlineFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormComponent, deps: [{ token: SkyInlineFormAdapterService }, { token: i0.ElementRef }, { token: i2.SkyLibResourcesService }, { token: i3.SkyAppWindowRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
359
374
|
SkyInlineFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyInlineFormComponent, selector: "sky-inline-form", inputs: { config: "config", template: "template", showForm: "showForm" }, outputs: { close: "close" }, providers: [SkyInlineFormAdapterService], ngImport: i0, template: "<div [@skySlideDissolve]=\"showForm\">\n <div *ngIf=\"!showForm\" class=\"sky-slide-dissolve-first\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"template && showForm\" class=\"sky-slide-dissolve-last\">\n <div class=\"sky-inline-form sky-shadow sky-box sky-elevation-3\">\n <div class=\"sky-inline-form-content\">\n <ng-container [ngTemplateOutlet]=\"template\"> </ng-container>\n </div>\n <div class=\"sky-inline-form-footer\">\n <button\n *ngFor=\"let button of buttons\"\n class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n type=\"button\"\n [disabled]=\"button.disabled ? true : null\"\n [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n (click)=\"closeInlineForm(button)\"\n >\n {{ button.text }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-form{background:#eeeeef;border:1px solid #cdcfd2;padding:10px;width:100%}.sky-inline-form .sky-inline-form-footer{margin-top:20px}.sky-inline-form .sky-inline-form-footer button{margin:0 5px 0 0}:host-context(.sky-theme-modern) .sky-inline-form{background-color:#fff;border:none;padding:15px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer{margin-top:30px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer button{margin-right:10px}.sky-theme-modern .sky-inline-form{background-color:#fff;border:none;padding:15px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer{margin-top:30px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer button{margin-right:10px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-inline-form{background-color:#232427}.sky-theme-modern.sky-theme-mode-dark .sky-inline-form{background-color:#232427}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [skySlideDissolve], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
360
375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineFormComponent, decorators: [{
|