ngx-rs-ant 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/esm2020/data-grid/data-grid.component.mjs +3 -3
  2. package/esm2020/data-grid/instance-link-template/instance-link-template.component.mjs +3 -3
  3. package/esm2020/drawer/drawer.component.mjs +5 -1
  4. package/esm2020/drawer/drawer.service.mjs +2 -2
  5. package/esm2020/form/form.component.mjs +4 -4
  6. package/esm2020/public-api.mjs +11 -1
  7. package/esm2020/types/component/mark-item-component-base.mjs +8 -0
  8. package/esm2020/types/config/mark-item-config-base.mjs +4 -0
  9. package/esm2020/types/config/modal-config-base.mjs +1 -1
  10. package/esm2020/util/utils.mjs +17 -17
  11. package/esm2020/word/section/color.pipe.mjs +19 -0
  12. package/esm2020/word/section/mark.pipe.mjs +20 -0
  13. package/esm2020/word/section/node/node.component.mjs +31 -0
  14. package/esm2020/word/section/node/paragraph/paragraph.component.mjs +44 -0
  15. package/esm2020/word/section/node/paragraph/run/run.component.mjs +84 -0
  16. package/esm2020/word/section/node/paragraph-for-input/item/item.component.mjs +64 -0
  17. package/esm2020/word/section/node/paragraph-for-input/paragraph-for-input.component.mjs +46 -0
  18. package/esm2020/word/section/pt.pipe.mjs +22 -0
  19. package/esm2020/word/section/section.component.mjs +44 -0
  20. package/esm2020/word/section/section.module.mjs +50 -0
  21. package/esm2020/word/section/section.service.mjs +48 -0
  22. package/esm2020/word/word-designer/mark-config/mark-config.component.mjs +77 -0
  23. package/esm2020/word/word-designer/word-designer.component.mjs +207 -0
  24. package/esm2020/word/word-designer/word-designer.module.mjs +35 -0
  25. package/esm2020/word/word-designer/word-designer.service.mjs +69 -0
  26. package/esm2020/word/word-editor/word-editor.component.mjs +154 -0
  27. package/esm2020/word/word-editor/word-editor.module.mjs +32 -0
  28. package/esm2020/word/word-editor/word-editor.service.mjs +67 -0
  29. package/fesm2015/ngx-rs-ant.mjs +1043 -23
  30. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  31. package/fesm2020/ngx-rs-ant.mjs +1036 -23
  32. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  33. package/package.json +2 -2
  34. package/public-api.d.ts +10 -0
  35. package/types/component/mark-item-component-base.d.ts +21 -0
  36. package/types/config/mark-item-config-base.d.ts +17 -0
  37. package/types/config/modal-config-base.d.ts +8 -0
  38. package/util/utils.d.ts +10 -10
  39. package/word/section/color.pipe.d.ts +7 -0
  40. package/word/section/mark.pipe.d.ts +10 -0
  41. package/word/section/node/node.component.d.ts +12 -0
  42. package/word/section/node/paragraph/paragraph.component.d.ts +35 -0
  43. package/word/section/node/paragraph/run/run.component.d.ts +21 -0
  44. package/word/section/node/paragraph-for-input/item/item.component.d.ts +27 -0
  45. package/word/section/node/paragraph-for-input/paragraph-for-input.component.d.ts +35 -0
  46. package/word/section/pt.pipe.d.ts +7 -0
  47. package/word/section/section.component.d.ts +22 -0
  48. package/word/section/section.module.d.ts +16 -0
  49. package/word/section/section.service.d.ts +24 -0
  50. package/word/word-designer/mark-config/mark-config.component.d.ts +21 -0
  51. package/word/word-designer/word-designer.component.d.ts +48 -0
  52. package/word/word-designer/word-designer.module.d.ts +11 -0
  53. package/word/word-designer/word-designer.service.d.ts +13 -0
  54. package/word/word-editor/word-editor.component.d.ts +41 -0
  55. package/word/word-editor/word-editor.module.d.ts +10 -0
  56. package/word/word-editor/word-editor.service.d.ts +14 -0
