@hailin-zheng/editor-core 1.0.5 → 1.0.6
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 +51 -0
- package/{src/med_editor/doc-ruler.ts → lib/doc-ruler.js} +73 -100
- package/lib/doc-ruler.js.map +1 -0
- package/lib/framework/common-util.d.ts +63 -0
- package/lib/framework/common-util.js +178 -0
- package/lib/framework/common-util.js.map +1 -0
- package/lib/framework/document-change.d.ts +265 -0
- package/{src/med_editor/framework/document-change.ts → lib/framework/document-change.js} +257 -307
- package/lib/framework/document-change.js.map +1 -0
- package/lib/framework/document-combine.d.ts +24 -0
- package/{src/med_editor/framework/document-combine.ts → lib/framework/document-combine.js} +11 -15
- package/lib/framework/document-combine.js.map +1 -0
- package/lib/framework/document-comment.d.ts +46 -0
- package/{src/med_editor/framework/document-comment.ts → lib/framework/document-comment.js} +37 -57
- package/lib/framework/document-comment.js.map +1 -0
- package/lib/framework/document-context.d.ts +149 -0
- package/{src/med_editor/framework/document-context.ts → lib/framework/document-context.js} +101 -181
- package/lib/framework/document-context.js.map +1 -0
- package/lib/framework/document-eval-func.d.ts +18 -0
- package/{src/med_editor/framework/document-eval-func.ts → lib/framework/document-eval-func.js} +11 -16
- package/lib/framework/document-eval-func.js.map +1 -0
- package/lib/framework/document-event.d.ts +213 -0
- package/{src/med_editor/framework/document-event.ts → lib/framework/document-event.js} +216 -244
- package/lib/framework/document-event.js.map +1 -0
- package/lib/framework/document-history.d.ts +26 -0
- package/{src/med_editor/framework/document-history.ts → lib/framework/document-history.js} +14 -25
- package/lib/framework/document-history.js.map +1 -0
- package/lib/framework/document-images-loader.d.ts +16 -0
- package/{src/med_editor/framework/document-images-loader.ts → lib/framework/document-images-loader.js} +17 -25
- package/lib/framework/document-images-loader.js.map +1 -0
- package/lib/framework/document-input-cursor.d.ts +78 -0
- package/{src/med_editor/framework/document-input-cursor.ts → lib/framework/document-input-cursor.js} +71 -76
- package/lib/framework/document-input-cursor.js.map +1 -0
- package/lib/framework/document-paint.d.ts +34 -0
- package/{src/med_editor/framework/document-paint.ts → lib/framework/document-paint.js} +28 -35
- package/lib/framework/document-paint.js.map +1 -0
- package/lib/framework/document-print-offscreen.d.ts +38 -0
- package/{src/med_editor/framework/document-print-offscreen.ts → lib/framework/document-print-offscreen.js} +19 -25
- package/lib/framework/document-print-offscreen.js.map +1 -0
- package/lib/framework/document-print.d.ts +60 -0
- package/{src/med_editor/framework/document-print.ts → lib/framework/document-print.js} +41 -57
- package/lib/framework/document-print.js.map +1 -0
- package/lib/framework/document-segmenter.d.ts +2 -0
- package/lib/framework/document-segmenter.js +106 -0
- package/lib/framework/document-segmenter.js.map +1 -0
- package/lib/framework/document-selection.d.ts +89 -0
- package/{src/med_editor/framework/document-selection.ts → lib/framework/document-selection.js} +84 -117
- package/lib/framework/document-selection.js.map +1 -0
- package/lib/framework/document-template.d.ts +4 -0
- package/{src/med_editor/framework/document-template.ts → lib/framework/document-template.js} +3 -3
- package/lib/framework/document-template.js.map +1 -0
- package/lib/framework/document-textline-mode.d.ts +7 -0
- package/lib/framework/document-textline-mode.js +30 -0
- package/lib/framework/document-textline-mode.js.map +1 -0
- package/lib/framework/element-define.d.ts +319 -0
- package/{src/med_editor/framework/element-define.ts → lib/framework/element-define.js} +206 -301
- package/lib/framework/element-define.js.map +1 -0
- package/lib/framework/element-event-define.d.ts +99 -0
- package/lib/framework/element-event-define.js +108 -0
- package/lib/framework/element-event-define.js.map +1 -0
- package/lib/framework/element-measure.d.ts +97 -0
- package/{src/med_editor/framework/element-measure.ts → lib/framework/element-measure.js} +121 -143
- package/lib/framework/element-measure.js.map +1 -0
- package/lib/framework/element-paint.d.ts +42 -0
- package/{src/med_editor/framework/element-paint.ts → lib/framework/element-paint.js} +37 -43
- package/lib/framework/element-paint.js.map +1 -0
- package/lib/framework/element-props.d.ts +301 -0
- package/{src/med_editor/framework/element-props.ts → lib/framework/element-props.js} +202 -331
- package/lib/framework/element-props.js.map +1 -0
- package/lib/framework/element-reader.d.ts +19 -0
- package/{src/med_editor/framework/element-reader.ts → lib/framework/element-reader.js} +30 -38
- package/lib/framework/element-reader.js.map +1 -0
- package/lib/framework/element-render-cut.d.ts +55 -0
- package/{src/med_editor/framework/element-render-cut.ts → lib/framework/element-render-cut.js} +106 -113
- package/lib/framework/element-render-cut.js.map +1 -0
- package/lib/framework/element-serialize.d.ts +30 -0
- package/{src/med_editor/framework/element-serialize.ts → lib/framework/element-serialize.js} +25 -40
- package/lib/framework/element-serialize.js.map +1 -0
- package/lib/framework/element-util.d.ts +369 -0
- package/{src/med_editor/framework/element-util.ts → lib/framework/element-util.js} +216 -318
- package/lib/framework/element-util.js.map +1 -0
- package/lib/framework/impl/checkbox/checkbox-impl.d.ts +24 -0
- package/{src/med_editor/framework/impl/checkbox/checkbox-impl.ts → lib/framework/impl/checkbox/checkbox-impl.js} +18 -25
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +1 -0
- package/lib/framework/impl/comments/comment-content-impl.d.ts +40 -0
- package/{src/med_editor/framework/impl/comments/comment-content-impl.ts → lib/framework/impl/comments/comment-content-impl.js} +31 -45
- package/lib/framework/impl/comments/comment-content-impl.js.map +1 -0
- package/lib/framework/impl/comments/comment-element-impl.d.ts +21 -0
- package/{src/med_editor/framework/impl/comments/comment-element-impl.ts → lib/framework/impl/comments/comment-element-impl.js} +18 -21
- package/lib/framework/impl/comments/comment-element-impl.js.map +1 -0
- package/lib/framework/impl/comments/comments-container-impl.d.ts +22 -0
- package/{src/med_editor/framework/impl/comments/comments-container-impl.ts → lib/framework/impl/comments/comments-container-impl.js} +15 -21
- package/lib/framework/impl/comments/comments-container-impl.js.map +1 -0
- package/lib/framework/impl/comments/comments-util.d.ts +12 -0
- package/{src/med_editor/framework/impl/comments/comments-util.ts → lib/framework/impl/comments/comments-util.js} +17 -34
- package/lib/framework/impl/comments/comments-util.js.map +1 -0
- package/lib/framework/impl/comments/validate-msg-impl.d.ts +21 -0
- package/{src/med_editor/framework/impl/comments/validate-msg-impl.ts → lib/framework/impl/comments/validate-msg-impl.js} +15 -26
- package/lib/framework/impl/comments/validate-msg-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-decorate-impl.d.ts +30 -0
- package/{src/med_editor/framework/impl/data-element/data-decorate-impl.ts → lib/framework/impl/data-element/data-decorate-impl.js} +21 -25
- package/lib/framework/impl/data-element/data-decorate-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-barcode.d.ts +31 -0
- package/{src/med_editor/framework/impl/data-element/data-element-barcode.ts → lib/framework/impl/data-element/data-element-barcode.js} +27 -39
- package/lib/framework/impl/data-element/data-element-barcode.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-base-impl.d.ts +68 -0
- package/{src/med_editor/framework/impl/data-element/data-element-base-impl.ts → lib/framework/impl/data-element/data-element-base-impl.js} +44 -73
- package/lib/framework/impl/data-element/data-element-base-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-check-impl.d.ts +35 -0
- package/{src/med_editor/framework/impl/data-element/data-element-check-impl.ts → lib/framework/impl/data-element/data-element-check-impl.js} +33 -46
- package/lib/framework/impl/data-element/data-element-check-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-date-impl.d.ts +23 -0
- package/{src/med_editor/framework/impl/data-element/data-element-date-impl.ts → lib/framework/impl/data-element/data-element-date-impl.js} +22 -39
- package/lib/framework/impl/data-element/data-element-date-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-group-impl.d.ts +23 -0
- package/{src/med_editor/framework/impl/data-element/data-element-group-impl.ts → lib/framework/impl/data-element/data-element-group-impl.js} +29 -49
- package/lib/framework/impl/data-element/data-element-group-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-image-impl.d.ts +30 -0
- package/{src/med_editor/framework/impl/data-element/data-element-image-impl.ts → lib/framework/impl/data-element/data-element-image-impl.js} +26 -36
- package/lib/framework/impl/data-element/data-element-image-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-list-impl.d.ts +22 -0
- package/{src/med_editor/framework/impl/data-element/data-element-list-impl.ts → lib/framework/impl/data-element/data-element-list-impl.js} +30 -41
- package/lib/framework/impl/data-element/data-element-list-impl.js.map +1 -0
- package/lib/framework/impl/data-element/data-element-text-impl.d.ts +23 -0
- package/{src/med_editor/framework/impl/data-element/data-element-text-impl.ts → lib/framework/impl/data-element/data-element-text-impl.js} +20 -34
- package/lib/framework/impl/data-element/data-element-text-impl.js.map +1 -0
- package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +21 -0
- package/{src/med_editor/framework/impl/decorate/fill-null-space-imple.ts → lib/framework/impl/decorate/fill-null-space-imple.js} +10 -15
- package/lib/framework/impl/decorate/fill-null-space-imple.js.map +1 -0
- package/lib/framework/impl/document/doc-body-impl.d.ts +27 -0
- package/{src/med_editor/framework/impl/document/doc-body-impl.ts → lib/framework/impl/document/doc-body-impl.js} +15 -31
- package/lib/framework/impl/document/doc-body-impl.js.map +1 -0
- package/lib/framework/impl/document/doc-body-part-impl.d.ts +30 -0
- package/{src/med_editor/framework/impl/document/doc-body-part-impl.ts → lib/framework/impl/document/doc-body-part-impl.js} +16 -26
- package/lib/framework/impl/document/doc-body-part-impl.js.map +1 -0
- package/lib/framework/impl/document/doc-container-impl.d.ts +16 -0
- package/lib/framework/impl/document/doc-container-impl.js +21 -0
- package/lib/framework/impl/document/doc-container-impl.js.map +1 -0
- package/lib/framework/impl/document/doc-footer-impl.d.ts +26 -0
- package/{src/med_editor/framework/impl/document/doc-footer-impl.ts → lib/framework/impl/document/doc-footer-impl.js} +18 -29
- package/lib/framework/impl/document/doc-footer-impl.js.map +1 -0
- package/lib/framework/impl/document/doc-header-impl.d.ts +26 -0
- package/{src/med_editor/framework/impl/document/doc-header-impl.ts → lib/framework/impl/document/doc-header-impl.js} +16 -33
- package/lib/framework/impl/document/doc-header-impl.js.map +1 -0
- package/lib/framework/impl/document/doc-impl.d.ts +61 -0
- package/{src/med_editor/framework/impl/document/doc-impl.ts → lib/framework/impl/document/doc-impl.js} +42 -59
- package/lib/framework/impl/document/doc-impl.js.map +1 -0
- package/lib/framework/impl/media-formula/menstrual-history.d.ts +35 -0
- package/{src/med_editor/framework/impl/media-formula/menstrual-history.ts → lib/framework/impl/media-formula/menstrual-history.js} +35 -57
- package/lib/framework/impl/media-formula/menstrual-history.js.map +1 -0
- package/lib/framework/impl/paragraph/p-impl.d.ts +45 -0
- package/{src/med_editor/framework/impl/paragraph/p-impl.ts → lib/framework/impl/paragraph/p-impl.js} +28 -62
- package/lib/framework/impl/paragraph/p-impl.js.map +1 -0
- package/lib/framework/impl/picture/image-impl.d.ts +31 -0
- package/{src/med_editor/framework/impl/picture/image-impl.ts → lib/framework/impl/picture/image-impl.js} +23 -35
- package/lib/framework/impl/picture/image-impl.js.map +1 -0
- package/lib/framework/impl/radio/radio-impl.d.ts +22 -0
- package/{src/med_editor/framework/impl/radio/radio-impl.ts → lib/framework/impl/radio/radio-impl.js} +19 -26
- package/lib/framework/impl/radio/radio-impl.js.map +1 -0
- package/lib/framework/impl/symbol/br-symbol-impl.d.ts +22 -0
- package/{src/med_editor/framework/impl/symbol/br-symbol-impl.ts → lib/framework/impl/symbol/br-symbol-impl.js} +14 -20
- package/lib/framework/impl/symbol/br-symbol-impl.js.map +1 -0
- package/lib/framework/impl/symbol/p-symbol-impl.d.ts +19 -0
- package/{src/med_editor/framework/impl/symbol/p-symbol-impl.ts → lib/framework/impl/symbol/p-symbol-impl.js} +11 -14
- package/lib/framework/impl/symbol/p-symbol-impl.js.map +1 -0
- package/lib/framework/impl/table/table-cell-impl.d.ts +37 -0
- package/{src/med_editor/framework/impl/table/table-cell-impl.ts → lib/framework/impl/table/table-cell-impl.js} +28 -39
- package/lib/framework/impl/table/table-cell-impl.js.map +1 -0
- package/lib/framework/impl/table/table-impl.d.ts +55 -0
- package/{src/med_editor/framework/impl/table/table-impl.ts → lib/framework/impl/table/table-impl.js} +82 -120
- package/lib/framework/impl/table/table-impl.js.map +1 -0
- package/lib/framework/impl/table/table-row-impl.d.ts +26 -0
- package/{src/med_editor/framework/impl/table/table-row-impl.ts → lib/framework/impl/table/table-row-impl.js} +16 -24
- package/lib/framework/impl/table/table-row-impl.js.map +1 -0
- package/lib/framework/impl/table/table-split-cell-patch.d.ts +20 -0
- package/{src/med_editor/framework/impl/table/table-split-cell-patch.ts → lib/framework/impl/table/table-split-cell-patch.js} +22 -31
- package/lib/framework/impl/table/table-split-cell-patch.js.map +1 -0
- package/lib/framework/impl/table/table-split-cell.d.ts +90 -0
- package/{src/med_editor/framework/impl/table/table-split-cell.ts → lib/framework/impl/table/table-split-cell.js} +94 -105
- package/lib/framework/impl/table/table-split-cell.js.map +1 -0
- package/lib/framework/impl/table/table-util.d.ts +150 -0
- package/{src/med_editor/framework/impl/table/table-util.ts → lib/framework/impl/table/table-util.js} +157 -195
- package/lib/framework/impl/table/table-util.js.map +1 -0
- package/lib/framework/impl/text/text-impl.d.ts +32 -0
- package/{src/med_editor/framework/impl/text/text-impl.ts → lib/framework/impl/text/text-impl.js} +32 -47
- package/lib/framework/impl/text/text-impl.js.map +1 -0
- package/lib/framework/impl/text/track-run-impl.d.ts +27 -0
- package/{src/med_editor/framework/impl/text/track-run-impl.ts → lib/framework/impl/text/track-run-impl.js} +28 -51
- package/lib/framework/impl/text/track-run-impl.js.map +1 -0
- package/lib/framework/notify.d.ts +13 -0
- package/{src/med_editor/framework/notify.ts → lib/framework/notify.js} +36 -50
- package/lib/framework/notify.js.map +1 -0
- package/lib/framework/range-util.d.ts +40 -0
- package/{src/med_editor/framework/range-util.ts → lib/framework/range-util.js} +71 -80
- package/lib/framework/range-util.js.map +1 -0
- package/lib/framework/render-context.d.ts +91 -0
- package/{src/med_editor/framework/render-context.ts → lib/framework/render-context.js} +64 -111
- package/lib/framework/render-context.js.map +1 -0
- package/lib/framework/render-define.d.ts +109 -0
- package/{src/med_editor/framework/render-define.ts → lib/framework/render-define.js} +61 -90
- package/lib/framework/render-define.js.map +1 -0
- package/lib/framework/selection-overlays.d.ts +30 -0
- package/{src/med_editor/framework/selection-overlays.ts → lib/framework/selection-overlays.js} +16 -26
- package/lib/framework/selection-overlays.js.map +1 -0
- package/lib/texteditor.d.ts +318 -0
- package/{src/med_editor/texteditor.ts → lib/texteditor.js} +189 -287
- package/lib/texteditor.js.map +1 -0
- package/lib/util/subject.d.ts +34 -0
- package/lib/util/subject.js +88 -0
- package/lib/util/subject.js.map +1 -0
- package/lib/util/table-bind.d.ts +5 -0
- package/{src/med_editor/util/table-bind.ts → lib/util/table-bind.js} +2 -2
- package/lib/util/table-bind.js.map +1 -0
- package/package.json +6 -2
- package/src/med_editor/framework/common-util.ts +0 -200
- package/src/med_editor/framework/document-segmenter.ts +0 -211
- package/src/med_editor/framework/document-textline-mode.ts +0 -34
- package/src/med_editor/framework/element-event-define.ts +0 -142
- package/src/med_editor/framework/impl/document/doc-container-impl.ts +0 -24
- package/src/med_editor/util/subject.ts +0 -118
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225.json +0 -3573
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225.json +0 -3573
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225bug.json +0 -315
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/211/271/346/263/250.json +0 -122
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/226/207/346/241/243/351/252/214/350/257/201.json +0 -3599
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/351/225/277/346/226/207/346/234/254.json +0 -24586
- package/src/med_editor//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225.json +0 -2874
- package/src/med_editor//346/211/213/346/234/257/350/256/260/345/275/225.json +0 -341
- package/src/med_editor//346/231/256/351/200/232doc/347/261/273/346/226/207/346/241/243.json +0 -2201
- package/src/med_editor//346/243/200/351/252/214/347/224/263/350/257/267/345/215/225.json +0 -1069
- package/src/med_editor//347/227/205/347/250/213/345/275/225//345/206/205/351/225/234/344/270/213/346/262/273/347/226/227/350/256/260/345/275/225.json +0 -125
- package/src/med_editor//347/227/205/347/250/213/345/275/225//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225/346/250/241/346/235/277.json +0 -86
- package/src/med_editor//347/227/205/347/250/213/345/275/225//346/227/245/345/270/270/347/227/205/347/250/213/350/256/260/345/275/225.json +0 -115
- package/src/med_editor//347/227/205/347/250/213/345/275/225//346/237/245/346/210/277/350/256/260/345/275/2251.json +0 -108
- package/src/med_editor//347/227/205/347/250/213/345/275/225//351/246/226/346/254/241/344/270/212/347/272/247/345/214/273/345/270/210/346/237/245/346/210/277/350/256/260/345/275/225.json +0 -272
- package/src/med_editor//351/225/277/346/234/237/345/214/273/345/230/261/345/215/225.json +0 -1070
- package/tsconfig.json +0 -25
- package/webpack.config.js +0 -46
@@ -0,0 +1,40 @@
|
|
1
|
+
import { BranchElement, Element, LeafElement, SelectionContentRange } from "./element-define";
|
2
|
+
import { TableElement } from "./impl/table/table-impl";
|
3
|
+
import { SelectionState } from './document-selection';
|
4
|
+
export declare class RangeUtil {
|
5
|
+
static getSelctionRange(startControl: LeafElement, startOffset: number, endControl: LeafElement, endOffset: number, ancestorCommonControl: BranchElement): SelectionContentRange;
|
6
|
+
static getCollapsedRange(startControl: LeafElement, startOffset: number, endOffset: number, ancestorCommonControl: BranchElement): SelectionContentRange;
|
7
|
+
/**
|
8
|
+
* 获取表格选区的内容
|
9
|
+
* @param startControl
|
10
|
+
* @param startOffset
|
11
|
+
* @param endControl
|
12
|
+
* @param endOffset
|
13
|
+
* @param tb
|
14
|
+
*/
|
15
|
+
static getTableSelectionRange(startControl: LeafElement, startOffset: number, endControl: LeafElement, endOffset: number, tb: TableElement): SelectionContentRange;
|
16
|
+
private static getStartForbackTreeData;
|
17
|
+
private static getEndForwardTreeData;
|
18
|
+
private static getChildTreeData;
|
19
|
+
private static setRangeFullSelected;
|
20
|
+
static rangeEquals(selRange1: SelectionContentRange, selRange2: SelectionContentRange): boolean;
|
21
|
+
/**
|
22
|
+
* 根据选区范围更正选区内容状态
|
23
|
+
* @param selectedRange
|
24
|
+
* @param selectionState
|
25
|
+
*/
|
26
|
+
static fixSelectionStateByRange(selectionState: SelectionState): boolean;
|
27
|
+
static getStartRangeTarget(parentRange: SelectionContentRange): SelectionContentRange | null;
|
28
|
+
static getEndRangeTarget(parentRange: SelectionContentRange): SelectionContentRange | null;
|
29
|
+
/**
|
30
|
+
* 循环递归执行选区对象方法
|
31
|
+
* @param range
|
32
|
+
* @param handler
|
33
|
+
*/
|
34
|
+
static recursionTraversalRangeHandler(range: SelectionContentRange, handler: (range: SelectionContentRange) => void): void;
|
35
|
+
/**
|
36
|
+
* 判断元素是否被完全选中
|
37
|
+
* @param range
|
38
|
+
*/
|
39
|
+
static checkElementFullInRange(range: SelectionContentRange, ele: Element): boolean;
|
40
|
+
}
|
@@ -1,17 +1,14 @@
|
|
1
|
-
import { BranchElement,
|
1
|
+
import { BranchElement, LeafElement } from "./element-define";
|
2
2
|
import { ElementUtil } from "./element-util";
|
3
3
|
import { TableCellElement } from "./impl/table/table-cell-impl";
|
4
4
|
import { TableElement } from "./impl/table/table-impl";
|
5
5
|
import { TableRowElement } from "./impl/table/table-row-impl";
|
6
|
-
import { SelectionRange
|
6
|
+
import { SelectionRange } from './document-selection';
|
7
7
|
import { TextGroupElement } from "./impl/text/text-impl";
|
8
|
-
|
9
|
-
|
10
8
|
export class RangeUtil {
|
11
|
-
|
12
|
-
static getSelctionRange(startControl: LeafElement, startOffset: number, endControl: LeafElement, endOffset: number, ancestorCommonControl: BranchElement): SelectionContentRange {
|
9
|
+
static getSelctionRange(startControl, startOffset, endControl, endOffset, ancestorCommonControl) {
|
13
10
|
if (ancestorCommonControl instanceof TableElement || ancestorCommonControl instanceof TableRowElement) {
|
14
|
-
const tbElement = ancestorCommonControl instanceof TableElement ? ancestorCommonControl : ancestorCommonControl.parent
|
11
|
+
const tbElement = ancestorCommonControl instanceof TableElement ? ancestorCommonControl : ancestorCommonControl.parent;
|
15
12
|
return this.getTableSelectionRange(startControl, startOffset, endControl, endOffset, tbElement);
|
16
13
|
}
|
17
14
|
if (startControl === endControl && startControl.parent === ancestorCommonControl) {
|
@@ -24,36 +21,34 @@ export class RangeUtil {
|
|
24
21
|
const commonRange = this.getChildTreeData(ancestorCommonControl, startIndex + 1, endIndex);
|
25
22
|
if (this.rangeEquals(startRange, endRange)) {
|
26
23
|
commonRange.selectedChildren.unshift(startRange);
|
27
|
-
}
|
24
|
+
}
|
25
|
+
else {
|
28
26
|
commonRange.selectedChildren.unshift(startRange);
|
29
27
|
commonRange.selectedChildren.push(endRange);
|
30
28
|
}
|
31
29
|
this.setRangeFullSelected(commonRange);
|
32
30
|
return commonRange;
|
33
31
|
}
|
34
|
-
|
35
|
-
static getCollapsedRange(startControl: LeafElement, startOffset: number, endOffset: number, ancestorCommonControl: BranchElement): SelectionContentRange {
|
32
|
+
static getCollapsedRange(startControl, startOffset, endOffset, ancestorCommonControl) {
|
36
33
|
const range = {
|
37
34
|
target: ancestorCommonControl,
|
38
35
|
isFullSelected: false,
|
39
36
|
startOffset: startControl.getIndex(),
|
40
37
|
endOffset: startControl.getIndex() + 1,
|
41
38
|
selectedChildren: [this.getChildTreeData(startControl, startOffset, endOffset)]
|
42
|
-
}
|
39
|
+
};
|
43
40
|
this.setRangeFullSelected(range);
|
44
41
|
return range;
|
45
|
-
|
46
42
|
}
|
47
|
-
|
48
43
|
/**
|
49
44
|
* 获取表格选区的内容
|
50
|
-
* @param startControl
|
51
|
-
* @param startOffset
|
52
|
-
* @param endControl
|
53
|
-
* @param endOffset
|
54
|
-
* @param tb
|
45
|
+
* @param startControl
|
46
|
+
* @param startOffset
|
47
|
+
* @param endControl
|
48
|
+
* @param endOffset
|
49
|
+
* @param tb
|
55
50
|
*/
|
56
|
-
static getTableSelectionRange(startControl
|
51
|
+
static getTableSelectionRange(startControl, startOffset, endControl, endOffset, tb) {
|
57
52
|
const startCell = ElementUtil.getParentByType(startControl, TableCellElement);
|
58
53
|
const endCell = ElementUtil.getParentByType(endControl, TableCellElement);
|
59
54
|
if (startCell && endCell && startCell.parent.parent === tb && endCell.parent.parent === tb) {
|
@@ -67,19 +62,19 @@ export class RangeUtil {
|
|
67
62
|
if (startRowIndex > endRowIndex) {
|
68
63
|
[startRowIndex, endRowIndex] = [endRowIndex, startRowIndex];
|
69
64
|
}
|
70
|
-
const region = { startRow: startRowIndex, endRow: endRowIndex, startCol: startColIndex, endCol: endColIndex }
|
65
|
+
const region = { startRow: startRowIndex, endRow: endRowIndex, startCol: startColIndex, endCol: endColIndex }; //this.getTableRectSelectedRegion(tb, { startRow: startRowIndex, endRow: endRowIndex, startCol: startColIndex, endCol: endColIndex });
|
71
66
|
startRowIndex = region.startRow;
|
72
67
|
endRowIndex = region.endRow;
|
73
68
|
startColIndex = region.startCol;
|
74
69
|
endColIndex = region.endCol;
|
75
|
-
const rowRanges
|
70
|
+
const rowRanges = [];
|
76
71
|
for (let i = startRowIndex; i <= endRowIndex; i++) {
|
77
|
-
const cellRanges
|
78
|
-
const row = tb.getChild(i)
|
72
|
+
const cellRanges = [];
|
73
|
+
const row = tb.getChild(i);
|
79
74
|
for (let j = startColIndex; j <= endColIndex; j++) {
|
80
|
-
const cell = row.getChild(j)
|
81
|
-
const cellFirstLeafElement = ElementUtil.getFirstLeafElement(cell)
|
82
|
-
const cellLastLeafElement = ElementUtil.getLastLeafElement(cell)
|
75
|
+
const cell = row.getChild(j);
|
76
|
+
const cellFirstLeafElement = ElementUtil.getFirstLeafElement(cell);
|
77
|
+
const cellLastLeafElement = ElementUtil.getLastLeafElement(cell);
|
83
78
|
if (!cellFirstLeafElement && !cell.isNotBeMergedCell()) {
|
84
79
|
cellRanges.push({
|
85
80
|
target: cell,
|
@@ -88,12 +83,13 @@ export class RangeUtil {
|
|
88
83
|
endOffset: 1,
|
89
84
|
selectedChildren: []
|
90
85
|
});
|
91
|
-
}
|
86
|
+
}
|
87
|
+
else {
|
92
88
|
const cellRange = this.getSelctionRange(cellFirstLeafElement, 0, cellLastLeafElement, 1, cell);
|
93
89
|
cellRanges.push(cellRange);
|
94
90
|
}
|
95
91
|
}
|
96
|
-
const rowRange
|
92
|
+
const rowRange = {
|
97
93
|
target: row,
|
98
94
|
isFullSelected: false,
|
99
95
|
startOffset: startColIndex,
|
@@ -103,7 +99,7 @@ export class RangeUtil {
|
|
103
99
|
rowRange.isFullSelected = startColIndex === 0 && endColIndex === row.length - 1;
|
104
100
|
rowRanges.push(rowRange);
|
105
101
|
}
|
106
|
-
const tableRange
|
102
|
+
const tableRange = {
|
107
103
|
target: tb,
|
108
104
|
isFullSelected: false,
|
109
105
|
startOffset: startRowIndex,
|
@@ -112,14 +108,12 @@ export class RangeUtil {
|
|
112
108
|
};
|
113
109
|
tableRange.isFullSelected = startRowIndex === 0 && endRowIndex === tb.length - 1 && tableRange.selectedChildren.every(item => item.isFullSelected);
|
114
110
|
return tableRange;
|
115
|
-
}
|
111
|
+
}
|
112
|
+
else {
|
116
113
|
throw new Error('当前单元格和表格不对应');
|
117
114
|
}
|
118
115
|
}
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
private static getStartForbackTreeData(control: Element, ancestorCommonControl: BranchElement, childData: SelectionContentRange | null, offset: number): SelectionContentRange {
|
116
|
+
static getStartForbackTreeData(control, ancestorCommonControl, childData, offset) {
|
123
117
|
if (!control) {
|
124
118
|
debugger;
|
125
119
|
}
|
@@ -128,13 +122,15 @@ export class RangeUtil {
|
|
128
122
|
const range = this.getChildTreeData(parent, parent.getChildIndex(control) + 1, -1);
|
129
123
|
if (childData) {
|
130
124
|
range.selectedChildren.unshift(childData);
|
131
|
-
}
|
125
|
+
}
|
126
|
+
else {
|
132
127
|
range.selectedChildren.unshift(this.getChildTreeData(control, offset, -1));
|
133
128
|
}
|
134
129
|
this.setRangeFullSelected(range);
|
135
130
|
return this.getStartForbackTreeData(parent, ancestorCommonControl, range, -99);
|
136
|
-
}
|
137
|
-
|
131
|
+
}
|
132
|
+
else {
|
133
|
+
const ancestorRange = {
|
138
134
|
target: ancestorCommonControl,
|
139
135
|
startOffset: -1,
|
140
136
|
endOffset: -1,
|
@@ -149,22 +145,21 @@ export class RangeUtil {
|
|
149
145
|
return ancestorRange;
|
150
146
|
}
|
151
147
|
}
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
private static getEndForwardTreeData(control: Element, ancestorCommonControl: BranchElement, childData: SelectionContentRange | null, offset: number): SelectionContentRange {
|
148
|
+
static getEndForwardTreeData(control, ancestorCommonControl, childData, offset) {
|
156
149
|
const parent = control.parent;
|
157
150
|
if (parent !== ancestorCommonControl) {
|
158
151
|
const range = this.getChildTreeData(parent, 0, parent.getChildIndex(control));
|
159
152
|
if (childData) {
|
160
153
|
range.selectedChildren.push(childData);
|
161
|
-
}
|
154
|
+
}
|
155
|
+
else {
|
162
156
|
range.selectedChildren.push(this.getChildTreeData(control, 0, offset));
|
163
157
|
}
|
164
158
|
this.setRangeFullSelected(range);
|
165
159
|
return this.getEndForwardTreeData(parent, ancestorCommonControl, range, -99);
|
166
|
-
}
|
167
|
-
|
160
|
+
}
|
161
|
+
else {
|
162
|
+
const ancestorRange = {
|
168
163
|
target: ancestorCommonControl,
|
169
164
|
startOffset: 0,
|
170
165
|
endOffset: 0,
|
@@ -172,16 +167,15 @@ export class RangeUtil {
|
|
172
167
|
selectedChildren: []
|
173
168
|
};
|
174
169
|
if (!childData) {
|
175
|
-
childData = this.getChildTreeData(control, 0, offset)
|
170
|
+
childData = this.getChildTreeData(control, 0, offset);
|
176
171
|
}
|
177
172
|
ancestorRange.selectedChildren.push(childData);
|
178
173
|
this.setRangeFullSelected(ancestorRange);
|
179
174
|
return ancestorRange;
|
180
175
|
}
|
181
176
|
}
|
182
|
-
|
183
|
-
|
184
|
-
const range: SelectionContentRange = {
|
177
|
+
static getChildTreeData(control, start, end) {
|
178
|
+
const range = {
|
185
179
|
target: control,
|
186
180
|
isFullSelected: false,
|
187
181
|
startOffset: start,
|
@@ -191,11 +185,12 @@ export class RangeUtil {
|
|
191
185
|
if (control instanceof LeafElement) {
|
192
186
|
if (control instanceof TextGroupElement) {
|
193
187
|
range.endOffset = end === -1 ? control.text.length : end;
|
194
|
-
}
|
188
|
+
}
|
189
|
+
else {
|
195
190
|
range.endOffset = end === -1 ? 1 : end;
|
196
191
|
}
|
197
|
-
|
198
|
-
|
192
|
+
}
|
193
|
+
else if (control instanceof BranchElement) {
|
199
194
|
end = end === -1 ? control.length : end;
|
200
195
|
for (let i = start; i < end; i++) {
|
201
196
|
const child = control.getChild(i);
|
@@ -205,16 +200,17 @@ export class RangeUtil {
|
|
205
200
|
this.setRangeFullSelected(range);
|
206
201
|
return range;
|
207
202
|
}
|
208
|
-
|
209
|
-
private static setRangeFullSelected(selectionRange: SelectionContentRange): void {
|
203
|
+
static setRangeFullSelected(selectionRange) {
|
210
204
|
if (selectionRange.target instanceof LeafElement) {
|
211
205
|
const { startOffset, endOffset } = selectionRange;
|
212
206
|
if (selectionRange.target instanceof TextGroupElement) {
|
213
|
-
selectionRange.isFullSelected = startOffset === 0 && endOffset === selectionRange.target.text.length
|
214
|
-
}
|
207
|
+
selectionRange.isFullSelected = startOffset === 0 && endOffset === selectionRange.target.text.length;
|
208
|
+
}
|
209
|
+
else {
|
215
210
|
selectionRange.isFullSelected = startOffset === 0 && endOffset === 1;
|
216
211
|
}
|
217
|
-
}
|
212
|
+
}
|
213
|
+
else if (selectionRange.target instanceof BranchElement) {
|
218
214
|
const parent = selectionRange.target;
|
219
215
|
const selectedChildren = selectionRange.selectedChildren;
|
220
216
|
//被合并的table-cell,内容为empty
|
@@ -235,24 +231,21 @@ export class RangeUtil {
|
|
235
231
|
selectionRange.isFullSelected = firstItemIndex === 0 && firstItem.isFullSelected && lastItemIndex === parent.length - 1 && lastItem.isFullSelected;
|
236
232
|
}
|
237
233
|
}
|
238
|
-
|
239
|
-
static rangeEquals(selRange1: SelectionContentRange, selRange2: SelectionContentRange): boolean {
|
234
|
+
static rangeEquals(selRange1, selRange2) {
|
240
235
|
return selRange1.target === selRange2.target && selRange1.startOffset === selRange2.startOffset && selRange1.endOffset === selRange2.endOffset;
|
241
236
|
}
|
242
|
-
|
243
|
-
|
244
237
|
/**
|
245
238
|
* 根据选区范围更正选区内容状态
|
246
|
-
* @param selectedRange
|
247
|
-
* @param selectionState
|
239
|
+
* @param selectedRange
|
240
|
+
* @param selectionState
|
248
241
|
*/
|
249
|
-
static fixSelectionStateByRange(selectionState
|
242
|
+
static fixSelectionStateByRange(selectionState) {
|
250
243
|
const { startControl, startOffset, endControl, endOffset, selectedRange } = selectionState;
|
251
244
|
if (!selectedRange || !startControl) {
|
252
245
|
return false;
|
253
246
|
}
|
254
|
-
const startRange = this.getStartRangeTarget(selectedRange)
|
255
|
-
const endRange = this.getEndRangeTarget(selectedRange)
|
247
|
+
const startRange = this.getStartRangeTarget(selectedRange);
|
248
|
+
const endRange = this.getEndRangeTarget(selectedRange);
|
256
249
|
if (startRange.target !== startControl || startRange.startOffset !== startOffset || endRange.target !== endControl || endRange.endOffset !== endOffset) {
|
257
250
|
selectionState.clear();
|
258
251
|
const ssRange = new SelectionRange();
|
@@ -263,11 +256,11 @@ export class RangeUtil {
|
|
263
256
|
}
|
264
257
|
return false;
|
265
258
|
}
|
266
|
-
|
267
|
-
static getStartRangeTarget(parentRange: SelectionContentRange): SelectionContentRange | null {
|
259
|
+
static getStartRangeTarget(parentRange) {
|
268
260
|
if (parentRange.target instanceof LeafElement) {
|
269
261
|
return parentRange;
|
270
|
-
}
|
262
|
+
}
|
263
|
+
else {
|
271
264
|
for (let i = 0; i < parentRange.selectedChildren.length; i++) {
|
272
265
|
const res = this.getStartRangeTarget(parentRange.selectedChildren[i]);
|
273
266
|
if (res) {
|
@@ -277,11 +270,11 @@ export class RangeUtil {
|
|
277
270
|
}
|
278
271
|
return null;
|
279
272
|
}
|
280
|
-
|
281
|
-
static getEndRangeTarget(parentRange: SelectionContentRange): SelectionContentRange | null {
|
273
|
+
static getEndRangeTarget(parentRange) {
|
282
274
|
if (parentRange.target instanceof LeafElement) {
|
283
275
|
return parentRange;
|
284
|
-
}
|
276
|
+
}
|
277
|
+
else {
|
285
278
|
for (let i = parentRange.selectedChildren.length - 1; i >= 0; i--) {
|
286
279
|
const res = this.getEndRangeTarget(parentRange.selectedChildren[i]);
|
287
280
|
if (res) {
|
@@ -291,24 +284,22 @@ export class RangeUtil {
|
|
291
284
|
}
|
292
285
|
return null;
|
293
286
|
}
|
294
|
-
|
295
287
|
/**
|
296
288
|
* 循环递归执行选区对象方法
|
297
|
-
* @param range
|
298
|
-
* @param handler
|
289
|
+
* @param range
|
290
|
+
* @param handler
|
299
291
|
*/
|
300
|
-
static recursionTraversalRangeHandler(range
|
292
|
+
static recursionTraversalRangeHandler(range, handler) {
|
301
293
|
handler(range);
|
302
294
|
for (let i = 0; i < range.selectedChildren.length; i++) {
|
303
295
|
this.recursionTraversalRangeHandler(range.selectedChildren[i], handler);
|
304
296
|
}
|
305
297
|
}
|
306
|
-
|
307
298
|
/**
|
308
299
|
* 判断元素是否被完全选中
|
309
|
-
* @param range
|
300
|
+
* @param range
|
310
301
|
*/
|
311
|
-
static checkElementFullInRange(range
|
302
|
+
static checkElementFullInRange(range, ele) {
|
312
303
|
let res = false;
|
313
304
|
this.recursionTraversalRangeHandler(range, (childRange) => {
|
314
305
|
if (childRange.target === ele && childRange.isFullSelected) {
|
@@ -317,5 +308,5 @@ export class RangeUtil {
|
|
317
308
|
});
|
318
309
|
return res;
|
319
310
|
}
|
320
|
-
|
321
|
-
|
311
|
+
}
|
312
|
+
//# sourceMappingURL=range-util.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"range-util.js","sourceRoot":"","sources":["../../src/med_editor/framework/range-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAW,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,OAAO,SAAS;IAElB,MAAM,CAAC,gBAAgB,CAAC,YAAyB,EAAE,WAAmB,EAAE,UAAuB,EAAE,SAAiB,EAAE,qBAAoC;QACpJ,IAAI,qBAAqB,YAAY,YAAY,IAAI,qBAAqB,YAAY,eAAe,EAAE;YACnG,MAAM,SAAS,GAAG,qBAAqB,YAAY,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAsB,CAAC;YACvI,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SACnG;QACD,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,CAAC,MAAM,KAAK,qBAAqB,EAAE;YAC9E,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;SAC9F;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5H,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpH,MAAM,UAAU,GAAG,qBAAqB,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;YACxC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACpD;aAAM;YACH,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,YAAyB,EAAE,WAAmB,EAAE,SAAiB,EAAE,qBAAoC;QAC5H,MAAM,KAAK,GAAG;YACV,MAAM,EAAE,qBAAqB;YAC7B,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE;YACpC,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;YACtC,gBAAgB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;SAClF,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IAEjB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,sBAAsB,CAAC,YAAyB,EAAE,WAAmB,EAAE,UAAuB,EAAE,SAAiB,EAAE,EAAgB;QACtI,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YACxF,IAAI,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChD,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,aAAa,GAAG,WAAW,EAAE;gBAC7B,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;aAC/D;YACD,IAAI,aAAa,GAAG,WAAW,EAAE;gBAC7B,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;aAC/D;YACD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA,sIAAsI;YACpP,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,MAAM,SAAS,GAAiC,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;gBAC/C,MAAM,UAAU,GAAiC,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAoB,CAAC;gBAC9C,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;oBAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAqB,CAAC;oBACjD,MAAM,oBAAoB,GAAG,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAgB,CAAC;oBAClF,MAAM,mBAAmB,GAAG,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAgB,CAAC;oBAChF,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;wBACpD,UAAU,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE,IAAI;4BACZ,cAAc,EAAE,IAAI;4BACpB,WAAW,EAAE,CAAC;4BACd,SAAS,EAAE,CAAC;4BACZ,gBAAgB,EAAE,EAAE;yBACvB,CAAC,CAAC;qBACN;yBAAM;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC/F,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC9B;iBACJ;gBACD,MAAM,QAAQ,GAA0B;oBACpC,MAAM,EAAE,GAAG;oBACX,cAAc,EAAE,KAAK;oBACrB,WAAW,EAAE,aAAa;oBAC1B,SAAS,EAAE,WAAW;oBACtB,gBAAgB,EAAE,CAAC,GAAG,UAAU,CAAC;iBACpC,CAAC;gBACF,QAAQ,CAAC,cAAc,GAAG,aAAa,KAAK,CAAC,IAAI,WAAW,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5B;YACD,MAAM,UAAU,GAA0B;gBACtC,MAAM,EAAE,EAAE;gBACV,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,aAAa;gBAC1B,SAAS,EAAE,WAAW;gBACtB,gBAAgB,EAAE,CAAC,GAAG,SAAS,CAAC;aACnC,CAAC;YACF,UAAU,CAAC,cAAc,GAAG,aAAa,KAAK,CAAC,IAAI,WAAW,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnJ,OAAO,UAAU,CAAC;SACrB;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;SAClC;IACL,CAAC;IAIO,MAAM,CAAC,uBAAuB,CAAC,OAAgB,EAAE,qBAAoC,EAAE,SAAuC,EAAE,MAAc;QAClJ,IAAI,CAAC,OAAO,EAAE;YACV,QAAQ,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,KAAK,qBAAqB,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,SAAS,EAAE;gBACX,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC7C;iBAAM;gBACH,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9E;YACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SAClF;aAAM;YACH,MAAM,aAAa,GAA0B;gBACzC,MAAM,EAAE,qBAAqB;gBAC7B,WAAW,EAAE,CAAC,CAAC;gBACf,SAAS,EAAE,CAAC,CAAC;gBACb,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,EAAE;aACvB,CAAC;YACF,IAAI,CAAC,SAAS,EAAE;gBACZ,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1D;YACD,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YACzC,OAAO,aAAa,CAAC;SACxB;IACL,CAAC;IAIO,MAAM,CAAC,qBAAqB,CAAC,OAAgB,EAAE,qBAAoC,EAAE,SAAuC,EAAE,MAAc;QAChJ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,KAAK,qBAAqB,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9E,IAAI,SAAS,EAAE;gBACX,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1C;iBAAM;gBACH,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;aAC1E;YACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SAChF;aAAM;YACH,MAAM,aAAa,GAA0B;gBACzC,MAAM,EAAE,qBAAqB;gBAC7B,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;gBACZ,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,EAAE;aACvB,CAAC;YACF,IAAI,CAAC,SAAS,EAAE;gBACZ,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;aACxD;YACD,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YACzC,OAAO,aAAa,CAAC;SACxB;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,OAAgB,EAAE,KAAa,EAAE,GAAW;QACxE,MAAM,KAAK,GAA0B;YACjC,MAAM,EAAE,OAAO;YACf,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,GAAG;YACd,gBAAgB,EAAE,EAAE;SACvB,CAAC;QACF,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,IAAI,OAAO,YAAY,gBAAgB,EAAE;gBACrC,KAAK,CAAC,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;aAC5D;iBAAM;gBACH,KAAK,CAAC,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aAC1C;SAEJ;aAAM,IAAI,OAAO,YAAY,aAAa,EAAE;YACzC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACpE;SACJ;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,cAAqC;QACrE,IAAI,cAAc,CAAC,MAAM,YAAY,WAAW,EAAE;YAC9C,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;YAClD,IAAI,cAAc,CAAC,MAAM,YAAY,gBAAgB,EAAE;gBACnD,cAAc,CAAC,cAAc,GAAG,WAAW,KAAK,CAAC,IAAI,SAAS,KAAK,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAA;aACvG;iBAAM;gBACH,cAAc,CAAC,cAAc,GAAG,WAAW,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC;aACxE;SACJ;aAAM,IAAI,cAAc,CAAC,MAAM,YAAY,aAAa,EAAE;YACvD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YACrC,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAC;YACzD,yBAAyB;YACzB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAI,cAAc,CAAC,WAAW,KAAK,CAAC,IAAI,cAAc,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE;oBACrE,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC;oBACrC,OAAO;iBACV;gBACD,cAAc,CAAC,cAAc,GAAG,KAAK,CAAC;gBACtC,OAAO;aACV;YACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5D,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC;YAC5C,cAAc,CAAC,SAAS,GAAG,aAAa,CAAC;YACzC,cAAc,CAAC,cAAc,GAAG,cAAc,KAAK,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,aAAa,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC;SACtJ;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,SAAgC,EAAE,SAAgC;QACjF,OAAO,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC;IACnJ,CAAC;IAGD;;;;OAIG;IACH,MAAM,CAAC,wBAAwB,CAAC,cAA8B;QAC1D,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC;QAC3F,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE;YACjC,OAAO,KAAK,CAAC;SAChB;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAA0B,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAA0B,CAAC;QAChF,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,IAAI,UAAU,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;YACpJ,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpD,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,WAAkC;QACzD,IAAI,WAAW,CAAC,MAAM,YAAY,WAAW,EAAE;YAC3C,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,GAAG,EAAE;oBACL,OAAO,GAAG,CAAC;iBACd;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,WAAkC;QACvD,IAAI,WAAW,CAAC,MAAM,YAAY,WAAW,EAAE;YAC3C,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,IAAI,GAAG,EAAE;oBACL,OAAO,GAAG,CAAC;iBACd;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;MAIE;IACF,MAAM,CAAC,8BAA8B,CAAC,KAA4B,EAAE,OAA+C;QAC/G,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC3E;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAA4B,EAAE,GAAY;QACrE,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE;YACtD,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE;gBACxD,GAAG,GAAG,IAAI,CAAC;aACd;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;CAEJ"}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
import { EditorContext } from "./document-context";
|
2
|
+
import { Position, ViewOptions } from "./element-define";
|
3
|
+
import { TextProps } from "./element-props";
|
4
|
+
import { TextGroupElement, TextGroupRenderObject } from "./impl/text/text-impl";
|
5
|
+
export interface TextUnits {
|
6
|
+
sourceSize: number;
|
7
|
+
actualSize: number;
|
8
|
+
char: string;
|
9
|
+
}
|
10
|
+
export declare type RenderContenxtType = {
|
11
|
+
contentContext: PaintContent;
|
12
|
+
overlaysContext: PaintContent;
|
13
|
+
drawMode: 'view' | 'print';
|
14
|
+
clear(): void;
|
15
|
+
viewOptions: ViewOptions;
|
16
|
+
docCtx: EditorContext;
|
17
|
+
commit(pageSetting: {
|
18
|
+
width: number;
|
19
|
+
height: number;
|
20
|
+
} | null): void;
|
21
|
+
};
|
22
|
+
export declare class RenderContenxt {
|
23
|
+
mainCtx: CanvasRenderingContext2D;
|
24
|
+
viewOptions: ViewOptions;
|
25
|
+
docCtx: EditorContext;
|
26
|
+
contentContext: PaintContent;
|
27
|
+
overlaysContext: PaintContent;
|
28
|
+
drawMode: 'view' | 'print';
|
29
|
+
private contentOffCanvas;
|
30
|
+
private overlayOffCanvas;
|
31
|
+
constructor(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext);
|
32
|
+
private createNativeCanvas;
|
33
|
+
setCanvasProps(pageSetting?: {
|
34
|
+
width: number;
|
35
|
+
height: number;
|
36
|
+
} | null): void;
|
37
|
+
clear(): void;
|
38
|
+
commit(pageSetting?: {
|
39
|
+
width: number;
|
40
|
+
height: number;
|
41
|
+
} | null): void;
|
42
|
+
}
|
43
|
+
export declare class PaintContent {
|
44
|
+
ctx: CanvasRenderingContext2D;
|
45
|
+
private viewOptions;
|
46
|
+
constructor(ctx: CanvasRenderingContext2D, viewOptions: ViewOptions);
|
47
|
+
init(): void;
|
48
|
+
setGlobalAlpha(alpha: number): void;
|
49
|
+
getGlobalAlpha(): number;
|
50
|
+
clear(): void;
|
51
|
+
drawText(text: string, textProps: TextProps, x: number, y: number, width: number, height: number): void;
|
52
|
+
fillCircular(x: number, y: number, r: number, color?: string): void;
|
53
|
+
drawTextUnits(textGroupRender: TextGroupRenderObject, x: number, y: number): void;
|
54
|
+
getParaLineHeight(textEle: TextGroupElement): number;
|
55
|
+
measureText(text: string, textProps: TextProps): {
|
56
|
+
width: number;
|
57
|
+
height: number;
|
58
|
+
};
|
59
|
+
measureTextUnits(units: Array<TextUnits>, textProps: TextProps): void;
|
60
|
+
clearRect(x: number, y: number, width: number, height: number): void;
|
61
|
+
save(): void;
|
62
|
+
restore(): void;
|
63
|
+
strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number): void;
|
64
|
+
drawLine(x: number, y: number, width: number, lineColor?: string, lineWidth?: number): void;
|
65
|
+
fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string): void;
|
66
|
+
strokeLines(lines: Array<Position>, width?: number, strokeColor?: string): void;
|
67
|
+
fillLines(lines: Array<Position>, width?: number, fillColor?: string): void;
|
68
|
+
drawCheckBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
|
69
|
+
drawRadioBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
|
70
|
+
/**
|
71
|
+
* 绘制图片
|
72
|
+
* @param image
|
73
|
+
* @param sx image的矩形(裁剪)选择框的左上角 X 轴坐标
|
74
|
+
* @param sy image的矩形(裁剪)选择框的左上角 Y 轴坐标
|
75
|
+
* @param sWidth image的矩形(裁剪)选择框的宽度
|
76
|
+
* @param sHeight image的矩形(裁剪)选择框的高度
|
77
|
+
* @param dx image的左上角在目标canvas上 X 轴坐标
|
78
|
+
* @param dy image的左上角在目标canvas上 Y 轴坐标
|
79
|
+
* @param dWidth image在目标canvas上绘制的宽度
|
80
|
+
* @param dHeight image在目标canvas上绘制的高度
|
81
|
+
*/
|
82
|
+
drawImage(image: HTMLImageElement, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): void;
|
83
|
+
drawDashLine(points: Array<Position>, lineDash: Array<number>, lineColor?: string, lineWidth?: number): void;
|
84
|
+
roundRect(x: number, y: number, width: number, height: number, radius: number | {
|
85
|
+
tl: number;
|
86
|
+
tr: number;
|
87
|
+
br: number;
|
88
|
+
bl: number;
|
89
|
+
}, fill: boolean, stroke: boolean): void;
|
90
|
+
clip(x: number, y: number, width: number, height: number): void;
|
91
|
+
}
|