@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.
@@ -1,4 +1,6 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
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.adapter = adapter;
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._showForm = false;
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._config) {
36
- this._config = value;
37
- this.setupButtons();
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._config;
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._showForm = value;
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.skyAppWindowRef.nativeWindow.setTimeout(() => {
55
- this.adapter.applyAutofocus(this.elementRef);
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._showForm;
69
+ return __classPrivateFieldGet(this, _SkyInlineFormComponent__showForm, "f");
61
70
  }
62
71
  ngOnInit() {
63
- this.setupButtons();
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.resourcesService.getString('skyux_inline_form_button_done'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.resourcesService.getString('skyux_inline_form_button_save'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.resourcesService.getString('skyux_inline_form_button_done'), this.resourcesService.getString('skyux_inline_form_button_delete'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.resourcesService.getString('skyux_inline_form_button_save'), this.resourcesService.getString('skyux_inline_form_button_delete'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.buttonLayout === SkyInlineFormButtonLayout.Custom &&
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.loadFocusableChildren(focusEl);
109
- this.focusFirstElement(focusableChildren);
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
- loadFocusableChildren(elem) {
113
- const elements = Array.prototype.slice.call(elem.querySelectorAll(SKY_TABBABLE_SELECTOR));
114
- return elements.filter((element) => {
115
- return this.isVisible(element);
116
- });
117
- }
118
- isVisible(element) {
119
- const style = window.getComputedStyle(element);
120
- const isHidden = style.display === 'none' || style.visibility === 'hidden';
121
- if (isHidden) {
122
- return false;
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
- focusFirstElement(list) {
131
- if (list.length > 0) {
132
- list[0].focus();
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.adapter = adapter;
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._showForm = false;
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._config) {
188
- this._config = value;
189
- this.setupButtons();
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._config;
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._showForm = value;
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.skyAppWindowRef.nativeWindow.setTimeout(() => {
207
- this.adapter.applyAutofocus(this.elementRef);
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._showForm;
223
+ return __classPrivateFieldGet(this, _SkyInlineFormComponent__showForm, "f");
213
224
  }
214
225
  ngOnInit() {
215
- this.setupButtons();
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.resourcesService.getString('skyux_inline_form_button_done'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.resourcesService.getString('skyux_inline_form_button_save'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.resourcesService.getString('skyux_inline_form_button_done'), this.resourcesService.getString('skyux_inline_form_button_delete'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.resourcesService.getString('skyux_inline_form_button_save'), this.resourcesService.getString('skyux_inline_form_button_delete'), this.resourcesService.getString('skyux_inline_form_button_cancel'))
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.buttonLayout === SkyInlineFormButtonLayout.Custom &&
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: [{