@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.
- package/lib/doc-ruler.d.ts +1 -0
- package/lib/doc-ruler.d.ts.map +1 -0
- package/lib/framework/common-util.d.ts +1 -0
- package/lib/framework/common-util.d.ts.map +1 -0
- package/lib/framework/document-change.d.ts +1 -0
- package/lib/framework/document-change.d.ts.map +1 -0
- package/lib/framework/document-combine.d.ts +1 -0
- package/lib/framework/document-combine.d.ts.map +1 -0
- package/lib/framework/document-comment.d.ts +1 -0
- package/lib/framework/document-comment.d.ts.map +1 -0
- package/lib/framework/document-context.d.ts +1 -0
- package/lib/framework/document-context.d.ts.map +1 -0
- package/lib/framework/document-eval-func.d.ts +1 -0
- package/lib/framework/document-eval-func.d.ts.map +1 -0
- package/lib/framework/document-event.d.ts +1 -0
- package/lib/framework/document-event.d.ts.map +1 -0
- package/lib/framework/document-history.d.ts +1 -0
- package/lib/framework/document-history.d.ts.map +1 -0
- package/lib/framework/document-images-loader.d.ts +1 -0
- package/lib/framework/document-images-loader.d.ts.map +1 -0
- package/lib/framework/document-input-cursor.d.ts +1 -0
- package/lib/framework/document-input-cursor.d.ts.map +1 -0
- package/lib/framework/document-paint.d.ts +1 -0
- package/lib/framework/document-paint.d.ts.map +1 -0
- package/lib/framework/document-print-offscreen.d.ts +1 -0
- package/lib/framework/document-print-offscreen.d.ts.map +1 -0
- package/lib/framework/document-print.d.ts +1 -0
- package/lib/framework/document-print.d.ts.map +1 -0
- package/lib/framework/document-segmenter.d.ts +1 -0
- package/lib/framework/document-segmenter.d.ts.map +1 -0
- package/lib/framework/document-selection.d.ts +1 -0
- package/lib/framework/document-selection.d.ts.map +1 -0
- package/lib/framework/document-template.d.ts +1 -0
- package/lib/framework/document-template.d.ts.map +1 -0
- package/lib/framework/document-textline-mode.d.ts +1 -0
- package/lib/framework/document-textline-mode.d.ts.map +1 -0
- package/lib/framework/element-define.d.ts +1 -0
- package/lib/framework/element-define.d.ts.map +1 -0
- package/lib/framework/element-event-define.d.ts +1 -0
- package/lib/framework/element-event-define.d.ts.map +1 -0
- package/lib/framework/element-measure.d.ts +1 -0
- package/lib/framework/element-measure.d.ts.map +1 -0
- package/lib/framework/element-paint.d.ts +1 -0
- package/lib/framework/element-paint.d.ts.map +1 -0
- package/lib/framework/element-props.d.ts +2 -1
- package/lib/framework/element-props.d.ts.map +1 -0
- package/lib/framework/element-reader.d.ts +1 -0
- package/lib/framework/element-reader.d.ts.map +1 -0
- package/lib/framework/element-render-cut.d.ts +1 -0
- package/lib/framework/element-render-cut.d.ts.map +1 -0
- package/lib/framework/element-serialize.d.ts +1 -0
- package/lib/framework/element-serialize.d.ts.map +1 -0
- package/lib/framework/element-util.d.ts +1 -0
- package/lib/framework/element-util.d.ts.map +1 -0
- package/lib/framework/impl/checkbox/checkbox-impl.d.ts +1 -0
- package/lib/framework/impl/checkbox/checkbox-impl.d.ts.map +1 -0
- package/lib/framework/impl/comments/comment-content-impl.d.ts +1 -0
- package/lib/framework/impl/comments/comment-content-impl.d.ts.map +1 -0
- package/lib/framework/impl/comments/comment-element-impl.d.ts +1 -0
- package/lib/framework/impl/comments/comment-element-impl.d.ts.map +1 -0
- package/lib/framework/impl/comments/comments-container-impl.d.ts +1 -0
- package/lib/framework/impl/comments/comments-container-impl.d.ts.map +1 -0
- package/lib/framework/impl/comments/comments-util.d.ts +1 -0
- package/lib/framework/impl/comments/comments-util.d.ts.map +1 -0
- package/lib/framework/impl/comments/validate-msg-impl.d.ts +1 -0
- package/lib/framework/impl/comments/validate-msg-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-decorate-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-decorate-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-barcode.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-barcode.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-base-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-base-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-check-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-check-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-date-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-date-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-group-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-group-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-image-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-image-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-list-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-list-impl.d.ts.map +1 -0
- package/lib/framework/impl/data-element/data-element-text-impl.d.ts +1 -0
- package/lib/framework/impl/data-element/data-element-text-impl.d.ts.map +1 -0
- package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +1 -0
- package/lib/framework/impl/decorate/fill-null-space-imple.d.ts.map +1 -0
- package/lib/framework/impl/document/doc-body-impl.d.ts +1 -0
- package/lib/framework/impl/document/doc-body-impl.d.ts.map +1 -0
- package/lib/framework/impl/document/doc-body-part-impl.d.ts +1 -0
- package/lib/framework/impl/document/doc-body-part-impl.d.ts.map +1 -0
- package/lib/framework/impl/document/doc-container-impl.d.ts +1 -0
- package/lib/framework/impl/document/doc-container-impl.d.ts.map +1 -0
- package/lib/framework/impl/document/doc-footer-impl.d.ts +1 -0
- package/lib/framework/impl/document/doc-footer-impl.d.ts.map +1 -0
- package/lib/framework/impl/document/doc-header-impl.d.ts +1 -0
- package/lib/framework/impl/document/doc-header-impl.d.ts.map +1 -0
- package/lib/framework/impl/document/doc-impl.d.ts +1 -0
- package/lib/framework/impl/document/doc-impl.d.ts.map +1 -0
- package/lib/framework/impl/index.d.ts +37 -0
- package/lib/framework/impl/index.d.ts.map +1 -0
- package/lib/framework/impl/media-formula/menstrual-history.d.ts +1 -0
- package/lib/framework/impl/media-formula/menstrual-history.d.ts.map +1 -0
- package/lib/framework/impl/paragraph/p-impl.d.ts +1 -0
- package/lib/framework/impl/paragraph/p-impl.d.ts.map +1 -0
- package/lib/framework/impl/picture/image-impl.d.ts +1 -0
- package/lib/framework/impl/picture/image-impl.d.ts.map +1 -0
- package/lib/framework/impl/radio/radio-impl.d.ts +1 -0
- package/lib/framework/impl/radio/radio-impl.d.ts.map +1 -0
- package/lib/framework/impl/symbol/br-symbol-impl.d.ts +1 -0
- package/lib/framework/impl/symbol/br-symbol-impl.d.ts.map +1 -0
- package/lib/framework/impl/symbol/p-symbol-impl.d.ts +1 -0
- package/lib/framework/impl/symbol/p-symbol-impl.d.ts.map +1 -0
- package/lib/framework/impl/table/table-cell-impl.d.ts +1 -0
- package/lib/framework/impl/table/table-cell-impl.d.ts.map +1 -0
- package/lib/framework/impl/table/table-impl.d.ts +1 -0
- package/lib/framework/impl/table/table-impl.d.ts.map +1 -0
- package/lib/framework/impl/table/table-row-impl.d.ts +1 -0
- package/lib/framework/impl/table/table-row-impl.d.ts.map +1 -0
- package/lib/framework/impl/table/table-split-cell-patch.d.ts +1 -0
- package/lib/framework/impl/table/table-split-cell-patch.d.ts.map +1 -0
- package/lib/framework/impl/table/table-split-cell.d.ts +1 -0
- package/lib/framework/impl/table/table-split-cell.d.ts.map +1 -0
- package/lib/framework/impl/table/table-util.d.ts +1 -0
- package/lib/framework/impl/table/table-util.d.ts.map +1 -0
- package/lib/framework/impl/text/text-impl.d.ts +1 -0
- package/lib/framework/impl/text/text-impl.d.ts.map +1 -0
- package/lib/framework/impl/text/track-run-impl.d.ts +1 -0
- package/lib/framework/impl/text/track-run-impl.d.ts.map +1 -0
- package/lib/framework/notify.d.ts +1 -0
- package/lib/framework/notify.d.ts.map +1 -0
- package/lib/framework/range-util.d.ts +1 -0
- package/lib/framework/range-util.d.ts.map +1 -0
- package/lib/framework/render-context.d.ts +1 -0
- package/lib/framework/render-context.d.ts.map +1 -0
- package/lib/framework/render-define.d.ts +1 -0
- package/lib/framework/render-define.d.ts.map +1 -0
- package/lib/framework/selection-overlays.d.ts +1 -0
- package/lib/framework/selection-overlays.d.ts.map +1 -0
- package/lib/index.d.ts +35 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +15671 -0
- package/lib/texteditor.d.ts +3 -2
- package/lib/texteditor.d.ts.map +1 -0
- package/lib/util/subject.d.ts +1 -0
- package/lib/util/subject.d.ts.map +1 -0
- package/lib/util/table-bind.d.ts +1 -0
- package/lib/util/table-bind.d.ts.map +1 -0
- package/package.json +32 -23
- package/README.md +0 -1613
- package/lib/doc-ruler.js +0 -313
- package/lib/doc-ruler.js.map +0 -1
- package/lib/framework/common-util.js +0 -178
- package/lib/framework/common-util.js.map +0 -1
- package/lib/framework/document-change.js +0 -1342
- package/lib/framework/document-change.js.map +0 -1
- package/lib/framework/document-combine.js +0 -40
- package/lib/framework/document-combine.js.map +0 -1
- package/lib/framework/document-comment.js +0 -148
- package/lib/framework/document-comment.js.map +0 -1
- package/lib/framework/document-context.js +0 -330
- package/lib/framework/document-context.js.map +0 -1
- package/lib/framework/document-eval-func.js +0 -48
- package/lib/framework/document-eval-func.js.map +0 -1
- package/lib/framework/document-event.js +0 -1054
- package/lib/framework/document-event.js.map +0 -1
- package/lib/framework/document-history.js +0 -65
- package/lib/framework/document-history.js.map +0 -1
- package/lib/framework/document-images-loader.js +0 -66
- package/lib/framework/document-images-loader.js.map +0 -1
- package/lib/framework/document-input-cursor.js +0 -239
- package/lib/framework/document-input-cursor.js.map +0 -1
- package/lib/framework/document-paint.js +0 -103
- package/lib/framework/document-paint.js.map +0 -1
- package/lib/framework/document-print-offscreen.js +0 -128
- package/lib/framework/document-print-offscreen.js.map +0 -1
- package/lib/framework/document-print.js +0 -203
- package/lib/framework/document-print.js.map +0 -1
- package/lib/framework/document-segmenter.js +0 -106
- package/lib/framework/document-segmenter.js.map +0 -1
- package/lib/framework/document-selection.js +0 -358
- package/lib/framework/document-selection.js.map +0 -1
- package/lib/framework/document-template.js +0 -20
- package/lib/framework/document-template.js.map +0 -1
- package/lib/framework/document-textline-mode.js +0 -30
- package/lib/framework/document-textline-mode.js.map +0 -1
- package/lib/framework/element-define.js +0 -579
- package/lib/framework/element-define.js.map +0 -1
- package/lib/framework/element-event-define.js +0 -108
- package/lib/framework/element-event-define.js.map +0 -1
- package/lib/framework/element-measure.js +0 -551
- package/lib/framework/element-measure.js.map +0 -1
- package/lib/framework/element-paint.js +0 -170
- package/lib/framework/element-paint.js.map +0 -1
- package/lib/framework/element-props.js +0 -809
- package/lib/framework/element-props.js.map +0 -1
- package/lib/framework/element-reader.js +0 -151
- package/lib/framework/element-reader.js.map +0 -1
- package/lib/framework/element-render-cut.js +0 -449
- package/lib/framework/element-render-cut.js.map +0 -1
- package/lib/framework/element-serialize.js +0 -113
- package/lib/framework/element-serialize.js.map +0 -1
- package/lib/framework/element-util.js +0 -1463
- package/lib/framework/element-util.js.map +0 -1
- package/lib/framework/impl/checkbox/checkbox-impl.js +0 -64
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-content-impl.js +0 -105
- package/lib/framework/impl/comments/comment-content-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-element-impl.js +0 -62
- package/lib/framework/impl/comments/comment-element-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-container-impl.js +0 -62
- package/lib/framework/impl/comments/comments-container-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-util.js +0 -67
- package/lib/framework/impl/comments/comments-util.js.map +0 -1
- package/lib/framework/impl/comments/validate-msg-impl.js +0 -83
- package/lib/framework/impl/comments/validate-msg-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-decorate-impl.js +0 -91
- package/lib/framework/impl/data-element/data-decorate-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-barcode.js +0 -115
- package/lib/framework/impl/data-element/data-element-barcode.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-base-impl.js +0 -205
- package/lib/framework/impl/data-element/data-element-base-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-check-impl.js +0 -133
- package/lib/framework/impl/data-element/data-element-check-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-date-impl.js +0 -111
- package/lib/framework/impl/data-element/data-element-date-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-group-impl.js +0 -130
- package/lib/framework/impl/data-element/data-element-group-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-image-impl.js +0 -137
- package/lib/framework/impl/data-element/data-element-image-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-list-impl.js +0 -131
- package/lib/framework/impl/data-element/data-element-list-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-text-impl.js +0 -103
- package/lib/framework/impl/data-element/data-element-text-impl.js.map +0 -1
- package/lib/framework/impl/decorate/fill-null-space-imple.js +0 -43
- package/lib/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
- package/lib/framework/impl/document/doc-body-impl.js +0 -79
- package/lib/framework/impl/document/doc-body-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-body-part-impl.js +0 -94
- package/lib/framework/impl/document/doc-body-part-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-container-impl.js +0 -21
- package/lib/framework/impl/document/doc-container-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-footer-impl.js +0 -77
- package/lib/framework/impl/document/doc-footer-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-header-impl.js +0 -83
- package/lib/framework/impl/document/doc-header-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-impl.js +0 -209
- package/lib/framework/impl/document/doc-impl.js.map +0 -1
- package/lib/framework/impl/media-formula/menstrual-history.js +0 -153
- package/lib/framework/impl/media-formula/menstrual-history.js.map +0 -1
- package/lib/framework/impl/paragraph/p-impl.js +0 -156
- package/lib/framework/impl/paragraph/p-impl.js.map +0 -1
- package/lib/framework/impl/picture/image-impl.js +0 -124
- package/lib/framework/impl/picture/image-impl.js.map +0 -1
- package/lib/framework/impl/radio/radio-impl.js +0 -72
- package/lib/framework/impl/radio/radio-impl.js.map +0 -1
- package/lib/framework/impl/symbol/br-symbol-impl.js +0 -54
- package/lib/framework/impl/symbol/br-symbol-impl.js.map +0 -1
- package/lib/framework/impl/symbol/p-symbol-impl.js +0 -54
- package/lib/framework/impl/symbol/p-symbol-impl.js.map +0 -1
- package/lib/framework/impl/table/table-cell-impl.js +0 -145
- package/lib/framework/impl/table/table-cell-impl.js.map +0 -1
- package/lib/framework/impl/table/table-impl.js +0 -363
- package/lib/framework/impl/table/table-impl.js.map +0 -1
- package/lib/framework/impl/table/table-row-impl.js +0 -75
- package/lib/framework/impl/table/table-row-impl.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell-patch.js +0 -89
- package/lib/framework/impl/table/table-split-cell-patch.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell.js +0 -464
- package/lib/framework/impl/table/table-split-cell.js.map +0 -1
- package/lib/framework/impl/table/table-util.js +0 -678
- package/lib/framework/impl/table/table-util.js.map +0 -1
- package/lib/framework/impl/text/text-impl.js +0 -149
- package/lib/framework/impl/text/text-impl.js.map +0 -1
- package/lib/framework/impl/text/track-run-impl.js +0 -112
- package/lib/framework/impl/text/track-run-impl.js.map +0 -1
- package/lib/framework/notify.js +0 -116
- package/lib/framework/notify.js.map +0 -1
- package/lib/framework/range-util.js +0 -312
- package/lib/framework/range-util.js.map +0 -1
- package/lib/framework/render-context.js +0 -384
- package/lib/framework/render-context.js.map +0 -1
- package/lib/framework/render-define.js +0 -195
- package/lib/framework/render-define.js.map +0 -1
- package/lib/framework/selection-overlays.js +0 -124
- package/lib/framework/selection-overlays.js.map +0 -1
- package/lib/texteditor.js +0 -913
- package/lib/texteditor.js.map +0 -1
- package/lib/util/subject.js +0 -88
- package/lib/util/subject.js.map +0 -1
- package/lib/util/table-bind.js +0 -6
- 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"]}
|