@hailin-zheng/editor-core 1.0.1 → 1.0.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 (216) hide show
  1. package/lib/doc-ruler.d.ts +51 -0
  2. package/lib/doc-ruler.js +313 -0
  3. package/lib/doc-ruler.js.map +1 -0
  4. package/lib/framework/common-util.d.ts +63 -0
  5. package/lib/framework/common-util.js +178 -0
  6. package/lib/framework/common-util.js.map +1 -0
  7. package/lib/framework/document-change.d.ts +265 -0
  8. package/lib/framework/document-change.js +1342 -0
  9. package/lib/framework/document-change.js.map +1 -0
  10. package/lib/framework/document-combine.d.ts +24 -0
  11. package/lib/framework/document-combine.js +40 -0
  12. package/lib/framework/document-combine.js.map +1 -0
  13. package/lib/framework/document-comment.d.ts +46 -0
  14. package/lib/framework/document-comment.js +148 -0
  15. package/lib/framework/document-comment.js.map +1 -0
  16. package/lib/framework/document-context.d.ts +149 -0
  17. package/lib/framework/document-context.js +330 -0
  18. package/lib/framework/document-context.js.map +1 -0
  19. package/lib/framework/document-eval-func.d.ts +18 -0
  20. package/lib/framework/document-eval-func.js +48 -0
  21. package/lib/framework/document-eval-func.js.map +1 -0
  22. package/lib/framework/document-event.d.ts +213 -0
  23. package/lib/framework/document-event.js +1054 -0
  24. package/lib/framework/document-event.js.map +1 -0
  25. package/lib/framework/document-history.d.ts +26 -0
  26. package/lib/framework/document-history.js +65 -0
  27. package/lib/framework/document-history.js.map +1 -0
  28. package/lib/framework/document-images-loader.d.ts +16 -0
  29. package/lib/framework/document-images-loader.js +66 -0
  30. package/lib/framework/document-images-loader.js.map +1 -0
  31. package/lib/framework/document-input-cursor.d.ts +78 -0
  32. package/lib/framework/document-input-cursor.js +239 -0
  33. package/lib/framework/document-input-cursor.js.map +1 -0
  34. package/lib/framework/document-paint.d.ts +34 -0
  35. package/lib/framework/document-paint.js +103 -0
  36. package/lib/framework/document-paint.js.map +1 -0
  37. package/lib/framework/document-print-offscreen.d.ts +38 -0
  38. package/lib/framework/document-print-offscreen.js +128 -0
  39. package/lib/framework/document-print-offscreen.js.map +1 -0
  40. package/lib/framework/document-print.d.ts +60 -0
  41. package/lib/framework/document-print.js +203 -0
  42. package/lib/framework/document-print.js.map +1 -0
  43. package/lib/framework/document-segmenter.d.ts +2 -0
  44. package/lib/framework/document-segmenter.js +106 -0
  45. package/lib/framework/document-segmenter.js.map +1 -0
  46. package/lib/framework/document-selection.d.ts +89 -0
  47. package/lib/framework/document-selection.js +358 -0
  48. package/lib/framework/document-selection.js.map +1 -0
  49. package/lib/framework/document-template.d.ts +4 -0
  50. package/lib/framework/document-template.js +20 -0
  51. package/lib/framework/document-template.js.map +1 -0
  52. package/lib/framework/document-textline-mode.d.ts +7 -0
  53. package/lib/framework/document-textline-mode.js +30 -0
  54. package/lib/framework/document-textline-mode.js.map +1 -0
  55. package/lib/framework/element-define.d.ts +319 -0
  56. package/lib/framework/element-define.js +579 -0
  57. package/lib/framework/element-define.js.map +1 -0
  58. package/lib/framework/element-event-define.d.ts +99 -0
  59. package/lib/framework/element-event-define.js +108 -0
  60. package/lib/framework/element-event-define.js.map +1 -0
  61. package/lib/framework/element-measure.d.ts +97 -0
  62. package/lib/framework/element-measure.js +551 -0
  63. package/lib/framework/element-measure.js.map +1 -0
  64. package/lib/framework/element-paint.d.ts +42 -0
  65. package/lib/framework/element-paint.js +170 -0
  66. package/lib/framework/element-paint.js.map +1 -0
  67. package/lib/framework/element-props.d.ts +301 -0
  68. package/lib/framework/element-props.js +809 -0
  69. package/lib/framework/element-props.js.map +1 -0
  70. package/lib/framework/element-reader.d.ts +19 -0
  71. package/lib/framework/element-reader.js +151 -0
  72. package/lib/framework/element-reader.js.map +1 -0
  73. package/lib/framework/element-render-cut.d.ts +55 -0
  74. package/lib/framework/element-render-cut.js +449 -0
  75. package/lib/framework/element-render-cut.js.map +1 -0
  76. package/lib/framework/element-serialize.d.ts +30 -0
  77. package/lib/framework/element-serialize.js +113 -0
  78. package/lib/framework/element-serialize.js.map +1 -0
  79. package/lib/framework/element-util.d.ts +369 -0
  80. package/lib/framework/element-util.js +1463 -0
  81. package/lib/framework/element-util.js.map +1 -0
  82. package/lib/framework/impl/checkbox/checkbox-impl.d.ts +24 -0
  83. package/lib/framework/impl/checkbox/checkbox-impl.js +64 -0
  84. package/lib/framework/impl/checkbox/checkbox-impl.js.map +1 -0
  85. package/lib/framework/impl/comments/comment-content-impl.d.ts +40 -0
  86. package/lib/framework/impl/comments/comment-content-impl.js +105 -0
  87. package/lib/framework/impl/comments/comment-content-impl.js.map +1 -0
  88. package/lib/framework/impl/comments/comment-element-impl.d.ts +21 -0
  89. package/lib/framework/impl/comments/comment-element-impl.js +62 -0
  90. package/lib/framework/impl/comments/comment-element-impl.js.map +1 -0
  91. package/lib/framework/impl/comments/comments-container-impl.d.ts +22 -0
  92. package/lib/framework/impl/comments/comments-container-impl.js +62 -0
  93. package/lib/framework/impl/comments/comments-container-impl.js.map +1 -0
  94. package/lib/framework/impl/comments/comments-util.d.ts +12 -0
  95. package/lib/framework/impl/comments/comments-util.js +67 -0
  96. package/lib/framework/impl/comments/comments-util.js.map +1 -0
  97. package/lib/framework/impl/comments/validate-msg-impl.d.ts +21 -0
  98. package/lib/framework/impl/comments/validate-msg-impl.js +83 -0
  99. package/lib/framework/impl/comments/validate-msg-impl.js.map +1 -0
  100. package/lib/framework/impl/data-element/data-decorate-impl.d.ts +30 -0
  101. package/lib/framework/impl/data-element/data-decorate-impl.js +91 -0
  102. package/lib/framework/impl/data-element/data-decorate-impl.js.map +1 -0
  103. package/lib/framework/impl/data-element/data-element-barcode.d.ts +31 -0
  104. package/lib/framework/impl/data-element/data-element-barcode.js +115 -0
  105. package/lib/framework/impl/data-element/data-element-barcode.js.map +1 -0
  106. package/lib/framework/impl/data-element/data-element-base-impl.d.ts +68 -0
  107. package/lib/framework/impl/data-element/data-element-base-impl.js +205 -0
  108. package/lib/framework/impl/data-element/data-element-base-impl.js.map +1 -0
  109. package/lib/framework/impl/data-element/data-element-check-impl.d.ts +35 -0
  110. package/lib/framework/impl/data-element/data-element-check-impl.js +133 -0
  111. package/lib/framework/impl/data-element/data-element-check-impl.js.map +1 -0
  112. package/lib/framework/impl/data-element/data-element-date-impl.d.ts +23 -0
  113. package/lib/framework/impl/data-element/data-element-date-impl.js +111 -0
  114. package/lib/framework/impl/data-element/data-element-date-impl.js.map +1 -0
  115. package/lib/framework/impl/data-element/data-element-group-impl.d.ts +23 -0
  116. package/lib/framework/impl/data-element/data-element-group-impl.js +130 -0
  117. package/lib/framework/impl/data-element/data-element-group-impl.js.map +1 -0
  118. package/lib/framework/impl/data-element/data-element-image-impl.d.ts +30 -0
  119. package/lib/framework/impl/data-element/data-element-image-impl.js +137 -0
  120. package/lib/framework/impl/data-element/data-element-image-impl.js.map +1 -0
  121. package/lib/framework/impl/data-element/data-element-list-impl.d.ts +22 -0
  122. package/lib/framework/impl/data-element/data-element-list-impl.js +131 -0
  123. package/lib/framework/impl/data-element/data-element-list-impl.js.map +1 -0
  124. package/lib/framework/impl/data-element/data-element-text-impl.d.ts +23 -0
  125. package/lib/framework/impl/data-element/data-element-text-impl.js +103 -0
  126. package/lib/framework/impl/data-element/data-element-text-impl.js.map +1 -0
  127. package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +21 -0
  128. package/lib/framework/impl/decorate/fill-null-space-imple.js +43 -0
  129. package/lib/framework/impl/decorate/fill-null-space-imple.js.map +1 -0
  130. package/lib/framework/impl/document/doc-body-impl.d.ts +27 -0
  131. package/lib/framework/impl/document/doc-body-impl.js +79 -0
  132. package/lib/framework/impl/document/doc-body-impl.js.map +1 -0
  133. package/lib/framework/impl/document/doc-body-part-impl.d.ts +30 -0
  134. package/lib/framework/impl/document/doc-body-part-impl.js +94 -0
  135. package/lib/framework/impl/document/doc-body-part-impl.js.map +1 -0
  136. package/lib/framework/impl/document/doc-container-impl.d.ts +16 -0
  137. package/lib/framework/impl/document/doc-container-impl.js +21 -0
  138. package/lib/framework/impl/document/doc-container-impl.js.map +1 -0
  139. package/lib/framework/impl/document/doc-footer-impl.d.ts +26 -0
  140. package/lib/framework/impl/document/doc-footer-impl.js +77 -0
  141. package/lib/framework/impl/document/doc-footer-impl.js.map +1 -0
  142. package/lib/framework/impl/document/doc-header-impl.d.ts +26 -0
  143. package/lib/framework/impl/document/doc-header-impl.js +83 -0
  144. package/lib/framework/impl/document/doc-header-impl.js.map +1 -0
  145. package/lib/framework/impl/document/doc-impl.d.ts +61 -0
  146. package/lib/framework/impl/document/doc-impl.js +209 -0
  147. package/lib/framework/impl/document/doc-impl.js.map +1 -0
  148. package/lib/framework/impl/media-formula/menstrual-history.d.ts +35 -0
  149. package/lib/framework/impl/media-formula/menstrual-history.js +153 -0
  150. package/lib/framework/impl/media-formula/menstrual-history.js.map +1 -0
  151. package/lib/framework/impl/paragraph/p-impl.d.ts +45 -0
  152. package/lib/framework/impl/paragraph/p-impl.js +156 -0
  153. package/lib/framework/impl/paragraph/p-impl.js.map +1 -0
  154. package/lib/framework/impl/picture/image-impl.d.ts +31 -0
  155. package/lib/framework/impl/picture/image-impl.js +124 -0
  156. package/lib/framework/impl/picture/image-impl.js.map +1 -0
  157. package/lib/framework/impl/radio/radio-impl.d.ts +22 -0
  158. package/lib/framework/impl/radio/radio-impl.js +72 -0
  159. package/lib/framework/impl/radio/radio-impl.js.map +1 -0
  160. package/lib/framework/impl/symbol/br-symbol-impl.d.ts +22 -0
  161. package/lib/framework/impl/symbol/br-symbol-impl.js +54 -0
  162. package/lib/framework/impl/symbol/br-symbol-impl.js.map +1 -0
  163. package/lib/framework/impl/symbol/p-symbol-impl.d.ts +19 -0
  164. package/lib/framework/impl/symbol/p-symbol-impl.js +54 -0
  165. package/lib/framework/impl/symbol/p-symbol-impl.js.map +1 -0
  166. package/lib/framework/impl/table/table-cell-impl.d.ts +37 -0
  167. package/lib/framework/impl/table/table-cell-impl.js +145 -0
  168. package/lib/framework/impl/table/table-cell-impl.js.map +1 -0
  169. package/lib/framework/impl/table/table-impl.d.ts +55 -0
  170. package/lib/framework/impl/table/table-impl.js +363 -0
  171. package/lib/framework/impl/table/table-impl.js.map +1 -0
  172. package/lib/framework/impl/table/table-row-impl.d.ts +26 -0
  173. package/lib/framework/impl/table/table-row-impl.js +75 -0
  174. package/lib/framework/impl/table/table-row-impl.js.map +1 -0
  175. package/lib/framework/impl/table/table-split-cell-patch.d.ts +20 -0
  176. package/lib/framework/impl/table/table-split-cell-patch.js +89 -0
  177. package/lib/framework/impl/table/table-split-cell-patch.js.map +1 -0
  178. package/lib/framework/impl/table/table-split-cell.d.ts +90 -0
  179. package/lib/framework/impl/table/table-split-cell.js +464 -0
  180. package/lib/framework/impl/table/table-split-cell.js.map +1 -0
  181. package/lib/framework/impl/table/table-util.d.ts +150 -0
  182. package/lib/framework/impl/table/table-util.js +678 -0
  183. package/lib/framework/impl/table/table-util.js.map +1 -0
  184. package/lib/framework/impl/text/text-impl.d.ts +32 -0
  185. package/lib/framework/impl/text/text-impl.js +149 -0
  186. package/lib/framework/impl/text/text-impl.js.map +1 -0
  187. package/lib/framework/impl/text/track-run-impl.d.ts +27 -0
  188. package/lib/framework/impl/text/track-run-impl.js +112 -0
  189. package/lib/framework/impl/text/track-run-impl.js.map +1 -0
  190. package/lib/framework/notify.d.ts +13 -0
  191. package/lib/framework/notify.js +116 -0
  192. package/lib/framework/notify.js.map +1 -0
  193. package/lib/framework/range-util.d.ts +40 -0
  194. package/lib/framework/range-util.js +312 -0
  195. package/lib/framework/range-util.js.map +1 -0
  196. package/lib/framework/render-context.d.ts +91 -0
  197. package/lib/framework/render-context.js +384 -0
  198. package/lib/framework/render-context.js.map +1 -0
  199. package/lib/framework/render-define.d.ts +109 -0
  200. package/lib/framework/render-define.js +195 -0
  201. package/lib/framework/render-define.js.map +1 -0
  202. package/lib/framework/selection-overlays.d.ts +30 -0
  203. package/lib/framework/selection-overlays.js +124 -0
  204. package/lib/framework/selection-overlays.js.map +1 -0
  205. package/lib/texteditor.d.ts +318 -0
  206. package/lib/texteditor.js +913 -0
  207. package/lib/texteditor.js.map +1 -0
  208. package/lib/util/subject.d.ts +34 -0
  209. package/lib/util/subject.js +88 -0
  210. package/lib/util/subject.js.map +1 -0
  211. package/lib/util/table-bind.d.ts +5 -0
  212. package/lib/util/table-bind.js +6 -0
  213. package/lib/util/table-bind.js.map +1 -0
  214. package/package.json +1 -1
  215. package/tsconfig.json +1 -1
  216. package/webpack.config.js +0 -1
