@hailin-zheng/editor-core 1.0.5 → 1.0.6

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 (238) hide show
  1. package/lib/doc-ruler.d.ts +51 -0
  2. package/{src/med_editor/doc-ruler.ts → lib/doc-ruler.js} +73 -100
  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/{src/med_editor/framework/document-change.ts → lib/framework/document-change.js} +257 -307
  9. package/lib/framework/document-change.js.map +1 -0
  10. package/lib/framework/document-combine.d.ts +24 -0
  11. package/{src/med_editor/framework/document-combine.ts → lib/framework/document-combine.js} +11 -15
  12. package/lib/framework/document-combine.js.map +1 -0
  13. package/lib/framework/document-comment.d.ts +46 -0
  14. package/{src/med_editor/framework/document-comment.ts → lib/framework/document-comment.js} +37 -57
  15. package/lib/framework/document-comment.js.map +1 -0
  16. package/lib/framework/document-context.d.ts +149 -0
  17. package/{src/med_editor/framework/document-context.ts → lib/framework/document-context.js} +101 -181
  18. package/lib/framework/document-context.js.map +1 -0
  19. package/lib/framework/document-eval-func.d.ts +18 -0
  20. package/{src/med_editor/framework/document-eval-func.ts → lib/framework/document-eval-func.js} +11 -16
  21. package/lib/framework/document-eval-func.js.map +1 -0
  22. package/lib/framework/document-event.d.ts +213 -0
  23. package/{src/med_editor/framework/document-event.ts → lib/framework/document-event.js} +216 -244
  24. package/lib/framework/document-event.js.map +1 -0
  25. package/lib/framework/document-history.d.ts +26 -0
  26. package/{src/med_editor/framework/document-history.ts → lib/framework/document-history.js} +14 -25
  27. package/lib/framework/document-history.js.map +1 -0
  28. package/lib/framework/document-images-loader.d.ts +16 -0
  29. package/{src/med_editor/framework/document-images-loader.ts → lib/framework/document-images-loader.js} +17 -25
  30. package/lib/framework/document-images-loader.js.map +1 -0
  31. package/lib/framework/document-input-cursor.d.ts +78 -0
  32. package/{src/med_editor/framework/document-input-cursor.ts → lib/framework/document-input-cursor.js} +71 -76
  33. package/lib/framework/document-input-cursor.js.map +1 -0
  34. package/lib/framework/document-paint.d.ts +34 -0
  35. package/{src/med_editor/framework/document-paint.ts → lib/framework/document-paint.js} +28 -35
  36. package/lib/framework/document-paint.js.map +1 -0
  37. package/lib/framework/document-print-offscreen.d.ts +38 -0
  38. package/{src/med_editor/framework/document-print-offscreen.ts → lib/framework/document-print-offscreen.js} +19 -25
  39. package/lib/framework/document-print-offscreen.js.map +1 -0
  40. package/lib/framework/document-print.d.ts +60 -0
  41. package/{src/med_editor/framework/document-print.ts → lib/framework/document-print.js} +41 -57
  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/{src/med_editor/framework/document-selection.ts → lib/framework/document-selection.js} +84 -117
  48. package/lib/framework/document-selection.js.map +1 -0
  49. package/lib/framework/document-template.d.ts +4 -0
  50. package/{src/med_editor/framework/document-template.ts → lib/framework/document-template.js} +3 -3
  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/{src/med_editor/framework/element-define.ts → lib/framework/element-define.js} +206 -301
  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/{src/med_editor/framework/element-measure.ts → lib/framework/element-measure.js} +121 -143
  63. package/lib/framework/element-measure.js.map +1 -0
  64. package/lib/framework/element-paint.d.ts +42 -0
  65. package/{src/med_editor/framework/element-paint.ts → lib/framework/element-paint.js} +37 -43
  66. package/lib/framework/element-paint.js.map +1 -0
  67. package/lib/framework/element-props.d.ts +301 -0
  68. package/{src/med_editor/framework/element-props.ts → lib/framework/element-props.js} +202 -331
  69. package/lib/framework/element-props.js.map +1 -0
  70. package/lib/framework/element-reader.d.ts +19 -0
  71. package/{src/med_editor/framework/element-reader.ts → lib/framework/element-reader.js} +30 -38
  72. package/lib/framework/element-reader.js.map +1 -0
  73. package/lib/framework/element-render-cut.d.ts +55 -0
  74. package/{src/med_editor/framework/element-render-cut.ts → lib/framework/element-render-cut.js} +106 -113
  75. package/lib/framework/element-render-cut.js.map +1 -0
  76. package/lib/framework/element-serialize.d.ts +30 -0
  77. package/{src/med_editor/framework/element-serialize.ts → lib/framework/element-serialize.js} +25 -40
  78. package/lib/framework/element-serialize.js.map +1 -0
  79. package/lib/framework/element-util.d.ts +369 -0
  80. package/{src/med_editor/framework/element-util.ts → lib/framework/element-util.js} +216 -318
  81. package/lib/framework/element-util.js.map +1 -0
  82. package/lib/framework/impl/checkbox/checkbox-impl.d.ts +24 -0
  83. package/{src/med_editor/framework/impl/checkbox/checkbox-impl.ts → lib/framework/impl/checkbox/checkbox-impl.js} +18 -25
  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/{src/med_editor/framework/impl/comments/comment-content-impl.ts → lib/framework/impl/comments/comment-content-impl.js} +31 -45
  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/{src/med_editor/framework/impl/comments/comment-element-impl.ts → lib/framework/impl/comments/comment-element-impl.js} +18 -21
  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/{src/med_editor/framework/impl/comments/comments-container-impl.ts → lib/framework/impl/comments/comments-container-impl.js} +15 -21
  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/{src/med_editor/framework/impl/comments/comments-util.ts → lib/framework/impl/comments/comments-util.js} +17 -34
  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/{src/med_editor/framework/impl/comments/validate-msg-impl.ts → lib/framework/impl/comments/validate-msg-impl.js} +15 -26
  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/{src/med_editor/framework/impl/data-element/data-decorate-impl.ts → lib/framework/impl/data-element/data-decorate-impl.js} +21 -25
  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/{src/med_editor/framework/impl/data-element/data-element-barcode.ts → lib/framework/impl/data-element/data-element-barcode.js} +27 -39
  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/{src/med_editor/framework/impl/data-element/data-element-base-impl.ts → lib/framework/impl/data-element/data-element-base-impl.js} +44 -73
  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/{src/med_editor/framework/impl/data-element/data-element-check-impl.ts → lib/framework/impl/data-element/data-element-check-impl.js} +33 -46
  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/{src/med_editor/framework/impl/data-element/data-element-date-impl.ts → lib/framework/impl/data-element/data-element-date-impl.js} +22 -39
  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/{src/med_editor/framework/impl/data-element/data-element-group-impl.ts → lib/framework/impl/data-element/data-element-group-impl.js} +29 -49
  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/{src/med_editor/framework/impl/data-element/data-element-image-impl.ts → lib/framework/impl/data-element/data-element-image-impl.js} +26 -36
  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/{src/med_editor/framework/impl/data-element/data-element-list-impl.ts → lib/framework/impl/data-element/data-element-list-impl.js} +30 -41
  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/{src/med_editor/framework/impl/data-element/data-element-text-impl.ts → lib/framework/impl/data-element/data-element-text-impl.js} +20 -34
  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/{src/med_editor/framework/impl/decorate/fill-null-space-imple.ts → lib/framework/impl/decorate/fill-null-space-imple.js} +10 -15
  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/{src/med_editor/framework/impl/document/doc-body-impl.ts → lib/framework/impl/document/doc-body-impl.js} +15 -31
  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/{src/med_editor/framework/impl/document/doc-body-part-impl.ts → lib/framework/impl/document/doc-body-part-impl.js} +16 -26
  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/{src/med_editor/framework/impl/document/doc-footer-impl.ts → lib/framework/impl/document/doc-footer-impl.js} +18 -29
  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/{src/med_editor/framework/impl/document/doc-header-impl.ts → lib/framework/impl/document/doc-header-impl.js} +16 -33
  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/{src/med_editor/framework/impl/document/doc-impl.ts → lib/framework/impl/document/doc-impl.js} +42 -59
  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/{src/med_editor/framework/impl/media-formula/menstrual-history.ts → lib/framework/impl/media-formula/menstrual-history.js} +35 -57
  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/{src/med_editor/framework/impl/paragraph/p-impl.ts → lib/framework/impl/paragraph/p-impl.js} +28 -62
  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/{src/med_editor/framework/impl/picture/image-impl.ts → lib/framework/impl/picture/image-impl.js} +23 -35
  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/{src/med_editor/framework/impl/radio/radio-impl.ts → lib/framework/impl/radio/radio-impl.js} +19 -26
  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/{src/med_editor/framework/impl/symbol/br-symbol-impl.ts → lib/framework/impl/symbol/br-symbol-impl.js} +14 -20
  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/{src/med_editor/framework/impl/symbol/p-symbol-impl.ts → lib/framework/impl/symbol/p-symbol-impl.js} +11 -14
  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/{src/med_editor/framework/impl/table/table-cell-impl.ts → lib/framework/impl/table/table-cell-impl.js} +28 -39
  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/{src/med_editor/framework/impl/table/table-impl.ts → lib/framework/impl/table/table-impl.js} +82 -120
  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/{src/med_editor/framework/impl/table/table-row-impl.ts → lib/framework/impl/table/table-row-impl.js} +16 -24
  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/{src/med_editor/framework/impl/table/table-split-cell-patch.ts → lib/framework/impl/table/table-split-cell-patch.js} +22 -31
  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/{src/med_editor/framework/impl/table/table-split-cell.ts → lib/framework/impl/table/table-split-cell.js} +94 -105
  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/{src/med_editor/framework/impl/table/table-util.ts → lib/framework/impl/table/table-util.js} +157 -195
  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/{src/med_editor/framework/impl/text/text-impl.ts → lib/framework/impl/text/text-impl.js} +32 -47
  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/{src/med_editor/framework/impl/text/track-run-impl.ts → lib/framework/impl/text/track-run-impl.js} +28 -51
  189. package/lib/framework/impl/text/track-run-impl.js.map +1 -0
  190. package/lib/framework/notify.d.ts +13 -0
  191. package/{src/med_editor/framework/notify.ts → lib/framework/notify.js} +36 -50
  192. package/lib/framework/notify.js.map +1 -0
  193. package/lib/framework/range-util.d.ts +40 -0
  194. package/{src/med_editor/framework/range-util.ts → lib/framework/range-util.js} +71 -80
  195. package/lib/framework/range-util.js.map +1 -0
  196. package/lib/framework/render-context.d.ts +91 -0
  197. package/{src/med_editor/framework/render-context.ts → lib/framework/render-context.js} +64 -111
  198. package/lib/framework/render-context.js.map +1 -0
  199. package/lib/framework/render-define.d.ts +109 -0
  200. package/{src/med_editor/framework/render-define.ts → lib/framework/render-define.js} +61 -90
  201. package/lib/framework/render-define.js.map +1 -0
  202. package/lib/framework/selection-overlays.d.ts +30 -0
  203. package/{src/med_editor/framework/selection-overlays.ts → lib/framework/selection-overlays.js} +16 -26
  204. package/lib/framework/selection-overlays.js.map +1 -0
  205. package/lib/texteditor.d.ts +318 -0
  206. package/{src/med_editor/texteditor.ts → lib/texteditor.js} +189 -287
  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/{src/med_editor/util/table-bind.ts → lib/util/table-bind.js} +2 -2
  213. package/lib/util/table-bind.js.map +1 -0
  214. package/package.json +6 -2
  215. package/src/med_editor/framework/common-util.ts +0 -200
  216. package/src/med_editor/framework/document-segmenter.ts +0 -211
  217. package/src/med_editor/framework/document-textline-mode.ts +0 -34
  218. package/src/med_editor/framework/element-event-define.ts +0 -142
  219. package/src/med_editor/framework/impl/document/doc-container-impl.ts +0 -24
  220. package/src/med_editor/util/subject.ts +0 -118
  221. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225.json +0 -3573
  222. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225.json +0 -3573
  223. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225bug.json +0 -315
  224. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/211/271/346/263/250.json +0 -122
  225. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/226/207/346/241/243/351/252/214/350/257/201.json +0 -3599
  226. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/351/225/277/346/226/207/346/234/254.json +0 -24586
  227. package/src/med_editor//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225.json +0 -2874
  228. package/src/med_editor//346/211/213/346/234/257/350/256/260/345/275/225.json +0 -341
  229. package/src/med_editor//346/231/256/351/200/232doc/347/261/273/346/226/207/346/241/243.json +0 -2201
  230. package/src/med_editor//346/243/200/351/252/214/347/224/263/350/257/267/345/215/225.json +0 -1069
  231. package/src/med_editor//347/227/205/347/250/213/345/275/225//345/206/205/351/225/234/344/270/213/346/262/273/347/226/227/350/256/260/345/275/225.json +0 -125
  232. package/src/med_editor//347/227/205/347/250/213/345/275/225//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225/346/250/241/346/235/277.json +0 -86
  233. package/src/med_editor//347/227/205/347/250/213/345/275/225//346/227/245/345/270/270/347/227/205/347/250/213/350/256/260/345/275/225.json +0 -115
  234. package/src/med_editor//347/227/205/347/250/213/345/275/225//346/237/245/346/210/277/350/256/260/345/275/2251.json +0 -108
  235. package/src/med_editor//347/227/205/347/250/213/345/275/225//351/246/226/346/254/241/344/270/212/347/272/247/345/214/273/345/270/210/346/237/245/346/210/277/350/256/260/345/275/225.json +0 -272
  236. package/src/med_editor//351/225/277/346/234/237/345/214/273/345/230/261/345/215/225.json +0 -1070
  237. package/tsconfig.json +0 -25
  238. package/webpack.config.js +0 -46
