@hailin-zheng/editor-core 1.0.9 → 1.0.13

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 (236) hide show
  1. package/lib/doc-ruler.d.ts +51 -0
  2. package/{src/med_editor/doc-ruler.ts → lib/doc-ruler.js} +73 -100
  3. package/lib/doc-ruler.js.map +1 -0
  4. package/lib/framework/common-util.d.ts +63 -0
  5. package/lib/framework/common-util.js +178 -0
  6. package/lib/framework/common-util.js.map +1 -0
  7. package/lib/framework/document-change.d.ts +265 -0
  8. package/{src/med_editor/framework/document-change.ts → lib/framework/document-change.js} +257 -306
  9. package/lib/framework/document-change.js.map +1 -0
  10. package/lib/framework/document-combine.d.ts +24 -0
  11. package/{src/med_editor/framework/document-combine.ts → lib/framework/document-combine.js} +11 -15
  12. package/lib/framework/document-combine.js.map +1 -0
  13. package/lib/framework/document-comment.d.ts +46 -0
  14. package/{src/med_editor/framework/document-comment.ts → lib/framework/document-comment.js} +37 -52
  15. package/lib/framework/document-comment.js.map +1 -0
  16. package/lib/framework/document-context.d.ts +149 -0
  17. package/{src/med_editor/framework/document-context.ts → lib/framework/document-context.js} +101 -181
  18. package/lib/framework/document-context.js.map +1 -0
  19. package/lib/framework/document-eval-func.d.ts +18 -0
  20. package/{src/med_editor/framework/document-eval-func.ts → lib/framework/document-eval-func.js} +11 -16
  21. package/lib/framework/document-eval-func.js.map +1 -0
  22. package/lib/framework/document-event.d.ts +213 -0
  23. package/{src/med_editor/framework/document-event.ts → lib/framework/document-event.js} +216 -244
  24. package/lib/framework/document-event.js.map +1 -0
  25. package/lib/framework/document-history.d.ts +26 -0
  26. package/{src/med_editor/framework/document-history.ts → lib/framework/document-history.js} +14 -25
  27. package/lib/framework/document-history.js.map +1 -0
  28. package/lib/framework/document-images-loader.d.ts +16 -0
  29. package/{src/med_editor/framework/document-images-loader.ts → lib/framework/document-images-loader.js} +17 -25
  30. package/lib/framework/document-images-loader.js.map +1 -0
  31. package/lib/framework/document-input-cursor.d.ts +78 -0
  32. package/{src/med_editor/framework/document-input-cursor.ts → lib/framework/document-input-cursor.js} +71 -76
  33. package/lib/framework/document-input-cursor.js.map +1 -0
  34. package/lib/framework/document-paint.d.ts +34 -0
  35. package/{src/med_editor/framework/document-paint.ts → lib/framework/document-paint.js} +28 -35
  36. package/lib/framework/document-paint.js.map +1 -0
  37. package/lib/framework/document-print-offscreen.d.ts +38 -0
  38. package/{src/med_editor/framework/document-print-offscreen.ts → lib/framework/document-print-offscreen.js} +19 -25
  39. package/lib/framework/document-print-offscreen.js.map +1 -0
  40. package/lib/framework/document-print.d.ts +60 -0
  41. package/{src/med_editor/framework/document-print.ts → lib/framework/document-print.js} +41 -57
  42. package/lib/framework/document-print.js.map +1 -0
  43. package/lib/framework/document-segmenter.d.ts +2 -0
  44. package/lib/framework/document-segmenter.js +106 -0
  45. package/lib/framework/document-segmenter.js.map +1 -0
  46. package/lib/framework/document-selection.d.ts +89 -0
  47. package/{src/med_editor/framework/document-selection.ts → lib/framework/document-selection.js} +84 -115
  48. package/lib/framework/document-selection.js.map +1 -0
  49. package/lib/framework/document-template.d.ts +4 -0
  50. package/{src/med_editor/framework/document-template.ts → lib/framework/document-template.js} +3 -3
  51. package/lib/framework/document-template.js.map +1 -0
  52. package/lib/framework/document-textline-mode.d.ts +7 -0
  53. package/lib/framework/document-textline-mode.js +30 -0
  54. package/lib/framework/document-textline-mode.js.map +1 -0
  55. package/lib/framework/element-define.d.ts +319 -0
  56. package/{src/med_editor/framework/element-define.ts → lib/framework/element-define.js} +206 -301
  57. package/lib/framework/element-define.js.map +1 -0
  58. package/lib/framework/element-event-define.d.ts +98 -0
  59. package/lib/framework/element-event-define.js +108 -0
  60. package/lib/framework/element-event-define.js.map +1 -0
  61. package/lib/framework/element-measure.d.ts +97 -0
  62. package/{src/med_editor/framework/element-measure.ts → lib/framework/element-measure.js} +121 -143
  63. package/lib/framework/element-measure.js.map +1 -0
  64. package/lib/framework/element-paint.d.ts +42 -0
  65. package/{src/med_editor/framework/element-paint.ts → lib/framework/element-paint.js} +37 -43
  66. package/lib/framework/element-paint.js.map +1 -0
  67. package/lib/framework/element-props.d.ts +301 -0
  68. package/{src/med_editor/framework/element-props.ts → lib/framework/element-props.js} +202 -331
  69. package/lib/framework/element-props.js.map +1 -0
  70. package/lib/framework/element-reader.d.ts +19 -0
  71. package/{src/med_editor/framework/element-reader.ts → lib/framework/element-reader.js} +30 -38
  72. package/lib/framework/element-reader.js.map +1 -0
  73. package/lib/framework/element-render-cut.d.ts +55 -0
  74. package/{src/med_editor/framework/element-render-cut.ts → lib/framework/element-render-cut.js} +106 -113
  75. package/lib/framework/element-render-cut.js.map +1 -0
  76. package/lib/framework/element-serialize.d.ts +30 -0
  77. package/{src/med_editor/framework/element-serialize.ts → lib/framework/element-serialize.js} +24 -37
  78. package/lib/framework/element-serialize.js.map +1 -0
  79. package/lib/framework/element-util.d.ts +369 -0
  80. package/{src/med_editor/framework/element-util.ts → lib/framework/element-util.js} +216 -317
  81. package/lib/framework/element-util.js.map +1 -0
  82. package/lib/framework/impl/checkbox/checkbox-impl.d.ts +24 -0
  83. package/{src/med_editor/framework/impl/checkbox/checkbox-impl.ts → lib/framework/impl/checkbox/checkbox-impl.js} +18 -25
  84. package/lib/framework/impl/checkbox/checkbox-impl.js.map +1 -0
  85. package/lib/framework/impl/comments/comment-content-impl.d.ts +40 -0
  86. package/{src/med_editor/framework/impl/comments/comment-content-impl.ts → lib/framework/impl/comments/comment-content-impl.js} +31 -45
  87. package/lib/framework/impl/comments/comment-content-impl.js.map +1 -0
  88. package/lib/framework/impl/comments/comment-element-impl.d.ts +21 -0
  89. package/{src/med_editor/framework/impl/comments/comment-element-impl.ts → lib/framework/impl/comments/comment-element-impl.js} +18 -21
  90. package/lib/framework/impl/comments/comment-element-impl.js.map +1 -0
  91. package/lib/framework/impl/comments/comments-container-impl.d.ts +22 -0
  92. package/{src/med_editor/framework/impl/comments/comments-container-impl.ts → lib/framework/impl/comments/comments-container-impl.js} +15 -21
  93. package/lib/framework/impl/comments/comments-container-impl.js.map +1 -0
  94. package/lib/framework/impl/comments/comments-util.d.ts +12 -0
  95. package/{src/med_editor/framework/impl/comments/comments-util.ts → lib/framework/impl/comments/comments-util.js} +17 -34
  96. package/lib/framework/impl/comments/comments-util.js.map +1 -0
  97. package/lib/framework/impl/comments/validate-msg-impl.d.ts +21 -0
  98. package/{src/med_editor/framework/impl/comments/validate-msg-impl.ts → lib/framework/impl/comments/validate-msg-impl.js} +15 -26
  99. package/lib/framework/impl/comments/validate-msg-impl.js.map +1 -0
  100. package/lib/framework/impl/data-element/data-decorate-impl.d.ts +30 -0
  101. package/{src/med_editor/framework/impl/data-element/data-decorate-impl.ts → lib/framework/impl/data-element/data-decorate-impl.js} +21 -25
  102. package/lib/framework/impl/data-element/data-decorate-impl.js.map +1 -0
  103. package/lib/framework/impl/data-element/data-element-barcode.d.ts +31 -0
  104. package/{src/med_editor/framework/impl/data-element/data-element-barcode.ts → lib/framework/impl/data-element/data-element-barcode.js} +27 -39
  105. package/lib/framework/impl/data-element/data-element-barcode.js.map +1 -0
  106. package/lib/framework/impl/data-element/data-element-base-impl.d.ts +68 -0
  107. package/{src/med_editor/framework/impl/data-element/data-element-base-impl.ts → lib/framework/impl/data-element/data-element-base-impl.js} +44 -73
  108. package/lib/framework/impl/data-element/data-element-base-impl.js.map +1 -0
  109. package/lib/framework/impl/data-element/data-element-check-impl.d.ts +35 -0
  110. package/{src/med_editor/framework/impl/data-element/data-element-check-impl.ts → lib/framework/impl/data-element/data-element-check-impl.js} +33 -46
  111. package/lib/framework/impl/data-element/data-element-check-impl.js.map +1 -0
  112. package/lib/framework/impl/data-element/data-element-date-impl.d.ts +23 -0
  113. package/{src/med_editor/framework/impl/data-element/data-element-date-impl.ts → lib/framework/impl/data-element/data-element-date-impl.js} +22 -39
  114. package/lib/framework/impl/data-element/data-element-date-impl.js.map +1 -0
  115. package/lib/framework/impl/data-element/data-element-group-impl.d.ts +23 -0
  116. package/{src/med_editor/framework/impl/data-element/data-element-group-impl.ts → lib/framework/impl/data-element/data-element-group-impl.js} +29 -49
  117. package/lib/framework/impl/data-element/data-element-group-impl.js.map +1 -0
  118. package/lib/framework/impl/data-element/data-element-image-impl.d.ts +30 -0
  119. package/{src/med_editor/framework/impl/data-element/data-element-image-impl.ts → lib/framework/impl/data-element/data-element-image-impl.js} +26 -36
  120. package/lib/framework/impl/data-element/data-element-image-impl.js.map +1 -0
  121. package/lib/framework/impl/data-element/data-element-list-impl.d.ts +22 -0
  122. package/{src/med_editor/framework/impl/data-element/data-element-list-impl.ts → lib/framework/impl/data-element/data-element-list-impl.js} +30 -41
  123. package/lib/framework/impl/data-element/data-element-list-impl.js.map +1 -0
  124. package/lib/framework/impl/data-element/data-element-text-impl.d.ts +23 -0
  125. package/{src/med_editor/framework/impl/data-element/data-element-text-impl.ts → lib/framework/impl/data-element/data-element-text-impl.js} +20 -34
  126. package/lib/framework/impl/data-element/data-element-text-impl.js.map +1 -0
  127. package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +21 -0
  128. package/{src/med_editor/framework/impl/decorate/fill-null-space-imple.ts → lib/framework/impl/decorate/fill-null-space-imple.js} +10 -15
  129. package/lib/framework/impl/decorate/fill-null-space-imple.js.map +1 -0
  130. package/lib/framework/impl/document/doc-body-impl.d.ts +27 -0
  131. package/{src/med_editor/framework/impl/document/doc-body-impl.ts → lib/framework/impl/document/doc-body-impl.js} +15 -31
  132. package/lib/framework/impl/document/doc-body-impl.js.map +1 -0
  133. package/lib/framework/impl/document/doc-body-part-impl.d.ts +30 -0
  134. package/{src/med_editor/framework/impl/document/doc-body-part-impl.ts → lib/framework/impl/document/doc-body-part-impl.js} +16 -26
  135. package/lib/framework/impl/document/doc-body-part-impl.js.map +1 -0
  136. package/lib/framework/impl/document/doc-container-impl.d.ts +16 -0
  137. package/lib/framework/impl/document/doc-container-impl.js +21 -0
  138. package/lib/framework/impl/document/doc-container-impl.js.map +1 -0
  139. package/lib/framework/impl/document/doc-footer-impl.d.ts +26 -0
  140. package/{src/med_editor/framework/impl/document/doc-footer-impl.ts → lib/framework/impl/document/doc-footer-impl.js} +18 -29
  141. package/lib/framework/impl/document/doc-footer-impl.js.map +1 -0
  142. package/lib/framework/impl/document/doc-header-impl.d.ts +26 -0
  143. package/{src/med_editor/framework/impl/document/doc-header-impl.ts → lib/framework/impl/document/doc-header-impl.js} +16 -33
  144. package/lib/framework/impl/document/doc-header-impl.js.map +1 -0
  145. package/lib/framework/impl/document/doc-impl.d.ts +61 -0
  146. package/{src/med_editor/framework/impl/document/doc-impl.ts → lib/framework/impl/document/doc-impl.js} +42 -59
  147. package/lib/framework/impl/document/doc-impl.js.map +1 -0
  148. package/lib/framework/impl/media-formula/menstrual-history.d.ts +35 -0
  149. package/{src/med_editor/framework/impl/media-formula/menstrual-history.ts → lib/framework/impl/media-formula/menstrual-history.js} +35 -57
  150. package/lib/framework/impl/media-formula/menstrual-history.js.map +1 -0
  151. package/lib/framework/impl/paragraph/p-impl.d.ts +45 -0
  152. package/{src/med_editor/framework/impl/paragraph/p-impl.ts → lib/framework/impl/paragraph/p-impl.js} +28 -62
  153. package/lib/framework/impl/paragraph/p-impl.js.map +1 -0
  154. package/lib/framework/impl/picture/image-impl.d.ts +31 -0
  155. package/{src/med_editor/framework/impl/picture/image-impl.ts → lib/framework/impl/picture/image-impl.js} +23 -35
  156. package/lib/framework/impl/picture/image-impl.js.map +1 -0
  157. package/lib/framework/impl/radio/radio-impl.d.ts +22 -0
  158. package/{src/med_editor/framework/impl/radio/radio-impl.ts → lib/framework/impl/radio/radio-impl.js} +19 -26
  159. package/lib/framework/impl/radio/radio-impl.js.map +1 -0
  160. package/lib/framework/impl/symbol/br-symbol-impl.d.ts +22 -0
  161. package/{src/med_editor/framework/impl/symbol/br-symbol-impl.ts → lib/framework/impl/symbol/br-symbol-impl.js} +14 -20
  162. package/lib/framework/impl/symbol/br-symbol-impl.js.map +1 -0
  163. package/lib/framework/impl/symbol/p-symbol-impl.d.ts +19 -0
  164. package/{src/med_editor/framework/impl/symbol/p-symbol-impl.ts → lib/framework/impl/symbol/p-symbol-impl.js} +11 -14
  165. package/lib/framework/impl/symbol/p-symbol-impl.js.map +1 -0
  166. package/lib/framework/impl/table/table-cell-impl.d.ts +37 -0
  167. package/{src/med_editor/framework/impl/table/table-cell-impl.ts → lib/framework/impl/table/table-cell-impl.js} +28 -39
  168. package/lib/framework/impl/table/table-cell-impl.js.map +1 -0
  169. package/lib/framework/impl/table/table-impl.d.ts +55 -0
  170. package/{src/med_editor/framework/impl/table/table-impl.ts → lib/framework/impl/table/table-impl.js} +82 -120
  171. package/lib/framework/impl/table/table-impl.js.map +1 -0
  172. package/lib/framework/impl/table/table-row-impl.d.ts +26 -0
  173. package/{src/med_editor/framework/impl/table/table-row-impl.ts → lib/framework/impl/table/table-row-impl.js} +16 -24
  174. package/lib/framework/impl/table/table-row-impl.js.map +1 -0
  175. package/lib/framework/impl/table/table-split-cell-patch.d.ts +20 -0
  176. package/{src/med_editor/framework/impl/table/table-split-cell-patch.ts → lib/framework/impl/table/table-split-cell-patch.js} +22 -31
  177. package/lib/framework/impl/table/table-split-cell-patch.js.map +1 -0
  178. package/lib/framework/impl/table/table-split-cell.d.ts +90 -0
  179. package/{src/med_editor/framework/impl/table/table-split-cell.ts → lib/framework/impl/table/table-split-cell.js} +94 -105
  180. package/lib/framework/impl/table/table-split-cell.js.map +1 -0
  181. package/lib/framework/impl/table/table-util.d.ts +150 -0
  182. package/{src/med_editor/framework/impl/table/table-util.ts → lib/framework/impl/table/table-util.js} +157 -195
  183. package/lib/framework/impl/table/table-util.js.map +1 -0
  184. package/lib/framework/impl/text/text-impl.d.ts +32 -0
  185. package/{src/med_editor/framework/impl/text/text-impl.ts → lib/framework/impl/text/text-impl.js} +32 -46
  186. package/lib/framework/impl/text/text-impl.js.map +1 -0
  187. package/lib/framework/impl/text/track-run-impl.d.ts +27 -0
  188. package/{src/med_editor/framework/impl/text/track-run-impl.ts → lib/framework/impl/text/track-run-impl.js} +28 -51
  189. package/lib/framework/impl/text/track-run-impl.js.map +1 -0
  190. package/lib/framework/notify.d.ts +13 -0
  191. package/{src/med_editor/framework/notify.ts → lib/framework/notify.js} +36 -50
  192. package/lib/framework/notify.js.map +1 -0
  193. package/lib/framework/range-util.d.ts +40 -0
  194. package/{src/med_editor/framework/range-util.ts → lib/framework/range-util.js} +71 -80
  195. package/lib/framework/range-util.js.map +1 -0
  196. package/lib/framework/render-context.d.ts +91 -0
  197. package/{src/med_editor/framework/render-context.ts → lib/framework/render-context.js} +64 -111
  198. package/lib/framework/render-context.js.map +1 -0
  199. package/lib/framework/render-define.d.ts +109 -0
  200. package/{src/med_editor/framework/render-define.ts → lib/framework/render-define.js} +61 -90
  201. package/lib/framework/render-define.js.map +1 -0
  202. package/lib/framework/selection-overlays.d.ts +30 -0
  203. package/{src/med_editor/framework/selection-overlays.ts → lib/framework/selection-overlays.js} +16 -25
  204. package/lib/framework/selection-overlays.js.map +1 -0
  205. package/lib/texteditor.d.ts +318 -0
  206. package/{src/med_editor/texteditor.ts → lib/texteditor.js} +189 -286
  207. package/lib/texteditor.js.map +1 -0
  208. package/lib/util/subject.d.ts +34 -0
  209. package/lib/util/subject.js +88 -0
  210. package/lib/util/subject.js.map +1 -0
  211. package/lib/util/table-bind.d.ts +5 -0
  212. package/{src/med_editor/util/table-bind.ts → lib/util/table-bind.js} +2 -2
  213. package/lib/util/table-bind.js.map +1 -0
  214. package/package.json +2 -2
  215. package/src/med_editor/framework/common-util.ts +0 -200
  216. package/src/med_editor/framework/document-segmenter.ts +0 -211
  217. package/src/med_editor/framework/document-textline-mode.ts +0 -34
  218. package/src/med_editor/framework/element-event-define.ts +0 -141
  219. package/src/med_editor/framework/impl/document/doc-container-impl.ts +0 -24
  220. package/src/med_editor/util/subject.ts +0 -118
  221. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225.json +0 -3573
  222. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225.json +0 -3573
  223. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225bug.json +0 -315
  224. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/211/271/346/263/250.json +0 -122
  225. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/226/207/346/241/243/351/252/214/350/257/201.json +0 -3599
  226. package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/351/225/277/346/226/207/346/234/254.json +0 -24586
  227. package/src/med_editor//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225.json +0 -2874
  228. package/src/med_editor//346/211/213/346/234/257/350/256/260/345/275/225.json +0 -341
  229. package/src/med_editor//346/231/256/351/200/232doc/347/261/273/346/226/207/346/241/243.json +0 -2201
  230. package/src/med_editor//346/243/200/351/252/214/347/224/263/350/257/267/345/215/225.json +0 -1069
  231. package/src/med_editor//347/227/205/347/250/213/345/275/225//345/206/205/351/225/234/344/270/213/346/262/273/347/226/227/350/256/260/345/275/225.json +0 -125
  232. package/src/med_editor//347/227/205/347/250/213/345/275/225//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225/346/250/241/346/235/277.json +0 -86
  233. package/src/med_editor//347/227/205/347/250/213/345/275/225//346/227/245/345/270/270/347/227/205/347/250/213/350/256/260/345/275/225.json +0 -115
  234. package/src/med_editor//347/227/205/347/250/213/345/275/225//346/237/245/346/210/277/350/256/260/345/275/2251.json +0 -108
  235. package/src/med_editor//347/227/205/347/250/213/345/275/225//351/246/226/346/254/241/344/270/212/347/272/247/345/214/273/345/270/210/346/237/245/346/210/277/350/256/260/345/275/225.json +0 -272
  236. package/src/med_editor//351/225/277/346/234/237/345/214/273/345/230/261/345/215/225.json +0 -1070
