@hailin-zheng/editor-core 1.0.3 → 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 (303) hide show
  1. package/package.json +6 -2
  2. package/dist/doc-ruler.d.ts +0 -51
  3. package/dist/doc-ruler.js +0 -313
  4. package/dist/doc-ruler.js.map +0 -1
  5. package/dist/framework/common-util.d.ts +0 -63
  6. package/dist/framework/common-util.js +0 -178
  7. package/dist/framework/common-util.js.map +0 -1
  8. package/dist/framework/document-change.d.ts +0 -265
  9. package/dist/framework/document-change.js +0 -1342
  10. package/dist/framework/document-change.js.map +0 -1
  11. package/dist/framework/document-combine.d.ts +0 -24
  12. package/dist/framework/document-combine.js +0 -40
  13. package/dist/framework/document-combine.js.map +0 -1
  14. package/dist/framework/document-comment.d.ts +0 -46
  15. package/dist/framework/document-comment.js +0 -148
  16. package/dist/framework/document-comment.js.map +0 -1
  17. package/dist/framework/document-context.d.ts +0 -149
  18. package/dist/framework/document-context.js +0 -330
  19. package/dist/framework/document-context.js.map +0 -1
  20. package/dist/framework/document-eval-func.d.ts +0 -18
  21. package/dist/framework/document-eval-func.js +0 -48
  22. package/dist/framework/document-eval-func.js.map +0 -1
  23. package/dist/framework/document-event.d.ts +0 -213
  24. package/dist/framework/document-event.js +0 -1054
  25. package/dist/framework/document-event.js.map +0 -1
  26. package/dist/framework/document-history.d.ts +0 -26
  27. package/dist/framework/document-history.js +0 -65
  28. package/dist/framework/document-history.js.map +0 -1
  29. package/dist/framework/document-images-loader.d.ts +0 -16
  30. package/dist/framework/document-images-loader.js +0 -66
  31. package/dist/framework/document-images-loader.js.map +0 -1
  32. package/dist/framework/document-input-cursor.d.ts +0 -78
  33. package/dist/framework/document-input-cursor.js +0 -239
  34. package/dist/framework/document-input-cursor.js.map +0 -1
  35. package/dist/framework/document-paint.d.ts +0 -34
  36. package/dist/framework/document-paint.js +0 -103
  37. package/dist/framework/document-paint.js.map +0 -1
  38. package/dist/framework/document-print-offscreen.d.ts +0 -38
  39. package/dist/framework/document-print-offscreen.js +0 -128
  40. package/dist/framework/document-print-offscreen.js.map +0 -1
  41. package/dist/framework/document-print.d.ts +0 -60
  42. package/dist/framework/document-print.js +0 -203
  43. package/dist/framework/document-print.js.map +0 -1
  44. package/dist/framework/document-segmenter.d.ts +0 -2
  45. package/dist/framework/document-segmenter.js +0 -106
  46. package/dist/framework/document-segmenter.js.map +0 -1
  47. package/dist/framework/document-selection.d.ts +0 -89
  48. package/dist/framework/document-selection.js +0 -358
  49. package/dist/framework/document-selection.js.map +0 -1
  50. package/dist/framework/document-template.d.ts +0 -4
  51. package/dist/framework/document-template.js +0 -20
  52. package/dist/framework/document-template.js.map +0 -1
  53. package/dist/framework/document-textline-mode.d.ts +0 -7
  54. package/dist/framework/document-textline-mode.js +0 -30
  55. package/dist/framework/document-textline-mode.js.map +0 -1
  56. package/dist/framework/element-define.d.ts +0 -319
  57. package/dist/framework/element-define.js +0 -579
  58. package/dist/framework/element-define.js.map +0 -1
  59. package/dist/framework/element-event-define.d.ts +0 -99
  60. package/dist/framework/element-event-define.js +0 -108
  61. package/dist/framework/element-event-define.js.map +0 -1
  62. package/dist/framework/element-measure.d.ts +0 -97
  63. package/dist/framework/element-measure.js +0 -551
  64. package/dist/framework/element-measure.js.map +0 -1
  65. package/dist/framework/element-paint.d.ts +0 -42
  66. package/dist/framework/element-paint.js +0 -170
  67. package/dist/framework/element-paint.js.map +0 -1
  68. package/dist/framework/element-props.d.ts +0 -301
  69. package/dist/framework/element-props.js +0 -809
  70. package/dist/framework/element-props.js.map +0 -1
  71. package/dist/framework/element-reader.d.ts +0 -19
  72. package/dist/framework/element-reader.js +0 -151
  73. package/dist/framework/element-reader.js.map +0 -1
  74. package/dist/framework/element-render-cut.d.ts +0 -55
  75. package/dist/framework/element-render-cut.js +0 -449
  76. package/dist/framework/element-render-cut.js.map +0 -1
  77. package/dist/framework/element-serialize.d.ts +0 -30
  78. package/dist/framework/element-serialize.js +0 -113
  79. package/dist/framework/element-serialize.js.map +0 -1
  80. package/dist/framework/element-util.d.ts +0 -369
  81. package/dist/framework/element-util.js +0 -1463
  82. package/dist/framework/element-util.js.map +0 -1
  83. package/dist/framework/impl/checkbox/checkbox-impl.d.ts +0 -24
  84. package/dist/framework/impl/checkbox/checkbox-impl.js +0 -64
  85. package/dist/framework/impl/checkbox/checkbox-impl.js.map +0 -1
  86. package/dist/framework/impl/comments/comment-content-impl.d.ts +0 -40
  87. package/dist/framework/impl/comments/comment-content-impl.js +0 -105
  88. package/dist/framework/impl/comments/comment-content-impl.js.map +0 -1
  89. package/dist/framework/impl/comments/comment-element-impl.d.ts +0 -21
  90. package/dist/framework/impl/comments/comment-element-impl.js +0 -62
  91. package/dist/framework/impl/comments/comment-element-impl.js.map +0 -1
  92. package/dist/framework/impl/comments/comments-container-impl.d.ts +0 -22
  93. package/dist/framework/impl/comments/comments-container-impl.js +0 -62
  94. package/dist/framework/impl/comments/comments-container-impl.js.map +0 -1
  95. package/dist/framework/impl/comments/comments-util.d.ts +0 -12
  96. package/dist/framework/impl/comments/comments-util.js +0 -67
  97. package/dist/framework/impl/comments/comments-util.js.map +0 -1
  98. package/dist/framework/impl/comments/validate-msg-impl.d.ts +0 -21
  99. package/dist/framework/impl/comments/validate-msg-impl.js +0 -83
  100. package/dist/framework/impl/comments/validate-msg-impl.js.map +0 -1
  101. package/dist/framework/impl/data-element/data-decorate-impl.d.ts +0 -30
  102. package/dist/framework/impl/data-element/data-decorate-impl.js +0 -91
  103. package/dist/framework/impl/data-element/data-decorate-impl.js.map +0 -1
  104. package/dist/framework/impl/data-element/data-element-barcode.d.ts +0 -31
  105. package/dist/framework/impl/data-element/data-element-barcode.js +0 -115
  106. package/dist/framework/impl/data-element/data-element-barcode.js.map +0 -1
  107. package/dist/framework/impl/data-element/data-element-base-impl.d.ts +0 -68
  108. package/dist/framework/impl/data-element/data-element-base-impl.js +0 -205
  109. package/dist/framework/impl/data-element/data-element-base-impl.js.map +0 -1
  110. package/dist/framework/impl/data-element/data-element-check-impl.d.ts +0 -35
  111. package/dist/framework/impl/data-element/data-element-check-impl.js +0 -133
  112. package/dist/framework/impl/data-element/data-element-check-impl.js.map +0 -1
  113. package/dist/framework/impl/data-element/data-element-date-impl.d.ts +0 -23
  114. package/dist/framework/impl/data-element/data-element-date-impl.js +0 -111
  115. package/dist/framework/impl/data-element/data-element-date-impl.js.map +0 -1
  116. package/dist/framework/impl/data-element/data-element-group-impl.d.ts +0 -23
  117. package/dist/framework/impl/data-element/data-element-group-impl.js +0 -130
  118. package/dist/framework/impl/data-element/data-element-group-impl.js.map +0 -1
  119. package/dist/framework/impl/data-element/data-element-image-impl.d.ts +0 -30
  120. package/dist/framework/impl/data-element/data-element-image-impl.js +0 -137
  121. package/dist/framework/impl/data-element/data-element-image-impl.js.map +0 -1
  122. package/dist/framework/impl/data-element/data-element-list-impl.d.ts +0 -22
  123. package/dist/framework/impl/data-element/data-element-list-impl.js +0 -131
  124. package/dist/framework/impl/data-element/data-element-list-impl.js.map +0 -1
  125. package/dist/framework/impl/data-element/data-element-text-impl.d.ts +0 -23
  126. package/dist/framework/impl/data-element/data-element-text-impl.js +0 -103
  127. package/dist/framework/impl/data-element/data-element-text-impl.js.map +0 -1
  128. package/dist/framework/impl/decorate/fill-null-space-imple.d.ts +0 -21
  129. package/dist/framework/impl/decorate/fill-null-space-imple.js +0 -43
  130. package/dist/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
  131. package/dist/framework/impl/document/doc-body-impl.d.ts +0 -27
  132. package/dist/framework/impl/document/doc-body-impl.js +0 -79
  133. package/dist/framework/impl/document/doc-body-impl.js.map +0 -1
  134. package/dist/framework/impl/document/doc-body-part-impl.d.ts +0 -30
  135. package/dist/framework/impl/document/doc-body-part-impl.js +0 -94
  136. package/dist/framework/impl/document/doc-body-part-impl.js.map +0 -1
  137. package/dist/framework/impl/document/doc-container-impl.d.ts +0 -16
  138. package/dist/framework/impl/document/doc-container-impl.js +0 -21
  139. package/dist/framework/impl/document/doc-container-impl.js.map +0 -1
  140. package/dist/framework/impl/document/doc-footer-impl.d.ts +0 -26
  141. package/dist/framework/impl/document/doc-footer-impl.js +0 -77
  142. package/dist/framework/impl/document/doc-footer-impl.js.map +0 -1
  143. package/dist/framework/impl/document/doc-header-impl.d.ts +0 -26
  144. package/dist/framework/impl/document/doc-header-impl.js +0 -83
  145. package/dist/framework/impl/document/doc-header-impl.js.map +0 -1
  146. package/dist/framework/impl/document/doc-impl.d.ts +0 -61
  147. package/dist/framework/impl/document/doc-impl.js +0 -209
  148. package/dist/framework/impl/document/doc-impl.js.map +0 -1
  149. package/dist/framework/impl/media-formula/menstrual-history.d.ts +0 -35
  150. package/dist/framework/impl/media-formula/menstrual-history.js +0 -153
  151. package/dist/framework/impl/media-formula/menstrual-history.js.map +0 -1
  152. package/dist/framework/impl/paragraph/p-impl.d.ts +0 -45
  153. package/dist/framework/impl/paragraph/p-impl.js +0 -156
  154. package/dist/framework/impl/paragraph/p-impl.js.map +0 -1
  155. package/dist/framework/impl/picture/image-impl.d.ts +0 -31
  156. package/dist/framework/impl/picture/image-impl.js +0 -124
  157. package/dist/framework/impl/picture/image-impl.js.map +0 -1
  158. package/dist/framework/impl/radio/radio-impl.d.ts +0 -22
  159. package/dist/framework/impl/radio/radio-impl.js +0 -72
  160. package/dist/framework/impl/radio/radio-impl.js.map +0 -1
  161. package/dist/framework/impl/symbol/br-symbol-impl.d.ts +0 -22
  162. package/dist/framework/impl/symbol/br-symbol-impl.js +0 -54
  163. package/dist/framework/impl/symbol/br-symbol-impl.js.map +0 -1
  164. package/dist/framework/impl/symbol/p-symbol-impl.d.ts +0 -19
  165. package/dist/framework/impl/symbol/p-symbol-impl.js +0 -54
  166. package/dist/framework/impl/symbol/p-symbol-impl.js.map +0 -1
  167. package/dist/framework/impl/table/table-cell-impl.d.ts +0 -37
  168. package/dist/framework/impl/table/table-cell-impl.js +0 -145
  169. package/dist/framework/impl/table/table-cell-impl.js.map +0 -1
  170. package/dist/framework/impl/table/table-impl.d.ts +0 -55
  171. package/dist/framework/impl/table/table-impl.js +0 -363
  172. package/dist/framework/impl/table/table-impl.js.map +0 -1
  173. package/dist/framework/impl/table/table-row-impl.d.ts +0 -26
  174. package/dist/framework/impl/table/table-row-impl.js +0 -75
  175. package/dist/framework/impl/table/table-row-impl.js.map +0 -1
  176. package/dist/framework/impl/table/table-split-cell-patch.d.ts +0 -20
  177. package/dist/framework/impl/table/table-split-cell-patch.js +0 -89
  178. package/dist/framework/impl/table/table-split-cell-patch.js.map +0 -1
  179. package/dist/framework/impl/table/table-split-cell.d.ts +0 -90
  180. package/dist/framework/impl/table/table-split-cell.js +0 -464
  181. package/dist/framework/impl/table/table-split-cell.js.map +0 -1
  182. package/dist/framework/impl/table/table-util.d.ts +0 -150
  183. package/dist/framework/impl/table/table-util.js +0 -678
  184. package/dist/framework/impl/table/table-util.js.map +0 -1
  185. package/dist/framework/impl/text/text-impl.d.ts +0 -32
  186. package/dist/framework/impl/text/text-impl.js +0 -149
  187. package/dist/framework/impl/text/text-impl.js.map +0 -1
  188. package/dist/framework/impl/text/track-run-impl.d.ts +0 -27
  189. package/dist/framework/impl/text/track-run-impl.js +0 -112
  190. package/dist/framework/impl/text/track-run-impl.js.map +0 -1
  191. package/dist/framework/notify.d.ts +0 -13
  192. package/dist/framework/notify.js +0 -116
  193. package/dist/framework/notify.js.map +0 -1
  194. package/dist/framework/range-util.d.ts +0 -40
  195. package/dist/framework/range-util.js +0 -312
  196. package/dist/framework/range-util.js.map +0 -1
  197. package/dist/framework/render-context.d.ts +0 -91
  198. package/dist/framework/render-context.js +0 -384
  199. package/dist/framework/render-context.js.map +0 -1
  200. package/dist/framework/render-define.d.ts +0 -109
  201. package/dist/framework/render-define.js +0 -195
  202. package/dist/framework/render-define.js.map +0 -1
  203. package/dist/framework/selection-overlays.d.ts +0 -30
  204. package/dist/framework/selection-overlays.js +0 -124
  205. package/dist/framework/selection-overlays.js.map +0 -1
  206. package/dist/texteditor.d.ts +0 -318
  207. package/dist/texteditor.js +0 -913
  208. package/dist/texteditor.js.map +0 -1
  209. package/dist/util/subject.d.ts +0 -34
  210. package/dist/util/subject.js +0 -88
  211. package/dist/util/subject.js.map +0 -1
  212. package/dist/util/table-bind.d.ts +0 -5
  213. package/dist/util/table-bind.js +0 -6
  214. package/dist/util/table-bind.js.map +0 -1
  215. package/src/med_editor/doc-ruler.ts +0 -340
  216. package/src/med_editor/framework/common-util.ts +0 -200
  217. package/src/med_editor/framework/document-change.ts +0 -1392
  218. package/src/med_editor/framework/document-combine.ts +0 -44
  219. package/src/med_editor/framework/document-comment.ts +0 -168
  220. package/src/med_editor/framework/document-context.ts +0 -410
  221. package/src/med_editor/framework/document-eval-func.ts +0 -53
  222. package/src/med_editor/framework/document-event.ts +0 -1082
  223. package/src/med_editor/framework/document-history.ts +0 -76
  224. package/src/med_editor/framework/document-images-loader.ts +0 -74
  225. package/src/med_editor/framework/document-input-cursor.ts +0 -244
  226. package/src/med_editor/framework/document-paint.ts +0 -110
  227. package/src/med_editor/framework/document-print-offscreen.ts +0 -134
  228. package/src/med_editor/framework/document-print.ts +0 -219
  229. package/src/med_editor/framework/document-segmenter.ts +0 -211
  230. package/src/med_editor/framework/document-selection.ts +0 -391
  231. package/src/med_editor/framework/document-template.ts +0 -20
  232. package/src/med_editor/framework/document-textline-mode.ts +0 -34
  233. package/src/med_editor/framework/element-define.ts +0 -674
  234. package/src/med_editor/framework/element-event-define.ts +0 -142
  235. package/src/med_editor/framework/element-measure.ts +0 -573
  236. package/src/med_editor/framework/element-paint.ts +0 -176
  237. package/src/med_editor/framework/element-props.ts +0 -938
  238. package/src/med_editor/framework/element-reader.ts +0 -159
  239. package/src/med_editor/framework/element-render-cut.ts +0 -456
  240. package/src/med_editor/framework/element-serialize.ts +0 -128
  241. package/src/med_editor/framework/element-util.ts +0 -1565
  242. package/src/med_editor/framework/impl/checkbox/checkbox-impl.ts +0 -71
  243. package/src/med_editor/framework/impl/comments/comment-content-impl.ts +0 -119
  244. package/src/med_editor/framework/impl/comments/comment-element-impl.ts +0 -65
  245. package/src/med_editor/framework/impl/comments/comments-container-impl.ts +0 -68
  246. package/src/med_editor/framework/impl/comments/comments-util.ts +0 -84
  247. package/src/med_editor/framework/impl/comments/validate-msg-impl.ts +0 -94
  248. package/src/med_editor/framework/impl/data-element/data-decorate-impl.ts +0 -95
  249. package/src/med_editor/framework/impl/data-element/data-element-barcode.ts +0 -127
  250. package/src/med_editor/framework/impl/data-element/data-element-base-impl.ts +0 -234
  251. package/src/med_editor/framework/impl/data-element/data-element-check-impl.ts +0 -146
  252. package/src/med_editor/framework/impl/data-element/data-element-date-impl.ts +0 -128
  253. package/src/med_editor/framework/impl/data-element/data-element-group-impl.ts +0 -150
  254. package/src/med_editor/framework/impl/data-element/data-element-image-impl.ts +0 -147
  255. package/src/med_editor/framework/impl/data-element/data-element-list-impl.ts +0 -142
  256. package/src/med_editor/framework/impl/data-element/data-element-text-impl.ts +0 -117
  257. package/src/med_editor/framework/impl/decorate/fill-null-space-imple.ts +0 -48
  258. package/src/med_editor/framework/impl/document/doc-body-impl.ts +0 -95
  259. package/src/med_editor/framework/impl/document/doc-body-part-impl.ts +0 -104
  260. package/src/med_editor/framework/impl/document/doc-container-impl.ts +0 -24
  261. package/src/med_editor/framework/impl/document/doc-footer-impl.ts +0 -88
  262. package/src/med_editor/framework/impl/document/doc-header-impl.ts +0 -100
  263. package/src/med_editor/framework/impl/document/doc-impl.ts +0 -226
  264. package/src/med_editor/framework/impl/media-formula/menstrual-history.ts +0 -175
  265. package/src/med_editor/framework/impl/paragraph/p-impl.ts +0 -190
  266. package/src/med_editor/framework/impl/picture/image-impl.ts +0 -136
  267. package/src/med_editor/framework/impl/radio/radio-impl.ts +0 -79
  268. package/src/med_editor/framework/impl/symbol/br-symbol-impl.ts +0 -60
  269. package/src/med_editor/framework/impl/symbol/p-symbol-impl.ts +0 -57
  270. package/src/med_editor/framework/impl/table/table-cell-impl.ts +0 -156
  271. package/src/med_editor/framework/impl/table/table-impl.ts +0 -401
  272. package/src/med_editor/framework/impl/table/table-row-impl.ts +0 -83
  273. package/src/med_editor/framework/impl/table/table-split-cell-patch.ts +0 -98
  274. package/src/med_editor/framework/impl/table/table-split-cell.ts +0 -475
  275. package/src/med_editor/framework/impl/table/table-util.ts +0 -716
  276. package/src/med_editor/framework/impl/text/text-impl.ts +0 -164
  277. package/src/med_editor/framework/impl/text/track-run-impl.ts +0 -135
  278. package/src/med_editor/framework/notify.ts +0 -130
  279. package/src/med_editor/framework/range-util.ts +0 -321
  280. package/src/med_editor/framework/render-context.ts +0 -431
  281. package/src/med_editor/framework/render-define.ts +0 -224
  282. package/src/med_editor/framework/selection-overlays.ts +0 -134
  283. package/src/med_editor/texteditor.ts +0 -1011
  284. package/src/med_editor/util/subject.ts +0 -118
  285. package/src/med_editor/util/table-bind.ts +0 -6
  286. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225.json +0 -3573
  287. 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
  288. 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
  289. 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
  290. 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
  291. 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
  292. package/src/med_editor//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225.json +0 -2874
  293. package/src/med_editor//346/211/213/346/234/257/350/256/260/345/275/225.json +0 -341
  294. package/src/med_editor//346/231/256/351/200/232doc/347/261/273/346/226/207/346/241/243.json +0 -2201
  295. package/src/med_editor//346/243/200/351/252/214/347/224/263/350/257/267/345/215/225.json +0 -1069
  296. 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
  297. 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
  298. 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
  299. 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
  300. 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
  301. package/src/med_editor//351/225/277/346/234/237/345/214/273/345/230/261/345/215/225.json +0 -1070
  302. package/tsconfig.json +0 -25
  303. package/webpack.config.js +0 -46
