@hailin-zheng/editor-core 1.0.18 → 1.0.20

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 (291) hide show
  1. package/lib/doc-ruler.d.ts +1 -0
  2. package/lib/doc-ruler.d.ts.map +1 -0
  3. package/lib/framework/common-util.d.ts +1 -0
  4. package/lib/framework/common-util.d.ts.map +1 -0
  5. package/lib/framework/document-change.d.ts +1 -0
  6. package/lib/framework/document-change.d.ts.map +1 -0
  7. package/lib/framework/document-combine.d.ts +1 -0
  8. package/lib/framework/document-combine.d.ts.map +1 -0
  9. package/lib/framework/document-comment.d.ts +1 -0
  10. package/lib/framework/document-comment.d.ts.map +1 -0
  11. package/lib/framework/document-context.d.ts +1 -0
  12. package/lib/framework/document-context.d.ts.map +1 -0
  13. package/lib/framework/document-eval-func.d.ts +1 -0
  14. package/lib/framework/document-eval-func.d.ts.map +1 -0
  15. package/lib/framework/document-event.d.ts +1 -0
  16. package/lib/framework/document-event.d.ts.map +1 -0
  17. package/lib/framework/document-history.d.ts +1 -0
  18. package/lib/framework/document-history.d.ts.map +1 -0
  19. package/lib/framework/document-images-loader.d.ts +1 -0
  20. package/lib/framework/document-images-loader.d.ts.map +1 -0
  21. package/lib/framework/document-input-cursor.d.ts +1 -0
  22. package/lib/framework/document-input-cursor.d.ts.map +1 -0
  23. package/lib/framework/document-paint.d.ts +1 -0
  24. package/lib/framework/document-paint.d.ts.map +1 -0
  25. package/lib/framework/document-print-offscreen.d.ts +1 -0
  26. package/lib/framework/document-print-offscreen.d.ts.map +1 -0
  27. package/lib/framework/document-print.d.ts +1 -0
  28. package/lib/framework/document-print.d.ts.map +1 -0
  29. package/lib/framework/document-segmenter.d.ts +1 -0
  30. package/lib/framework/document-segmenter.d.ts.map +1 -0
  31. package/lib/framework/document-selection.d.ts +1 -0
  32. package/lib/framework/document-selection.d.ts.map +1 -0
  33. package/lib/framework/document-template.d.ts +1 -0
  34. package/lib/framework/document-template.d.ts.map +1 -0
  35. package/lib/framework/document-textline-mode.d.ts +1 -0
  36. package/lib/framework/document-textline-mode.d.ts.map +1 -0
  37. package/lib/framework/element-define.d.ts +1 -0
  38. package/lib/framework/element-define.d.ts.map +1 -0
  39. package/lib/framework/element-event-define.d.ts +1 -0
  40. package/lib/framework/element-event-define.d.ts.map +1 -0
  41. package/lib/framework/element-measure.d.ts +1 -0
  42. package/lib/framework/element-measure.d.ts.map +1 -0
  43. package/lib/framework/element-paint.d.ts +1 -0
  44. package/lib/framework/element-paint.d.ts.map +1 -0
  45. package/lib/framework/element-props.d.ts +2 -1
  46. package/lib/framework/element-props.d.ts.map +1 -0
  47. package/lib/framework/element-reader.d.ts +1 -0
  48. package/lib/framework/element-reader.d.ts.map +1 -0
  49. package/lib/framework/element-render-cut.d.ts +1 -0
  50. package/lib/framework/element-render-cut.d.ts.map +1 -0
  51. package/lib/framework/element-serialize.d.ts +1 -0
  52. package/lib/framework/element-serialize.d.ts.map +1 -0
  53. package/lib/framework/element-util.d.ts +1 -0
  54. package/lib/framework/element-util.d.ts.map +1 -0
  55. package/lib/framework/impl/checkbox/checkbox-impl.d.ts +1 -0
  56. package/lib/framework/impl/checkbox/checkbox-impl.d.ts.map +1 -0
  57. package/lib/framework/impl/comments/comment-content-impl.d.ts +1 -0
  58. package/lib/framework/impl/comments/comment-content-impl.d.ts.map +1 -0
  59. package/lib/framework/impl/comments/comment-element-impl.d.ts +1 -0
  60. package/lib/framework/impl/comments/comment-element-impl.d.ts.map +1 -0
  61. package/lib/framework/impl/comments/comments-container-impl.d.ts +1 -0
  62. package/lib/framework/impl/comments/comments-container-impl.d.ts.map +1 -0
  63. package/lib/framework/impl/comments/comments-util.d.ts +1 -0
  64. package/lib/framework/impl/comments/comments-util.d.ts.map +1 -0
  65. package/lib/framework/impl/comments/validate-msg-impl.d.ts +1 -0
  66. package/lib/framework/impl/comments/validate-msg-impl.d.ts.map +1 -0
  67. package/lib/framework/impl/data-element/data-decorate-impl.d.ts +1 -0
  68. package/lib/framework/impl/data-element/data-decorate-impl.d.ts.map +1 -0
  69. package/lib/framework/impl/data-element/data-element-barcode.d.ts +1 -0
  70. package/lib/framework/impl/data-element/data-element-barcode.d.ts.map +1 -0
  71. package/lib/framework/impl/data-element/data-element-base-impl.d.ts +1 -0
  72. package/lib/framework/impl/data-element/data-element-base-impl.d.ts.map +1 -0
  73. package/lib/framework/impl/data-element/data-element-check-impl.d.ts +1 -0
  74. package/lib/framework/impl/data-element/data-element-check-impl.d.ts.map +1 -0
  75. package/lib/framework/impl/data-element/data-element-date-impl.d.ts +1 -0
  76. package/lib/framework/impl/data-element/data-element-date-impl.d.ts.map +1 -0
  77. package/lib/framework/impl/data-element/data-element-group-impl.d.ts +1 -0
  78. package/lib/framework/impl/data-element/data-element-group-impl.d.ts.map +1 -0
  79. package/lib/framework/impl/data-element/data-element-image-impl.d.ts +1 -0
  80. package/lib/framework/impl/data-element/data-element-image-impl.d.ts.map +1 -0
  81. package/lib/framework/impl/data-element/data-element-list-impl.d.ts +1 -0
  82. package/lib/framework/impl/data-element/data-element-list-impl.d.ts.map +1 -0
  83. package/lib/framework/impl/data-element/data-element-text-impl.d.ts +1 -0
  84. package/lib/framework/impl/data-element/data-element-text-impl.d.ts.map +1 -0
  85. package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +1 -0
  86. package/lib/framework/impl/decorate/fill-null-space-imple.d.ts.map +1 -0
  87. package/lib/framework/impl/document/doc-body-impl.d.ts +1 -0
  88. package/lib/framework/impl/document/doc-body-impl.d.ts.map +1 -0
  89. package/lib/framework/impl/document/doc-body-part-impl.d.ts +1 -0
  90. package/lib/framework/impl/document/doc-body-part-impl.d.ts.map +1 -0
  91. package/lib/framework/impl/document/doc-container-impl.d.ts +1 -0
  92. package/lib/framework/impl/document/doc-container-impl.d.ts.map +1 -0
  93. package/lib/framework/impl/document/doc-footer-impl.d.ts +1 -0
  94. package/lib/framework/impl/document/doc-footer-impl.d.ts.map +1 -0
  95. package/lib/framework/impl/document/doc-header-impl.d.ts +1 -0
  96. package/lib/framework/impl/document/doc-header-impl.d.ts.map +1 -0
  97. package/lib/framework/impl/document/doc-impl.d.ts +1 -0
  98. package/lib/framework/impl/document/doc-impl.d.ts.map +1 -0
  99. package/lib/framework/impl/index.d.ts +37 -0
  100. package/lib/framework/impl/index.d.ts.map +1 -0
  101. package/lib/framework/impl/media-formula/menstrual-history.d.ts +1 -0
  102. package/lib/framework/impl/media-formula/menstrual-history.d.ts.map +1 -0
  103. package/lib/framework/impl/paragraph/p-impl.d.ts +1 -0
  104. package/lib/framework/impl/paragraph/p-impl.d.ts.map +1 -0
  105. package/lib/framework/impl/picture/image-impl.d.ts +1 -0
  106. package/lib/framework/impl/picture/image-impl.d.ts.map +1 -0
  107. package/lib/framework/impl/radio/radio-impl.d.ts +1 -0
  108. package/lib/framework/impl/radio/radio-impl.d.ts.map +1 -0
  109. package/lib/framework/impl/symbol/br-symbol-impl.d.ts +1 -0
  110. package/lib/framework/impl/symbol/br-symbol-impl.d.ts.map +1 -0
  111. package/lib/framework/impl/symbol/p-symbol-impl.d.ts +1 -0
  112. package/lib/framework/impl/symbol/p-symbol-impl.d.ts.map +1 -0
  113. package/lib/framework/impl/table/table-cell-impl.d.ts +1 -0
  114. package/lib/framework/impl/table/table-cell-impl.d.ts.map +1 -0
  115. package/lib/framework/impl/table/table-impl.d.ts +1 -0
  116. package/lib/framework/impl/table/table-impl.d.ts.map +1 -0
  117. package/lib/framework/impl/table/table-row-impl.d.ts +1 -0
  118. package/lib/framework/impl/table/table-row-impl.d.ts.map +1 -0
  119. package/lib/framework/impl/table/table-split-cell-patch.d.ts +1 -0
  120. package/lib/framework/impl/table/table-split-cell-patch.d.ts.map +1 -0
  121. package/lib/framework/impl/table/table-split-cell.d.ts +1 -0
  122. package/lib/framework/impl/table/table-split-cell.d.ts.map +1 -0
  123. package/lib/framework/impl/table/table-util.d.ts +1 -0
  124. package/lib/framework/impl/table/table-util.d.ts.map +1 -0
  125. package/lib/framework/impl/text/text-impl.d.ts +1 -0
  126. package/lib/framework/impl/text/text-impl.d.ts.map +1 -0
  127. package/lib/framework/impl/text/track-run-impl.d.ts +1 -0
  128. package/lib/framework/impl/text/track-run-impl.d.ts.map +1 -0
  129. package/lib/framework/notify.d.ts +1 -0
  130. package/lib/framework/notify.d.ts.map +1 -0
  131. package/lib/framework/range-util.d.ts +1 -0
  132. package/lib/framework/range-util.d.ts.map +1 -0
  133. package/lib/framework/render-context.d.ts +1 -0
  134. package/lib/framework/render-context.d.ts.map +1 -0
  135. package/lib/framework/render-define.d.ts +1 -0
  136. package/lib/framework/render-define.d.ts.map +1 -0
  137. package/lib/framework/selection-overlays.d.ts +1 -0
  138. package/lib/framework/selection-overlays.d.ts.map +1 -0
  139. package/lib/index.d.ts +35 -0
  140. package/lib/index.d.ts.map +1 -0
  141. package/lib/index.js +15671 -0
  142. package/lib/texteditor.d.ts +3 -2
  143. package/lib/texteditor.d.ts.map +1 -0
  144. package/lib/util/subject.d.ts +1 -0
  145. package/lib/util/subject.d.ts.map +1 -0
  146. package/lib/util/table-bind.d.ts +1 -0
  147. package/lib/util/table-bind.d.ts.map +1 -0
  148. package/package.json +32 -23
  149. package/README.md +0 -1613
  150. package/lib/doc-ruler.js +0 -313
  151. package/lib/doc-ruler.js.map +0 -1
  152. package/lib/framework/common-util.js +0 -178
  153. package/lib/framework/common-util.js.map +0 -1
  154. package/lib/framework/document-change.js +0 -1342
  155. package/lib/framework/document-change.js.map +0 -1
  156. package/lib/framework/document-combine.js +0 -40
  157. package/lib/framework/document-combine.js.map +0 -1
  158. package/lib/framework/document-comment.js +0 -148
  159. package/lib/framework/document-comment.js.map +0 -1
  160. package/lib/framework/document-context.js +0 -330
  161. package/lib/framework/document-context.js.map +0 -1
  162. package/lib/framework/document-eval-func.js +0 -48
  163. package/lib/framework/document-eval-func.js.map +0 -1
  164. package/lib/framework/document-event.js +0 -1054
  165. package/lib/framework/document-event.js.map +0 -1
  166. package/lib/framework/document-history.js +0 -65
  167. package/lib/framework/document-history.js.map +0 -1
  168. package/lib/framework/document-images-loader.js +0 -66
  169. package/lib/framework/document-images-loader.js.map +0 -1
  170. package/lib/framework/document-input-cursor.js +0 -239
  171. package/lib/framework/document-input-cursor.js.map +0 -1
  172. package/lib/framework/document-paint.js +0 -103
  173. package/lib/framework/document-paint.js.map +0 -1
  174. package/lib/framework/document-print-offscreen.js +0 -128
  175. package/lib/framework/document-print-offscreen.js.map +0 -1
  176. package/lib/framework/document-print.js +0 -203
  177. package/lib/framework/document-print.js.map +0 -1
  178. package/lib/framework/document-segmenter.js +0 -106
  179. package/lib/framework/document-segmenter.js.map +0 -1
  180. package/lib/framework/document-selection.js +0 -358
  181. package/lib/framework/document-selection.js.map +0 -1
  182. package/lib/framework/document-template.js +0 -20
  183. package/lib/framework/document-template.js.map +0 -1
  184. package/lib/framework/document-textline-mode.js +0 -30
  185. package/lib/framework/document-textline-mode.js.map +0 -1
  186. package/lib/framework/element-define.js +0 -579
  187. package/lib/framework/element-define.js.map +0 -1
  188. package/lib/framework/element-event-define.js +0 -108
  189. package/lib/framework/element-event-define.js.map +0 -1
  190. package/lib/framework/element-measure.js +0 -551
  191. package/lib/framework/element-measure.js.map +0 -1
  192. package/lib/framework/element-paint.js +0 -170
  193. package/lib/framework/element-paint.js.map +0 -1
  194. package/lib/framework/element-props.js +0 -809
  195. package/lib/framework/element-props.js.map +0 -1
  196. package/lib/framework/element-reader.js +0 -151
  197. package/lib/framework/element-reader.js.map +0 -1
  198. package/lib/framework/element-render-cut.js +0 -449
  199. package/lib/framework/element-render-cut.js.map +0 -1
  200. package/lib/framework/element-serialize.js +0 -113
  201. package/lib/framework/element-serialize.js.map +0 -1
  202. package/lib/framework/element-util.js +0 -1463
  203. package/lib/framework/element-util.js.map +0 -1
  204. package/lib/framework/impl/checkbox/checkbox-impl.js +0 -64
  205. package/lib/framework/impl/checkbox/checkbox-impl.js.map +0 -1
  206. package/lib/framework/impl/comments/comment-content-impl.js +0 -105
  207. package/lib/framework/impl/comments/comment-content-impl.js.map +0 -1
  208. package/lib/framework/impl/comments/comment-element-impl.js +0 -62
  209. package/lib/framework/impl/comments/comment-element-impl.js.map +0 -1
  210. package/lib/framework/impl/comments/comments-container-impl.js +0 -62
  211. package/lib/framework/impl/comments/comments-container-impl.js.map +0 -1
  212. package/lib/framework/impl/comments/comments-util.js +0 -67
  213. package/lib/framework/impl/comments/comments-util.js.map +0 -1
  214. package/lib/framework/impl/comments/validate-msg-impl.js +0 -83
  215. package/lib/framework/impl/comments/validate-msg-impl.js.map +0 -1
  216. package/lib/framework/impl/data-element/data-decorate-impl.js +0 -91
  217. package/lib/framework/impl/data-element/data-decorate-impl.js.map +0 -1
  218. package/lib/framework/impl/data-element/data-element-barcode.js +0 -115
  219. package/lib/framework/impl/data-element/data-element-barcode.js.map +0 -1
  220. package/lib/framework/impl/data-element/data-element-base-impl.js +0 -205
  221. package/lib/framework/impl/data-element/data-element-base-impl.js.map +0 -1
  222. package/lib/framework/impl/data-element/data-element-check-impl.js +0 -133
  223. package/lib/framework/impl/data-element/data-element-check-impl.js.map +0 -1
  224. package/lib/framework/impl/data-element/data-element-date-impl.js +0 -111
  225. package/lib/framework/impl/data-element/data-element-date-impl.js.map +0 -1
  226. package/lib/framework/impl/data-element/data-element-group-impl.js +0 -130
  227. package/lib/framework/impl/data-element/data-element-group-impl.js.map +0 -1
  228. package/lib/framework/impl/data-element/data-element-image-impl.js +0 -137
  229. package/lib/framework/impl/data-element/data-element-image-impl.js.map +0 -1
  230. package/lib/framework/impl/data-element/data-element-list-impl.js +0 -131
  231. package/lib/framework/impl/data-element/data-element-list-impl.js.map +0 -1
  232. package/lib/framework/impl/data-element/data-element-text-impl.js +0 -103
  233. package/lib/framework/impl/data-element/data-element-text-impl.js.map +0 -1
  234. package/lib/framework/impl/decorate/fill-null-space-imple.js +0 -43
  235. package/lib/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
  236. package/lib/framework/impl/document/doc-body-impl.js +0 -79
  237. package/lib/framework/impl/document/doc-body-impl.js.map +0 -1
  238. package/lib/framework/impl/document/doc-body-part-impl.js +0 -94
  239. package/lib/framework/impl/document/doc-body-part-impl.js.map +0 -1
  240. package/lib/framework/impl/document/doc-container-impl.js +0 -21
  241. package/lib/framework/impl/document/doc-container-impl.js.map +0 -1
  242. package/lib/framework/impl/document/doc-footer-impl.js +0 -77
  243. package/lib/framework/impl/document/doc-footer-impl.js.map +0 -1
  244. package/lib/framework/impl/document/doc-header-impl.js +0 -83
  245. package/lib/framework/impl/document/doc-header-impl.js.map +0 -1
  246. package/lib/framework/impl/document/doc-impl.js +0 -209
  247. package/lib/framework/impl/document/doc-impl.js.map +0 -1
  248. package/lib/framework/impl/media-formula/menstrual-history.js +0 -153
  249. package/lib/framework/impl/media-formula/menstrual-history.js.map +0 -1
  250. package/lib/framework/impl/paragraph/p-impl.js +0 -156
  251. package/lib/framework/impl/paragraph/p-impl.js.map +0 -1
  252. package/lib/framework/impl/picture/image-impl.js +0 -124
  253. package/lib/framework/impl/picture/image-impl.js.map +0 -1
  254. package/lib/framework/impl/radio/radio-impl.js +0 -72
  255. package/lib/framework/impl/radio/radio-impl.js.map +0 -1
  256. package/lib/framework/impl/symbol/br-symbol-impl.js +0 -54
  257. package/lib/framework/impl/symbol/br-symbol-impl.js.map +0 -1
  258. package/lib/framework/impl/symbol/p-symbol-impl.js +0 -54
  259. package/lib/framework/impl/symbol/p-symbol-impl.js.map +0 -1
  260. package/lib/framework/impl/table/table-cell-impl.js +0 -145
  261. package/lib/framework/impl/table/table-cell-impl.js.map +0 -1
  262. package/lib/framework/impl/table/table-impl.js +0 -363
  263. package/lib/framework/impl/table/table-impl.js.map +0 -1
  264. package/lib/framework/impl/table/table-row-impl.js +0 -75
  265. package/lib/framework/impl/table/table-row-impl.js.map +0 -1
  266. package/lib/framework/impl/table/table-split-cell-patch.js +0 -89
  267. package/lib/framework/impl/table/table-split-cell-patch.js.map +0 -1
  268. package/lib/framework/impl/table/table-split-cell.js +0 -464
  269. package/lib/framework/impl/table/table-split-cell.js.map +0 -1
  270. package/lib/framework/impl/table/table-util.js +0 -678
  271. package/lib/framework/impl/table/table-util.js.map +0 -1
  272. package/lib/framework/impl/text/text-impl.js +0 -149
  273. package/lib/framework/impl/text/text-impl.js.map +0 -1
  274. package/lib/framework/impl/text/track-run-impl.js +0 -112
  275. package/lib/framework/impl/text/track-run-impl.js.map +0 -1
  276. package/lib/framework/notify.js +0 -116
  277. package/lib/framework/notify.js.map +0 -1
  278. package/lib/framework/range-util.js +0 -312
  279. package/lib/framework/range-util.js.map +0 -1
  280. package/lib/framework/render-context.js +0 -384
  281. package/lib/framework/render-context.js.map +0 -1
  282. package/lib/framework/render-define.js +0 -195
  283. package/lib/framework/render-define.js.map +0 -1
  284. package/lib/framework/selection-overlays.js +0 -124
  285. package/lib/framework/selection-overlays.js.map +0 -1
  286. package/lib/texteditor.js +0 -913
  287. package/lib/texteditor.js.map +0 -1
  288. package/lib/util/subject.js +0 -88
  289. package/lib/util/subject.js.map +0 -1
  290. package/lib/util/table-bind.js +0 -6
  291. package/lib/util/table-bind.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-props.js","sourceRoot":"lib/","sources":["framework/element-props.ts"],"names":[],"mappings":"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","sourcesContent":["import { NullableType, OrientType, PaddingProps, TextAlign, ViewOptions } from \"./element-define\";\nimport { TrackRunTypeEnum } from \"./impl/text/track-run-impl\";\n\nexport type TextVertAlign = 'superscript' | 'subscript';\n\nexport abstract class INotifyPropertyChanged {\n // onPropertyChangedSubject: Subject<string> = new Subject();\n // propertyChanged(properyName: string): void {\n // this.onPropertyChangedSubject.next(properyName);\n // }\n abstract getSerializeProps(viewOptions: ViewOptions): any;\n\n private __attatchProperty: Record<string, any> = {};\n\n registerProperty<T>(propertyName: string, value: T): void {\n this.__attatchProperty[propertyName] = value;\n }\n\n removeProperty(propertyName: string): void {\n delete this.__attatchProperty[propertyName];\n }\n\n getProperty<T>(propertyName: string): T {\n return this.__attatchProperty[propertyName] as T;\n }\n}\n\nexport class TextProps extends INotifyPropertyChanged {\n constructor() {\n super();\n }\n\n color!: string;\n fontName!: string;\n fontSize!: number;\n fontWeight: 'normal' | 'bold' = 'normal';\n fontStyle: 'normal' | 'italic' = 'normal';\n //textDecoration: 'none' | 'underline' | 'overline' | 'line-through' = 'none';\n underline: boolean = false;\n overline: boolean = false;\n linethrough: boolean = false;\n background!: string;\n letterSpace!: number;\n\n /**\n * 上标或者下标\n */\n vertAlign!: TextVertAlign;\n\n /**\n * 字符边框\n */\n border!: boolean;\n\n clearCache(): void {\n this.__cacheFont = null;\n }\n\n clone(source: TextProps | null): TextProps {\n const clone = source ?? new TextProps();\n this.setPropsValue(this, clone);\n return clone;\n }\n\n setPropsValue(source: TextProps, target: TextProps): void {\n target.color = source.color;\n target.fontName = source.fontName;\n target.fontSize = source.fontSize;\n target.fontWeight = source.fontWeight;\n target.fontStyle = source.fontStyle;\n target.underline = source.underline;\n target.overline = source.overline;\n target.linethrough = source.linethrough;\n target.background = source.background;\n target.letterSpace = source.letterSpace;\n target.vertAlign = source.vertAlign;\n target.border = source.border;\n }\n\n getSerializeProps(viewOptions: ViewOptions): any {\n const props: NullableType<TextProps> = {};\n if (this.color && this.color !== viewOptions.defaultColor) {\n props[\"color\"] = this.color;\n }\n if (this.fontName && this.fontName !== viewOptions.defaultFontName) {\n props[\"fontName\"] = this.fontName;\n }\n if (this.fontSize !== viewOptions.defaultFontSize) {\n props[\"fontSize\"] = this.fontSize;\n }\n if (this.fontWeight && this.fontWeight !== \"normal\") {\n props[\"fontWeight\"] = this.fontWeight;\n }\n if (this.underline) {\n props[\"underline\"] = this.underline;\n }\n if (this.overline) {\n props[\"overline\"] = this.overline;\n }\n if (this.linethrough) {\n props[\"linethrough\"] = this.linethrough;\n }\n if (this.background) {\n props[\"background\"] = this.background;\n }\n if (this.letterSpace) {\n props[\"letterSpace\"] = this.letterSpace;\n }\n if (this.fontStyle && this.fontStyle !== 'normal') {\n props[\"fontStyle\"] = this.fontStyle;\n }\n if (this.vertAlign) {\n props[\"vertAlign\"] = this.vertAlign;\n }\n if (this.border) {\n props[\"border\"] = this.border;\n }\n return props;\n }\n\n private __cacheFont!: string | null;\n\n getFont(): string {\n if (this.__cacheFont) {\n return this.__cacheFont;\n } else {\n let fontStr = '';\n if (this.fontStyle && this.fontStyle !== 'normal') {\n fontStr += this.fontStyle + ' ';\n }\n if (this.fontWeight && this.fontWeight !== 'normal') {\n fontStr += this.fontWeight + ' ';\n }\n //当前存在上标或者下标,大小为3/5\n fontStr += (this.vertAlign ? this.fontSize * 3 / 5 : this.fontSize) + 'px ';\n fontStr += fontMapFunc.getFontMap(this.fontName);\n this.__cacheFont = fontStr;\n return this.__cacheFont;\n }\n }\n\n equals(props: TextProps): boolean {\n return this.background === props.background\n && this.color === props.color\n && this.fontName === props.fontName\n && this.fontSize === props.fontSize\n && this.fontWeight === props.fontWeight\n && this.letterSpace === props.letterSpace\n && this.underline === props.underline\n && this.overline === props.overline\n && this.linethrough === props.linethrough\n && this.fontStyle === props.fontStyle\n && this.vertAlign === props.vertAlign\n && this.border === props.border;\n }\n}\n\nexport class ParagraphProps extends INotifyPropertyChanged {\n //段落默认的文本属性\n textProps!: TextProps;\n indent = 0;\n hanging = 0;\n lineHeight = 1.3;\n textAlign: TextAlign = 'left';\n numberType = -1;\n pageBreak = false;\n clone(dest: ParagraphProps | null = null): ParagraphProps {\n const clone = dest ?? new ParagraphProps();\n clone.indent = this.indent;\n clone.numberType = this.numberType;\n clone.lineHeight = this.lineHeight;\n clone.textAlign = this.textAlign;\n clone.textProps = this.textProps.clone(new TextProps());\n //强制换页属性不可复制\n //clone.pageBreak=this.pageBreak;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions): any {\n const props: NullableType<ParagraphProps> = {};\n if (this.indent) {\n props[\"indent\"] = this.indent;\n }\n if (this.hanging) {\n props[\"hanging\"] = this.hanging;\n }\n if (this.lineHeight && this.lineHeight !== 1.3) {\n props[\"lineHeight\"] = this.lineHeight;\n }\n if (this.textAlign && this.textAlign !== \"left\") {\n props[\"textAlign\"] = this.textAlign;\n }\n if (this.numberType !== -1) {\n props[\"numberType\"] = this.numberType;\n }\n if (this.textProps) {\n const dt = this.textProps.getSerializeProps(viewOptions) as TextProps;\n if (Object.keys(dt).length) {\n props[\"textProps\"] = dt;\n }\n }\n if (this.pageBreak) {\n props[\"pageBreak\"] = this.pageBreak;\n }\n return props;\n }\n}\n\nexport class DocumentProps extends INotifyPropertyChanged {\n width!: number;\n height!: number;\n padding!: PaddingProps;\n headerLine = 12;\n footerLine = 12;\n orient: OrientType = 'portrait'\n createUserId!: string;\n createUserName!: string;\n createDate!: string;\n scripts!: string;\n\n clone(dest: DocumentProps): DocumentProps {\n const clone = dest ?? new DocumentProps();\n clone.width = this.width;\n clone.height = this.height;\n clone.padding = this.padding.clone();\n clone.headerLine = this.headerLine;\n clone.footerLine = this.footerLine;\n clone.scripts = this.scripts;\n clone.createUserId = this.createUserId;\n clone.createUserName = this.createUserName;\n clone.createDate = this.createDate;\n clone.orient = this.orient;\n return clone;\n }\n\n getSerializeProps(): any {\n const props: NullableType<DocumentProps> = {\n width: this.width,\n height: this.height,\n padding: this.padding,\n headerLine: this.headerLine,\n footerLine: this.footerLine,\n createDate: this.createDate,\n createUserName: this.createUserName,\n createUserId: this.createUserId\n };\n if (this.scripts) {\n props['scripts'] = this.scripts;\n }\n if (this.orient && this.orient !== 'portrait') {\n props['orient'] = this.orient;\n }\n return props;\n }\n}\n\nexport class CheckBoxProps extends INotifyPropertyChanged {\n size!: number;\n isChecked!: boolean;\n //用于复选框分组\n groupName!: string | null;\n\n clone(dest: CheckBoxProps) {\n const clone = dest ?? new CheckBoxProps();\n clone.size = this.size;\n clone.isChecked = this.isChecked;\n clone.groupName = this.groupName;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n return {\n size: this.size,\n isChecked: this.isChecked,\n groupName: this.groupName,\n }\n }\n}\n\nexport class RadioBoxProps extends INotifyPropertyChanged {\n\n size!: number;\n isChecked!: boolean;\n\n clone(dest: RadioBoxProps) {\n const clone = dest ?? new RadioBoxProps();\n clone.size = this.size;\n clone.isChecked = this.isChecked;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n return {\n size: this.size,\n isCheced: this.isChecked\n };\n }\n}\n\nexport class TableRowProps extends INotifyPropertyChanged {\n minHeight!: number;\n headerRow!: boolean;\n\n clone(dest: TableRowProps) {\n const clone = dest ?? new TableRowProps();\n clone.minHeight = this.minHeight;\n clone.headerRow = this.headerRow;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions): any {\n const props: NullableType<TableRowProps> = {};\n if (this.minHeight > 0) {\n props[\"minHeight\"] = this.minHeight;\n props[\"headerRow\"] = this.headerRow;\n }\n if (this.headerRow) {\n props['headerRow'] = this.headerRow;\n }\n return props;\n }\n}\n\nexport type TableAlignment = 'start' | 'end' | 'center';\n\nexport class TableProps extends INotifyPropertyChanged {\n\n //auto 或者具体的值\n width!: number | string;\n cols!: Array<{\n width: number | string;\n }>;\n alignment!: TableAlignment;\n border: 'all' | 'none' = 'all';\n allowBreakRow!: boolean;\n\n clone(dest: TableProps): TableProps {\n const clone = dest ?? new TableProps();\n clone.width = this.width;\n clone.cols = [...this.cols];\n clone.alignment = this.alignment;\n clone.border = this.border;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n return {\n width: this.width,\n cols: this.cols,\n alignment: this.alignment,\n border: this.border\n };\n }\n}\n\nexport type CellMergeType = 'col-merge' | 'row-merge';\nexport type VMergeType = 'restart' | 'continue';\nexport type HMergeType = 'restart' | 'continue';\nexport type VerticalAlign = 'top' | 'middle' | 'bottom';\n\nexport class TableCellProps extends INotifyPropertyChanged {\n\n vMerge!: VMergeType | null;\n hMerge!: HMergeType | null;\n vAlign!: VerticalAlign | null;\n backgroundColor!: string | null;\n\n /**\n * 对角线\n */\n diagonal!: 'main' | 'sub' | null;\n\n clone(dest: TableCellProps): TableCellProps {\n const clone = dest ?? new TableCellProps();\n clone.vMerge = this.vMerge;\n clone.hMerge = this.hMerge;\n clone.vAlign = this.vAlign;\n clone.backgroundColor = this.backgroundColor;\n clone.diagonal = this.diagonal;\n return clone;\n }\n\n getSerializeProps(options: ViewOptions): any {\n const props: NullableType<TableCellProps> = {};\n if (this.vMerge) {\n props['vMerge'] = this.vMerge;\n }\n if (this.hMerge) {\n props['hMerge'] = this.hMerge;\n }\n if (this.vAlign && this.vAlign !== 'top') {\n props['vAlign'] = this.vAlign;\n }\n if (this.backgroundColor) {\n props['backgroundColor'] = this.backgroundColor;\n }\n if (this.diagonal) {\n props['diagonal'] = this.diagonal;\n }\n return props;\n }\n}\n\nexport class PictureProps extends INotifyPropertyChanged {\n title!: string;\n width!: number;\n height!: number;\n src!: string;\n border!: 'all' | 'none';\n\n clone(dest: PictureProps): PictureProps {\n const clone = dest ?? new PictureProps();\n clone.width = this.width;\n clone.height = this.height;\n clone.src = this.src;\n clone.border = this.border;\n clone.title = this.title;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n const props: NullableType<PictureProps> = {\n width: this.width,\n height: this.height,\n src: this.src,\n border: this.border,\n };\n if (this.title) {\n props['title'] = this.title;\n }\n return props;\n }\n}\n\nexport class DataDecorateProps extends INotifyPropertyChanged {\n content!: string;\n size!: number;\n\n clone(dest: DataDecorateProps): DataDecorateProps {\n const clone = dest ?? new DataDecorateProps();\n clone.content = this.content;\n clone.size = this.size;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n return {\n size: this.size,\n content: this.content\n };\n }\n}\n\nexport type DataEleTypes = 'text' | 'droplist' | 'date' | 'check' | 'img';\n\n\nexport class DataEleBaseProps extends INotifyPropertyChanged {\n id!: string;\n name!: string;\n fieldName!: string;\n caption!: string;\n required!: boolean;\n printable!: boolean;\n secretBrowse!: boolean;\n editable!: boolean;\n deleteable!: boolean;\n minLength!: number;\n type!: DataEleTypes;\n underline!: boolean;\n\n cloneBaseProps(destProps: DataEleBaseProps): void {\n this.setPropValue(this, destProps);\n }\n\n private setPropValue(source: DataEleBaseProps, target: DataEleBaseProps): void {\n target.id = source.id;\n target.name = source.name;\n target.caption = source.caption;\n target.fieldName = source.fieldName;\n target.required = source.required;\n target.editable = source.editable;\n target.deleteable = source.deleteable;\n target.secretBrowse = source.secretBrowse;\n target.printable = source.printable;\n target.minLength = source.minLength;\n target.type = source.type;\n target.underline = source.underline;\n }\n\n updateProps(props: DataEleBaseProps): void {\n this.setPropValue(props, this);\n }\n\n getBaseProps(props: NullableType<DataEleBaseProps>, options: ViewOptions): NullableType<DataEleBaseProps> {\n props[\"id\"] = this.id;\n props[\"name\"] = this.name;\n props[\"fieldName\"] = this.fieldName;\n props[\"type\"] = this.type;\n if (this.caption) {\n props[\"caption\"] = this.caption;\n }\n if (this.required) {\n props[\"required\"] = this.required;\n }\n if (this.printable) {\n props[\"printable\"] = this.printable;\n }\n if (this.secretBrowse) {\n props[\"secretBrowse\"] = this.secretBrowse;\n }\n if (!this.editable) {\n props['editable'] = this.editable;\n }\n if (this.deleteable) {\n props[\"deleteable\"] = this.deleteable;\n }\n if (this.minLength) {\n props[\"minLength\"] = this.minLength;\n }\n if (this.underline) {\n props[\"underline\"] = this.underline;\n }\n return props;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n throw new Error('未实现')\n }\n}\n\nexport class DataEleBaseTextProps extends DataEleBaseProps {\n constructor() {\n super();\n super.type = 'text';\n }\n\n valueTextProps!: TextProps;\n nullText!: string;\n nullTextProps!: TextProps;\n dataType: 'text' | 'int' | 'float' | 'email' | 'date' | 'phone' | 'zipcode' = 'text';\n clone(dest: DataEleBaseTextProps | null = null): DataEleBaseTextProps {\n const clone = dest ?? new DataEleBaseTextProps();\n super.cloneBaseProps(clone);\n clone.valueTextProps = this.valueTextProps.clone(null);\n clone.nullText = this.nullText;\n clone.nullTextProps = this.nullTextProps.clone(null);\n return clone;\n }\n\n getSerializeProps(options: ViewOptions): any {\n const props: NullableType<DataEleBaseTextProps> = {\n type: this.type,\n valueTextProps: this.valueTextProps.getSerializeProps(options),\n nullText: this.nullText,\n nullTextProps: this.nullTextProps.getSerializeProps(options)\n };\n if (this.dataType && this.dataType !== 'text') {\n props['dataType'] = this.dataType;\n }\n this.getBaseProps(props, options);\n return props;\n }\n\n getBaseProps(props: NullableType<DataEleBaseTextProps>, options: ViewOptions): NullableType<DataEleBaseTextProps> {\n super.getBaseProps(props, options);\n props['valueTextProps'] = this.valueTextProps.getSerializeProps(options);\n props['nullTextProps'] = this.nullTextProps.getSerializeProps(options);\n props['nullText'] = this.nullText;\n props['dataType'] = this.dataType;\n return props;\n }\n\n updateProps(props: DataEleBaseTextProps): void {\n super.updateProps(props);\n this.valueTextProps = props.valueTextProps;\n this.nullText = props.nullText;\n this.nullTextProps = props.nullTextProps;\n this.dataType = props.dataType;\n }\n}\n\nexport interface DataEleListOption {\n code: string,\n value: string\n}\n\nexport class DataEleListProps extends DataEleBaseTextProps {\n constructor() {\n super();\n super.type = 'droplist';\n }\n\n options: Array<DataEleListOption> = [];\n dropDownStyle!: 'DropDownList' | 'DropDown';\n /**\n * 是否允许多选\n */\n multiSelect!: boolean;\n\n clone(dest: DataEleListProps | null): DataEleListProps {\n const clone = dest ?? new DataEleListProps();\n super.clone(clone);\n clone.options = [...this.options];\n clone.dropDownStyle = this.dropDownStyle;\n clone.multiSelect = this.multiSelect;\n return clone;\n }\n\n getSerializeProps(options: ViewOptions): any {\n const props: NullableType<DataEleListProps> = {\n options: [...this.options],\n multiSelect: this.multiSelect,\n dropDownStyle: this.dropDownStyle,\n };\n super.getBaseProps(props, options);\n return props;\n }\n\n updateProps(props: DataEleListProps): void {\n super.updateProps(props);\n this.options = props.options;\n this.multiSelect = props.multiSelect;\n this.dropDownStyle = props.dropDownStyle;\n }\n}\n\nexport class CommContentProps extends INotifyPropertyChanged {\n id!: string;\n createId!: string;\n createName!: string;\n createDate!: Date;\n\n clone(dest: CommContentProps): CommContentProps {\n const clone = dest ?? new CommContentProps();\n clone.id = this.id;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n return {\n id: this.id\n };\n }\n}\n\nexport class CommProps extends INotifyPropertyChanged {\n id!: string;\n markType!: \"start\" | \"end\";\n\n clone(dest: CommProps): CommProps {\n const clone = dest ?? new CommProps();\n clone.id = this.id;\n clone.markType = this.markType;\n return clone;\n }\n\n getSerializeProps(viewOptions: ViewOptions) {\n return {\n id: this.id,\n markType: this.markType\n };\n }\n}\n\n\nexport class DataEleCheckProps extends DataEleBaseProps {\n constructor() {\n super();\n super.type = 'check';\n }\n\n size!: number;\n checked!: boolean;\n checkedValue: string = '';\n groupName!: string;\n multiSelect: boolean = false;\n\n clone(dest: DataEleCheckProps | null): DataEleCheckProps {\n const clone = dest ?? new DataEleCheckProps();\n super.cloneBaseProps(clone);\n clone.checked = this.checked;\n clone.size = this.size;\n clone.groupName = this.groupName;\n clone.multiSelect = this.multiSelect;\n clone.checkedValue = this.checkedValue;\n return clone;\n }\n\n getSerializeProps(options: ViewOptions): any {\n const props: NullableType<DataEleCheckProps> = {\n checked: this.checked,\n size: this.size,\n groupName: this.groupName,\n multiSelect: this.multiSelect,\n checkedValue: this.checkedValue\n };\n this.getBaseProps(props, options)\n return props;\n }\n\n updateProps(props: DataEleCheckProps): void {\n super.updateProps(props);\n this.checked = props.checked;\n this.size = props.size;\n this.groupName = props.groupName;\n this.multiSelect = props.multiSelect;\n this.checkedValue = props.checkedValue;\n }\n}\n\n\nexport class DataEleImageProps extends DataEleBaseProps {\n constructor() {\n super();\n super.type = 'img';\n }\n\n width!: number;\n height!: number;\n src!: string;\n border!: 'all' | 'none';\n\n clone(dest: DataEleImageProps | null): DataEleImageProps {\n const clone = dest ?? new DataEleImageProps();\n this.cloneBaseProps(clone);\n clone.width = this.width;\n clone.height = this.height;\n clone.src = this.src;\n clone.border = this.border;\n return clone;\n }\n\n getSerializeProps(options: ViewOptions): any {\n const props: NullableType<DataEleImageProps> = {\n width: this.width,\n height: this.height,\n src: this.src,\n border: this.border\n };\n this.getBaseProps(props, options)\n return props;\n }\n\n updateProps(props: DataEleImageProps): void {\n super.updateProps(props);\n this.width = props.width;\n this.height = props.height;\n this.src = props.src;\n this.border = props.border;\n }\n\n}\n\nexport class DataEleDateProps extends DataEleBaseTextProps {\n constructor() {\n super();\n super.type = 'date';\n }\n\n minValue?: Date;\n maxValue?: Date;\n format?: string;\n clone(dest: DataEleDateProps | null): DataEleDateProps {\n const clone = dest ?? new DataEleDateProps();\n super.clone(clone);\n clone.minValue = this.minValue;\n clone.maxValue = this.maxValue;\n clone.format = this.format;\n return clone;\n }\n\n getSerializeProps(options: ViewOptions): any {\n const props: NullableType<DataEleDateProps> = {\n minValue: this.minValue,\n maxValue: this.maxValue,\n format: this.format\n };\n this.getBaseProps(props, options);\n return props;\n }\n\n updateProps(props: DataEleDateProps): void {\n super.updateProps(props);\n this.minValue = props.minValue;\n this.maxValue = props.maxValue;\n this.format = props.format;\n }\n}\n\nexport class ValidateCondition {\n required: boolean = false;\n maxLength: number = -1;\n dataType: 'string' | 'date' | 'time' | 'number' | 'float' = 'string';\n}\n\nexport class DataEleMHProps extends DataEleBaseProps {\n //初潮年龄\n age!: string;\n //行经期天数\n days!: string;\n //月经周期天数\n cycles!: string;\n //末次月经时间\n lastDate!: string;\n //闭经年龄\n closeAge!: string;\n kind!: string;\n clone(dest: DataEleMHProps | null): DataEleMHProps {\n const clone = dest ?? new DataEleMHProps();\n this.cloneBaseProps(clone);\n clone.age = this.age;\n clone.days = this.days;\n clone.cycles = this.cycles;\n clone.lastDate = this.lastDate;\n clone.closeAge = this.closeAge;\n clone.kind = this.kind;\n return clone;\n }\n\n getSerializeProps(options: ViewOptions) {\n const props: NullableType<DataEleMHProps> = {\n age: this.age,\n days: this.days,\n cycles: this.cycles,\n lastDate: this.lastDate,\n closeAge: this.closeAge,\n kind: this.kind\n }\n this.getBaseProps(props, options);\n return props;\n }\n\n}\n\nexport class TrackRunProps {\n userId!: string;\n userName!: string;\n date!: string;\n id!: string;\n constructor(public type: TrackRunTypeEnum) {\n }\n\n clone(dest: TrackRunProps | null) {\n dest = dest ?? new TrackRunProps(this.type);\n dest.userId = this.userId;\n dest.userName = this.userName;\n dest.date = this.date;\n dest.id = this.id;\n }\n\n getSerializeProps() {\n const props: NullableType<TrackRunProps> = {\n userId: this.userId,\n userName: this.userName,\n date: this.date,\n id: this.id\n }\n return props;\n }\n}\n\n\nclass FontMapStruct {\n fontMap = new Map<string, string>();\n length: number = 0;\n\n registerFontMap(name: string, keyName: string): void {\n this.fontMap.set(name, keyName);\n this.length = this.fontMap.size;\n }\n\n getFontMap(name: string): string {\n if (this.length === 0) {\n return name;\n }\n if (this.fontMap.has(name)) {\n let key = this.fontMap.get(name) as string;\n return key;\n }\n return name;\n }\n}\n\nexport const fontMapFunc = new FontMapStruct();\n\n\nexport class ValidateProps {\n id!: string;\n title!: string;\n msg!: string;\n}\n\nexport class DataElementGroupProps {\n id!: string;\n name!: string;\n clone(dest: DataElementGroupProps | null) {\n dest = dest ?? new DataElementGroupProps();\n dest.id = this.id;\n dest.name = this.name;\n }\n\n getSerializeProps() {\n return {\n id: this.id,\n name: this.name\n }\n }\n}\n\n\n\nexport class DataElementBarcodeProps {\n type: 'ena13' | 'code128' | 'code39' | 'qrcode' = 'code128';\n text: string = '';\n width: number = 0;\n height: number = 0;\n\n clone(dest: DataElementBarcodeProps | null) {\n dest = dest ?? new DataElementBarcodeProps();\n dest.type = this.type;\n dest.text = this.text;\n dest.width = this.width;\n dest.height = this.height;\n }\n\n getSerializeProps() {\n return {\n type: this.type,\n text: this.text,\n width: this.width,\n height: this.height\n }\n }\n}\n\nexport class BodyPartProps {\n partId!: string;\n}"]}
