@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,77 +1,70 @@
1
1
  import { fromEvent, Subject } from "rxjs";
2
- import { LeafElement } from "./element-define";
3
2
  import { KeyboradElementEvent } from "./element-event-define";
4
3
  import { DocumentEvent } from "./document-event";
5
- import { EditorContext } from "./document-context";
6
-
7
- export interface ICompositionStartInfo {
8
- element: LeafElement, offset: number
9
- }
10
- export interface InputData {
11
- composition?: boolean;
12
- //开启输入法后的光标的起点位置
13
- compositionStartInfo?: ICompositionStartInfo;
14
- //输入法之前输入的内容
15
- prevInputData?: string;
16
- data: string
17
- }
18
-
19
4
  /**
20
5
  * 输入处理
21
6
  */
22
7
  export class DocumentInput {
8
+ editInput;
9
+ editCursor;
10
+ cursorWrapper;
11
+ docCtx;
23
12
  /**
24
13
  * 光标是否可见
25
14
  */
26
- private _cursorVisibility = false;
15
+ _cursorVisibility = false;
27
16
  /**
28
17
  * 光标闪烁状态
29
18
  */
30
- private _cursorBlinksState = false;
31
- private cursorBlinksIntervalID: any;
19
+ _cursorBlinksState = false;
20
+ cursorBlinksIntervalID;
32
21
  //是否是开启输入法了
33
- private compositionStart = false;
22
+ compositionStart = false;
34
23
  //开启输入法后输入的文字
35
- private compositionPrevData!: string;
24
+ compositionPrevData;
36
25
  //开启输入法后的的元素
37
- private compositionStartInfo!: ICompositionStartInfo | null;
26
+ compositionStartInfo;
38
27
  //输入内容事件
39
- onInputEvent: Subject<InputData> = new Subject();
28
+ onInputEvent = new Subject();
40
29
  //backspace 键盘事件
41
- onBackspaceEvent: Subject<KeyboardEvent> = new Subject();
30
+ onBackspaceEvent = new Subject();
42
31
  //delete 键盘事件
43
- onDeleteEvent: Subject<KeyboardEvent> = new Subject();
32
+ onDeleteEvent = new Subject();
44
33
  //enter 键盘事件
45
- onEnterEvent: Subject<void> = new Subject();
34
+ onEnterEvent = new Subject();
46
35
  //左键
47
- onLeftEvent: Subject<void> = new Subject();
36
+ onLeftEvent = new Subject();
48
37
  //右键
49
- onRightEvent: Subject<void> = new Subject();
38
+ onRightEvent = new Subject();
50
39
  //复制
51
- onCopyEvent: Subject<ClipboardEvent> = new Subject();
40
+ onCopyEvent = new Subject();
52
41
  //剪切
53
- onCutEvent: Subject<ClipboardEvent> = new Subject();
42
+ onCutEvent = new Subject();
54
43
  //粘贴
55
- onPasteEvent: Subject<ClipboardEvent> = new Subject();
44
+ onPasteEvent = new Subject();
56
45
  //插入换行符
57
- onInsertBr: Subject<void> = new Subject();
46
+ onInsertBr = new Subject();
58
47
  //ctrl+A 全选事件
59
- onSelectAllEvent: Subject<void> = new Subject();
48
+ onSelectAllEvent = new Subject();
60
49
  //home 事件
61
- onHomeEvent: Subject<void> = new Subject();
50
+ onHomeEvent = new Subject();
62
51
  //end 事件
63
- onEndEvent: Subject<void> = new Subject();
64
- onUpEvent: Subject<void> = new Subject();
65
- onDownEvent: Subject<void> = new Subject();
66
- constructor(private editInput: HTMLInputElement, private editCursor: HTMLSpanElement, private cursorWrapper: HTMLDivElement, private docCtx: EditorContext) {
52
+ onEndEvent = new Subject();
53
+ onUpEvent = new Subject();
54
+ onDownEvent = new Subject();
55
+ constructor(editInput, editCursor, cursorWrapper, docCtx) {
56
+ this.editInput = editInput;
57
+ this.editCursor = editCursor;
58
+ this.cursorWrapper = cursorWrapper;
59
+ this.docCtx = docCtx;
67
60
  this.startCursorBlinks();
68
61
  fromEvent(this.editInput, 'blur').subscribe(() => {
69
62
  this._cursorVisibility = false;
70
63
  //console.log('输入框 blur');
71
- })
64
+ });
72
65
  fromEvent(this.editInput, 'focus').subscribe(() => {
73
66
  //console.log('输入框 focus');
74
- })
67
+ });
75
68
  fromEvent(this.editInput, 'input').subscribe(() => {
76
69
  if (this.compositionStart) {
77
70
  return;
@@ -84,37 +77,37 @@ export class DocumentInput {
84
77
  const { startControl, startOffset } = this.docCtx.selectionState;
85
78
  this.onInputEvent.next({
86
79
  data: this.editInput.value, prevInputData: '', compositionStartInfo: {
87
- element: startControl as LeafElement,
80
+ element: startControl,
88
81
  offset: startOffset
89
82
  }
90
83
  });
91
84
  this.editInput.value = '';
92
85
  }
93
- })
94
- fromEvent<CompositionEvent>(this.editInput, 'compositionstart').subscribe((evt) => {
86
+ });
87
+ fromEvent(this.editInput, 'compositionstart').subscribe((evt) => {
95
88
  this.compositionStart = true;
96
89
  this.compositionPrevData = '';
97
90
  const { startControl, startOffset } = this.docCtx.selectionState;
98
91
  //console.log('输入法开始');
99
92
  this.compositionStartInfo = {
100
- element: startControl as LeafElement,
93
+ element: startControl,
101
94
  offset: startOffset
102
95
  };
103
96
  });
104
- fromEvent<CompositionEvent>(this.editInput, 'compositionupdate').subscribe((evt) => {
97
+ fromEvent(this.editInput, 'compositionupdate').subscribe((evt) => {
105
98
  if (evt.data === this.compositionPrevData) {
106
99
  return;
107
100
  }
108
101
  //console.log('输入了:' + evt.data);
109
102
  this.onInputEvent.next({
110
103
  data: evt.data,
111
- compositionStartInfo: this.compositionStartInfo as ICompositionStartInfo,
104
+ compositionStartInfo: this.compositionStartInfo,
112
105
  composition: true,
113
106
  prevInputData: this.compositionPrevData
114
107
  });
115
108
  this.compositionPrevData = evt.data;
116
109
  });
117
- fromEvent<CompositionEvent>(this.editInput, 'compositionend').subscribe((evt) => {
110
+ fromEvent(this.editInput, 'compositionend').subscribe((evt) => {
118
111
  //console.log('compositionend')
119
112
  this.compositionStart = false;
120
113
  this.editInput.value = "";
@@ -133,55 +126,61 @@ export class DocumentInput {
133
126
  this.compositionStartInfo = null;
134
127
  //this.compositionRecordContent = '';
135
128
  });
136
- fromEvent<KeyboardEvent>(this.editInput, 'keydown').subscribe((evt) => {
129
+ fromEvent(this.editInput, 'keydown').subscribe((evt) => {
137
130
  const keyEvent = new KeyboradElementEvent(this.docCtx);
138
131
  keyEvent.sourceEvent = evt;
139
- if (DocumentEvent.invokeEvent('ElementKeyDown', this.docCtx.selectionState.startControl as LeafElement, keyEvent, 'Capture', this.docCtx)) {
132
+ if (DocumentEvent.invokeEvent('ElementKeyDown', this.docCtx.selectionState.startControl, keyEvent, 'Capture', this.docCtx)) {
140
133
  return;
141
134
  }
142
135
  if (evt.keyCode === 8) {
143
136
  this.onBackspaceEvent.next(evt);
144
- } else if (evt.keyCode === 13 && !evt.shiftKey) {
137
+ }
138
+ else if (evt.keyCode === 13 && !evt.shiftKey) {
145
139
  this.onEnterEvent.next();
146
- } else if (evt.keyCode === 37) {
140
+ }
141
+ else if (evt.keyCode === 37) {
147
142
  this.onLeftEvent.next();
148
- } else if (evt.keyCode === 39) {
143
+ }
144
+ else if (evt.keyCode === 39) {
149
145
  this.onRightEvent.next();
150
- } else if (evt.keyCode === 38) {
146
+ }
147
+ else if (evt.keyCode === 38) {
151
148
  this.onUpEvent.next();
152
- } else if (evt.keyCode === 40) {
149
+ }
150
+ else if (evt.keyCode === 40) {
153
151
  this.onDownEvent.next();
154
152
  }
155
153
  else if (evt.keyCode === 9) {
156
154
  evt.preventDefault();
157
- } else if (evt.keyCode === 13 && evt.shiftKey) {
155
+ }
156
+ else if (evt.keyCode === 13 && evt.shiftKey) {
158
157
  evt.preventDefault();
159
158
  this.onInsertBr.next();
160
- } else if (evt.keyCode === 46) {
159
+ }
160
+ else if (evt.keyCode === 46) {
161
161
  this.onDeleteEvent.next(evt);
162
- } else if (evt.ctrlKey && evt.keyCode === 65) {
162
+ }
163
+ else if (evt.ctrlKey && evt.keyCode === 65) {
163
164
  evt.preventDefault();
164
165
  this.onSelectAllEvent.next();
165
- } else if (evt.keyCode === 36) {
166
+ }
167
+ else if (evt.keyCode === 36) {
166
168
  this.onHomeEvent.next();
167
169
  }
168
170
  else if (evt.keyCode === 35) {
169
171
  this.onEndEvent.next();
170
172
  }
171
173
  });
172
- fromEvent<ClipboardEvent>(this.editInput, "copy").subscribe(evt => {
174
+ fromEvent(this.editInput, "copy").subscribe(evt => {
173
175
  this.onCopyEvent.next(evt);
174
176
  });
175
- fromEvent<ClipboardEvent>(this.editInput, "paste").subscribe(evt => {
177
+ fromEvent(this.editInput, "paste").subscribe(evt => {
176
178
  this.onPasteEvent.next(evt);
177
179
  });
178
- fromEvent<ClipboardEvent>(this.editInput, "cut").subscribe(evt => {
180
+ fromEvent(this.editInput, "cut").subscribe(evt => {
179
181
  this.onCutEvent.next(evt);
180
182
  });
181
183
  }
182
-
183
-
184
-
185
184
  /**
186
185
  * 设置光标闪烁
187
186
  */
@@ -190,11 +189,9 @@ export class DocumentInput {
190
189
  // //this.setCursorBlinks();
191
190
  // }, 500);
192
191
  }
193
-
194
- destroy(): void {
192
+ destroy() {
195
193
  clearInterval(this.cursorBlinksIntervalID);
196
194
  }
197
-
198
195
  /**
199
196
  * 设置光标闪烁
200
197
  */
@@ -202,43 +199,41 @@ export class DocumentInput {
202
199
  this.editCursor.style.background = this._cursorBlinksState ? 'transparent' : 'black';
203
200
  this._cursorBlinksState = !this._cursorBlinksState;
204
201
  }
205
-
206
202
  /**
207
203
  * 设置光标位置
208
204
  * @param position
209
205
  */
210
- setCursorPosition(position: { x: number; y: number; height: number; }) {
206
+ setCursorPosition(position) {
211
207
  this.cursorWrapper.style.left = position.x + 'px';
212
208
  this.cursorWrapper.style.top = position.y + 'px';
213
209
  this.cursorWrapper.style.height = position.height + 'px';
214
210
  this.setCursorVisibility(true);
215
211
  //this.setCursorInputStatus();
216
212
  }
217
-
218
213
  /**
219
214
  * 设置虚拟光标的可见性
220
215
  * @param visibility
221
216
  */
222
- setCursorVisibility(visibility: boolean) {
217
+ setCursorVisibility(visibility) {
223
218
  this.cursorWrapper.style.display = visibility ? 'block' : 'none';
224
219
  if (visibility) {
225
220
  this.setInputFocus(true);
226
221
  }
227
222
  }
228
-
229
223
  /**
230
224
  * 设置输入状态
231
- * @param focus
225
+ * @param focus
232
226
  */
233
- setInputFocus(focus: boolean): void {
227
+ setInputFocus(focus) {
234
228
  if (focus) {
235
229
  this.editInput.readOnly = false;
236
230
  this.editInput.focus();
237
-
238
- } else {
231
+ }
232
+ else {
239
233
  //this.editInput.blur();
240
234
  this.editInput.readOnly = true;
241
235
  this.docCtx.selectionState.cursorPos = null;
242
236
  }
243
237
  }
244
- }
238
+ }
239
+ //# sourceMappingURL=document-input-cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-input-cursor.js","sourceRoot":"lib/","sources":["framework/document-input-cursor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { ElementMeasure } from "./element-measure";
2
+ import { ElementPaint } from "./element-paint";
3
+ import { ElementRenderCut } from "./element-render-cut";
4
+ import { DocumentRenderObject } from "./impl/document/doc-impl";
5
+ import { RenderContenxtType } from "./render-context";
6
+ import { Element, SelectionContentRange, ViewOptions } from "./element-define";
7
+ import { DocumentContainerRender } from "./impl/document/doc-container-impl";
8
+ import { CommsContainerRenderObject } from "./impl/comments/comments-container-impl";
9
+ import { EditorContext } from "./document-context";
10
+ export declare class DocumentPaint {
11
+ private viewOptions;
12
+ private renderContext;
13
+ private docCtx;
14
+ private selectedSets;
15
+ elementMeasure: ElementMeasure;
16
+ elementRenderCut: ElementRenderCut;
17
+ elementPaint: ElementPaint;
18
+ docPages: Array<DocumentRenderObject>;
19
+ docContainer: DocumentContainerRender;
20
+ commsContainer: CommsContainerRenderObject;
21
+ constructor(viewOptions: ViewOptions, renderContext: RenderContenxtType, docCtx: EditorContext, selectedSets: Map<Element, SelectionContentRange>);
22
+ rePages(): void;
23
+ /**
24
+ * 获取设置文档容器的总高度
25
+ */
26
+ getDocumentContainerHeight(): number;
27
+ refreshView(rePaint?: boolean): void;
28
+ getDocPages(): Array<DocumentRenderObject>;
29
+ getDocContainer(): DocumentContainerRender;
30
+ /***
31
+ * 设置审阅区间样式痕迹
32
+ */
33
+ setCommRangeMark(): void;
34
+ }
@@ -1,32 +1,32 @@
1
1
  import { ElementMeasure } from "./element-measure";
2
2
  import { ElementPaint } from "./element-paint";
3
3
  import { ElementRenderCut } from "./element-render-cut";
4
- import { DocumentRenderObject } from "./impl/document/doc-impl";
5
- import { RenderContenxtType } from "./render-context";
6
- import { Element, SelectionContentRange, ViewOptions } from "./element-define";
7
4
  import { DocumentContainerRender } from "./impl/document/doc-container-impl";
8
5
  import { ElementUtil } from "./element-util";
9
6
  import { DocumentSelection } from "./document-selection";
10
- import { CommsContainerRenderObject } from "./impl/comments/comments-container-impl";
11
7
  import { RangeUtil } from "./range-util";
12
8
  import { SelectionOverlays } from "./selection-overlays";
13
- import { EditorContext } from "./document-context";
14
- import { CommContentElement, CommentRangeStatus } from "./impl/comments/comment-content-impl";
15
-
16
9
  export class DocumentPaint {
17
- elementMeasure: ElementMeasure;
18
- elementRenderCut: ElementRenderCut;
19
- elementPaint: ElementPaint;
20
- docPages!: Array<DocumentRenderObject>;
21
- docContainer!: DocumentContainerRender;
22
- commsContainer!: CommsContainerRenderObject;
23
- constructor(private viewOptions: ViewOptions, private renderContext: RenderContenxtType, private docCtx: EditorContext, private selectedSets: Map<Element, SelectionContentRange>) {
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;
24
25
  this.elementMeasure = new ElementMeasure(this.viewOptions, this.renderContext);
25
26
  this.elementRenderCut = new ElementRenderCut(this.viewOptions, this.renderContext);
26
27
  this.elementPaint = new ElementPaint(this.viewOptions, this.renderContext);
27
28
  }
28
-
29
- rePages(): void {
29
+ rePages() {
30
30
  // const destroyItems = [this.docContainer, this.commsContainer];
31
31
  // destroyItems.forEach(item => item?.destroy())
32
32
  //Promise.resolve().then(() => { destroyItems.forEach(item => item?.destroy()) });
@@ -38,9 +38,9 @@ export class DocumentPaint {
38
38
  this.docContainer.rect.width = this.viewOptions.docPageSettings.width;
39
39
  // console.time('排版计时');
40
40
  const documentRender = this.elementMeasure.measureDocument(this.docCtx.document);
41
- this.commsContainer = documentRender.getChild(3) as CommsContainerRenderObject;
41
+ this.commsContainer = documentRender.getChild(3);
42
42
  if (this.commsContainer) {
43
- this.commsContainer = this.commsContainer.clone() as CommsContainerRenderObject;
43
+ this.commsContainer = this.commsContainer.clone();
44
44
  }
45
45
  //console.timeEnd('排版计时');
46
46
  //console.time('断页计时');
@@ -50,14 +50,11 @@ export class DocumentPaint {
50
50
  ElementUtil.remeasure(this.docContainer);
51
51
  this.setCommRangeMark();
52
52
  this.docPages = docPages;
53
-
54
-
55
53
  }
56
-
57
54
  /**
58
55
  * 获取设置文档容器的总高度
59
56
  */
60
- getDocumentContainerHeight(): number {
57
+ getDocumentContainerHeight() {
61
58
  if (this.docPages.length > 0) {
62
59
  const lastPage = this.docPages[this.docPages.length - 1];
63
60
  const lastPageY = lastPage.rect.y + lastPage.rect.height + this.viewOptions.docSpace;
@@ -67,34 +64,29 @@ export class DocumentPaint {
67
64
  return 0;
68
65
  }
69
66
  }
70
-
71
- refreshView(rePaint = false): void {
67
+ refreshView(rePaint = false) {
72
68
  //console.time('计时');
73
69
  this.elementPaint.drawPages(this.docContainer, this.selectedSets, this.commsContainer, rePaint);
74
70
  //console.timeEnd('计时');
75
-
76
71
  }
77
-
78
- getDocPages(): Array<DocumentRenderObject> {
72
+ getDocPages() {
79
73
  return this.docPages;
80
74
  }
81
-
82
- getDocContainer(): DocumentContainerRender {
75
+ getDocContainer() {
83
76
  return this.docContainer;
84
77
  }
85
-
86
78
  /***
87
79
  * 设置审阅区间样式痕迹
88
80
  */
89
- setCommRangeMark(): void {
81
+ setCommRangeMark() {
90
82
  if (!this.viewOptions.showReviewWindow) {
91
83
  return;
92
84
  }
93
85
  const cce = this.docCtx.document.commentsContainerElement;
94
- const set = new Map<Element, SelectionContentRange>();
95
- const commentRangeStatus: Array<CommentRangeStatus> = [];
86
+ const set = new Map();
87
+ const commentRangeStatus = [];
96
88
  for (let i = 0; i < cce.length; i++) {
97
- const commContent = cce.getChild(i) as CommContentElement;
89
+ const commContent = cce.getChild(i);
98
90
  const { startMark, endMark, props: { id }, focus } = commContent;
99
91
  const ancestorCommonControl = DocumentSelection.getAncestorCommonControl(startMark, endMark);
100
92
  const commonRange = RangeUtil.getSelctionRange(startMark, 0, endMark, 1, ancestorCommonControl);
@@ -102,9 +94,10 @@ export class DocumentPaint {
102
94
  commentRangeStatus.push({
103
95
  commContent,
104
96
  range: commonRange
105
- })
97
+ });
106
98
  }
107
99
  this.commsContainer.selectedSet = set;
108
100
  this.commsContainer.commentRangeStatus = commentRangeStatus;
109
101
  }
110
102
  }
103
+ //# sourceMappingURL=document-paint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-paint.js","sourceRoot":"lib/","sources":["framework/document-paint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
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
+ }
@@ -6,19 +6,17 @@ import { ViewOptions } from "./element-define";
6
6
  import { ElementPaint } from "./element-paint";
7
7
  import { ElementReader } from "./element-reader";
8
8
  import { ElementUtil } from "./element-util";
9
- import { DocumentElement, DocumentRenderObject } from "./impl/document/doc-impl";
10
- import { RenderContenxt, RenderContenxtType } from "./render-context";
11
-
9
+ import { RenderContenxt } from "./render-context";
12
10
  /**
13
11
  * 离屏打印
14
12
  */
15
13
  export class DocumentPrintOffscreen {
16
- documentPaint: DocumentPaint;
17
- viewOptions: ViewOptions;
18
- docCtx: EditorContext;
19
- renderCtx: RenderContenxt;
20
- elementReader: ElementReader;
21
- ctx: CanvasRenderingContext2D;
14
+ documentPaint;
15
+ viewOptions;
16
+ docCtx;
17
+ renderCtx;
18
+ elementReader;
19
+ ctx;
22
20
  constructor() {
23
21
  this.viewOptions = new ViewOptions();
24
22
  this.viewOptions.copyRightInfo = '万达信息电子病历编辑器,www.wondersgroup.com';
@@ -38,7 +36,7 @@ export class DocumentPrintOffscreen {
38
36
  name: '管理员'
39
37
  };
40
38
  const canvas = document.createElement('canvas');
41
- this.ctx = canvas.getContext('2d') as CanvasRenderingContext2D;
39
+ this.ctx = canvas.getContext('2d');
42
40
  const ss = new SelectionState();
43
41
  this.docCtx = new EditorContext(ss, this.viewOptions);
44
42
  this.renderCtx = new RenderContenxt(this.ctx, this.viewOptions, this.docCtx);
@@ -47,17 +45,16 @@ export class DocumentPrintOffscreen {
47
45
  this.docCtx.syncRefresh = () => {
48
46
  };
49
47
  }
50
- async print(data: any | DocumentElement, ranges: Array<number> | null = null): Promise<void> {
48
+ async print(data, ranges = null) {
51
49
  await this.prepare(data);
52
50
  const canvasNodes = this.getCanvasNodes(this.documentPaint.docPages, ranges);
53
51
  if (!canvasNodes.length) {
54
- console.warn('无可打印页')
52
+ console.warn('无可打印页');
55
53
  return;
56
54
  }
57
55
  const docProps = this.docCtx.document.props;
58
56
  printNodes(canvasNodes, { ...docProps });
59
57
  }
60
-
61
58
  /**
62
59
  * 导出PDF
63
60
  * @param fileName
@@ -66,44 +63,40 @@ export class DocumentPrintOffscreen {
66
63
  * @param docCtx
67
64
  * @param ranges
68
65
  */
69
- async exportToPDF(data: any | DocumentElement, fileName: string, ranges: Array<number> | null = null): Promise<void> {
66
+ async exportToPDF(data, fileName, ranges = null) {
70
67
  await this.prepare(data);
71
68
  const canvasNodes = this.getCanvasNodes(this.documentPaint.docPages, ranges);
72
69
  if (!canvasNodes.length) {
73
- console.warn('无可导出页')
70
+ console.warn('无可导出页');
74
71
  return;
75
72
  }
76
73
  exportCanvasToPDF(fileName, canvasNodes, this.docCtx.document.props);
77
74
  }
78
-
79
-
80
75
  /**
81
76
  * 获取绘制的图片,格式为Base64编码
82
77
  */
83
- async getImagesContent(data: any | DocumentElement, ranges: Array<number> | null = null): Promise<Array<string>> {
78
+ async getImagesContent(data, ranges = null) {
84
79
  await this.prepare(data);
85
80
  const canvasNodes = this.getCanvasNodes(this.documentPaint.docPages, ranges);
86
81
  if (!canvasNodes.length) {
87
- console.warn('无可导出页')
82
+ console.warn('无可导出页');
88
83
  return [];
89
84
  }
90
85
  return canvasNodes.map(node => node.toDataURL());
91
86
  }
92
-
93
87
  /**
94
88
  * 读取数据,排版
95
89
  * @param data
96
90
  */
97
- private async prepare(data: any | DocumentElement,): Promise<void> {
91
+ async prepare(data) {
98
92
  this.elementReader.read(data);
99
93
  this.documentPaint.rePages();
100
94
  await Promise.all(this.docCtx.imageLoader.getLoadTasks());
101
95
  this.renderCtx.setCanvasProps(this.viewOptions.docPageSettings);
102
96
  }
103
-
104
- private getCanvasNodes(printPages: Array<DocumentRenderObject>, printRanges: Array<number> | null = null): Array<HTMLCanvasElement> {
97
+ getCanvasNodes(printPages, printRanges = null) {
105
98
  const { width, height } = this.viewOptions.docPageSettings;
106
- const canvasList: Array<HTMLCanvasElement> = [];
99
+ const canvasList = [];
107
100
  for (let i = 0; i < printPages.length; i++) {
108
101
  if (printRanges && printRanges.indexOf(i) === -1) {
109
102
  continue;
@@ -112,7 +105,7 @@ export class DocumentPrintOffscreen {
112
105
  canvasNode.style.cursor = 'text';
113
106
  canvasNode.style.width = width + 'px';
114
107
  canvasNode.style.height = height + 'px';
115
- const ctx = canvasNode.getContext('2d') as CanvasRenderingContext2D;
108
+ const ctx = canvasNode.getContext('2d');
116
109
  ElementUtil.setCanvasProps(canvasNode, ctx, this.viewOptions.docPageSettings);
117
110
  const renderCtx = new RenderContenxt(ctx, this.viewOptions, this.docCtx);
118
111
  renderCtx.setCanvasProps(this.viewOptions.docPageSettings);
@@ -132,3 +125,4 @@ export class DocumentPrintOffscreen {
132
125
  return canvasList;
133
126
  }
134
127
  }
128
+ //# sourceMappingURL=document-print-offscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-print-offscreen.js","sourceRoot":"lib/","sources":["framework/document-print-offscreen.ts"],"names":[],"mappings":"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"}