ngx-rs-ant 2.3.7 → 2.3.9

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.
@@ -19,6 +19,7 @@ export class WordEditorComponent {
19
19
  this.templateFileAttribute = 'templateFile';
20
20
  this.templateConfigAttribute = 'templateConfig';
21
21
  this.generateFileAttribute = 'file';
22
+ this.generateFilenameConfig = [];
22
23
  this.showPullTemplateButton = true;
23
24
  this.showPullDataButton = true;
24
25
  this.showCalcButton = false;
@@ -110,10 +111,11 @@ export class WordEditorComponent {
110
111
  generateFile() {
111
112
  this.loading = true;
112
113
  this.wordEditorService.generateFile(this.tenant, this.className, this.oid, this.generateFileAttribute || 'file', this.templateFileAttribute, this.templateConfigAttribute, {
113
- [this.templateConfigAttribute]: JSON.stringify({
114
+ templateConfig: JSON.stringify({
114
115
  sections: this.sections,
115
116
  marks: this.service.marks
116
- })
117
+ }),
118
+ filenameConfig: this.generateFilenameConfig || []
117
119
  }, this.generateToTemp).subscribe(response => {
118
120
  this.loading = false;
119
121
  if (response.success) {
@@ -129,7 +131,7 @@ export class WordEditorComponent {
129
131
  }
130
132
  }
131
133
  WordEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, deps: [{ token: i1.SectionService }, { token: i2.WordEditorService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
132
- WordEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordEditorComponent, selector: "rs-word-editor", inputs: { tenant: "tenant", className: "className", oid: "oid", templateClassName: "templateClassName", defaultTemplateNumber: "defaultTemplateNumber", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", generateFileAttribute: "generateFileAttribute", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showSaveButton: "showSaveButton", showGenerateFileButton: "showGenerateFileButton", showCloseButton: "showCloseButton", generateToTemp: "generateToTemp", readonly: "readonly" }, outputs: { onSaved: "onSaved", onGenerated: "onGenerated", onClosed: "onClosed" }, providers: [WordEditorService], viewQueries: [{ propertyName: "validator", first: true, predicate: ["validator"], descendants: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i5.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: i6.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: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }, { kind: "component", type: i8.SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }] });
134
+ WordEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordEditorComponent, selector: "rs-word-editor", inputs: { tenant: "tenant", className: "className", oid: "oid", templateClassName: "templateClassName", defaultTemplateNumber: "defaultTemplateNumber", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", generateFileAttribute: "generateFileAttribute", generateFilenameConfig: "generateFilenameConfig", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showSaveButton: "showSaveButton", showGenerateFileButton: "showGenerateFileButton", showCloseButton: "showCloseButton", generateToTemp: "generateToTemp", readonly: "readonly" }, outputs: { onSaved: "onSaved", onGenerated: "onGenerated", onClosed: "onClosed" }, providers: [WordEditorService], viewQueries: [{ propertyName: "validator", first: true, predicate: ["validator"], descendants: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i5.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: i6.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: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }, { kind: "component", type: i8.SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }] });
133
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, decorators: [{
134
136
  type: Component,
135
137
  args: [{ selector: 'rs-word-editor', providers: [WordEditorService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"] }]
@@ -151,6 +153,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
151
153
  type: Input
152
154
  }], generateFileAttribute: [{
153
155
  type: Input
156
+ }], generateFilenameConfig: [{
157
+ type: Input
154
158
  }], params: [{
155
159
  type: Input
156
160
  }], tabViewContainerRef: [{
@@ -183,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
183
187
  type: ViewChild,
184
188
  args: ['validator']
185
189
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWVkaXRvci93b3JkLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZWRpdG9yL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxtQkFBbUI7SUFtRDlCLFlBQXNCLE9BQXVCLEVBQVUsaUJBQW9DLEVBQVksZ0JBQWtDO1FBQW5ILFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF2Q3pJLDRCQUF1QixHQUFRLGdCQUFnQixDQUFDO1FBRWhELDBCQUFxQixHQUFRLGNBQWMsQ0FBQztRQUU1Qyw0QkFBdUIsR0FBUSxnQkFBZ0IsQ0FBQztRQUVoRCwwQkFBcUIsR0FBUSxNQUFNLENBQUM7UUFNcEMsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRTlCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFdEIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRTlCLG9C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RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhci91aS92YWxpZGF0aW9uLWdyb3VwXCI7XHJcbmltcG9ydCB7V29yZEVkaXRvclNlcnZpY2V9IGZyb20gXCIuL3dvcmQtZWRpdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtub3RpZnlTdWNjZXNzLCB2YWxpZGF0ZUdyb3VwfSBmcm9tIFwiLi4vLi4vdXRpbC91dGlsc1wiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VjdGlvbi9zZWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtd29yZC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JkLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yZC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtXb3JkRWRpdG9yU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmRFZGl0b3JDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9pZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVDbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGRlZmF1bHRUZW1wbGF0ZU51bWJlcjogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVOdW1iZXJBdHRyaWJ1dGU6IGFueSA9ICd0ZW1wbGF0ZU51bWJlcic7XHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGU6IGFueSA9ICd0ZW1wbGF0ZUZpbGUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGU6IGFueSA9ICd0ZW1wbGF0ZUNvbmZpZyc7XHJcbiAgQElucHV0KClcclxuICBnZW5lcmF0ZUZpbGVBdHRyaWJ1dGU6IGFueSA9ICdmaWxlJztcclxuICBASW5wdXQoKVxyXG4gIHBhcmFtcz86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHRhYlZpZXdDb250YWluZXJSZWYhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBzaG93UHVsbFRlbXBsYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dQdWxsRGF0YUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzaG93Q2FsY0J1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1ZhbGlkYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dTYXZlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dHZW5lcmF0ZUZpbGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlVG9UZW1wID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkdlbmVyYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIHByb3RlY3RlZCBzZWN0aW9uczogYW55O1xyXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgndmFsaWRhdG9yJykgdmFsaWRhdG9yITogRHhWYWxpZGF0aW9uR3JvdXBDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBTZWN0aW9uU2VydmljZSwgcHJpdmF0ZSB3b3JkRWRpdG9yU2VydmljZTogV29yZEVkaXRvclNlcnZpY2UsIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5vaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRlbmFudCA9IHRoaXMudGVuYW50O1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlQ2xhc3NOYW1lID0gdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZTtcclxuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZUNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmluc3RhbmNlT2lkID0gdGhpcy5vaWQ7XHJcbiAgICB0aGlzLnNlcnZpY2UucGFyYW1zID0gdGhpcy5wYXJhbXM7XHJcbiAgICB0aGlzLnNlcnZpY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IHRoaXMudGFiVmlld0NvbnRhaW5lclJlZjtcclxuICAgIHRoaXMuc2VydmljZS5yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5sb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsXHJcbiAgICAgIHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICB0aGlzLm9pZCxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICB0aGlzLnNlcnZpY2UubWFya3MgPSByZXNwb25zZS5tYXJrcztcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlVXBkYXRlZC51bnN1YnNjcmliZSgpO1xyXG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVsbFRlbXBsYXRlKCkge1xyXG4gICAgaWYgKGNvbmZpcm0oJ+ivpeaTjeS9nOS8mua4hemZpOW3suW9leWFpeeahOaVsOaNru+8jOehruWumumHjeaWsOaLieWPluaooeadv+mFjee9ru+8nycpKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UucmVsb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsXHJcbiAgICAgICAgdGhpcy5jbGFzc05hbWUsXHJcbiAgICAgICAgdGhpcy5vaWQsXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZSxcclxuICAgICAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZU51bWJlcixcclxuICAgICAgICB0aGlzLnRlbXBsYXRlTnVtYmVyQXR0cmlidXRlLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVGaWxlQXR0cmlidXRlLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLmRhdGE/LnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5tYXJrcyA9IHJlc3BvbnNlLmRhdGEubWFya3M7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVsbERhdGEoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5wdWxsRGF0YSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCB7XHJcbiAgICAgIG1hcmtzOiBKU09OLnN0cmluZ2lmeSh0aGlzLnNlcnZpY2UubWFya3MpXHJcbiAgICB9KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICBmb3IgKGxldCBtYXJrIG9mIHRoaXMuc2VydmljZS5tYXJrcykge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmhhc093blByb3BlcnR5KG1hcmsubmFtZSkpIHtcclxuICAgICAgICAgIG1hcmsudmFsdWUgPSByZXNwb25zZS5kYXRhW21hcmsubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQuZW1pdCgpO1xyXG4gICAgICB0aGlzLnNlcnZpY2UudmFsdWVDaGFuZ2VkLmVtaXQoKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+aLieWPluWujOaIkCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYWxjKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKCkge1xyXG4gICAgdmFsaWRhdGVHcm91cCh0aGlzLnZhbGlkYXRvcikudGhlbigpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBtb2RlbCA9IHtcclxuICAgICAgW3RoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICB9KVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmdlbmVyYXRlVG9UZW1wKSB7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+S/neWtmOaIkOWKnycpO1xyXG4gICAgICB0aGlzLm9uU2F2ZWQuZW1pdChtb2RlbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2Uuc2F2ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCBtb2RlbCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7XHJcbiAgICAgICAgdGhpcy5vblNhdmVkLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUZpbGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5nZW5lcmF0ZUZpbGUoXHJcbiAgICAgIHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVGaWxlQXR0cmlidXRlIHx8ICdmaWxlJyxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUsXHJcbiAgICAgIHtcclxuICAgICAgICBbdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZV06IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxyXG4gICAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVUb1RlbXBcclxuICAgICkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn55Sf5oiQ6ZmE5Lu25oiQ5YqfJyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2VuZXJhdGVUb1RlbXApIHtcclxuICAgICAgICAgIHRoaXMub25HZW5lcmF0ZWQuZW1pdChyZXNwb25zZS5kYXRhKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5vbkdlbmVyYXRlZC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGR4LWxvYWQtcGFuZWwgW2NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiIFtzaG93UGFuZV09XCJmYWxzZVwiIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cclxuICA8ZHhvLXBvc2l0aW9uIFtvZl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiPjwvZHhvLXBvc2l0aW9uPlxyXG48L2R4LWxvYWQtcGFuZWw+XHJcbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHlcIiBjbGFzcz1cImJhciBoZWFkZXJcIj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1B1bGxUZW1wbGF0ZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuabtOaWsOaooeadv1wiIChvbkNsaWNrKT1cInB1bGxUZW1wbGF0ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dQdWxsRGF0YUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuWhq+WFheaVsOaNrlwiIChvbkNsaWNrKT1cInB1bGxEYXRhKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0NhbGNCdXR0b25cIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmiafooYzorqHnrpdcIiAob25DbGljayk9XCJjYWxjKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1ZhbGlkYXRlQnV0dG9uXCIgdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5omn6KGM5qCh6aqMXCIgKG9uQ2xpY2spPVwidmFsaWRhdGUoKVwiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG48L2Rpdj5cclxuPGR4LXZhbGlkYXRpb24tZ3JvdXAgW2NsYXNzLnZhbGlkYXRpb24tZ3JvdXBdPVwidHJ1ZVwiICN2YWxpZGF0b3I+XHJcbiAgPGRpdiBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uc1wiPlxyXG4gICAgICAgIDxycy1zZWN0aW9uIFtzZWN0aW9uXT1cInNlY3Rpb25cIj48L3JzLXNlY3Rpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZHgtdmFsaWRhdGlvbi1ncm91cD5cclxuPGRpdiAqbmdJZj1cIiFyZWFkb25seSB8fCBzaG93Q2xvc2VCdXR0b25cIiBjbGFzcz1cImJhciBmb290ZXJcIj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwiIXJlYWRvbmx5ICYmIHNob3dTYXZlQnV0dG9uXCIgdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5L+d5a2YXCIgKG9uQ2xpY2spPVwic2F2ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seSAmJiBzaG93R2VuZXJhdGVGaWxlQnV0dG9uXCIgdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi55Sf5oiQ6ZmE5Lu2XCIgKG9uQ2xpY2spPVwiZ2VuZXJhdGVGaWxlKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCIgdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlhbPpl61cIiAob25DbGljayk9XCJvbkNsb3NlZC5lbWl0KClcIj48L2R4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWVkaXRvci93b3JkLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZWRpdG9yL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxtQkFBbUI7SUFxRDlCLFlBQXNCLE9BQXVCLEVBQVUsaUJBQW9DLEVBQVksZ0JBQWtDO1FBQW5ILFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6Q3pJLDRCQUF1QixHQUFRLGdCQUFnQixDQUFDO1FBRWhELDBCQUFxQixHQUFRLGNBQWMsQ0FBQztRQUU1Qyw0QkFBdUIsR0FBUSxnQkFBZ0IsQ0FBQztRQUVoRCwwQkFBcUIsR0FBUSxNQUFNLENBQUM7UUFFcEMsMkJBQXNCLEdBQVUsRUFBRSxDQUFDO1FBTW5DLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUU5Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRXRCLDJC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QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0R4VmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL3ZhbGlkYXRpb24tZ3JvdXBcIjtcclxuaW1wb3J0IHtXb3JkRWRpdG9yU2VydmljZX0gZnJvbSBcIi4vd29yZC1lZGl0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge25vdGlmeVN1Y2Nlc3MsIHZhbGlkYXRlR3JvdXB9IGZyb20gXCIuLi8uLi91dGlsL3V0aWxzXCI7XHJcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZWN0aW9uL3NlY3Rpb24uc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy13b3JkLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JkLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1dvcmRFZGl0b3JTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29yZEVkaXRvckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICB0ZW5hbnQ6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGNsYXNzTmFtZTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgb2lkOiBhbnk7XHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZUNsYXNzTmFtZTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVmYXVsdFRlbXBsYXRlTnVtYmVyOiBhbnk7XHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZU51bWJlckF0dHJpYnV0ZTogYW55ID0gJ3RlbXBsYXRlTnVtYmVyJztcclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlRmlsZUF0dHJpYnV0ZTogYW55ID0gJ3RlbXBsYXRlRmlsZSc7XHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZTogYW55ID0gJ3RlbXBsYXRlQ29uZmlnJztcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55ID0gJ2ZpbGUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2VuZXJhdGVGaWxlbmFtZUNvbmZpZzogYW55W10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHBhcmFtcz86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHRhYlZpZXdDb250YWluZXJSZWYhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBzaG93UHVsbFRlbXBsYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dQdWxsRGF0YUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzaG93Q2FsY0J1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1ZhbGlkYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dTYXZlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dHZW5lcmF0ZUZpbGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlVG9UZW1wID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkdlbmVyYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIHByb3RlY3RlZCBzZWN0aW9uczogYW55O1xyXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgndmFsaWRhdG9yJykgdmFsaWRhdG9yITogRHhWYWxpZGF0aW9uR3JvdXBDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBTZWN0aW9uU2VydmljZSwgcHJpdmF0ZSB3b3JkRWRpdG9yU2VydmljZTogV29yZEVkaXRvclNlcnZpY2UsIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5vaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRlbmFudCA9IHRoaXMudGVuYW50O1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlQ2xhc3NOYW1lID0gdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZTtcclxuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZUNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmluc3RhbmNlT2lkID0gdGhpcy5vaWQ7XHJcbiAgICB0aGlzLnNlcnZpY2UucGFyYW1zID0gdGhpcy5wYXJhbXM7XHJcbiAgICB0aGlzLnNlcnZpY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IHRoaXMudGFiVmlld0NvbnRhaW5lclJlZjtcclxuICAgIHRoaXMuc2VydmljZS5yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5sb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsXHJcbiAgICAgIHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICB0aGlzLm9pZCxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICB0aGlzLnNlcnZpY2UubWFya3MgPSByZXNwb25zZS5tYXJrcztcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlVXBkYXRlZC51bnN1YnNjcmliZSgpO1xyXG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVsbFRlbXBsYXRlKCkge1xyXG4gICAgaWYgKGNvbmZpcm0oJ+ivpeaTjeS9nOS8mua4hemZpOW3suW9leWFpeeahOaVsOaNru+8jOehruWumumHjeaWsOaLieWPluaooeadv+mFjee9ru+8nycpKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UucmVsb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsXHJcbiAgICAgICAgdGhpcy5jbGFzc05hbWUsXHJcbiAgICAgICAgdGhpcy5vaWQsXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZSxcclxuICAgICAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZU51bWJlcixcclxuICAgICAgICB0aGlzLnRlbXBsYXRlTnVtYmVyQXR0cmlidXRlLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVGaWxlQXR0cmlidXRlLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLmRhdGE/LnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5tYXJrcyA9IHJlc3BvbnNlLmRhdGEubWFya3M7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVsbERhdGEoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5wdWxsRGF0YSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCB7XHJcbiAgICAgIG1hcmtzOiBKU09OLnN0cmluZ2lmeSh0aGlzLnNlcnZpY2UubWFya3MpXHJcbiAgICB9KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICBmb3IgKGxldCBtYXJrIG9mIHRoaXMuc2VydmljZS5tYXJrcykge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmhhc093blByb3BlcnR5KG1hcmsubmFtZSkpIHtcclxuICAgICAgICAgIG1hcmsudmFsdWUgPSByZXNwb25zZS5kYXRhW21hcmsubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQuZW1pdCgpO1xyXG4gICAgICB0aGlzLnNlcnZpY2UudmFsdWVDaGFuZ2VkLmVtaXQoKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+aLieWPluWujOaIkCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYWxjKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKCkge1xyXG4gICAgdmFsaWRhdGVHcm91cCh0aGlzLnZhbGlkYXRvcikudGhlbigpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBtb2RlbCA9IHtcclxuICAgICAgW3RoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICB9KVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmdlbmVyYXRlVG9UZW1wKSB7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+S/neWtmOaIkOWKnycpO1xyXG4gICAgICB0aGlzLm9uU2F2ZWQuZW1pdChtb2RlbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2Uuc2F2ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCBtb2RlbCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7XHJcbiAgICAgICAgdGhpcy5vblNhdmVkLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUZpbGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5nZW5lcmF0ZUZpbGUoXHJcbiAgICAgIHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVGaWxlQXR0cmlidXRlIHx8ICdmaWxlJyxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUsXHJcbiAgICAgIHtcclxuICAgICAgICB0ZW1wbGF0ZUNvbmZpZzogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgICBtYXJrczogdGhpcy5zZXJ2aWNlLm1hcmtzXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsZW5hbWVDb25maWc6IHRoaXMuZ2VuZXJhdGVGaWxlbmFtZUNvbmZpZyB8fCBbXVxyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmdlbmVyYXRlVG9UZW1wXHJcbiAgICApLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+eUn+aIkOmZhOS7tuaIkOWKnycpO1xyXG4gICAgICAgIGlmICh0aGlzLmdlbmVyYXRlVG9UZW1wKSB7XHJcbiAgICAgICAgICB0aGlzLm9uR2VuZXJhdGVkLmVtaXQocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMub25HZW5lcmF0ZWQuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIiBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XHJcbiAgPGR4by1wb3NpdGlvbiBbb2ZdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIj48L2R4by1wb3NpdGlvbj5cclxuPC9keC1sb2FkLXBhbmVsPlxyXG48ZGl2ICpuZ0lmPVwiIXJlYWRvbmx5XCIgY2xhc3M9XCJiYXIgaGVhZGVyXCI+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dQdWxsVGVtcGxhdGVCdXR0b25cIiB0eXBlPVwic3VjY2Vzc1wiIHRleHQ9XCLmm7TmlrDmqKHmnb9cIiAob25DbGljayk9XCJwdWxsVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCJzaG93UHVsbERhdGFCdXR0b25cIiB0eXBlPVwic3VjY2Vzc1wiIHRleHQ9XCLloavlhYXmlbDmja5cIiAob25DbGljayk9XCJwdWxsRGF0YSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dDYWxjQnV0dG9uXCIgdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5omn6KGM6K6h566XXCIgKG9uQ2xpY2spPVwiY2FsYygpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dWYWxpZGF0ZUJ1dHRvblwiIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIuaJp+ihjOagoemqjFwiIChvbkNsaWNrKT1cInZhbGlkYXRlKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbjxkeC12YWxpZGF0aW9uLWdyb3VwIFtjbGFzcy52YWxpZGF0aW9uLWdyb3VwXT1cInRydWVcIiAjdmFsaWRhdG9yPlxyXG4gIDxkaXYgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidmlld2VyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cclxuICAgICAgICA8cnMtc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9ycy1zZWN0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2R4LXZhbGlkYXRpb24tZ3JvdXA+XHJcbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHkgfHwgc2hvd0Nsb3NlQnV0dG9uXCIgY2xhc3M9XCJiYXIgZm9vdGVyXCI+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seSAmJiBzaG93U2F2ZUJ1dHRvblwiIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIuS/neWtmFwiIChvbkNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCIhcmVhZG9ubHkgJiYgc2hvd0dlbmVyYXRlRmlsZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIueUn+aIkOmZhOS7tlwiIChvbkNsaWNrKT1cImdlbmVyYXRlRmlsZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiIHR5cGU9XCJub3JtYWxcIiB0ZXh0PVwi5YWz6ZetXCIgKG9uQ2xpY2spPVwib25DbG9zZWQuZW1pdCgpXCI+PC9keC1idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -50,8 +50,8 @@ export class WordEditorService {
50
50
  }
51
51
  });
52
52
  }
53
- generateFile(tenant, className, oid, generateFileAttribute, templateFileAttribute, templateConfigAttribute, model, generateToTemp) {
54
- return this.http.post('api/data/custom', model, {
53
+ generateFile(tenant, className, oid, generateFileAttribute, templateFileAttribute, templateConfigAttribute, data, generateToTemp) {
54
+ return this.http.post('api/data/custom', data, {
55
55
  params: {
56
56
  executor: 'com.cs.system.word.editor.GenerateFile',
57
57
  tenant,
@@ -70,4 +70,4 @@ WordEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorService, decorators: [{
71
71
  type: Injectable
72
72
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvd29yZC1lZGl0b3Ivd29yZC1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7OztBQUdyQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSx1QkFBNEI7UUFDOUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDN0QsTUFBTSxFQUFFO2dCQUNOLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSxLQUFVO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sV0FBVyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNyRSxNQUFNLEVBQUU7Z0JBQ04sTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFXLEVBQ1gsU0FBYyxFQUNkLEdBQVEsRUFDUixpQkFBc0IsRUFDdEIscUJBQTBCLEVBQzFCLHVCQUE0QixFQUM1QixxQkFBMEIsRUFDMUIsdUJBQTRCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0saUJBQWlCLEVBQUU7WUFDM0MsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSwwQ0FBMEM7Z0JBQ3BELE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2dCQUNILGlCQUFpQjtnQkFDakIscUJBQXFCO2dCQUNyQix1QkFBdUI7Z0JBQ3ZCLHFCQUFxQjtnQkFDckIsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSxLQUFVO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0saUJBQWlCLEVBQUUsS0FBSyxFQUFFO1lBQ25ELE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsb0NBQW9DO2dCQUM5QyxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsR0FBRzthQUNKO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQ1gsU0FBYyxFQUNkLEdBQVEsRUFDUixxQkFBMEIsRUFDMUIscUJBQTBCLEVBQzFCLHVCQUE0QixFQUM1QixLQUFVLEVBQ1YsY0FBdUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRSxLQUFLLEVBQUU7WUFDbkQsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSx3Q0FBd0M7Z0JBQ2xELE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2dCQUNILHFCQUFxQjtnQkFDckIscUJBQXFCO2dCQUNyQix1QkFBdUI7Z0JBQ3ZCLGNBQWM7YUFDZjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQWpGVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdvcmRFZGl0b3JTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIH1cblxuICBsb2FkVGVtcGxhdGUodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCBvaWQ6IGFueSwgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXBpL2RhdGEvJyArIGNsYXNzTmFtZSArICcvJyArIG9pZCwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRlbmFudFxuICAgICAgfVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YT8uW3RlbXBsYXRlQ29uZmlnQXR0cmlidXRlXSkge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3BvbnNlLmRhdGFbdGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge307XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlKHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnksIG1vZGVsOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PignYXBpL2RhdGEvJyArIGNsYXNzTmFtZSArICcvJyArIG9pZCwgbW9kZWwsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnRcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlbG9hZFRlbXBsYXRlKHRlbmFudDogYW55LFxuICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGFueSxcbiAgICAgICAgICAgICAgICAgb2lkOiBhbnksXG4gICAgICAgICAgICAgICAgIHRlbXBsYXRlQ2xhc3NOYW1lOiBhbnksXG4gICAgICAgICAgICAgICAgIGRlZmF1bHRUZW1wbGF0ZU51bWJlcjogYW55LFxuICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU51bWJlckF0dHJpYnV0ZTogYW55LFxuICAgICAgICAgICAgICAgICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGU6IGFueSxcbiAgICAgICAgICAgICAgICAgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXBpL2RhdGEvY3VzdG9tJywge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGV4ZWN1dG9yOiAnY29tLmNzLnN5c3RlbS53b3JkLmVkaXRvci5SZWxvYWRUZW1wbGF0ZScsXG4gICAgICAgIHRlbmFudCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvaWQsXG4gICAgICAgIHRlbXBsYXRlQ2xhc3NOYW1lLFxuICAgICAgICBkZWZhdWx0VGVtcGxhdGVOdW1iZXIsXG4gICAgICAgIHRlbXBsYXRlTnVtYmVyQXR0cmlidXRlLFxuICAgICAgICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXG4gICAgICAgIHRlbXBsYXRlQ29uZmlnQXR0cmlidXRlXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWxsRGF0YSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG9pZDogYW55LCBtYXJrczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oJ2FwaS9kYXRhL2N1c3RvbScsIG1hcmtzLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZXhlY3V0b3I6ICdjb20uY3Muc3lzdGVtLndvcmQuZWRpdG9yLlB1bGxEYXRhJyxcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIG9pZFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2VuZXJhdGVGaWxlKHRlbmFudDogYW55LFxuICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBhbnksXG4gICAgICAgICAgICAgICBvaWQ6IGFueSxcbiAgICAgICAgICAgICAgIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55LFxuICAgICAgICAgICAgICAgdGVtcGxhdGVGaWxlQXR0cmlidXRlOiBhbnksXG4gICAgICAgICAgICAgICB0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZTogYW55LFxuICAgICAgICAgICAgICAgbW9kZWw6IGFueSxcbiAgICAgICAgICAgICAgIGdlbmVyYXRlVG9UZW1wOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oJ2FwaS9kYXRhL2N1c3RvbScsIG1vZGVsLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZXhlY3V0b3I6ICdjb20uY3Muc3lzdGVtLndvcmQuZWRpdG9yLkdlbmVyYXRlRmlsZScsXG4gICAgICAgIHRlbmFudCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvaWQsXG4gICAgICAgIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZSxcbiAgICAgICAgdGVtcGxhdGVGaWxlQXR0cmlidXRlLFxuICAgICAgICB0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZSxcbiAgICAgICAgZ2VuZXJhdGVUb1RlbXBcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvd29yZC1lZGl0b3Ivd29yZC1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7OztBQUdyQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSx1QkFBNEI7UUFDOUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDN0QsTUFBTSxFQUFFO2dCQUNOLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSxLQUFVO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sV0FBVyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNyRSxNQUFNLEVBQUU7Z0JBQ04sTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFXLEVBQ1gsU0FBYyxFQUNkLEdBQVEsRUFDUixpQkFBc0IsRUFDdEIscUJBQTBCLEVBQzFCLHVCQUE0QixFQUM1QixxQkFBMEIsRUFDMUIsdUJBQTRCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0saUJBQWlCLEVBQUU7WUFDM0MsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSwwQ0FBMEM7Z0JBQ3BELE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2dCQUNILGlCQUFpQjtnQkFDakIscUJBQXFCO2dCQUNyQix1QkFBdUI7Z0JBQ3ZCLHFCQUFxQjtnQkFDckIsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSxLQUFVO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0saUJBQWlCLEVBQUUsS0FBSyxFQUFFO1lBQ25ELE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsb0NBQW9DO2dCQUM5QyxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsR0FBRzthQUNKO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQ1gsU0FBYyxFQUNkLEdBQVEsRUFDUixxQkFBMEIsRUFDMUIscUJBQTBCLEVBQzFCLHVCQUE0QixFQUM1QixJQUFTLEVBQ1QsY0FBdUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRSxJQUFJLEVBQUU7WUFDbEQsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSx3Q0FBd0M7Z0JBQ2xELE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2dCQUNILHFCQUFxQjtnQkFDckIscUJBQXFCO2dCQUNyQix1QkFBdUI7Z0JBQ3ZCLGNBQWM7YUFDZjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQWpGVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdvcmRFZGl0b3JTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIH1cblxuICBsb2FkVGVtcGxhdGUodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCBvaWQ6IGFueSwgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXBpL2RhdGEvJyArIGNsYXNzTmFtZSArICcvJyArIG9pZCwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRlbmFudFxuICAgICAgfVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YT8uW3RlbXBsYXRlQ29uZmlnQXR0cmlidXRlXSkge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3BvbnNlLmRhdGFbdGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge307XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlKHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnksIG1vZGVsOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PignYXBpL2RhdGEvJyArIGNsYXNzTmFtZSArICcvJyArIG9pZCwgbW9kZWwsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnRcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlbG9hZFRlbXBsYXRlKHRlbmFudDogYW55LFxuICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGFueSxcbiAgICAgICAgICAgICAgICAgb2lkOiBhbnksXG4gICAgICAgICAgICAgICAgIHRlbXBsYXRlQ2xhc3NOYW1lOiBhbnksXG4gICAgICAgICAgICAgICAgIGRlZmF1bHRUZW1wbGF0ZU51bWJlcjogYW55LFxuICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU51bWJlckF0dHJpYnV0ZTogYW55LFxuICAgICAgICAgICAgICAgICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGU6IGFueSxcbiAgICAgICAgICAgICAgICAgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXBpL2RhdGEvY3VzdG9tJywge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGV4ZWN1dG9yOiAnY29tLmNzLnN5c3RlbS53b3JkLmVkaXRvci5SZWxvYWRUZW1wbGF0ZScsXG4gICAgICAgIHRlbmFudCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvaWQsXG4gICAgICAgIHRlbXBsYXRlQ2xhc3NOYW1lLFxuICAgICAgICBkZWZhdWx0VGVtcGxhdGVOdW1iZXIsXG4gICAgICAgIHRlbXBsYXRlTnVtYmVyQXR0cmlidXRlLFxuICAgICAgICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXG4gICAgICAgIHRlbXBsYXRlQ29uZmlnQXR0cmlidXRlXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWxsRGF0YSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG9pZDogYW55LCBtYXJrczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oJ2FwaS9kYXRhL2N1c3RvbScsIG1hcmtzLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZXhlY3V0b3I6ICdjb20uY3Muc3lzdGVtLndvcmQuZWRpdG9yLlB1bGxEYXRhJyxcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIG9pZFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2VuZXJhdGVGaWxlKHRlbmFudDogYW55LFxuICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBhbnksXG4gICAgICAgICAgICAgICBvaWQ6IGFueSxcbiAgICAgICAgICAgICAgIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55LFxuICAgICAgICAgICAgICAgdGVtcGxhdGVGaWxlQXR0cmlidXRlOiBhbnksXG4gICAgICAgICAgICAgICB0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZTogYW55LFxuICAgICAgICAgICAgICAgZGF0YTogYW55LFxuICAgICAgICAgICAgICAgZ2VuZXJhdGVUb1RlbXA6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PignYXBpL2RhdGEvY3VzdG9tJywgZGF0YSwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGV4ZWN1dG9yOiAnY29tLmNzLnN5c3RlbS53b3JkLmVkaXRvci5HZW5lcmF0ZUZpbGUnLFxuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgb2lkLFxuICAgICAgICBnZW5lcmF0ZUZpbGVBdHRyaWJ1dGUsXG4gICAgICAgIHRlbXBsYXRlRmlsZUF0dHJpYnV0ZSxcbiAgICAgICAgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGUsXG4gICAgICAgIGdlbmVyYXRlVG9UZW1wXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -5010,8 +5010,8 @@ class WordEditorService {
5010
5010
  }
5011
5011
  });
5012
5012
  }
5013
- generateFile(tenant, className, oid, generateFileAttribute, templateFileAttribute, templateConfigAttribute, model, generateToTemp) {
5014
- return this.http.post('api/data/custom', model, {
5013
+ generateFile(tenant, className, oid, generateFileAttribute, templateFileAttribute, templateConfigAttribute, data, generateToTemp) {
5014
+ return this.http.post('api/data/custom', data, {
5015
5015
  params: {
5016
5016
  executor: 'com.cs.system.word.editor.GenerateFile',
5017
5017
  tenant,
@@ -5040,6 +5040,7 @@ class WordEditorComponent {
5040
5040
  this.templateFileAttribute = 'templateFile';
5041
5041
  this.templateConfigAttribute = 'templateConfig';
5042
5042
  this.generateFileAttribute = 'file';
5043
+ this.generateFilenameConfig = [];
5043
5044
  this.showPullTemplateButton = true;
5044
5045
  this.showPullDataButton = true;
5045
5046
  this.showCalcButton = false;
@@ -5132,10 +5133,11 @@ class WordEditorComponent {
5132
5133
  generateFile() {
5133
5134
  this.loading = true;
5134
5135
  this.wordEditorService.generateFile(this.tenant, this.className, this.oid, this.generateFileAttribute || 'file', this.templateFileAttribute, this.templateConfigAttribute, {
5135
- [this.templateConfigAttribute]: JSON.stringify({
5136
+ templateConfig: JSON.stringify({
5136
5137
  sections: this.sections,
5137
5138
  marks: this.service.marks
5138
- })
5139
+ }),
5140
+ filenameConfig: this.generateFilenameConfig || []
5139
5141
  }, this.generateToTemp).subscribe(response => {
5140
5142
  this.loading = false;
5141
5143
  if (response.success) {
@@ -5151,7 +5153,7 @@ class WordEditorComponent {
5151
5153
  }
5152
5154
  }
5153
5155
  WordEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, deps: [{ token: SectionService }, { token: WordEditorService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
5154
- WordEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordEditorComponent, selector: "rs-word-editor", inputs: { tenant: "tenant", className: "className", oid: "oid", templateClassName: "templateClassName", defaultTemplateNumber: "defaultTemplateNumber", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", generateFileAttribute: "generateFileAttribute", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showSaveButton: "showSaveButton", showGenerateFileButton: "showGenerateFileButton", showCloseButton: "showCloseButton", generateToTemp: "generateToTemp", readonly: "readonly" }, outputs: { onSaved: "onSaved", onGenerated: "onGenerated", onClosed: "onClosed" }, providers: [WordEditorService], viewQueries: [{ propertyName: "validator", first: true, predicate: ["validator"], descendants: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i3.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: i6$1.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: i7$1.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }, { kind: "component", type: SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }] });
5156
+ WordEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordEditorComponent, selector: "rs-word-editor", inputs: { tenant: "tenant", className: "className", oid: "oid", templateClassName: "templateClassName", defaultTemplateNumber: "defaultTemplateNumber", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", generateFileAttribute: "generateFileAttribute", generateFilenameConfig: "generateFilenameConfig", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showSaveButton: "showSaveButton", showGenerateFileButton: "showGenerateFileButton", showCloseButton: "showCloseButton", generateToTemp: "generateToTemp", readonly: "readonly" }, outputs: { onSaved: "onSaved", onGenerated: "onGenerated", onClosed: "onClosed" }, providers: [WordEditorService], viewQueries: [{ propertyName: "validator", first: true, predicate: ["validator"], descendants: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i3.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: i6$1.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: i7$1.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }, { kind: "component", type: SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }] });
5155
5157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, decorators: [{
5156
5158
  type: Component,
5157
5159
  args: [{ selector: 'rs-word-editor', providers: [WordEditorService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"] }]
@@ -5173,6 +5175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5173
5175
  type: Input
5174
5176
  }], generateFileAttribute: [{
5175
5177
  type: Input
5178
+ }], generateFilenameConfig: [{
5179
+ type: Input
5176
5180
  }], params: [{
5177
5181
  type: Input
5178
5182
  }], tabViewContainerRef: [{