ngx-rs-ant 2.3.3 → 2.3.5

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.
@@ -15,11 +15,15 @@ export class WordEditorComponent {
15
15
  this.service = service;
16
16
  this.wordEditorService = wordEditorService;
17
17
  this.viewContainerRef = viewContainerRef;
18
+ this.templateNumberAttribute = 'templateNumber';
19
+ this.templateFileAttribute = 'templateFile';
20
+ this.templateConfigAttribute = 'templateConfig';
18
21
  this.showPullTemplateButton = true;
19
22
  this.showPullDataButton = true;
20
23
  this.showCalcButton = true;
21
24
  this.showValidateButton = true;
22
25
  this.showGenerateFileButton = true;
26
+ this.generateFileAttribute = 'file';
23
27
  this.showCloseButton = true;
24
28
  this.readonly = false;
25
29
  this.onSaved = new EventEmitter();
@@ -39,7 +43,7 @@ export class WordEditorComponent {
39
43
  this.service.tabViewContainerRef = this.tabViewContainerRef;
40
44
  this.service.readonly = this.readonly;
41
45
  this.loading = true;
42
- this.wordEditorService.loadTemplate(this.tenant, this.className, this.oid).subscribe(response => {
46
+ this.wordEditorService.loadTemplate(this.tenant, this.className, this.oid, this.templateConfigAttribute).subscribe(response => {
43
47
  this.sections = response.sections || [];
44
48
  this.service.marks = response.marks;
45
49
  this.loading = false;
@@ -52,7 +56,7 @@ export class WordEditorComponent {
52
56
  pullTemplate() {
53
57
  if (confirm('该操作会清除已录入的数据,确定重新拉取模板配置?')) {
54
58
  this.loading = true;
55
- this.wordEditorService.reloadTemplate(this.tenant, this.className, this.oid, this.templateClassName).subscribe(response => {
59
+ this.wordEditorService.reloadTemplate(this.tenant, this.className, this.oid, this.templateClassName, this.templateNumberAttribute, this.templateFileAttribute, this.templateConfigAttribute).subscribe(response => {
56
60
  this.sections = response.data?.sections || [];
57
61
  this.service.marks = response.data.marks;
58
62
  this.loading = false;
@@ -83,7 +87,7 @@ export class WordEditorComponent {
83
87
  save() {
84
88
  this.loading = true;
85
89
  this.wordEditorService.save(this.tenant, this.className, this.oid, {
86
- templateConfig: JSON.stringify({
90
+ [this.templateConfigAttribute]: JSON.stringify({
87
91
  sections: this.sections,
88
92
  marks: this.service.marks
89
93
  })
@@ -97,8 +101,8 @@ export class WordEditorComponent {
97
101
  }
98
102
  generateFile() {
99
103
  this.loading = true;
100
- this.wordEditorService.generateFile(this.tenant, this.className, this.oid, this.generateFileAttribute || 'file', this.generateFileName || '', {
101
- templateConfig: JSON.stringify({
104
+ this.wordEditorService.generateFile(this.tenant, this.className, this.oid, this.generateFileAttribute || 'file', this.templateFileAttribute, this.templateConfigAttribute, {
105
+ [this.templateConfigAttribute]: JSON.stringify({
102
106
  sections: this.sections,
103
107
  marks: this.service.marks
104
108
  })
@@ -112,7 +116,7 @@ export class WordEditorComponent {
112
116
  }
113
117
  }
114
118
  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 });
115
- 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", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showGenerateFileButton: "showGenerateFileButton", generateFileAttribute: "generateFileAttribute", generateFileName: "generateFileName", showCloseButton: "showCloseButton", 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 class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\" [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"] }] });
119
+ 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", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showGenerateFileButton: "showGenerateFileButton", generateFileAttribute: "generateFileAttribute", showCloseButton: "showCloseButton", 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 class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\" [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"] }] });
116
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, decorators: [{
117
121
  type: Component,
118
122
  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 class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\" [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"] }]
@@ -124,6 +128,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
124
128
  type: Input
125
129
  }], templateClassName: [{
126
130
  type: Input
131
+ }], templateNumberAttribute: [{
132
+ type: Input
133
+ }], templateFileAttribute: [{
134
+ type: Input
135
+ }], templateConfigAttribute: [{
136
+ type: Input
127
137
  }], params: [{
128
138
  type: Input
129
139
  }], tabViewContainerRef: [{
@@ -140,8 +150,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
140
150
  type: Input
141
151
  }], generateFileAttribute: [{
142
152
  type: Input
143
- }], generateFileName: [{
144
- type: Input
145
153
  }], showCloseButton: [{
146
154
  type: Input
147
155
  }], readonly: [{
@@ -156,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
156
164
  type: ViewChild,
157
165
  args: ['validator']
158
166
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWVkaXRvci93b3JkLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZWRpdG9yL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxtQkFBbUI7SUF5QzlCLFlBQXNCLE9BQXVCLEVBQVUsaUJBQW9DLEVBQVksZ0JBQWtDO1FBQW5ILFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEzQnpJLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUU5Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFdEIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRTFCLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQU05QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRW5DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxZQUFZ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cEIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sTUFBTTtnQkFHUCxXQUFXO3NCQURWLE1BQU07Z0JBR1AsUUFBUTtzQkFEUCxNQUFNO2dCQUlpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0R4VmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL3ZhbGlkYXRpb24tZ3JvdXBcIjtcclxuaW1wb3J0IHtXb3JkRWRpdG9yU2VydmljZX0gZnJvbSBcIi4vd29yZC1lZGl0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge25vdGlmeVN1Y2Nlc3MsIHZhbGlkYXRlR3JvdXB9IGZyb20gXCIuLi8uLi91dGlsL3V0aWxzXCI7XHJcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZWN0aW9uL3NlY3Rpb24uc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy13b3JkLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JkLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1dvcmRFZGl0b3JTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29yZEVkaXRvckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICB0ZW5hbnQ6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGNsYXNzTmFtZTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgb2lkOiBhbnk7XHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZUNsYXNzTmFtZTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFiVmlld0NvbnRhaW5lclJlZiE6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dQdWxsVGVtcGxhdGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1B1bGxEYXRhQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dDYWxjQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dWYWxpZGF0ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzaG93R2VuZXJhdGVGaWxlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2VuZXJhdGVGaWxlTmFtZTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25TYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkdlbmVyYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBwcm90ZWN0ZWQgc2VjdGlvbnM6IGFueTtcclxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3ZhbGlkYXRvcicpIHZhbGlkYXRvciE6IER4VmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UsIHByaXZhdGUgd29yZEVkaXRvclNlcnZpY2U6IFdvcmRFZGl0b3JTZXJ2aWNlLCBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMub2lkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS50ZW5hbnQgPSB0aGlzLnRlbmFudDtcclxuICAgIHRoaXMuc2VydmljZS50ZW1wbGF0ZUNsYXNzTmFtZSA9IHRoaXMudGVtcGxhdGVDbGFzc05hbWU7XHJcbiAgICB0aGlzLnNlcnZpY2UuaW5zdGFuY2VDbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTtcclxuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZU9pZCA9IHRoaXMub2lkO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnBhcmFtcyA9IHRoaXMucGFyYW1zO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRhYlZpZXdDb250YWluZXJSZWYgPSB0aGlzLnRhYlZpZXdDb250YWluZXJSZWY7XHJcbiAgICB0aGlzLnNlcnZpY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UubG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5zZWN0aW9ucyB8fCBbXTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLm1hcmtzID0gcmVzcG9uc2UubWFya3M7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc2VydmljZS52YWx1ZUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1bGxUZW1wbGF0ZSgpIHtcclxuICAgIGlmIChjb25maXJtKCfor6Xmk43kvZzkvJrmuIXpmaTlt7LlvZXlhaXnmoTmlbDmja7vvIznoa7lrprph43mlrDmi4nlj5bmqKHmnb/phY3nva7vvJ8nKSkge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLndvcmRFZGl0b3JTZXJ2aWNlLnJlbG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHRoaXMudGVtcGxhdGVDbGFzc05hbWUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLmRhdGE/LnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5tYXJrcyA9IHJlc3BvbnNlLmRhdGEubWFya3M7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVsbERhdGEoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5wdWxsRGF0YSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCB7XHJcbiAgICAgIG1hcmtzOiBKU09OLnN0cmluZ2lmeSh0aGlzLnNlcnZpY2UubWFya3MpXHJcbiAgICB9KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICBmb3IgKGxldCBtYXJrIG9mIHRoaXMuc2VydmljZS5tYXJrcykge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmhhc093blByb3BlcnR5KG1hcmsubmFtZSkpIHtcclxuICAgICAgICAgIG1hcmsudmFsdWUgPSByZXNwb25zZS5kYXRhW21hcmsubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQuZW1pdCgpO1xyXG4gICAgICB0aGlzLnNlcnZpY2UudmFsdWVDaGFuZ2VkLmVtaXQoKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+aLieWPluWujOaIkCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYWxjKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKCkge1xyXG4gICAgdmFsaWRhdGVHcm91cCh0aGlzLnZhbGlkYXRvcikudGhlbigpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmRFZGl0b3JTZXJ2aWNlLnNhdmUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwge1xyXG4gICAgICB0ZW1wbGF0ZUNvbmZpZzogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxyXG4gICAgICAgIG1hcmtzOiB0aGlzLnNlcnZpY2UubWFya3NcclxuICAgICAgfSlcclxuICAgIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+S/neWtmOaIkOWKnycpO1xyXG4gICAgICAgIHRoaXMub25TYXZlZC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVGaWxlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UuZ2VuZXJhdGVGaWxlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHRoaXMuZ2VuZXJhdGVGaWxlQXR0cmlidXRlIHx8ICdmaWxlJywgdGhpcy5nZW5lcmF0ZUZpbGVOYW1lIHx8ICcnLCB7XHJcbiAgICAgIHRlbXBsYXRlQ29uZmlnOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICB9KVxyXG4gICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn55Sf5oiQ6ZmE5Lu25oiQ5YqfJyk7XHJcbiAgICAgICAgdGhpcy5vbkdlbmVyYXRlZC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZHgtbG9hZC1wYW5lbCBbY29udGFpbmVyXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCIgW3Nob3dQYW5lXT1cImZhbHNlXCIgW3Zpc2libGVdPVwibG9hZGluZ1wiPlxyXG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XHJcbjwvZHgtbG9hZC1wYW5lbD5cclxuPGRpdiAqbmdJZj1cIiFyZWFkb25seVwiIGNsYXNzPVwiYmFyIGhlYWRlclwiPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCJzaG93UHVsbFRlbXBsYXRlQnV0dG9uXCIgdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi5pu05paw5qih5p2/XCIgKG9uQ2xpY2spPVwicHVsbFRlbXBsYXRlKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1B1bGxEYXRhQnV0dG9uXCIgdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi5aGr5YWF5pWw5o2uXCIgKG9uQ2xpY2spPVwicHVsbERhdGEoKVwiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG4gIDwhLS0gIDxkeC1idXR0b24gKm5nSWY9XCJzaG93Q2FsY0J1dHRvblwiIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIuaJp+ihjOiuoeeul1wiIChvbkNsaWNrKT1cImNhbGMoKVwiXHJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+LS0+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dWYWxpZGF0ZUJ1dHRvblwiIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIuaJp+ihjOagoemqjFwiIChvbkNsaWNrKT1cInZhbGlkYXRlKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbjxkeC12YWxpZGF0aW9uLWdyb3VwIFtjbGFzcy52YWxpZGF0aW9uLWdyb3VwXT1cInRydWVcIiAjdmFsaWRhdG9yPlxyXG4gIDxkaXYgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidmlld2VyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cclxuICAgICAgICA8cnMtc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9ycy1zZWN0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2R4LXZhbGlkYXRpb24tZ3JvdXA+XHJcbjxkaXYgY2xhc3M9XCJiYXIgZm9vdGVyXCI+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seVwiIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIuS/neWtmFwiIChvbkNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seSAmJiBzaG93R2VuZXJhdGVGaWxlQnV0dG9uXCIgdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi55Sf5oiQ6ZmE5Lu2XCIgKG9uQ2xpY2spPVwiZ2VuZXJhdGVGaWxlKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCIgdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlhbPpl61cIiAob25DbGljayk9XCJvbkNsb3NlZC5lbWl0KClcIj48L2R4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWVkaXRvci93b3JkLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZWRpdG9yL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxtQkFBbUI7SUE2QzlCLFlBQXNCLE9BQXVCLEVBQVUsaUJBQW9DLEVBQVksZ0JBQWtDO1FBQW5ILFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuQ3pJLDRCQUF1QixHQUFRLGdCQUFnQixDQUFDO1FBRWhELDBCQUFxQixHQUFRLGNBQWMsQ0FBQztRQUU1Qyw0QkFBdUIsR0FBUSxnQkFBZ0IsQ0FBQztRQU1oRCwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFOUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRXRCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQiwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFOUIsMEJBQXFCLEdBQVEsTUFBTSxDQUFDO1FBRXBDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGFB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TTtzQkFETCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFHTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBR04sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBR04sc0JBQXNCO3NCQURyQixLQUFLO2dCQUdOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUdOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFHTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBR04sZUFBZTtzQkFEZCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixPQUFPO3NCQUROLE1BQU07Z0JBR1AsV0FBVztzQkFEVixNQUFNO2dCQUdQLFFBQVE7c0JBRFAsTUFBTTtnQkFJaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhci91aS92YWxpZGF0aW9uLWdyb3VwXCI7XHJcbmltcG9ydCB7V29yZEVkaXRvclNlcnZpY2V9IGZyb20gXCIuL3dvcmQtZWRpdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtub3RpZnlTdWNjZXNzLCB2YWxpZGF0ZUdyb3VwfSBmcm9tIFwiLi4vLi4vdXRpbC91dGlsc1wiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VjdGlvbi9zZWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtd29yZC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JkLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yZC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtXb3JkRWRpdG9yU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmRFZGl0b3JDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9pZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVDbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlTnVtYmVyQXR0cmlidXRlOiBhbnkgPSAndGVtcGxhdGVOdW1iZXInO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVGaWxlQXR0cmlidXRlOiBhbnkgPSAndGVtcGxhdGVGaWxlJztcclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlQ29uZmlnQXR0cmlidXRlOiBhbnkgPSAndGVtcGxhdGVDb25maWcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFiVmlld0NvbnRhaW5lclJlZiE6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dQdWxsVGVtcGxhdGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1B1bGxEYXRhQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dDYWxjQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dWYWxpZGF0ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzaG93R2VuZXJhdGVGaWxlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55ID0gJ2ZpbGUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25TYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkdlbmVyYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBwcm90ZWN0ZWQgc2VjdGlvbnM6IGFueTtcclxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3ZhbGlkYXRvcicpIHZhbGlkYXRvciE6IER4VmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UsIHByaXZhdGUgd29yZEVkaXRvclNlcnZpY2U6IFdvcmRFZGl0b3JTZXJ2aWNlLCBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMub2lkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS50ZW5hbnQgPSB0aGlzLnRlbmFudDtcclxuICAgIHRoaXMuc2VydmljZS50ZW1wbGF0ZUNsYXNzTmFtZSA9IHRoaXMudGVtcGxhdGVDbGFzc05hbWU7XHJcbiAgICB0aGlzLnNlcnZpY2UuaW5zdGFuY2VDbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTtcclxuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZU9pZCA9IHRoaXMub2lkO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnBhcmFtcyA9IHRoaXMucGFyYW1zO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRhYlZpZXdDb250YWluZXJSZWYgPSB0aGlzLnRhYlZpZXdDb250YWluZXJSZWY7XHJcbiAgICB0aGlzLnNlcnZpY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UubG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5zZWN0aW9ucyB8fCBbXTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLm1hcmtzID0gcmVzcG9uc2UubWFya3M7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc2VydmljZS52YWx1ZUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1bGxUZW1wbGF0ZSgpIHtcclxuICAgIGlmIChjb25maXJtKCfor6Xmk43kvZzkvJrmuIXpmaTlt7LlvZXlhaXnmoTmlbDmja7vvIznoa7lrprph43mlrDmi4nlj5bmqKHmnb/phY3nva7vvJ8nKSkge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLndvcmRFZGl0b3JTZXJ2aWNlLnJlbG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LFxyXG4gICAgICAgIHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICAgIHRoaXMub2lkLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVDbGFzc05hbWUsXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZU51bWJlckF0dHJpYnV0ZSxcclxuICAgICAgICB0aGlzLnRlbXBsYXRlRmlsZUF0dHJpYnV0ZSxcclxuICAgICAgICB0aGlzLnRlbXBsYXRlQ29uZmlnQXR0cmlidXRlKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5kYXRhPy5zZWN0aW9ucyB8fCBbXTtcclxuICAgICAgICB0aGlzLnNlcnZpY2UubWFya3MgPSByZXNwb25zZS5kYXRhLm1hcmtzO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1bGxEYXRhKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UucHVsbERhdGEodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwge1xyXG4gICAgICBtYXJrczogSlNPTi5zdHJpbmdpZnkodGhpcy5zZXJ2aWNlLm1hcmtzKVxyXG4gICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgZm9yIChsZXQgbWFyayBvZiB0aGlzLnNlcnZpY2UubWFya3MpIHtcclxuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5oYXNPd25Qcm9wZXJ0eShtYXJrLm5hbWUpKSB7XHJcbiAgICAgICAgICBtYXJrLnZhbHVlID0gcmVzcG9uc2UuZGF0YVttYXJrLm5hbWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlcnZpY2UudmFsdWVVcGRhdGVkLmVtaXQoKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnZhbHVlQ2hhbmdlZC5lbWl0KCk7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBub3RpZnlTdWNjZXNzKCfmi4nlj5blrozmiJAnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FsYygpIHtcclxuXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZSgpIHtcclxuICAgIHZhbGlkYXRlR3JvdXAodGhpcy52YWxpZGF0b3IpLnRoZW4oKTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5zYXZlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHtcclxuICAgICAgW3RoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICB9KVxyXG4gICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7XHJcbiAgICAgICAgdGhpcy5vblNhdmVkLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUZpbGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5nZW5lcmF0ZUZpbGUoXHJcbiAgICAgIHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVGaWxlQXR0cmlidXRlIHx8ICdmaWxlJyxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUsXHJcbiAgICAgIHtcclxuICAgICAgICBbdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZV06IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxyXG4gICAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+eUn+aIkOmZhOS7tuaIkOWKnycpO1xyXG4gICAgICAgIHRoaXMub25HZW5lcmF0ZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGR4LWxvYWQtcGFuZWwgW2NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiIFtzaG93UGFuZV09XCJmYWxzZVwiIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cclxuICA8ZHhvLXBvc2l0aW9uIFtvZl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiPjwvZHhvLXBvc2l0aW9uPlxyXG48L2R4LWxvYWQtcGFuZWw+XHJcbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHlcIiBjbGFzcz1cImJhciBoZWFkZXJcIj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1B1bGxUZW1wbGF0ZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuabtOaWsOaooeadv1wiIChvbkNsaWNrKT1cInB1bGxUZW1wbGF0ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dQdWxsRGF0YUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuWhq+WFheaVsOaNrlwiIChvbkNsaWNrKT1cInB1bGxEYXRhKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8IS0tICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0NhbGNCdXR0b25cIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmiafooYzorqHnrpdcIiAob25DbGljayk9XCJjYWxjKClcIlxyXG4gICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPi0tPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCJzaG93VmFsaWRhdGVCdXR0b25cIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmiafooYzmoKHpqoxcIiAob25DbGljayk9XCJ2YWxpZGF0ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbjwvZGl2PlxyXG48ZHgtdmFsaWRhdGlvbi1ncm91cCBbY2xhc3MudmFsaWRhdGlvbi1ncm91cF09XCJ0cnVlXCIgI3ZhbGlkYXRvcj5cclxuICA8ZGl2IGNsYXNzPVwidmlld2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXdlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNlY3Rpb25zXCI+XHJcbiAgICAgICAgPHJzLXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiPjwvcnMtc2VjdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9keC12YWxpZGF0aW9uLWdyb3VwPlxyXG48ZGl2IGNsYXNzPVwiYmFyIGZvb3RlclwiPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCIhcmVhZG9ubHlcIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLkv53lrZhcIiAob25DbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCIhcmVhZG9ubHkgJiYgc2hvd0dlbmVyYXRlRmlsZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIueUn+aIkOmZhOS7tlwiIChvbkNsaWNrKT1cImdlbmVyYXRlRmlsZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiIHR5cGU9XCJub3JtYWxcIiB0ZXh0PVwi5YWz6ZetXCIgKG9uQ2xpY2spPVwib25DbG9zZWQuZW1pdCgpXCI+PC9keC1idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -6,14 +6,14 @@ export class WordEditorService {
6
6
  constructor(http) {
7
7
  this.http = http;
8
8
  }
9
- loadTemplate(tenant, className, oid) {
9
+ loadTemplate(tenant, className, oid, templateConfigAttribute) {
10
10
  return this.http.get('api/data/' + className + '/' + oid, {
11
11
  params: {
12
12
  tenant
13
13
  }
14
14
  }).pipe(map(response => {
15
- if (response.data?.templateConfig) {
16
- return JSON.parse(response.data.templateConfig);
15
+ if (response.data?.[templateConfigAttribute]) {
16
+ return JSON.parse(response.data[templateConfigAttribute]);
17
17
  }
18
18
  return {};
19
19
  }));
@@ -25,14 +25,17 @@ export class WordEditorService {
25
25
  }
26
26
  });
27
27
  }
28
- reloadTemplate(tenant, className, oid, templateClassName) {
28
+ reloadTemplate(tenant, className, oid, templateClassName, templateNumberAttribute, templateFileAttribute, templateConfigAttribute) {
29
29
  return this.http.get('api/data/custom', {
30
30
  params: {
31
31
  executor: 'com.cs.system.word.editor.ReloadTemplate',
32
32
  tenant,
33
33
  className,
34
34
  oid,
35
- templateClassName
35
+ templateClassName,
36
+ templateNumberAttribute,
37
+ templateFileAttribute,
38
+ templateConfigAttribute
36
39
  }
37
40
  });
38
41
  }
@@ -46,7 +49,7 @@ export class WordEditorService {
46
49
  }
47
50
  });
48
51
  }
49
- generateFile(tenant, className, oid, generateFileAttribute, generateFileName, model) {
52
+ generateFile(tenant, className, oid, generateFileAttribute, templateFileAttribute, templateConfigAttribute, model) {
50
53
  return this.http.post('api/data/custom', model, {
51
54
  params: {
52
55
  executor: 'com.cs.system.word.editor.GenerateFile',
@@ -54,7 +57,8 @@ export class WordEditorService {
54
57
  className,
55
58
  oid,
56
59
  generateFileAttribute,
57
- generateFileName
60
+ templateFileAttribute,
61
+ templateConfigAttribute
58
62
  }
59
63
  });
60
64
  }
@@ -64,4 +68,4 @@ WordEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
64
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorService, decorators: [{
65
69
  type: Injectable
66
70
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvd29yZC1lZGl0b3Ivd29yZC1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7OztBQUdyQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVE7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDN0QsTUFBTSxFQUFFO2dCQUNOLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtnQkFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDakQ7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsR0FBUSxFQUFFLEtBQVU7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ3JFLE1BQU0sRUFBRTtnQkFDTixNQUFNO2FBQ1A7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsR0FBUSxFQUFFLGlCQUFzQjtRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLGlCQUFpQixFQUFFO1lBQzNDLE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsMENBQTBDO2dCQUNwRCxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsR0FBRztnQkFDSCxpQkFBaUI7YUFDbEI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsR0FBUSxFQUFFLEtBQVU7UUFDeEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRSxLQUFLLEVBQUU7WUFDbkQsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2FBQ0o7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsR0FBUSxFQUFFLHFCQUEwQixFQUFFLGdCQUFxQixFQUFFLEtBQVU7UUFDL0csT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRSxLQUFLLEVBQUU7WUFDbkQsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSx3Q0FBd0M7Z0JBQ2xELE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2dCQUNILHFCQUFxQjtnQkFDckIsZ0JBQWdCO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBN0RVLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV29yZEVkaXRvclNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIGxvYWRUZW1wbGF0ZSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG9pZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KCdhcGkvZGF0YS8nICsgY2xhc3NOYW1lICsgJy8nICsgb2lkLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdGVuYW50XG4gICAgICB9XG4gICAgfSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhPy50ZW1wbGF0ZUNvbmZpZykge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3BvbnNlLmRhdGEudGVtcGxhdGVDb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNhdmUodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCBvaWQ6IGFueSwgbW9kZWw6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KCdhcGkvZGF0YS8nICsgY2xhc3NOYW1lICsgJy8nICsgb2lkLCBtb2RlbCwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRlbmFudFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVsb2FkVGVtcGxhdGUodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCBvaWQ6IGFueSwgdGVtcGxhdGVDbGFzc05hbWU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXBpL2RhdGEvY3VzdG9tJywge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGV4ZWN1dG9yOiAnY29tLmNzLnN5c3RlbS53b3JkLmVkaXRvci5SZWxvYWRUZW1wbGF0ZScsXG4gICAgICAgIHRlbmFudCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvaWQsXG4gICAgICAgIHRlbXBsYXRlQ2xhc3NOYW1lXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWxsRGF0YSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG9pZDogYW55LCBtYXJrczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oJ2FwaS9kYXRhL2N1c3RvbScsIG1hcmtzLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZXhlY3V0b3I6ICdjb20uY3Muc3lzdGVtLndvcmQuZWRpdG9yLlB1bGxEYXRhJyxcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIG9pZFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2VuZXJhdGVGaWxlKHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnksIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55LCBnZW5lcmF0ZUZpbGVOYW1lOiBhbnksIG1vZGVsOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PignYXBpL2RhdGEvY3VzdG9tJywgbW9kZWwsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBleGVjdXRvcjogJ2NvbS5jcy5zeXN0ZW0ud29yZC5lZGl0b3IuR2VuZXJhdGVGaWxlJyxcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIG9pZCxcbiAgICAgICAgZ2VuZXJhdGVGaWxlQXR0cmlidXRlLFxuICAgICAgICBnZW5lcmF0ZUZpbGVOYW1lXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvd29yZC1lZGl0b3Ivd29yZC1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7OztBQUdyQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSx1QkFBNEI7UUFDOUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDN0QsTUFBTSxFQUFFO2dCQUNOLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSxLQUFVO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sV0FBVyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNyRSxNQUFNLEVBQUU7Z0JBQ04sTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFXLEVBQ1gsU0FBYyxFQUNkLEdBQVEsRUFDUixpQkFBc0IsRUFDdEIsdUJBQTRCLEVBQzVCLHFCQUEwQixFQUMxQix1QkFBNEI7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxpQkFBaUIsRUFBRTtZQUMzQyxNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLDBDQUEwQztnQkFDcEQsTUFBTTtnQkFDTixTQUFTO2dCQUNULEdBQUc7Z0JBQ0gsaUJBQWlCO2dCQUNqQix1QkFBdUI7Z0JBQ3ZCLHFCQUFxQjtnQkFDckIsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXLEVBQUUsU0FBYyxFQUFFLEdBQVEsRUFBRSxLQUFVO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0saUJBQWlCLEVBQUUsS0FBSyxFQUFFO1lBQ25ELE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsb0NBQW9DO2dCQUM5QyxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsR0FBRzthQUNKO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXLEVBQ1gsU0FBYyxFQUNkLEdBQVEsRUFDUixxQkFBMEIsRUFDMUIscUJBQTBCLEVBQzFCLHVCQUE0QixFQUM1QixLQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0saUJBQWlCLEVBQUUsS0FBSyxFQUFFO1lBQ25ELE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsd0NBQXdDO2dCQUNsRCxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsR0FBRztnQkFDSCxxQkFBcUI7Z0JBQ3JCLHFCQUFxQjtnQkFDckIsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBN0VVLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV29yZEVkaXRvclNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIGxvYWRUZW1wbGF0ZSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG9pZDogYW55LCB0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KCdhcGkvZGF0YS8nICsgY2xhc3NOYW1lICsgJy8nICsgb2lkLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdGVuYW50XG4gICAgICB9XG4gICAgfSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhPy5bdGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdKSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcG9uc2UuZGF0YVt0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNhdmUodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCBvaWQ6IGFueSwgbW9kZWw6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KCdhcGkvZGF0YS8nICsgY2xhc3NOYW1lICsgJy8nICsgb2lkLCBtb2RlbCwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRlbmFudFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVsb2FkVGVtcGxhdGUodGVuYW50OiBhbnksXG4gICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogYW55LFxuICAgICAgICAgICAgICAgICBvaWQ6IGFueSxcbiAgICAgICAgICAgICAgICAgdGVtcGxhdGVDbGFzc05hbWU6IGFueSxcbiAgICAgICAgICAgICAgICAgdGVtcGxhdGVOdW1iZXJBdHRyaWJ1dGU6IGFueSxcbiAgICAgICAgICAgICAgICAgdGVtcGxhdGVGaWxlQXR0cmlidXRlOiBhbnksXG4gICAgICAgICAgICAgICAgIHRlbXBsYXRlQ29uZmlnQXR0cmlidXRlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oJ2FwaS9kYXRhL2N1c3RvbScsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBleGVjdXRvcjogJ2NvbS5jcy5zeXN0ZW0ud29yZC5lZGl0b3IuUmVsb2FkVGVtcGxhdGUnLFxuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgb2lkLFxuICAgICAgICB0ZW1wbGF0ZUNsYXNzTmFtZSxcbiAgICAgICAgdGVtcGxhdGVOdW1iZXJBdHRyaWJ1dGUsXG4gICAgICAgIHRlbXBsYXRlRmlsZUF0dHJpYnV0ZSxcbiAgICAgICAgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGVcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1bGxEYXRhKHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnksIG1hcmtzOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PignYXBpL2RhdGEvY3VzdG9tJywgbWFya3MsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBleGVjdXRvcjogJ2NvbS5jcy5zeXN0ZW0ud29yZC5lZGl0b3IuUHVsbERhdGEnLFxuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgb2lkXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZW5lcmF0ZUZpbGUodGVuYW50OiBhbnksXG4gICAgICAgICAgICAgICBjbGFzc05hbWU6IGFueSxcbiAgICAgICAgICAgICAgIG9pZDogYW55LFxuICAgICAgICAgICAgICAgZ2VuZXJhdGVGaWxlQXR0cmlidXRlOiBhbnksXG4gICAgICAgICAgICAgICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGU6IGFueSxcbiAgICAgICAgICAgICAgIHRlbXBsYXRlQ29uZmlnQXR0cmlidXRlOiBhbnksXG4gICAgICAgICAgICAgICBtb2RlbDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oJ2FwaS9kYXRhL2N1c3RvbScsIG1vZGVsLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZXhlY3V0b3I6ICdjb20uY3Muc3lzdGVtLndvcmQuZWRpdG9yLkdlbmVyYXRlRmlsZScsXG4gICAgICAgIHRlbmFudCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvaWQsXG4gICAgICAgIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZSxcbiAgICAgICAgdGVtcGxhdGVGaWxlQXR0cmlidXRlLFxuICAgICAgICB0ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=