@hailin-zheng/editor-core 1.0.1 → 1.0.5
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 +1 -1
- package/tsconfig.json +1 -1
- package/webpack.config.js +0 -1
- package/dist/doc-ruler.d.ts +0 -51
- package/dist/doc-ruler.js +0 -313
- package/dist/doc-ruler.js.map +0 -1
- package/dist/framework/common-util.d.ts +0 -63
- package/dist/framework/common-util.js +0 -178
- package/dist/framework/common-util.js.map +0 -1
- package/dist/framework/document-change.d.ts +0 -265
- package/dist/framework/document-change.js +0 -1342
- package/dist/framework/document-change.js.map +0 -1
- package/dist/framework/document-combine.d.ts +0 -24
- package/dist/framework/document-combine.js +0 -40
- package/dist/framework/document-combine.js.map +0 -1
- package/dist/framework/document-comment.d.ts +0 -46
- package/dist/framework/document-comment.js +0 -148
- package/dist/framework/document-comment.js.map +0 -1
- package/dist/framework/document-context.d.ts +0 -149
- package/dist/framework/document-context.js +0 -330
- package/dist/framework/document-context.js.map +0 -1
- package/dist/framework/document-eval-func.d.ts +0 -18
- package/dist/framework/document-eval-func.js +0 -48
- package/dist/framework/document-eval-func.js.map +0 -1
- package/dist/framework/document-event.d.ts +0 -213
- package/dist/framework/document-event.js +0 -1054
- package/dist/framework/document-event.js.map +0 -1
- package/dist/framework/document-history.d.ts +0 -26
- package/dist/framework/document-history.js +0 -65
- package/dist/framework/document-history.js.map +0 -1
- package/dist/framework/document-images-loader.d.ts +0 -16
- package/dist/framework/document-images-loader.js +0 -66
- package/dist/framework/document-images-loader.js.map +0 -1
- package/dist/framework/document-input-cursor.d.ts +0 -78
- package/dist/framework/document-input-cursor.js +0 -239
- package/dist/framework/document-input-cursor.js.map +0 -1
- package/dist/framework/document-paint.d.ts +0 -34
- package/dist/framework/document-paint.js +0 -103
- package/dist/framework/document-paint.js.map +0 -1
- package/dist/framework/document-print-offscreen.d.ts +0 -38
- package/dist/framework/document-print-offscreen.js +0 -128
- package/dist/framework/document-print-offscreen.js.map +0 -1
- package/dist/framework/document-print.d.ts +0 -60
- package/dist/framework/document-print.js +0 -203
- package/dist/framework/document-print.js.map +0 -1
- package/dist/framework/document-segmenter.d.ts +0 -2
- package/dist/framework/document-segmenter.js +0 -106
- package/dist/framework/document-segmenter.js.map +0 -1
- package/dist/framework/document-selection.d.ts +0 -89
- package/dist/framework/document-selection.js +0 -358
- package/dist/framework/document-selection.js.map +0 -1
- package/dist/framework/document-template.d.ts +0 -4
- package/dist/framework/document-template.js +0 -20
- package/dist/framework/document-template.js.map +0 -1
- package/dist/framework/document-textline-mode.d.ts +0 -7
- package/dist/framework/document-textline-mode.js +0 -30
- package/dist/framework/document-textline-mode.js.map +0 -1
- package/dist/framework/element-define.d.ts +0 -319
- package/dist/framework/element-define.js +0 -579
- package/dist/framework/element-define.js.map +0 -1
- package/dist/framework/element-event-define.d.ts +0 -99
- package/dist/framework/element-event-define.js +0 -108
- package/dist/framework/element-event-define.js.map +0 -1
- package/dist/framework/element-measure.d.ts +0 -97
- package/dist/framework/element-measure.js +0 -551
- package/dist/framework/element-measure.js.map +0 -1
- package/dist/framework/element-paint.d.ts +0 -42
- package/dist/framework/element-paint.js +0 -170
- package/dist/framework/element-paint.js.map +0 -1
- package/dist/framework/element-props.d.ts +0 -301
- package/dist/framework/element-props.js +0 -809
- package/dist/framework/element-props.js.map +0 -1
- package/dist/framework/element-reader.d.ts +0 -19
- package/dist/framework/element-reader.js +0 -151
- package/dist/framework/element-reader.js.map +0 -1
- package/dist/framework/element-render-cut.d.ts +0 -55
- package/dist/framework/element-render-cut.js +0 -449
- package/dist/framework/element-render-cut.js.map +0 -1
- package/dist/framework/element-serialize.d.ts +0 -30
- package/dist/framework/element-serialize.js +0 -113
- package/dist/framework/element-serialize.js.map +0 -1
- package/dist/framework/element-util.d.ts +0 -369
- package/dist/framework/element-util.js +0 -1463
- package/dist/framework/element-util.js.map +0 -1
- package/dist/framework/impl/checkbox/checkbox-impl.d.ts +0 -24
- package/dist/framework/impl/checkbox/checkbox-impl.js +0 -64
- package/dist/framework/impl/checkbox/checkbox-impl.js.map +0 -1
- package/dist/framework/impl/comments/comment-content-impl.d.ts +0 -40
- package/dist/framework/impl/comments/comment-content-impl.js +0 -105
- package/dist/framework/impl/comments/comment-content-impl.js.map +0 -1
- package/dist/framework/impl/comments/comment-element-impl.d.ts +0 -21
- package/dist/framework/impl/comments/comment-element-impl.js +0 -62
- package/dist/framework/impl/comments/comment-element-impl.js.map +0 -1
- package/dist/framework/impl/comments/comments-container-impl.d.ts +0 -22
- package/dist/framework/impl/comments/comments-container-impl.js +0 -62
- package/dist/framework/impl/comments/comments-container-impl.js.map +0 -1
- package/dist/framework/impl/comments/comments-util.d.ts +0 -12
- package/dist/framework/impl/comments/comments-util.js +0 -67
- package/dist/framework/impl/comments/comments-util.js.map +0 -1
- package/dist/framework/impl/comments/validate-msg-impl.d.ts +0 -21
- package/dist/framework/impl/comments/validate-msg-impl.js +0 -83
- package/dist/framework/impl/comments/validate-msg-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-decorate-impl.d.ts +0 -30
- package/dist/framework/impl/data-element/data-decorate-impl.js +0 -91
- package/dist/framework/impl/data-element/data-decorate-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-barcode.d.ts +0 -31
- package/dist/framework/impl/data-element/data-element-barcode.js +0 -115
- package/dist/framework/impl/data-element/data-element-barcode.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-base-impl.d.ts +0 -68
- package/dist/framework/impl/data-element/data-element-base-impl.js +0 -205
- package/dist/framework/impl/data-element/data-element-base-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-check-impl.d.ts +0 -35
- package/dist/framework/impl/data-element/data-element-check-impl.js +0 -133
- package/dist/framework/impl/data-element/data-element-check-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-date-impl.d.ts +0 -23
- package/dist/framework/impl/data-element/data-element-date-impl.js +0 -111
- package/dist/framework/impl/data-element/data-element-date-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-group-impl.d.ts +0 -23
- package/dist/framework/impl/data-element/data-element-group-impl.js +0 -130
- package/dist/framework/impl/data-element/data-element-group-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-image-impl.d.ts +0 -30
- package/dist/framework/impl/data-element/data-element-image-impl.js +0 -137
- package/dist/framework/impl/data-element/data-element-image-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-list-impl.d.ts +0 -22
- package/dist/framework/impl/data-element/data-element-list-impl.js +0 -131
- package/dist/framework/impl/data-element/data-element-list-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-text-impl.d.ts +0 -23
- package/dist/framework/impl/data-element/data-element-text-impl.js +0 -103
- package/dist/framework/impl/data-element/data-element-text-impl.js.map +0 -1
- package/dist/framework/impl/decorate/fill-null-space-imple.d.ts +0 -21
- package/dist/framework/impl/decorate/fill-null-space-imple.js +0 -43
- package/dist/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
- package/dist/framework/impl/document/doc-body-impl.d.ts +0 -27
- package/dist/framework/impl/document/doc-body-impl.js +0 -79
- package/dist/framework/impl/document/doc-body-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-body-part-impl.d.ts +0 -30
- package/dist/framework/impl/document/doc-body-part-impl.js +0 -94
- package/dist/framework/impl/document/doc-body-part-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-container-impl.d.ts +0 -16
- package/dist/framework/impl/document/doc-container-impl.js +0 -21
- package/dist/framework/impl/document/doc-container-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-footer-impl.d.ts +0 -26
- package/dist/framework/impl/document/doc-footer-impl.js +0 -77
- package/dist/framework/impl/document/doc-footer-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-header-impl.d.ts +0 -26
- package/dist/framework/impl/document/doc-header-impl.js +0 -83
- package/dist/framework/impl/document/doc-header-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-impl.d.ts +0 -61
- package/dist/framework/impl/document/doc-impl.js +0 -209
- package/dist/framework/impl/document/doc-impl.js.map +0 -1
- package/dist/framework/impl/media-formula/menstrual-history.d.ts +0 -35
- package/dist/framework/impl/media-formula/menstrual-history.js +0 -153
- package/dist/framework/impl/media-formula/menstrual-history.js.map +0 -1
- package/dist/framework/impl/paragraph/p-impl.d.ts +0 -45
- package/dist/framework/impl/paragraph/p-impl.js +0 -156
- package/dist/framework/impl/paragraph/p-impl.js.map +0 -1
- package/dist/framework/impl/picture/image-impl.d.ts +0 -31
- package/dist/framework/impl/picture/image-impl.js +0 -124
- package/dist/framework/impl/picture/image-impl.js.map +0 -1
- package/dist/framework/impl/radio/radio-impl.d.ts +0 -22
- package/dist/framework/impl/radio/radio-impl.js +0 -72
- package/dist/framework/impl/radio/radio-impl.js.map +0 -1
- package/dist/framework/impl/symbol/br-symbol-impl.d.ts +0 -22
- package/dist/framework/impl/symbol/br-symbol-impl.js +0 -54
- package/dist/framework/impl/symbol/br-symbol-impl.js.map +0 -1
- package/dist/framework/impl/symbol/p-symbol-impl.d.ts +0 -19
- package/dist/framework/impl/symbol/p-symbol-impl.js +0 -54
- package/dist/framework/impl/symbol/p-symbol-impl.js.map +0 -1
- package/dist/framework/impl/table/table-cell-impl.d.ts +0 -37
- package/dist/framework/impl/table/table-cell-impl.js +0 -145
- package/dist/framework/impl/table/table-cell-impl.js.map +0 -1
- package/dist/framework/impl/table/table-impl.d.ts +0 -55
- package/dist/framework/impl/table/table-impl.js +0 -363
- package/dist/framework/impl/table/table-impl.js.map +0 -1
- package/dist/framework/impl/table/table-row-impl.d.ts +0 -26
- package/dist/framework/impl/table/table-row-impl.js +0 -75
- package/dist/framework/impl/table/table-row-impl.js.map +0 -1
- package/dist/framework/impl/table/table-split-cell-patch.d.ts +0 -20
- package/dist/framework/impl/table/table-split-cell-patch.js +0 -89
- package/dist/framework/impl/table/table-split-cell-patch.js.map +0 -1
- package/dist/framework/impl/table/table-split-cell.d.ts +0 -90
- package/dist/framework/impl/table/table-split-cell.js +0 -464
- package/dist/framework/impl/table/table-split-cell.js.map +0 -1
- package/dist/framework/impl/table/table-util.d.ts +0 -150
- package/dist/framework/impl/table/table-util.js +0 -678
- package/dist/framework/impl/table/table-util.js.map +0 -1
- package/dist/framework/impl/text/text-impl.d.ts +0 -32
- package/dist/framework/impl/text/text-impl.js +0 -149
- package/dist/framework/impl/text/text-impl.js.map +0 -1
- package/dist/framework/impl/text/track-run-impl.d.ts +0 -27
- package/dist/framework/impl/text/track-run-impl.js +0 -112
- package/dist/framework/impl/text/track-run-impl.js.map +0 -1
- package/dist/framework/notify.d.ts +0 -13
- package/dist/framework/notify.js +0 -116
- package/dist/framework/notify.js.map +0 -1
- package/dist/framework/range-util.d.ts +0 -40
- package/dist/framework/range-util.js +0 -312
- package/dist/framework/range-util.js.map +0 -1
- package/dist/framework/render-context.d.ts +0 -91
- package/dist/framework/render-context.js +0 -384
- package/dist/framework/render-context.js.map +0 -1
- package/dist/framework/render-define.d.ts +0 -109
- package/dist/framework/render-define.js +0 -195
- package/dist/framework/render-define.js.map +0 -1
- package/dist/framework/selection-overlays.d.ts +0 -30
- package/dist/framework/selection-overlays.js +0 -124
- package/dist/framework/selection-overlays.js.map +0 -1
- package/dist/texteditor.d.ts +0 -318
- package/dist/texteditor.js +0 -913
- package/dist/texteditor.js.map +0 -1
- package/dist/util/subject.d.ts +0 -34
- package/dist/util/subject.js +0 -88
- package/dist/util/subject.js.map +0 -1
- package/dist/util/table-bind.d.ts +0 -5
- package/dist/util/table-bind.js +0 -6
- package/dist/util/table-bind.js.map +0 -1
@@ -1,312 +0,0 @@
|
|
1
|
-
import { BranchElement, LeafElement } from "./element-define";
|
2
|
-
import { ElementUtil } from "./element-util";
|
3
|
-
import { TableCellElement } from "./impl/table/table-cell-impl";
|
4
|
-
import { TableElement } from "./impl/table/table-impl";
|
5
|
-
import { TableRowElement } from "./impl/table/table-row-impl";
|
6
|
-
import { SelectionRange } from './document-selection';
|
7
|
-
import { TextGroupElement } from "./impl/text/text-impl";
|
8
|
-
export class RangeUtil {
|
9
|
-
static getSelctionRange(startControl, startOffset, endControl, endOffset, ancestorCommonControl) {
|
10
|
-
if (ancestorCommonControl instanceof TableElement || ancestorCommonControl instanceof TableRowElement) {
|
11
|
-
const tbElement = ancestorCommonControl instanceof TableElement ? ancestorCommonControl : ancestorCommonControl.parent;
|
12
|
-
return this.getTableSelectionRange(startControl, startOffset, endControl, endOffset, tbElement);
|
13
|
-
}
|
14
|
-
if (startControl === endControl && startControl.parent === ancestorCommonControl) {
|
15
|
-
return this.getCollapsedRange(startControl, startOffset, endOffset, ancestorCommonControl);
|
16
|
-
}
|
17
|
-
const startRange = this.getStartForbackTreeData(startControl, ancestorCommonControl, null, startOffset).selectedChildren[0];
|
18
|
-
const endRange = this.getEndForwardTreeData(endControl, ancestorCommonControl, null, endOffset).selectedChildren[0];
|
19
|
-
const startIndex = ancestorCommonControl.getChildIndex(startRange.target);
|
20
|
-
const endIndex = ancestorCommonControl.getChildIndex(endRange.target);
|
21
|
-
const commonRange = this.getChildTreeData(ancestorCommonControl, startIndex + 1, endIndex);
|
22
|
-
if (this.rangeEquals(startRange, endRange)) {
|
23
|
-
commonRange.selectedChildren.unshift(startRange);
|
24
|
-
}
|
25
|
-
else {
|
26
|
-
commonRange.selectedChildren.unshift(startRange);
|
27
|
-
commonRange.selectedChildren.push(endRange);
|
28
|
-
}
|
29
|
-
this.setRangeFullSelected(commonRange);
|
30
|
-
return commonRange;
|
31
|
-
}
|
32
|
-
static getCollapsedRange(startControl, startOffset, endOffset, ancestorCommonControl) {
|
33
|
-
const range = {
|
34
|
-
target: ancestorCommonControl,
|
35
|
-
isFullSelected: false,
|
36
|
-
startOffset: startControl.getIndex(),
|
37
|
-
endOffset: startControl.getIndex() + 1,
|
38
|
-
selectedChildren: [this.getChildTreeData(startControl, startOffset, endOffset)]
|
39
|
-
};
|
40
|
-
this.setRangeFullSelected(range);
|
41
|
-
return range;
|
42
|
-
}
|
43
|
-
/**
|
44
|
-
* 获取表格选区的内容
|
45
|
-
* @param startControl
|
46
|
-
* @param startOffset
|
47
|
-
* @param endControl
|
48
|
-
* @param endOffset
|
49
|
-
* @param tb
|
50
|
-
*/
|
51
|
-
static getTableSelectionRange(startControl, startOffset, endControl, endOffset, tb) {
|
52
|
-
const startCell = ElementUtil.getParentByType(startControl, TableCellElement);
|
53
|
-
const endCell = ElementUtil.getParentByType(endControl, TableCellElement);
|
54
|
-
if (startCell && endCell && startCell.parent.parent === tb && endCell.parent.parent === tb) {
|
55
|
-
let startRowIndex = startCell.parent.getIndex();
|
56
|
-
let endRowIndex = endCell.parent.getIndex();
|
57
|
-
let startColIndex = startCell.getIndex();
|
58
|
-
let endColIndex = endCell.getIndex();
|
59
|
-
if (startColIndex > endColIndex) {
|
60
|
-
[startColIndex, endColIndex] = [endColIndex, startColIndex];
|
61
|
-
}
|
62
|
-
if (startRowIndex > endRowIndex) {
|
63
|
-
[startRowIndex, endRowIndex] = [endRowIndex, startRowIndex];
|
64
|
-
}
|
65
|
-
const region = { startRow: startRowIndex, endRow: endRowIndex, startCol: startColIndex, endCol: endColIndex }; //this.getTableRectSelectedRegion(tb, { startRow: startRowIndex, endRow: endRowIndex, startCol: startColIndex, endCol: endColIndex });
|
66
|
-
startRowIndex = region.startRow;
|
67
|
-
endRowIndex = region.endRow;
|
68
|
-
startColIndex = region.startCol;
|
69
|
-
endColIndex = region.endCol;
|
70
|
-
const rowRanges = [];
|
71
|
-
for (let i = startRowIndex; i <= endRowIndex; i++) {
|
72
|
-
const cellRanges = [];
|
73
|
-
const row = tb.getChild(i);
|
74
|
-
for (let j = startColIndex; j <= endColIndex; j++) {
|
75
|
-
const cell = row.getChild(j);
|
76
|
-
const cellFirstLeafElement = ElementUtil.getFirstLeafElement(cell);
|
77
|
-
const cellLastLeafElement = ElementUtil.getLastLeafElement(cell);
|
78
|
-
if (!cellFirstLeafElement && !cell.isNotBeMergedCell()) {
|
79
|
-
cellRanges.push({
|
80
|
-
target: cell,
|
81
|
-
isFullSelected: true,
|
82
|
-
startOffset: 0,
|
83
|
-
endOffset: 1,
|
84
|
-
selectedChildren: []
|
85
|
-
});
|
86
|
-
}
|
87
|
-
else {
|
88
|
-
const cellRange = this.getSelctionRange(cellFirstLeafElement, 0, cellLastLeafElement, 1, cell);
|
89
|
-
cellRanges.push(cellRange);
|
90
|
-
}
|
91
|
-
}
|
92
|
-
const rowRange = {
|
93
|
-
target: row,
|
94
|
-
isFullSelected: false,
|
95
|
-
startOffset: startColIndex,
|
96
|
-
endOffset: endColIndex,
|
97
|
-
selectedChildren: [...cellRanges]
|
98
|
-
};
|
99
|
-
rowRange.isFullSelected = startColIndex === 0 && endColIndex === row.length - 1;
|
100
|
-
rowRanges.push(rowRange);
|
101
|
-
}
|
102
|
-
const tableRange = {
|
103
|
-
target: tb,
|
104
|
-
isFullSelected: false,
|
105
|
-
startOffset: startRowIndex,
|
106
|
-
endOffset: endRowIndex,
|
107
|
-
selectedChildren: [...rowRanges]
|
108
|
-
};
|
109
|
-
tableRange.isFullSelected = startRowIndex === 0 && endRowIndex === tb.length - 1 && tableRange.selectedChildren.every(item => item.isFullSelected);
|
110
|
-
return tableRange;
|
111
|
-
}
|
112
|
-
else {
|
113
|
-
throw new Error('当前单元格和表格不对应');
|
114
|
-
}
|
115
|
-
}
|
116
|
-
static getStartForbackTreeData(control, ancestorCommonControl, childData, offset) {
|
117
|
-
if (!control) {
|
118
|
-
debugger;
|
119
|
-
}
|
120
|
-
const parent = control.parent;
|
121
|
-
if (parent !== ancestorCommonControl) {
|
122
|
-
const range = this.getChildTreeData(parent, parent.getChildIndex(control) + 1, -1);
|
123
|
-
if (childData) {
|
124
|
-
range.selectedChildren.unshift(childData);
|
125
|
-
}
|
126
|
-
else {
|
127
|
-
range.selectedChildren.unshift(this.getChildTreeData(control, offset, -1));
|
128
|
-
}
|
129
|
-
this.setRangeFullSelected(range);
|
130
|
-
return this.getStartForbackTreeData(parent, ancestorCommonControl, range, -99);
|
131
|
-
}
|
132
|
-
else {
|
133
|
-
const ancestorRange = {
|
134
|
-
target: ancestorCommonControl,
|
135
|
-
startOffset: -1,
|
136
|
-
endOffset: -1,
|
137
|
-
isFullSelected: false,
|
138
|
-
selectedChildren: []
|
139
|
-
};
|
140
|
-
if (!childData) {
|
141
|
-
childData = this.getChildTreeData(control, offset, -1);
|
142
|
-
}
|
143
|
-
ancestorRange.selectedChildren.push(childData);
|
144
|
-
this.setRangeFullSelected(ancestorRange);
|
145
|
-
return ancestorRange;
|
146
|
-
}
|
147
|
-
}
|
148
|
-
static getEndForwardTreeData(control, ancestorCommonControl, childData, offset) {
|
149
|
-
const parent = control.parent;
|
150
|
-
if (parent !== ancestorCommonControl) {
|
151
|
-
const range = this.getChildTreeData(parent, 0, parent.getChildIndex(control));
|
152
|
-
if (childData) {
|
153
|
-
range.selectedChildren.push(childData);
|
154
|
-
}
|
155
|
-
else {
|
156
|
-
range.selectedChildren.push(this.getChildTreeData(control, 0, offset));
|
157
|
-
}
|
158
|
-
this.setRangeFullSelected(range);
|
159
|
-
return this.getEndForwardTreeData(parent, ancestorCommonControl, range, -99);
|
160
|
-
}
|
161
|
-
else {
|
162
|
-
const ancestorRange = {
|
163
|
-
target: ancestorCommonControl,
|
164
|
-
startOffset: 0,
|
165
|
-
endOffset: 0,
|
166
|
-
isFullSelected: false,
|
167
|
-
selectedChildren: []
|
168
|
-
};
|
169
|
-
if (!childData) {
|
170
|
-
childData = this.getChildTreeData(control, 0, offset);
|
171
|
-
}
|
172
|
-
ancestorRange.selectedChildren.push(childData);
|
173
|
-
this.setRangeFullSelected(ancestorRange);
|
174
|
-
return ancestorRange;
|
175
|
-
}
|
176
|
-
}
|
177
|
-
static getChildTreeData(control, start, end) {
|
178
|
-
const range = {
|
179
|
-
target: control,
|
180
|
-
isFullSelected: false,
|
181
|
-
startOffset: start,
|
182
|
-
endOffset: end,
|
183
|
-
selectedChildren: []
|
184
|
-
};
|
185
|
-
if (control instanceof LeafElement) {
|
186
|
-
if (control instanceof TextGroupElement) {
|
187
|
-
range.endOffset = end === -1 ? control.text.length : end;
|
188
|
-
}
|
189
|
-
else {
|
190
|
-
range.endOffset = end === -1 ? 1 : end;
|
191
|
-
}
|
192
|
-
}
|
193
|
-
else if (control instanceof BranchElement) {
|
194
|
-
end = end === -1 ? control.length : end;
|
195
|
-
for (let i = start; i < end; i++) {
|
196
|
-
const child = control.getChild(i);
|
197
|
-
range.selectedChildren.push(this.getChildTreeData(child, 0, -1));
|
198
|
-
}
|
199
|
-
}
|
200
|
-
this.setRangeFullSelected(range);
|
201
|
-
return range;
|
202
|
-
}
|
203
|
-
static setRangeFullSelected(selectionRange) {
|
204
|
-
if (selectionRange.target instanceof LeafElement) {
|
205
|
-
const { startOffset, endOffset } = selectionRange;
|
206
|
-
if (selectionRange.target instanceof TextGroupElement) {
|
207
|
-
selectionRange.isFullSelected = startOffset === 0 && endOffset === selectionRange.target.text.length;
|
208
|
-
}
|
209
|
-
else {
|
210
|
-
selectionRange.isFullSelected = startOffset === 0 && endOffset === 1;
|
211
|
-
}
|
212
|
-
}
|
213
|
-
else if (selectionRange.target instanceof BranchElement) {
|
214
|
-
const parent = selectionRange.target;
|
215
|
-
const selectedChildren = selectionRange.selectedChildren;
|
216
|
-
//被合并的table-cell,内容为empty
|
217
|
-
if (selectedChildren.length === 0) {
|
218
|
-
if (selectionRange.startOffset === 0 && selectionRange.endOffset === -1) {
|
219
|
-
selectionRange.isFullSelected = true;
|
220
|
-
return;
|
221
|
-
}
|
222
|
-
selectionRange.isFullSelected = false;
|
223
|
-
return;
|
224
|
-
}
|
225
|
-
const firstItem = selectedChildren[0];
|
226
|
-
const firstItemIndex = parent.getChildIndex(firstItem.target);
|
227
|
-
const lastItem = selectedChildren[selectedChildren.length - 1];
|
228
|
-
const lastItemIndex = parent.getChildIndex(lastItem.target);
|
229
|
-
selectionRange.startOffset = firstItemIndex;
|
230
|
-
selectionRange.endOffset = lastItemIndex;
|
231
|
-
selectionRange.isFullSelected = firstItemIndex === 0 && firstItem.isFullSelected && lastItemIndex === parent.length - 1 && lastItem.isFullSelected;
|
232
|
-
}
|
233
|
-
}
|
234
|
-
static rangeEquals(selRange1, selRange2) {
|
235
|
-
return selRange1.target === selRange2.target && selRange1.startOffset === selRange2.startOffset && selRange1.endOffset === selRange2.endOffset;
|
236
|
-
}
|
237
|
-
/**
|
238
|
-
* 根据选区范围更正选区内容状态
|
239
|
-
* @param selectedRange
|
240
|
-
* @param selectionState
|
241
|
-
*/
|
242
|
-
static fixSelectionStateByRange(selectionState) {
|
243
|
-
const { startControl, startOffset, endControl, endOffset, selectedRange } = selectionState;
|
244
|
-
if (!selectedRange || !startControl) {
|
245
|
-
return false;
|
246
|
-
}
|
247
|
-
const startRange = this.getStartRangeTarget(selectedRange);
|
248
|
-
const endRange = this.getEndRangeTarget(selectedRange);
|
249
|
-
if (startRange.target !== startControl || startRange.startOffset !== startOffset || endRange.target !== endControl || endRange.endOffset !== endOffset) {
|
250
|
-
selectionState.clear();
|
251
|
-
const ssRange = new SelectionRange();
|
252
|
-
ssRange.setStart(startRange.target, startRange.startOffset);
|
253
|
-
ssRange.setEnd(endRange.target, endRange.endOffset);
|
254
|
-
selectionState.addRange(ssRange);
|
255
|
-
return true;
|
256
|
-
}
|
257
|
-
return false;
|
258
|
-
}
|
259
|
-
static getStartRangeTarget(parentRange) {
|
260
|
-
if (parentRange.target instanceof LeafElement) {
|
261
|
-
return parentRange;
|
262
|
-
}
|
263
|
-
else {
|
264
|
-
for (let i = 0; i < parentRange.selectedChildren.length; i++) {
|
265
|
-
const res = this.getStartRangeTarget(parentRange.selectedChildren[i]);
|
266
|
-
if (res) {
|
267
|
-
return res;
|
268
|
-
}
|
269
|
-
}
|
270
|
-
}
|
271
|
-
return null;
|
272
|
-
}
|
273
|
-
static getEndRangeTarget(parentRange) {
|
274
|
-
if (parentRange.target instanceof LeafElement) {
|
275
|
-
return parentRange;
|
276
|
-
}
|
277
|
-
else {
|
278
|
-
for (let i = parentRange.selectedChildren.length - 1; i >= 0; i--) {
|
279
|
-
const res = this.getEndRangeTarget(parentRange.selectedChildren[i]);
|
280
|
-
if (res) {
|
281
|
-
return res;
|
282
|
-
}
|
283
|
-
}
|
284
|
-
}
|
285
|
-
return null;
|
286
|
-
}
|
287
|
-
/**
|
288
|
-
* 循环递归执行选区对象方法
|
289
|
-
* @param range
|
290
|
-
* @param handler
|
291
|
-
*/
|
292
|
-
static recursionTraversalRangeHandler(range, handler) {
|
293
|
-
handler(range);
|
294
|
-
for (let i = 0; i < range.selectedChildren.length; i++) {
|
295
|
-
this.recursionTraversalRangeHandler(range.selectedChildren[i], handler);
|
296
|
-
}
|
297
|
-
}
|
298
|
-
/**
|
299
|
-
* 判断元素是否被完全选中
|
300
|
-
* @param range
|
301
|
-
*/
|
302
|
-
static checkElementFullInRange(range, ele) {
|
303
|
-
let res = false;
|
304
|
-
this.recursionTraversalRangeHandler(range, (childRange) => {
|
305
|
-
if (childRange.target === ele && childRange.isFullSelected) {
|
306
|
-
res = true;
|
307
|
-
}
|
308
|
-
});
|
309
|
-
return res;
|
310
|
-
}
|
311
|
-
}
|
312
|
-
//# sourceMappingURL=range-util.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"range-util.js","sourceRoot":"","sources":["../../src/med_editor/framework/range-util.ts"],"names":[],"mappings":"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"}
|
@@ -1,91 +0,0 @@
|
|
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
|
-
}
|