@@ -1,151 +0,0 @@
1
- import { BranchElement, PageOptions } from "./element-define";
2
- import { CheckBoxFactory } from "./impl/checkbox/checkbox-impl";
3
- import { CommentContentFactory } from "./impl/comments/comment-content-impl";
4
- import { CommentFactory } from "./impl/comments/comment-element-impl";
5
- import { CommsContainerElement, CommentsFactory } from "./impl/comments/comments-container-impl";
6
- import { DataElementCheckFactory } from "./impl/data-element/data-element-check-impl";
7
- import { DataElementDateFactory } from "./impl/data-element/data-element-date-impl";
8
- import { DataElementImgFactory } from "./impl/data-element/data-element-image-impl";
9
- import { DataElementListFactory } from "./impl/data-element/data-element-list-impl";
10
- import { DataElementTextFactory } from "./impl/data-element/data-element-text-impl";
11
- import { DocumentBodyElement, DocumentBodyFactory } from "./impl/document/doc-body-impl";
12
- import { DocumentFooterElement, DocumentFooterFactory } from "./impl/document/doc-footer-impl";
13
- import { DocumentHeaderElement, DocumentHeaderFactory } from "./impl/document/doc-header-impl";
14
- import { DocumentElement, DocumentFactory } from "./impl/document/doc-impl";
15
- import { DataElementMHFactory } from "./impl/media-formula/menstrual-history";
16
- import { ParagraphFactory } from "./impl/paragraph/p-impl";
17
- import { PictureFactory } from "./impl/picture/image-impl";
18
- import { RadioBoxFactory } from "./impl/radio/radio-impl";
19
- import { BreakFactory } from "./impl/symbol/br-symbol-impl";
20
- import { TableCellFactory } from "./impl/table/table-cell-impl";
21
- import { TableFactory } from "./impl/table/table-impl";
22
- import { TableRowFactory } from "./impl/table/table-row-impl";
23
- import { RunElementFactory } from "./impl/text/track-run-impl";
24
- import { TextGroupFactory } from "./impl/text/text-impl";
25
- import { INotifyPropertyChanged, TrackRunProps } from "./element-props";
26
- import { DataElementGroupFactory } from "./impl/data-element/data-element-group-impl";
27
- import { DocumentBodyPartFactory } from "./impl/document/doc-body-part-impl";
28
- import { DataElementBarcodeFactory } from "./impl/data-element/data-element-barcode";
29
- export class ElementReader {
30
- docCtx;
31
- viewOptions;
32
- renderCtx;
33
- constructor(docCtx, viewOptions, renderCtx) {
34
- this.docCtx = docCtx;
35
- this.viewOptions = viewOptions;
36
- this.renderCtx = renderCtx;
37
- this.initFactory();
38
- }
39
- factories = [];
40
- addFactory(c) {
41
- const instance = new c();
42
- instance.options = this.viewOptions;
43
- this.factories.push(instance);
44
- }
45
- initFactory() {
46
- this.addFactory(DocumentFactory);
47
- this.addFactory(DocumentHeaderFactory);
48
- this.addFactory(DocumentBodyFactory);
49
- this.addFactory(ParagraphFactory);
50
- this.addFactory(TextGroupFactory);
51
- this.addFactory(CheckBoxFactory);
52
- this.addFactory(TableFactory);
53
- this.addFactory(TableRowFactory);
54
- this.addFactory(TableCellFactory);
55
- this.addFactory(DocumentFooterFactory);
56
- this.addFactory(PictureFactory);
57
- this.addFactory(RadioBoxFactory);
58
- this.addFactory(DataElementTextFactory);
59
- this.addFactory(DataElementDateFactory);
60
- this.addFactory(DataElementListFactory);
61
- this.addFactory(DataElementCheckFactory);
62
- this.addFactory(DataElementBarcodeFactory);
63
- this.addFactory(BreakFactory);
64
- this.addFactory(CommentsFactory);
65
- this.addFactory(CommentContentFactory);
66
- this.addFactory(CommentFactory);
67
- this.addFactory(DataElementImgFactory);
68
- this.addFactory(DataElementMHFactory);
69
- this.addFactory(RunElementFactory);
70
- this.addFactory(DataElementGroupFactory);
71
- this.addFactory(DocumentBodyPartFactory);
72
- this.registerReadFunc('ins-run', (data) => {
73
- const props = new TrackRunProps(data.type);
74
- props.userId = data.userId;
75
- props.userName = data.userName;
76
- props.date = data.date;
77
- return props;
78
- });
79
- this.registerReadFunc('del-run', (data) => {
80
- const props = new TrackRunProps(data.type);
81
- props.userId = data.userId;
82
- props.userName = data.userName;
83
- props.date = data.date;
84
- return props;
85
- });
86
- }
87
- read(data) {
88
- const document = data instanceof DocumentElement ? data.clone() : this.readElement(data);
89
- this.setDocument(document);
90
- }
91
- setDocument(document) {
92
- // if (this.docCtx.document) {
93
- // this.docCtx.document.destroy();
94
- // }
95
- // this.document?.clearItems();
96
- // document.docProps.clone(this.document.docProps);
97
- document.bodyElement = document.find((item) => item instanceof DocumentBodyElement);
98
- document.headerElement = document.find((item) => item instanceof DocumentHeaderElement);
99
- document.footerElement = document.find((item) => item instanceof DocumentFooterElement);
100
- document.commentsContainerElement = document.find((item) => item instanceof CommsContainerElement);
101
- if (!document.commentsContainerElement) {
102
- document.commentsContainerElement = new CommsContainerElement();
103
- }
104
- document.clearItems();
105
- document.addChild(document.headerElement);
106
- document.addChild(document.bodyElement);
107
- document.addChild(document.footerElement);
108
- document.addChild(document.commentsContainerElement);
109
- this.docCtx.document = document;
110
- document.viewOptions = this.viewOptions;
111
- const width = Math.floor(document.props.width * this.viewOptions.mmToPixelsRatio);
112
- const height = Math.floor(document.props.height * this.viewOptions.mmToPixelsRatio);
113
- this.viewOptions.docPageSettings = new PageOptions(width, height, document.props.orient);
114
- //this.viewOptions.viewSettings.width = this.viewOptions.docPageSettings.width + 10;
115
- }
116
- readElement(data) {
117
- const type = data.type;
118
- for (const factory of this.factories) {
119
- if (factory.match(type)) {
120
- const element = factory.createElement(data, this.renderCtx);
121
- //this.readExtendsProps(data, element);
122
- if (element instanceof BranchElement) {
123
- const children = data.children || [];
124
- for (const child of children) {
125
- element.addChild(this.readElement(child));
126
- }
127
- }
128
- return element;
129
- }
130
- }
131
- throw new Error('未知的元素类型:' + type);
132
- }
133
- propsReadFuncs = new Map();
134
- registerReadFunc(propName, func) {
135
- this.propsReadFuncs.set(propName, func);
136
- }
137
- readExtendsProps(data, element) {
138
- if (data.extendsProps && data.extendsProps.length) {
139
- for (const prop of data.extendsProps) {
140
- const func = this.propsReadFuncs.get(prop.name);
141
- if (func) {
142
- const extendProps = func(prop.value);
143
- if (extendProps && element.props instanceof INotifyPropertyChanged) {
144
- element.props.registerProperty(prop.name, extendProps);
145
- }
146
- }
147
- }
148
- }
149
- }
150
- }
151
- //# sourceMappingURL=element-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-reader.js","sourceRoot":"lib/","sources":["framework/element-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import { EditorContext } from \"./document-context\";\nimport { BranchElement, ElementFactory, Element, ViewOptions, PageOptions } from \"./element-define\";\nimport { CheckBoxFactory } from \"./impl/checkbox/checkbox-impl\";\nimport { CommentContentFactory } from \"./impl/comments/comment-content-impl\";\nimport { CommentFactory } from \"./impl/comments/comment-element-impl\";\nimport { CommsContainerElement, CommentsFactory } from \"./impl/comments/comments-container-impl\";\nimport { DataElementCheckFactory } from \"./impl/data-element/data-element-check-impl\";\nimport { DataElementDateFactory } from \"./impl/data-element/data-element-date-impl\";\nimport { DataElementImgFactory } from \"./impl/data-element/data-element-image-impl\";\nimport { DataElementListFactory } from \"./impl/data-element/data-element-list-impl\";\nimport { DataElementTextFactory } from \"./impl/data-element/data-element-text-impl\";\nimport { DocumentBodyElement, DocumentBodyFactory } from \"./impl/document/doc-body-impl\";\nimport { DocumentFooterElement, DocumentFooterFactory } from \"./impl/document/doc-footer-impl\";\nimport { DocumentHeaderElement, DocumentHeaderFactory } from \"./impl/document/doc-header-impl\";\nimport { DocumentElement, DocumentFactory } from \"./impl/document/doc-impl\";\nimport { DataElementMHFactory } from \"./impl/media-formula/menstrual-history\";\nimport { ParagraphFactory } from \"./impl/paragraph/p-impl\";\nimport { PictureFactory } from \"./impl/picture/image-impl\";\nimport { RadioBoxFactory } from \"./impl/radio/radio-impl\";\nimport { BreakFactory } from \"./impl/symbol/br-symbol-impl\";\nimport { TableCellFactory } from \"./impl/table/table-cell-impl\";\nimport { TableFactory } from \"./impl/table/table-impl\";\nimport { TableRowFactory } from \"./impl/table/table-row-impl\";\nimport { RunElementFactory } from \"./impl/text/track-run-impl\";\nimport { TextGroupFactory } from \"./impl/text/text-impl\";\nimport { RenderContenxtType } from \"./render-context\";\nimport { INotifyPropertyChanged, TrackRunProps } from \"./element-props\";\nimport { DataElementGroupFactory } from \"./impl/data-element/data-element-group-impl\";\nimport { DocumentBodyPartFactory } from \"./impl/document/doc-body-part-impl\";\nimport { DataElementBarcodeFactory } from \"./impl/data-element/data-element-barcode\";\n\nexport class ElementReader {\n constructor(private docCtx: EditorContext, private viewOptions: ViewOptions, private renderCtx: RenderContenxtType) {\n this.initFactory();\n }\n\n factories: Array<ElementFactory> = [];\n\n addFactory<U extends null | object, T extends ElementFactory<U>>(c: new () => T): void {\n const instance = new c();\n instance.options = this.viewOptions;\n this.factories.push(instance as ElementFactory);\n }\n\n\n private initFactory(): void {\n this.addFactory(DocumentFactory);\n this.addFactory(DocumentHeaderFactory);\n this.addFactory(DocumentBodyFactory);\n this.addFactory(ParagraphFactory);\n this.addFactory(TextGroupFactory);\n this.addFactory(CheckBoxFactory);\n this.addFactory(TableFactory);\n this.addFactory(TableRowFactory);\n this.addFactory(TableCellFactory);\n this.addFactory(DocumentFooterFactory);\n this.addFactory(PictureFactory);\n this.addFactory(RadioBoxFactory);\n this.addFactory(DataElementTextFactory);\n this.addFactory(DataElementDateFactory);\n this.addFactory(DataElementListFactory);\n this.addFactory(DataElementCheckFactory);\n this.addFactory(DataElementBarcodeFactory);\n this.addFactory(BreakFactory);\n this.addFactory(CommentsFactory)\n this.addFactory(CommentContentFactory);\n this.addFactory(CommentFactory);\n this.addFactory(DataElementImgFactory);\n this.addFactory(DataElementMHFactory);\n this.addFactory(RunElementFactory);\n this.addFactory(DataElementGroupFactory);\n this.addFactory(DocumentBodyPartFactory);\n this.registerReadFunc<TrackRunProps>('ins-run', (data) => {\n const props = new TrackRunProps(data.type);\n props.userId = data.userId;\n props.userName = data.userName;\n props.date = data.date;\n return props;\n })\n this.registerReadFunc<TrackRunProps>('del-run', (data) => {\n const props = new TrackRunProps(data.type);\n props.userId = data.userId;\n props.userName = data.userName;\n props.date = data.date;\n return props;\n })\n }\n\n read(data: any | DocumentElement): void {\n const document = data instanceof DocumentElement ? data.clone() : this.readElement(data) as DocumentElement;\n this.setDocument(document);\n }\n\n\n setDocument(document: DocumentElement): void {\n // if (this.docCtx.document) {\n // this.docCtx.document.destroy();\n // }\n // this.document?.clearItems();\n // document.docProps.clone(this.document.docProps);\n document.bodyElement = document.find((item) => item instanceof DocumentBodyElement) as DocumentBodyElement;\n document.headerElement = document.find((item) => item instanceof DocumentHeaderElement) as DocumentHeaderElement;\n document.footerElement = document.find((item) => item instanceof DocumentFooterElement) as DocumentFooterElement;\n document.commentsContainerElement = document.find((item) => item instanceof CommsContainerElement) as CommsContainerElement;\n if (!document.commentsContainerElement) {\n document.commentsContainerElement = new CommsContainerElement();\n }\n document.clearItems();\n document.addChild(document.headerElement);\n document.addChild(document.bodyElement);\n document.addChild(document.footerElement);\n document.addChild(document.commentsContainerElement);\n this.docCtx.document = document;\n document.viewOptions = this.viewOptions;\n const width = Math.floor(document.props.width * this.viewOptions.mmToPixelsRatio);\n const height = Math.floor(document.props.height * this.viewOptions.mmToPixelsRatio);\n this.viewOptions.docPageSettings = new PageOptions(width, height, document.props.orient);\n //this.viewOptions.viewSettings.width = this.viewOptions.docPageSettings.width + 10;\n }\n\n\n readElement(data: any): Element {\n const type = data.type as string;\n for (const factory of this.factories) {\n if (factory.match(type)) {\n const element = factory.createElement(data, this.renderCtx);\n //this.readExtendsProps(data, element);\n if (element instanceof BranchElement) {\n const children = data.children || [];\n for (const child of children) {\n element.addChild(this.readElement(child));\n }\n }\n return element;\n }\n }\n throw new Error('未知的元素类型:' + type);\n }\n\n propsReadFuncs: Map<string, (data: any) => any> = new Map();\n\n registerReadFunc<T>(propName: string, func: (data: T) => T): void {\n this.propsReadFuncs.set(propName, func);\n }\n\n readExtendsProps(data: any, element: Element): void {\n if (data.extendsProps && data.extendsProps.length) {\n for (const prop of data.extendsProps) {\n const func = this.propsReadFuncs.get(prop.name);\n if (func) {\n const extendProps = func(prop.value);\n if (extendProps && element.props instanceof INotifyPropertyChanged) {\n element.props.registerProperty(prop.name, extendProps);\n }\n }\n }\n }\n }\n}\n"]}