@@ -1,95 +0,0 @@
1
- import { BlockContainerElement, Element, ElementFactory, Rect, SerializeProps } from "@/med_editor/framework/element-define";
2
- import { MouseElementEvent } from "@/med_editor/framework/element-event-define";
3
- import { ElementUtil } from "@/med_editor/framework/element-util";
4
- import { RenderContenxtType } from "@/med_editor/framework/render-context";
5
- import { MuiltBlockLineRenderObject, RenderObject } from "@/med_editor/framework/render-define";
6
- import { DocumentElement } from "./doc-impl";
7
-
8
-
9
- export class DocumentBodyElement extends BlockContainerElement {
10
- //当前区域内是否留痕
11
- trackChanges: boolean = false;
12
- constructor() {
13
- super('body');
14
- //this.editMode = EditMode.Free;
15
- this.addEvent('ElementDblClick', (evt) => {
16
- if (this.disableClick) {
17
- this.switchEditMode(evt);
18
- }
19
- }, true);
20
- }
21
- createRenderObject(): DocumentBodyRenderObject {
22
- return new DocumentBodyRenderObject(this);
23
- }
24
-
25
- serialize(): SerializeProps {
26
- return {
27
- type: 'body',
28
- props: {}
29
- }
30
- }
31
-
32
- switchEditMode(evt: MouseElementEvent): void {
33
- const docElement = ElementUtil.getParentByType(this, DocumentElement);
34
- if (docElement) {
35
- docElement.switchPageHeaderEditor(evt.selectionState, this);
36
- }
37
- return;
38
- }
39
-
40
- clone(data: boolean): DocumentBodyElement {
41
- const clone = new DocumentBodyElement();
42
- if (data) {
43
- for (let i = 0; i < this.length; i++) {
44
- clone.addChild(this.getChild(i).clone(true));
45
- }
46
- }
47
- return clone;
48
- }
49
-
50
-
51
- }
52
-
53
-
54
- export class DocumentBodyRenderObject extends MuiltBlockLineRenderObject {
55
- beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
56
- //console.log('绘制页内容-begin');
57
- if (this.element.disableClick && ctx.drawMode === 'view') {
58
- ctx.contentContext.setGlobalAlpha(0.5);
59
- }
60
- if (ctx.viewOptions.showDebug) {
61
- ctx.overlaysContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'rgb(177,177,177,0.4)');
62
- }
63
- }
64
- endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
65
- //console.log('绘制页内容-end');
66
- if (this.element.disableClick && ctx.drawMode === 'view') {
67
- ctx.contentContext.setGlobalAlpha(1);
68
- }
69
- }
70
-
71
- clone(cloneData = true): RenderObject {
72
- const cloneRender = new DocumentBodyRenderObject(this.element);
73
- cloneRender.rect = ElementUtil.cloneRect(this.rect);
74
- if (cloneData) {
75
- for (let i = 0; i < this.length; i++) {
76
- cloneRender.addChild(this.getChild(i).clone());
77
- }
78
- }
79
- return cloneRender;
80
- }
81
-
82
- }
83
-
84
-
85
- export class DocumentBodyFactory extends ElementFactory<null> {
86
- match(type: string): boolean {
87
- return type === 'body';
88
- }
89
- createElement(data: any, renderCtx: RenderContenxtType): Element {
90
- const element = new DocumentBodyElement();
91
- return element;
92
- }
93
-
94
- }
95
-
@@ -1,104 +0,0 @@
1
- import { BlockContainerElement, SerializeProps, Element, readElementProps, ElementFactory } from "@/med_editor/framework/element-define";
2
- import { ElementUtil } from "@/med_editor/framework/element-util";
3
- import { RenderContenxtType } from "@/med_editor/framework/render-context";
4
- import { MuiltBlockLineRenderObject, RenderObject } from "@/med_editor/framework/render-define";
5
- import { BodyPartProps } from "../../element-props";
6
-
7
- /**
8
- * 用于合并病程录,每个part包含每份病程录body
9
- * 多个part处于一个body下面
10
- */
11
- export class DocumentBodyPartElement extends BlockContainerElement<BodyPartProps> {
12
- //是否被修改
13
- isModify!: boolean;
14
- constructor() {
15
- super('body-part');
16
- this.addEvent('ElementMousemove', (evt) => {
17
- this.isMouseenter = true;
18
- this.refreshView();
19
- });
20
- this.addEvent('ElementMouseLeave', (evt) => {
21
- this.isMouseenter = false;
22
- this.refreshView();
23
- });
24
- this.addEvent('GotCursor', (evt) => {
25
- this.isFocused = true;
26
- this.refreshView();
27
- });
28
- this.addEvent('LostCursor', (evt) => {
29
- this.isFocused = false;
30
- this.refreshView();
31
- });
32
- this.props = new BodyPartProps();
33
- }
34
- createRenderObject(): DocumentBodyPartRenderObject {
35
- const render = new DocumentBodyPartRenderObject(this);
36
- render.margin.top = 10;
37
- render.margin.bottom = 10;
38
- return render;
39
- }
40
-
41
- serialize(): SerializeProps {
42
- return {
43
- type: this.type,
44
- props: {
45
- partId: this.props.partId,
46
- }
47
- }
48
- }
49
-
50
- clone(data: boolean): DocumentBodyPartElement {
51
- const clone = new DocumentBodyPartElement();
52
- clone.props.partId = this.props.partId;
53
- if (data) {
54
- for (let i = 0; i < this.length; i++) {
55
- clone.addChild(this.getChild(i).clone(true));
56
- }
57
- }
58
- return clone;
59
- }
60
- }
61
-
62
-
63
- export class DocumentBodyPartRenderObject extends MuiltBlockLineRenderObject {
64
- beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
65
- //if (ctx.drawMode === 'view' && (this.element.isFocused || this.element.isMouseenter)) {
66
- const borderColor = '#002766';
67
- ctx.overlaysContext.ctx.save();
68
- const bgColor = (this.element.isFocused || this.element.isMouseenter) ? '#d9d9d9' : '#ffffff';
69
- ctx.overlaysContext.fillRect(position.x - 2, position.y - 2, this.rect.width + 4, this.rect.height + 4, bgColor, 5, 'black');
70
- //ctx.overlaysContext.strokeRect(position.x, position.y, this.rect.width, this.rect.height, borderColor)
71
- ctx.overlaysContext.ctx.restore();
72
- //}
73
- }
74
- endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
75
-
76
- }
77
-
78
- clone(cloneData = true): RenderObject {
79
- const cloneRender = new DocumentBodyPartRenderObject(this.element);
80
- cloneRender.rect = ElementUtil.cloneRect(this.rect);
81
- cloneRender.margin.top = this.margin.top;
82
- cloneRender.margin.bottom = this.margin.bottom;
83
- if (cloneData) {
84
- for (let i = 0; i < this.length; i++) {
85
- cloneRender.addChild(this.getChild(i).clone());
86
- }
87
- }
88
- return cloneRender;
89
- }
90
-
91
- }
92
-
93
- export class DocumentBodyPartFactory extends ElementFactory<BodyPartProps>{
94
- match(type: string): boolean {
95
- return type === 'body-part';
96
- }
97
- createElement(data: readElementProps<BodyPartProps>, renderCtx: RenderContenxtType): Element<any> {
98
- const bodyPart = data.props?.partId || '';
99
- const element = new DocumentBodyPartElement();
100
- element.props.partId = bodyPart;
101
- return element;
102
- }
103
-
104
- }
@@ -1,24 +0,0 @@
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
-
5
- export class DocumentContainerRender extends BlockContainerRenderObject {
6
- constructor() {
7
- super(null);
8
- }
9
- beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
10
- //throw new Error("Method not implemented.");
11
- }
12
- endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
13
- //throw new Error("Method not implemented.");
14
- }
15
- clone(): RenderObject {
16
- throw new Error("Method not implemented.");
17
- }
18
-
19
- addPages(pages: Array<DocumentRenderObject>): void {
20
- for (let i = 0; i < pages.length; i++) {
21
- this.addChild(pages[i]);
22
- }
23
- }
24
- }
@@ -1,88 +0,0 @@
1
- import { BlockContainerElement, Element, ElementFactory, Rect, SerializeProps } from "@/med_editor/framework/element-define";
2
- import { MouseElementEvent } from "@/med_editor/framework/element-event-define";
3
- import { ElementUtil } from "@/med_editor/framework/element-util";
4
- import { RenderContenxtType } from "@/med_editor/framework/render-context";
5
- import { BlockContainerRenderObject, RenderObject } from "@/med_editor/framework/render-define";
6
- import { DocumentElement } from "./doc-impl";
7
-
8
- export class DocumentFooterElement extends BlockContainerElement {
9
- constructor() {
10
- super('footer');
11
- //this.editMode = EditMode.Disabled;
12
- this.disableClick = true;
13
- this.addEvent('ElementDblClick', (evt) => {
14
- this.switchEditMode(evt);
15
- }, true);
16
- }
17
- clone(data: boolean): Element {
18
- const clone = new DocumentFooterElement();
19
- if (data) {
20
- for (let i = 0; i < this.length; i++) {
21
- clone.addChild(this.getChild(i).clone(true));
22
- }
23
- }
24
- return clone;
25
- }
26
-
27
- switchEditMode(evt: MouseElementEvent): void {
28
- const docElement = this.parent as DocumentElement;
29
- docElement.switchPageHeaderEditor(evt.selectionState, this);
30
- return;
31
- }
32
-
33
- createRenderObject(): DocumentFooterRenderObject {
34
- const renderObject = new DocumentFooterRenderObject(this);
35
- return renderObject;
36
- }
37
-
38
- serialize(): SerializeProps {
39
- return {
40
- type: 'footer',
41
- props: {}
42
- }
43
- }
44
- }
45
-
46
- export class DocumentFooterRenderObject extends BlockContainerRenderObject {
47
- beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
48
- //判断页眉是否为输入内容
49
- const isFooterEmpty = ElementUtil.checkEmptyContent(this);
50
- if (this.element.disableClick && ctx.drawMode === 'view') {
51
- if (isFooterEmpty) {
52
- ctx.contentContext.setGlobalAlpha(0);
53
- return;
54
- } else {
55
- ctx.contentContext.setGlobalAlpha(0.5);
56
- }
57
- }
58
- }
59
-
60
- endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
61
- ctx.contentContext.setGlobalAlpha(1);
62
- if (ctx.viewOptions.showDebug) {
63
- ctx.overlaysContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'rgb(122,122,122,0.4)')
64
- }
65
- }
66
-
67
- clone(): RenderObject {
68
- const cloneRender = new DocumentFooterRenderObject(this.element);
69
- cloneRender.rect = ElementUtil.cloneRect(this.rect);
70
- for (let i = 0; i < this.length; i++) {
71
- cloneRender.addChild(this.getChild(i).clone());
72
- }
73
- return cloneRender;
74
- }
75
- }
76
-
77
-
78
- export class DocumentFooterFactory extends ElementFactory<null> {
79
- match(type: string): boolean {
80
- return type === 'footer';
81
- }
82
-
83
- createElement(data: any, renderCtx: RenderContenxtType): Element {
84
- const element = new DocumentFooterElement();
85
- //element.renderCtx = renderCtx;
86
- return element;
87
- }
88
- }
@@ -1,100 +0,0 @@
1
- import { BlockContainerElement, Element, ElementFactory, SerializeProps } from "@/med_editor/framework/element-define";
2
- import { MouseElementEvent } from "@/med_editor/framework/element-event-define";
3
- import { ElementUtil } from "@/med_editor/framework/element-util";
4
- import { RenderContenxtType } from "@/med_editor/framework/render-context";
5
- import { BlockContainerRenderObject, RenderObject } from "@/med_editor/framework/render-define";
6
- import { DocumentElement } from "./doc-impl";
7
-
8
- export class DocumentHeaderElement extends BlockContainerElement {
9
- constructor() {
10
- super('header');
11
- this.addEvent('ElementDblClick', (evt) => {
12
- this.switchEditMode(evt);
13
- }, true);
14
- //this.editMode = EditMode.Disabled;
15
- this.disableClick = true;
16
- }
17
-
18
- clone(data: boolean): Element {
19
- const clone = new DocumentHeaderElement();
20
- if (data) {
21
- for (let i = 0; i < this.length; i++) {
22
- clone.addChild(this.getChild(i).clone(true));
23
- }
24
- }
25
- return clone;
26
- }
27
-
28
- switchEditMode(evt: MouseElementEvent): void {
29
- const docElement = this.parent as DocumentElement;
30
- docElement.switchPageHeaderEditor(evt.selectionState, this);
31
- return;
32
- }
33
-
34
-
35
- createRenderObject(): DocumentHeaderRenderObject {
36
- const renderObject = new DocumentHeaderRenderObject(this);
37
- return renderObject;
38
- }
39
-
40
- serialize(): SerializeProps {
41
- return {
42
- type: 'header',
43
- props: {}
44
- }
45
- }
46
-
47
- }
48
-
49
-
50
- export class DocumentHeaderRenderObject extends BlockContainerRenderObject {
51
- beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
52
- //判断页眉是否为输入内容
53
- const isHeaderEmpty = ElementUtil.checkEmptyContent(this);
54
- //存在输入内容时,绘制页眉-页体分割线
55
- if (!isHeaderEmpty || !this.element.disableClick) {
56
- const headerLineY = this.rect.height;
57
- ctx.contentContext.drawLine(position.x, position.y + headerLineY, this.rect.width, 'black', 0.5);
58
- }
59
- if (this.element.disableClick && ctx.drawMode === 'view') {
60
- if (isHeaderEmpty) {
61
- ctx.contentContext.setGlobalAlpha(0);
62
- return;
63
- }
64
- ctx.contentContext.setGlobalAlpha(0.7);
65
- }
66
- }
67
-
68
-
69
- endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
70
- //console.log('绘制页头-end');
71
- if (this.element.disableClick && ctx.drawMode === 'view') {
72
- ctx.contentContext.setGlobalAlpha(1);
73
- }
74
- if (ctx.viewOptions.showDebug) {
75
- ctx.overlaysContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'rgb(122,122,122,0.4)')
76
- }
77
- }
78
-
79
- clone(): RenderObject {
80
- const cloneRender = new DocumentHeaderRenderObject(this.element);
81
- cloneRender.rect = ElementUtil.cloneRect(this.rect);
82
- for (let i = 0; i < this.length; i++) {
83
- cloneRender.addChild(this.getChild(i).clone());
84
- }
85
- return cloneRender;
86
- }
87
- }
88
-
89
-
90
- export class DocumentHeaderFactory extends ElementFactory<null> {
91
- match(type: string): boolean {
92
- return type === 'header';
93
- }
94
-
95
- createElement(data: any, renderCtx: RenderContenxtType): Element {
96
- const element = new DocumentHeaderElement();
97
- //element.renderCtx = renderCtx;
98
- return element;
99
- }
100
- }
@@ -1,226 +0,0 @@
1
- import { BlockContainerElement, DocMode, Element, ElementFactory, MarginProps, PaddingProps, readElementProps, Rect, SerializeProps, ViewOptions } from "@/med_editor/framework/element-define";
2
- import { DocumentProps, TextProps } 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 { ElementUtil } from "@/med_editor/framework/element-util";
8
- import { DocumentFooterElement } from "./doc-footer-impl";
9
- import { ContextMenuElementEvent } from "@/med_editor/framework/element-event-define";
10
- import { documentPrint } from "@/med_editor/framework/document-print";
11
- import { CommsContainerElement } from "../comments/comments-container-impl";
12
- import { CommonUtil } from "@/med_editor/framework/common-util";
13
- import { SelectionState } from "../../document-selection";
14
-
15
- export class DocumentElement extends BlockContainerElement<DocumentProps> {
16
- //props: DocumentProps;
17
- viewOptions!: ViewOptions;
18
- bodyElement!: DocumentBodyElement;
19
- headerElement!: DocumentHeaderElement;
20
- footerElement!: DocumentFooterElement;
21
- commentsContainerElement!: CommsContainerElement;
22
- headerEditState: boolean = false;
23
- constructor() {
24
- super('doc');
25
- this.props = new DocumentProps();
26
- this.addEvent<ContextMenuElementEvent>('ElementContextMenu', (cevt) => {
27
- cevt.menus.push({ icon: 'Print', caption: '打印所有页', eventObj: { onClick: (evt) => { documentPrint.print(cevt.selectionState, this.viewOptions, cevt.ctx) } } });
28
- cevt.menus.push({ icon: 'Print', caption: '打印当前页', eventObj: { onClick: (evt) => { documentPrint.printCurrPage(cevt.selectionState, this.viewOptions, cevt.ctx) } } });
29
- }, true);
30
- }
31
- createRenderObject(options: ViewOptions): DocumentRenderObject {
32
- const { width: docPixelsWidth, height: docPixelsHeight } = this.viewOptions.docPageSettings;
33
- const docRenderObject = new DocumentRenderObject(this);
34
- docRenderObject.rect.width = docPixelsWidth;
35
- docRenderObject.rect.maxWidth = docPixelsWidth;
36
- docRenderObject.rect.maxHeight = docPixelsHeight;
37
- docRenderObject.rect.height = docPixelsHeight;
38
- docRenderObject.element = this;
39
- const { top, bottom, left, right } = this.props.padding;
40
- let { headerLine: headLine, footerLine: footLine } = this.props;
41
- const { mmToPixelsRatio } = this.viewOptions;
42
- headLine = headLine * mmToPixelsRatio;
43
- footLine = footLine * mmToPixelsRatio;
44
- docRenderObject.padding.top = Math.floor(top * mmToPixelsRatio);
45
- docRenderObject.padding.bottom = Math.floor(bottom * mmToPixelsRatio);
46
- docRenderObject.padding.left = Math.floor(left * mmToPixelsRatio);
47
- docRenderObject.padding.right = Math.floor(right * mmToPixelsRatio);
48
- docRenderObject.headerLine = headLine;
49
- docRenderObject.footerLine = footLine;
50
- docRenderObject.margin.top = options.docSpace;
51
- return docRenderObject;
52
- }
53
-
54
- serialize(): SerializeProps {
55
- return {
56
- type: 'doc',
57
- props: {
58
- ...this.props.getSerializeProps()
59
- }
60
- }
61
- }
62
-
63
- clone(): DocumentElement {
64
- const clone = new DocumentElement();
65
- this.props.clone(clone.props)
66
- for (let i = 0; i < this.length; i++) {
67
- clone.addChild(this.getChild(i).clone(true));
68
- }
69
- return clone;
70
- }
71
-
72
- /**
73
- * 更新页边距
74
- * @param marginProps
75
- */
76
- updateMargin(marginProps: Partial<MarginProps>, unit: 'mm' | 'cm' = 'cm'): void {
77
- const { top, bottom, left, right } = marginProps as MarginProps;
78
- const paddig = this.props.padding;
79
- const ratio = unit === 'cm' ? 10 : 1;
80
- paddig.top = top * ratio;
81
- paddig.bottom = bottom * ratio;
82
- paddig.left = left * ratio;
83
- paddig.right = right * ratio;
84
- }
85
-
86
- /**
87
- * 切换开启页眉页脚编辑功能
88
- */
89
- switchPageHeaderEditor(ss: SelectionState, ele: Element | null): void {
90
- if (this.viewOptions.docMode !== DocMode.Design) {
91
- return;
92
- }
93
- if (!this.headerEditState && (!ele || (ele === this.headerElement || ele === this.footerElement))) {
94
- this.headerElement.disableClick = false;
95
- this.footerElement.disableClick = false;
96
- this.bodyElement.disableClick = true;
97
- this.headerEditState = true;
98
- } else if (this.headerEditState && (!ele || ele === this.bodyElement)) {
99
- this.headerElement.disableClick = true;
100
- this.footerElement.disableClick = true;
101
- this.bodyElement.disableClick = false;
102
- this.headerEditState = false;
103
- }
104
- ss.clear();
105
- this.refreshView();
106
- }
107
- }
108
-
109
-
110
- export class DocumentRenderObject extends BlockContainerRenderObject {
111
- constructor(ele: Element) {
112
- super(ele);
113
- }
114
- headerLine!: number;
115
- footerLine!: number;
116
- beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
117
- const { width: docWidth, height: docHeight } = ctx.viewOptions.docPageSettings;
118
- ctx.overlaysContext.fillRect(position.x, position.y, docWidth, this.rect.height, 'white', 5, 'black');
119
- // if (ctx.drawMode === 'view') {
120
- // ctx.contentContext.strokeRect(position.x, position.y, docWidth, this.rect.height, 'black', 0.5);
121
- // }
122
- }
123
- endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
124
- const textP = new TextProps();
125
- textP.color = "rgb(0,0,0)";
126
- textP.fontName = '楷体';
127
- textP.fontSize = 12;
128
- if (ctx.viewOptions.copyRightInfo) {
129
- ctx.contentContext.drawText(ctx.viewOptions.copyRightInfo, textP, position.x + 5, position.y + 5, 100, 12);
130
- }
131
- this.drawDocPageNum(ctx, position);
132
- const padding = this.padding;
133
- let paddingPos = { x: padding.left + position.x, y: padding.top + position.y };
134
- const drawLineWidth = 0.5;
135
- const lineWidth = 20;
136
- const { width: docWidth } = ctx.viewOptions.docPageSettings;
137
- const docHeight = this.rect.height;
138
- ctx.overlaysContext.strokeLines([{ x: paddingPos.x - lineWidth, y: paddingPos.y }, paddingPos, { x: paddingPos.x, y: paddingPos.y - lineWidth }], drawLineWidth);
139
- paddingPos = { x: docWidth - padding.right + position.x, y: padding.top + position.y };
140
- ctx.overlaysContext.strokeLines([{ x: paddingPos.x + lineWidth, y: paddingPos.y }, paddingPos, { x: paddingPos.x, y: paddingPos.y - lineWidth }], drawLineWidth);
141
- paddingPos = { x: padding.left + position.x, y: docHeight - this.padding.bottom + position.y };
142
- ctx.overlaysContext.strokeLines([{ x: paddingPos.x - lineWidth, y: paddingPos.y }, paddingPos, { x: paddingPos.x, y: paddingPos.y + lineWidth }], drawLineWidth);
143
- paddingPos = { x: docWidth - padding.left + position.x, y: docHeight - this.padding.bottom + position.y };
144
- ctx.overlaysContext.strokeLines([{ x: paddingPos.x + lineWidth, y: paddingPos.y }, paddingPos, { x: paddingPos.x, y: paddingPos.y + lineWidth }], drawLineWidth);
145
- this.drawWatermark(ctx, position);
146
- }
147
-
148
- /**
149
- * 绘制水印
150
- * @param ctx
151
- * @param position
152
- */
153
- private drawWatermark(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
154
- if (ctx.viewOptions.watermark) {
155
- const watermark = ctx.viewOptions.watermark;
156
- ctx.contentContext.ctx.save();
157
- ctx.contentContext.ctx.translate(position.x, position.y);
158
- const { width, height } = this.rect;
159
- const degrees = Math.atan(height / width) * 180 / Math.PI
160
- ctx.contentContext.ctx.rotate(degrees * Math.PI / 180);
161
- ctx.contentContext.ctx.globalAlpha = 0.3;
162
- const d = Math.sqrt(width * width + height * height);
163
- const textProps = new TextProps();
164
- textProps.color = "rgb(0,0,0)";
165
- textProps.fontName = '楷体';
166
- textProps.fontSize = 60;
167
- const textWidth = ctx.contentContext.measureText(watermark, textProps).width
168
- const x = d / 2 - textWidth / 2;
169
- ctx.contentContext.ctx.font = textProps.getFont()
170
- ctx.contentContext.ctx.fillText(watermark, x, 30);
171
- ctx.contentContext.ctx.restore();
172
- }
173
- }
174
-
175
- /**
176
- * 绘制文档页码
177
- */
178
- drawDocPageNum(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
179
- const pageWidth = ctx.viewOptions.docPageSettings.width;
180
- const pageIndex = this.getIndex() + 1;
181
- const str = CommonUtil.parseText(ctx.viewOptions.pageNumFormat, { index: pageIndex, count: this.parent.length });
182
- const textProps = new TextProps();
183
- textProps.color = "rgb(0,0,0)";
184
- textProps.fontName = '仿宋';
185
- textProps.fontSize = 14;
186
- textProps.fontStyle = 'italic';
187
- const size = ctx.contentContext.measureText(str, textProps);
188
- const alignCenterX = position.x + Math.ceil(pageWidth / 2) - Math.ceil(size.width / 2)
189
- const paintY = position.y + this.rect.height - size.height - 5;
190
- ctx.contentContext.drawText(str, textProps, alignCenterX, paintY, size.width, size.height);
191
- }
192
-
193
- clone(): RenderObject {
194
- const cloneRender = new DocumentRenderObject(this.element);
195
- cloneRender.rect = ElementUtil.cloneRect(this.rect);
196
- cloneRender.headerLine = this.headerLine;
197
- cloneRender.footerLine = this.footerLine;
198
- for (let i = 0; i < this.length; i++) {
199
- cloneRender.addChild(this.getChild(i).clone());
200
- }
201
- return cloneRender;
202
- }
203
- }
204
-
205
- export class DocumentFactory extends ElementFactory<DocumentProps> {
206
- match(type: string): boolean {
207
- return type === 'doc';
208
- }
209
- createElement(data: readElementProps<DocumentProps>, renderCtx: RenderContenxtType): Element {
210
- const documentElement = new DocumentElement();
211
- const props = data.props as DocumentProps;
212
- const docProps = documentElement.props;
213
- docProps.width = props.width;
214
- docProps.height = props.height;
215
- docProps.padding = new PaddingProps(props.padding.top, props.padding.bottom, props.padding.left, props.padding.right);
216
- docProps.headerLine = props.headerLine ?? 12;
217
- docProps.footerLine = props.footerLine ?? 12;
218
- docProps.scripts = props.scripts;
219
- docProps.createUserId = props.createUserId;
220
- docProps.createUserName = props.createUserName;
221
- docProps.createDate = props.createDate;
222
- docProps.orient = props.orient ?? 'portrait';
223
- return documentElement;
224
- }
225
-
226
- }