@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,103 +0,0 @@
1
- import { ElementMeasure } from "./element-measure";
2
- import { ElementPaint } from "./element-paint";
3
- import { ElementRenderCut } from "./element-render-cut";
4
- import { DocumentContainerRender } from "./impl/document/doc-container-impl";
5
- import { ElementUtil } from "./element-util";
6
- import { DocumentSelection } from "./document-selection";
7
- import { RangeUtil } from "./range-util";
8
- import { SelectionOverlays } from "./selection-overlays";
9
- export class DocumentPaint {
10
- viewOptions;
11
- renderContext;
12
- docCtx;
13
- selectedSets;
14
- elementMeasure;
15
- elementRenderCut;
16
- elementPaint;
17
- docPages;
18
- docContainer;
19
- commsContainer;
20
- constructor(viewOptions, renderContext, docCtx, selectedSets) {
21
- this.viewOptions = viewOptions;
22
- this.renderContext = renderContext;
23
- this.docCtx = docCtx;
24
- this.selectedSets = selectedSets;
25
- this.elementMeasure = new ElementMeasure(this.viewOptions, this.renderContext);
26
- this.elementRenderCut = new ElementRenderCut(this.viewOptions, this.renderContext);
27
- this.elementPaint = new ElementPaint(this.viewOptions, this.renderContext);
28
- }
29
- rePages() {
30
- // const destroyItems = [this.docContainer, this.commsContainer];
31
- // destroyItems.forEach(item => item?.destroy())
32
- //Promise.resolve().then(() => { destroyItems.forEach(item => item?.destroy()) });
33
- if (!this.docCtx.document.length) {
34
- return;
35
- }
36
- this.docContainer = new DocumentContainerRender();
37
- this.docCtx.selectionState.renderContainer = this.docContainer;
38
- this.docContainer.rect.width = this.viewOptions.docPageSettings.width;
39
- // console.time('排版计时');
40
- const documentRender = this.elementMeasure.measureDocument(this.docCtx.document);
41
- this.commsContainer = documentRender.getChild(3);
42
- if (this.commsContainer) {
43
- this.commsContainer = this.commsContainer.clone();
44
- }
45
- //console.timeEnd('排版计时');
46
- //console.time('断页计时');
47
- const docPages = this.elementRenderCut.cutPage(documentRender, this.docCtx.document);
48
- //console.timeEnd('断页计时');
49
- this.docContainer.addPages(docPages);
50
- ElementUtil.remeasure(this.docContainer);
51
- this.setCommRangeMark();
52
- this.docPages = docPages;
53
- }
54
- /**
55
- * 获取设置文档容器的总高度
56
- */
57
- getDocumentContainerHeight() {
58
- if (this.docPages.length > 0) {
59
- const lastPage = this.docPages[this.docPages.length - 1];
60
- const lastPageY = lastPage.rect.y + lastPage.rect.height + this.viewOptions.docSpace;
61
- return lastPageY + (this.viewOptions.viewSettings.height * (this.viewOptions.scale - 1));
62
- }
63
- else {
64
- return 0;
65
- }
66
- }
67
- refreshView(rePaint = false) {
68
- //console.time('计时');
69
- this.elementPaint.drawPages(this.docContainer, this.selectedSets, this.commsContainer, rePaint);
70
- //console.timeEnd('计时');
71
- }
72
- getDocPages() {
73
- return this.docPages;
74
- }
75
- getDocContainer() {
76
- return this.docContainer;
77
- }
78
- /***
79
- * 设置审阅区间样式痕迹
80
- */
81
- setCommRangeMark() {
82
- if (!this.viewOptions.showReviewWindow) {
83
- return;
84
- }
85
- const cce = this.docCtx.document.commentsContainerElement;
86
- const set = new Map();
87
- const commentRangeStatus = [];
88
- for (let i = 0; i < cce.length; i++) {
89
- const commContent = cce.getChild(i);
90
- const { startMark, endMark, props: { id }, focus } = commContent;
91
- const ancestorCommonControl = DocumentSelection.getAncestorCommonControl(startMark, endMark);
92
- const commonRange = RangeUtil.getSelctionRange(startMark, 0, endMark, 1, ancestorCommonControl);
93
- SelectionOverlays.addToCommentSets(commonRange, set);
94
- commentRangeStatus.push({
95
- commContent,
96
- range: commonRange
97
- });
98
- }
99
- this.commsContainer.selectedSet = set;
100
- this.commsContainer.commentRangeStatus = commentRangeStatus;
101
- }
102
- }
103
- //# sourceMappingURL=document-paint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-paint.js","sourceRoot":"","sources":["../../src/med_editor/framework/document-paint.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import { EditorContext } from "./document-context";
2
- import { DocumentPaint } from "./document-paint";
3
- import { ViewOptions } from "./element-define";
4
- import { ElementReader } from "./element-reader";
5
- import { DocumentElement } from "./impl/document/doc-impl";
6
- import { RenderContenxt } from "./render-context";
7
- /**
8
- * 离屏打印
9
- */
10
- export declare class DocumentPrintOffscreen {
11
- documentPaint: DocumentPaint;
12
- viewOptions: ViewOptions;
13
- docCtx: EditorContext;
14
- renderCtx: RenderContenxt;
15
- elementReader: ElementReader;
16
- ctx: CanvasRenderingContext2D;
17
- constructor();
18
- print(data: any | DocumentElement, ranges?: Array<number> | null): Promise<void>;
19
- /**
20
- * 导出PDF
21
- * @param fileName
22
- * @param ss
23
- * @param viewOptions
24
- * @param docCtx
25
- * @param ranges
26
- */
27
- exportToPDF(data: any | DocumentElement, fileName: string, ranges?: Array<number> | null): Promise<void>;
28
- /**
29
- * 获取绘制的图片,格式为Base64编码
30
- */
31
- getImagesContent(data: any | DocumentElement, ranges?: Array<number> | null): Promise<Array<string>>;
32
- /**
33
- * 读取数据,排版
34
- * @param data
35
- */
36
- private prepare;
37
- private getCanvasNodes;
38
- }
@@ -1,128 +0,0 @@
1
- import { EditorContext } from "./document-context";
2
- import { DocumentPaint } from "./document-paint";
3
- import { exportCanvasToPDF, printNodes } from "./document-print";
4
- import { SelectionState } from "./document-selection";
5
- import { ViewOptions } from "./element-define";
6
- import { ElementPaint } from "./element-paint";
7
- import { ElementReader } from "./element-reader";
8
- import { ElementUtil } from "./element-util";
9
- import { RenderContenxt } from "./render-context";
10
- /**
11
- * 离屏打印
12
- */
13
- export class DocumentPrintOffscreen {
14
- documentPaint;
15
- viewOptions;
16
- docCtx;
17
- renderCtx;
18
- elementReader;
19
- ctx;
20
- constructor() {
21
- this.viewOptions = new ViewOptions();
22
- this.viewOptions.copyRightInfo = '万达信息电子病历编辑器,www.wondersgroup.com';
23
- this.viewOptions.showCharRect = true;
24
- this.viewOptions.drawCharRectColor = 'green';
25
- this.viewOptions.showLineRect = true;
26
- this.viewOptions.docSpace = 20;
27
- this.viewOptions.reviewWindowWidth = 200;
28
- this.viewOptions.mmToPixelsRatio = 3.7795001220703126;
29
- //整个画布的尺寸
30
- this.viewOptions.viewSettings = {
31
- width: 1000,
32
- height: 800
33
- };
34
- this.viewOptions.editUser = {
35
- id: '6666',
36
- name: '管理员'
37
- };
38
- const canvas = document.createElement('canvas');
39
- this.ctx = canvas.getContext('2d');
40
- const ss = new SelectionState();
41
- this.docCtx = new EditorContext(ss, this.viewOptions);
42
- this.renderCtx = new RenderContenxt(this.ctx, this.viewOptions, this.docCtx);
43
- this.documentPaint = new DocumentPaint(this.viewOptions, this.renderCtx, this.docCtx, new Map());
44
- this.elementReader = new ElementReader(this.docCtx, this.viewOptions, this.renderCtx);
45
- this.docCtx.syncRefresh = () => {
46
- };
47
- }
48
- async print(data, ranges = null) {
49
- await this.prepare(data);
50
- const canvasNodes = this.getCanvasNodes(this.documentPaint.docPages, ranges);
51
- if (!canvasNodes.length) {
52
- console.warn('无可打印页');
53
- return;
54
- }
55
- const docProps = this.docCtx.document.props;
56
- printNodes(canvasNodes, { ...docProps });
57
- }
58
- /**
59
- * 导出PDF
60
- * @param fileName
61
- * @param ss
62
- * @param viewOptions
63
- * @param docCtx
64
- * @param ranges
65
- */
66
- async exportToPDF(data, fileName, ranges = null) {
67
- await this.prepare(data);
68
- const canvasNodes = this.getCanvasNodes(this.documentPaint.docPages, ranges);
69
- if (!canvasNodes.length) {
70
- console.warn('无可导出页');
71
- return;
72
- }
73
- exportCanvasToPDF(fileName, canvasNodes, this.docCtx.document.props);
74
- }
75
- /**
76
- * 获取绘制的图片,格式为Base64编码
77
- */
78
- async getImagesContent(data, ranges = null) {
79
- await this.prepare(data);
80
- const canvasNodes = this.getCanvasNodes(this.documentPaint.docPages, ranges);
81
- if (!canvasNodes.length) {
82
- console.warn('无可导出页');
83
- return [];
84
- }
85
- return canvasNodes.map(node => node.toDataURL());
86
- }
87
- /**
88
- * 读取数据,排版
89
- * @param data
90
- */
91
- async prepare(data) {
92
- this.elementReader.read(data);
93
- this.documentPaint.rePages();
94
- await Promise.all(this.docCtx.imageLoader.getLoadTasks());
95
- this.renderCtx.setCanvasProps(this.viewOptions.docPageSettings);
96
- }
97
- getCanvasNodes(printPages, printRanges = null) {
98
- const { width, height } = this.viewOptions.docPageSettings;
99
- const canvasList = [];
100
- for (let i = 0; i < printPages.length; i++) {
101
- if (printRanges && printRanges.indexOf(i) === -1) {
102
- continue;
103
- }
104
- const canvasNode = document.createElement('canvas');
105
- canvasNode.style.cursor = 'text';
106
- canvasNode.style.width = width + 'px';
107
- canvasNode.style.height = height + 'px';
108
- const ctx = canvasNode.getContext('2d');
109
- ElementUtil.setCanvasProps(canvasNode, ctx, this.viewOptions.docPageSettings);
110
- const renderCtx = new RenderContenxt(ctx, this.viewOptions, this.docCtx);
111
- renderCtx.setCanvasProps(this.viewOptions.docPageSettings);
112
- renderCtx.drawMode = 'print';
113
- const doc = printPages[i];
114
- const tmp = ElementUtil.cloneRect(doc.rect);
115
- doc.rect.x = 0;
116
- doc.rect.y = 0;
117
- ElementPaint.drawPage(renderCtx, doc, { x: 0, y: 0 });
118
- renderCtx.overlaysContext.clear();
119
- renderCtx.mainCtx.fillStyle = 'white';
120
- renderCtx.mainCtx.fillRect(0, 0, width, height);
121
- renderCtx.commit(this.viewOptions.docPageSettings);
122
- doc.rect = tmp;
123
- canvasList.push(canvasNode);
124
- }
125
- return canvasList;
126
- }
127
- }
128
- //# sourceMappingURL=document-print-offscreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-print-offscreen.js","sourceRoot":"","sources":["../../src/med_editor/framework/document-print-offscreen.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { EditorContext } from "./document-context";
2
- import { SelectionState } from "./document-selection";
3
- import { OrientType, PageOptions, ViewOptions } from "./element-define";
4
- export declare class documentPrint {
5
- static print(ss: SelectionState, viewOptions: ViewOptions, docCtx: EditorContext, printRanges?: Array<number> | null): void;
6
- /**
7
- * 获取绘制的canvas节点
8
- * @param ss
9
- * @param viewOptions
10
- * @param docCtx
11
- * @param printRanges
12
- * @returns
13
- */
14
- private static getRenderCanvasNodes;
15
- /**
16
- * 导出base64
17
- * @param ss
18
- * @param viewOptions
19
- * @param docCtx
20
- * @param printRanges
21
- * @returns
22
- */
23
- static exportCanvasNodes(ss: SelectionState, viewOptions: ViewOptions, docCtx: EditorContext, printRanges?: Array<number> | null): Array<HTMLCanvasElement>;
24
- /**
25
- * 导出PDF
26
- * @param fileName
27
- * @param ss
28
- * @param viewOptions
29
- * @param docCtx
30
- * @param printRanges
31
- */
32
- static exportPDF(fileName: string, ss: SelectionState, viewOptions: ViewOptions, docCtx: EditorContext, printRanges?: Array<number> | null): void;
33
- /**
34
- * 当前当前页
35
- * @param ss
36
- * @param viewOptions
37
- */
38
- static printCurrPage(ss: SelectionState, viewOptions: ViewOptions, docCtx: EditorContext): void;
39
- }
40
- export declare function createPrintTemplate({ width, height, orient }: PageOptions): string;
41
- declare type PrintPaperOptions = {
42
- width: number;
43
- height: number;
44
- orient: OrientType;
45
- };
46
- /**
47
- * 打印DOM
48
- * @param printNodes
49
- * @param options
50
- * @returns
51
- */
52
- export declare function printNodes(printNodes: Array<Node>, options: PrintPaperOptions): void;
53
- /**
54
- * canvas节点导出到PDF
55
- * @param fileName
56
- * @param nodes
57
- * @param options
58
- */
59
- export declare function exportCanvasToPDF(fileName: string, nodes: Array<HTMLCanvasElement>, options: PrintPaperOptions): void;
60
- export {};
@@ -1,203 +0,0 @@
1
- import { PageOptions } from "./element-define";
2
- import { ElementPaint } from "./element-paint";
3
- import { ElementUtil } from "./element-util";
4
- import { DocumentRenderObject } from "./impl/document/doc-impl";
5
- import { RenderContenxt } from "./render-context";
6
- import { jsPDF } from 'jspdf';
7
- export class documentPrint {
8
- static print(ss, viewOptions, docCtx, printRanges = null) {
9
- const renderCanvasNodes = this.getRenderCanvasNodes(ss, viewOptions, docCtx, printRanges);
10
- if (!renderCanvasNodes.length) {
11
- console.warn('无可打印节点');
12
- return;
13
- }
14
- printNodes(renderCanvasNodes, { ...docCtx.document.props });
15
- }
16
- /**
17
- * 获取绘制的canvas节点
18
- * @param ss
19
- * @param viewOptions
20
- * @param docCtx
21
- * @param printRanges
22
- * @returns
23
- */
24
- static getRenderCanvasNodes(ss, viewOptions, docCtx, printRanges = null) {
25
- const { width, height } = viewOptions.docPageSettings;
26
- const dc = ss.renderContainer;
27
- const canvasList = [];
28
- const printPages = [];
29
- for (let i = 0; i < dc.length; i++) {
30
- if (!printRanges || printRanges.some(pageIndex => pageIndex === i)) {
31
- printPages.push(dc.getChild(i));
32
- }
33
- }
34
- for (let i = 0; i < printPages.length; i++) {
35
- const canvasNode = document.createElement('canvas');
36
- canvasNode.style.cursor = 'text';
37
- canvasNode.style.width = width + 'px';
38
- canvasNode.style.height = height + 'px';
39
- const ctx = canvasNode.getContext('2d');
40
- ElementUtil.setCanvasProps(canvasNode, ctx, viewOptions.docPageSettings);
41
- const renderCtx = new RenderContenxt(ctx, viewOptions, docCtx);
42
- renderCtx.setCanvasProps(viewOptions.docPageSettings);
43
- renderCtx.drawMode = 'print';
44
- const doc = printPages[i];
45
- const tmp = ElementUtil.cloneRect(doc.rect);
46
- doc.rect.x = 0;
47
- doc.rect.y = 0;
48
- ElementPaint.drawPage(renderCtx, doc, { x: 0, y: 0 });
49
- renderCtx.overlaysContext.clear();
50
- renderCtx.mainCtx.fillStyle = 'white';
51
- renderCtx.mainCtx.fillRect(0, 0, width, height);
52
- renderCtx.commit(viewOptions.docPageSettings);
53
- doc.rect = tmp;
54
- canvasList.push(canvasNode);
55
- }
56
- return canvasList;
57
- }
58
- /**
59
- * 导出base64
60
- * @param ss
61
- * @param viewOptions
62
- * @param docCtx
63
- * @param printRanges
64
- * @returns
65
- */
66
- static exportCanvasNodes(ss, viewOptions, docCtx, printRanges = null) {
67
- return this.getRenderCanvasNodes(ss, viewOptions, docCtx, printRanges);
68
- }
69
- /**
70
- * 导出PDF
71
- * @param fileName
72
- * @param ss
73
- * @param viewOptions
74
- * @param docCtx
75
- * @param printRanges
76
- */
77
- static exportPDF(fileName, ss, viewOptions, docCtx, printRanges = null) {
78
- const nodes = this.getRenderCanvasNodes(ss, viewOptions, docCtx, printRanges);
79
- exportCanvasToPDF(fileName, nodes, { ...docCtx.document.props });
80
- }
81
- /**
82
- * 当前当前页
83
- * @param ss
84
- * @param viewOptions
85
- */
86
- static printCurrPage(ss, viewOptions, docCtx) {
87
- const { startHitInfo } = ss;
88
- if (!startHitInfo) {
89
- return;
90
- }
91
- const docPage = ElementUtil.getParentRender(startHitInfo.render, DocumentRenderObject);
92
- if (!docPage) {
93
- return;
94
- }
95
- this.print(ss, viewOptions, docCtx, [docPage.getIndex()]);
96
- }
97
- }
98
- export function createPrintTemplate({ width, height, orient }) {
99
- const str = `
100
- <!DOCTYPE html>
101
- <html lang="zh">
102
- <head>
103
- <meta charset="UTF-8">
104
- <title></title>
105
- <style >
106
- html,
107
- body {
108
- margin: 0;
109
- padding: 0;
110
- }
111
- * {
112
- box-sizing: border-box;
113
- -moz-box-sizing: border-box;
114
- }
115
- @page {
116
- size: ${orient};
117
- margin: 0;
118
- }
119
- div {
120
- width: ${width}mm;
121
- min-height: ${height}mm;
122
- font-size: 0;
123
- }
124
- @media print {
125
- html,
126
- body {
127
- width: ${width}mm;
128
- height: ${height}mm;
129
- }
130
- div {
131
- width: initial;
132
- min-height: initial;
133
- }
134
- }
135
- </style>
136
- </head>
137
- <body></body>
138
- </html>
139
- `.replace(/\n/g, '').replace(/\s+/g, ' ').replace(/'/g, '\\\'');
140
- return str;
141
- }
142
- /**
143
- * 打印DOM
144
- * @param printNodes
145
- * @param options
146
- * @returns
147
- */
148
- export function printNodes(printNodes, options) {
149
- const printIFrame = document.createElement("iframe");
150
- printIFrame.src = 'about:blank';
151
- printIFrame.style.borderWidth = '0';
152
- printIFrame.style.height = "0";
153
- printIFrame.style.display = 'none';
154
- document.body.appendChild(printIFrame);
155
- printIFrame.contentWindow?.document.open("text/html", "printer");
156
- if (!printNodes.length) {
157
- console.warn('无可打印节点');
158
- return;
159
- }
160
- const printSize = new PageOptions(options.width, options.height, options.orient);
161
- const iframeHTML = createPrintTemplate(printSize);
162
- printIFrame.contentWindow?.document.write(iframeHTML);
163
- printIFrame.contentWindow?.document.close();
164
- for (let i = 0; i < printNodes.length; i++) {
165
- const item = printNodes[i];
166
- const div = document.createElement('div');
167
- div.appendChild(item);
168
- printIFrame.contentWindow?.document.body.appendChild(div);
169
- }
170
- printIFrame.contentWindow?.document.body.focus();
171
- setTimeout(() => {
172
- printIFrame.contentWindow?.print();
173
- printIFrame.parentNode?.removeChild(printIFrame);
174
- }, 0);
175
- }
176
- /**
177
- * canvas节点导出到PDF
178
- * @param fileName
179
- * @param nodes
180
- * @param options
181
- */
182
- export function exportCanvasToPDF(fileName, nodes, options) {
183
- if (!fileName) {
184
- fileName = 'document.pdf';
185
- }
186
- else {
187
- fileName = fileName.replace(/[\/\\:*?"<>|]/g, '_');
188
- if (!fileName.endsWith('.pdf')) {
189
- fileName += '.pdf';
190
- }
191
- }
192
- const pdf = new jsPDF(options.orient, 'px', [options.width, options.height]);
193
- for (let i = 0; i < nodes.length; i++) {
194
- const canvas = nodes[i];
195
- const imgData = canvas.toDataURL('image/jpeg', 1.0);
196
- pdf.addImage(imgData, 'JPEG', 0, 0, options.width, options.height);
197
- if (i < nodes.length - 1) {
198
- pdf.addPage();
199
- }
200
- }
201
- pdf.save(fileName);
202
- }
203
- //# sourceMappingURL=document-print.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-print.js","sourceRoot":"","sources":["../../src/med_editor/framework/document-print.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,WAAW,EAAe,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,OAAO,aAAa;IACtB,MAAM,CAAC,KAAK,CAAC,EAAkB,EAAE,WAAwB,EAAE,MAAqB,EAAE,cAAoC,IAAI;QACtH,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1F,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO;SACV;QACD,UAAU,CAAC,iBAAiB,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,oBAAoB,CAAC,EAAkB,EAAE,WAAwB,EAAE,MAAqB,EAAE,cAAoC,IAAI;QAC7I,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,eAAe,CAAC;QACtD,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;QAC9B,MAAM,UAAU,GAA6B,EAAE,CAAC;QAChD,MAAM,UAAU,GAAgC,EAAE,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE;gBAChE,UAAU,CAAC,IAAI,CAAuB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACzD;SACJ;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACpD,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACjC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;YACtC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;YACxC,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,WAAW,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAC/D,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACtD,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAClC,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;YACtC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC/B;QACD,OAAO,UAAU,CAAA;IACrB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,iBAAiB,CAAC,EAAkB,EAAE,WAAwB,EAAE,MAAqB,EAAE,cAAoC,IAAI;QAClI,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,QAAgB,EAAE,EAAkB,EAAE,WAAwB,EAAE,MAAqB,EAAE,cAAoC,IAAI;QAC5I,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9E,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACpE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,EAAkB,EAAE,WAAwB,EAAE,MAAqB;QACpF,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;SACV;QACD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;CACJ;AAGD,MAAM,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAe;IACtE,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;kBAiBE,MAAM;;;;mBAIL,KAAK;wBACA,MAAM;;;;;;uBAMP,KAAK;wBACJ,MAAM;;;;;;;;;;;KAWzB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC;AACf,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAAuB,EAAE,OAA0B;IAC1E,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAsB,CAAC;IAC1E,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC;IAChC,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACpC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAC/B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO;KACV;IACD,MAAM,SAAS,GAAgB,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAClD,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtD,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;KAC5D;IACD,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjD,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;QACnC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,KAA+B,EAAE,OAA0B;IAC3G,IAAI,CAAC,QAAQ,EAAE;QACX,QAAQ,GAAG,cAAc,CAAC;KAC7B;SAAM;QACH,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5B,QAAQ,IAAI,MAAM,CAAC;SACtB;KACJ;IACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,GAAG,CAAC,OAAO,EAAE,CAAC;SACjB;KACJ;IACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvB,CAAC"}
@@ -1,2 +0,0 @@
1
- import { SelectionState } from "./document-selection";
2
- export declare function getFocusTextSegment(selection: SelectionState): boolean;
@@ -1,106 +0,0 @@
1
- import { TextGroupElement } from "@/med_editor/framework/impl/text/text-impl";
2
- import { ElementUtil } from "@/med_editor/framework/element-util";
3
- import { SelectionRange } from "./document-selection";
4
- export function getFocusTextSegment(selection) {
5
- let { startControl: element, startOffset: offset } = selection;
6
- if (!(element instanceof TextGroupElement))
7
- return false;
8
- if (!supportSegment())
9
- return false;
10
- const focusEle = element;
11
- offset = offset + 1;
12
- offset = offset > focusEle.textMeasures.length ? focusEle.textMeasures.length : offset;
13
- //获取连续的字符
14
- const items = [...getConsecutiveTextsByDirection(element), element, ...getConsecutiveTextsByDirection(element, false)];
15
- const sortItems = getTextSortData(items);
16
- const { index, text } = sortItems.reduce((prev, curr) => {
17
- prev.text += curr.text;
18
- if (prev.completed) {
19
- return prev;
20
- }
21
- if (curr.item === focusEle) {
22
- prev.index += offset;
23
- prev.completed = true;
24
- }
25
- else {
26
- prev.index += curr.item.textMeasures.length;
27
- }
28
- return prev;
29
- }, { completed: false, index: 0, text: '' });
30
- const { index: hitIndex, len: hitLen } = getHitSegment(text, index);
31
- const matchSegment = sortItems.filter(item => (item.index <= hitIndex && item.endIndex > hitIndex) || (item.index <= hitIndex + hitLen && item.endIndex > hitIndex + hitLen));
32
- const startSegment = matchSegment[0];
33
- const endSegment = matchSegment[matchSegment.length - 1];
34
- const startOffset = hitIndex - startSegment.index;
35
- const endOffset = hitIndex + hitLen - endSegment.index;
36
- const newRange = new SelectionRange();
37
- newRange.setStart(startSegment.item, startOffset);
38
- newRange.setEnd(endSegment.item, endOffset);
39
- selection.addRange(newRange);
40
- return true;
41
- }
42
- /**
43
- * 进行分词
44
- * @param text
45
- * @param focusOffset
46
- */
47
- function getHitSegment(text, focusOffset) {
48
- const segmenter = new Intl.Segmenter("zh-CN", { granularity: "word" });
49
- const iterator1 = segmenter.segment(text)[Symbol.iterator]();
50
- const segItems = Array.from(iterator1);
51
- let index = 0;
52
- for (let i = 0; i < segItems.length; i++) {
53
- const segItem = segItems[i];
54
- const currIndex = segItem.index;
55
- const currLen = segItem.segment.length;
56
- if (focusOffset > currIndex && focusOffset <= currLen + currIndex) {
57
- return {
58
- index,
59
- len: currLen
60
- };
61
- }
62
- index += currLen;
63
- }
64
- throw new Error('未获取到对应的分词词组');
65
- }
66
- function supportSegment() {
67
- return typeof Intl.Segmenter === 'function';
68
- }
69
- /**
70
- * 根据前后顺序标识索引位
71
- * @param texts
72
- */
73
- function getTextSortData(texts) {
74
- let index = 0;
75
- const sortItems = [];
76
- for (let i = 0; i < texts.length; i++) {
77
- const item = texts[i];
78
- const sortData = {
79
- len: item.textMeasures.length,
80
- index,
81
- endIndex: index + item.textMeasures.length,
82
- item,
83
- text: item.text
84
- };
85
- sortItems.push(sortData);
86
- index += sortData.len;
87
- }
88
- return sortItems;
89
- }
90
- /**
91
- * 获取指定方向上连续的字符
92
- * @param element
93
- * @param prev
94
- */
95
- function getConsecutiveTextsByDirection(element, prev = true) {
96
- let prevText = element;
97
- const prevTexts = [];
98
- const func = prev ? ElementUtil.getPrevSiblingElement : ElementUtil.getNextSiblingElement;
99
- const addItem = prev ? prevTexts.unshift : prevTexts.push;
100
- while ((prevText = func(prevText)) && prevText instanceof TextGroupElement) {
101
- //addItem(prevText);
102
- addItem.apply(prevTexts, [prevText]);
103
- }
104
- return prevTexts;
105
- }
106
- //# sourceMappingURL=document-segmenter.js.map