@@ -1,37 +1,36 @@
1
- import { Rect, Element, MarginProps, PaddingProps, Position } from './element-define'
2
- import { RenderContenxtType } from './render-context';
1
+ import { Rect, MarginProps, PaddingProps } from './element-define';
3
2
  /**
4
3
  * 定义组件的UI形式的渲染
5
4
  */
6
- export abstract class RenderObject<T extends Element = Element> {
7
- margin!: MarginProps;
8
- padding!: PaddingProps;
9
- rect: Rect = new Rect();
10
- parent!: BranchRenderObject;
5
+ export class RenderObject {
6
+ element;
7
+ margin;
8
+ padding;
9
+ rect = new Rect();
10
+ parent;
11
11
  /**
12
12
  * 可点击性,例如:null-text 占位符元素不具备可点击能力
13
13
  */
14
- disableClick!: boolean;
15
- constructor(public element: T) {
14
+ disableClick;
15
+ constructor(element) {
16
+ this.element = element;
16
17
  this.margin = new MarginProps();
17
18
  this.padding = new PaddingProps();
18
19
  }
19
- abstract clone(): RenderObject;
20
- pagePaintCompleted(ctx: RenderContenxtType, position: Position): void { }
21
- destroy(): void {
20
+ pagePaintCompleted(ctx, position) { }
21
+ destroy() {
22
22
  //this.parent = null;
23
23
  //this.margin = null;
24
24
  //this.padding = null;
25
25
  //this.rect = null;
26
26
  //this.element = null;
27
27
  }
28
-
29
28
  /**
30
29
  * 获取内容区域框体
31
- * @param render
32
- * @returns
30
+ * @param render
31
+ * @returns
33
32
  */
34
- getInnnerRect(): Rect {
33
+ getInnnerRect() {
35
34
  const { padding } = this;
36
35
  const rect = new Rect();
37
36
  rect.x = padding.left;
@@ -42,73 +41,64 @@ export abstract class RenderObject<T extends Element = Element> {
42
41
  }
43
42
  return rect;
44
43
  }
45
-
46
- getInnerMaxWidth(): number {
44
+ getInnerMaxWidth() {
47
45
  if (!this.rect.maxWidth) {
48
- throw new Error('this.rect.maxWidth is null')
46
+ throw new Error('this.rect.maxWidth is null');
49
47
  }
50
48
  const { padding, margin } = this;
51
49
  return this.rect.maxWidth - padding.left - padding.right - margin.left - margin.bottom;
52
50
  }
53
-
54
51
  /**
55
52
  * 根据内框内容高度,更新外框框体高度
56
- * @param render
57
- * @param innerRect
53
+ * @param render
54
+ * @param innerRect
58
55
  */
59
- updateRenderHeight(innerRect: Rect | number): void {
60
- const innnerHeight = typeof innerRect === 'number' ? innerRect : (<Rect>innerRect).height;
56
+ updateRenderHeight(innerRect) {
57
+ const innnerHeight = typeof innerRect === 'number' ? innerRect : innerRect.height;
61
58
  const { padding, margin } = this;
62
59
  //外层容器高度等于内容高度+外边距+内边距
63
60
  this.rect.height = innnerHeight + padding.top + padding.bottom;
64
61
  }
65
-
66
- getIndex(): number {
62
+ getIndex() {
67
63
  if (this.parent) {
68
64
  return this.parent.getChildIndex(this);
69
- } else {
65
+ }
66
+ else {
70
67
  return 0;
71
68
  }
72
69
  }
73
70
  }
74
-
75
71
  /**
76
72
  * 叶子节点渲染元素
77
73
  */
78
- export abstract class LeafRenderObject<T extends Element = Element> extends RenderObject<T> {
79
- constructor(element: T | null) {
80
- super(element as T);
74
+ export class LeafRenderObject extends RenderObject {
75
+ constructor(element) {
76
+ super(element);
81
77
  }
82
- abstract render(ctx: RenderContenxtType, position: { x: number, y: number }): void;
83
-
84
78
  }
85
-
86
79
  /**
87
80
  * 枝干节点渲染元素
88
81
  */
89
- export abstract class BranchRenderObject<T extends Element = Element> extends RenderObject<T> {
90
- constructor(element: T | null) {
91
- super(element as T);
82
+ export class BranchRenderObject extends RenderObject {
83
+ constructor(element) {
84
+ super(element);
92
85
  }
93
- private chilren: Array<RenderObject> = [];
94
- getItems(): Array<RenderObject> {
86
+ chilren = [];
87
+ getItems() {
95
88
  return this.chilren;
96
89
  }
97
-
98
- addChild(...items: Array<RenderObject>): void {
90
+ addChild(...items) {
99
91
  for (let i = 0; i < items.length; i++) {
100
92
  const item = items[i];
101
93
  item.parent = this;
102
94
  this.chilren.push(item);
103
95
  }
104
96
  }
105
-
106
- insertChild(item: RenderObject, index: number): void {
97
+ insertChild(item, index) {
107
98
  this.chilren.splice(index, 0, item);
108
99
  item.parent = this;
109
100
  }
110
-
111
- removeChild(child: RenderObject): void {
101
+ removeChild(child) {
112
102
  const index = this.chilren.indexOf(child);
113
103
  if (index < 0) {
114
104
  throw new Error('为查找到当前元素');
@@ -118,18 +108,17 @@ export abstract class BranchRenderObject<T extends Element = Element> extends Re
118
108
  }
119
109
  this.chilren.splice(index, 1);
120
110
  }
121
-
122
- removeChildByIndex(index: number): void {
111
+ removeChildByIndex(index) {
123
112
  const child = this.chilren[index];
124
113
  if (child) {
125
114
  this.chilren.splice(index, 1);
126
115
  //child.parent = null;
127
- } else {
116
+ }
117
+ else {
128
118
  throw new Error('为查找到当前元素');
129
119
  }
130
120
  }
131
-
132
- clear(): void {
121
+ clear() {
133
122
  const items = [...this.chilren];
134
123
  for (let i = items.length - 1; i >= 0; i--) {
135
124
  this.removeChildByIndex(i);
@@ -138,20 +127,13 @@ export abstract class BranchRenderObject<T extends Element = Element> extends Re
138
127
  get length() {
139
128
  return this.chilren.length;
140
129
  }
141
-
142
-
143
- getChild<T extends RenderObject = RenderObject>(index: number): T {
144
- return this.chilren[index] as T;
130
+ getChild(index) {
131
+ return this.chilren[index];
145
132
  }
146
-
147
- getChildIndex(child: RenderObject): number {
133
+ getChildIndex(child) {
148
134
  return this.chilren.indexOf(child);
149
135
  }
150
-
151
- abstract beginRender(ctx: RenderContenxtType, position: Position): void;
152
- abstract endRender(ctx: RenderContenxtType, position: Position): void;
153
-
154
- destroy(): void {
136
+ destroy() {
155
137
  super.destroy();
156
138
  const len = this.length;
157
139
  for (let i = len - 1; i >= 0; i--) {
@@ -163,62 +145,51 @@ export abstract class BranchRenderObject<T extends Element = Element> extends Re
163
145
  //this.chilren = null;
164
146
  }
165
147
  }
166
-
167
-
168
148
  /**
169
149
  * 块级渲染元素
170
150
  */
171
- export abstract class BlockContentRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
172
- setRenderWidth(maxWidth: number): void {
151
+ export class BlockContentRenderObject extends BranchRenderObject {
152
+ setRenderWidth(maxWidth) {
173
153
  this.rect.maxWidth = maxWidth;
174
154
  this.rect.width = maxWidth;
175
155
  }
176
156
  }
177
-
178
- export abstract class InlineGroupRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
157
+ export class InlineGroupRenderObject extends BranchRenderObject {
179
158
  }
180
-
181
159
  /**
182
160
  * 包含块级渲染元素的容器元素,例如body、table-cell等
183
161
  */
184
- export abstract class BlockContainerRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
185
- setRenderWidth(maxWidth: number): void {
162
+ export class BlockContainerRenderObject extends BranchRenderObject {
163
+ setRenderWidth(maxWidth) {
186
164
  this.rect.maxWidth = maxWidth;
187
165
  this.rect.width = maxWidth;
188
166
  }
189
167
  }
190
-
191
168
  /**
192
169
  * 多级 ‘BlockLineRectRenderObject’ 包裹元素,例如 p、table
193
170
  */
194
- export abstract class MuiltBlockLineRenderObject<T extends Element = Element> extends BlockContentRenderObject<T> { }
195
-
171
+ export class MuiltBlockLineRenderObject extends BlockContentRenderObject {
172
+ }
196
173
  /**
197
174
  * 容器-子内容为多个行内块级元素,例如table-row
198
175
  */
199
- export abstract class InlineBlockContainer extends MuiltBlockLineRenderObject { }
200
-
176
+ export class InlineBlockContainer extends MuiltBlockLineRenderObject {
177
+ }
201
178
  /**
202
179
  * 服务于table-cell
203
180
  * 可被多级拆分的元素
204
181
  */
205
- export abstract class InlineMuiltBlockLineRenderObject extends MuiltBlockLineRenderObject { }
206
-
182
+ export class InlineMuiltBlockLineRenderObject extends MuiltBlockLineRenderObject {
183
+ }
207
184
  /**
208
185
  * 最小不可分割单位的块级行框,例如 p-line
209
186
  * 一行不可存在于两个页面中,块级行框不能分布在两个页面中
210
187
  */
211
- export abstract class BlockLineRectRenderObject extends BlockContentRenderObject { }
212
-
213
-
214
- export type BorderType = 'left' | 'right' | 'top' | 'bottom' | 'left-middle' | 'right-middle' | 'top-middle' | 'bottom-middle' | 'none' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';
215
- export type CursorType = 'text' | 'row-resize' | 'col-resize' | 'none' | 'default' | 'move' | 'pointer' | 'w-resize' | 's-resize' | 'se-resize' | 'ne-resize';
216
- export enum RenderObjectType {
217
- Branch = 0,
218
- Leaf = 1
219
- }
220
-
221
- export interface IMeasureRenderStruct<T> {
222
- rect: Rect,
223
- render: T
188
+ export class BlockLineRectRenderObject extends BlockContentRenderObject {
224
189
  }
190
+ export var RenderObjectType;
191
+ (function (RenderObjectType) {
192
+ RenderObjectType[RenderObjectType["Branch"] = 0] = "Branch";
193
+ RenderObjectType[RenderObjectType["Leaf"] = 1] = "Leaf";
194
+ })(RenderObjectType || (RenderObjectType = {}));
195
+ //# sourceMappingURL=render-define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-define.js","sourceRoot":"lib/","sources":["framework/render-define.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { SelectionState } from "./document-selection";
2
+ import { Element, SelectionContentRange } from "./element-define";
3
+ /**
4
+ * 用于处理选区拖蓝
5
+ */
6
+ export declare class SelectionOverlays {
7
+ private selectionState;
8
+ private selectionRange;
9
+ selectedSets: Map<Element, SelectionContentRange>;
10
+ constructor(selectionState: SelectionState);
11
+ getSelectionTreeData(): void;
12
+ private convertSelectRangeToSet;
13
+ static addToSets(range: SelectionContentRange, set: Map<Element, SelectionContentRange>): void;
14
+ /**
15
+ * 添加到批注集合
16
+ * @param range
17
+ * @param set
18
+ */
19
+ static addToCommentSets(range: SelectionContentRange, set: Map<Element, SelectionContentRange>): void;
20
+ /**
21
+ * 修正开始选区内容
22
+ * 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
23
+ */
24
+ private fixStartSelectionElement;
25
+ /**
26
+ * 修正开始选区内容
27
+ * 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
28
+ */
29
+ private fixEndSelectionElement;
30
+ }
@@ -1,22 +1,18 @@
1
- import { SelectionState } from "./document-selection"
2
1
  import { ElementUtil } from "./element-util";
3
- import { BranchElement, Element, LeafElement, SelectionContentRange } from "./element-define";
4
2
  import { RangeUtil } from "./range-util";
5
3
  import { TableElement } from "./impl/table/table-impl";
6
4
  import { TableCellElement } from "./impl/table/table-cell-impl";
7
-
8
-
9
-
10
-
11
5
  /**
12
6
  * 用于处理选区拖蓝
13
7
  */
14
8
  export class SelectionOverlays {
15
- private selectionRange!: SelectionContentRange | null;
16
- selectedSets: Map<Element, SelectionContentRange> = new Map();
17
- constructor(private selectionState: SelectionState) { }
18
-
19
- getSelectionTreeData(): void {
9
+ selectionState;
10
+ selectionRange;
11
+ selectedSets = new Map();
12
+ constructor(selectionState) {
13
+ this.selectionState = selectionState;
14
+ }
15
+ getSelectionTreeData() {
20
16
  let { ancestorCommonControl, startControl, startOffset, endControl, endOffset, collapsed } = this.selectionState;
21
17
  this.selectedSets.clear();
22
18
  if (this.selectionRange) {
@@ -46,15 +42,13 @@ export class SelectionOverlays {
46
42
  this.convertSelectRangeToSet();
47
43
  this.selectionState.selectedRange = commonRange;
48
44
  }
49
-
50
- private convertSelectRangeToSet(): void {
45
+ convertSelectRangeToSet() {
51
46
  this.selectedSets.clear();
52
47
  if (this.selectionRange) {
53
48
  SelectionOverlays.addToSets(this.selectionRange, this.selectedSets);
54
49
  }
55
50
  }
56
-
57
- static addToSets(range: SelectionContentRange, set: Map<Element, SelectionContentRange>): void {
51
+ static addToSets(range, set) {
58
52
  set.set(range.target, range);
59
53
  for (let i = 0; i < range.selectedChildren.length; i++) {
60
54
  //单元格全部选中效果,单元格整个拖蓝即可
@@ -64,24 +58,22 @@ export class SelectionOverlays {
64
58
  this.addToSets(range.selectedChildren[i], set);
65
59
  }
66
60
  }
67
-
68
61
  /**
69
62
  * 添加到批注集合
70
- * @param range
71
- * @param set
63
+ * @param range
64
+ * @param set
72
65
  */
73
- static addToCommentSets(range: SelectionContentRange, set: Map<Element, SelectionContentRange>): void {
66
+ static addToCommentSets(range, set) {
74
67
  set.set(range.target, range);
75
68
  for (let i = 0; i < range.selectedChildren.length; i++) {
76
69
  this.addToCommentSets(range.selectedChildren[i], set);
77
70
  }
78
71
  }
79
-
80
72
  /**
81
73
  * 修正开始选区内容
82
74
  * 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
83
75
  */
84
- private fixStartSelectionElement(element: LeafElement, offset: number, ancestorCommonControl: BranchElement): { element: LeafElement, offset: number } {
76
+ fixStartSelectionElement(element, offset, ancestorCommonControl) {
85
77
  if (!(ancestorCommonControl instanceof TableElement)) {
86
78
  const lookupParentCell = ElementUtil.getParentByType(element, TableCellElement);
87
79
  if (lookupParentCell) {
@@ -103,12 +95,11 @@ export class SelectionOverlays {
103
95
  }
104
96
  return { element, offset };
105
97
  }
106
-
107
98
  /**
108
99
  * 修正开始选区内容
109
100
  * 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
110
101
  */
111
- private fixEndSelectionElement(element: LeafElement, offset: number, ancestorCommonControl: BranchElement): { element: LeafElement, offset: number } {
102
+ fixEndSelectionElement(element, offset, ancestorCommonControl) {
112
103
  if (!(ancestorCommonControl instanceof TableElement)) {
113
104
  const lookupParentCell = ElementUtil.getParentByType(element, TableCellElement);
114
105
  if (lookupParentCell) {
@@ -129,5 +120,5 @@ export class SelectionOverlays {
129
120
  }
130
121
  return { element, offset };
131
122
  }
132
-
133
- }
123
+ }
124
+ //# sourceMappingURL=selection-overlays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-overlays.js","sourceRoot":"lib/","sources":["framework/selection-overlays.ts"],"names":[],"mappings":"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"}