@@ -1,28 +1,22 @@
1
1
  import { ElementUtil } from "./element-util";
2
- import { DocumentBodyRenderObject } from "./impl/document/doc-body-impl";
3
- import { DocumentHeaderRenderObject } from "./impl/document/doc-header-impl";
4
- import { DocumentElement, DocumentRenderObject } from "./impl/document/doc-impl";
5
- import { RenderContenxtType } from "./render-context";
6
- import { BlockContentRenderObject, BlockLineRectRenderObject, MuiltBlockLineRenderObject, RenderObject } from "./render-define";
7
- import { Rect, ViewOptions } from "./element-define";
8
- import { TableRowElement, TableRowRenderObject } from "./impl/table/table-row-impl";
9
- import { DocumentFooterRenderObject } from "./impl/document/doc-footer-impl";
10
- import { TableCellElement, TableCellRenderObject } from "./impl/table/table-cell-impl";
11
- import { TableElement, TableRenderObject } from "./impl/table/table-impl";
12
- import { CommsContainerRenderObject } from "./impl/comments/comments-container-impl";
13
- import { ParagraphElement } from "@/med_editor/framework/impl/paragraph/p-impl";
14
-
2
+ import { MuiltBlockLineRenderObject } from "./render-define";
3
+ import { TableRowRenderObject } from "./impl/table/table-row-impl";
4
+ import { TableRenderObject } from "./impl/table/table-impl";
15
5
  export class ElementRenderCut {
16
- constructor(private options: ViewOptions, private renderContext: RenderContenxtType) { }
17
-
18
- cutPage(documentRender: DocumentRenderObject, documentElement: DocumentElement): Array<DocumentRenderObject> {
6
+ options;
7
+ renderContext;
8
+ constructor(options, renderContext) {
9
+ this.options = options;
10
+ this.renderContext = renderContext;
11
+ }
12
+ cutPage(documentRender, documentElement) {
19
13
  if (this.options.fullPageView) {
20
14
  return this.getFullViewDocRender(documentRender, documentElement);
21
15
  }
22
- const headerRender = documentRender.getChild(0) as DocumentHeaderRenderObject;
23
- const bodyRender = documentRender.getChild(1).clone() as DocumentBodyRenderObject;
24
- const footerRender = documentRender.getChild(2) as DocumentFooterRenderObject;
25
- const commentsRender = documentRender.getChild(3) as CommsContainerRenderObject;
16
+ const headerRender = documentRender.getChild(0);
17
+ const bodyRender = documentRender.getChild(1).clone();
18
+ const footerRender = documentRender.getChild(2);
19
+ const commentsRender = documentRender.getChild(3);
26
20
  const { headerLine, footerLine } = documentRender;
27
21
  let bodyMarginTop = headerLine + headerRender.rect.height + 6;
28
22
  let bodyMarginBottom = footerLine + footerRender.rect.height;
@@ -32,18 +26,16 @@ export class ElementRenderCut {
32
26
  documentRender.padding.top = bodyMarginTop;
33
27
  documentRender.padding.bottom = bodyMarginBottom;
34
28
  const bodyLimitRect = documentRender.getInnnerRect();
35
- const bodyArray: Array<DocumentBodyRenderObject> = [];
29
+ const bodyArray = [];
36
30
  let { emptyBody: pageBodyRender, innerRect: bodyInnerLimitRect } = this.createEmptyBodyRender(bodyRender, bodyLimitRect);
37
31
  bodyArray.push(pageBodyRender);
38
-
39
32
  const createBodyHolder = () => {
40
33
  const { emptyBody, innerRect } = this.createEmptyBodyRender(bodyRender, bodyLimitRect);
41
34
  pageBodyRender = emptyBody;
42
35
  bodyInnerLimitRect = innerRect;
43
36
  bodyArray.push(pageBodyRender);
44
37
  };
45
-
46
- const appendToBody = (item: BlockContentRenderObject) => {
38
+ const appendToBody = (item) => {
47
39
  item.rect.y = bodyInnerLimitRect.height + item.margin.top;
48
40
  pageBodyRender.addChild(item);
49
41
  bodyInnerLimitRect.height += item.rect.height + item.margin.top + item.margin.bottom;
@@ -54,10 +46,8 @@ export class ElementRenderCut {
54
46
  createBodyHolder();
55
47
  }
56
48
  };
57
-
58
-
59
49
  let i = 0;
60
- let cloneBlockContentRender: null | BlockContentRenderObject = bodyRender.getChild(i) as BlockContentRenderObject;
50
+ let cloneBlockContentRender = bodyRender.getChild(i);
61
51
  while (cloneBlockContentRender) {
62
52
  if (bodyInnerLimitRect.maxHeight - bodyInnerLimitRect.height - cloneBlockContentRender.rect.height - cloneBlockContentRender.margin.bottom - cloneBlockContentRender.margin.top < 0) {
63
53
  //限制的外框尺寸
@@ -70,18 +60,19 @@ export class ElementRenderCut {
70
60
  appendToBody(cutRenderObject);
71
61
  }
72
62
  createBodyHolder();
73
- } else {
63
+ }
64
+ else {
74
65
  appendToBody(cloneBlockContentRender);
75
66
  if (++i < bodyRender.length) {
76
- cloneBlockContentRender = bodyRender.getChild(i) as BlockContentRenderObject;
77
- } else {
67
+ cloneBlockContentRender = bodyRender.getChild(i);
68
+ }
69
+ else {
78
70
  cloneBlockContentRender = null;
79
71
  }
80
72
  }
81
73
  }
82
-
83
- const docPages: Array<DocumentRenderObject> = [];
84
- let pageY: number = this.options.docSpace;
74
+ const docPages = [];
75
+ let pageY = this.options.docSpace;
85
76
  for (let i = 0; i < bodyArray.length; i++) {
86
77
  const body = bodyArray[i];
87
78
  const documentRender = documentElement.createRenderObject(this.options);
@@ -103,7 +94,7 @@ export class ElementRenderCut {
103
94
  documentRender.addChild(cloneFooterRender);
104
95
  //审阅模式,添加审阅窗口
105
96
  if (this.options.showReviewWindow && commentsRender) {
106
- const commentsContainer = commentsRender.element.createRenderObject(this.options, this.renderContext) as CommsContainerRenderObject;
97
+ const commentsContainer = commentsRender.element.createRenderObject(this.options, this.renderContext);
107
98
  commentsContainer.padding.top = bodyMarginTop;
108
99
  commentsContainer.rect.height = documentRender.rect.height;
109
100
  documentRender.addChild(commentsContainer);
@@ -113,22 +104,20 @@ export class ElementRenderCut {
113
104
  }
114
105
  return docPages;
115
106
  }
116
-
117
- private checkPageBreak(item: RenderObject): boolean {
107
+ checkPageBreak(item) {
118
108
  if (item.element && item.element.type === 'p') {
119
- const p = item.element as ParagraphElement;
109
+ const p = item.element;
120
110
  if (p.props.pageBreak) {
121
111
  return true;
122
112
  }
123
113
  }
124
114
  return false;
125
115
  }
126
-
127
- getFullViewDocRender(documentRender: DocumentRenderObject, documentElement: DocumentElement): Array<DocumentRenderObject> {
128
- const commentsRender = documentRender.getChild(3) as CommsContainerRenderObject;
129
- const commentsContainer = commentsRender.element.createRenderObject(this.options, this.renderContext) as CommsContainerRenderObject;
116
+ getFullViewDocRender(documentRender, documentElement) {
117
+ const commentsRender = documentRender.getChild(3);
118
+ const commentsContainer = commentsRender.element.createRenderObject(this.options, this.renderContext);
130
119
  documentRender.rect.height -= commentsContainer.rect.height;
131
- const bodyRender = documentRender.getChild(1) as DocumentBodyRenderObject;
120
+ const bodyRender = documentRender.getChild(1);
132
121
  if (this.options.showReviewWindow) {
133
122
  documentRender.removeChild(commentsRender);
134
123
  documentRender.addChild(commentsContainer);
@@ -137,11 +126,10 @@ export class ElementRenderCut {
137
126
  commentsContainer.rect.x = documentRender.rect.x + documentRender.rect.width;
138
127
  documentRender.rect.width += this.options.reviewWindowWidth;
139
128
  }
140
- return [documentRender as DocumentRenderObject]
129
+ return [documentRender];
141
130
  }
142
-
143
- createEmptyBodyRender(bodyRender: DocumentBodyRenderObject, limitRect: Rect): { emptyBody: DocumentBodyRenderObject, innerRect: Rect & { prevMargin: number } } {
144
- const pageBodyRender = bodyRender.element.createRenderObject(this.options, this.renderContext) as DocumentBodyRenderObject;
131
+ createEmptyBodyRender(bodyRender, limitRect) {
132
+ const pageBodyRender = bodyRender.element.createRenderObject(this.options, this.renderContext);
145
133
  ElementUtil.setBlockElementLimitSize(pageBodyRender, limitRect);
146
134
  const bodyInnerLimitRect = pageBodyRender.getInnnerRect();
147
135
  if (this.options.fullPageView) {
@@ -149,22 +137,21 @@ export class ElementRenderCut {
149
137
  }
150
138
  return { emptyBody: pageBodyRender, innerRect: { ...bodyInnerLimitRect, prevMargin: 0 } };
151
139
  }
152
-
153
140
  /**
154
141
  * 切割渲染元素
155
142
  * @param render 被切割的对象
156
- * @param limitHeight
157
- * @param addFunc
158
- * @returns
143
+ * @param limitHeight
144
+ * @param addFunc
145
+ * @returns
159
146
  */
160
- cutRenderItem(render: BlockContentRenderObject, limitHeight: number): BlockContentRenderObject | null {
147
+ cutRenderItem(render, limitHeight) {
161
148
  if (render instanceof TableRowRenderObject) {
162
149
  return this.cutRowRenderItem(render, limitHeight);
163
150
  }
164
151
  if (render instanceof TableRenderObject) {
165
152
  return this.cutTable(render, limitHeight);
166
153
  }
167
- const cloneRender = render.element.createRenderObject(this.options, this.renderContext) as MuiltBlockLineRenderObject;
154
+ const cloneRender = render.element.createRenderObject(this.options, this.renderContext);
168
155
  cloneRender.setRenderWidth(render.rect.width);
169
156
  if (render instanceof MuiltBlockLineRenderObject) {
170
157
  let sumHeight = 0;
@@ -185,13 +172,16 @@ export class ElementRenderCut {
185
172
  cloneRender.addChild(cutRenderObject);
186
173
  sumHeight += cutRenderObject.rect.height;
187
174
  blockLine = children[++j];
188
- } else {
175
+ }
176
+ else {
189
177
  break;
190
178
  }
191
- } else {
179
+ }
180
+ else {
192
181
  break;
193
182
  }
194
- } else {
183
+ }
184
+ else {
195
185
  render.removeChild(blockLine);
196
186
  cloneRender.addChild(blockLine);
197
187
  sumHeight += blockLine.rect.height;
@@ -202,23 +192,24 @@ export class ElementRenderCut {
202
192
  ElementUtil.remeasure(render);
203
193
  if (cloneRender.length === 0) {
204
194
  return null;
205
- } else {
195
+ }
196
+ else {
206
197
  return cloneRender;
207
198
  }
208
- } else {
199
+ }
200
+ else {
209
201
  throw new Error('未实现');
210
202
  }
211
203
  }
212
-
213
204
  /**
214
205
  * 切割渲染元素
215
206
  * @param tbRender 被切割的对象
216
- * @param limitHeight
217
- * @param addFunc
218
- * @returns
207
+ * @param limitHeight
208
+ * @param addFunc
209
+ * @returns
219
210
  */
220
- cutTable(tbRender: TableRenderObject, limitHeight: number): BlockContentRenderObject | null {
221
- const cloneTbRender = tbRender.element.createRenderObject(this.options, this.renderContext) as TableRenderObject;
211
+ cutTable(tbRender, limitHeight) {
212
+ const cloneTbRender = tbRender.element.createRenderObject(this.options, this.renderContext);
222
213
  cloneTbRender.setRenderWidth(tbRender.rect.width);
223
214
  let sumHeight = 0;
224
215
  const rows = [...tbRender.getItems()];
@@ -232,7 +223,7 @@ export class ElementRenderCut {
232
223
  const copyHeaderRows = headerRows.map(item => item.clone());
233
224
  //获取最后一个截断行,需要根据截断行判断最后一个截断的行位置
234
225
  const cutOffRows = rows.filter(row => limitHeight >= row.rect.y && limitHeight <= row.rect.y + row.rect.height)
235
- .map((row) => ({ rowIndex: (<TableRowElement>row.element).getIndex(), row }))
226
+ .map((row) => ({ rowIndex: row.element.getIndex(), row }))
236
227
  .sort((first, second) => second.rowIndex - first.rowIndex);
237
228
  if (cutOffRows.length === 0) {
238
229
  throw new Error('无法获取截断行');
@@ -240,7 +231,7 @@ export class ElementRenderCut {
240
231
  const joinRow = cutOffRows[0].row;
241
232
  let j = 0;
242
233
  let currRow = rows[j];
243
- const cutRows: Array<TableRowRenderObject> = [];
234
+ const cutRows = [];
244
235
  while (currRow) {
245
236
  const rowContentHeight = this.getBlockLineHeight(currRow);
246
237
  if (rowContentHeight + sumHeight > limitHeight) {
@@ -249,7 +240,7 @@ export class ElementRenderCut {
249
240
  const availHeight = limitHeight - sumHeight;
250
241
  //限制的内框尺寸
251
242
  const limitRenderInnterHeight = ElementUtil.innerRectMaxHeight(tbRender, availHeight);
252
- const cutRow = this.cutRowRenderItem(currRow, limitRenderInnterHeight) as TableRowRenderObject;
243
+ const cutRow = this.cutRowRenderItem(currRow, limitRenderInnterHeight);
253
244
  if (cutRow) {
254
245
  cloneTbRender.addChild(cutRow);
255
246
  sumHeight += cutRow.rect.height;
@@ -258,13 +249,16 @@ export class ElementRenderCut {
258
249
  break;
259
250
  }
260
251
  currRow = rows[++j];
261
- } else {
252
+ }
253
+ else {
262
254
  break;
263
255
  }
264
- } else {
256
+ }
257
+ else {
265
258
  break;
266
259
  }
267
- } else {
260
+ }
261
+ else {
268
262
  tbRender.removeChild(currRow);
269
263
  cloneTbRender.addChild(currRow);
270
264
  sumHeight += currRow.rect.height;
@@ -275,25 +269,25 @@ export class ElementRenderCut {
275
269
  ElementUtil.remeasure(cloneTbRender);
276
270
  //存在跨页需要重复显示的行头,则需要重新放置行头
277
271
  if (copyHeaderRows.length) {
278
- copyHeaderRows.forEach((r, i) => tbRender.insertChild(r, i))
272
+ copyHeaderRows.forEach((r, i) => tbRender.insertChild(r, i));
279
273
  }
280
274
  ElementUtil.remeasure(tbRender);
281
275
  if (cloneTbRender.length === 0) {
282
276
  return null;
283
- } else {
277
+ }
278
+ else {
284
279
  return cloneTbRender;
285
280
  }
286
281
  }
287
-
288
- cutRowRenderItem(render: TableRowRenderObject, limitHeight: number): TableRowRenderObject | null {
282
+ cutRowRenderItem(render, limitHeight) {
289
283
  if (render.element.props.minHeight > 0 && render.rect.height > limitHeight) {
290
284
  return null;
291
285
  }
292
- const cloneRowRender = render.element.createRenderObject() as TableRowRenderObject;
286
+ const cloneRowRender = render.element.createRenderObject();
293
287
  cloneRowRender.rect.width = render.rect.width;
294
288
  cloneRowRender.rect.maxWidth = render.rect.height;
295
- const cellRenders = [...render.getItems()] as Array<TableCellRenderObject>;
296
- const cutCellRenders: Array<RenderObject | null> = [];
289
+ const cellRenders = [...render.getItems()];
290
+ const cutCellRenders = [];
297
291
  for (let i = 0; i < cellRenders.length; i++) {
298
292
  const cellRender = cellRenders[i];
299
293
  if (cellRender.rect.height > limitHeight) {
@@ -303,12 +297,14 @@ export class ElementRenderCut {
303
297
  const limitRenderInnterHeight = ElementUtil.innerRectMaxHeight(cellRender, availHeight);
304
298
  const cutCellRender = this.cutRenderItem(cellRender, limitRenderInnterHeight);
305
299
  if (cutCellRender) {
306
- cutCellRenders.push(cutCellRender)
307
- } else {
308
- cutCellRenders.push(null)
300
+ cutCellRenders.push(cutCellRender);
309
301
  }
310
- } else {
311
- const cloneCellRender = cellRender as BlockLineRectRenderObject;
302
+ else {
303
+ cutCellRenders.push(null);
304
+ }
305
+ }
306
+ else {
307
+ const cloneCellRender = cellRender;
312
308
  render.removeChild(cellRender);
313
309
  cutCellRenders.push(cloneCellRender);
314
310
  }
@@ -316,12 +312,13 @@ export class ElementRenderCut {
316
312
  ElementUtil.remeasure(render);
317
313
  if (cutCellRenders.filter(item => item).length === 0) {
318
314
  return null;
319
- } else {
315
+ }
316
+ else {
320
317
  //补齐单元格
321
318
  for (let i = 0; i < cutCellRenders.length; i++) {
322
- let cellRender = cutCellRenders[i] as TableCellRenderObject;
319
+ let cellRender = cutCellRenders[i];
323
320
  if (!cellRender) {
324
- cellRender = cellRenders[i].clone() as TableCellRenderObject;
321
+ cellRender = cellRenders[i].clone();
325
322
  ElementUtil.remeasure(cellRender);
326
323
  }
327
324
  cloneRowRender.addChild(cellRender);
@@ -332,19 +329,19 @@ export class ElementRenderCut {
332
329
  }
333
330
  /**
334
331
  * 修复->已经截断的合并单元格要向下移动到合适的位置
335
- * @param tbRender
336
- * @param cutRows
337
- * @returns
332
+ * @param tbRender
333
+ * @param cutRows
334
+ * @returns
338
335
  */
339
- private fixCutTable(tbRender: TableRenderObject, cutRows: Array<TableRowRenderObject>): void {
336
+ fixCutTable(tbRender, cutRows) {
340
337
  if (!cutRows.length) {
341
338
  return;
342
339
  }
343
- const tbEle = tbRender.element as TableElement;
344
- const belowMergeRows = new Set<TableRowRenderObject>();
340
+ const tbEle = tbRender.element;
341
+ const belowMergeRows = new Set();
345
342
  for (let i = 0; i < tbRender.length; i++) {
346
- const row = tbRender.getChild(i) as TableRowRenderObject;
347
- const nextRow = tbRender.getChild(i + 1) as TableRowRenderObject;
343
+ const row = tbRender.getChild(i);
344
+ const nextRow = tbRender.getChild(i + 1);
348
345
  if (!nextRow) {
349
346
  break;
350
347
  }
@@ -358,8 +355,8 @@ export class ElementRenderCut {
358
355
  break;
359
356
  }
360
357
  for (let j = 0; j < row.length; j++) {
361
- const cell = row.getChild(j) as TableCellRenderObject;
362
- const cellEle = cell.element as TableCellElement;
358
+ const cell = row.getChild(j);
359
+ const cellEle = cell.element;
363
360
  const colIndex = cellEle.getIndex();
364
361
  if (!this.existsCellRender(nextRow, colIndex)) {
365
362
  const insertColIndex = this.getRowInsertCellIndex(cell, nextRow);
@@ -382,12 +379,11 @@ export class ElementRenderCut {
382
379
  ElementUtil.remeasure(tbRender);
383
380
  }
384
381
  }
385
-
386
382
  /**
387
383
  * 校验当前是否是一个完整的行,没有Null单元格,检查当前是否还需要向下合并
388
- * @param row
384
+ * @param row
389
385
  */
390
- private checkFullRow(row: TableRowRenderObject): boolean {
386
+ checkFullRow(row) {
391
387
  let x = 0;
392
388
  for (let i = 0; i < row.length; i++) {
393
389
  const cell = row.getChild(i);
@@ -398,19 +394,17 @@ export class ElementRenderCut {
398
394
  }
399
395
  return x === row.rect.width;
400
396
  }
401
-
402
- private existsCellRender(rowRender: TableRowRenderObject, cellIndex: number): boolean {
397
+ existsCellRender(rowRender, cellIndex) {
403
398
  for (let i = 0; i < rowRender.length; i++) {
404
- const cellRender = rowRender.getChild(i) as TableCellRenderObject;
405
- const cellEle = cellRender.element as TableCellElement;
399
+ const cellRender = rowRender.getChild(i);
400
+ const cellEle = cellRender.element;
406
401
  if (cellEle.getIndex() === cellIndex) {
407
402
  return true;
408
403
  }
409
404
  }
410
405
  return false;
411
406
  }
412
-
413
- private getBlockLineHeight(render: RenderObject): number {
407
+ getBlockLineHeight(render) {
414
408
  if (render instanceof TableRowRenderObject) {
415
409
  let maxCellHeight = 0;
416
410
  for (let i = 0; i < render.length; i++) {
@@ -423,11 +417,9 @@ export class ElementRenderCut {
423
417
  }
424
418
  return render.rect.height;
425
419
  }
426
-
427
-
428
- getRowInsertCellIndex(sourceCell: TableCellRenderObject, destRow: TableRowRenderObject): number {
420
+ getRowInsertCellIndex(sourceCell, destRow) {
429
421
  for (let i = 0; i < destRow.length; i++) {
430
- const cell = destRow.getChild(i) as TableCellRenderObject;
422
+ const cell = destRow.getChild(i);
431
423
  const rect = cell.rect;
432
424
  if (sourceCell.rect.x < rect.x) {
433
425
  return i;
@@ -439,18 +431,19 @@ export class ElementRenderCut {
439
431
  }
440
432
  return -1;
441
433
  }
442
-
443
- private getHeaderRows(tb: TableRenderObject): Array<TableRowRenderObject> {
444
- const rows: Array<TableRowRenderObject> = [];
434
+ getHeaderRows(tb) {
435
+ const rows = [];
445
436
  for (let i = 0; i < tb.length; i++) {
446
- const rowRender = tb.getChild(i) as TableRowRenderObject;
447
- const rowEle = rowRender.element as TableRowElement;
437
+ const rowRender = tb.getChild(i);
438
+ const rowEle = rowRender.element;
448
439
  if (rowEle.props.headerRow) {
449
440
  rows.push(rowRender);
450
- } else {
441
+ }
442
+ else {
451
443
  break;
452
444
  }
453
445
  }
454
446
  return rows;
455
447
  }
456
448
  }
449
+ //# sourceMappingURL=element-render-cut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-render-cut.js","sourceRoot":"","sources":["../../src/med_editor/framework/element-render-cut.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { SelectionState } from "./document-selection";
2
+ import { BranchElement, Element, SerializeProps, ViewOptions } from "./element-define";
3
+ export declare class ElementSerialize {
4
+ static serialize(element: Element, viewOptions: ViewOptions): SerializeProps | null;
5
+ static serializeString(element: Element, options?: {
6
+ all: boolean;
7
+ }): string;
8
+ /**
9
+ * 获取选中的结构
10
+ * @param ss
11
+ * @param viewOptions
12
+ */
13
+ static getSelectedStruct(ss: SelectionState, viewOptions: ViewOptions): Element | null;
14
+ /**
15
+ * 选中的文本
16
+ * @param ss
17
+ * @param viewOptions
18
+ */
19
+ static getSelectedText(ss: SelectionState, viewOptions: ViewOptions): string;
20
+ static getSelectedJSON(ss: SelectionState, viewOptions: ViewOptions): string;
21
+ /**
22
+ * 遍历指定元素内部所有数据元列表
23
+ */
24
+ static getDataElements(element: BranchElement): Array<Element>;
25
+ }
26
+ export interface DataElementValueStruct {
27
+ id: string;
28
+ name: string;
29
+ value: string;
30
+ }