@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,53 +1,68 @@
|
|
1
1
|
import { runTextLineRender } from "./document-textline-mode";
|
2
|
-
import {
|
3
|
-
|
2
|
+
import {
|
3
|
+
BlockContainerElement,
|
4
|
+
BlockContentElement,
|
5
|
+
BranchElement,
|
6
|
+
Element,
|
7
|
+
InlineGroupElement,
|
8
|
+
LeafElement,
|
9
|
+
ModifyFlag,
|
10
|
+
ViewOptions
|
11
|
+
} from "./element-define";
|
12
|
+
import { DataEleBaseProps, DataEleBaseTextProps, TextProps } from "./element-props";
|
4
13
|
import { ElementUtil } from "./element-util";
|
5
14
|
import { DataElementInlineGroup } from "./impl/data-element/data-element-base-impl";
|
6
15
|
import { FillNullSpaceRenderObject } from "./impl/decorate/fill-null-space-imple";
|
7
|
-
import {
|
16
|
+
import { DocumentElement, DocumentRenderObject } from "./impl/document/doc-impl";
|
17
|
+
import { ParagraphElement, ParagraphLineRectRenderObject, ParagraphRenderObject } from "./impl/paragraph/p-impl";
|
8
18
|
import { TextGroupElement, TextGroupRenderObject } from "./impl/text/text-impl";
|
9
|
-
import {
|
19
|
+
import { RenderContenxtType } from "./render-context";
|
20
|
+
import {
|
21
|
+
BlockContainerRenderObject,
|
22
|
+
BlockContentRenderObject,
|
23
|
+
BranchRenderObject,
|
24
|
+
InlineGroupRenderObject,
|
25
|
+
LeafRenderObject,
|
26
|
+
RenderObject
|
27
|
+
} from "./render-define";
|
28
|
+
interface ICutLineData { firstItem: RenderObject | null, lastItem: RenderObject | null, br?: boolean }
|
10
29
|
/**
|
11
30
|
* 测量阶段,生成Render-UI
|
12
31
|
*/
|
13
32
|
export class ElementMeasure {
|
14
|
-
options
|
15
|
-
|
16
|
-
|
17
|
-
this.options = options;
|
18
|
-
this.renderCtx = renderCtx;
|
19
|
-
}
|
20
|
-
measureDocument(document) {
|
33
|
+
constructor(private options: ViewOptions, private renderCtx: RenderContenxtType) { }
|
34
|
+
|
35
|
+
measureDocument(document: DocumentElement): DocumentRenderObject {
|
21
36
|
this.clearPaintCache(document);
|
22
|
-
const docRender = this.measureControl(document, this.options.docPageSettings.width);
|
37
|
+
const docRender = this.measureControl(document, this.options.docPageSettings.width) as DocumentRenderObject;
|
23
38
|
this.setMeasureCompletedModifyFlag(document);
|
24
39
|
runTextLineRender(document, this.options, this.renderCtx);
|
25
40
|
return docRender;
|
26
41
|
}
|
27
|
-
|
42
|
+
|
43
|
+
measureControl(element: Element, maxWidth: number): RenderObject | null {
|
28
44
|
if (element.modifyFlag === ModifyFlag.None) {
|
29
45
|
return element.measureRender;
|
30
46
|
}
|
31
47
|
if (element instanceof BlockContentElement) {
|
32
|
-
const render = element.createRenderObject(this.options, this.renderCtx);
|
48
|
+
const render = element.createRenderObject(this.options, this.renderCtx) as BlockContentRenderObject;
|
33
49
|
element.measureRender = render;
|
34
50
|
//测量阶段,只限制最大宽度即可
|
35
51
|
render.setRenderWidth(maxWidth);
|
36
52
|
if (element instanceof ParagraphElement) {
|
37
|
-
this.measureParagraph(element, render);
|
38
|
-
}
|
39
|
-
else {
|
53
|
+
this.measureParagraph(element, render as ParagraphRenderObject);
|
54
|
+
} else {
|
40
55
|
throw new Error('未实现');
|
41
56
|
}
|
42
57
|
return render;
|
43
|
-
|
44
|
-
else if (element instanceof BlockContainerElement) {
|
58
|
+
|
59
|
+
} else if (element instanceof BlockContainerElement) {
|
45
60
|
ElementUtil.fixBlockContainer(element);
|
46
|
-
let render = null;
|
61
|
+
let render: BlockContainerRenderObject | null = null;
|
47
62
|
if (element.modifyFlag === ModifyFlag.Modify || element.modifyFlag === ModifyFlag.Track) {
|
48
63
|
ElementUtil.fixBlockContainer(element);
|
49
64
|
element.measureRender = null;
|
50
|
-
render = element.createRenderObject(this.options, this.renderCtx);
|
65
|
+
render = element.createRenderObject(this.options, this.renderCtx) as BlockContainerRenderObject;
|
51
66
|
if (!render) {
|
52
67
|
element.measureRender = null;
|
53
68
|
return null;
|
@@ -57,14 +72,14 @@ export class ElementMeasure {
|
|
57
72
|
}
|
58
73
|
}
|
59
74
|
if (!render) {
|
60
|
-
throw new Error('render is null')
|
75
|
+
throw new Error('render is null')
|
61
76
|
}
|
62
77
|
element.measureRender = render;
|
63
78
|
const innerMaxWidth = render.getInnerMaxWidth();
|
64
79
|
for (let i = 0; i < element.length; i++) {
|
65
80
|
const child = element.getChild(i);
|
66
|
-
const blockContentELement = child;
|
67
|
-
const childRender = this.measureControl(blockContentELement, innerMaxWidth);
|
81
|
+
const blockContentELement = child as BlockContentElement;
|
82
|
+
const childRender = this.measureControl(blockContentELement, innerMaxWidth) as BlockContentRenderObject;
|
68
83
|
if (!childRender) {
|
69
84
|
continue;
|
70
85
|
}
|
@@ -72,20 +87,20 @@ export class ElementMeasure {
|
|
72
87
|
}
|
73
88
|
ElementUtil.remeasure(render);
|
74
89
|
return render;
|
75
|
-
}
|
76
|
-
else {
|
90
|
+
} else {
|
77
91
|
throw new Error('未实现');
|
78
92
|
}
|
79
93
|
}
|
94
|
+
|
80
95
|
/**
|
81
96
|
* 生成段落 UI 树
|
82
|
-
* @param para
|
83
|
-
* @param render
|
97
|
+
* @param para
|
98
|
+
* @param render
|
84
99
|
*/
|
85
|
-
measureParagraph(para, render) {
|
100
|
+
measureParagraph(para: ParagraphElement, render: ParagraphRenderObject): void {
|
86
101
|
ElementUtil.fixParagraphContent(para);
|
87
102
|
this.setParagraphDefaultTextProps(para);
|
88
|
-
const renderObjects = [];
|
103
|
+
const renderObjects: Array<RenderObject> = [];
|
89
104
|
for (let i = 0; i < para.length; i++) {
|
90
105
|
const child = para.getChild(i);
|
91
106
|
if (child instanceof InlineGroupElement) {
|
@@ -103,39 +118,41 @@ export class ElementMeasure {
|
|
103
118
|
}
|
104
119
|
this.measureInnerParagraph(render, para, renderObjects);
|
105
120
|
}
|
121
|
+
|
122
|
+
|
106
123
|
/**
|
107
124
|
* 设置段落默认文本属性
|
108
125
|
* 当前段落属于空段落时,键入文本时,文本的默认属性
|
109
126
|
*/
|
110
|
-
setParagraphDefaultTextProps(para) {
|
111
|
-
const lastTextGroup = ElementUtil.getLastLeafElement(para, (item) => item instanceof TextGroupElement);
|
127
|
+
setParagraphDefaultTextProps(para: ParagraphElement): void {
|
128
|
+
const lastTextGroup = ElementUtil.getLastLeafElement(para, (item) => item instanceof TextGroupElement) as TextGroupElement;
|
112
129
|
const defaultTextProps = lastTextGroup ? lastTextGroup.props.clone(new TextProps()) : ElementUtil.createTextProps(null, this.options);
|
113
130
|
if (para.props.textProps && para.props.textProps.equals(defaultTextProps)) {
|
114
131
|
return;
|
115
132
|
}
|
116
133
|
para.props.textProps = defaultTextProps;
|
117
134
|
}
|
135
|
+
|
118
136
|
/**
|
119
137
|
* 根据段落UI元素,进行排列
|
120
|
-
* @param render
|
121
|
-
* @param paragraph
|
122
|
-
* @param renderObjects
|
138
|
+
* @param render
|
139
|
+
* @param paragraph
|
140
|
+
* @param renderObjects
|
123
141
|
*/
|
124
|
-
measureInnerParagraph(render, paragraph, renderObjects) {
|
142
|
+
measureInnerParagraph(render: ParagraphRenderObject, paragraph: ParagraphElement, renderObjects: Array<RenderObject>) {
|
125
143
|
let lineRect = render.createLineRect();
|
126
144
|
//行内框
|
127
|
-
const innerLineRects = [];
|
128
|
-
const addInnerLineFunc = (lineRect) => {
|
145
|
+
const innerLineRects: Array<ParagraphLineRectRenderObject> = [];
|
146
|
+
const addInnerLineFunc = (lineRect: ParagraphLineRectRenderObject): void => {
|
129
147
|
innerLineRects.push(lineRect);
|
130
148
|
if (lineRect.rect.maxWidth <= 0) {
|
131
|
-
throw new Error('lineRect.rect.maxWidth is ' + lineRect.rect.maxWidth)
|
149
|
+
throw new Error('lineRect.rect.maxWidth is ' + lineRect.rect.maxWidth)
|
132
150
|
}
|
133
151
|
if (innerLineRects.indexOf(lineRect) === 0) {
|
134
152
|
if (paragraph.props.indent > 0) {
|
135
153
|
lineRect.rect.maxWidth -= paragraph.props.indent;
|
136
154
|
}
|
137
|
-
}
|
138
|
-
else {
|
155
|
+
} else {
|
139
156
|
lineRect.rect.maxWidth -= paragraph.props.hanging;
|
140
157
|
}
|
141
158
|
};
|
@@ -144,7 +161,7 @@ export class ElementMeasure {
|
|
144
161
|
let currItem = renderObjects[i++];
|
145
162
|
const inCloseBody = paragraph.parent.type === 'body';
|
146
163
|
while (currItem) {
|
147
|
-
const maxWidth = lineRect.rect.maxWidth;
|
164
|
+
const maxWidth = lineRect.rect.maxWidth as number;
|
148
165
|
const nextItem = renderObjects[i];
|
149
166
|
const { firstItem, lastItem, br } = this.cutRenderItem(currItem, nextItem, maxWidth - lineRect.rect.width, lineRect.length === 0, inCloseBody);
|
150
167
|
if (firstItem) {
|
@@ -152,8 +169,7 @@ export class ElementMeasure {
|
|
152
169
|
renderObjects.splice(i, 0, lastItem);
|
153
170
|
}
|
154
171
|
currItem = firstItem;
|
155
|
-
}
|
156
|
-
else {
|
172
|
+
} else {
|
157
173
|
lineRect = render.createLineRect();
|
158
174
|
addInnerLineFunc(lineRect);
|
159
175
|
continue;
|
@@ -172,7 +188,7 @@ export class ElementMeasure {
|
|
172
188
|
currItem = renderObjects[i++];
|
173
189
|
}
|
174
190
|
for (let i = 0; i < innerLineRects.length; i++) {
|
175
|
-
const innerLineRect = innerLineRects[i];
|
191
|
+
const innerLineRect = innerLineRects[i] as ParagraphLineRectRenderObject;
|
176
192
|
innerLineRect.rect.x = this.getParaLineRectStartX(innerLineRects.length, i, paragraph, render, innerLineRect);
|
177
193
|
//限制最大行高
|
178
194
|
const maxLineHeight = Math.floor(14 * 1.3);
|
@@ -188,17 +204,18 @@ export class ElementMeasure {
|
|
188
204
|
}
|
189
205
|
//render.rect.height += lineRect.rect.height;
|
190
206
|
const outterLineRect = render.createLineRect();
|
191
|
-
outterLineRect.rect.width = outterLineRect.rect.maxWidth;
|
207
|
+
outterLineRect.rect.width = outterLineRect.rect.maxWidth as number;
|
192
208
|
outterLineRect.addChild(innerLineRect);
|
193
209
|
ElementUtil.remeasure(outterLineRect, false);
|
194
210
|
render.addChild(outterLineRect);
|
195
211
|
}
|
196
212
|
ElementUtil.remeasure(render);
|
197
213
|
}
|
214
|
+
|
198
215
|
/**
|
199
216
|
* 获取段落行布局横向坐标起始位置,被段落text-align影响
|
200
217
|
*/
|
201
|
-
getParaLineRectStartX(counter, paraLineIndex, paraElement, paraRenderObject, paraLineRender) {
|
218
|
+
getParaLineRectStartX(counter: number, paraLineIndex: number, paraElement: ParagraphElement, paraRenderObject: ParagraphRenderObject, paraLineRender: ParagraphLineRectRenderObject): number {
|
202
219
|
//左对齐,首行缩进
|
203
220
|
let indent = paraElement.props.indent;
|
204
221
|
//存在项目符号
|
@@ -208,31 +225,29 @@ export class ElementMeasure {
|
|
208
225
|
if (paraElement.props.textAlign === 'center') {
|
209
226
|
const remainSpace = paraRenderObject.rect.width - paraLineRender.rect.width;
|
210
227
|
return Math.ceil(remainSpace / 2) + indent;
|
211
|
-
}
|
212
|
-
else if (paraElement.props.textAlign === 'right') {
|
228
|
+
} else if (paraElement.props.textAlign === 'right') {
|
213
229
|
const remainSpace = paraRenderObject.rect.width - paraLineRender.rect.width;
|
214
230
|
return remainSpace + indent;
|
215
|
-
}
|
216
|
-
else if (paraElement.props.textAlign === 'justify') {
|
231
|
+
} else if (paraElement.props.textAlign === 'justify') {
|
217
232
|
const renderUnitCount = this.getRenderUnitLength(paraLineRender);
|
218
233
|
if (paraLineIndex === counter - 1 || renderUnitCount === 1) {
|
219
234
|
return indent;
|
220
235
|
}
|
221
|
-
const spaceWidth = (paraLineRender.rect.maxWidth - paraLineRender.rect.width) / (renderUnitCount - 1);
|
236
|
+
const spaceWidth = (<number>paraLineRender.rect.maxWidth - paraLineRender.rect.width) / (renderUnitCount - 1);
|
222
237
|
this.setAlignJustify(paraLineRender, 0, spaceWidth);
|
223
238
|
return indent;
|
224
|
-
}
|
225
|
-
else {
|
239
|
+
} else {
|
226
240
|
return indent;
|
227
241
|
}
|
228
242
|
}
|
243
|
+
|
229
244
|
/**
|
230
245
|
* 设置两端对齐
|
231
|
-
* @param render
|
232
|
-
* @param count
|
233
|
-
* @param spaceWidth
|
246
|
+
* @param render
|
247
|
+
* @param count
|
248
|
+
* @param spaceWidth
|
234
249
|
*/
|
235
|
-
setAlignJustify(render, count, spaceWidth) {
|
250
|
+
private setAlignJustify(render: RenderObject, count: number, spaceWidth: number): number {
|
236
251
|
if (render instanceof BranchRenderObject) {
|
237
252
|
let width = 0;
|
238
253
|
for (let i = 0; i < render.length; i++) {
|
@@ -242,8 +257,7 @@ export class ElementMeasure {
|
|
242
257
|
width += currRender.rect.width;
|
243
258
|
}
|
244
259
|
render.rect.width = width;
|
245
|
-
}
|
246
|
-
else if (render instanceof LeafRenderObject) {
|
260
|
+
} else if (render instanceof LeafRenderObject) {
|
247
261
|
if (render instanceof TextGroupRenderObject) {
|
248
262
|
let i = count === 0 ? 1 : 0;
|
249
263
|
for (; i < render.textMeasures.length; i++) {
|
@@ -251,8 +265,7 @@ export class ElementMeasure {
|
|
251
265
|
}
|
252
266
|
render.measure();
|
253
267
|
count += render.textMeasures.length;
|
254
|
-
}
|
255
|
-
else {
|
268
|
+
} else {
|
256
269
|
if (count !== 0) {
|
257
270
|
render.rect.width += spaceWidth;
|
258
271
|
}
|
@@ -261,29 +274,30 @@ export class ElementMeasure {
|
|
261
274
|
}
|
262
275
|
return count;
|
263
276
|
}
|
277
|
+
|
264
278
|
/**
|
265
279
|
* 获取段落行渲染单位个数,字符需要计算为字符长度
|
266
280
|
*/
|
267
|
-
getRenderUnitLength(paraLine) {
|
281
|
+
private getRenderUnitLength(paraLine: RenderObject): number {
|
268
282
|
if (paraLine instanceof LeafRenderObject) {
|
269
283
|
if (paraLine instanceof TextGroupRenderObject) {
|
270
284
|
return paraLine.textMeasures.length;
|
271
|
-
}
|
272
|
-
else {
|
285
|
+
} else {
|
273
286
|
return 1;
|
274
287
|
}
|
275
|
-
}
|
276
|
-
else if (paraLine instanceof BranchRenderObject) {
|
288
|
+
} else if (paraLine instanceof BranchRenderObject) {
|
277
289
|
let count = 0;
|
278
290
|
for (let i = 0; i < paraLine.length; i++) {
|
279
291
|
count += this.getRenderUnitLength(paraLine.getChild(i));
|
280
292
|
}
|
281
293
|
return count;
|
282
294
|
}
|
283
|
-
throw new Error('未到达计算位置')
|
295
|
+
throw new Error('未到达计算位置')
|
284
296
|
}
|
285
|
-
|
286
|
-
|
297
|
+
|
298
|
+
|
299
|
+
getInlineGroupRenderItem(item: InlineGroupElement): RenderObject | null {
|
300
|
+
const inlineGroupRender = item.createRenderObject(this.options, this.renderCtx) as InlineGroupRenderObject;
|
287
301
|
if (!inlineGroupRender) {
|
288
302
|
return null;
|
289
303
|
}
|
@@ -295,17 +309,16 @@ export class ElementMeasure {
|
|
295
309
|
if (child.measureRender) {
|
296
310
|
inlineGroupRender.addChild(child.measureRender);
|
297
311
|
}
|
298
|
-
}
|
299
|
-
else if (child instanceof InlineGroupElement) {
|
312
|
+
} else if (child instanceof InlineGroupElement) {
|
300
313
|
item.measureRender = this.getInlineGroupRenderItem(child);
|
301
314
|
if (item.measureRender) {
|
302
315
|
inlineGroupRender.addChild(item.measureRender);
|
303
316
|
}
|
304
|
-
}
|
305
|
-
|
306
|
-
throw new Error('未实现');
|
317
|
+
} else {
|
318
|
+
throw new Error('未实现')
|
307
319
|
}
|
308
320
|
}
|
321
|
+
|
309
322
|
ElementUtil.remeasureInlineGroupRender(inlineGroupRender);
|
310
323
|
//限制最小长度
|
311
324
|
if (item instanceof DataElementInlineGroup) {
|
@@ -314,14 +327,14 @@ export class ElementMeasure {
|
|
314
327
|
const nullText = new TextGroupElement();
|
315
328
|
nullText.isDecorate = true;
|
316
329
|
nullText.disableClick = true;
|
317
|
-
const baseTextProps = item.props;
|
318
|
-
nullText.text = baseTextProps.nullText;
|
330
|
+
const baseTextProps = (<any>item).props as DataEleBaseTextProps;
|
331
|
+
nullText.text = baseTextProps.nullText as string;
|
319
332
|
baseTextProps.nullTextProps.clone(nullText.props);
|
320
333
|
const nullTextRender = nullText.createRenderObject(this.options, this.renderCtx);
|
321
334
|
inlineGroupRender.insertChild(nullTextRender, 1);
|
322
335
|
ElementUtil.remeasureInlineGroupRender(inlineGroupRender);
|
323
336
|
}
|
324
|
-
const props = item.props;
|
337
|
+
const props = (<any>item).props as DataEleBaseProps;
|
325
338
|
let minLength = props.minLength ?? 14;
|
326
339
|
minLength = minLength < 14 ? 14 : minLength;
|
327
340
|
if (item instanceof DataElementInlineGroup && inlineGroupRender.rect.width < minLength) {
|
@@ -334,7 +347,9 @@ export class ElementMeasure {
|
|
334
347
|
}
|
335
348
|
return inlineGroupRender;
|
336
349
|
}
|
337
|
-
|
350
|
+
|
351
|
+
|
352
|
+
cutRenderItem(render: RenderObject, nextRender: RenderObject, limitWidth: number, lineEmpty: boolean, inCloseBody: boolean): ICutLineData {
|
338
353
|
if (render instanceof LeafRenderObject) {
|
339
354
|
if (render.rect.width > limitWidth && render instanceof TextGroupRenderObject) {
|
340
355
|
return this.cutTextRender(render, nextRender, limitWidth, lineEmpty, inCloseBody);
|
@@ -346,15 +361,15 @@ export class ElementMeasure {
|
|
346
361
|
return { firstItem: render, lastItem: null, br: render.element.type === 'br' };
|
347
362
|
}
|
348
363
|
return { firstItem: null, lastItem: null };
|
349
|
-
}
|
350
|
-
else if (render instanceof InlineGroupRenderObject) {
|
364
|
+
} else if (render instanceof InlineGroupRenderObject) {
|
351
365
|
return this.cutInlineGroupRenderItem(render, limitWidth, lineEmpty, inCloseBody);
|
352
366
|
}
|
353
|
-
throw new Error('到达计算边界')
|
367
|
+
throw new Error('到达计算边界')
|
354
368
|
}
|
355
|
-
|
369
|
+
|
370
|
+
cutTextRender(render: TextGroupRenderObject, nextRender: RenderObject, limitWidth: number, lineEmpty: boolean, inCloseBody: boolean): ICutLineData {
|
356
371
|
let sumWidth = 0;
|
357
|
-
const cutRender = render.clone();
|
372
|
+
const cutRender = render.clone() as TextGroupRenderObject;
|
358
373
|
cutRender.textMeasures.length = 0;
|
359
374
|
let i = 0;
|
360
375
|
for (; i < render.textMeasures.length; i++) {
|
@@ -373,17 +388,19 @@ export class ElementMeasure {
|
|
373
388
|
if (i <= 0) {
|
374
389
|
return { firstItem: null, lastItem: null };
|
375
390
|
}
|
391
|
+
|
376
392
|
cutRender.textMeasures = render.textMeasures.splice(0, i);
|
377
393
|
render.measure();
|
378
394
|
cutRender.measure();
|
379
395
|
return { firstItem: cutRender, lastItem: render, br: true };
|
380
396
|
}
|
397
|
+
|
381
398
|
/**
|
382
399
|
* 处理前置标点,前置标点不能出现在末尾
|
383
|
-
* @param render
|
384
|
-
* @param i
|
400
|
+
* @param render
|
401
|
+
* @param i
|
385
402
|
*/
|
386
|
-
patchHandleLeadingPunctuation(render, i, lineEmpty) {
|
403
|
+
private patchHandleLeadingPunctuation(render: TextGroupRenderObject, i: number, lineEmpty: boolean): number {
|
387
404
|
if (i === 1 && lineEmpty) {
|
388
405
|
return i;
|
389
406
|
}
|
@@ -392,13 +409,14 @@ export class ElementMeasure {
|
|
392
409
|
}
|
393
410
|
return i;
|
394
411
|
}
|
412
|
+
|
395
413
|
/**
|
396
414
|
* 处理后置标点,后置标点不能出现在行首
|
397
|
-
* @param render
|
398
|
-
* @param i
|
399
|
-
* @param lineEmpty
|
415
|
+
* @param render
|
416
|
+
* @param i
|
417
|
+
* @param lineEmpty
|
400
418
|
*/
|
401
|
-
patchHandlePostPunctuation(render, nextRender, i, inCloseBody, lineEmpty) {
|
419
|
+
private patchHandlePostPunctuation(render: TextGroupRenderObject, nextRender: RenderObject, i: number, inCloseBody: boolean, lineEmpty: boolean): number {
|
402
420
|
if (i === render.textMeasures.length - 1) {
|
403
421
|
//紧跟着的字符包含后置标点
|
404
422
|
if (this.containerStartSymbolInTextStart(nextRender)) {
|
@@ -408,12 +426,10 @@ export class ElementMeasure {
|
|
408
426
|
if (inCloseBody && this.containPostPunctuation(render.textMeasures[i]?.char)) {
|
409
427
|
if (this.containPostPunctuation(render.textMeasures[i + 1]?.char)) {
|
410
428
|
i--;
|
411
|
-
}
|
412
|
-
else {
|
429
|
+
} else {
|
413
430
|
i++;
|
414
431
|
}
|
415
|
-
}
|
416
|
-
else {
|
432
|
+
} else {
|
417
433
|
if (i <= 1) {
|
418
434
|
//debugger;
|
419
435
|
}
|
@@ -423,24 +439,27 @@ export class ElementMeasure {
|
|
423
439
|
}
|
424
440
|
return i;
|
425
441
|
}
|
442
|
+
|
426
443
|
/**
|
427
444
|
* 是否包含后置标点
|
428
|
-
* @param str
|
429
|
-
* @returns
|
445
|
+
* @param str
|
446
|
+
* @returns
|
430
447
|
*/
|
431
|
-
containPostPunctuation(str) {
|
448
|
+
private containPostPunctuation(str: string): boolean {
|
432
449
|
return '!),.:;?]}¨·ˇˉ―‖’”…∶、。〃々〉》」』】〕〗!"'),.:;?]`|}~¢'.indexOf(str) > -1;
|
433
450
|
}
|
451
|
+
|
434
452
|
//是否包含前置标点
|
435
|
-
containLeadingPunctuation(str) {
|
453
|
+
private containLeadingPunctuation(str: string): boolean {
|
436
454
|
return '‘“〈《「『【〔〖([{£'.indexOf(str) > -1;
|
437
455
|
}
|
456
|
+
|
438
457
|
/**
|
439
458
|
* 文本开头是否包含后置标点
|
440
|
-
* @param render
|
441
|
-
* @returns
|
459
|
+
* @param render
|
460
|
+
* @returns
|
442
461
|
*/
|
443
|
-
containerStartSymbolInTextStart(render) {
|
462
|
+
private containerStartSymbolInTextStart(render: RenderObject): boolean {
|
444
463
|
//return false;
|
445
464
|
if (render instanceof TextGroupRenderObject) {
|
446
465
|
if (render.textMeasures.length > 0) {
|
@@ -449,26 +468,27 @@ export class ElementMeasure {
|
|
449
468
|
}
|
450
469
|
return false;
|
451
470
|
}
|
452
|
-
|
471
|
+
|
472
|
+
cutFillNullRender(render: FillNullSpaceRenderObject, limitWidth: number): ICutLineData {
|
453
473
|
if (limitWidth === 0) {
|
454
|
-
return { firstItem: null, lastItem: null }
|
474
|
+
return { firstItem: null, lastItem: null }
|
455
475
|
}
|
456
476
|
if (render.rect.width > limitWidth) {
|
457
477
|
const cutRender = new FillNullSpaceRenderObject();
|
458
478
|
cutRender.rect.width = limitWidth;
|
459
479
|
cutRender.rect.height = render.rect.height;
|
460
480
|
render.rect.width = render.rect.width - limitWidth;
|
461
|
-
return { firstItem: cutRender, lastItem: render }
|
462
|
-
}
|
463
|
-
|
464
|
-
return { firstItem: render, lastItem: null };
|
481
|
+
return { firstItem: cutRender, lastItem: render }
|
482
|
+
} else {
|
483
|
+
return { firstItem: render, lastItem: null }
|
465
484
|
}
|
466
485
|
}
|
486
|
+
|
467
487
|
/**
|
468
488
|
* 行内编组元素超出行内可用空间,需要根据剩余空间长度进行截断
|
469
489
|
*/
|
470
|
-
cutInlineGroupRenderItem(render, limitWidth, emptyLine, inCloseBody) {
|
471
|
-
const cutRender = render.element.createRenderObject(this.options, this.renderCtx);
|
490
|
+
cutInlineGroupRenderItem(render: InlineGroupRenderObject, limitWidth: number, emptyLine: boolean, inCloseBody: boolean): ICutLineData {
|
491
|
+
const cutRender = render.element.createRenderObject(this.options, this.renderCtx) as InlineGroupRenderObject;
|
472
492
|
let x = 0;
|
473
493
|
let br = false;
|
474
494
|
const items = [...render.getItems()];
|
@@ -486,8 +506,7 @@ export class ElementMeasure {
|
|
486
506
|
}
|
487
507
|
br = childBr || br;
|
488
508
|
break;
|
489
|
-
}
|
490
|
-
else {
|
509
|
+
} else {
|
491
510
|
render.removeChild(child);
|
492
511
|
cutRender.addChild(child);
|
493
512
|
}
|
@@ -496,8 +515,7 @@ export class ElementMeasure {
|
|
496
515
|
br = true;
|
497
516
|
break;
|
498
517
|
}
|
499
|
-
}
|
500
|
-
else if (child instanceof InlineGroupRenderObject) {
|
518
|
+
} else if (child instanceof InlineGroupRenderObject) {
|
501
519
|
if (x + child.rect.width > limitWidth) {
|
502
520
|
const { firstItem, br: childBr } = this.cutInlineGroupRenderItem(child, limitWidth - x, emptyLine && cutRender.length === 0, inCloseBody);
|
503
521
|
if (firstItem) {
|
@@ -505,8 +523,7 @@ export class ElementMeasure {
|
|
505
523
|
}
|
506
524
|
br = childBr || br;
|
507
525
|
break;
|
508
|
-
}
|
509
|
-
else {
|
526
|
+
} else {
|
510
527
|
render.removeChild(child);
|
511
528
|
cutRender.addChild(child);
|
512
529
|
}
|
@@ -520,11 +537,12 @@ export class ElementMeasure {
|
|
520
537
|
ElementUtil.remeasureInlineGroupRender(render);
|
521
538
|
return { firstItem: cutRender, lastItem: render.length ? render : null, br };
|
522
539
|
}
|
540
|
+
|
523
541
|
/**
|
524
542
|
* 修改测量完毕后的元素状态
|
525
|
-
* @param ele
|
543
|
+
* @param ele
|
526
544
|
*/
|
527
|
-
setMeasureCompletedModifyFlag(ele) {
|
545
|
+
setMeasureCompletedModifyFlag(ele: Element): void {
|
528
546
|
if (ele instanceof BranchElement) {
|
529
547
|
for (let i = 0; i < ele.length; i++) {
|
530
548
|
this.setMeasureCompletedModifyFlag(ele.getChild(i));
|
@@ -532,7 +550,8 @@ export class ElementMeasure {
|
|
532
550
|
}
|
533
551
|
ele.modifyFlag = ModifyFlag.None;
|
534
552
|
}
|
535
|
-
|
553
|
+
|
554
|
+
clearPaintCache(ele: Element): void {
|
536
555
|
ele.beginMeasure();
|
537
556
|
if (ele instanceof BranchElement) {
|
538
557
|
for (let i = 0; i < ele.length; i++) {
|
@@ -540,12 +559,15 @@ export class ElementMeasure {
|
|
540
559
|
}
|
541
560
|
}
|
542
561
|
}
|
543
|
-
|
562
|
+
|
563
|
+
endMeasures(ele: Element): void {
|
544
564
|
if (ele instanceof BranchElement) {
|
545
565
|
for (let i = 0; i < ele.length; i++) {
|
546
566
|
this.endMeasures(ele.getChild(i));
|
547
567
|
}
|
548
568
|
}
|
549
569
|
}
|
570
|
+
|
571
|
+
|
572
|
+
|
550
573
|
}
|
551
|
-
//# sourceMappingURL=element-measure.js.map
|