@hailin-zheng/editor-core 1.0.7 → 1.0.10
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/package.json +3 -4
- package/{lib/doc-ruler.js → src/med_editor/doc-ruler.ts} +101 -74
- package/src/med_editor/framework/common-util.ts +200 -0
- package/{lib/framework/document-change.js → src/med_editor/framework/document-change.ts} +308 -259
- package/{lib/framework/document-combine.js → src/med_editor/framework/document-combine.ts} +15 -11
- package/{lib/framework/document-comment.js → src/med_editor/framework/document-comment.ts} +52 -37
- package/{lib/framework/document-context.js → src/med_editor/framework/document-context.ts} +181 -101
- package/{lib/framework/document-eval-func.js → src/med_editor/framework/document-eval-func.ts} +16 -11
- package/{lib/framework/document-event.js → src/med_editor/framework/document-event.ts} +244 -216
- package/{lib/framework/document-history.js → src/med_editor/framework/document-history.ts} +25 -14
- package/{lib/framework/document-images-loader.js → src/med_editor/framework/document-images-loader.ts} +25 -17
- package/{lib/framework/document-input-cursor.js → src/med_editor/framework/document-input-cursor.ts} +76 -71
- package/{lib/framework/document-paint.js → src/med_editor/framework/document-paint.ts} +35 -28
- package/{lib/framework/document-print-offscreen.js → src/med_editor/framework/document-print-offscreen.ts} +25 -19
- package/{lib/framework/document-print.js → src/med_editor/framework/document-print.ts} +57 -41
- package/src/med_editor/framework/document-segmenter.ts +211 -0
- package/{lib/framework/document-selection.js → src/med_editor/framework/document-selection.ts} +116 -85
- package/{lib/framework/document-template.js → src/med_editor/framework/document-template.ts} +3 -3
- package/src/med_editor/framework/document-textline-mode.ts +34 -0
- package/{lib/framework/element-define.js → src/med_editor/framework/element-define.ts} +301 -206
- package/src/med_editor/framework/element-event-define.ts +141 -0
- package/{lib/framework/element-measure.js → src/med_editor/framework/element-measure.ts} +143 -121
- package/{lib/framework/element-paint.js → src/med_editor/framework/element-paint.ts} +44 -38
- package/{lib/framework/element-props.js → src/med_editor/framework/element-props.ts} +331 -202
- package/{lib/framework/element-reader.js → src/med_editor/framework/element-reader.ts} +39 -31
- package/{lib/framework/element-render-cut.js → src/med_editor/framework/element-render-cut.ts} +113 -106
- package/{lib/framework/element-serialize.js → src/med_editor/framework/element-serialize.ts} +37 -24
- package/{lib/framework/element-util.js → src/med_editor/framework/element-util.ts} +317 -216
- package/{lib/framework/impl/checkbox/checkbox-impl.js → src/med_editor/framework/impl/checkbox/checkbox-impl.ts} +27 -20
- package/{lib/framework/impl/comments/comment-content-impl.js → src/med_editor/framework/impl/comments/comment-content-impl.ts} +45 -31
- package/{lib/framework/impl/comments/comment-element-impl.js → src/med_editor/framework/impl/comments/comment-element-impl.ts} +23 -20
- package/{lib/framework/impl/comments/comments-container-impl.js → src/med_editor/framework/impl/comments/comments-container-impl.ts} +22 -16
- package/{lib/framework/impl/comments/comments-util.js → src/med_editor/framework/impl/comments/comments-util.ts} +34 -17
- package/{lib/framework/impl/comments/validate-msg-impl.js → src/med_editor/framework/impl/comments/validate-msg-impl.ts} +28 -17
- package/{lib/framework/impl/data-element/data-decorate-impl.js → src/med_editor/framework/impl/data-element/data-decorate-impl.ts} +26 -22
- package/{lib/framework/impl/data-element/data-element-barcode.js → src/med_editor/framework/impl/data-element/data-element-barcode.ts} +41 -29
- package/{lib/framework/impl/data-element/data-element-base-impl.js → src/med_editor/framework/impl/data-element/data-element-base-impl.ts} +73 -44
- package/{lib/framework/impl/data-element/data-element-check-impl.js → src/med_editor/framework/impl/data-element/data-element-check-impl.ts} +48 -35
- package/{lib/framework/impl/data-element/data-element-date-impl.js → src/med_editor/framework/impl/data-element/data-element-date-impl.ts} +41 -24
- package/{lib/framework/impl/data-element/data-element-group-impl.js → src/med_editor/framework/impl/data-element/data-element-group-impl.ts} +52 -32
- package/{lib/framework/impl/data-element/data-element-image-impl.js → src/med_editor/framework/impl/data-element/data-element-image-impl.ts} +38 -28
- package/{lib/framework/impl/data-element/data-element-list-impl.js → src/med_editor/framework/impl/data-element/data-element-list-impl.ts} +42 -31
- package/{lib/framework/impl/data-element/data-element-text-impl.js → src/med_editor/framework/impl/data-element/data-element-text-impl.ts} +36 -22
- package/{lib/framework/impl/decorate/fill-null-space-imple.js → src/med_editor/framework/impl/decorate/fill-null-space-imple.ts} +15 -10
- package/{lib/framework/impl/document/doc-body-impl.js → src/med_editor/framework/impl/document/doc-body-impl.ts} +32 -16
- package/{lib/framework/impl/document/doc-body-part-impl.js → src/med_editor/framework/impl/document/doc-body-part-impl.ts} +27 -17
- package/src/med_editor/framework/impl/document/doc-container-impl.ts +24 -0
- package/{lib/framework/impl/document/doc-footer-impl.js → src/med_editor/framework/impl/document/doc-footer-impl.ts} +30 -19
- package/{lib/framework/impl/document/doc-header-impl.js → src/med_editor/framework/impl/document/doc-header-impl.ts} +34 -17
- package/{lib/framework/impl/document/doc-impl.js → src/med_editor/framework/impl/document/doc-impl.ts} +62 -45
- package/{lib/framework/impl/media-formula/menstrual-history.js → src/med_editor/framework/impl/media-formula/menstrual-history.ts} +58 -36
- package/{lib/framework/impl/paragraph/p-impl.js → src/med_editor/framework/impl/paragraph/p-impl.ts} +64 -30
- package/{lib/framework/impl/picture/image-impl.js → src/med_editor/framework/impl/picture/image-impl.ts} +37 -25
- package/{lib/framework/impl/radio/radio-impl.js → src/med_editor/framework/impl/radio/radio-impl.ts} +28 -21
- package/{lib/framework/impl/symbol/br-symbol-impl.js → src/med_editor/framework/impl/symbol/br-symbol-impl.ts} +21 -15
- package/{lib/framework/impl/symbol/p-symbol-impl.js → src/med_editor/framework/impl/symbol/p-symbol-impl.ts} +15 -12
- package/{lib/framework/impl/table/table-cell-impl.js → src/med_editor/framework/impl/table/table-cell-impl.ts} +41 -30
- package/{lib/framework/impl/table/table-impl.js → src/med_editor/framework/impl/table/table-impl.ts} +122 -84
- package/{lib/framework/impl/table/table-row-impl.js → src/med_editor/framework/impl/table/table-row-impl.ts} +26 -18
- package/{lib/framework/impl/table/table-split-cell-patch.js → src/med_editor/framework/impl/table/table-split-cell-patch.ts} +31 -22
- package/{lib/framework/impl/table/table-split-cell.js → src/med_editor/framework/impl/table/table-split-cell.ts} +105 -94
- package/{lib/framework/impl/table/table-util.js → src/med_editor/framework/impl/table/table-util.ts} +197 -159
- package/{lib/framework/impl/text/text-impl.js → src/med_editor/framework/impl/text/text-impl.ts} +49 -35
- package/{lib/framework/impl/text/track-run-impl.js → src/med_editor/framework/impl/text/track-run-impl.ts} +53 -30
- package/{lib/framework/notify.js → src/med_editor/framework/notify.ts} +50 -36
- package/{lib/framework/range-util.js → src/med_editor/framework/range-util.ts} +80 -71
- package/{lib/framework/render-context.js → src/med_editor/framework/render-context.ts} +111 -64
- package/{lib/framework/render-define.js → src/med_editor/framework/render-define.ts} +90 -61
- package/{lib/framework/selection-overlays.js → src/med_editor/framework/selection-overlays.ts} +25 -16
- package/{lib/texteditor.js → src/med_editor/texteditor.ts} +288 -191
- package/src/med_editor/util/subject.ts +118 -0
- package/{lib/util/table-bind.js → src/med_editor/util/table-bind.ts} +2 -2
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225.json +3573 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225.json +3573 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225bug.json +315 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/211/271/346/263/250.json +122 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/226/207/346/241/243/351/252/214/350/257/201.json +3599 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/351/225/277/346/226/207/346/234/254.json +24586 -0
- package/src/med_editor//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225.json +2874 -0
- package/src/med_editor//346/211/213/346/234/257/350/256/260/345/275/225.json +341 -0
- package/src/med_editor//346/231/256/351/200/232doc/347/261/273/346/226/207/346/241/243.json +2201 -0
- package/src/med_editor//346/243/200/351/252/214/347/224/263/350/257/267/345/215/225.json +1069 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//345/206/205/351/225/234/344/270/213/346/262/273/347/226/227/350/256/260/345/275/225.json +125 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225/346/250/241/346/235/277.json +86 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//346/227/245/345/270/270/347/227/205/347/250/213/350/256/260/345/275/225.json +115 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//346/237/245/346/210/277/350/256/260/345/275/2251.json +108 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//351/246/226/346/254/241/344/270/212/347/272/247/345/214/273/345/270/210/346/237/245/346/210/277/350/256/260/345/275/225.json +272 -0
- package/src/med_editor//351/225/277/346/234/237/345/214/273/345/230/261/345/215/225.json +1070 -0
- package/lib/doc-ruler.d.ts +0 -51
- package/lib/doc-ruler.js.map +0 -1
- package/lib/framework/common-util.d.ts +0 -63
- package/lib/framework/common-util.js +0 -178
- package/lib/framework/common-util.js.map +0 -1
- package/lib/framework/document-change.d.ts +0 -265
- package/lib/framework/document-change.js.map +0 -1
- package/lib/framework/document-combine.d.ts +0 -24
- package/lib/framework/document-combine.js.map +0 -1
- package/lib/framework/document-comment.d.ts +0 -46
- package/lib/framework/document-comment.js.map +0 -1
- package/lib/framework/document-context.d.ts +0 -149
- package/lib/framework/document-context.js.map +0 -1
- package/lib/framework/document-eval-func.d.ts +0 -18
- package/lib/framework/document-eval-func.js.map +0 -1
- package/lib/framework/document-event.d.ts +0 -213
- package/lib/framework/document-event.js.map +0 -1
- package/lib/framework/document-history.d.ts +0 -26
- package/lib/framework/document-history.js.map +0 -1
- package/lib/framework/document-images-loader.d.ts +0 -16
- package/lib/framework/document-images-loader.js.map +0 -1
- package/lib/framework/document-input-cursor.d.ts +0 -78
- package/lib/framework/document-input-cursor.js.map +0 -1
- package/lib/framework/document-paint.d.ts +0 -34
- package/lib/framework/document-paint.js.map +0 -1
- package/lib/framework/document-print-offscreen.d.ts +0 -38
- package/lib/framework/document-print-offscreen.js.map +0 -1
- package/lib/framework/document-print.d.ts +0 -60
- package/lib/framework/document-print.js.map +0 -1
- package/lib/framework/document-segmenter.d.ts +0 -2
- package/lib/framework/document-segmenter.js +0 -106
- package/lib/framework/document-segmenter.js.map +0 -1
- package/lib/framework/document-selection.d.ts +0 -89
- package/lib/framework/document-selection.js.map +0 -1
- package/lib/framework/document-template.d.ts +0 -4
- package/lib/framework/document-template.js.map +0 -1
- package/lib/framework/document-textline-mode.d.ts +0 -7
- package/lib/framework/document-textline-mode.js +0 -30
- package/lib/framework/document-textline-mode.js.map +0 -1
- package/lib/framework/element-define.d.ts +0 -319
- package/lib/framework/element-define.js.map +0 -1
- package/lib/framework/element-event-define.d.ts +0 -99
- package/lib/framework/element-event-define.js +0 -108
- package/lib/framework/element-event-define.js.map +0 -1
- package/lib/framework/element-measure.d.ts +0 -97
- package/lib/framework/element-measure.js.map +0 -1
- package/lib/framework/element-paint.d.ts +0 -42
- package/lib/framework/element-paint.js.map +0 -1
- package/lib/framework/element-props.d.ts +0 -301
- package/lib/framework/element-props.js.map +0 -1
- package/lib/framework/element-reader.d.ts +0 -19
- package/lib/framework/element-reader.js.map +0 -1
- package/lib/framework/element-render-cut.d.ts +0 -55
- package/lib/framework/element-render-cut.js.map +0 -1
- package/lib/framework/element-serialize.d.ts +0 -30
- package/lib/framework/element-serialize.js.map +0 -1
- package/lib/framework/element-util.d.ts +0 -369
- package/lib/framework/element-util.js.map +0 -1
- package/lib/framework/impl/checkbox/checkbox-impl.d.ts +0 -24
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-content-impl.d.ts +0 -40
- package/lib/framework/impl/comments/comment-content-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-element-impl.d.ts +0 -21
- package/lib/framework/impl/comments/comment-element-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-container-impl.d.ts +0 -22
- package/lib/framework/impl/comments/comments-container-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-util.d.ts +0 -12
- package/lib/framework/impl/comments/comments-util.js.map +0 -1
- package/lib/framework/impl/comments/validate-msg-impl.d.ts +0 -21
- package/lib/framework/impl/comments/validate-msg-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-decorate-impl.d.ts +0 -30
- package/lib/framework/impl/data-element/data-decorate-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-barcode.d.ts +0 -31
- package/lib/framework/impl/data-element/data-element-barcode.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-base-impl.d.ts +0 -68
- package/lib/framework/impl/data-element/data-element-base-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-check-impl.d.ts +0 -35
- package/lib/framework/impl/data-element/data-element-check-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-date-impl.d.ts +0 -23
- package/lib/framework/impl/data-element/data-element-date-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-group-impl.d.ts +0 -23
- package/lib/framework/impl/data-element/data-element-group-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-image-impl.d.ts +0 -30
- package/lib/framework/impl/data-element/data-element-image-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-list-impl.d.ts +0 -22
- package/lib/framework/impl/data-element/data-element-list-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-text-impl.d.ts +0 -23
- package/lib/framework/impl/data-element/data-element-text-impl.js.map +0 -1
- package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +0 -21
- package/lib/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
- package/lib/framework/impl/document/doc-body-impl.d.ts +0 -27
- package/lib/framework/impl/document/doc-body-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-body-part-impl.d.ts +0 -30
- package/lib/framework/impl/document/doc-body-part-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-container-impl.d.ts +0 -16
- 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.d.ts +0 -26
- package/lib/framework/impl/document/doc-footer-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-header-impl.d.ts +0 -26
- package/lib/framework/impl/document/doc-header-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-impl.d.ts +0 -61
- package/lib/framework/impl/document/doc-impl.js.map +0 -1
- package/lib/framework/impl/media-formula/menstrual-history.d.ts +0 -35
- package/lib/framework/impl/media-formula/menstrual-history.js.map +0 -1
- package/lib/framework/impl/paragraph/p-impl.d.ts +0 -45
- package/lib/framework/impl/paragraph/p-impl.js.map +0 -1
- package/lib/framework/impl/picture/image-impl.d.ts +0 -31
- package/lib/framework/impl/picture/image-impl.js.map +0 -1
- package/lib/framework/impl/radio/radio-impl.d.ts +0 -22
- package/lib/framework/impl/radio/radio-impl.js.map +0 -1
- package/lib/framework/impl/symbol/br-symbol-impl.d.ts +0 -22
- package/lib/framework/impl/symbol/br-symbol-impl.js.map +0 -1
- package/lib/framework/impl/symbol/p-symbol-impl.d.ts +0 -19
- package/lib/framework/impl/symbol/p-symbol-impl.js.map +0 -1
- package/lib/framework/impl/table/table-cell-impl.d.ts +0 -37
- package/lib/framework/impl/table/table-cell-impl.js.map +0 -1
- package/lib/framework/impl/table/table-impl.d.ts +0 -55
- package/lib/framework/impl/table/table-impl.js.map +0 -1
- package/lib/framework/impl/table/table-row-impl.d.ts +0 -26
- package/lib/framework/impl/table/table-row-impl.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell-patch.d.ts +0 -20
- package/lib/framework/impl/table/table-split-cell-patch.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell.d.ts +0 -90
- package/lib/framework/impl/table/table-split-cell.js.map +0 -1
- package/lib/framework/impl/table/table-util.d.ts +0 -150
- package/lib/framework/impl/table/table-util.js.map +0 -1
- package/lib/framework/impl/text/text-impl.d.ts +0 -32
- package/lib/framework/impl/text/text-impl.js.map +0 -1
- package/lib/framework/impl/text/track-run-impl.d.ts +0 -27
- package/lib/framework/impl/text/track-run-impl.js.map +0 -1
- package/lib/framework/notify.d.ts +0 -13
- package/lib/framework/notify.js.map +0 -1
- package/lib/framework/range-util.d.ts +0 -40
- package/lib/framework/range-util.js.map +0 -1
- package/lib/framework/render-context.d.ts +0 -91
- package/lib/framework/render-context.js.map +0 -1
- package/lib/framework/render-define.d.ts +0 -109
- package/lib/framework/render-define.js.map +0 -1
- package/lib/framework/selection-overlays.d.ts +0 -30
- package/lib/framework/selection-overlays.js.map +0 -1
- package/lib/texteditor.d.ts +0 -318
- package/lib/texteditor.js.map +0 -1
- package/lib/util/subject.d.ts +0 -34
- package/lib/util/subject.js +0 -88
- package/lib/util/subject.js.map +0 -1
- package/lib/util/table-bind.d.ts +0 -5
- package/lib/util/table-bind.js.map +0 -1
- package/tsconfig.json +0 -25
@@ -1,138 +1,167 @@
|
|
1
|
-
import { Subject } from "rxjs";
|
2
|
-
import { EventMap } from "./element-event-define";
|
1
|
+
import { Subject, Subscription } from "rxjs";
|
2
|
+
import { ElementEvent, EventMap, EventTypes } from "./element-event-define";
|
3
3
|
import { watchChanged } from "./notify";
|
4
|
-
import {
|
4
|
+
import { RenderContenxtType } from "./render-context";
|
5
|
+
import { CursorType, LeafRenderObject, RenderObject } from "./render-define";
|
6
|
+
|
5
7
|
export class Rect {
|
6
8
|
x = 0;
|
7
9
|
y = 0;
|
8
10
|
width = 0;
|
9
11
|
height = 0;
|
10
|
-
maxHeight = 0;
|
11
|
-
maxWidth = 0;
|
12
|
+
maxHeight: number = 0;
|
13
|
+
maxWidth: number = 0;
|
12
14
|
}
|
15
|
+
|
16
|
+
export interface SerializeProps {
|
17
|
+
type: string,
|
18
|
+
props?: any,
|
19
|
+
children?: Array<SerializeProps>;
|
20
|
+
complete?: boolean;
|
21
|
+
}
|
22
|
+
|
23
|
+
/**
|
24
|
+
* 刷新类型
|
25
|
+
* 刷新外观,不需要进行测量,直接进入绘制
|
26
|
+
* 刷新内容,需要重新测量,再绘制
|
27
|
+
*/
|
28
|
+
export type RefreshType = 'appearance' | 'content';
|
29
|
+
|
13
30
|
/**
|
14
31
|
* 修改标志
|
15
32
|
*/
|
16
|
-
export
|
17
|
-
(function (ModifyFlag) {
|
33
|
+
export enum ModifyFlag {
|
18
34
|
//被修改
|
19
|
-
|
35
|
+
Modify = 0,
|
20
36
|
//无修改
|
21
|
-
|
37
|
+
None = 1,
|
22
38
|
//子项被修改
|
23
|
-
|
24
|
-
}
|
39
|
+
Track = 2
|
40
|
+
}
|
41
|
+
|
42
|
+
export interface OnChangeEventProps {
|
43
|
+
data: any
|
44
|
+
}
|
25
45
|
/**
|
26
46
|
* 定义组件的数据,配置
|
27
47
|
*/
|
28
|
-
export class Element {
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
isFocused;
|
48
|
+
export abstract class Element<P extends object = any> {
|
49
|
+
modifyFlag: ModifyFlag = ModifyFlag.Modify;
|
50
|
+
isMouseenter!: boolean;
|
51
|
+
private _eventMap: EventMap | null;
|
52
|
+
private _refreshEvent: Subject<void> = new Subject();
|
53
|
+
protected _onChangeEvent: Subject<void> = new Subject();
|
54
|
+
private observers: WeakMap<Element, Array<Subscription>> = new WeakMap();
|
55
|
+
paintRenders: Array<RenderObject> = [];
|
56
|
+
measureRender!: RenderObject | null;
|
57
|
+
focusable!: boolean;
|
58
|
+
isFocused!: boolean;
|
40
59
|
/**
|
41
60
|
* 修饰元素不能复制、序列化、删除(需要手动删除)
|
42
61
|
*/
|
43
|
-
isDecorate;
|
62
|
+
isDecorate!: boolean;
|
44
63
|
/**
|
45
64
|
* 可点击性,例如:null-text 占位符元素不具备可点击能力
|
46
65
|
* 2.编辑页眉页脚的能力
|
47
66
|
*/
|
48
|
-
disableClick;
|
49
|
-
_parent;
|
50
|
-
get parent() {
|
51
|
-
return this._parent;
|
67
|
+
disableClick!: boolean;
|
68
|
+
private _parent!: BranchElement | null;
|
69
|
+
get parent(): BranchElement {
|
70
|
+
return this._parent as BranchElement;
|
52
71
|
}
|
53
|
-
set parent(val) {
|
72
|
+
set parent(val: BranchElement) {
|
54
73
|
this._parent = val;
|
55
74
|
}
|
56
|
-
_props;
|
57
|
-
get props() {
|
75
|
+
private _props!: P;
|
76
|
+
public get props(): P {
|
58
77
|
return this._props;
|
59
78
|
}
|
60
|
-
set props(value) {
|
79
|
+
public set props(value: P) {
|
61
80
|
this.pubOnChange('self');
|
62
|
-
this._props = watchChanged(value, () => { this.notifyChanged()
|
81
|
+
this._props = watchChanged(value, () => { this.notifyChanged() })
|
63
82
|
//this._props = value;
|
64
83
|
}
|
65
|
-
|
66
|
-
|
84
|
+
|
85
|
+
private notifyChanged(): void {
|
86
|
+
this.pubOnChange('self')
|
67
87
|
}
|
88
|
+
|
68
89
|
//元素是否禁止复制,例如批注元素
|
69
90
|
//forbidCopy: boolean;
|
70
|
-
constructor(type) {
|
71
|
-
this.type = type;
|
91
|
+
constructor(public type: string) {
|
72
92
|
this._eventMap = new EventMap();
|
73
|
-
this.addEvent('ElementMouseEnter', (evt) => { this.isMouseenter = true
|
74
|
-
this.addEvent('ElementMouseLeave', (evt) => { this.isMouseenter = false
|
75
|
-
}
|
76
|
-
|
93
|
+
this.addEvent('ElementMouseEnter', (evt) => { this.isMouseenter = true });
|
94
|
+
this.addEvent('ElementMouseLeave', (evt) => { this.isMouseenter = false });
|
95
|
+
}
|
96
|
+
abstract createRenderObject(options: ViewOptions, renderCtx: RenderContenxtType): RenderObject | null;
|
97
|
+
abstract serialize(viewOptions: ViewOptions): SerializeProps | null;
|
98
|
+
abstract clone(data: boolean): Element;
|
99
|
+
abstract getChildLength(): number;
|
100
|
+
abstract getSelfLength(): number;
|
101
|
+
destroy(): void {
|
77
102
|
this._eventMap?.clear(this);
|
78
103
|
this.paintRenders.length = 0;
|
79
104
|
this._parent = null;
|
80
105
|
this.measureRender = null;
|
81
106
|
this.unsubscribe(this);
|
82
107
|
}
|
83
|
-
addEvent(event, handle, useCapture = false) {
|
108
|
+
addEvent<T extends ElementEvent>(event: EventTypes, handle: (evt: T) => void, useCapture = false): string {
|
84
109
|
if (!this._eventMap) {
|
85
|
-
throw new Error('eventMap is null')
|
110
|
+
throw new Error('eventMap is null')
|
86
111
|
}
|
87
112
|
return this._eventMap?.add(this, event, handle, useCapture);
|
88
113
|
}
|
89
|
-
removeEvent(eventId) {
|
114
|
+
removeEvent(eventId: string): void {
|
90
115
|
if (!this._eventMap) {
|
91
|
-
throw new Error('eventMap is null')
|
116
|
+
throw new Error('eventMap is null')
|
92
117
|
}
|
93
118
|
this._eventMap.remove(this, eventId);
|
94
119
|
}
|
95
|
-
removeEventByType(eventType) {
|
120
|
+
removeEventByType(eventType: EventTypes): void {
|
96
121
|
if (!this._eventMap) {
|
97
|
-
throw new Error('eventMap is null')
|
122
|
+
throw new Error('eventMap is null')
|
98
123
|
}
|
99
124
|
this._eventMap.removeByType(this, eventType);
|
100
125
|
}
|
101
|
-
invokeEvent(event, evt, userCapture = false) {
|
126
|
+
invokeEvent(event: EventTypes, evt: ElementEvent, userCapture = false): void {
|
102
127
|
if (!this._eventMap) {
|
103
|
-
throw new Error('eventMap is null')
|
128
|
+
throw new Error('eventMap is null')
|
104
129
|
}
|
105
130
|
const listeners = this._eventMap.get(this, event, userCapture);
|
106
131
|
listeners.forEach(item => item(evt));
|
107
132
|
}
|
108
|
-
beginMeasure() {
|
133
|
+
beginMeasure(): void {
|
109
134
|
this.paintRenders.length = 0;
|
110
135
|
}
|
111
|
-
getIndex() {
|
136
|
+
getIndex(): number {
|
112
137
|
if (this.parent) {
|
113
138
|
return this.parent.getChildIndex(this);
|
114
|
-
}
|
115
|
-
else {
|
139
|
+
} else {
|
116
140
|
return 0;
|
117
141
|
}
|
118
142
|
}
|
119
|
-
get refreshSubject() {
|
143
|
+
get refreshSubject(): Subject<void> {
|
120
144
|
return this._refreshEvent;
|
121
145
|
}
|
122
|
-
get onChangeSubject() {
|
146
|
+
get onChangeSubject(): Subject<void> {
|
123
147
|
return this._onChangeEvent;
|
124
148
|
}
|
125
|
-
|
149
|
+
|
150
|
+
refreshView(): void {
|
126
151
|
this._refreshEvent.next();
|
127
152
|
}
|
128
|
-
|
153
|
+
|
154
|
+
abstract pubOnChange(selfChange: pubChangeType): void
|
155
|
+
|
156
|
+
unsubscribe(element: Element): void {
|
129
157
|
const subs = this.observers.get(element);
|
130
158
|
if (subs) {
|
131
|
-
subs.forEach(sub => { sub.unsubscribe()
|
159
|
+
subs.forEach(sub => { sub.unsubscribe() });
|
132
160
|
this.observers.delete(element);
|
133
161
|
}
|
134
162
|
}
|
135
|
-
|
163
|
+
|
164
|
+
addsubscribe(element: Element, ...sub: Array<Subscription>): void {
|
136
165
|
let subs = this.observers.get(element);
|
137
166
|
if (!subs) {
|
138
167
|
subs = [];
|
@@ -140,31 +169,36 @@ export class Element {
|
|
140
169
|
}
|
141
170
|
subs.push(...sub);
|
142
171
|
}
|
172
|
+
|
143
173
|
/**
|
144
174
|
* 移除当前节点
|
145
175
|
*/
|
146
|
-
remove() {
|
176
|
+
remove(): void {
|
147
177
|
if (this.parent) {
|
148
178
|
this.parent.removeChild(this);
|
149
179
|
}
|
150
180
|
}
|
151
181
|
}
|
182
|
+
|
183
|
+
|
184
|
+
|
152
185
|
/**
|
153
186
|
* 最小节点元素
|
154
187
|
*/
|
155
|
-
export class LeafElement extends Element {
|
156
|
-
cursorType = 'text';
|
188
|
+
export abstract class LeafElement<P extends object = any> extends Element<P> {
|
189
|
+
cursorType: CursorType = 'text';
|
157
190
|
//abstract createRenderObject(options: ViewOptions, renderCtx: RenderContenxt): LeafRenderObject;
|
158
|
-
getChildLength() {
|
191
|
+
getChildLength(): number {
|
159
192
|
return 1;
|
160
193
|
}
|
161
|
-
destroy() {
|
194
|
+
destroy(): void {
|
162
195
|
super.destroy();
|
163
196
|
}
|
164
|
-
getSelfLength() {
|
197
|
+
getSelfLength(): number {
|
165
198
|
return 1;
|
166
199
|
}
|
167
|
-
|
200
|
+
|
201
|
+
pubOnChange(selfChange: pubChangeType): void {
|
168
202
|
if (this.modifyFlag === ModifyFlag.None) {
|
169
203
|
this.refreshView();
|
170
204
|
}
|
@@ -178,22 +212,23 @@ export class LeafElement extends Element {
|
|
178
212
|
if (this.modifyFlag === ModifyFlag.None) {
|
179
213
|
this.modifyFlag = ModifyFlag.Track;
|
180
214
|
}
|
181
|
-
}
|
182
|
-
else {
|
215
|
+
} else {
|
183
216
|
this.modifyFlag = ModifyFlag.Modify;
|
184
217
|
}
|
185
218
|
this._onChangeEvent.next();
|
186
219
|
}
|
187
220
|
}
|
221
|
+
|
222
|
+
|
188
223
|
/**
|
189
224
|
* 枝干节点,包含若干个枝干或者叶子节点
|
190
225
|
*/
|
191
|
-
export class BranchElement extends Element {
|
192
|
-
chilren = [];
|
193
|
-
constructor(type) {
|
226
|
+
export abstract class BranchElement<P extends object = any> extends Element<P> {
|
227
|
+
private chilren: Array<Element> = [];
|
228
|
+
constructor(type: string) {
|
194
229
|
super(type);
|
195
230
|
}
|
196
|
-
addChild(child, index = -1) {
|
231
|
+
addChild(child: Element, index = -1): void {
|
197
232
|
if (index === -1) {
|
198
233
|
index = this.length;
|
199
234
|
}
|
@@ -208,7 +243,8 @@ export class BranchElement extends Element {
|
|
208
243
|
this.addsubscribe(child, refSub, onChangeSub);
|
209
244
|
this.pubOnChange('self');
|
210
245
|
}
|
211
|
-
|
246
|
+
|
247
|
+
removeChild(child: Element): void {
|
212
248
|
const index = this.chilren.indexOf(child);
|
213
249
|
if (index < 0) {
|
214
250
|
throw new Error('为查找到当前元素');
|
@@ -216,30 +252,33 @@ export class BranchElement extends Element {
|
|
216
252
|
this.disposeChild(child);
|
217
253
|
this.chilren.splice(index, 1);
|
218
254
|
}
|
219
|
-
|
255
|
+
|
256
|
+
removeChildByIndex(index: number): void {
|
220
257
|
const child = this.chilren[index];
|
221
258
|
if (child) {
|
222
259
|
this.chilren.splice(index, 1);
|
223
260
|
this.disposeChild(child);
|
224
|
-
}
|
225
|
-
else {
|
261
|
+
} else {
|
226
262
|
throw new Error('为查找到当前元素');
|
227
263
|
}
|
228
264
|
}
|
229
|
-
|
265
|
+
|
266
|
+
disposeChild(child: Element): void {
|
230
267
|
this.unsubscribe(child);
|
231
268
|
if (child.parent === this) {
|
232
|
-
child.parent = null;
|
269
|
+
(<any>child).parent = null;
|
233
270
|
}
|
234
271
|
this.pubOnChange('self');
|
235
272
|
}
|
236
|
-
|
273
|
+
|
274
|
+
clearItems(): void {
|
237
275
|
const items = [...this.chilren];
|
238
276
|
for (let i = items.length - 1; i >= 0; i--) {
|
239
277
|
this.removeChildByIndex(i);
|
240
278
|
}
|
241
279
|
}
|
242
|
-
|
280
|
+
|
281
|
+
destroy(): void {
|
243
282
|
super.destroy();
|
244
283
|
const items = [...this.chilren];
|
245
284
|
for (let i = items.length - 1; i >= 0; i--) {
|
@@ -248,39 +287,45 @@ export class BranchElement extends Element {
|
|
248
287
|
this.removeChild(child);
|
249
288
|
}
|
250
289
|
}
|
290
|
+
|
251
291
|
get length() {
|
252
292
|
return this.chilren.length;
|
253
293
|
}
|
254
|
-
|
294
|
+
|
295
|
+
find(predicate: (item: Element, index: number) => boolean): Element | undefined {
|
255
296
|
return this.chilren.find(predicate);
|
256
297
|
}
|
257
|
-
|
258
|
-
|
298
|
+
|
299
|
+
getChild<T extends Element = Element>(index: number): T {
|
300
|
+
return this.chilren[index] as T;
|
259
301
|
}
|
260
|
-
|
302
|
+
|
303
|
+
getChildIndex(child: Element): number {
|
261
304
|
return this.chilren.indexOf(child);
|
262
305
|
}
|
263
|
-
|
306
|
+
|
307
|
+
getChildLength(): number {
|
264
308
|
//return this.chilren.reduce((prev, curr) => prev + 1 + curr.getChildLength(), 0);
|
265
309
|
return this.chilren.reduce((prev, curr) => {
|
266
310
|
if (curr instanceof BranchElement) {
|
267
311
|
return prev + 1 + curr.getChildLength();
|
268
|
-
}
|
269
|
-
else if (curr instanceof LeafElement) {
|
312
|
+
} else if (curr instanceof LeafElement) {
|
270
313
|
return prev + curr.getChildLength();
|
314
|
+
} else {
|
315
|
+
return 0
|
271
316
|
}
|
272
|
-
|
273
|
-
return 0;
|
274
|
-
}
|
275
|
-
}, 0);
|
317
|
+
}, 0)
|
276
318
|
}
|
277
|
-
|
319
|
+
|
320
|
+
getSelfLength(): number {
|
278
321
|
return 1 + this.chilren.reduce((prev, curr) => {
|
279
322
|
return prev + curr.getSelfLength();
|
280
323
|
}, 0);
|
281
324
|
}
|
282
|
-
|
283
|
-
|
325
|
+
|
326
|
+
|
327
|
+
treeFilter(predicate: (item: Element, index: number) => boolean): Array<Element> {
|
328
|
+
const items: Array<Element> = [];
|
284
329
|
for (let i = 0; i < this.length; i++) {
|
285
330
|
const item = this.getChild(i);
|
286
331
|
if (predicate(item, i)) {
|
@@ -292,7 +337,8 @@ export class BranchElement extends Element {
|
|
292
337
|
}
|
293
338
|
return items;
|
294
339
|
}
|
295
|
-
|
340
|
+
|
341
|
+
treeFind(predicate: (item: Element, index: number) => boolean): Element | null {
|
296
342
|
for (let i = 0; i < this.length; i++) {
|
297
343
|
const item = this.getChild(i);
|
298
344
|
if (predicate(item, i)) {
|
@@ -307,7 +353,8 @@ export class BranchElement extends Element {
|
|
307
353
|
}
|
308
354
|
return null;
|
309
355
|
}
|
310
|
-
|
356
|
+
|
357
|
+
pubOnChange(selfChange: pubChangeType): void {
|
311
358
|
if (this.modifyFlag === ModifyFlag.Track && selfChange === 'tracker') {
|
312
359
|
return;
|
313
360
|
}
|
@@ -318,117 +365,146 @@ export class BranchElement extends Element {
|
|
318
365
|
if (this.modifyFlag === ModifyFlag.None) {
|
319
366
|
this.modifyFlag = ModifyFlag.Track;
|
320
367
|
}
|
321
|
-
}
|
322
|
-
else {
|
368
|
+
} else {
|
323
369
|
this.modifyFlag = ModifyFlag.Modify;
|
324
370
|
for (let i = 0; i < this.length; i++) {
|
325
|
-
this.getChild(i).pubOnChange('to-child')
|
371
|
+
this.getChild(i).pubOnChange('to-child')
|
326
372
|
}
|
327
373
|
}
|
328
374
|
this._onChangeEvent.next();
|
329
375
|
}
|
330
376
|
}
|
377
|
+
|
378
|
+
export type pubChangeType = 'self' | 'tracker' | 'to-child';
|
331
379
|
/**
|
332
380
|
* 行内编组元素
|
333
381
|
*/
|
334
|
-
export class InlineGroupElement extends BranchElement {
|
335
|
-
|
382
|
+
export abstract class InlineGroupElement<P extends object = any> extends BranchElement<P> { }
|
383
|
+
|
336
384
|
/**
|
337
385
|
* 块级元素,目前只有P元素
|
338
386
|
*/
|
339
|
-
export class BlockContentElement extends BranchElement {
|
340
|
-
|
387
|
+
export abstract class BlockContentElement<P extends object = any> extends BranchElement<P> { }
|
388
|
+
|
341
389
|
/**
|
342
390
|
* 包含块级渲染元素的容器元素,例如body、table-cell、table等
|
343
391
|
*/
|
344
|
-
export class BlockContainerElement extends BranchElement {
|
345
|
-
noFillEmpty;
|
392
|
+
export abstract class BlockContainerElement<P extends object = any> extends BranchElement<P> {
|
393
|
+
noFillEmpty!: boolean;
|
346
394
|
}
|
347
|
-
|
348
|
-
|
395
|
+
|
396
|
+
export interface readElementProps<T> {
|
397
|
+
type: string;
|
398
|
+
props: T | undefined;
|
399
|
+
children: any | undefined
|
349
400
|
}
|
401
|
+
|
402
|
+
export abstract class ElementFactory<T = null> {
|
403
|
+
options!: ViewOptions;
|
404
|
+
abstract match(type: string): boolean;
|
405
|
+
abstract createElement(data: readElementProps<T>, renderCtx: RenderContenxtType): Element;
|
406
|
+
}
|
407
|
+
|
408
|
+
export interface SelectionContentRange {
|
409
|
+
target: Element
|
410
|
+
isFullSelected: boolean,
|
411
|
+
startOffset: number,
|
412
|
+
endOffset: number,
|
413
|
+
selectedChildren: Array<SelectionContentRange>,
|
414
|
+
}
|
415
|
+
|
350
416
|
/**
|
351
417
|
* 编辑模式
|
352
418
|
*/
|
353
|
-
export
|
354
|
-
(function (EditMode) {
|
419
|
+
export enum EditMode {
|
355
420
|
/**
|
356
421
|
* 自由模式,设计模板时使用
|
357
422
|
*/
|
358
|
-
|
423
|
+
Free = 0,
|
359
424
|
/**
|
360
425
|
* 严格模式,医生书写模式时使用,只可更改数据元值
|
361
426
|
*/
|
362
|
-
|
427
|
+
Strict = 1,
|
363
428
|
/**
|
364
429
|
* 查看模式,任何修改文档的操作都不允许,但是可选中,有拖蓝
|
365
430
|
*/
|
366
|
-
|
431
|
+
View = 2,
|
367
432
|
/**
|
368
433
|
* 禁用模式,当前区域不可点击,不可选中,页脚、页眉编辑时的控制
|
369
434
|
*/
|
370
|
-
|
371
|
-
}
|
435
|
+
Disabled = 3
|
436
|
+
}
|
437
|
+
|
372
438
|
/**
|
373
439
|
* 文档模式
|
374
440
|
*/
|
375
|
-
export
|
376
|
-
|
377
|
-
DocMode[DocMode["Design"] = 0] = "Design";
|
441
|
+
export enum DocMode {
|
442
|
+
Design = 0,
|
378
443
|
/**
|
379
444
|
* 完全编辑模式
|
380
445
|
*/
|
381
|
-
|
446
|
+
Edit = 1,
|
382
447
|
/**
|
383
448
|
* 表单编辑模式
|
384
449
|
*/
|
385
|
-
|
450
|
+
FormEdit = 2,
|
386
451
|
/**
|
387
452
|
* 视图模式,只能查看
|
388
453
|
*/
|
389
|
-
|
390
|
-
}
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
}
|
454
|
+
View = 3
|
455
|
+
}
|
456
|
+
|
457
|
+
export enum BooleanEnum {
|
458
|
+
Null,
|
459
|
+
True,
|
460
|
+
False
|
461
|
+
}
|
462
|
+
|
463
|
+
export interface DocUser {
|
464
|
+
id: string,
|
465
|
+
name: string
|
466
|
+
}
|
467
|
+
|
397
468
|
export class PageOptions {
|
398
|
-
_width = 0;
|
399
|
-
_height = 0;
|
400
|
-
orient = 'portrait';
|
401
|
-
constructor(width, height, orient = 'portrait') {
|
469
|
+
private _width: number = 0;
|
470
|
+
private _height: number = 0;
|
471
|
+
orient: OrientType = 'portrait';
|
472
|
+
constructor(width: number, height: number, orient: OrientType = 'portrait') {
|
402
473
|
this._width = width;
|
403
474
|
this._height = height;
|
404
475
|
this.orient = orient;
|
405
476
|
}
|
406
|
-
get width() {
|
477
|
+
get width(): number {
|
407
478
|
if (this.orient === 'landscape') {
|
408
479
|
return this._height;
|
409
|
-
}
|
410
|
-
else {
|
480
|
+
} else {
|
411
481
|
return this._width;
|
412
482
|
}
|
413
483
|
}
|
414
|
-
|
484
|
+
|
485
|
+
set width(value: number) {
|
415
486
|
this._width = value;
|
416
487
|
}
|
417
|
-
|
488
|
+
|
489
|
+
get height(): number {
|
418
490
|
if (this.orient === 'landscape') {
|
419
491
|
return this._width;
|
420
|
-
}
|
421
|
-
else {
|
492
|
+
} else {
|
422
493
|
return this._height;
|
423
494
|
}
|
495
|
+
|
424
496
|
}
|
425
|
-
|
497
|
+
|
498
|
+
set height(value: number) {
|
426
499
|
this._height = value;
|
427
500
|
}
|
428
501
|
}
|
502
|
+
|
503
|
+
export type OrientType = 'landscape' | 'portrait';
|
504
|
+
|
429
505
|
export class ViewOptions {
|
430
|
-
copyRightInfo;
|
431
|
-
watermark;
|
506
|
+
copyRightInfo!: string;
|
507
|
+
watermark?: string;
|
432
508
|
drawLineRectColor = "rgb(0,0,0)";
|
433
509
|
drawCharRectColor = "rgb(0,0,0)";
|
434
510
|
drawSymbolsColor = 'rgb(128,128,128)';
|
@@ -441,50 +517,54 @@ export class ViewOptions {
|
|
441
517
|
dataEleOutlineColor = 'rgb(131,175,155,0.7)';
|
442
518
|
viewBackcolor = 'rgb(230,230,230)';
|
443
519
|
paraSymbolColor = 'rgb(128,128,128)';
|
444
|
-
dataGroupColor = 'rgb(0,80,179)'
|
445
|
-
showLineRect;
|
446
|
-
showCharRect;
|
447
|
-
showParaMark;
|
448
|
-
showTabChar;
|
449
|
-
showSpaceChar;
|
450
|
-
showLineBreak;
|
520
|
+
dataGroupColor = 'rgb(0,80,179)'
|
521
|
+
showLineRect!: boolean;
|
522
|
+
showCharRect!: boolean;
|
523
|
+
showParaMark!: boolean;
|
524
|
+
showTabChar!: boolean;
|
525
|
+
showSpaceChar!: boolean;
|
526
|
+
showLineBreak!: boolean;
|
451
527
|
bodyMarginTop = 8;
|
452
|
-
devMode = false;
|
453
|
-
showDebug;
|
454
|
-
resourceMode = 'immediate';
|
455
|
-
serverMode = false;
|
456
|
-
secretBrowse = false;
|
528
|
+
devMode: boolean = false;
|
529
|
+
showDebug!: boolean;
|
530
|
+
resourceMode: 'lazy' | 'immediate' = 'immediate';
|
531
|
+
serverMode: boolean = false;
|
532
|
+
secretBrowse: boolean = false;
|
457
533
|
//中文版式,处理中文换行;前置标点和后置标点
|
458
|
-
chineseLayout = true;
|
534
|
+
chineseLayout: boolean = true;
|
459
535
|
//整页模式,不分页
|
460
|
-
_fullPageView = false;
|
461
|
-
get fullPageView() {
|
536
|
+
private _fullPageView: boolean = false;
|
537
|
+
get fullPageView(): boolean {
|
462
538
|
return this._fullPageView;
|
463
539
|
}
|
464
|
-
set fullPageView(value) {
|
540
|
+
set fullPageView(value: boolean) {
|
465
541
|
this._fullPageView = value;
|
466
542
|
this.onChange.next('force');
|
467
543
|
}
|
468
544
|
//毫米和像素的转换比
|
469
|
-
mmToPixelsRatio = 0;
|
470
|
-
cursor = 'text';
|
545
|
+
mmToPixelsRatio: number = 0;
|
546
|
+
cursor: CursorType = 'text';
|
471
547
|
//当前文档偏移量,取决于滚动条位置
|
472
548
|
translateY = 0;
|
473
549
|
//文档大小
|
474
|
-
docPageSettings = new PageOptions(0, 0);
|
550
|
+
docPageSettings: PageOptions = new PageOptions(0, 0);
|
475
551
|
//视图大小,canvas
|
476
|
-
viewSettings
|
477
|
-
|
552
|
+
viewSettings!: {
|
553
|
+
width: number;
|
554
|
+
height: number;
|
555
|
+
};
|
556
|
+
pageNumFormat: string = '第{index}页/共{count}页';
|
478
557
|
//获取canvas节点的高度
|
479
|
-
get viewPaintHeight() {
|
558
|
+
get viewPaintHeight(): number {
|
480
559
|
//return this.viewSettings.height / this.scale;
|
481
560
|
return this.viewSettings.height;
|
482
561
|
}
|
562
|
+
|
483
563
|
/**
|
484
564
|
* 内容区域的高度
|
485
565
|
* 同时限定canvas的最小宽度
|
486
566
|
*/
|
487
|
-
get ContentWidth() {
|
567
|
+
get ContentWidth(): number {
|
488
568
|
let width = this.docPageSettings.width;
|
489
569
|
if (this.showReviewWindow) {
|
490
570
|
width = width + this.reviewWindowWidth;
|
@@ -492,29 +572,29 @@ export class ViewOptions {
|
|
492
572
|
return width;
|
493
573
|
}
|
494
574
|
//两个页的间距
|
495
|
-
docSpace = 0;
|
575
|
+
docSpace: number = 0;
|
496
576
|
//是否显示审阅窗口
|
497
|
-
_showReviewWindow = false;
|
498
|
-
get showReviewWindow() {
|
577
|
+
private _showReviewWindow: boolean = false;
|
578
|
+
public get showReviewWindow(): boolean {
|
499
579
|
return this._showReviewWindow;
|
500
580
|
}
|
501
|
-
set showReviewWindow(value) {
|
581
|
+
public set showReviewWindow(value: boolean) {
|
502
582
|
this._showReviewWindow = value;
|
503
583
|
this.onChange.next();
|
504
584
|
}
|
505
585
|
//审阅窗口宽度
|
506
|
-
reviewWindowWidth = 200;
|
586
|
+
reviewWindowWidth: number = 200;
|
507
587
|
//缩放
|
508
|
-
_scale = 1;
|
509
|
-
get scale() {
|
588
|
+
private _scale: number = 1;
|
589
|
+
get scale(): number {
|
510
590
|
return this._scale;
|
511
591
|
}
|
512
|
-
set scale(val) {
|
592
|
+
set scale(val: number) {
|
513
593
|
this._scale = val;
|
514
594
|
}
|
515
|
-
docMode = DocMode.Design;
|
595
|
+
docMode: DocMode = DocMode.Design;
|
516
596
|
//是否开启重做功能
|
517
|
-
enableUndo = true;
|
597
|
+
enableUndo: boolean = true;
|
518
598
|
// //是否开启留痕模式
|
519
599
|
// private _enableTrackChanges: boolean = false;
|
520
600
|
// public get enableTrackChanges(): boolean {
|
@@ -525,55 +605,70 @@ export class ViewOptions {
|
|
525
605
|
// this.onChange.next('force');
|
526
606
|
// }
|
527
607
|
//是否显示审阅痕迹
|
528
|
-
_showTrackChanges = true;
|
529
|
-
get showTrackChanges() {
|
608
|
+
private _showTrackChanges: boolean = true;
|
609
|
+
public get showTrackChanges(): boolean {
|
530
610
|
return this._showTrackChanges;
|
531
611
|
}
|
532
|
-
set showTrackChanges(value) {
|
612
|
+
public set showTrackChanges(value: boolean) {
|
533
613
|
this._showTrackChanges = value;
|
534
614
|
this.onChange.next('force');
|
535
615
|
}
|
536
616
|
//医嘱打印模式,文字行模式,将表格多行对象转换为多个表格行对象
|
537
|
-
textRowLineMode = false;
|
538
|
-
editUser = { id: '', name: '' };
|
617
|
+
textRowLineMode: boolean = false;
|
618
|
+
editUser: DocUser = { id: '', name: '' };
|
539
619
|
//留痕区域的生效时间段,同一用户的留痕块在此时间外需要生成新的留痕块
|
540
|
-
trackChangePeriod = 10;
|
541
|
-
onChange = new Subject();
|
620
|
+
trackChangePeriod: number = 10;
|
621
|
+
onChange: Subject<'demand' | 'force'> = new Subject();
|
542
622
|
constructor() { }
|
543
623
|
}
|
624
|
+
|
625
|
+
|
544
626
|
export class MarginProps {
|
545
|
-
|
546
|
-
bottom
|
547
|
-
|
548
|
-
right;
|
549
|
-
constructor(top = 0, bottom = 0, left = 0, right = 0) {
|
550
|
-
this.top = top;
|
551
|
-
this.bottom = bottom;
|
552
|
-
this.left = left;
|
553
|
-
this.right = right;
|
554
|
-
}
|
555
|
-
clone() {
|
627
|
+
|
628
|
+
constructor(public top: number = 0, public bottom: number = 0, public left: number = 0, public right: number = 0) { }
|
629
|
+
clone(): MarginProps {
|
556
630
|
const cloneMargin = new MarginProps(this.top, this.bottom, this.left, this.right);
|
557
631
|
return cloneMargin;
|
558
632
|
}
|
559
633
|
}
|
560
|
-
|
561
|
-
}
|
634
|
+
|
635
|
+
export class PaddingProps extends MarginProps { }
|
636
|
+
|
562
637
|
export class BorderProps {
|
563
|
-
width
|
564
|
-
|
565
|
-
style;
|
566
|
-
constructor(width = 0, color = 'transparent', style = 'solid') {
|
567
|
-
this.width = width;
|
568
|
-
this.color = color;
|
569
|
-
this.style = style;
|
570
|
-
}
|
571
|
-
clone() {
|
638
|
+
constructor(public width: number = 0, public color: string = 'transparent', public style: string = 'solid') { }
|
639
|
+
clone(): BorderProps {
|
572
640
|
return new BorderProps(this.width, this.color, this.style);
|
573
641
|
}
|
574
642
|
}
|
575
|
-
|
643
|
+
|
644
|
+
export abstract class IDispose {
|
645
|
+
abstract destroy(): void;
|
576
646
|
}
|
577
|
-
|
647
|
+
|
648
|
+
|
649
|
+
export type TextAlign = 'center' | 'left' | 'right' | 'justify';
|
650
|
+
|
651
|
+
export interface Position {
|
652
|
+
x: number;
|
653
|
+
y: number;
|
578
654
|
}
|
579
|
-
|
655
|
+
|
656
|
+
|
657
|
+
export abstract class ResizeLeafRenderObject extends LeafRenderObject { }
|
658
|
+
|
659
|
+
|
660
|
+
export type NullableType<T> = {
|
661
|
+
[PropName in keyof T]?: T[PropName]
|
662
|
+
};
|
663
|
+
|
664
|
+
|
665
|
+
export type RequiredType<T> = {
|
666
|
+
[PropName in keyof T]: T[PropName]
|
667
|
+
};
|
668
|
+
|
669
|
+
export type ImgLoadStatus = 'no' | 'loading' | 'completed' | 'error';
|
670
|
+
|
671
|
+
export interface ICancelTokenFn {
|
672
|
+
cancel?: () => void;
|
673
|
+
onFinish?: () => void;
|
674
|
+
}
|