@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,159 +0,0 @@
1
- import { EditorContext } from "./document-context";
2
- import { BranchElement, ElementFactory, Element, ViewOptions, PageOptions } from "./element-define";
3
- import { CheckBoxFactory } from "./impl/checkbox/checkbox-impl";
4
- import { CommentContentFactory } from "./impl/comments/comment-content-impl";
5
- import { CommentFactory } from "./impl/comments/comment-element-impl";
6
- import { CommsContainerElement, CommentsFactory } from "./impl/comments/comments-container-impl";
7
- import { DataElementCheckFactory } from "./impl/data-element/data-element-check-impl";
8
- import { DataElementDateFactory } from "./impl/data-element/data-element-date-impl";
9
- import { DataElementImgFactory } from "./impl/data-element/data-element-image-impl";
10
- import { DataElementListFactory } from "./impl/data-element/data-element-list-impl";
11
- import { DataElementTextFactory } from "./impl/data-element/data-element-text-impl";
12
- import { DocumentBodyElement, DocumentBodyFactory } from "./impl/document/doc-body-impl";
13
- import { DocumentFooterElement, DocumentFooterFactory } from "./impl/document/doc-footer-impl";
14
- import { DocumentHeaderElement, DocumentHeaderFactory } from "./impl/document/doc-header-impl";
15
- import { DocumentElement, DocumentFactory } from "./impl/document/doc-impl";
16
- import { DataElementMHFactory } from "./impl/media-formula/menstrual-history";
17
- import { ParagraphFactory } from "./impl/paragraph/p-impl";
18
- import { PictureFactory } from "./impl/picture/image-impl";
19
- import { RadioBoxFactory } from "./impl/radio/radio-impl";
20
- import { BreakFactory } from "./impl/symbol/br-symbol-impl";
21
- import { TableCellFactory } from "./impl/table/table-cell-impl";
22
- import { TableFactory } from "./impl/table/table-impl";
23
- import { TableRowFactory } from "./impl/table/table-row-impl";
24
- import { RunElementFactory } from "./impl/text/track-run-impl";
25
- import { TextGroupFactory } from "./impl/text/text-impl";
26
- import { RenderContenxtType } from "./render-context";
27
- import { INotifyPropertyChanged, TrackRunProps } from "./element-props";
28
- import { DataElementGroupFactory } from "@/med_editor/framework/impl/data-element/data-element-group-impl";
29
- import { DocumentBodyPartFactory } from "./impl/document/doc-body-part-impl";
30
- import { DataElementBarcodeFactory } from "./impl/data-element/data-element-barcode";
31
-
32
- export class ElementReader {
33
- constructor(private docCtx: EditorContext, private viewOptions: ViewOptions, private renderCtx: RenderContenxtType) {
34
- this.initFactory();
35
- }
36
-
37
- factories: Array<ElementFactory> = [];
38
-
39
- addFactory<U extends null | object, T extends ElementFactory<U>>(c: new () => T): void {
40
- const instance = new c();
41
- instance.options = this.viewOptions;
42
- this.factories.push(instance as ElementFactory);
43
- }
44
-
45
-
46
- private initFactory(): void {
47
- this.addFactory(DocumentFactory);
48
- this.addFactory(DocumentHeaderFactory);
49
- this.addFactory(DocumentBodyFactory);
50
- this.addFactory(ParagraphFactory);
51
- this.addFactory(TextGroupFactory);
52
- this.addFactory(CheckBoxFactory);
53
- this.addFactory(TableFactory);
54
- this.addFactory(TableRowFactory);
55
- this.addFactory(TableCellFactory);
56
- this.addFactory(DocumentFooterFactory);
57
- this.addFactory(PictureFactory);
58
- this.addFactory(RadioBoxFactory);
59
- this.addFactory(DataElementTextFactory);
60
- this.addFactory(DataElementDateFactory);
61
- this.addFactory(DataElementListFactory);
62
- this.addFactory(DataElementCheckFactory);
63
- this.addFactory(DataElementBarcodeFactory);
64
- this.addFactory(BreakFactory);
65
- this.addFactory(CommentsFactory)
66
- this.addFactory(CommentContentFactory);
67
- this.addFactory(CommentFactory);
68
- this.addFactory(DataElementImgFactory);
69
- this.addFactory(DataElementMHFactory);
70
- this.addFactory(RunElementFactory);
71
- this.addFactory(DataElementGroupFactory);
72
- this.addFactory(DocumentBodyPartFactory);
73
- this.registerReadFunc<TrackRunProps>('ins-run', (data) => {
74
- const props = new TrackRunProps(data.type);
75
- props.userId = data.userId;
76
- props.userName = data.userName;
77
- props.date = data.date;
78
- return props;
79
- })
80
- this.registerReadFunc<TrackRunProps>('del-run', (data) => {
81
- const props = new TrackRunProps(data.type);
82
- props.userId = data.userId;
83
- props.userName = data.userName;
84
- props.date = data.date;
85
- return props;
86
- })
87
- }
88
-
89
- read(data: any | DocumentElement): void {
90
- const document = data instanceof DocumentElement ? data.clone() : this.readElement(data) as DocumentElement;
91
- this.setDocument(document);
92
- }
93
-
94
-
95
- setDocument(document: DocumentElement): void {
96
- // if (this.docCtx.document) {
97
- // this.docCtx.document.destroy();
98
- // }
99
- // this.document?.clearItems();
100
- // document.docProps.clone(this.document.docProps);
101
- document.bodyElement = document.find((item) => item instanceof DocumentBodyElement) as DocumentBodyElement;
102
- document.headerElement = document.find((item) => item instanceof DocumentHeaderElement) as DocumentHeaderElement;
103
- document.footerElement = document.find((item) => item instanceof DocumentFooterElement) as DocumentFooterElement;
104
- document.commentsContainerElement = document.find((item) => item instanceof CommsContainerElement) as CommsContainerElement;
105
- if (!document.commentsContainerElement) {
106
- document.commentsContainerElement = new CommsContainerElement();
107
- }
108
- document.clearItems();
109
- document.addChild(document.headerElement);
110
- document.addChild(document.bodyElement);
111
- document.addChild(document.footerElement);
112
- document.addChild(document.commentsContainerElement);
113
- this.docCtx.document = document;
114
- document.viewOptions = this.viewOptions;
115
- const width = Math.floor(document.props.width * this.viewOptions.mmToPixelsRatio);
116
- const height = Math.floor(document.props.height * this.viewOptions.mmToPixelsRatio);
117
- this.viewOptions.docPageSettings = new PageOptions(width, height, document.props.orient);
118
- //this.viewOptions.viewSettings.width = this.viewOptions.docPageSettings.width + 10;
119
- }
120
-
121
-
122
- readElement(data: any): Element {
123
- const type = data.type as string;
124
- for (const factory of this.factories) {
125
- if (factory.match(type)) {
126
- const element = factory.createElement(data, this.renderCtx);
127
- //this.readExtendsProps(data, element);
128
- if (element instanceof BranchElement) {
129
- const children = data.children || [];
130
- for (const child of children) {
131
- element.addChild(this.readElement(child));
132
- }
133
- }
134
- return element;
135
- }
136
- }
137
- throw new Error('未知的元素类型:' + type);
138
- }
139
-
140
- propsReadFuncs: Map<string, (data: any) => any> = new Map();
141
-
142
- registerReadFunc<T>(propName: string, func: (data: T) => T): void {
143
- this.propsReadFuncs.set(propName, func);
144
- }
145
-
146
- readExtendsProps(data: any, element: Element): void {
147
- if (data.extendsProps && data.extendsProps.length) {
148
- for (const prop of data.extendsProps) {
149
- const func = this.propsReadFuncs.get(prop.name);
150
- if (func) {
151
- const extendProps = func(prop.value);
152
- if (extendProps && element.props instanceof INotifyPropertyChanged) {
153
- element.props.registerProperty(prop.name, extendProps);
154
- }
155
- }
156
- }
157
- }
158
- }
159
- }
@@ -1,456 +0,0 @@
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
-
15
- export class ElementRenderCut {
16
- constructor(private options: ViewOptions, private renderContext: RenderContenxtType) { }
17
-
18
- cutPage(documentRender: DocumentRenderObject, documentElement: DocumentElement): Array<DocumentRenderObject> {
19
- if (this.options.fullPageView) {
20
- return this.getFullViewDocRender(documentRender, documentElement);
21
- }
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;
26
- const { headerLine, footerLine } = documentRender;
27
- let bodyMarginTop = headerLine + headerRender.rect.height + 6;
28
- let bodyMarginBottom = footerLine + footerRender.rect.height;
29
- const { top: bodyTop, bottom: bodyBottom } = documentRender.padding;
30
- bodyMarginTop = bodyMarginTop > bodyTop ? bodyMarginTop : bodyTop;
31
- bodyMarginBottom = bodyMarginBottom > bodyBottom ? bodyMarginBottom : bodyBottom;
32
- documentRender.padding.top = bodyMarginTop;
33
- documentRender.padding.bottom = bodyMarginBottom;
34
- const bodyLimitRect = documentRender.getInnnerRect();
35
- const bodyArray: Array<DocumentBodyRenderObject> = [];
36
- let { emptyBody: pageBodyRender, innerRect: bodyInnerLimitRect } = this.createEmptyBodyRender(bodyRender, bodyLimitRect);
37
- bodyArray.push(pageBodyRender);
38
-
39
- const createBodyHolder = () => {
40
- const { emptyBody, innerRect } = this.createEmptyBodyRender(bodyRender, bodyLimitRect);
41
- pageBodyRender = emptyBody;
42
- bodyInnerLimitRect = innerRect;
43
- bodyArray.push(pageBodyRender);
44
- };
45
-
46
- const appendToBody = (item: BlockContentRenderObject) => {
47
- item.rect.y = bodyInnerLimitRect.height + item.margin.top;
48
- pageBodyRender.addChild(item);
49
- bodyInnerLimitRect.height += item.rect.height + item.margin.top + item.margin.bottom;
50
- //上一个元素的bottom-margin
51
- //bodyInnerLimitRect.prevMargin = item.margin.bottom;
52
- ElementUtil.updateRenderHeightByInnerRect(pageBodyRender, bodyInnerLimitRect);
53
- if (this.checkPageBreak(item)) {
54
- createBodyHolder();
55
- }
56
- };
57
-
58
-
59
- let i = 0;
60
- let cloneBlockContentRender: null | BlockContentRenderObject = bodyRender.getChild(i) as BlockContentRenderObject;
61
- while (cloneBlockContentRender) {
62
- if (bodyInnerLimitRect.maxHeight - bodyInnerLimitRect.height - cloneBlockContentRender.rect.height - cloneBlockContentRender.margin.bottom - cloneBlockContentRender.margin.top < 0) {
63
- //限制的外框尺寸
64
- const bodyAvailHeight = bodyInnerLimitRect.maxHeight - bodyInnerLimitRect.height - cloneBlockContentRender.margin.bottom - cloneBlockContentRender.margin.top;
65
- //限制的内框尺寸
66
- const limitRenderInnterHeight = ElementUtil.innerRectMaxHeight(cloneBlockContentRender, bodyAvailHeight);
67
- const cutRenderObject = this.cutRenderItem(cloneBlockContentRender, limitRenderInnterHeight);
68
- //至少有一个块级行元素被切割出来
69
- if (cutRenderObject) {
70
- appendToBody(cutRenderObject);
71
- }
72
- createBodyHolder();
73
- } else {
74
- appendToBody(cloneBlockContentRender);
75
- if (++i < bodyRender.length) {
76
- cloneBlockContentRender = bodyRender.getChild(i) as BlockContentRenderObject;
77
- } else {
78
- cloneBlockContentRender = null;
79
- }
80
- }
81
- }
82
-
83
- const docPages: Array<DocumentRenderObject> = [];
84
- let pageY: number = this.options.docSpace;
85
- for (let i = 0; i < bodyArray.length; i++) {
86
- const body = bodyArray[i];
87
- const documentRender = documentElement.createRenderObject(this.options);
88
- docPages.push(documentRender);
89
- documentRender.rect.y = pageY;
90
- const limitRect = documentRender.getInnnerRect();
91
- const cloneHeaderRender = headerRender.clone();
92
- cloneHeaderRender.rect.x = limitRect.x;
93
- cloneHeaderRender.rect.y = headerLine;
94
- documentRender.addChild(cloneHeaderRender);
95
- body.rect.x = limitRect.x;
96
- body.rect.y = bodyMarginTop;
97
- body.rect.height = bodyInnerLimitRect.maxHeight;
98
- documentRender.addChild(body);
99
- pageY += documentRender.rect.height + this.options.docSpace;
100
- const cloneFooterRender = footerRender.clone();
101
- cloneFooterRender.rect.x = limitRect.x;
102
- cloneFooterRender.rect.y = documentRender.rect.height - bodyMarginBottom;
103
- documentRender.addChild(cloneFooterRender);
104
- //审阅模式,添加审阅窗口
105
- if (this.options.showReviewWindow && commentsRender) {
106
- const commentsContainer = commentsRender.element.createRenderObject(this.options, this.renderContext) as CommsContainerRenderObject;
107
- commentsContainer.padding.top = bodyMarginTop;
108
- commentsContainer.rect.height = documentRender.rect.height;
109
- documentRender.addChild(commentsContainer);
110
- commentsContainer.rect.x = documentRender.rect.x + documentRender.rect.width;
111
- documentRender.rect.width += this.options.reviewWindowWidth;
112
- }
113
- }
114
- return docPages;
115
- }
116
-
117
- private checkPageBreak(item: RenderObject): boolean {
118
- if (item.element && item.element.type === 'p') {
119
- const p = item.element as ParagraphElement;
120
- if (p.props.pageBreak) {
121
- return true;
122
- }
123
- }
124
- return false;
125
- }
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;
130
- documentRender.rect.height -= commentsContainer.rect.height;
131
- const bodyRender = documentRender.getChild(1) as DocumentBodyRenderObject;
132
- if (this.options.showReviewWindow) {
133
- documentRender.removeChild(commentsRender);
134
- documentRender.addChild(commentsContainer);
135
- commentsContainer.padding.top = bodyRender.rect.y;
136
- commentsContainer.rect.height = documentRender.rect.height;
137
- commentsContainer.rect.x = documentRender.rect.x + documentRender.rect.width;
138
- documentRender.rect.width += this.options.reviewWindowWidth;
139
- }
140
- return [documentRender as DocumentRenderObject]
141
- }
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;
145
- ElementUtil.setBlockElementLimitSize(pageBodyRender, limitRect);
146
- const bodyInnerLimitRect = pageBodyRender.getInnnerRect();
147
- if (this.options.fullPageView) {
148
- bodyInnerLimitRect.height = Number.MAX_VALUE;
149
- }
150
- return { emptyBody: pageBodyRender, innerRect: { ...bodyInnerLimitRect, prevMargin: 0 } };
151
- }
152
-
153
- /**
154
- * 切割渲染元素
155
- * @param render 被切割的对象
156
- * @param limitHeight
157
- * @param addFunc
158
- * @returns
159
- */
160
- cutRenderItem(render: BlockContentRenderObject, limitHeight: number): BlockContentRenderObject | null {
161
- if (render instanceof TableRowRenderObject) {
162
- return this.cutRowRenderItem(render, limitHeight);
163
- }
164
- if (render instanceof TableRenderObject) {
165
- return this.cutTable(render, limitHeight);
166
- }
167
- const cloneRender = render.element.createRenderObject(this.options, this.renderContext) as MuiltBlockLineRenderObject;
168
- cloneRender.setRenderWidth(render.rect.width);
169
- if (render instanceof MuiltBlockLineRenderObject) {
170
- let sumHeight = 0;
171
- const children = [...render.getItems()];
172
- let j = 0;
173
- let blockLine = children[j];
174
- while (blockLine) {
175
- //sumHeight = ElementUtil.remeasure(cloneRender);
176
- const calcBlockLineHeight = this.getBlockLineHeight(blockLine);
177
- if (calcBlockLineHeight + sumHeight > limitHeight) {
178
- if (blockLine instanceof MuiltBlockLineRenderObject) {
179
- //限制的外框尺寸
180
- const availHeight = limitHeight - sumHeight;
181
- //限制的内框尺寸
182
- const limitRenderInnterHeight = ElementUtil.innerRectMaxHeight(render, availHeight);
183
- const cutRenderObject = this.cutRenderItem(blockLine, limitRenderInnterHeight);
184
- if (cutRenderObject) {
185
- cloneRender.addChild(cutRenderObject);
186
- sumHeight += cutRenderObject.rect.height;
187
- blockLine = children[++j];
188
- } else {
189
- break;
190
- }
191
- } else {
192
- break;
193
- }
194
- } else {
195
- render.removeChild(blockLine);
196
- cloneRender.addChild(blockLine);
197
- sumHeight += blockLine.rect.height;
198
- blockLine = children[++j];
199
- }
200
- }
201
- ElementUtil.remeasure(cloneRender);
202
- ElementUtil.remeasure(render);
203
- if (cloneRender.length === 0) {
204
- return null;
205
- } else {
206
- return cloneRender;
207
- }
208
- } else {
209
- throw new Error('未实现');
210
- }
211
- }
212
-
213
- /**
214
- * 切割渲染元素
215
- * @param tbRender 被切割的对象
216
- * @param limitHeight
217
- * @param addFunc
218
- * @returns
219
- */
220
- cutTable(tbRender: TableRenderObject, limitHeight: number): BlockContentRenderObject | null {
221
- const cloneTbRender = tbRender.element.createRenderObject(this.options, this.renderContext) as TableRenderObject;
222
- cloneTbRender.setRenderWidth(tbRender.rect.width);
223
- let sumHeight = 0;
224
- const rows = [...tbRender.getItems()];
225
- //获取跨页需要重复显示的行
226
- const headerRows = this.getHeaderRows(tbRender);
227
- //跨页头的高度
228
- const headerHeight = headerRows.reduce((prev, curr) => prev + curr.rect.height, 0);
229
- if (headerHeight > limitHeight) {
230
- return null;
231
- }
232
- const copyHeaderRows = headerRows.map(item => item.clone());
233
- //获取最后一个截断行,需要根据截断行判断最后一个截断的行位置
234
- 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 }))
236
- .sort((first, second) => second.rowIndex - first.rowIndex);
237
- if (cutOffRows.length === 0) {
238
- throw new Error('无法获取截断行');
239
- }
240
- const joinRow = cutOffRows[0].row;
241
- let j = 0;
242
- let currRow = rows[j];
243
- const cutRows: Array<TableRowRenderObject> = [];
244
- while (currRow) {
245
- const rowContentHeight = this.getBlockLineHeight(currRow);
246
- if (rowContentHeight + sumHeight > limitHeight) {
247
- if (currRow instanceof MuiltBlockLineRenderObject) {
248
- //限制的外框尺寸
249
- const availHeight = limitHeight - sumHeight;
250
- //限制的内框尺寸
251
- const limitRenderInnterHeight = ElementUtil.innerRectMaxHeight(tbRender, availHeight);
252
- const cutRow = this.cutRowRenderItem(currRow, limitRenderInnterHeight) as TableRowRenderObject;
253
- if (cutRow) {
254
- cloneTbRender.addChild(cutRow);
255
- sumHeight += cutRow.rect.height;
256
- cutRows.push(currRow);
257
- if (currRow === joinRow) {
258
- break;
259
- }
260
- currRow = rows[++j];
261
- } else {
262
- break;
263
- }
264
- } else {
265
- break;
266
- }
267
- } else {
268
- tbRender.removeChild(currRow);
269
- cloneTbRender.addChild(currRow);
270
- sumHeight += currRow.rect.height;
271
- currRow = rows[++j];
272
- }
273
- }
274
- this.fixCutTable(tbRender, cutRows);
275
- ElementUtil.remeasure(cloneTbRender);
276
- //存在跨页需要重复显示的行头,则需要重新放置行头
277
- if (copyHeaderRows.length) {
278
- copyHeaderRows.forEach((r, i) => tbRender.insertChild(r, i))
279
- }
280
- ElementUtil.remeasure(tbRender);
281
- if (cloneTbRender.length === 0) {
282
- return null;
283
- } else {
284
- return cloneTbRender;
285
- }
286
- }
287
-
288
- cutRowRenderItem(render: TableRowRenderObject, limitHeight: number): TableRowRenderObject | null {
289
- if (render.element.props.minHeight > 0 && render.rect.height > limitHeight) {
290
- return null;
291
- }
292
- const cloneRowRender = render.element.createRenderObject() as TableRowRenderObject;
293
- cloneRowRender.rect.width = render.rect.width;
294
- cloneRowRender.rect.maxWidth = render.rect.height;
295
- const cellRenders = [...render.getItems()] as Array<TableCellRenderObject>;
296
- const cutCellRenders: Array<RenderObject | null> = [];
297
- for (let i = 0; i < cellRenders.length; i++) {
298
- const cellRender = cellRenders[i];
299
- if (cellRender.rect.height > limitHeight) {
300
- //限制的外框尺寸
301
- const availHeight = limitHeight;
302
- //限制的内框尺寸
303
- const limitRenderInnterHeight = ElementUtil.innerRectMaxHeight(cellRender, availHeight);
304
- const cutCellRender = this.cutRenderItem(cellRender, limitRenderInnterHeight);
305
- if (cutCellRender) {
306
- cutCellRenders.push(cutCellRender)
307
- } else {
308
- cutCellRenders.push(null)
309
- }
310
- } else {
311
- const cloneCellRender = cellRender as BlockLineRectRenderObject;
312
- render.removeChild(cellRender);
313
- cutCellRenders.push(cloneCellRender);
314
- }
315
- }
316
- ElementUtil.remeasure(render);
317
- if (cutCellRenders.filter(item => item).length === 0) {
318
- return null;
319
- } else {
320
- //补齐单元格
321
- for (let i = 0; i < cutCellRenders.length; i++) {
322
- let cellRender = cutCellRenders[i] as TableCellRenderObject;
323
- if (!cellRender) {
324
- cellRender = cellRenders[i].clone() as TableCellRenderObject;
325
- ElementUtil.remeasure(cellRender);
326
- }
327
- cloneRowRender.addChild(cellRender);
328
- }
329
- ElementUtil.remeasure(cloneRowRender);
330
- return cloneRowRender;
331
- }
332
- }
333
- /**
334
- * 修复->已经截断的合并单元格要向下移动到合适的位置
335
- * @param tbRender
336
- * @param cutRows
337
- * @returns
338
- */
339
- private fixCutTable(tbRender: TableRenderObject, cutRows: Array<TableRowRenderObject>): void {
340
- if (!cutRows.length) {
341
- return;
342
- }
343
- const tbEle = tbRender.element as TableElement;
344
- const belowMergeRows = new Set<TableRowRenderObject>();
345
- 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;
348
- if (!nextRow) {
349
- break;
350
- }
351
- if (!cutRows.some(item => item === row)) {
352
- break;
353
- }
354
- if (row.length === tbEle.getColsCount()) {
355
- break;
356
- }
357
- if (this.checkFullRow(row)) {
358
- break;
359
- }
360
- for (let j = 0; j < row.length; j++) {
361
- const cell = row.getChild(j) as TableCellRenderObject;
362
- const cellEle = cell.element as TableCellElement;
363
- const colIndex = cellEle.getIndex();
364
- if (!this.existsCellRender(nextRow, colIndex)) {
365
- const insertColIndex = this.getRowInsertCellIndex(cell, nextRow);
366
- if (insertColIndex === -1) {
367
- const insertColIndex2 = this.getRowInsertCellIndex(cell, nextRow);
368
- throw new Error('未在紧挨下方找到可以放置的位置');
369
- }
370
- //row.removeChild(cell);
371
- nextRow.insertChild(cell, insertColIndex);
372
- belowMergeRows.add(row);
373
- ElementUtil.remeasure(nextRow);
374
- }
375
- }
376
- }
377
- if (belowMergeRows.size) {
378
- for (const row of belowMergeRows) {
379
- tbRender.removeChild(row);
380
- row.clear();
381
- }
382
- ElementUtil.remeasure(tbRender);
383
- }
384
- }
385
-
386
- /**
387
- * 校验当前是否是一个完整的行,没有Null单元格,检查当前是否还需要向下合并
388
- * @param row
389
- */
390
- private checkFullRow(row: TableRowRenderObject): boolean {
391
- let x = 0;
392
- for (let i = 0; i < row.length; i++) {
393
- const cell = row.getChild(i);
394
- if (cell.rect.x !== x) {
395
- return false;
396
- }
397
- x += cell.rect.width;
398
- }
399
- return x === row.rect.width;
400
- }
401
-
402
- private existsCellRender(rowRender: TableRowRenderObject, cellIndex: number): boolean {
403
- for (let i = 0; i < rowRender.length; i++) {
404
- const cellRender = rowRender.getChild(i) as TableCellRenderObject;
405
- const cellEle = cellRender.element as TableCellElement;
406
- if (cellEle.getIndex() === cellIndex) {
407
- return true;
408
- }
409
- }
410
- return false;
411
- }
412
-
413
- private getBlockLineHeight(render: RenderObject): number {
414
- if (render instanceof TableRowRenderObject) {
415
- let maxCellHeight = 0;
416
- for (let i = 0; i < render.length; i++) {
417
- const itemHeight = render.getChild(i).rect.height;
418
- if (itemHeight > maxCellHeight) {
419
- maxCellHeight = itemHeight;
420
- }
421
- }
422
- return maxCellHeight;
423
- }
424
- return render.rect.height;
425
- }
426
-
427
-
428
- getRowInsertCellIndex(sourceCell: TableCellRenderObject, destRow: TableRowRenderObject): number {
429
- for (let i = 0; i < destRow.length; i++) {
430
- const cell = destRow.getChild(i) as TableCellRenderObject;
431
- const rect = cell.rect;
432
- if (sourceCell.rect.x < rect.x) {
433
- return i;
434
- }
435
- }
436
- const lastCell = destRow.getChild(destRow.length - 1);
437
- if (sourceCell.rect.x >= lastCell.rect.x + lastCell.rect.width) {
438
- return destRow.length;
439
- }
440
- return -1;
441
- }
442
-
443
- private getHeaderRows(tb: TableRenderObject): Array<TableRowRenderObject> {
444
- const rows: Array<TableRowRenderObject> = [];
445
- for (let i = 0; i < tb.length; i++) {
446
- const rowRender = tb.getChild(i) as TableRowRenderObject;
447
- const rowEle = rowRender.element as TableRowElement;
448
- if (rowEle.props.headerRow) {
449
- rows.push(rowRender);
450
- } else {
451
- break;
452
- }
453
- }
454
- return rows;
455
- }
456
- }