@@ -0,0 +1,46 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../section.service";
4
+ import * as i2 from "../../pt.pipe";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "../paragraph/run/run.component";
7
+ import * as i5 from "./item/item.component";
8
+ import * as i6 from "../../mark.pipe";
9
+ export class ParagraphForInputComponent {
10
+ get _style() {
11
+ return {
12
+ display: 'block',
13
+ marginTop: this.pt.transform(this.paragraph.style['margin-top'], this.service.scale),
14
+ marginBottom: this.pt.transform(this.paragraph.style['margin-bottom'], this.service.scale),
15
+ marginLeft: this.pt.transform(this.paragraph.style['margin-left'], this.service.scale),
16
+ textIndent: this.pt.transform(this.paragraph.style['text-indent'], this.service.scale),
17
+ textAlign: this.paragraph.style['text-align'],
18
+ lineHeight: this.pt.transform(this.paragraph.style['line-height'], this.service.scale),
19
+ minHeight: this.pt.transform(this.paragraph.style['min-height'], this.service.scale),
20
+ fontFamily: this.paragraph.style['font-family'],
21
+ fontSize: this.pt.transform(this.paragraph.style['font-size'], this.service.scale)
22
+ };
23
+ }
24
+ constructor(service, pt) {
25
+ this.service = service;
26
+ this.pt = pt;
27
+ this.editMode = false;
28
+ this.readonly = false;
29
+ }
30
+ }
31
+ ParagraphForInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ParagraphForInputComponent, deps: [{ token: i1.SectionService }, { token: i2.PtPipe }], target: i0.ɵɵFactoryTarget.Component });
32
+ ParagraphForInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ParagraphForInputComponent, selector: "rs-paragraph-for-input", inputs: { paragraph: "paragraph", editMode: "editMode", readonly: "readonly" }, host: { properties: { "style": "this._style" } }, ngImport: i0, template: "<ng-container *ngFor=\"let node of paragraph.content\">\r\n <rs-item *ngIf=\"node.mark\" [node]=\"node\" [mark]=\"node.mark | mark\" [editMode]=\"editMode\"\r\n [readonly]=\"readonly\"></rs-item>\r\n <rs-run *ngIf=\"!node.mark\" [node]=\"node\"></rs-run>\r\n</ng-container>\r\n", styles: [""], 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.RunComponent, selector: "rs-run", inputs: ["node", "editMode", "pasteMode"] }, { kind: "component", type: i5.ItemComponent, selector: "rs-item", inputs: ["node", "mark", "editMode", "readonly"] }, { kind: "pipe", type: i6.MarkPipe, name: "mark" }] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ParagraphForInputComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'rs-paragraph-for-input', template: "<ng-container *ngFor=\"let node of paragraph.content\">\r\n <rs-item *ngIf=\"node.mark\" [node]=\"node\" [mark]=\"node.mark | mark\" [editMode]=\"editMode\"\r\n [readonly]=\"readonly\"></rs-item>\r\n <rs-run *ngIf=\"!node.mark\" [node]=\"node\"></rs-run>\r\n</ng-container>\r\n" }]
36
+ }], ctorParameters: function () { return [{ type: i1.SectionService }, { type: i2.PtPipe }]; }, propDecorators: { paragraph: [{
37
+ type: Input
38
+ }], editMode: [{
39
+ type: Input
40
+ }], readonly: [{
41
+ type: Input
42
+ }], _style: [{
43
+ type: HostBinding,
44
+ args: ['style']
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLWZvci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vbm9kZS9wYXJhZ3JhcGgtZm9yLWlucHV0L3BhcmFncmFwaC1mb3ItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC9zZWN0aW9uL25vZGUvcGFyYWdyYXBoLWZvci1pbnB1dC9wYXJhZ3JhcGgtZm9yLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFTNUQsTUFBTSxPQUFPLDBCQUEwQjtJQWtCckMsSUFBMEIsTUFBTTtRQUM5QixPQUFPO1lBQ0wsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3BGLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMxRixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEYsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3RGLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3RGLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNwRixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQy9DLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNuRixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQXNCLE9BQXVCLEVBQVUsRUFBVTtRQUEzQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQVE7UUFuQmpFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQWtCMUIsQ0FBQzs7d0hBbENVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLGdNQ1R2QyxtU0FLQTs0RkRJYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCOzBIQU1sQyxTQUFTO3NCQURSLEtBQUs7Z0JBYU4sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHb0IsTUFBTTtzQkFBL0IsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UHRQaXBlfSBmcm9tIFwiLi4vLi4vcHQucGlwZVwiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VjdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLXBhcmFncmFwaC1mb3ItaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJhZ3JhcGgtZm9yLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wYXJhZ3JhcGgtZm9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaEZvcklucHV0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHBhcmFncmFwaCE6IHtcclxuICAgIHN0eWxlOiBhbnksXHJcbiAgICBjb250ZW50OiB7XHJcbiAgICAgIHR5cGU6IHN0cmluZyxcclxuICAgICAgc3R5bGU6IGFueSxcclxuICAgICAgdGV4dD86IHN0cmluZyxcclxuICAgICAgZGF0YT86IHN0cmluZyxcclxuICAgICAgbWFyaz86IHN0cmluZyxcclxuICAgICAgc2V0dGluZz86IGJvb2xlYW5cclxuICAgIH1bXVxyXG4gIH07XHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIGdldCBfc3R5bGUoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxyXG4gICAgICBtYXJnaW5Ub3A6IHRoaXMucHQudHJhbnNmb3JtKHRoaXMucGFyYWdyYXBoLnN0eWxlWydtYXJnaW4tdG9wJ10sIHRoaXMuc2VydmljZS5zY2FsZSksXHJcbiAgICAgIG1hcmdpbkJvdHRvbTogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ21hcmdpbi1ib3R0b20nXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgbWFyZ2luTGVmdDogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ21hcmdpbi1sZWZ0J10sIHRoaXMuc2VydmljZS5zY2FsZSksXHJcbiAgICAgIHRleHRJbmRlbnQ6IHRoaXMucHQudHJhbnNmb3JtKHRoaXMucGFyYWdyYXBoLnN0eWxlWyd0ZXh0LWluZGVudCddLCB0aGlzLnNlcnZpY2Uuc2NhbGUpLFxyXG4gICAgICB0ZXh0QWxpZ246IHRoaXMucGFyYWdyYXBoLnN0eWxlWyd0ZXh0LWFsaWduJ10sXHJcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMucHQudHJhbnNmb3JtKHRoaXMucGFyYWdyYXBoLnN0eWxlWydsaW5lLWhlaWdodCddLCB0aGlzLnNlcnZpY2Uuc2NhbGUpLFxyXG4gICAgICBtaW5IZWlnaHQ6IHRoaXMucHQudHJhbnNmb3JtKHRoaXMucGFyYWdyYXBoLnN0eWxlWydtaW4taGVpZ2h0J10sIHRoaXMuc2VydmljZS5zY2FsZSksXHJcbiAgICAgIGZvbnRGYW1pbHk6IHRoaXMucGFyYWdyYXBoLnN0eWxlWydmb250LWZhbWlseSddLFxyXG4gICAgICBmb250U2l6ZTogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ2ZvbnQtc2l6ZSddLCB0aGlzLnNlcnZpY2Uuc2NhbGUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IFNlY3Rpb25TZXJ2aWNlLCBwcml2YXRlIHB0OiBQdFBpcGUpIHtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbm9kZSBvZiBwYXJhZ3JhcGguY29udGVudFwiPlxyXG4gIDxycy1pdGVtICpuZ0lmPVwibm9kZS5tYXJrXCIgW25vZGVdPVwibm9kZVwiIFttYXJrXT1cIm5vZGUubWFyayB8IG1hcmtcIiBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxyXG4gICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtaXRlbT5cclxuICA8cnMtcnVuICpuZ0lmPVwiIW5vZGUubWFya1wiIFtub2RlXT1cIm5vZGVcIj48L3JzLXJ1bj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PtPipe {
4
+ transform(value, scale = 1) {
5
+ if (!value) {
6
+ return '';
7
+ }
8
+ if (typeof value === 'string') {
9
+ return value;
10
+ }
11
+ return value * scale + 'pt';
12
+ }
13
+ }
14
+ PtPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PtPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ PtPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PtPipe, name: "pt" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PtPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{
19
+ name: 'pt'
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvc2VjdGlvbi9wdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8sTUFBTTtJQUNqQixTQUFTLENBQUMsS0FBVSxFQUFFLFFBQWdCLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOztvR0FUVSxNQUFNO2tHQUFOLE1BQU07NEZBQU4sTUFBTTtrQkFIbEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3B0J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIHNjYWxlOiBudW1iZXIgPSAxKTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlICogc2NhbGUgKyAncHQnO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { PtPipe } from "./pt.pipe";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./section.service";
5
+ import * as i2 from "./pt.pipe";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "./node/node.component";
8
+ export class SectionComponent {
9
+ get _style() {
10
+ return {
11
+ width: this.pt.transform(this.section.style['width'], this.service.scale),
12
+ paddingTop: this.pt.transform(this.section.style['padding-top'], this.service.scale),
13
+ paddingRight: this.pt.transform(this.section.style['padding-right'], this.service.scale),
14
+ paddingBottom: this.pt.transform(this.section.style['padding-bottom'], this.service.scale),
15
+ paddingLeft: this.pt.transform(this.section.style['padding-left'], this.service.scale),
16
+ userSelect: this.pasteMode ? 'none' : 'auto'
17
+ };
18
+ }
19
+ constructor(service, pt) {
20
+ this.service = service;
21
+ this.pt = pt;
22
+ this.editMode = false;
23
+ this.pasteMode = false;
24
+ this.readonly = false;
25
+ }
26
+ }
27
+ SectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionComponent, deps: [{ token: i1.SectionService }, { token: i2.PtPipe }], target: i0.ɵɵFactoryTarget.Component });
28
+ SectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SectionComponent, selector: "rs-section", inputs: { section: "section", editMode: "editMode", pasteMode: "pasteMode", readonly: "readonly" }, host: { properties: { "style": "this._style" } }, providers: [PtPipe], ngImport: i0, template: "<div *ngIf=\"section.header\">\r\n <ng-container *ngFor=\"let node of section.header\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n </ng-container>\r\n</div>\r\n<ng-container *ngFor=\"let node of section.body\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n</ng-container>\r\n<div *ngIf=\"section.footer\">\r\n <ng-container *ngFor=\"let node of section.footer\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n </ng-container>\r\n</div>\r\n", styles: [":host{display:block;background-color:#fff;margin-bottom:8px}\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.NodeComponent, selector: "rs-node", inputs: ["node", "editMode", "pasteMode", "readonly"] }] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'rs-section', providers: [PtPipe], template: "<div *ngIf=\"section.header\">\r\n <ng-container *ngFor=\"let node of section.header\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n </ng-container>\r\n</div>\r\n<ng-container *ngFor=\"let node of section.body\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n</ng-container>\r\n<div *ngIf=\"section.footer\">\r\n <ng-container *ngFor=\"let node of section.footer\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n </ng-container>\r\n</div>\r\n", styles: [":host{display:block;background-color:#fff;margin-bottom:8px}\n"] }]
32
+ }], ctorParameters: function () { return [{ type: i1.SectionService }, { type: i2.PtPipe }]; }, propDecorators: { section: [{
33
+ type: Input
34
+ }], editMode: [{
35
+ type: Input
36
+ }], pasteMode: [{
37
+ type: Input
38
+ }], readonly: [{
39
+ type: Input
40
+ }], _style: [{
41
+ type: HostBinding,
42
+ args: ['style']
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBU2pDLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsSUFBMEIsTUFBTTtRQUM5QixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3pFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNwRixZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDeEYsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDMUYsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3RGLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU07U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFzQixPQUF1QixFQUFVLEVBQVU7UUFBM0MsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBakJqRSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztJQWMxQixDQUFDOzs4R0F0QlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMkxBRmhCLENBQUMsTUFBTSxDQUFDLDBCQ1JyQiw4cEJBYUE7NEZESGEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLFlBQVksYUFHWCxDQUFDLE1BQU0sQ0FBQzswSEFJbkIsT0FBTztzQkFETixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdvQixNQUFNO3NCQUEvQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtQdFBpcGV9IGZyb20gXCIuL3B0LnBpcGVcIjtcclxuaW1wb3J0IHtTZWN0aW9uU2VydmljZX0gZnJvbSBcIi4vc2VjdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbUHRQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzZWN0aW9uOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFzdGVNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IF9zdHlsZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLnB0LnRyYW5zZm9ybSh0aGlzLnNlY3Rpb24uc3R5bGVbJ3dpZHRoJ10sIHRoaXMuc2VydmljZS5zY2FsZSksXHJcbiAgICAgIHBhZGRpbmdUb3A6IHRoaXMucHQudHJhbnNmb3JtKHRoaXMuc2VjdGlvbi5zdHlsZVsncGFkZGluZy10b3AnXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgcGFkZGluZ1JpZ2h0OiB0aGlzLnB0LnRyYW5zZm9ybSh0aGlzLnNlY3Rpb24uc3R5bGVbJ3BhZGRpbmctcmlnaHQnXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgcGFkZGluZ0JvdHRvbTogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5zZWN0aW9uLnN0eWxlWydwYWRkaW5nLWJvdHRvbSddLCB0aGlzLnNlcnZpY2Uuc2NhbGUpLFxyXG4gICAgICBwYWRkaW5nTGVmdDogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5zZWN0aW9uLnN0eWxlWydwYWRkaW5nLWxlZnQnXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgdXNlclNlbGVjdDogdGhpcy5wYXN0ZU1vZGUgPyAnbm9uZScgOiAnYXV0bydcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UsIHByaXZhdGUgcHQ6IFB0UGlwZSkge1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2VjdGlvbi5oZWFkZXJcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIHNlY3Rpb24uaGVhZGVyXCI+XHJcbiAgICA8cnMtbm9kZSBbbm9kZV09XCJub2RlXCIgW2VkaXRNb2RlXT1cImVkaXRNb2RlXCIgW3Bhc3RlTW9kZV09XCJwYXN0ZU1vZGVcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIj48L3JzLW5vZGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIHNlY3Rpb24uYm9keVwiPlxyXG4gIDxycy1ub2RlIFtub2RlXT1cIm5vZGVcIiBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIiBbcGFzdGVNb2RlXT1cInBhc3RlTW9kZVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtbm9kZT5cclxuPC9uZy1jb250YWluZXI+XHJcbjxkaXYgKm5nSWY9XCJzZWN0aW9uLmZvb3RlclwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5vZGUgb2Ygc2VjdGlvbi5mb290ZXJcIj5cclxuICAgIDxycy1ub2RlIFtub2RlXT1cIm5vZGVcIiBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIiBbcGFzdGVNb2RlXT1cInBhc3RlTW9kZVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtbm9kZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SectionComponent } from "./section.component";
4
+ import { NodeComponent } from "./node/node.component";
5
+ import { ParagraphComponent } from "./node/paragraph/paragraph.component";
6
+ import { RunComponent } from "./node/paragraph/run/run.component";
7
+ import { ParagraphForInputComponent } from "./node/paragraph-for-input/paragraph-for-input.component";
8
+ import { ItemComponent } from "./node/paragraph-for-input/item/item.component";
9
+ import { ColorPipe } from "./color.pipe";
10
+ import { MarkPipe } from "./mark.pipe";
11
+ import { PtPipe } from "./pt.pipe";
12
+ import * as i0 from "@angular/core";
13
+ export class SectionModule {
14
+ }
15
+ SectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ SectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SectionModule, declarations: [SectionComponent,
17
+ NodeComponent,
18
+ ParagraphComponent,
19
+ RunComponent,
20
+ ParagraphForInputComponent,
21
+ ItemComponent,
22
+ ColorPipe,
23
+ MarkPipe,
24
+ PtPipe], imports: [CommonModule], exports: [SectionComponent,
25
+ NodeComponent] });
26
+ SectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionModule, imports: [CommonModule] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [
31
+ SectionComponent,
32
+ NodeComponent,
33
+ ParagraphComponent,
34
+ RunComponent,
35
+ ParagraphForInputComponent,
36
+ ItemComponent,
37
+ ColorPipe,
38
+ MarkPipe,
39
+ PtPipe
40
+ ],
41
+ imports: [
42
+ CommonModule
43
+ ],
44
+ exports: [
45
+ SectionComponent,
46
+ NodeComponent
47
+ ]
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vc2VjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDN0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBc0JqQyxNQUFNLE9BQU8sYUFBYTs7MkdBQWIsYUFBYTs0R0FBYixhQUFhLGlCQWxCdEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsWUFBWTtRQUNaLDBCQUEwQjtRQUMxQixhQUFhO1FBQ2IsU0FBUztRQUNULFFBQVE7UUFDUixNQUFNLGFBR04sWUFBWSxhQUdaLGdCQUFnQjtRQUNoQixhQUFhOzRHQUdKLGFBQWEsWUFQdEIsWUFBWTs0RkFPSCxhQUFhO2tCQXBCekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWiwwQkFBMEI7d0JBQzFCLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLE1BQU07cUJBQ1A7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NlY3Rpb25Db21wb25lbnR9IGZyb20gXCIuL3NlY3Rpb24uY29tcG9uZW50XCI7XG5pbXBvcnQge05vZGVDb21wb25lbnR9IGZyb20gXCIuL25vZGUvbm9kZS5jb21wb25lbnRcIjtcbmltcG9ydCB7UGFyYWdyYXBoQ29tcG9uZW50fSBmcm9tIFwiLi9ub2RlL3BhcmFncmFwaC9wYXJhZ3JhcGguY29tcG9uZW50XCI7XG5pbXBvcnQge1J1bkNvbXBvbmVudH0gZnJvbSBcIi4vbm9kZS9wYXJhZ3JhcGgvcnVuL3J1bi5jb21wb25lbnRcIjtcbmltcG9ydCB7UGFyYWdyYXBoRm9ySW5wdXRDb21wb25lbnR9IGZyb20gXCIuL25vZGUvcGFyYWdyYXBoLWZvci1pbnB1dC9wYXJhZ3JhcGgtZm9yLWlucHV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtJdGVtQ29tcG9uZW50fSBmcm9tIFwiLi9ub2RlL3BhcmFncmFwaC1mb3ItaW5wdXQvaXRlbS9pdGVtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDb2xvclBpcGV9IGZyb20gXCIuL2NvbG9yLnBpcGVcIjtcbmltcG9ydCB7TWFya1BpcGV9IGZyb20gXCIuL21hcmsucGlwZVwiO1xuaW1wb3J0IHtQdFBpcGV9IGZyb20gXCIuL3B0LnBpcGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2VjdGlvbkNvbXBvbmVudCxcbiAgICBOb2RlQ29tcG9uZW50LFxuICAgIFBhcmFncmFwaENvbXBvbmVudCxcbiAgICBSdW5Db21wb25lbnQsXG4gICAgUGFyYWdyYXBoRm9ySW5wdXRDb21wb25lbnQsXG4gICAgSXRlbUNvbXBvbmVudCxcbiAgICBDb2xvclBpcGUsXG4gICAgTWFya1BpcGUsXG4gICAgUHRQaXBlXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNlY3Rpb25Db21wb25lbnQsXG4gICAgTm9kZUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25Nb2R1bGUge1xufVxuIl19
@@ -0,0 +1,48 @@
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SectionService {
4
+ constructor() {
5
+ this.scale = 1;
6
+ this.marks = [];
7
+ this.readonly = false;
8
+ this.activeMark = { name: '未定义书签' };
9
+ this.copiedMark = {};
10
+ this.readyPasteMarkNames = [];
11
+ this.lastClickToPasteMarkName = '';
12
+ this.valueUpdated = new EventEmitter();
13
+ }
14
+ switchMark(type) {
15
+ let index = this.marks.indexOf(this.activeMark);
16
+ if (index + type === -1) {
17
+ this.activeMark = this.marks[this.marks.length - 1];
18
+ }
19
+ else if (index + type === this.marks.length) {
20
+ this.activeMark = this.marks[0];
21
+ }
22
+ else {
23
+ this.activeMark = this.marks[index + type];
24
+ }
25
+ document.getElementById('mark-setting_' + this.activeMark.name)?.scrollIntoView({
26
+ block: 'center',
27
+ inline: 'center'
28
+ });
29
+ }
30
+ getMark(name) {
31
+ if (!name) {
32
+ return undefined;
33
+ }
34
+ return this.marks.find(m => m.name === name);
35
+ }
36
+ getMarkIndex(name) {
37
+ if (!name) {
38
+ return -1;
39
+ }
40
+ return this.marks.findIndex(m => m.name === name);
41
+ }
42
+ }
43
+ SectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ SectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionService });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SectionService, decorators: [{
46
+ type: Injectable
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC9zZWN0aW9uL3NlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFTRSxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQVEsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7UUFDbEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQix3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDbkMsNkJBQXdCLEdBQVcsRUFBRSxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQThCekM7SUE1QkMsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTSxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLENBQUM7WUFDOUUsS0FBSyxFQUFFLFFBQVE7WUFDZixNQUFNLEVBQUUsUUFBUTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVM7UUFDZixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVM7UUFDcEIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDWDtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7OzRHQTVDVSxjQUFjO2dIQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25TZXJ2aWNlIHtcbiAgdGVuYW50OiBhbnk7XG4gIHRlbXBsYXRlQ2xhc3NOYW1lOiBhbnk7XG4gIGluc3RhbmNlQ2xhc3NOYW1lOiBhbnk7XG4gIHRlbXBsYXRlT2lkOiBhbnk7XG4gIGluc3RhbmNlT2lkOiBhbnk7XG4gIHBhcmFtczogYW55O1xuICB0YWJWaWV3Q29udGFpbmVyUmVmOiBhbnk7XG4gIHNjYWxlOiBudW1iZXIgPSAxO1xuICBtYXJrczogYW55W10gPSBbXTtcbiAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgYWN0aXZlTWFyazogYW55ID0ge25hbWU6ICfmnKrlrprkuYnkuabnrb4nfTtcbiAgY29waWVkTWFyazogYW55ID0ge307XG4gIHJlYWR5UGFzdGVNYXJrTmFtZXM6IHN0cmluZ1tdID0gW107XG4gIGxhc3RDbGlja1RvUGFzdGVNYXJrTmFtZTogc3RyaW5nID0gJyc7XG4gIHZhbHVlVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBzd2l0Y2hNYXJrKHR5cGU6IG51bWJlcikge1xuICAgIGxldCBpbmRleCA9IHRoaXMubWFya3MuaW5kZXhPZih0aGlzLmFjdGl2ZU1hcmspO1xuICAgIGlmIChpbmRleCArIHR5cGUgPT09IC0xKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1hcmsgPSB0aGlzLm1hcmtzW3RoaXMubWFya3MubGVuZ3RoIC0gMV07XG4gICAgfSBlbHNlIGlmIChpbmRleCArIHR5cGUgPT09IHRoaXMubWFya3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1hcmsgPSB0aGlzLm1hcmtzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZU1hcmsgPSB0aGlzLm1hcmtzW2luZGV4ICsgdHlwZV07XG4gICAgfVxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJrLXNldHRpbmdfJyArIHRoaXMuYWN0aXZlTWFyay5uYW1lKT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgICAgaW5saW5lOiAnY2VudGVyJ1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWFyayhuYW1lOiBhbnkpIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1hcmtzLmZpbmQobSA9PiBtLm5hbWUgPT09IG5hbWUpO1xuICB9XG5cbiAgZ2V0TWFya0luZGV4KG5hbWU6IGFueSkge1xuICAgIGlmICghbmFtZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYXJrcy5maW5kSW5kZXgobSA9PiBtLm5hbWUgPT09IG5hbWUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { MarkItemFactory } from "coast-plugin-register";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "devextreme-angular/ui/nested";
5
+ import * as i2 from "devextreme-angular/ui/select-box";
6
+ import * as i3 from "devextreme-angular/ui/text-box";
7
+ import * as i4 from "devextreme-angular/ui/validator";
8
+ export class MarkConfigComponent {
9
+ constructor() {
10
+ this.changeMark = false;
11
+ }
12
+ get mark() {
13
+ return this._mark;
14
+ }
15
+ set mark(mark) {
16
+ if (!mark) {
17
+ return;
18
+ }
19
+ this._mark = mark;
20
+ this.changeMark = true;
21
+ this.loadMarkConfig();
22
+ }
23
+ ngOnInit() {
24
+ this.markTypes = MarkItemFactory.getMarkItems(...this.filterCategories || '');
25
+ }
26
+ loadMarkConfig() {
27
+ setTimeout(() => {
28
+ this.markItemConfigRef.clear();
29
+ let config = MarkItemFactory.getConfig(this.mark.type);
30
+ if (!config) {
31
+ return;
32
+ }
33
+ const componentRef = this.markItemConfigRef.createComponent(config.component);
34
+ const instance = componentRef.instance;
35
+ instance.tenant = this.tenant;
36
+ instance.templateClassName = this.templateClassName;
37
+ instance.templateOid = this.templateOid;
38
+ instance.instanceClassName = this.instanceClassName;
39
+ instance.mark = this.mark;
40
+ instance.marks = this.marks;
41
+ });
42
+ }
43
+ changeMarkType() {
44
+ if (this.changeMark) {
45
+ this.changeMark = false;
46
+ }
47
+ else {
48
+ this.mark.pickerCode = null;
49
+ this.mark.generatorCode = null;
50
+ }
51
+ this.loadMarkConfig();
52
+ }
53
+ }
54
+ MarkConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ MarkConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MarkConfigComponent, selector: "rs-mark-config", inputs: { tenant: "tenant", templateClassName: "templateClassName", templateOid: "templateOid", instanceClassName: "instanceClassName", filterCategories: "filterCategories", mark: "mark", marks: "marks" }, viewQueries: [{ propertyName: "markItemConfigRef", first: true, predicate: ["markItemConfigRef"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u4E66\u7B7E\u6807\u8BC6</span>\n <span class=\"required-mark\">&nbsp;*</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-text-box [(value)]=\"mark.name\" [readOnly]=\"true\">\n <dx-validator>\n <dxi-validation-rule type=\"required\" message=\"\u503C\u4E0D\u80FD\u4E3A\u7A7A\"></dxi-validation-rule>\n </dx-validator>\n </dx-text-box>\n </div>\n</div>\n<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u4E66\u7B7E\u540D\u79F0</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-text-box [(value)]=\"mark.display\"></dx-text-box>\n </div>\n</div>\n<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u7EC4\u4EF6\u7C7B\u578B</span>\n <span class=\"required-mark\">&nbsp;*</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-select-box [dataSource]=\"markTypes\"\n valueExpr=\"name\"\n displayExpr=\"caption\"\n [(value)]=\"mark.type\"\n (onSelectionChanged)=\"changeMarkType()\">\n <dx-validator>\n <dxi-validation-rule type=\"required\" message=\"\u503C\u4E0D\u80FD\u4E3A\u7A7A\"></dxi-validation-rule>\n </dx-validator>\n </dx-select-box>\n </div>\n</div>\n<ng-container #markItemConfigRef></ng-container>\n", styles: [":host .dx-field{margin-bottom:8px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-label{flex:0 0 80px}:host .dx-field .dx-field-value{flex:1}\n"], dependencies: [{ kind: "component", type: i1.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { kind: "component", type: i2.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i3.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i4.DxValidatorComponent, selector: "dx-validator", inputs: ["adapter", "elementAttr", "height", "name", "validationGroup", "validationRules", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onValidated", "adapterChange", "elementAttrChange", "heightChange", "nameChange", "validationGroupChange", "validationRulesChange", "widthChange"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkConfigComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'rs-mark-config', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u4E66\u7B7E\u6807\u8BC6</span>\n <span class=\"required-mark\">&nbsp;*</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-text-box [(value)]=\"mark.name\" [readOnly]=\"true\">\n <dx-validator>\n <dxi-validation-rule type=\"required\" message=\"\u503C\u4E0D\u80FD\u4E3A\u7A7A\"></dxi-validation-rule>\n </dx-validator>\n </dx-text-box>\n </div>\n</div>\n<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u4E66\u7B7E\u540D\u79F0</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-text-box [(value)]=\"mark.display\"></dx-text-box>\n </div>\n</div>\n<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u7EC4\u4EF6\u7C7B\u578B</span>\n <span class=\"required-mark\">&nbsp;*</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-select-box [dataSource]=\"markTypes\"\n valueExpr=\"name\"\n displayExpr=\"caption\"\n [(value)]=\"mark.type\"\n (onSelectionChanged)=\"changeMarkType()\">\n <dx-validator>\n <dxi-validation-rule type=\"required\" message=\"\u503C\u4E0D\u80FD\u4E3A\u7A7A\"></dxi-validation-rule>\n </dx-validator>\n </dx-select-box>\n </div>\n</div>\n<ng-container #markItemConfigRef></ng-container>\n", styles: [":host .dx-field{margin-bottom:8px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-label{flex:0 0 80px}:host .dx-field .dx-field-value{flex:1}\n"] }]
59
+ }], propDecorators: { tenant: [{
60
+ type: Input
61
+ }], templateClassName: [{
62
+ type: Input
63
+ }], templateOid: [{
64
+ type: Input
65
+ }], instanceClassName: [{
66
+ type: Input
67
+ }], filterCategories: [{
68
+ type: Input
69
+ }], mark: [{
70
+ type: Input
71
+ }], marks: [{
72
+ type: Input
73
+ }], markItemConfigRef: [{
74
+ type: ViewChild,
75
+ args: ['markItemConfigRef', { static: true, read: ViewContainerRef }]
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWRlc2lnbmVyL21hcmstY29uZmlnL21hcmstY29uZmlnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvd29yZC1kZXNpZ25lci9tYXJrLWNvbmZpZy9tYXJrLWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFPdEQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQW1DVSxlQUFVLEdBQUcsS0FBSyxDQUFDO0tBa0M1QjtJQXBEQyxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQVM7UUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBU0QsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsY0FBYztRQUNaLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsSUFBSSxNQUFNLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsT0FBTzthQUNSO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUUsTUFBTSxRQUFRLEdBQVEsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUIsUUFBUSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRCxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDeEMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRCxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUIsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7aUhBL0RVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHVXQStCdUIsZ0JBQWdCLDJDQ3ZDdkUsdTFDQXVDQTs0RkQvQmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs4QkFNMUIsTUFBTTtzQkFETCxLQUFLO2dCQUdOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlGLElBQUk7c0JBRFAsS0FBSztnQkFnQk4sS0FBSztzQkFESixLQUFLO2dCQUlrRSxpQkFBaUI7c0JBQXhGLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWFya0l0ZW1GYWN0b3J5fSBmcm9tIFwiY29hc3QtcGx1Z2luLXJlZ2lzdGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLW1hcmstY29uZmlnJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmstY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFyay1jb25maWcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYXJrQ29uZmlnQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdGVuYW50OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHRlbXBsYXRlQ2xhc3NOYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHRlbXBsYXRlT2lkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGluc3RhbmNlQ2xhc3NOYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGZpbHRlckNhdGVnb3JpZXM/OiBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBnZXQgbWFyaygpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFyaztcbiAgfVxuXG4gIHNldCBtYXJrKG1hcms6IGFueSkge1xuICAgIGlmICghbWFyaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9tYXJrID0gbWFyaztcbiAgICB0aGlzLmNoYW5nZU1hcmsgPSB0cnVlO1xuICAgIHRoaXMubG9hZE1hcmtDb25maWcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX21hcms6IGFueTtcbiAgQElucHV0KClcbiAgbWFya3M6IGFueTtcbiAgcHJvdGVjdGVkIG1hcmtUeXBlczogYW55O1xuICBwcml2YXRlIGNoYW5nZU1hcmsgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnbWFya0l0ZW1Db25maWdSZWYnLCB7c3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSkgbWFya0l0ZW1Db25maWdSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFya1R5cGVzID0gTWFya0l0ZW1GYWN0b3J5LmdldE1hcmtJdGVtcyguLi50aGlzLmZpbHRlckNhdGVnb3JpZXMgfHwgJycpO1xuICB9XG5cbiAgbG9hZE1hcmtDb25maWcoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1hcmtJdGVtQ29uZmlnUmVmLmNsZWFyKCk7XG4gICAgICBsZXQgY29uZmlnID0gTWFya0l0ZW1GYWN0b3J5LmdldENvbmZpZyh0aGlzLm1hcmsudHlwZSk7XG4gICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLm1hcmtJdGVtQ29uZmlnUmVmLmNyZWF0ZUNvbXBvbmVudChjb25maWcuY29tcG9uZW50KTtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICBpbnN0YW5jZS50ZW5hbnQgPSB0aGlzLnRlbmFudDtcbiAgICAgIGluc3RhbmNlLnRlbXBsYXRlQ2xhc3NOYW1lID0gdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZTtcbiAgICAgIGluc3RhbmNlLnRlbXBsYXRlT2lkID0gdGhpcy50ZW1wbGF0ZU9pZDtcbiAgICAgIGluc3RhbmNlLmluc3RhbmNlQ2xhc3NOYW1lID0gdGhpcy5pbnN0YW5jZUNsYXNzTmFtZTtcbiAgICAgIGluc3RhbmNlLm1hcmsgPSB0aGlzLm1hcms7XG4gICAgICBpbnN0YW5jZS5tYXJrcyA9IHRoaXMubWFya3M7XG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VNYXJrVHlwZSgpIHtcbiAgICBpZiAodGhpcy5jaGFuZ2VNYXJrKSB7XG4gICAgICB0aGlzLmNoYW5nZU1hcmsgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYXJrLnBpY2tlckNvZGUgPSBudWxsO1xuICAgICAgdGhpcy5tYXJrLmdlbmVyYXRvckNvZGUgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmxvYWRNYXJrQ29uZmlnKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkeC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtbGFiZWxcIj5cbiAgICA8c3Bhbj7kuabnrb7moIfor4Y8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1tYXJrXCI+Jm5ic3A7Kjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkeC1maWVsZC12YWx1ZVwiPlxuICAgIDxkeC10ZXh0LWJveCBbKHZhbHVlKV09XCJtYXJrLm5hbWVcIiBbcmVhZE9ubHldPVwidHJ1ZVwiPlxuICAgICAgPGR4LXZhbGlkYXRvcj5cbiAgICAgICAgPGR4aS12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCIgbWVzc2FnZT1cIuWAvOS4jeiDveS4uuepulwiPjwvZHhpLXZhbGlkYXRpb24tcnVsZT5cbiAgICAgIDwvZHgtdmFsaWRhdG9yPlxuICAgIDwvZHgtdGV4dC1ib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZHgtZmllbGRcIj5cbiAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLWxhYmVsXCI+XG4gICAgPHNwYW4+5Lmm562+5ZCN56ewPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLXZhbHVlXCI+XG4gICAgPGR4LXRleHQtYm94IFsodmFsdWUpXT1cIm1hcmsuZGlzcGxheVwiPjwvZHgtdGV4dC1ib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZHgtZmllbGRcIj5cbiAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLWxhYmVsXCI+XG4gICAgPHNwYW4+57uE5Lu257G75Z6LPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtbWFya1wiPiZuYnNwOyo8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtdmFsdWVcIj5cbiAgICA8ZHgtc2VsZWN0LWJveCBbZGF0YVNvdXJjZV09XCJtYXJrVHlwZXNcIlxuICAgICAgICAgICAgICAgICAgIHZhbHVlRXhwcj1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwibWFyay50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cImNoYW5nZU1hcmtUeXBlKClcIj5cbiAgICAgIDxkeC12YWxpZGF0b3I+XG4gICAgICAgIDxkeGktdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiIG1lc3NhZ2U9XCLlgLzkuI3og73kuLrnqbpcIj48L2R4aS12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICA8L2R4LXZhbGlkYXRvcj5cbiAgICA8L2R4LXNlbGVjdC1ib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctY29udGFpbmVyICNtYXJrSXRlbUNvbmZpZ1JlZj48L25nLWNvbnRhaW5lcj5cbiJdfQ==