@@ -0,0 +1,43 @@
1
+ import { LeafElement } from "../../element-define";
2
+ import { ElementUtil } from "../../element-util";
3
+ import { LeafRenderObject } from "../../render-define";
4
+ /**
5
+ * 当前数据元内容长度小于最小长度时,需要当前元素撑开以达到最小长度
6
+ */
7
+ export class FillNullSpaceElement extends LeafElement {
8
+ //需要填充的长度
9
+ length;
10
+ constructor() {
11
+ super('fill-null');
12
+ this.isDecorate = true;
13
+ this.disableClick = true;
14
+ }
15
+ createRenderObject(options, renderCtx) {
16
+ return new FillNullSpaceRenderObject();
17
+ }
18
+ serialize(viewOptions) {
19
+ throw new Error("Method not implemented.");
20
+ }
21
+ clone(data) {
22
+ //throw new Error("Method not implemented.");
23
+ return new FillNullSpaceElement();
24
+ }
25
+ }
26
+ export class FillNullSpaceRenderObject extends LeafRenderObject {
27
+ constructor() {
28
+ super(null);
29
+ this.disableClick = true;
30
+ }
31
+ render(ctx, position) {
32
+ //throw new Error("Method not implemented.");
33
+ if (ctx.viewOptions.showDebug) {
34
+ ctx.contentContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'red');
35
+ }
36
+ }
37
+ clone() {
38
+ const clone = new FillNullSpaceRenderObject();
39
+ clone.rect = ElementUtil.cloneRect(this.rect);
40
+ return clone;
41
+ }
42
+ }
43
+ //# sourceMappingURL=fill-null-space-imple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill-null-space-imple.js","sourceRoot":"","sources":["../../../../src/med_editor/framework/impl/decorate/fill-null-space-imple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAA+B,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,qBAAqB,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACjD,SAAS;IACT,MAAM,CAAU;IAChB;QACI,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,kBAAkB,CAAC,OAAoB,EAAE,SAA6B;QAClE,OAAO,IAAI,yBAAyB,EAAE,CAAC;IAC3C,CAAC;IACD,SAAS,CAAC,WAAwB;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,IAAa;QACf,6CAA6C;QAC7C,OAAO,IAAI,oBAAoB,EAAE,CAAC;IACtC,CAAC;CAEJ;AAGD,MAAM,OAAO,yBAA0B,SAAQ,gBAAgB;IAC3D;QACI,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,GAAuB,EAAE,QAAmC;QAC/D,6CAA6C;QAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE;YAC3B,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACjG;IACL,CAAC;IACD,KAAK;QACD,MAAM,KAAK,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ"}
@@ -0,0 +1,27 @@
1
+ import { BlockContainerElement, Element, ElementFactory, SerializeProps } from "@/med_editor/framework/element-define";
2
+ import { MouseElementEvent } from "@/med_editor/framework/element-event-define";
3
+ import { RenderContenxtType } from "@/med_editor/framework/render-context";
4
+ import { MuiltBlockLineRenderObject, RenderObject } from "@/med_editor/framework/render-define";
5
+ export declare class DocumentBodyElement extends BlockContainerElement {
6
+ trackChanges: boolean;
7
+ constructor();
8
+ createRenderObject(): DocumentBodyRenderObject;
9
+ serialize(): SerializeProps;
10
+ switchEditMode(evt: MouseElementEvent): void;
11
+ clone(data: boolean): DocumentBodyElement;
12
+ }
13
+ export declare class DocumentBodyRenderObject extends MuiltBlockLineRenderObject {
14
+ beginRender(ctx: RenderContenxtType, position: {
15
+ x: number;
16
+ y: number;
17
+ }): void;
18
+ endRender(ctx: RenderContenxtType, position: {
19
+ x: number;
20
+ y: number;
21
+ }): void;
22
+ clone(cloneData?: boolean): RenderObject;
23
+ }
24
+ export declare class DocumentBodyFactory extends ElementFactory<null> {
25
+ match(type: string): boolean;
26
+ createElement(data: any, renderCtx: RenderContenxtType): Element;
27
+ }
@@ -0,0 +1,79 @@
1
+ import { BlockContainerElement, ElementFactory } from "@/med_editor/framework/element-define";
2
+ import { ElementUtil } from "@/med_editor/framework/element-util";
3
+ import { MuiltBlockLineRenderObject } from "@/med_editor/framework/render-define";
4
+ import { DocumentElement } from "./doc-impl";
5
+ export class DocumentBodyElement extends BlockContainerElement {
6
+ //当前区域内是否留痕
7
+ trackChanges = false;
8
+ constructor() {
9
+ super('body');
10
+ //this.editMode = EditMode.Free;
11
+ this.addEvent('ElementDblClick', (evt) => {
12
+ if (this.disableClick) {
13
+ this.switchEditMode(evt);
14
+ }
15
+ }, true);
16
+ }
17
+ createRenderObject() {
18
+ return new DocumentBodyRenderObject(this);
19
+ }
20
+ serialize() {
21
+ return {
22
+ type: 'body',
23
+ props: {}
24
+ };
25
+ }
26
+ switchEditMode(evt) {
27
+ const docElement = ElementUtil.getParentByType(this, DocumentElement);
28
+ if (docElement) {
29
+ docElement.switchPageHeaderEditor(evt.selectionState, this);
30
+ }
31
+ return;
32
+ }
33
+ clone(data) {
34
+ const clone = new DocumentBodyElement();
35
+ if (data) {
36
+ for (let i = 0; i < this.length; i++) {
37
+ clone.addChild(this.getChild(i).clone(true));
38
+ }
39
+ }
40
+ return clone;
41
+ }
42
+ }
43
+ export class DocumentBodyRenderObject extends MuiltBlockLineRenderObject {
44
+ beginRender(ctx, position) {
45
+ //console.log('绘制页内容-begin');
46
+ if (this.element.disableClick && ctx.drawMode === 'view') {
47
+ ctx.contentContext.setGlobalAlpha(0.5);
48
+ }
49
+ if (ctx.viewOptions.showDebug) {
50
+ ctx.overlaysContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'rgb(177,177,177,0.4)');
51
+ }
52
+ }
53
+ endRender(ctx, position) {
54
+ //console.log('绘制页内容-end');
55
+ if (this.element.disableClick && ctx.drawMode === 'view') {
56
+ ctx.contentContext.setGlobalAlpha(1);
57
+ }
58
+ }
59
+ clone(cloneData = true) {
60
+ const cloneRender = new DocumentBodyRenderObject(this.element);
61
+ cloneRender.rect = ElementUtil.cloneRect(this.rect);
62
+ if (cloneData) {
63
+ for (let i = 0; i < this.length; i++) {
64
+ cloneRender.addChild(this.getChild(i).clone());
65
+ }
66
+ }
67
+ return cloneRender;
68
+ }
69
+ }
70
+ export class DocumentBodyFactory extends ElementFactory {
71
+ match(type) {
72
+ return type === 'body';
73
+ }
74
+ createElement(data, renderCtx) {
75
+ const element = new DocumentBodyElement();
76
+ return element;
77
+ }
78
+ }
79
+ //# sourceMappingURL=doc-body-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-body-impl.js","sourceRoot":"","sources":["../../../../src/med_editor/framework/impl/document/doc-body-impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { BlockContainerElement, SerializeProps, Element, readElementProps, ElementFactory } from "@/med_editor/framework/element-define";
2
+ import { RenderContenxtType } from "@/med_editor/framework/render-context";
3
+ import { MuiltBlockLineRenderObject, RenderObject } from "@/med_editor/framework/render-define";
4
+ import { BodyPartProps } from "../../element-props";
5
+ /**
6
+ * 用于合并病程录,每个part包含每份病程录body
7
+ * 多个part处于一个body下面
8
+ */
9
+ export declare class DocumentBodyPartElement extends BlockContainerElement<BodyPartProps> {
10
+ isModify: boolean;
11
+ constructor();
12
+ createRenderObject(): DocumentBodyPartRenderObject;
13
+ serialize(): SerializeProps;
14
+ clone(data: boolean): DocumentBodyPartElement;
15
+ }
16
+ export declare class DocumentBodyPartRenderObject extends MuiltBlockLineRenderObject {
17
+ beginRender(ctx: RenderContenxtType, position: {
18
+ x: number;
19
+ y: number;
20
+ }): void;
21
+ endRender(ctx: RenderContenxtType, position: {
22
+ x: number;
23
+ y: number;
24
+ }): void;
25
+ clone(cloneData?: boolean): RenderObject;
26
+ }
27
+ export declare class DocumentBodyPartFactory extends ElementFactory<BodyPartProps> {
28
+ match(type: string): boolean;
29
+ createElement(data: readElementProps<BodyPartProps>, renderCtx: RenderContenxtType): Element<any>;
30
+ }
@@ -0,0 +1,94 @@
1
+ import { BlockContainerElement, ElementFactory } from "@/med_editor/framework/element-define";
2
+ import { ElementUtil } from "@/med_editor/framework/element-util";
3
+ import { MuiltBlockLineRenderObject } from "@/med_editor/framework/render-define";
4
+ import { BodyPartProps } from "../../element-props";
5
+ /**
6
+ * 用于合并病程录,每个part包含每份病程录body
7
+ * 多个part处于一个body下面
8
+ */
9
+ export class DocumentBodyPartElement extends BlockContainerElement {
10
+ //是否被修改
11
+ isModify;
12
+ constructor() {
13
+ super('body-part');
14
+ this.addEvent('ElementMousemove', (evt) => {
15
+ this.isMouseenter = true;
16
+ this.refreshView();
17
+ });
18
+ this.addEvent('ElementMouseLeave', (evt) => {
19
+ this.isMouseenter = false;
20
+ this.refreshView();
21
+ });
22
+ this.addEvent('GotCursor', (evt) => {
23
+ this.isFocused = true;
24
+ this.refreshView();
25
+ });
26
+ this.addEvent('LostCursor', (evt) => {
27
+ this.isFocused = false;
28
+ this.refreshView();
29
+ });
30
+ this.props = new BodyPartProps();
31
+ }
32
+ createRenderObject() {
33
+ const render = new DocumentBodyPartRenderObject(this);
34
+ render.margin.top = 10;
35
+ render.margin.bottom = 10;
36
+ return render;
37
+ }
38
+ serialize() {
39
+ return {
40
+ type: this.type,
41
+ props: {
42
+ partId: this.props.partId,
43
+ }
44
+ };
45
+ }
46
+ clone(data) {
47
+ const clone = new DocumentBodyPartElement();
48
+ clone.props.partId = this.props.partId;
49
+ if (data) {
50
+ for (let i = 0; i < this.length; i++) {
51
+ clone.addChild(this.getChild(i).clone(true));
52
+ }
53
+ }
54
+ return clone;
55
+ }
56
+ }
57
+ export class DocumentBodyPartRenderObject extends MuiltBlockLineRenderObject {
58
+ beginRender(ctx, position) {
59
+ //if (ctx.drawMode === 'view' && (this.element.isFocused || this.element.isMouseenter)) {
60
+ const borderColor = '#002766';
61
+ ctx.overlaysContext.ctx.save();
62
+ const bgColor = (this.element.isFocused || this.element.isMouseenter) ? '#d9d9d9' : '#ffffff';
63
+ ctx.overlaysContext.fillRect(position.x - 2, position.y - 2, this.rect.width + 4, this.rect.height + 4, bgColor, 5, 'black');
64
+ //ctx.overlaysContext.strokeRect(position.x, position.y, this.rect.width, this.rect.height, borderColor)
65
+ ctx.overlaysContext.ctx.restore();
66
+ //}
67
+ }
68
+ endRender(ctx, position) {
69
+ }
70
+ clone(cloneData = true) {
71
+ const cloneRender = new DocumentBodyPartRenderObject(this.element);
72
+ cloneRender.rect = ElementUtil.cloneRect(this.rect);
73
+ cloneRender.margin.top = this.margin.top;
74
+ cloneRender.margin.bottom = this.margin.bottom;
75
+ if (cloneData) {
76
+ for (let i = 0; i < this.length; i++) {
77
+ cloneRender.addChild(this.getChild(i).clone());
78
+ }
79
+ }
80
+ return cloneRender;
81
+ }
82
+ }
83
+ export class DocumentBodyPartFactory extends ElementFactory {
84
+ match(type) {
85
+ return type === 'body-part';
86
+ }
87
+ createElement(data, renderCtx) {
88
+ const bodyPart = data.props?.partId || '';
89
+ const element = new DocumentBodyPartElement();
90
+ element.props.partId = bodyPart;
91
+ return element;
92
+ }
93
+ }
94
+ //# sourceMappingURL=doc-body-part-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-body-part-impl.js","sourceRoot":"","sources":["../../../../src/med_editor/framework/impl/document/doc-body-part-impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { RenderContenxtType } from "@/med_editor/framework/render-context";
2
+ import { BlockContainerRenderObject, RenderObject } from "@/med_editor/framework/render-define";
3
+ import { DocumentRenderObject } from "./doc-impl";
4
+ export declare class DocumentContainerRender extends BlockContainerRenderObject {
5
+ constructor();
6
+ beginRender(ctx: RenderContenxtType, position: {
7
+ x: number;
8
+ y: number;
9
+ }): void;
10
+ endRender(ctx: RenderContenxtType, position: {
11
+ x: number;
12
+ y: number;
13
+ }): void;
14
+ clone(): RenderObject;
15
+ addPages(pages: Array<DocumentRenderObject>): void;
16
+ }
@@ -0,0 +1,21 @@
1
+ import { BlockContainerRenderObject } from "@/med_editor/framework/render-define";
2
+ export class DocumentContainerRender extends BlockContainerRenderObject {
3
+ constructor() {
4
+ super(null);
5
+ }
6
+ beginRender(ctx, position) {
7
+ //throw new Error("Method not implemented.");
8
+ }
9
+ endRender(ctx, position) {
10
+ //throw new Error("Method not implemented.");
11
+ }
12
+ clone() {
13
+ throw new Error("Method not implemented.");
14
+ }
15
+ addPages(pages) {
16
+ for (let i = 0; i < pages.length; i++) {
17
+ this.addChild(pages[i]);
18
+ }
19
+ }
20
+ }
21
+ //# sourceMappingURL=doc-container-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-container-impl.js","sourceRoot":"","sources":["../../../../src/med_editor/framework/impl/document/doc-container-impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAgB,MAAM,sCAAsC,CAAC;AAGhG,MAAM,OAAO,uBAAwB,SAAQ,0BAA0B;IACnE;QACI,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,WAAW,CAAC,GAAuB,EAAE,QAAmC;QACpE,6CAA6C;IACjD,CAAC;IACD,SAAS,CAAC,GAAuB,EAAE,QAAmC;QAClE,6CAA6C;IACjD,CAAC;IACD,KAAK;QACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,KAAkC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import { BlockContainerElement, Element, ElementFactory, SerializeProps } from "@/med_editor/framework/element-define";
2
+ import { MouseElementEvent } from "@/med_editor/framework/element-event-define";
3
+ import { RenderContenxtType } from "@/med_editor/framework/render-context";
4
+ import { BlockContainerRenderObject, RenderObject } from "@/med_editor/framework/render-define";
5
+ export declare class DocumentFooterElement extends BlockContainerElement {
6
+ constructor();
7
+ clone(data: boolean): Element;
8
+ switchEditMode(evt: MouseElementEvent): void;
9
+ createRenderObject(): DocumentFooterRenderObject;
10
+ serialize(): SerializeProps;
11
+ }
12
+ export declare class DocumentFooterRenderObject extends BlockContainerRenderObject {
13
+ beginRender(ctx: RenderContenxtType, position: {
14
+ x: number;
15
+ y: number;
16
+ }): void;
17
+ endRender(ctx: RenderContenxtType, position: {
18
+ x: number;
19
+ y: number;
20
+ }): void;
21
+ clone(): RenderObject;
22
+ }
23
+ export declare class DocumentFooterFactory extends ElementFactory<null> {
24
+ match(type: string): boolean;
25
+ createElement(data: any, renderCtx: RenderContenxtType): Element;
26
+ }
@@ -0,0 +1,77 @@
1
+ import { BlockContainerElement, ElementFactory } from "@/med_editor/framework/element-define";
2
+ import { ElementUtil } from "@/med_editor/framework/element-util";
3
+ import { BlockContainerRenderObject } from "@/med_editor/framework/render-define";
4
+ export class DocumentFooterElement extends BlockContainerElement {
5
+ constructor() {
6
+ super('footer');
7
+ //this.editMode = EditMode.Disabled;
8
+ this.disableClick = true;
9
+ this.addEvent('ElementDblClick', (evt) => {
10
+ this.switchEditMode(evt);
11
+ }, true);
12
+ }
13
+ clone(data) {
14
+ const clone = new DocumentFooterElement();
15
+ if (data) {
16
+ for (let i = 0; i < this.length; i++) {
17
+ clone.addChild(this.getChild(i).clone(true));
18
+ }
19
+ }
20
+ return clone;
21
+ }
22
+ switchEditMode(evt) {
23
+ const docElement = this.parent;
24
+ docElement.switchPageHeaderEditor(evt.selectionState, this);
25
+ return;
26
+ }
27
+ createRenderObject() {
28
+ const renderObject = new DocumentFooterRenderObject(this);
29
+ return renderObject;
30
+ }
31
+ serialize() {
32
+ return {
33
+ type: 'footer',
34
+ props: {}
35
+ };
36
+ }
37
+ }
38
+ export class DocumentFooterRenderObject extends BlockContainerRenderObject {
39
+ beginRender(ctx, position) {
40
+ //判断页眉是否为输入内容
41
+ const isFooterEmpty = ElementUtil.checkEmptyContent(this);
42
+ if (this.element.disableClick && ctx.drawMode === 'view') {
43
+ if (isFooterEmpty) {
44
+ ctx.contentContext.setGlobalAlpha(0);
45
+ return;
46
+ }
47
+ else {
48
+ ctx.contentContext.setGlobalAlpha(0.5);
49
+ }
50
+ }
51
+ }
52
+ endRender(ctx, position) {
53
+ ctx.contentContext.setGlobalAlpha(1);
54
+ if (ctx.viewOptions.showDebug) {
55
+ ctx.overlaysContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'rgb(122,122,122,0.4)');
56
+ }
57
+ }
58
+ clone() {
59
+ const cloneRender = new DocumentFooterRenderObject(this.element);
60
+ cloneRender.rect = ElementUtil.cloneRect(this.rect);
61
+ for (let i = 0; i < this.length; i++) {
62
+ cloneRender.addChild(this.getChild(i).clone());
63
+ }
64
+ return cloneRender;
65
+ }
66
+ }
67
+ export class DocumentFooterFactory extends ElementFactory {
68
+ match(type) {
69
+ return type === 'footer';
70
+ }
71
+ createElement(data, renderCtx) {
72
+ const element = new DocumentFooterElement();
73
+ //element.renderCtx = renderCtx;
74
+ return element;
75
+ }
76
+ }
77
+ //# sourceMappingURL=doc-footer-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-footer-impl.js","sourceRoot":"","sources":["../../../../src/med_editor/framework/impl/document/doc-footer-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAW,cAAc,EAAwB,MAAM,uCAAuC,CAAC;AAE7H,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAgB,MAAM,sCAAsC,CAAC;AAGhG,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAC5D;QACI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,oCAAoC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IACD,KAAK,CAAC,IAAa;QACf,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,IAAI,IAAI,EAAE;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;aAChD;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,GAAsB;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAyB,CAAC;QAClD,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IAED,kBAAkB;QACd,MAAM,YAAY,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,SAAS;QACL,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;SACZ,CAAA;IACL,CAAC;CACJ;AAED,MAAM,OAAO,0BAA2B,SAAQ,0BAA0B;IACtE,WAAW,CAAC,GAAuB,EAAE,QAAmC;QACpE,aAAa;QACb,MAAM,aAAa,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;YACtD,IAAI,aAAa,EAAE;gBACf,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACrC,OAAO;aACV;iBAAM;gBACH,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aAC1C;SACJ;IACL,CAAC;IAED,SAAS,CAAC,GAAuB,EAAE,QAAmC;QAClE,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE;YAC3B,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;SAClH;IACL,CAAC;IAED,KAAK;QACD,MAAM,WAAW,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAClD;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAGD,MAAM,OAAO,qBAAsB,SAAQ,cAAoB;IAC3D,KAAK,CAAC,IAAY;QACd,OAAO,IAAI,KAAK,QAAQ,CAAC;IAC7B,CAAC;IAED,aAAa,CAAC,IAAS,EAAE,SAA6B;QAClD,MAAM,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC5C,gCAAgC;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import { BlockContainerElement, Element, ElementFactory, SerializeProps } from "@/med_editor/framework/element-define";
2
+ import { MouseElementEvent } from "@/med_editor/framework/element-event-define";
3
+ import { RenderContenxtType } from "@/med_editor/framework/render-context";
4
+ import { BlockContainerRenderObject, RenderObject } from "@/med_editor/framework/render-define";
5
+ export declare class DocumentHeaderElement extends BlockContainerElement {
6
+ constructor();
7
+ clone(data: boolean): Element;
8
+ switchEditMode(evt: MouseElementEvent): void;
9
+ createRenderObject(): DocumentHeaderRenderObject;
10
+ serialize(): SerializeProps;
11
+ }
12
+ export declare class DocumentHeaderRenderObject extends BlockContainerRenderObject {
13
+ beginRender(ctx: RenderContenxtType, position: {
14
+ x: number;
15
+ y: number;
16
+ }): void;
17
+ endRender(ctx: RenderContenxtType, position: {
18
+ x: number;
19
+ y: number;
20
+ }): void;
21
+ clone(): RenderObject;
22
+ }
23
+ export declare class DocumentHeaderFactory extends ElementFactory<null> {
24
+ match(type: string): boolean;
25
+ createElement(data: any, renderCtx: RenderContenxtType): Element;
26
+ }
@@ -0,0 +1,83 @@
1
+ import { BlockContainerElement, ElementFactory } from "@/med_editor/framework/element-define";
2
+ import { ElementUtil } from "@/med_editor/framework/element-util";
3
+ import { BlockContainerRenderObject } from "@/med_editor/framework/render-define";
4
+ export class DocumentHeaderElement extends BlockContainerElement {
5
+ constructor() {
6
+ super('header');
7
+ this.addEvent('ElementDblClick', (evt) => {
8
+ this.switchEditMode(evt);
9
+ }, true);
10
+ //this.editMode = EditMode.Disabled;
11
+ this.disableClick = true;
12
+ }
13
+ clone(data) {
14
+ const clone = new DocumentHeaderElement();
15
+ if (data) {
16
+ for (let i = 0; i < this.length; i++) {
17
+ clone.addChild(this.getChild(i).clone(true));
18
+ }
19
+ }
20
+ return clone;
21
+ }
22
+ switchEditMode(evt) {
23
+ const docElement = this.parent;
24
+ docElement.switchPageHeaderEditor(evt.selectionState, this);
25
+ return;
26
+ }
27
+ createRenderObject() {
28
+ const renderObject = new DocumentHeaderRenderObject(this);
29
+ return renderObject;
30
+ }
31
+ serialize() {
32
+ return {
33
+ type: 'header',
34
+ props: {}
35
+ };
36
+ }
37
+ }
38
+ export class DocumentHeaderRenderObject extends BlockContainerRenderObject {
39
+ beginRender(ctx, position) {
40
+ //判断页眉是否为输入内容
41
+ const isHeaderEmpty = ElementUtil.checkEmptyContent(this);
42
+ //存在输入内容时,绘制页眉-页体分割线
43
+ if (!isHeaderEmpty || !this.element.disableClick) {
44
+ const headerLineY = this.rect.height;
45
+ ctx.contentContext.drawLine(position.x, position.y + headerLineY, this.rect.width, 'black', 0.5);
46
+ }
47
+ if (this.element.disableClick && ctx.drawMode === 'view') {
48
+ if (isHeaderEmpty) {
49
+ ctx.contentContext.setGlobalAlpha(0);
50
+ return;
51
+ }
52
+ ctx.contentContext.setGlobalAlpha(0.7);
53
+ }
54
+ }
55
+ endRender(ctx, position) {
56
+ //console.log('绘制页头-end');
57
+ if (this.element.disableClick && ctx.drawMode === 'view') {
58
+ ctx.contentContext.setGlobalAlpha(1);
59
+ }
60
+ if (ctx.viewOptions.showDebug) {
61
+ ctx.overlaysContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'rgb(122,122,122,0.4)');
62
+ }
63
+ }
64
+ clone() {
65
+ const cloneRender = new DocumentHeaderRenderObject(this.element);
66
+ cloneRender.rect = ElementUtil.cloneRect(this.rect);
67
+ for (let i = 0; i < this.length; i++) {
68
+ cloneRender.addChild(this.getChild(i).clone());
69
+ }
70
+ return cloneRender;
71
+ }
72
+ }
73
+ export class DocumentHeaderFactory extends ElementFactory {
74
+ match(type) {
75
+ return type === 'header';
76
+ }
77
+ createElement(data, renderCtx) {
78
+ const element = new DocumentHeaderElement();
79
+ //element.renderCtx = renderCtx;
80
+ return element;
81
+ }
82
+ }
83
+ //# sourceMappingURL=doc-header-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-header-impl.js","sourceRoot":"","sources":["../../../../src/med_editor/framework/impl/document/doc-header-impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { BlockContainerElement, Element, ElementFactory, MarginProps, readElementProps, SerializeProps, ViewOptions } from "@/med_editor/framework/element-define";
2
+ import { DocumentProps } from '../../element-props';
3
+ import { RenderContenxtType } from "@/med_editor/framework/render-context";
4
+ import { DocumentBodyElement } from "./doc-body-impl";
5
+ import { DocumentHeaderElement } from "./doc-header-impl";
6
+ import { BlockContainerRenderObject, RenderObject } from "@/med_editor/framework/render-define";
7
+ import { DocumentFooterElement } from "./doc-footer-impl";
8
+ import { CommsContainerElement } from "../comments/comments-container-impl";
9
+ import { SelectionState } from "../../document-selection";
10
+ export declare class DocumentElement extends BlockContainerElement<DocumentProps> {
11
+ viewOptions: ViewOptions;
12
+ bodyElement: DocumentBodyElement;
13
+ headerElement: DocumentHeaderElement;
14
+ footerElement: DocumentFooterElement;
15
+ commentsContainerElement: CommsContainerElement;
16
+ headerEditState: boolean;
17
+ constructor();
18
+ createRenderObject(options: ViewOptions): DocumentRenderObject;
19
+ serialize(): SerializeProps;
20
+ clone(): DocumentElement;
21
+ /**
22
+ * 更新页边距
23
+ * @param marginProps
24
+ */
25
+ updateMargin(marginProps: Partial<MarginProps>, unit?: 'mm' | 'cm'): void;
26
+ /**
27
+ * 切换开启页眉页脚编辑功能
28
+ */
29
+ switchPageHeaderEditor(ss: SelectionState, ele: Element | null): void;
30
+ }
31
+ export declare class DocumentRenderObject extends BlockContainerRenderObject {
32
+ constructor(ele: Element);
33
+ headerLine: number;
34
+ footerLine: number;
35
+ beginRender(ctx: RenderContenxtType, position: {
36
+ x: number;
37
+ y: number;
38
+ }): void;
39
+ endRender(ctx: RenderContenxtType, position: {
40
+ x: number;
41
+ y: number;
42
+ }): void;
43
+ /**
44
+ * 绘制水印
45
+ * @param ctx
46
+ * @param position
47
+ */
48
+ private drawWatermark;
49
+ /**
50
+ * 绘制文档页码
51
+ */
52
+ drawDocPageNum(ctx: RenderContenxtType, position: {
53
+ x: number;
54
+ y: number;
55
+ }): void;
56
+ clone(): RenderObject;
57
+ }
58
+ export declare class DocumentFactory extends ElementFactory<DocumentProps> {
59
+ match(type: string): boolean;
60
+ createElement(data: readElementProps<DocumentProps>, renderCtx: RenderContenxtType): Element;
61
+ }