@hailin-zheng/editor-core 1.0.7 → 1.0.10

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