ngx-rs-ant 2.3.2 → 2.3.4
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/data-grid/data-grid.component.d.ts +2 -2
- package/data-grid/data-grid.factory.d.ts +0 -1
- package/esm2020/box-container/PluginManager.mjs +7 -1
- package/esm2020/data-grid/data-grid.component.mjs +7 -7
- package/esm2020/data-grid/data-grid.factory.mjs +21 -2
- package/esm2020/form/form.component.mjs +5 -2
- package/esm2020/types/component/form-item-component-base.mjs +7 -3
- package/esm2020/word/word-designer/word-designer.component.mjs +7 -3
- package/fesm2015/ngx-rs-ant.mjs +48 -11
- package/fesm2015/ngx-rs-ant.mjs.map +1 -1
- package/fesm2020/ngx-rs-ant.mjs +45 -9
- package/fesm2020/ngx-rs-ant.mjs.map +1 -1
- package/form/form.component.d.ts +1 -0
- package/package.json +1 -1
- package/types/component/form-item-component-base.d.ts +8 -0
- package/word/word-designer/word-designer.component.d.ts +3 -2
|
@@ -30,6 +30,7 @@ export class FormComponent extends UniqueId {
|
|
|
30
30
|
this.loading = false;
|
|
31
31
|
this.changeFilter = new ChangeFilter();
|
|
32
32
|
this.valueChange = new Subject();
|
|
33
|
+
this.modelValueChanged = new EventEmitter();
|
|
33
34
|
this.extraValidate = this.extraValidate.bind(this);
|
|
34
35
|
}
|
|
35
36
|
ngOnInit() {
|
|
@@ -44,6 +45,7 @@ export class FormComponent extends UniqueId {
|
|
|
44
45
|
ngOnDestroy() {
|
|
45
46
|
this.changeFilter.dispose();
|
|
46
47
|
this.valueChange.unsubscribe();
|
|
48
|
+
this.modelValueChanged.unsubscribe();
|
|
47
49
|
}
|
|
48
50
|
load() {
|
|
49
51
|
this.loading = true;
|
|
@@ -58,7 +60,8 @@ export class FormComponent extends UniqueId {
|
|
|
58
60
|
},
|
|
59
61
|
__model: this.model || {},
|
|
60
62
|
__opener: this,
|
|
61
|
-
__valueChange: this.valueChange
|
|
63
|
+
__valueChange: this.valueChange,
|
|
64
|
+
__modelValueChanged: this.modelValueChanged
|
|
62
65
|
};
|
|
63
66
|
this.service.getFormTemplateConfig(this.tenant, this.className, this.template).subscribe(response => {
|
|
64
67
|
this.config = response.data.template;
|
|
@@ -202,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
202
205
|
type: HostBinding,
|
|
203
206
|
args: ['attr.validator-group-name']
|
|
204
207
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQXdDekMsSUFBOEMsbUJBQW1CO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFzQixnQkFBa0MsRUFBVSxPQUFvQixFQUFVLFVBQXNCO1FBQ3BILEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTFDdEgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQWdCbkIsaUJBQVksR0FBWSxLQUFLLENBQUMsQ0FBQyxzQkFBc0I7UUFJckQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQixpQkFB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RUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2Y7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNoQjtZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hELENBQUM7OzJHQXpMVSxhQUFhOytGQUFiLGFBQWEsOGNBRmIsQ0FBQyxXQUFXLENBQUMsc0xDekIxQiwrdENBeUJBOzRGREVhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsU0FBUyxhQUdSLENBQUMsV0FBVyxDQUFDOzBKQUl4QixNQUFNO3NCQURMLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLEdBQUc7c0JBREYsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUlzQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRTFCLFlBQVk7c0JBRFgsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU07Z0JBWXVDLG1CQUFtQjtzQkFBaEUsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi9mb3JtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEeEJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge3ZhbGlkYXRlR3JvdXBCeU5hbWV9IGZyb20gXCIuLi91dGlsL3V0aWxzXCI7XHJcbmltcG9ydCB7Q2hhbmdlRmlsdGVyfSBmcm9tIFwiLi4vdXRpbC9jaGFuZ2UtZmlsdGVyXCI7XHJcbmltcG9ydCB7bGFzdFZhbHVlRnJvbSwgbWFwLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1VuaXF1ZUlkfSBmcm9tIFwiLi4vdXRpbC9VbmlxdWVJZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0Zvcm1TZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBleHRlbmRzIFVuaXF1ZUlkIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICB0ZW5hbnQ/OiBhbnkgPSAnVCc7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWUhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBvaWQ/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjb3B5T2lkPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGU/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBleHRyYUF0dHJNYXA/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwYXJhbXM/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICB0YWJWaWV3Q29udGFpbmVyUmVmITogVmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKVxyXG4gIG9ubHlGcm9udEVuZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDku4XliY3nq6/vvIzkuI3pgJrov4dvaWTojrflj5blrp7kvottb2RlbFxyXG4gIEBJbnB1dCgpXHJcbiAgbW9kZWw/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmZpZzogYW55O1xyXG4gIGV4dHJhVmFsaWRhdG9yPzogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1TdWJtaXR0ZXInKSBmb3JtU3VibWl0dGVyITogRHhCdXR0b25Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25EYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlkOiBzdHJpbmcsIGNvbmZpZzogYW55LCBtb2RlbDogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgc3VibWl0Q2FsbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjaGFuZ2VGaWx0ZXIgPSBuZXcgQ2hhbmdlRmlsdGVyKCk7XHJcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PHtcclxuICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogYW55XHJcbiAgICBvbmx5SW5pdD86IGJvb2xlYW4sXHJcbiAgfT4oKTtcclxuICBwcm90ZWN0ZWQgY29udGV4dDogYW55O1xyXG4gIHByb3RlY3RlZCBleHRyYVZhbGlkYXRlTWVzc2FnZTogYW55O1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudmFsaWRhdG9yLWdyb3VwLW5hbWUnKSBnZXQgX3ZhbGlkYXRvckdyb3VwTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFVuaXF1ZUlkKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBzZXJ2aWNlOiBGb3JtU2VydmljZSwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcigncnMtZm9ybScpO1xyXG4gICAgdGhpcy5leHRyYVZhbGlkYXRlID0gdGhpcy5leHRyYVZhbGlkYXRlLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZCgpO1xyXG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuYW55Tm90Rmlyc3QoWyd0ZW5hbnQnLCAnY2xhc3NOYW1lJywgJ29pZCcsICdjb3B5T2lkJywgJ3RlbXBsYXRlJ10sICgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmRvRmlsdGVyKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5kaXNwb3NlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBsb2FkKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY29udGV4dCA9IHtcclxuICAgICAgX19mb3JtOiB7XHJcbiAgICAgICAgdW5pcXVlSWQ6IHRoaXMuZ2V0VW5pcXVlSWQoKSxcclxuICAgICAgICB0ZW5hbnQ6IHRoaXMudGVuYW50LFxyXG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5jbGFzc05hbWUsXHJcbiAgICAgICAgb2lkOiB0aGlzLm9pZCxcclxuICAgICAgICBjb3B5T2lkOiB0aGlzLmNvcHlPaWQsXHJcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMudGVtcGxhdGVcclxuICAgICAgfSxcclxuICAgICAgX19tb2RlbDogdGhpcy5tb2RlbCB8fCB7fSxcclxuICAgICAgX19vcGVuZXI6IHRoaXMsXHJcbiAgICAgIF9fdmFsdWVDaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2VcclxuICAgIH07XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Rm9ybVRlbXBsYXRlQ29uZmlnKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5jb25maWcgPSByZXNwb25zZS5kYXRhLnRlbXBsYXRlO1xyXG4gICAgICB0aGlzLmV4dHJhVmFsaWRhdG9yID0gdGhpcy5jb25maWcuZXh0cmFWYWxpZGF0b3I7XHJcbiAgICAgIGlmICh0aGlzLm9ubHlGcm9udEVuZCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25EYXRhTG9hZGVkLmVtaXQoe1xyXG4gICAgICAgICAgaWQ6IHRoaXMuZ2V0VW5pcXVlSWQoKSxcclxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICBtb2RlbDogdGhpcy5tb2RlbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29weU9pZCB8fCB0aGlzLm9pZCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRPbmUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQsIHRoaXMudGVtcGxhdGUsIHRoaXMuY29weU9pZClcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0Ll9fbW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHtcclxuICAgICAgICAgICAgICBpZDogdGhpcy5nZXRVbmlxdWVJZCgpLFxyXG4gICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgICAgbW9kZWw6IHRoaXMubW9kZWxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldEluaXRNb2RlbEJ5VGVtcGxhdGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnRlbXBsYXRlKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNvbnRleHQuX19tb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHtcclxuICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0VW5pcXVlSWQoKSxcclxuICAgICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcclxuICAgICAgICAgICAgbW9kZWw6IHRoaXMubW9kZWxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGV4dHJhVmFsaWRhdGUoKSB7XHJcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbSh0aGlzLnNlcnZpY2UuZXh0cmFWYWxpZGF0ZSh0aGlzLm1vZGVsLCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBhcmFtcywge1xyXG4gICAgICB0ZW5hbnQ6IHRoaXMudGVuYW50LFxyXG4gICAgICBjbGFzc05hbWU6IHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICBvaWQ6IHRoaXMub2lkLFxyXG4gICAgICB0ZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZVxyXG4gICAgfSksIDxzdHJpbmc+dGhpcy5leHRyYVZhbGlkYXRvcikucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLmlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuZXh0cmFWYWxpZGF0ZU1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHN1Ym1pdEZvcm0oKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlKCkudGhlbihpc1ZhbGlkID0+IHtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICBjb25zdCBtZXJnZU1vZGVsOiBhbnkgPSB7Li4udGhpcy5tb2RlbH07XHJcbiAgICAgICAgaWYgKHRoaXMuZXh0cmFBdHRyTWFwKSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZXh0cmFBdHRyTWFwKSB7XHJcbiAgICAgICAgICAgIG1lcmdlTW9kZWxbZW50cnkubmFtZV0gPSBlbnRyeS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU9yVXBkYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwge1xyXG4gICAgICAgICAgb2lkOiB0aGlzLm9pZCxcclxuICAgICAgICAgIC4uLm1lcmdlTW9kZWxcclxuICAgICAgICB9KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5lbWl0KHJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdENhbGxiYWNrLmVtaXQoe3N1Y2Nlc3M6IGZhbHNlfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0FuY2hvclBvaW50KGFuY2hvclBvaW50SWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgcG9pbnRzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnX19hbmNob3JfcG9pbnRfJyArIGFuY2hvclBvaW50SWQpO1xyXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBvaW50c1swXS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgIGlubGluZTogJ2NlbnRlcidcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZSgpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9taXNlczogYW55W10gPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3JzLWZvcm0nKSkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdmFsaWRhdGVHcm91cEJ5TmFtZShpdGVtLmdldEF0dHJpYnV0ZSgndmFsaWRhdG9yLWdyb3VwLW5hbWUnKSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICB9KVxyXG4gICAgICAvLyDmt7vliqDpobbnuqflhYPntKDnmoTpqozor4EgUHJvbWlzZVxyXG4gICAgICBwcm9taXNlcy5wdXNoKHZhbGlkYXRlR3JvdXBCeU5hbWUodGhpcy5nZXRVbmlxdWVJZCgpLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpO1xyXG4gICAgICAvLyDkvb/nlKggUHJvbWlzZS5hbGwg562J5b6F5omA5pyJIFByb21pc2Ug5a6M5oiQXHJcbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKVxyXG4gICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHRzLmV2ZXJ5KChpc1ZhbGlkOiBhbnkpID0+IGlzVmFsaWQpKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZXIuaW5zdGFuY2UuZWxlbWVudCgpLmNsaWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XHJcbiAgPGR4by1wb3NpdGlvbiBbb2ZdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIj48L2R4by1wb3NpdGlvbj5cclxuPC9keC1sb2FkLXBhbmVsPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuICA8cnMtYm94LWNvbnRhaW5lciBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhcmFtc109XCJwYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJWaWV3Q29udGFpbmVyUmVmXT1cInRhYlZpZXdDb250YWluZXJSZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtYm94LWNvbnRhaW5lcj5cclxuICA8ZHgtdGV4dC1ib3ggaGVpZ2h0PVwiMFwiIHN0eWxlPVwiYm9yZGVyOiBub25lO1wiPlxyXG4gICAgPGR4LXZhbGlkYXRvciBbdmFsaWRhdGlvbkdyb3VwXT1cImdldFVuaXF1ZUlkKClcIj5cclxuICAgICAgPGR4aS12YWxpZGF0aW9uLXJ1bGUgKm5nSWY9XCJleHRyYVZhbGlkYXRvclwiIHR5cGU9XCJhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uQ2FsbGJhY2tdPVwiZXh0cmFWYWxpZGF0ZVwiPjwvZHhpLXZhbGlkYXRpb24tcnVsZT5cclxuICAgIDwvZHgtdmFsaWRhdG9yPlxyXG4gIDwvZHgtdGV4dC1ib3g+XHJcbiAgPGRpdiAqbmdJZj1cImV4dHJhVmFsaWRhdGVNZXNzYWdlXCIgY2xhc3M9XCJkeC1maWVsZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLXZhbHVlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkeC10b2FzdC1lcnJvciBkeC10b2FzdC1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImR4LXRvYXN0LW1lc3NhZ2VcIj57eyBleHRyYVZhbGlkYXRlTWVzc2FnZSB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkeC1idXR0b24gI2Zvcm1TdWJtaXR0ZXIgW3Zpc2libGVdPVwiZmFsc2VcIiAob25DbGljayk9XCJzdWJtaXRGb3JtKClcIj48L2R4LWJ1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQTRDekMsSUFBOEMsbUJBQW1CO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFzQixnQkFBa0MsRUFBVSxPQUFvQixFQUFVLFVBQXNCO1FBQ3BILEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTlDdEgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQWdCbkIsaUJBQVksR0FBWSxLQUFLLENBQUMsQ0FBQyxzQkFBc0I7UUFJckQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQixpQkFB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LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi9mb3JtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEeEJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge3ZhbGlkYXRlR3JvdXBCeU5hbWV9IGZyb20gXCIuLi91dGlsL3V0aWxzXCI7XHJcbmltcG9ydCB7Q2hhbmdlRmlsdGVyfSBmcm9tIFwiLi4vdXRpbC9jaGFuZ2UtZmlsdGVyXCI7XHJcbmltcG9ydCB7bGFzdFZhbHVlRnJvbSwgbWFwLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1VuaXF1ZUlkfSBmcm9tIFwiLi4vdXRpbC9VbmlxdWVJZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0Zvcm1TZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBleHRlbmRzIFVuaXF1ZUlkIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICB0ZW5hbnQ/OiBhbnkgPSAnVCc7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWUhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBvaWQ/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjb3B5T2lkPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGU/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBleHRyYUF0dHJNYXA/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwYXJhbXM/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICB0YWJWaWV3Q29udGFpbmVyUmVmITogVmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKVxyXG4gIG9ubHlGcm9udEVuZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDku4XliY3nq6/vvIzkuI3pgJrov4dvaWTojrflj5blrp7kvottb2RlbFxyXG4gIEBJbnB1dCgpXHJcbiAgbW9kZWw/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmZpZzogYW55O1xyXG4gIGV4dHJhVmFsaWRhdG9yPzogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1TdWJtaXR0ZXInKSBmb3JtU3VibWl0dGVyITogRHhCdXR0b25Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25EYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlkOiBzdHJpbmcsIGNvbmZpZzogYW55LCBtb2RlbDogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgc3VibWl0Q2FsbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjaGFuZ2VGaWx0ZXIgPSBuZXcgQ2hhbmdlRmlsdGVyKCk7XHJcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PHtcclxuICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogYW55XHJcbiAgICBvbmx5SW5pdD86IGJvb2xlYW4sXHJcbiAgfT4oKTtcclxuICBwcml2YXRlIG1vZGVsVmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmaWVsZDogc3RyaW5nLFxyXG4gICAgdmFsdWU6IGFueVxyXG4gIH0+KCk7XHJcbiAgcHJvdGVjdGVkIGNvbnRleHQ6IGFueTtcclxuICBwcm90ZWN0ZWQgZXh0cmFWYWxpZGF0ZU1lc3NhZ2U6IGFueTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnZhbGlkYXRvci1ncm91cC1uYW1lJykgZ2V0IF92YWxpZGF0b3JHcm91cE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRVbmlxdWVJZCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc2VydmljZTogRm9ybVNlcnZpY2UsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoJ3JzLWZvcm0nKTtcclxuICAgIHRoaXMuZXh0cmFWYWxpZGF0ZSA9IHRoaXMuZXh0cmFWYWxpZGF0ZS5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmFueU5vdEZpcnN0KFsndGVuYW50JywgJ2NsYXNzTmFtZScsICdvaWQnLCAnY29weU9pZCcsICd0ZW1wbGF0ZSddLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5kb0ZpbHRlcihjaGFuZ2VzKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuZGlzcG9zZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5tb2RlbFZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgIF9fZm9ybToge1xyXG4gICAgICAgIHVuaXF1ZUlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcclxuICAgICAgICBjbGFzc05hbWU6IHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICAgIG9pZDogdGhpcy5vaWQsXHJcbiAgICAgICAgY29weU9pZDogdGhpcy5jb3B5T2lkLFxyXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLnRlbXBsYXRlXHJcbiAgICAgIH0sXHJcbiAgICAgIF9fbW9kZWw6IHRoaXMubW9kZWwgfHwge30sXHJcbiAgICAgIF9fb3BlbmVyOiB0aGlzLFxyXG4gICAgICBfX3ZhbHVlQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLFxyXG4gICAgICBfX21vZGVsVmFsdWVDaGFuZ2VkOiB0aGlzLm1vZGVsVmFsdWVDaGFuZ2VkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZvcm1UZW1wbGF0ZUNvbmZpZyh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMudGVtcGxhdGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gcmVzcG9uc2UuZGF0YS50ZW1wbGF0ZTtcclxuICAgICAgdGhpcy5leHRyYVZhbGlkYXRvciA9IHRoaXMuY29uZmlnLmV4dHJhVmFsaWRhdG9yO1xyXG4gICAgICBpZiAodGhpcy5vbmx5RnJvbnRFbmQpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHtcclxuICAgICAgICAgIGlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgbW9kZWw6IHRoaXMubW9kZWxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0T25lKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5jb3B5T2lkIHx8IHRoaXMub2lkLCB0aGlzLnRlbXBsYXRlLCB0aGlzLmNvcHlPaWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5fX21vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgICAgICAgdGhpcy5vbkRhdGFMb2FkZWQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0VW5pcXVlSWQoKSxcclxuICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbml0TW9kZWxCeVRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMubW9kZWwgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5jb250ZXh0Ll9fbW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgdGhpcy5vbkRhdGFMb2FkZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBleHRyYVZhbGlkYXRlKCkge1xyXG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLmV4dHJhVmFsaWRhdGUodGhpcy5tb2RlbCwgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wYXJhbXMsIHtcclxuICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcclxuICAgICAgY2xhc3NOYW1lOiB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgb2lkOiB0aGlzLm9pZCxcclxuICAgICAgdGVtcGxhdGU6IHRoaXMudGVtcGxhdGVcclxuICAgIH0pLCA8c3RyaW5nPnRoaXMuZXh0cmFWYWxpZGF0b3IpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLmV4dHJhVmFsaWRhdGVNZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdWJtaXRGb3JtKCkge1xyXG4gICAgdGhpcy52YWxpZGF0ZSgpLnRoZW4oaXNWYWxpZCA9PiB7XHJcbiAgICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgICAgY29uc3QgbWVyZ2VNb2RlbDogYW55ID0gey4uLnRoaXMubW9kZWx9O1xyXG4gICAgICAgIGlmICh0aGlzLmV4dHJhQXR0ck1hcCkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLmV4dHJhQXR0ck1hcCkge1xyXG4gICAgICAgICAgICBtZXJnZU1vZGVsW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGVPclVwZGF0ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHtcclxuICAgICAgICAgIG9pZDogdGhpcy5vaWQsXHJcbiAgICAgICAgICAuLi5tZXJnZU1vZGVsXHJcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suZW1pdChyZXNwb25zZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5lbWl0KHtzdWNjZXNzOiBmYWxzZX0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9BbmNob3JQb2ludChhbmNob3JQb2ludElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBvaW50cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ19fYW5jaG9yX3BvaW50XycgKyBhbmNob3JQb2ludElkKTtcclxuICAgIGlmIChwb2ludHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwb2ludHNbMF0uc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgIGJsb2NrOiAnY2VudGVyJyxcclxuICAgICAgICBpbmxpbmU6ICdjZW50ZXInXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgY29uc3QgcHJvbWlzZXM6IGFueVtdID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdycy1mb3JtJykpLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlR3JvdXBCeU5hbWUoaXRlbS5nZXRBdHRyaWJ1dGUoJ3ZhbGlkYXRvci1ncm91cC1uYW1lJyksIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgfSlcclxuICAgICAgLy8g5re75Yqg6aG257qn5YWD57Sg55qE6aqM6K+BIFByb21pc2VcclxuICAgICAgcHJvbWlzZXMucHVzaCh2YWxpZGF0ZUdyb3VwQnlOYW1lKHRoaXMuZ2V0VW5pcXVlSWQoKSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcclxuICAgICAgLy8g5L2/55SoIFByb21pc2UuYWxsIOetieW+heaJgOaciSBQcm9taXNlIOWujOaIkFxyXG4gICAgICBQcm9taXNlLmFsbChwcm9taXNlcylcclxuICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0cy5ldmVyeSgoaXNWYWxpZDogYW55KSA9PiBpc1ZhbGlkKSkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgdGhpcy5mb3JtU3VibWl0dGVyLmluc3RhbmNlLmVsZW1lbnQoKS5jbGljaygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZHgtbG9hZC1wYW5lbCBbY29udGFpbmVyXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCIgW3Nob3dQYW5lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwibG9hZGluZ1wiPlxyXG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XHJcbjwvZHgtbG9hZC1wYW5lbD5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XHJcbiAgPHJzLWJveC1jb250YWluZXIgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwicGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbdGFiVmlld0NvbnRhaW5lclJlZl09XCJ0YWJWaWV3Q29udGFpbmVyUmVmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIj48L3JzLWJveC1jb250YWluZXI+XHJcbiAgPGR4LXRleHQtYm94IGhlaWdodD1cIjBcIiBzdHlsZT1cImJvcmRlcjogbm9uZTtcIj5cclxuICAgIDxkeC12YWxpZGF0b3IgW3ZhbGlkYXRpb25Hcm91cF09XCJnZXRVbmlxdWVJZCgpXCI+XHJcbiAgICAgIDxkeGktdmFsaWRhdGlvbi1ydWxlICpuZ0lmPVwiZXh0cmFWYWxpZGF0b3JcIiB0eXBlPVwiYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsaWRhdGlvbkNhbGxiYWNrXT1cImV4dHJhVmFsaWRhdGVcIj48L2R4aS12YWxpZGF0aW9uLXJ1bGU+XHJcbiAgICA8L2R4LXZhbGlkYXRvcj5cclxuICA8L2R4LXRleHQtYm94PlxyXG4gIDxkaXYgKm5nSWY9XCJleHRyYVZhbGlkYXRlTWVzc2FnZVwiIGNsYXNzPVwiZHgtZmllbGRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZC12YWx1ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHgtdG9hc3QtZXJyb3IgZHgtdG9hc3QtY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkeC10b2FzdC1tZXNzYWdlXCI+e3sgZXh0cmFWYWxpZGF0ZU1lc3NhZ2UgfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZHgtYnV0dG9uICNmb3JtU3VibWl0dGVyIFt2aXNpYmxlXT1cImZhbHNlXCIgKG9uQ2xpY2spPVwic3VibWl0Rm9ybSgpXCI+PC9keC1idXR0b24+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -12,10 +12,10 @@ export class FormItemComponentBase extends ComponentBase {
|
|
|
12
12
|
this.readonly = false;
|
|
13
13
|
}
|
|
14
14
|
defaultValueChanged(change) {
|
|
15
|
-
|
|
15
|
+
const thisField = this.field;
|
|
16
|
+
if (!thisField) {
|
|
16
17
|
return;
|
|
17
18
|
}
|
|
18
|
-
const thisField = this.field;
|
|
19
19
|
if (Array.isArray(thisField)) {
|
|
20
20
|
if (!thisField.includes(change.field)) {
|
|
21
21
|
return;
|
|
@@ -32,6 +32,10 @@ export class FormItemComponentBase extends ComponentBase {
|
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
this.model[change.field] = change.value;
|
|
35
|
+
this.modelValueChanged?.emit({
|
|
36
|
+
field: thisField,
|
|
37
|
+
value: change.field
|
|
38
|
+
});
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLWNvbXBvbmVudC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvdHlwZXMvY29tcG9uZW50L2Zvcm0taXRlbS1jb21wb25lbnQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFJL0MsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFBeEQ7O1FBQ0U7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBNEMxQjs7V0FFRztRQUNILGFBQVEsR0FBWSxLQUFLLENBQUM7SUEyQjVCLENBQUM7SUF6QlcsbUJBQW1CLENBQUMsTUFBeUQ7UUFDckYsTUFBTSxTQUFTLEdBQUksSUFBWSxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTztTQUNSO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckMsT0FBTzthQUNSO1NBQ0Y7YUFBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUNELElBQUssSUFBWSxDQUFDLGtCQUFrQixFQUFFO1lBQ25DLElBQVksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0MsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO1lBQzNCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudEJhc2V9IGZyb20gXCIuL2NvbXBvbmVudC1iYXNlXCI7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUl0ZW1Db21wb25lbnRCYXNlIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7XHJcbiAgLyoqXHJcbiAgICog57yW6L6R5qih5byP77yM5Zyo6K6+6K6h5Zmo5Lit5Li6dHJ1Ze+8jOeUqOS6juWMuuWIhue7hOS7tuiuvuiuoeWSjOW6lOeUqOeKtuaAgVxyXG4gICAqL1xyXG4gIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICog6KGo5Y2V5ZSv5LiA5qCH6K+G77yM6KGo5Y2V57uE5Lu2ZHgtdmFsaWRhdG9y55qEdmFsaWRhdGlvbkdyb3Vw5ZCN56ew77yM55So5LqO57uf5LiA5qCh6aqM6KGo5Y2VXHJcbiAgICovXHJcbiAgdmFsaWRhdGlvbkdyb3VwTmFtZSE6IHN0cmluZztcclxuICAvKipcclxuICAgKiDlvZPliY3ooajljZXlr7nlupTmlbDmja7nsbvnp5/miLdcclxuICAgKi9cclxuICB0ZW5hbnQ6IGFueTtcclxuICAvKipcclxuICAgKiDlvZPliY3ooajljZXlr7nlupTmlbDmja7nsbvlkI1cclxuICAgKi9cclxuICBjbGFzc05hbWU6IGFueTtcclxuICAvKipcclxuICAgKiDlvZPliY3ooajljZXlr7nlupTmlbDmja7lrp7kvotvaWRcclxuICAgKi9cclxuICBvaWQ/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICog6KGo5Y2V5b2T5YmNbW9kZWxcclxuICAgKi9cclxuICBtb2RlbDogYW55O1xyXG4gIC8qKlxyXG4gICAqIOWxnuaAp+WAvOabtOaWsOiuoumYhe+8jOeUqOS6juWxnuaAp+aYoOWwhO+8jOihqOWNlee7hOS7tumpseWKqOabtOaWsOWFtuS7luihqOWNlee7hOS7tueahOWAvFxyXG4gICAqL1xyXG4gIHZhbHVlQ2hhbmdlPzogU3ViamVjdDx7XHJcbiAgICBmaWVsZDogc3RyaW5nLFxyXG4gICAgdmFsdWU6IGFueVxyXG4gICAgb25seUluaXQ/OiBib29sZWFuXHJcbiAgfT47XHJcbiAgLyoqXHJcbiAgICog6KGo5Y2V57uE5Lu26amx5Yqo55qE5bGe5oCn5YC85pS55Y+Y5pe25Y+R5Ye655qE5LqL5Lu2XHJcbiAgICovXHJcbiAgbW9kZWxWYWx1ZUNoYW5nZWQ/OiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZmllbGQ6IHN0cmluZyxcclxuICAgIHZhbHVlOiBhbnlcclxuICB9PjtcclxuICAvKipcclxuICAgKiDoh6rlrprkuYnlsZ7mgKflgLzmm7TmlrDlh73mlbDvvIzlnKjmlLbliLDlsZ7mgKflgLzmm7TmlrDkuovku7bml7boh6rlrprkuYnmm7TmlrDpgLvovpHvvIzlpoLovazmjaLmlbDmja7nsbvlnovkuLrmlbDnu4RcclxuICAgKi9cclxuICBjdXN0b21WYWx1ZUNoYW5nZWQ/OiAoY2hhbmdlOiB7IGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBhbnksIG9ubHlJbml0PzogYm9vbGVhbiB9KSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIOaJk+W8gOihqOWNleeahOe7hOS7tu+8jOS4gOiIrOeUqOS6juWIt+aWsOS4iuWxguihqOagvFxyXG4gICAqL1xyXG4gIG9wZW5lcjogYW55O1xyXG4gIC8qKlxyXG4gICAqIOihqOWNleWPquivu+eKtuaAge+8jOeUqOS6juWMuuWIhue7hOS7tuWPquivu+eKtuaAgVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByb3RlY3RlZCBkZWZhdWx0VmFsdWVDaGFuZ2VkKGNoYW5nZTogeyBmaWVsZDogc3RyaW5nLCB2YWx1ZTogYW55LCBvbmx5SW5pdD86IGJvb2xlYW4gfSk6IHZvaWQge1xyXG4gICAgY29uc3QgdGhpc0ZpZWxkID0gKHRoaXMgYXMgYW55KS5maWVsZDtcclxuICAgIGlmICghdGhpc0ZpZWxkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXNGaWVsZCkpIHtcclxuICAgICAgaWYgKCF0aGlzRmllbGQuaW5jbHVkZXMoY2hhbmdlLmZpZWxkKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzRmllbGQgIT09IGNoYW5nZS5maWVsZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoKHRoaXMgYXMgYW55KS5jdXN0b21WYWx1ZUNoYW5nZWQpIHtcclxuICAgICAgKHRoaXMgYXMgYW55KS5jdXN0b21WYWx1ZUNoYW5nZWQoY2hhbmdlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZS5vbmx5SW5pdCAmJiB0aGlzLm1vZGVsW2NoYW5nZS5maWVsZF0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbFtjaGFuZ2UuZmllbGRdID0gY2hhbmdlLnZhbHVlO1xyXG4gICAgdGhpcy5tb2RlbFZhbHVlQ2hhbmdlZD8uZW1pdCh7XHJcbiAgICAgIGZpZWxkOiB0aGlzRmllbGQsXHJcbiAgICAgIHZhbHVlOiBjaGFuZ2UuZmllbGRcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, HostListener, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { WordDesignerService } from "./word-designer.service";
|
|
3
3
|
import { deepClone, notifySuccess } from "../../util/utils";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -52,6 +52,7 @@ export class WordDesignerComponent {
|
|
|
52
52
|
this.wordDesignerService = wordDesignerService;
|
|
53
53
|
this.viewContainerRef = viewContainerRef;
|
|
54
54
|
this.modalService = modalService;
|
|
55
|
+
this.onTemplateFileUploaded = new EventEmitter();
|
|
55
56
|
this.needUpload = false;
|
|
56
57
|
this.pasteMode = false;
|
|
57
58
|
this.mouseInViewer = false;
|
|
@@ -111,6 +112,7 @@ export class WordDesignerComponent {
|
|
|
111
112
|
this.uploadInput.nativeElement.value = '';
|
|
112
113
|
this.loadTemplateAndConfig(response);
|
|
113
114
|
this.loading = false;
|
|
115
|
+
this.onTemplateFileUploaded.emit();
|
|
114
116
|
});
|
|
115
117
|
}
|
|
116
118
|
openReplaceTemplateFileModal() {
|
|
@@ -176,7 +178,7 @@ export class WordDesignerComponent {
|
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
180
|
WordDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordDesignerComponent, deps: [{ token: i1.SectionService }, { token: i2.WordDesignerService }, { token: i0.ViewContainerRef }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
179
|
-
WordDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordDesignerComponent, selector: "rs-word-designer", inputs: { tenant: "tenant", className: "className", oid: "oid", instanceClassName: "instanceClassName", filterCategories: "filterCategories", params: "params", tabViewContainerRef: "tabViewContainerRef" }, host: { listeners: { "window:keydown": "handleKeyDown($event)" } }, providers: [WordDesignerService], viewQueries: [{ propertyName: "uploadInput", first: true, predicate: ["uploadInput"], descendants: true, static: true }, { propertyName: "replaceFileModalTemplate", first: true, predicate: ["replaceFileModalTemplate"], descendants: true, static: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true, static: true }, { propertyName: "previewFooterTemplate", first: true, predicate: ["previewFooterTemplate"], descendants: true, static: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<input #uploadInput type=\"file\" name=\"file\"\n accept=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" (change)=\"upload()\"\n style=\"display: none;\"/>\n<div class=\"coast-card\">\n <div class=\"coast-card-content\">\n <div class=\"content-main\" [class.show-upload-btn]=\"needUpload\">\n <ng-container *ngIf=\"needUpload\">\n <dx-button type=\"success\" text=\"\u4E0A\u4F20\u6587\u4EF6\" (onClick)=\"uploadInput.click()\"></dx-button>\n </ng-container>\n <div *ngIf=\"!needUpload\" class=\"left-panel\">\n <div *ngIf=\"pasteMode\" class=\"paste-mode-bar\">\n <span\n class=\"message\">\u5DF2\u8FDB\u5165\u6279\u91CF\u7C98\u8D34\u914D\u7F6E\u6A21\u5F0F\uFF0C\u652F\u6301Ctrl\u3001Shift\u952E\u5FEB\u6377\u9009\u62E9\uFF0C\u6309Ctrl+V\u7EC4\u5408\u952E\u7C98\u8D34\u914D\u7F6E\uFF0C\u6309Esc\u952E\u53D6\u6D88\u64CD\u4F5C\u5E76\u9000\u51FA\u8BE5\u6A21\u5F0F</span>\n <dx-button [width]=\"48\" text=\"\u9000\u51FA\" (onClick)=\"exitPasteMode()\"></dx-button>\n </div>\n <div class=\"content\"\n (mouseenter)=\"mouseInViewer = true;\"\n (mouseleave)=\"mouseInViewer = false;\"\n (mousewheel)=\"scaleByMouse($event)\">\n <div *ngIf=\"!needUpload\" class=\"viewer\">\n <ng-container *ngFor=\"let section of sections\">\n <rs-section [section]=\"section\" [editMode]=\"true\" [pasteMode]=\"pasteMode\"></rs-section>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"!needUpload\" class=\"right-panel\">\n <div class=\"header\">\n <dx-button type=\"default\" text=\"\u66FF\u6362\u6587\u4EF6\" (onClick)=\"openReplaceTemplateFileModal()\"\n [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-download\" hint=\"\u4E0B\u8F7D\u6587\u4EF6\"\n (onClick)=\"downloadTemplateFile()\" [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-direction-up\" hint=\"\u4E0A\u4E00\u4E2A(Alt + \u2191)\"\n (onClick)=\"service.switchMark(-1)\" [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-direction-down\" hint=\"\u4E0B\u4E00\u4E2A(Alt + \u2193)\"\n (onClick)=\"service.switchMark(1)\" [disabled]=\"loading\"></dx-button>\n <dx-button [type]=\"pasteMode ? 'success' : 'default'\" text=\"\u590D\u5236\" hint=\"\u590D\u5236(Ctrl + c)\"\n (onClick)=\"copyMarkConfig()\"></dx-button>\n <dx-button type=\"danger\" text=\"\u7C98\u8D34\" hint=\"\u7C98\u8D34(Ctrl + v)\" (onClick)=\"pasteMarkConfig()\"\n [disabled]=\"loading || !pasteMode\"></dx-button>\n </div>\n <div class=\"config\" *ngIf=\"service.activeMark\">\n <rs-mark-config [tenant]=\"tenant\"\n [templateClassName]=\"className\"\n [templateOid]=\"oid\"\n [instanceClassName]=\"instanceClassName\"\n [filterCategories]=\"filterCategories\"\n [mark]=\"service.activeMark\"\n [marks]=\"service.marks\"\n [tabViewContainerRef]=\"tabViewContainerRef\"></rs-mark-config>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!needUpload\" class=\"footer\">\n <div class=\"left\">\n <dx-button text=\"\u653E\u5927\" (onClick)=\"scale(0.1)\"></dx-button>\n <dx-button text=\"\u8FD8\u539F\" (onClick)=\"scale(0)\"></dx-button>\n <dx-button text=\"\u7F29\u5C0F\" (onClick)=\"scale(-0.1)\"></dx-button>\n </div>\n <div class=\"right\">\n <dx-button type=\"default\" text=\"\u9884\u89C8\" (onClick)=\"preview()\" [disabled]=\"needUpload || loading\"></dx-button>\n <dx-button type=\"success\" text=\"\u4FDD\u5B58\" (onClick)=\"saveConfig()\" [disabled]=\"needUpload || loading\"></dx-button>\n </div>\n </div>\n</div>\n<ng-template #replaceFileModalTemplate>\n <div class=\"confirm-message\">\n <span>\u66FF\u6362\u6587\u4EF6\u53EF\u4EE5\u6309\u7167\u4E66\u7B7E\u6807\u8BC6\u7EE7\u627F\u5DF2\u4FDD\u5B58\u7684\u4E66\u7B7E\u914D\u7F6E\uFF0C\u8BF7\u9009\u62E9\u64CD\u4F5C\uFF1A</span>\n </div>\n <div class=\"form-buttons\">\n <div class=\"buttons-wrapper\">\n <dx-button type=\"default\" text=\"\u7EE7\u627F\u914D\u7F6E\" (onClick)=\"replaceTemplateFile(true)\"></dx-button>\n <dx-button type=\"danger\" text=\"\u6E05\u9664\u914D\u7F6E\" (onClick)=\"replaceTemplateFile(false)\"></dx-button>\n <dx-button type=\"normal\" text=\"\u53D6\u6D88\" (onClick)=\"replaceFileModal?.hide()\"></dx-button>\n </div>\n </div>\n</ng-template>\n<ng-template #previewTemplate>\n <div class=\"preview-viewer\">\n <div class=\"viewer-container\">\n <div class=\"viewer\">\n <ng-container *ngFor=\"let section of sections\">\n <rs-section [section]=\"section\"></rs-section>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n<ng-template #previewFooterTemplate>\n <div class=\"form-buttons\">\n <div class=\"buttons-wrapper\">\n <dx-button type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"previewModal?.hide()\"></dx-button>\n </div>\n </div>\n</ng-template>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .coast-card{flex:1;padding:0}:host .coast-card .content-main{display:flex;flex-flow:row nowrap;padding:16px 0 0 16px;margin:0}:host .coast-card .content-main.show-upload-btn{padding:16px;background-color:var(--coast-empty-color, rgb(229, 229, 229));align-items:center;justify-content:center}:host .coast-card .content-main .left-panel{flex:auto;width:0;overflow-x:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .coast-card .content-main .left-panel .paste-mode-bar{flex:none;padding:8px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));border:1px solid var(--coast-border-color, rgb(221, 221, 221));display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center}:host .coast-card .content-main .left-panel .paste-mode-bar .message{font-weight:700}:host .coast-card .content-main .left-panel .content{flex:auto;height:0;overflow-y:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .coast-card .content-main .left-panel .content .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .coast-card .content-main .right-panel{flex:0 0 320px;display:flex;flex-flow:column nowrap;border-left:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .coast-card .content-main .right-panel .header{flex:none;border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));padding:0 16px 16px}:host .coast-card .content-main .right-panel .header>dx-button:not(:last-child){margin-right:8px}:host .coast-card .content-main .right-panel .config{flex:auto;height:0;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap}:host .coast-card .footer{flex:none;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));padding:12px 24px;display:flex;flex-flow:row nowrap;justify-content:space-between}:host .coast-card .footer dx-button{width:80px}:host .coast-card .footer dx-button:not(:last-child){margin-right:8px}.confirm-message{padding:24px;margin-bottom:12px;border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221))}.confirm-message span{font-size:14px}.preview-viewer{flex:auto;height:0;overflow-y:auto;margin:0 16px;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}.preview-viewer .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}.preview-viewer .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i8.SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }, { kind: "component", type: i9.MarkConfigComponent, selector: "rs-mark-config", inputs: ["tenant", "templateClassName", "templateOid", "instanceClassName", "filterCategories", "mark", "marks", "params", "tabViewContainerRef"] }] });
|
|
181
|
+
WordDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordDesignerComponent, selector: "rs-word-designer", inputs: { tenant: "tenant", className: "className", oid: "oid", instanceClassName: "instanceClassName", filterCategories: "filterCategories", params: "params", tabViewContainerRef: "tabViewContainerRef" }, outputs: { onTemplateFileUploaded: "onTemplateFileUploaded" }, host: { listeners: { "window:keydown": "handleKeyDown($event)" } }, providers: [WordDesignerService], viewQueries: [{ propertyName: "uploadInput", first: true, predicate: ["uploadInput"], descendants: true, static: true }, { propertyName: "replaceFileModalTemplate", first: true, predicate: ["replaceFileModalTemplate"], descendants: true, static: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true, static: true }, { propertyName: "previewFooterTemplate", first: true, predicate: ["previewFooterTemplate"], descendants: true, static: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<input #uploadInput type=\"file\" name=\"file\"\n accept=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" (change)=\"upload()\"\n style=\"display: none;\"/>\n<div class=\"coast-card\">\n <div class=\"coast-card-content\">\n <div class=\"content-main\" [class.show-upload-btn]=\"needUpload\">\n <ng-container *ngIf=\"needUpload\">\n <dx-button type=\"success\" text=\"\u4E0A\u4F20\u6587\u4EF6\" (onClick)=\"uploadInput.click()\"></dx-button>\n </ng-container>\n <div *ngIf=\"!needUpload\" class=\"left-panel\">\n <div *ngIf=\"pasteMode\" class=\"paste-mode-bar\">\n <span\n class=\"message\">\u5DF2\u8FDB\u5165\u6279\u91CF\u7C98\u8D34\u914D\u7F6E\u6A21\u5F0F\uFF0C\u652F\u6301Ctrl\u3001Shift\u952E\u5FEB\u6377\u9009\u62E9\uFF0C\u6309Ctrl+V\u7EC4\u5408\u952E\u7C98\u8D34\u914D\u7F6E\uFF0C\u6309Esc\u952E\u53D6\u6D88\u64CD\u4F5C\u5E76\u9000\u51FA\u8BE5\u6A21\u5F0F</span>\n <dx-button [width]=\"48\" text=\"\u9000\u51FA\" (onClick)=\"exitPasteMode()\"></dx-button>\n </div>\n <div class=\"content\"\n (mouseenter)=\"mouseInViewer = true;\"\n (mouseleave)=\"mouseInViewer = false;\"\n (mousewheel)=\"scaleByMouse($event)\">\n <div *ngIf=\"!needUpload\" class=\"viewer\">\n <ng-container *ngFor=\"let section of sections\">\n <rs-section [section]=\"section\" [editMode]=\"true\" [pasteMode]=\"pasteMode\"></rs-section>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"!needUpload\" class=\"right-panel\">\n <div class=\"header\">\n <dx-button type=\"default\" text=\"\u66FF\u6362\u6587\u4EF6\" (onClick)=\"openReplaceTemplateFileModal()\"\n [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-download\" hint=\"\u4E0B\u8F7D\u6587\u4EF6\"\n (onClick)=\"downloadTemplateFile()\" [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-direction-up\" hint=\"\u4E0A\u4E00\u4E2A(Alt + \u2191)\"\n (onClick)=\"service.switchMark(-1)\" [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-direction-down\" hint=\"\u4E0B\u4E00\u4E2A(Alt + \u2193)\"\n (onClick)=\"service.switchMark(1)\" [disabled]=\"loading\"></dx-button>\n <dx-button [type]=\"pasteMode ? 'success' : 'default'\" text=\"\u590D\u5236\" hint=\"\u590D\u5236(Ctrl + c)\"\n (onClick)=\"copyMarkConfig()\"></dx-button>\n <dx-button type=\"danger\" text=\"\u7C98\u8D34\" hint=\"\u7C98\u8D34(Ctrl + v)\" (onClick)=\"pasteMarkConfig()\"\n [disabled]=\"loading || !pasteMode\"></dx-button>\n </div>\n <div class=\"config\" *ngIf=\"service.activeMark\">\n <rs-mark-config [tenant]=\"tenant\"\n [templateClassName]=\"className\"\n [templateOid]=\"oid\"\n [instanceClassName]=\"instanceClassName\"\n [filterCategories]=\"filterCategories\"\n [mark]=\"service.activeMark\"\n [marks]=\"service.marks\"\n [tabViewContainerRef]=\"tabViewContainerRef\"></rs-mark-config>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!needUpload\" class=\"footer\">\n <div class=\"left\">\n <dx-button text=\"\u653E\u5927\" (onClick)=\"scale(0.1)\"></dx-button>\n <dx-button text=\"\u8FD8\u539F\" (onClick)=\"scale(0)\"></dx-button>\n <dx-button text=\"\u7F29\u5C0F\" (onClick)=\"scale(-0.1)\"></dx-button>\n </div>\n <div class=\"right\">\n <dx-button type=\"default\" text=\"\u9884\u89C8\" (onClick)=\"preview()\" [disabled]=\"needUpload || loading\"></dx-button>\n <dx-button type=\"success\" text=\"\u4FDD\u5B58\" (onClick)=\"saveConfig()\" [disabled]=\"needUpload || loading\"></dx-button>\n </div>\n </div>\n</div>\n<ng-template #replaceFileModalTemplate>\n <div class=\"confirm-message\">\n <span>\u66FF\u6362\u6587\u4EF6\u53EF\u4EE5\u6309\u7167\u4E66\u7B7E\u6807\u8BC6\u7EE7\u627F\u5DF2\u4FDD\u5B58\u7684\u4E66\u7B7E\u914D\u7F6E\uFF0C\u8BF7\u9009\u62E9\u64CD\u4F5C\uFF1A</span>\n </div>\n <div class=\"form-buttons\">\n <div class=\"buttons-wrapper\">\n <dx-button type=\"default\" text=\"\u7EE7\u627F\u914D\u7F6E\" (onClick)=\"replaceTemplateFile(true)\"></dx-button>\n <dx-button type=\"danger\" text=\"\u6E05\u9664\u914D\u7F6E\" (onClick)=\"replaceTemplateFile(false)\"></dx-button>\n <dx-button type=\"normal\" text=\"\u53D6\u6D88\" (onClick)=\"replaceFileModal?.hide()\"></dx-button>\n </div>\n </div>\n</ng-template>\n<ng-template #previewTemplate>\n <div class=\"preview-viewer\">\n <div class=\"viewer-container\">\n <div class=\"viewer\">\n <ng-container *ngFor=\"let section of sections\">\n <rs-section [section]=\"section\"></rs-section>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n<ng-template #previewFooterTemplate>\n <div class=\"form-buttons\">\n <div class=\"buttons-wrapper\">\n <dx-button type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"previewModal?.hide()\"></dx-button>\n </div>\n </div>\n</ng-template>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .coast-card{flex:1;padding:0}:host .coast-card .content-main{display:flex;flex-flow:row nowrap;padding:16px 0 0 16px;margin:0}:host .coast-card .content-main.show-upload-btn{padding:16px;background-color:var(--coast-empty-color, rgb(229, 229, 229));align-items:center;justify-content:center}:host .coast-card .content-main .left-panel{flex:auto;width:0;overflow-x:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .coast-card .content-main .left-panel .paste-mode-bar{flex:none;padding:8px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));border:1px solid var(--coast-border-color, rgb(221, 221, 221));display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center}:host .coast-card .content-main .left-panel .paste-mode-bar .message{font-weight:700}:host .coast-card .content-main .left-panel .content{flex:auto;height:0;overflow-y:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .coast-card .content-main .left-panel .content .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .coast-card .content-main .right-panel{flex:0 0 320px;display:flex;flex-flow:column nowrap;border-left:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .coast-card .content-main .right-panel .header{flex:none;border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));padding:0 16px 16px}:host .coast-card .content-main .right-panel .header>dx-button:not(:last-child){margin-right:8px}:host .coast-card .content-main .right-panel .config{flex:auto;height:0;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap}:host .coast-card .footer{flex:none;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));padding:12px 24px;display:flex;flex-flow:row nowrap;justify-content:space-between}:host .coast-card .footer dx-button{width:80px}:host .coast-card .footer dx-button:not(:last-child){margin-right:8px}.confirm-message{padding:24px;margin-bottom:12px;border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221))}.confirm-message span{font-size:14px}.preview-viewer{flex:auto;height:0;overflow-y:auto;margin:0 16px;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}.preview-viewer .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}.preview-viewer .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i8.SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }, { kind: "component", type: i9.MarkConfigComponent, selector: "rs-mark-config", inputs: ["tenant", "templateClassName", "templateOid", "instanceClassName", "filterCategories", "mark", "marks", "params", "tabViewContainerRef"] }] });
|
|
180
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordDesignerComponent, decorators: [{
|
|
181
183
|
type: Component,
|
|
182
184
|
args: [{ selector: 'rs-word-designer', providers: [WordDesignerService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<input #uploadInput type=\"file\" name=\"file\"\n accept=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" (change)=\"upload()\"\n style=\"display: none;\"/>\n<div class=\"coast-card\">\n <div class=\"coast-card-content\">\n <div class=\"content-main\" [class.show-upload-btn]=\"needUpload\">\n <ng-container *ngIf=\"needUpload\">\n <dx-button type=\"success\" text=\"\u4E0A\u4F20\u6587\u4EF6\" (onClick)=\"uploadInput.click()\"></dx-button>\n </ng-container>\n <div *ngIf=\"!needUpload\" class=\"left-panel\">\n <div *ngIf=\"pasteMode\" class=\"paste-mode-bar\">\n <span\n class=\"message\">\u5DF2\u8FDB\u5165\u6279\u91CF\u7C98\u8D34\u914D\u7F6E\u6A21\u5F0F\uFF0C\u652F\u6301Ctrl\u3001Shift\u952E\u5FEB\u6377\u9009\u62E9\uFF0C\u6309Ctrl+V\u7EC4\u5408\u952E\u7C98\u8D34\u914D\u7F6E\uFF0C\u6309Esc\u952E\u53D6\u6D88\u64CD\u4F5C\u5E76\u9000\u51FA\u8BE5\u6A21\u5F0F</span>\n <dx-button [width]=\"48\" text=\"\u9000\u51FA\" (onClick)=\"exitPasteMode()\"></dx-button>\n </div>\n <div class=\"content\"\n (mouseenter)=\"mouseInViewer = true;\"\n (mouseleave)=\"mouseInViewer = false;\"\n (mousewheel)=\"scaleByMouse($event)\">\n <div *ngIf=\"!needUpload\" class=\"viewer\">\n <ng-container *ngFor=\"let section of sections\">\n <rs-section [section]=\"section\" [editMode]=\"true\" [pasteMode]=\"pasteMode\"></rs-section>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"!needUpload\" class=\"right-panel\">\n <div class=\"header\">\n <dx-button type=\"default\" text=\"\u66FF\u6362\u6587\u4EF6\" (onClick)=\"openReplaceTemplateFileModal()\"\n [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-download\" hint=\"\u4E0B\u8F7D\u6587\u4EF6\"\n (onClick)=\"downloadTemplateFile()\" [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-direction-up\" hint=\"\u4E0A\u4E00\u4E2A(Alt + \u2191)\"\n (onClick)=\"service.switchMark(-1)\" [disabled]=\"loading\"></dx-button>\n <dx-button icon=\"coast-icon coast-icon-direction-down\" hint=\"\u4E0B\u4E00\u4E2A(Alt + \u2193)\"\n (onClick)=\"service.switchMark(1)\" [disabled]=\"loading\"></dx-button>\n <dx-button [type]=\"pasteMode ? 'success' : 'default'\" text=\"\u590D\u5236\" hint=\"\u590D\u5236(Ctrl + c)\"\n (onClick)=\"copyMarkConfig()\"></dx-button>\n <dx-button type=\"danger\" text=\"\u7C98\u8D34\" hint=\"\u7C98\u8D34(Ctrl + v)\" (onClick)=\"pasteMarkConfig()\"\n [disabled]=\"loading || !pasteMode\"></dx-button>\n </div>\n <div class=\"config\" *ngIf=\"service.activeMark\">\n <rs-mark-config [tenant]=\"tenant\"\n [templateClassName]=\"className\"\n [templateOid]=\"oid\"\n [instanceClassName]=\"instanceClassName\"\n [filterCategories]=\"filterCategories\"\n [mark]=\"service.activeMark\"\n [marks]=\"service.marks\"\n [tabViewContainerRef]=\"tabViewContainerRef\"></rs-mark-config>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!needUpload\" class=\"footer\">\n <div class=\"left\">\n <dx-button text=\"\u653E\u5927\" (onClick)=\"scale(0.1)\"></dx-button>\n <dx-button text=\"\u8FD8\u539F\" (onClick)=\"scale(0)\"></dx-button>\n <dx-button text=\"\u7F29\u5C0F\" (onClick)=\"scale(-0.1)\"></dx-button>\n </div>\n <div class=\"right\">\n <dx-button type=\"default\" text=\"\u9884\u89C8\" (onClick)=\"preview()\" [disabled]=\"needUpload || loading\"></dx-button>\n <dx-button type=\"success\" text=\"\u4FDD\u5B58\" (onClick)=\"saveConfig()\" [disabled]=\"needUpload || loading\"></dx-button>\n </div>\n </div>\n</div>\n<ng-template #replaceFileModalTemplate>\n <div class=\"confirm-message\">\n <span>\u66FF\u6362\u6587\u4EF6\u53EF\u4EE5\u6309\u7167\u4E66\u7B7E\u6807\u8BC6\u7EE7\u627F\u5DF2\u4FDD\u5B58\u7684\u4E66\u7B7E\u914D\u7F6E\uFF0C\u8BF7\u9009\u62E9\u64CD\u4F5C\uFF1A</span>\n </div>\n <div class=\"form-buttons\">\n <div class=\"buttons-wrapper\">\n <dx-button type=\"default\" text=\"\u7EE7\u627F\u914D\u7F6E\" (onClick)=\"replaceTemplateFile(true)\"></dx-button>\n <dx-button type=\"danger\" text=\"\u6E05\u9664\u914D\u7F6E\" (onClick)=\"replaceTemplateFile(false)\"></dx-button>\n <dx-button type=\"normal\" text=\"\u53D6\u6D88\" (onClick)=\"replaceFileModal?.hide()\"></dx-button>\n </div>\n </div>\n</ng-template>\n<ng-template #previewTemplate>\n <div class=\"preview-viewer\">\n <div class=\"viewer-container\">\n <div class=\"viewer\">\n <ng-container *ngFor=\"let section of sections\">\n <rs-section [section]=\"section\"></rs-section>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n<ng-template #previewFooterTemplate>\n <div class=\"form-buttons\">\n <div class=\"buttons-wrapper\">\n <dx-button type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"previewModal?.hide()\"></dx-button>\n </div>\n </div>\n</ng-template>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .coast-card{flex:1;padding:0}:host .coast-card .content-main{display:flex;flex-flow:row nowrap;padding:16px 0 0 16px;margin:0}:host .coast-card .content-main.show-upload-btn{padding:16px;background-color:var(--coast-empty-color, rgb(229, 229, 229));align-items:center;justify-content:center}:host .coast-card .content-main .left-panel{flex:auto;width:0;overflow-x:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .coast-card .content-main .left-panel .paste-mode-bar{flex:none;padding:8px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));border:1px solid var(--coast-border-color, rgb(221, 221, 221));display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center}:host .coast-card .content-main .left-panel .paste-mode-bar .message{font-weight:700}:host .coast-card .content-main .left-panel .content{flex:auto;height:0;overflow-y:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .coast-card .content-main .left-panel .content .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .coast-card .content-main .right-panel{flex:0 0 320px;display:flex;flex-flow:column nowrap;border-left:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .coast-card .content-main .right-panel .header{flex:none;border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));padding:0 16px 16px}:host .coast-card .content-main .right-panel .header>dx-button:not(:last-child){margin-right:8px}:host .coast-card .content-main .right-panel .config{flex:auto;height:0;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap}:host .coast-card .footer{flex:none;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));padding:12px 24px;display:flex;flex-flow:row nowrap;justify-content:space-between}:host .coast-card .footer dx-button{width:80px}:host .coast-card .footer dx-button:not(:last-child){margin-right:8px}.confirm-message{padding:24px;margin-bottom:12px;border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221))}.confirm-message span{font-size:14px}.preview-viewer{flex:auto;height:0;overflow-y:auto;margin:0 16px;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}.preview-viewer .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}.preview-viewer .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}\n"] }]
|
|
@@ -194,6 +196,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
194
196
|
type: Input
|
|
195
197
|
}], tabViewContainerRef: [{
|
|
196
198
|
type: Input
|
|
199
|
+
}], onTemplateFileUploaded: [{
|
|
200
|
+
type: Output
|
|
197
201
|
}], uploadInput: [{
|
|
198
202
|
type: ViewChild,
|
|
199
203
|
args: ['uploadInput', { static: true }]
|
|
@@ -210,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
210
214
|
type: HostListener,
|
|
211
215
|
args: ['window:keydown', ['$event']]
|
|
212
216
|
}] } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1kZXNpZ25lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUc1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7OztBQVExRCxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQyxhQUFhLENBQUMsTUFBcUI7UUFDakMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ25CLEtBQUssU0FBUztnQkFDWixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdCO2dCQUNELE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDNUI7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ2xCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7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LFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDZSx3QkFBd0I7c0JBQTlFLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNQLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNRLHFCQUFxQjtzQkFBeEUsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBR2xELGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gXCIuLi8uLi9tb2RhbC9tb2RhbC5jb21wb25lbnRcIjtcbmltcG9ydCB7V29yZERlc2lnbmVyU2VydmljZX0gZnJvbSBcIi4vd29yZC1kZXNpZ25lci5zZXJ2aWNlXCI7XG5pbXBvcnQge01vZGFsU2VydmljZX0gZnJvbSBcIi4uLy4uL21vZGFsL21vZGFsLnNlcnZpY2VcIjtcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZWN0aW9uL3NlY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtkZWVwQ2xvbmUsIG5vdGlmeVN1Y2Nlc3N9IGZyb20gXCIuLi8uLi91dGlsL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLXdvcmQtZGVzaWduZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd29yZC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmQtZGVzaWduZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbV29yZERlc2lnbmVyU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgV29yZERlc2lnbmVyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdGVuYW50OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGNsYXNzTmFtZTogYW55O1xuICBASW5wdXQoKVxuICBvaWQ6IGFueTtcbiAgQElucHV0KClcbiAgaW5zdGFuY2VDbGFzc05hbWU6IGFueTtcbiAgQElucHV0KClcbiAgZmlsdGVyQ2F0ZWdvcmllcz86IHN0cmluZ1tdO1xuICBASW5wdXQoKVxuICBwYXJhbXM/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHRhYlZpZXdDb250YWluZXJSZWYhOiBhbnk7XG4gIHByb3RlY3RlZCBzZWN0aW9uczogYW55O1xuICBwcm90ZWN0ZWQgbmVlZFVwbG9hZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcGFzdGVNb2RlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBtb3VzZUluVmlld2VyID0gZmFsc2U7XG4gIHByb3RlY3RlZCBsb2FkaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZXBsYWNlRmlsZU1vZGFsPzogTW9kYWxDb21wb25lbnQ7XG4gIHByb3RlY3RlZCByZXRhaW5NYXJrQ29uZmlnID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwcmV2aWV3TW9kYWw/OiBNb2RhbENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgndXBsb2FkSW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgdXBsb2FkSW5wdXQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgcmVwbGFjZUZpbGVNb2RhbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgncHJldmlld1RlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIHByZXZpZXdUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3ByZXZpZXdGb290ZXJUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBwcmV2aWV3Rm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKCRldmVudC5jb2RlKSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgaWYgKCRldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2Uuc3dpdGNoTWFyaygtMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBpZiAoJGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgIHRoaXMuc2VydmljZS5zd2l0Y2hNYXJrKDEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnS2V5Qyc6XG4gICAgICAgIGlmICgkZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgICBpZiAoc2VsZWN0aW9uPy50b1N0cmluZygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY29weU1hcmtDb25maWcoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0tleVYnOlxuICAgICAgICBpZiAoJGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICB0aGlzLnBhc3RlTWFya0NvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5leGl0UGFzdGVNb2RlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb3VzZUluVmlld2VyICYmICRldmVudC5jdHJsS2V5ICYmICRldmVudC5rZXkgPT09ICcwJykge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNjYWxlKDApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBTZWN0aW9uU2VydmljZSwgcHJpdmF0ZSB3b3JkRGVzaWduZXJTZXJ2aWNlOiBXb3JkRGVzaWduZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbmFudCA9IHRoaXMudGVuYW50O1xuICAgIHRoaXMuc2VydmljZS50ZW1wbGF0ZUNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lO1xuICAgIHRoaXMuc2VydmljZS50ZW1wbGF0ZU9pZCA9IHRoaXMub2lkO1xuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZUNsYXNzTmFtZSA9IHRoaXMuaW5zdGFuY2VDbGFzc05hbWU7XG4gICAgdGhpcy5zZXJ2aWNlLnBhcmFtcyA9IHRoaXMucGFyYW1zO1xuICAgIHRoaXMuc2VydmljZS50YWJWaWV3Q29udGFpbmVyUmVmID0gdGhpcy50YWJWaWV3Q29udGFpbmVyUmVmO1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy53b3JkRGVzaWduZXJTZXJ2aWNlLmxvYWRUZW1wbGF0ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5sb2FkVGVtcGxhdGVBbmRDb25maWcocmVzcG9uc2UpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlcnZpY2UudmFsdWVVcGRhdGVkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZXJ2aWNlLnZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbG9hZFRlbXBsYXRlQW5kQ29uZmlnKHJlc3BvbnNlOiBhbnkpIHtcbiAgICB0aGlzLnNlY3Rpb25zID0gcmVzcG9uc2Uuc2VjdGlvbnMgfHwgW107XG4gICAgaWYgKHRoaXMuc2VjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm5lZWRVcGxvYWQgPSB0cnVlO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubmVlZFVwbG9hZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VydmljZS5tYXJrcyA9IHJlc3BvbnNlLm1hcmtzLm1hcCgobWFyazogYW55KSA9PiB7XG4gICAgICBtYXJrLmNvbmZpZyA9IG1hcmsuY29uZmlnIHx8IHt9O1xuICAgICAgcmV0dXJuIG1hcms7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuc2VydmljZS5tYXJrcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuYWN0aXZlTWFyayA9IHRoaXMuc2VydmljZS5tYXJrc1swXTtcbiAgICB9XG4gIH1cblxuICBzY2FsZUJ5TW91c2UoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoJGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zY2FsZSgkZXZlbnQuZGVsdGFZIDwgMCA/IDAuMSA6IC0wLjEpO1xuICAgIH1cbiAgfVxuXG4gIHNjYWxlKHR5cGU6IG51bWJlcikge1xuICAgIGlmICh0eXBlID09PSAwKSB7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2NhbGUgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2NhbGUgKz0gdHlwZTtcbiAgICB9XG4gIH1cblxuICB1cGxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLndvcmREZXNpZ25lclNlcnZpY2UudXBsb2FkVGVtcGxhdGVGaWxlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHRoaXMucmV0YWluTWFya0NvbmZpZywgdGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LmZpbGVzWzBdKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB0aGlzLmxvYWRUZW1wbGF0ZUFuZENvbmZpZyhyZXNwb25zZSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5SZXBsYWNlVGVtcGxhdGVGaWxlTW9kYWwoKSB7XG4gICAgdGhpcy5yZXBsYWNlRmlsZU1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnRhYlZpZXdDb250YWluZXJSZWYsICfmm7/mjaLmlofku7YnLCAnZGVmYXVsdCcsIHRoaXMucmVwbGFjZUZpbGVNb2RhbFRlbXBsYXRlLCB7fSk7XG4gIH1cblxuICByZXBsYWNlVGVtcGxhdGVGaWxlKHJldGFpbk1hcmtDb25maWc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJldGFpbk1hcmtDb25maWcgPSByZXRhaW5NYXJrQ29uZmlnO1xuICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIHRoaXMucmVwbGFjZUZpbGVNb2RhbD8uaGlkZSgpO1xuICB9XG5cbiAgZG93bmxvYWRUZW1wbGF0ZUZpbGUoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLndvcmREZXNpZ25lclNlcnZpY2UuZG93bmxvYWRUZW1wbGF0ZUZpbGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwgKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcmV2aWV3KCkge1xuICAgIGZvciAobGV0IG1hcmsgb2YgdGhpcy5zZXJ2aWNlLm1hcmtzKSB7XG4gICAgICBtYXJrLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnByZXZpZXdNb2RhbCA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy50YWJWaWV3Q29udGFpbmVyUmVmLCAn6aKE6KeIJywgJ2Z1bGwnLFxuICAgICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUsIHt9LCB0aGlzLnByZXZpZXdGb290ZXJUZW1wbGF0ZSk7XG4gIH1cblxuICBzYXZlQ29uZmlnKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zZXJ2aWNlLm1hcmtzLm1hcChtYXJrID0+IHtcbiAgICAgIGRlbGV0ZSBtYXJrLnZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS5zYXZlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHtcbiAgICAgIHRlbXBsYXRlQ29uZmlnOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxuICAgICAgICBtYXJrczogdGhpcy5zZXJ2aWNlLm1hcmtzXG4gICAgICB9KVxuICAgIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICBub3RpZnlTdWNjZXNzKCfkv53lrZjmiJDlip8nKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb3B5TWFya0NvbmZpZygpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmsudHlwZSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNvcGllZE1hcmsgPSBkZWVwQ2xvbmUodGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmspO1xuICAgICAgdGhpcy5wYXN0ZU1vZGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGV4aXRQYXN0ZU1vZGUoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNvcGllZE1hcmsgPSB7fTtcbiAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcyA9IFtdO1xuICAgIHRoaXMuc2VydmljZS5sYXN0Q2xpY2tUb1Bhc3RlTWFya05hbWUgPSAnJztcbiAgICB0aGlzLnBhc3RlTW9kZSA9IGZhbHNlO1xuICB9XG5cbiAgcGFzdGVNYXJrQ29uZmlnKCkge1xuICAgIGxldCByZWFkeVBhc3RlTWFyaztcbiAgICBmb3IgKGxldCByZWFkeVBhc3RlTWFya05hbWUgb2YgdGhpcy5zZXJ2aWNlLnJlYWR5UGFzdGVNYXJrTmFtZXMpIHtcbiAgICAgIHJlYWR5UGFzdGVNYXJrID0gdGhpcy5zZXJ2aWNlLmdldE1hcmsocmVhZHlQYXN0ZU1hcmtOYW1lKTtcbiAgICAgIGNvbnN0IGRpc3BsYXkgPSByZWFkeVBhc3RlTWFyay5kaXNwbGF5O1xuICAgICAgT2JqZWN0LmFzc2lnbihyZWFkeVBhc3RlTWFyaywgZGVlcENsb25lKHRoaXMuc2VydmljZS5jb3BpZWRNYXJrKSk7XG4gICAgICByZWFkeVBhc3RlTWFyay5uYW1lID0gcmVhZHlQYXN0ZU1hcmtOYW1lO1xuICAgICAgcmVhZHlQYXN0ZU1hcmsuZGlzcGxheSA9IGRpc3BsYXk7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5hY3RpdmVNYXJrID0gcmVhZHlQYXN0ZU1hcmsgfHwgdGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcms7XG4gICAgdGhpcy5leGl0UGFzdGVNb2RlKCk7XG4gIH1cbn1cbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIiBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XG48L2R4LWxvYWQtcGFuZWw+XG48aW5wdXQgI3VwbG9hZElucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIlxuICAgICAgIGFjY2VwdD1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCIgKGNoYW5nZSk9XCJ1cGxvYWQoKVwiXG4gICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiLz5cbjxkaXYgY2xhc3M9XCJjb2FzdC1jYXJkXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2FzdC1jYXJkLWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tYWluXCIgW2NsYXNzLnNob3ctdXBsb2FkLWJ0bl09XCJuZWVkVXBsb2FkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibmVlZFVwbG9hZFwiPlxuICAgICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuS4iuS8oOaWh+S7tlwiIChvbkNsaWNrKT1cInVwbG9hZElucHV0LmNsaWNrKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJsZWZ0LXBhbmVsXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwYXN0ZU1vZGVcIiBjbGFzcz1cInBhc3RlLW1vZGUtYmFyXCI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZVwiPuW3sui/m+WFpeaJuemHj+eymOi0tOmFjee9ruaooeW8j++8jOaUr+aMgUN0cmzjgIFTaGlmdOmUruW/q+aNt+mAieaLqe+8jOaMiUN0cmwrVue7hOWQiOmUrueymOi0tOmFjee9ru+8jOaMiUVzY+mUruWPlua2iOaTjeS9nOW5tumAgOWHuuivpeaooeW8jzwvc3Bhbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIFt3aWR0aF09XCI0OFwiIHRleHQ9XCLpgIDlh7pcIiAob25DbGljayk9XCJleGl0UGFzdGVNb2RlKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCJcbiAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJtb3VzZUluVmlld2VyID0gdHJ1ZTtcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlSW5WaWV3ZXIgPSBmYWxzZTtcIlxuICAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cInNjYWxlQnlNb3VzZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJ2aWV3ZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHJzLXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiIFtlZGl0TW9kZV09XCJ0cnVlXCIgW3Bhc3RlTW9kZV09XCJwYXN0ZU1vZGVcIj48L3JzLXNlY3Rpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhbmVlZFVwbG9hZFwiIGNsYXNzPVwicmlnaHQtcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDxkeC1idXR0b24gdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5pu/5o2i5paH5Lu2XCIgKG9uQ2xpY2spPVwib3BlblJlcGxhY2VUZW1wbGF0ZUZpbGVNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XG4gICAgICAgICAgPGR4LWJ1dHRvbiBpY29uPVwiY29hc3QtaWNvbiBjb2FzdC1pY29uLWRvd25sb2FkXCIgaGludD1cIuS4i+i9veaWh+S7tlwiXG4gICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkb3dubG9hZFRlbXBsYXRlRmlsZSgpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIGljb249XCJjb2FzdC1pY29uIGNvYXN0LWljb24tZGlyZWN0aW9uLXVwXCIgaGludD1cIuS4iuS4gOS4qihBbHQgKyDihpEpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNlcnZpY2Uuc3dpdGNoTWFyaygtMSlcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gaWNvbj1cImNvYXN0LWljb24gY29hc3QtaWNvbi1kaXJlY3Rpb24tZG93blwiIGhpbnQ9XCLkuIvkuIDkuKooQWx0ICsg4oaTKVwiXG4gICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzZXJ2aWNlLnN3aXRjaE1hcmsoMSlcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gW3R5cGVdPVwicGFzdGVNb2RlID8gJ3N1Y2Nlc3MnIDogJ2RlZmF1bHQnXCIgdGV4dD1cIuWkjeWItlwiIGhpbnQ9XCLlpI3liLYoQ3RybCArIGMpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImNvcHlNYXJrQ29uZmlnKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkYW5nZXJcIiB0ZXh0PVwi57KY6LS0XCIgaGludD1cIueymOi0tChDdHJsICsgdilcIiAob25DbGljayk9XCJwYXN0ZU1hcmtDb25maWcoKVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCAhcGFzdGVNb2RlXCI+PC9keC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnXCIgKm5nSWY9XCJzZXJ2aWNlLmFjdGl2ZU1hcmtcIj5cbiAgICAgICAgICA8cnMtbWFyay1jb25maWcgW3RlbmFudF09XCJ0ZW5hbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVDbGFzc05hbWVdPVwiY2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlT2lkXT1cIm9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnN0YW5jZUNsYXNzTmFtZV09XCJpbnN0YW5jZUNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDYXRlZ29yaWVzXT1cImZpbHRlckNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya109XCJzZXJ2aWNlLmFjdGl2ZU1hcmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya3NdPVwic2VydmljZS5tYXJrc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJWaWV3Q29udGFpbmVyUmVmXT1cInRhYlZpZXdDb250YWluZXJSZWZcIj48L3JzLW1hcmstY29uZmlnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJmb290ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi5pS+5aSnXCIgKG9uQ2xpY2spPVwic2NhbGUoMC4xKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi6L+Y5Y6fXCIgKG9uQ2xpY2spPVwic2NhbGUoMClcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdGV4dD1cIue8qeWwj1wiIChvbkNsaWNrKT1cInNjYWxlKC0wLjEpXCI+PC9keC1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIumihOiniFwiIChvbkNsaWNrKT1cInByZXZpZXcoKVwiIFtkaXNhYmxlZF09XCJuZWVkVXBsb2FkIHx8IGxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi5L+d5a2YXCIgKG9uQ2xpY2spPVwic2F2ZUNvbmZpZygpXCIgW2Rpc2FibGVkXT1cIm5lZWRVcGxvYWQgfHwgbG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNyZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjb25maXJtLW1lc3NhZ2VcIj5cbiAgICA8c3Bhbj7mm7/mjaLmlofku7blj6/ku6XmjInnhafkuabnrb7moIfor4bnu6fmib/lt7Lkv53lrZjnmoTkuabnrb7phY3nva7vvIzor7fpgInmi6nmk43kvZzvvJo8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiPlxuICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLnu6fmib/phY3nva5cIiAob25DbGljayk9XCJyZXBsYWNlVGVtcGxhdGVGaWxlKHRydWUpXCI+PC9keC1idXR0b24+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkYW5nZXJcIiB0ZXh0PVwi5riF6Zmk6YWN572uXCIgKG9uQ2xpY2spPVwicmVwbGFjZVRlbXBsYXRlRmlsZShmYWxzZSlcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlj5bmtohcIiAob25DbGljayk9XCJyZXBsYWNlRmlsZU1vZGFsPy5oaWRlKClcIj48L2R4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNwcmV2aWV3VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXZpZXdlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidmlld2VyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICA8cnMtc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9ycy1zZWN0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3ByZXZpZXdGb290ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tYnV0dG9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zLXdyYXBwZXJcIj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlhbPpl61cIiAob25DbGljayk9XCJwcmV2aWV3TW9kYWw/LmhpZGUoKVwiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1kZXNpZ25lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHNUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLHFCQUFxQjtJQStCaEMsYUFBYSxDQUFDLE1BQXFCO1FBQ2pDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxXQUFXO2dCQUNkLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzVCO2dCQUNELE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUNsQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3hDLElBQUksU0FBUyxF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c0JBRGhCLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFHTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBVW1DLFdBQVc7c0JBQXBELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDZSx3QkFBd0I7c0JBQTlFLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNQLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNRLHFCQUFxQjtzQkFBeEUsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBR2xELGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vbW9kYWwvbW9kYWwuY29tcG9uZW50XCI7XG5pbXBvcnQge1dvcmREZXNpZ25lclNlcnZpY2V9IGZyb20gXCIuL3dvcmQtZGVzaWduZXIuc2VydmljZVwiO1xuaW1wb3J0IHtNb2RhbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9tb2RhbC9tb2RhbC5zZXJ2aWNlXCI7XG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VjdGlvbi9zZWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7ZGVlcENsb25lLCBub3RpZnlTdWNjZXNzfSBmcm9tIFwiLi4vLi4vdXRpbC91dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy13b3JkLWRlc2lnbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmQtZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JkLWRlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1dvcmREZXNpZ25lclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFdvcmREZXNpZ25lckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHRlbmFudDogYW55O1xuICBASW5wdXQoKVxuICBjbGFzc05hbWU6IGFueTtcbiAgQElucHV0KClcbiAgb2lkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGluc3RhbmNlQ2xhc3NOYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGZpbHRlckNhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbiAgQElucHV0KClcbiAgcGFyYW1zPzogYW55O1xuICBASW5wdXQoKVxuICB0YWJWaWV3Q29udGFpbmVyUmVmITogYW55O1xuICBAT3V0cHV0KClcbiAgb25UZW1wbGF0ZUZpbGVVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIHNlY3Rpb25zOiBhbnk7XG4gIHByb3RlY3RlZCBuZWVkVXBsb2FkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwYXN0ZU1vZGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG1vdXNlSW5WaWV3ZXIgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHJlcGxhY2VGaWxlTW9kYWw/OiBNb2RhbENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIHJldGFpbk1hcmtDb25maWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHByZXZpZXdNb2RhbD86IE1vZGFsQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd1cGxvYWRJbnB1dCcsIHtzdGF0aWM6IHRydWV9KSB1cGxvYWRJbnB1dCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3JlcGxhY2VGaWxlTW9kYWxUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSByZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdwcmV2aWV3VGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgcHJldmlld1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgncHJldmlld0Zvb3RlclRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIHByZXZpZXdGb290ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoJGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBpZiAoJGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgIHRoaXMuc2VydmljZS5zd2l0Y2hNYXJrKC0xKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGlmICgkZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnN3aXRjaE1hcmsoMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdLZXlDJzpcbiAgICAgICAgaWYgKCRldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgIGlmIChzZWxlY3Rpb24/LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb3B5TWFya0NvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnS2V5Vic6XG4gICAgICAgIGlmICgkZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgIHRoaXMucGFzdGVNYXJrQ29uZmlnKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmV4aXRQYXN0ZU1vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vdXNlSW5WaWV3ZXIgJiYgJGV2ZW50LmN0cmxLZXkgJiYgJGV2ZW50LmtleSA9PT0gJzAnKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2NhbGUoMCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IFNlY3Rpb25TZXJ2aWNlLCBwcml2YXRlIHdvcmREZXNpZ25lclNlcnZpY2U6IFdvcmREZXNpZ25lclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2UudGVuYW50ID0gdGhpcy50ZW5hbnQ7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlQ2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlT2lkID0gdGhpcy5vaWQ7XG4gICAgdGhpcy5zZXJ2aWNlLmluc3RhbmNlQ2xhc3NOYW1lID0gdGhpcy5pbnN0YW5jZUNsYXNzTmFtZTtcbiAgICB0aGlzLnNlcnZpY2UucGFyYW1zID0gdGhpcy5wYXJhbXM7XG4gICAgdGhpcy5zZXJ2aWNlLnRhYlZpZXdDb250YWluZXJSZWYgPSB0aGlzLnRhYlZpZXdDb250YWluZXJSZWY7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLndvcmREZXNpZ25lclNlcnZpY2UubG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLmxvYWRUZW1wbGF0ZUFuZENvbmZpZyhyZXNwb25zZSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlcnZpY2UudmFsdWVDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBsb2FkVGVtcGxhdGVBbmRDb25maWcocmVzcG9uc2U6IGFueSkge1xuICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5zZWN0aW9ucyB8fCBbXTtcbiAgICBpZiAodGhpcy5zZWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubmVlZFVwbG9hZCA9IHRydWU7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uZWVkVXBsb2FkID0gZmFsc2U7XG4gICAgdGhpcy5zZXJ2aWNlLm1hcmtzID0gcmVzcG9uc2UubWFya3MubWFwKChtYXJrOiBhbnkpID0+IHtcbiAgICAgIG1hcmsuY29uZmlnID0gbWFyay5jb25maWcgfHwge307XG4gICAgICByZXR1cm4gbWFyaztcbiAgICB9KTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLm1hcmtzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VydmljZS5hY3RpdmVNYXJrID0gdGhpcy5zZXJ2aWNlLm1hcmtzWzBdO1xuICAgIH1cbiAgfVxuXG4gIHNjYWxlQnlNb3VzZSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICgkZXZlbnQuY3RybEtleSkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNjYWxlKCRldmVudC5kZWx0YVkgPCAwID8gMC4xIDogLTAuMSk7XG4gICAgfVxuICB9XG5cbiAgc2NhbGUodHlwZTogbnVtYmVyKSB7XG4gICAgaWYgKHR5cGUgPT09IDApIHtcbiAgICAgIHRoaXMuc2VydmljZS5zY2FsZSA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VydmljZS5zY2FsZSArPSB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS51cGxvYWRUZW1wbGF0ZUZpbGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwgdGhpcy5yZXRhaW5NYXJrQ29uZmlnLCB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQuZmlsZXNbMF0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMubG9hZFRlbXBsYXRlQW5kQ29uZmlnKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5vblRlbXBsYXRlRmlsZVVwbG9hZGVkLmVtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5SZXBsYWNlVGVtcGxhdGVGaWxlTW9kYWwoKSB7XG4gICAgdGhpcy5yZXBsYWNlRmlsZU1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnRhYlZpZXdDb250YWluZXJSZWYsICfmm7/mjaLmlofku7YnLCAnZGVmYXVsdCcsIHRoaXMucmVwbGFjZUZpbGVNb2RhbFRlbXBsYXRlLCB7fSk7XG4gIH1cblxuICByZXBsYWNlVGVtcGxhdGVGaWxlKHJldGFpbk1hcmtDb25maWc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJldGFpbk1hcmtDb25maWcgPSByZXRhaW5NYXJrQ29uZmlnO1xuICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIHRoaXMucmVwbGFjZUZpbGVNb2RhbD8uaGlkZSgpO1xuICB9XG5cbiAgZG93bmxvYWRUZW1wbGF0ZUZpbGUoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLndvcmREZXNpZ25lclNlcnZpY2UuZG93bmxvYWRUZW1wbGF0ZUZpbGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwgKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcmV2aWV3KCkge1xuICAgIGZvciAobGV0IG1hcmsgb2YgdGhpcy5zZXJ2aWNlLm1hcmtzKSB7XG4gICAgICBtYXJrLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnByZXZpZXdNb2RhbCA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy50YWJWaWV3Q29udGFpbmVyUmVmLCAn6aKE6KeIJywgJ2Z1bGwnLFxuICAgICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUsIHt9LCB0aGlzLnByZXZpZXdGb290ZXJUZW1wbGF0ZSk7XG4gIH1cblxuICBzYXZlQ29uZmlnKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zZXJ2aWNlLm1hcmtzLm1hcChtYXJrID0+IHtcbiAgICAgIGRlbGV0ZSBtYXJrLnZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS5zYXZlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHtcbiAgICAgIHRlbXBsYXRlQ29uZmlnOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxuICAgICAgICBtYXJrczogdGhpcy5zZXJ2aWNlLm1hcmtzXG4gICAgICB9KVxuICAgIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICBub3RpZnlTdWNjZXNzKCfkv53lrZjmiJDlip8nKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb3B5TWFya0NvbmZpZygpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmsudHlwZSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNvcGllZE1hcmsgPSBkZWVwQ2xvbmUodGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmspO1xuICAgICAgdGhpcy5wYXN0ZU1vZGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGV4aXRQYXN0ZU1vZGUoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNvcGllZE1hcmsgPSB7fTtcbiAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcyA9IFtdO1xuICAgIHRoaXMuc2VydmljZS5sYXN0Q2xpY2tUb1Bhc3RlTWFya05hbWUgPSAnJztcbiAgICB0aGlzLnBhc3RlTW9kZSA9IGZhbHNlO1xuICB9XG5cbiAgcGFzdGVNYXJrQ29uZmlnKCkge1xuICAgIGxldCByZWFkeVBhc3RlTWFyaztcbiAgICBmb3IgKGxldCByZWFkeVBhc3RlTWFya05hbWUgb2YgdGhpcy5zZXJ2aWNlLnJlYWR5UGFzdGVNYXJrTmFtZXMpIHtcbiAgICAgIHJlYWR5UGFzdGVNYXJrID0gdGhpcy5zZXJ2aWNlLmdldE1hcmsocmVhZHlQYXN0ZU1hcmtOYW1lKTtcbiAgICAgIGNvbnN0IGRpc3BsYXkgPSByZWFkeVBhc3RlTWFyay5kaXNwbGF5O1xuICAgICAgT2JqZWN0LmFzc2lnbihyZWFkeVBhc3RlTWFyaywgZGVlcENsb25lKHRoaXMuc2VydmljZS5jb3BpZWRNYXJrKSk7XG4gICAgICByZWFkeVBhc3RlTWFyay5uYW1lID0gcmVhZHlQYXN0ZU1hcmtOYW1lO1xuICAgICAgcmVhZHlQYXN0ZU1hcmsuZGlzcGxheSA9IGRpc3BsYXk7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5hY3RpdmVNYXJrID0gcmVhZHlQYXN0ZU1hcmsgfHwgdGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcms7XG4gICAgdGhpcy5leGl0UGFzdGVNb2RlKCk7XG4gIH1cbn1cbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIiBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XG48L2R4LWxvYWQtcGFuZWw+XG48aW5wdXQgI3VwbG9hZElucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIlxuICAgICAgIGFjY2VwdD1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCIgKGNoYW5nZSk9XCJ1cGxvYWQoKVwiXG4gICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiLz5cbjxkaXYgY2xhc3M9XCJjb2FzdC1jYXJkXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2FzdC1jYXJkLWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tYWluXCIgW2NsYXNzLnNob3ctdXBsb2FkLWJ0bl09XCJuZWVkVXBsb2FkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibmVlZFVwbG9hZFwiPlxuICAgICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuS4iuS8oOaWh+S7tlwiIChvbkNsaWNrKT1cInVwbG9hZElucHV0LmNsaWNrKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJsZWZ0LXBhbmVsXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwYXN0ZU1vZGVcIiBjbGFzcz1cInBhc3RlLW1vZGUtYmFyXCI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZVwiPuW3sui/m+WFpeaJuemHj+eymOi0tOmFjee9ruaooeW8j++8jOaUr+aMgUN0cmzjgIFTaGlmdOmUruW/q+aNt+mAieaLqe+8jOaMiUN0cmwrVue7hOWQiOmUrueymOi0tOmFjee9ru+8jOaMiUVzY+mUruWPlua2iOaTjeS9nOW5tumAgOWHuuivpeaooeW8jzwvc3Bhbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIFt3aWR0aF09XCI0OFwiIHRleHQ9XCLpgIDlh7pcIiAob25DbGljayk9XCJleGl0UGFzdGVNb2RlKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCJcbiAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJtb3VzZUluVmlld2VyID0gdHJ1ZTtcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlSW5WaWV3ZXIgPSBmYWxzZTtcIlxuICAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cInNjYWxlQnlNb3VzZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJ2aWV3ZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHJzLXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiIFtlZGl0TW9kZV09XCJ0cnVlXCIgW3Bhc3RlTW9kZV09XCJwYXN0ZU1vZGVcIj48L3JzLXNlY3Rpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhbmVlZFVwbG9hZFwiIGNsYXNzPVwicmlnaHQtcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDxkeC1idXR0b24gdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5pu/5o2i5paH5Lu2XCIgKG9uQ2xpY2spPVwib3BlblJlcGxhY2VUZW1wbGF0ZUZpbGVNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XG4gICAgICAgICAgPGR4LWJ1dHRvbiBpY29uPVwiY29hc3QtaWNvbiBjb2FzdC1pY29uLWRvd25sb2FkXCIgaGludD1cIuS4i+i9veaWh+S7tlwiXG4gICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkb3dubG9hZFRlbXBsYXRlRmlsZSgpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIGljb249XCJjb2FzdC1pY29uIGNvYXN0LWljb24tZGlyZWN0aW9uLXVwXCIgaGludD1cIuS4iuS4gOS4qihBbHQgKyDihpEpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNlcnZpY2Uuc3dpdGNoTWFyaygtMSlcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gaWNvbj1cImNvYXN0LWljb24gY29hc3QtaWNvbi1kaXJlY3Rpb24tZG93blwiIGhpbnQ9XCLkuIvkuIDkuKooQWx0ICsg4oaTKVwiXG4gICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzZXJ2aWNlLnN3aXRjaE1hcmsoMSlcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gW3R5cGVdPVwicGFzdGVNb2RlID8gJ3N1Y2Nlc3MnIDogJ2RlZmF1bHQnXCIgdGV4dD1cIuWkjeWItlwiIGhpbnQ9XCLlpI3liLYoQ3RybCArIGMpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImNvcHlNYXJrQ29uZmlnKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkYW5nZXJcIiB0ZXh0PVwi57KY6LS0XCIgaGludD1cIueymOi0tChDdHJsICsgdilcIiAob25DbGljayk9XCJwYXN0ZU1hcmtDb25maWcoKVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCAhcGFzdGVNb2RlXCI+PC9keC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnXCIgKm5nSWY9XCJzZXJ2aWNlLmFjdGl2ZU1hcmtcIj5cbiAgICAgICAgICA8cnMtbWFyay1jb25maWcgW3RlbmFudF09XCJ0ZW5hbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVDbGFzc05hbWVdPVwiY2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlT2lkXT1cIm9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnN0YW5jZUNsYXNzTmFtZV09XCJpbnN0YW5jZUNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDYXRlZ29yaWVzXT1cImZpbHRlckNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya109XCJzZXJ2aWNlLmFjdGl2ZU1hcmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya3NdPVwic2VydmljZS5tYXJrc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJWaWV3Q29udGFpbmVyUmVmXT1cInRhYlZpZXdDb250YWluZXJSZWZcIj48L3JzLW1hcmstY29uZmlnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJmb290ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi5pS+5aSnXCIgKG9uQ2xpY2spPVwic2NhbGUoMC4xKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi6L+Y5Y6fXCIgKG9uQ2xpY2spPVwic2NhbGUoMClcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdGV4dD1cIue8qeWwj1wiIChvbkNsaWNrKT1cInNjYWxlKC0wLjEpXCI+PC9keC1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIumihOiniFwiIChvbkNsaWNrKT1cInByZXZpZXcoKVwiIFtkaXNhYmxlZF09XCJuZWVkVXBsb2FkIHx8IGxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi5L+d5a2YXCIgKG9uQ2xpY2spPVwic2F2ZUNvbmZpZygpXCIgW2Rpc2FibGVkXT1cIm5lZWRVcGxvYWQgfHwgbG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNyZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjb25maXJtLW1lc3NhZ2VcIj5cbiAgICA8c3Bhbj7mm7/mjaLmlofku7blj6/ku6XmjInnhafkuabnrb7moIfor4bnu6fmib/lt7Lkv53lrZjnmoTkuabnrb7phY3nva7vvIzor7fpgInmi6nmk43kvZzvvJo8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiPlxuICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLnu6fmib/phY3nva5cIiAob25DbGljayk9XCJyZXBsYWNlVGVtcGxhdGVGaWxlKHRydWUpXCI+PC9keC1idXR0b24+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkYW5nZXJcIiB0ZXh0PVwi5riF6Zmk6YWN572uXCIgKG9uQ2xpY2spPVwicmVwbGFjZVRlbXBsYXRlRmlsZShmYWxzZSlcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlj5bmtohcIiAob25DbGljayk9XCJyZXBsYWNlRmlsZU1vZGFsPy5oaWRlKClcIj48L2R4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNwcmV2aWV3VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXZpZXdlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidmlld2VyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICA8cnMtc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9ycy1zZWN0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3ByZXZpZXdGb290ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tYnV0dG9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zLXdyYXBwZXJcIj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlhbPpl61cIiAob25DbGljayk9XCJwcmV2aWV3TW9kYWw/LmhpZGUoKVwiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|