@hailin-zheng/editor-core 1.0.15 → 1.0.22
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/README.md +1613 -0
- package/lib/framework/element-props.d.ts +2 -2
- package/lib/framework/impl/index.d.ts +36 -0
- package/lib/index.d.ts +34 -0
- package/lib/index.js +15672 -0
- package/lib/texteditor.d.ts +3 -3
- package/package.json +27 -26
- package/lib/doc-ruler.js +0 -313
- package/lib/doc-ruler.js.map +0 -1
- package/lib/framework/common-util.js +0 -178
- package/lib/framework/common-util.js.map +0 -1
- package/lib/framework/document-change.js +0 -1342
- package/lib/framework/document-change.js.map +0 -1
- package/lib/framework/document-combine.js +0 -40
- package/lib/framework/document-combine.js.map +0 -1
- package/lib/framework/document-comment.js +0 -148
- package/lib/framework/document-comment.js.map +0 -1
- package/lib/framework/document-context.js +0 -330
- package/lib/framework/document-context.js.map +0 -1
- package/lib/framework/document-eval-func.js +0 -48
- package/lib/framework/document-eval-func.js.map +0 -1
- package/lib/framework/document-event.js +0 -1054
- package/lib/framework/document-event.js.map +0 -1
- package/lib/framework/document-history.js +0 -65
- package/lib/framework/document-history.js.map +0 -1
- package/lib/framework/document-images-loader.js +0 -66
- package/lib/framework/document-images-loader.js.map +0 -1
- package/lib/framework/document-input-cursor.js +0 -239
- package/lib/framework/document-input-cursor.js.map +0 -1
- package/lib/framework/document-paint.js +0 -103
- package/lib/framework/document-paint.js.map +0 -1
- package/lib/framework/document-print-offscreen.js +0 -128
- package/lib/framework/document-print-offscreen.js.map +0 -1
- package/lib/framework/document-print.js +0 -203
- package/lib/framework/document-print.js.map +0 -1
- package/lib/framework/document-segmenter.js +0 -106
- package/lib/framework/document-segmenter.js.map +0 -1
- package/lib/framework/document-selection.js +0 -358
- package/lib/framework/document-selection.js.map +0 -1
- package/lib/framework/document-template.js +0 -20
- package/lib/framework/document-template.js.map +0 -1
- package/lib/framework/document-textline-mode.js +0 -30
- package/lib/framework/document-textline-mode.js.map +0 -1
- package/lib/framework/element-define.js +0 -579
- package/lib/framework/element-define.js.map +0 -1
- package/lib/framework/element-event-define.js +0 -108
- package/lib/framework/element-event-define.js.map +0 -1
- package/lib/framework/element-measure.js +0 -551
- package/lib/framework/element-measure.js.map +0 -1
- package/lib/framework/element-paint.js +0 -170
- package/lib/framework/element-paint.js.map +0 -1
- package/lib/framework/element-props.js +0 -809
- package/lib/framework/element-props.js.map +0 -1
- package/lib/framework/element-reader.js +0 -151
- package/lib/framework/element-reader.js.map +0 -1
- package/lib/framework/element-render-cut.js +0 -449
- package/lib/framework/element-render-cut.js.map +0 -1
- package/lib/framework/element-serialize.js +0 -113
- package/lib/framework/element-serialize.js.map +0 -1
- package/lib/framework/element-util.js +0 -1463
- package/lib/framework/element-util.js.map +0 -1
- package/lib/framework/impl/checkbox/checkbox-impl.js +0 -64
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-content-impl.js +0 -105
- package/lib/framework/impl/comments/comment-content-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-element-impl.js +0 -62
- package/lib/framework/impl/comments/comment-element-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-container-impl.js +0 -62
- package/lib/framework/impl/comments/comments-container-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-util.js +0 -67
- package/lib/framework/impl/comments/comments-util.js.map +0 -1
- package/lib/framework/impl/comments/validate-msg-impl.js +0 -83
- package/lib/framework/impl/comments/validate-msg-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-decorate-impl.js +0 -91
- package/lib/framework/impl/data-element/data-decorate-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-barcode.js +0 -115
- package/lib/framework/impl/data-element/data-element-barcode.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-base-impl.js +0 -205
- package/lib/framework/impl/data-element/data-element-base-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-check-impl.js +0 -133
- package/lib/framework/impl/data-element/data-element-check-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-date-impl.js +0 -111
- package/lib/framework/impl/data-element/data-element-date-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-group-impl.js +0 -130
- package/lib/framework/impl/data-element/data-element-group-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-image-impl.js +0 -137
- package/lib/framework/impl/data-element/data-element-image-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-list-impl.js +0 -131
- package/lib/framework/impl/data-element/data-element-list-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-text-impl.js +0 -103
- package/lib/framework/impl/data-element/data-element-text-impl.js.map +0 -1
- package/lib/framework/impl/decorate/fill-null-space-imple.js +0 -43
- package/lib/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
- package/lib/framework/impl/document/doc-body-impl.js +0 -79
- package/lib/framework/impl/document/doc-body-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-body-part-impl.js +0 -94
- package/lib/framework/impl/document/doc-body-part-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-container-impl.js +0 -21
- package/lib/framework/impl/document/doc-container-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-footer-impl.js +0 -77
- package/lib/framework/impl/document/doc-footer-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-header-impl.js +0 -83
- package/lib/framework/impl/document/doc-header-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-impl.js +0 -209
- package/lib/framework/impl/document/doc-impl.js.map +0 -1
- package/lib/framework/impl/media-formula/menstrual-history.js +0 -153
- package/lib/framework/impl/media-formula/menstrual-history.js.map +0 -1
- package/lib/framework/impl/paragraph/p-impl.js +0 -156
- package/lib/framework/impl/paragraph/p-impl.js.map +0 -1
- package/lib/framework/impl/picture/image-impl.js +0 -124
- package/lib/framework/impl/picture/image-impl.js.map +0 -1
- package/lib/framework/impl/radio/radio-impl.js +0 -72
- package/lib/framework/impl/radio/radio-impl.js.map +0 -1
- package/lib/framework/impl/symbol/br-symbol-impl.js +0 -54
- package/lib/framework/impl/symbol/br-symbol-impl.js.map +0 -1
- package/lib/framework/impl/symbol/p-symbol-impl.js +0 -54
- package/lib/framework/impl/symbol/p-symbol-impl.js.map +0 -1
- package/lib/framework/impl/table/table-cell-impl.js +0 -145
- package/lib/framework/impl/table/table-cell-impl.js.map +0 -1
- package/lib/framework/impl/table/table-impl.js +0 -363
- package/lib/framework/impl/table/table-impl.js.map +0 -1
- package/lib/framework/impl/table/table-row-impl.js +0 -75
- package/lib/framework/impl/table/table-row-impl.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell-patch.js +0 -89
- package/lib/framework/impl/table/table-split-cell-patch.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell.js +0 -464
- package/lib/framework/impl/table/table-split-cell.js.map +0 -1
- package/lib/framework/impl/table/table-util.js +0 -678
- package/lib/framework/impl/table/table-util.js.map +0 -1
- package/lib/framework/impl/text/text-impl.js +0 -149
- package/lib/framework/impl/text/text-impl.js.map +0 -1
- package/lib/framework/impl/text/track-run-impl.js +0 -112
- package/lib/framework/impl/text/track-run-impl.js.map +0 -1
- package/lib/framework/notify.js +0 -116
- package/lib/framework/notify.js.map +0 -1
- package/lib/framework/range-util.js +0 -312
- package/lib/framework/range-util.js.map +0 -1
- package/lib/framework/render-context.js +0 -384
- package/lib/framework/render-context.js.map +0 -1
- package/lib/framework/render-define.js +0 -195
- package/lib/framework/render-define.js.map +0 -1
- package/lib/framework/selection-overlays.js +0 -124
- package/lib/framework/selection-overlays.js.map +0 -1
- package/lib/texteditor.js +0 -913
- package/lib/texteditor.js.map +0 -1
- package/lib/util/subject.js +0 -88
- package/lib/util/subject.js.map +0 -1
- package/lib/util/table-bind.js +0 -6
- package/lib/util/table-bind.js.map +0 -1
@@ -1,330 +0,0 @@
|
|
1
|
-
import { DocumentEvalFunc } from "./document-eval-func";
|
2
|
-
import { DocumentImagesLoader } from "./document-images-loader";
|
3
|
-
import { ModifyFlag } from "./element-define";
|
4
|
-
import { ElementSerialize } from "./element-serialize";
|
5
|
-
import { DataElementInlineGroup, DataElementLeaf, validateDataEle } from "./impl/data-element/data-element-base-impl";
|
6
|
-
import { DataElementCheck } from "./impl/data-element/data-element-check-impl";
|
7
|
-
import { DocumentElement } from "./impl/document/doc-impl";
|
8
|
-
import { TrackRunElement } from "./impl/text/track-run-impl";
|
9
|
-
import { ElementUtil } from "./element-util";
|
10
|
-
import { DocumentBodyPartElement } from "./impl/document/doc-body-part-impl";
|
11
|
-
import { CommonUtil } from "./common-util";
|
12
|
-
/**
|
13
|
-
* 当前打开的文档的上下文信息,当前文档所有的属性设置都暴露在上下文中
|
14
|
-
*/
|
15
|
-
export class EditorContext {
|
16
|
-
selectionState;
|
17
|
-
viewOptions;
|
18
|
-
isDirty = false;
|
19
|
-
cursorRect;
|
20
|
-
_document;
|
21
|
-
//文档刷新的订阅事件
|
22
|
-
//refSub!: Subscription;
|
23
|
-
syncRefresh;
|
24
|
-
imageLoader;
|
25
|
-
dynamicFunc;
|
26
|
-
docChange;
|
27
|
-
clearPrevDocCb;
|
28
|
-
constructor(selectionState, viewOptions) {
|
29
|
-
this.selectionState = selectionState;
|
30
|
-
this.viewOptions = viewOptions;
|
31
|
-
this.dynamicFunc = new DocumentEvalFunc(this);
|
32
|
-
this.imageLoader = new DocumentImagesLoader();
|
33
|
-
this.selectionState.onChangedEvent.subscribe(() => {
|
34
|
-
this.syncRefresh?.();
|
35
|
-
});
|
36
|
-
}
|
37
|
-
get document() {
|
38
|
-
return this._document;
|
39
|
-
}
|
40
|
-
set document(value) {
|
41
|
-
this.clearPrevDocCb?.();
|
42
|
-
this._document = value;
|
43
|
-
this.initScripts();
|
44
|
-
// this.refSub = this._document.refreshSubject.subscribe((data) => {
|
45
|
-
// data = data ?? 'content';
|
46
|
-
// this.isDirty = this.isDirty || data === 'content';
|
47
|
-
// this.syncRefresh?.(data);
|
48
|
-
// });
|
49
|
-
const docRefreshSub = this._document.refreshSubject.subscribe(() => {
|
50
|
-
this.syncRefresh?.();
|
51
|
-
});
|
52
|
-
const docChangedSub = this._document.onChangeSubject.subscribe(() => {
|
53
|
-
this.syncRefresh?.();
|
54
|
-
});
|
55
|
-
this.syncRefresh();
|
56
|
-
this.clearPrevDocCb = () => {
|
57
|
-
docRefreshSub.unsubscribe();
|
58
|
-
docChangedSub.unsubscribe();
|
59
|
-
if (this._document) {
|
60
|
-
this.selectionState?.renderContainer?.destroy();
|
61
|
-
this.clear();
|
62
|
-
this._document.destroy();
|
63
|
-
}
|
64
|
-
this.clearPrevDocCb = null;
|
65
|
-
};
|
66
|
-
}
|
67
|
-
clear() {
|
68
|
-
this.selectionState.clear();
|
69
|
-
this.imageLoader.clear();
|
70
|
-
;
|
71
|
-
this.dynamicFunc.destroyScripts();
|
72
|
-
this.isDirty = false;
|
73
|
-
}
|
74
|
-
get defaultCtx() {
|
75
|
-
return new DocumentContext(this._document, this.selectionState);
|
76
|
-
}
|
77
|
-
getCurrentCtx(ele) {
|
78
|
-
const parentCtx = ElementUtil.getParent(ele, (item) => item instanceof DocumentElement || item instanceof DocumentBodyPartElement);
|
79
|
-
return new DocumentContext(parentCtx, this.selectionState);
|
80
|
-
}
|
81
|
-
/**
|
82
|
-
* 根据当前选区,返回所在的上下文元素,返回类型为DocumentElement|DocumentBodyPartElement
|
83
|
-
*/
|
84
|
-
getCurrentEleCtx() {
|
85
|
-
const { startControl } = this.selectionState;
|
86
|
-
if (!startControl) {
|
87
|
-
return null;
|
88
|
-
}
|
89
|
-
const parentCtx = ElementUtil.getParent(startControl, (item) => item instanceof DocumentElement || item instanceof DocumentBodyPartElement);
|
90
|
-
return parentCtx;
|
91
|
-
}
|
92
|
-
getCtx(ele) {
|
93
|
-
return new DocumentContext(ele, this.selectionState);
|
94
|
-
}
|
95
|
-
ele_types_handlers = [];
|
96
|
-
registerTypeHandlers(elementType, eventName, handler, useCapture = false) {
|
97
|
-
this.ele_types_handlers.push({
|
98
|
-
elementType,
|
99
|
-
eventName,
|
100
|
-
handler,
|
101
|
-
useCapture
|
102
|
-
});
|
103
|
-
}
|
104
|
-
invokeTypeHandler(ele, eventName, e, useCapture = false) {
|
105
|
-
for (const th of this.ele_types_handlers) {
|
106
|
-
if (ele instanceof th.elementType && th.eventName === eventName && th.useCapture === useCapture) {
|
107
|
-
th.handler(e);
|
108
|
-
}
|
109
|
-
}
|
110
|
-
}
|
111
|
-
destroy() {
|
112
|
-
this.clear();
|
113
|
-
this.document.destroy();
|
114
|
-
this.clearPrevDocCb?.();
|
115
|
-
this.ele_types_handlers.length = 0;
|
116
|
-
this.imageLoader.clear();
|
117
|
-
;
|
118
|
-
}
|
119
|
-
/**
|
120
|
-
* 切换到行打印模式
|
121
|
-
*/
|
122
|
-
switchTextlineMode() {
|
123
|
-
this.document.viewOptions.textRowLineMode = !this.document.viewOptions.textRowLineMode;
|
124
|
-
this.syncRefresh();
|
125
|
-
}
|
126
|
-
/**
|
127
|
-
* 实例化动态脚本
|
128
|
-
*/
|
129
|
-
initScripts() {
|
130
|
-
this.dynamicFunc.initScripts(this.document.props.scripts);
|
131
|
-
}
|
132
|
-
/**
|
133
|
-
* 替换数据元
|
134
|
-
*/
|
135
|
-
replaceDataElement(oldDataElement, newElement, ss) {
|
136
|
-
//清除光标
|
137
|
-
ss.clear();
|
138
|
-
//执行刷新
|
139
|
-
//插入新对象到旧对象之前
|
140
|
-
oldDataElement.parent.addChild(newElement, oldDataElement.getIndex());
|
141
|
-
//删除旧节点
|
142
|
-
oldDataElement.remove();
|
143
|
-
}
|
144
|
-
get refreshType() {
|
145
|
-
return this._document?.modifyFlag === ModifyFlag.None ? 'appearance' : 'content';
|
146
|
-
}
|
147
|
-
}
|
148
|
-
/**
|
149
|
-
* 文档上下文
|
150
|
-
*/
|
151
|
-
export class DocumentContext {
|
152
|
-
ctx;
|
153
|
-
ss;
|
154
|
-
constructor(ctx, ss) {
|
155
|
-
this.ctx = ctx;
|
156
|
-
this.ss = ss;
|
157
|
-
}
|
158
|
-
getControlIDList() {
|
159
|
-
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item));
|
160
|
-
return dataEleList.map(item => item.props.id);
|
161
|
-
}
|
162
|
-
getControlInstanceList() {
|
163
|
-
return this.ctx.treeFilter(item => validateDataEle(item));
|
164
|
-
}
|
165
|
-
getControlById(id) {
|
166
|
-
return this.ctx.treeFind(item => validateDataEle(item) && item['props']['id'] === id);
|
167
|
-
}
|
168
|
-
getControlByName(name) {
|
169
|
-
return this.ctx.treeFind(item => validateDataEle(item) && item['props']['name'] === name);
|
170
|
-
}
|
171
|
-
/**
|
172
|
-
* 获取数据元值集合
|
173
|
-
*/
|
174
|
-
getDataElementValues() {
|
175
|
-
const structList = this.getDataElementModelList();
|
176
|
-
return structList.map(item => ({
|
177
|
-
id: item.id,
|
178
|
-
name: item.name,
|
179
|
-
value: item.getValue()
|
180
|
-
}));
|
181
|
-
}
|
182
|
-
/**
|
183
|
-
* 获取数据元结构以及get\set闭包调用函数
|
184
|
-
* @returns
|
185
|
-
*/
|
186
|
-
getDataElementModelList() {
|
187
|
-
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item));
|
188
|
-
const dataInlineGroups = dataEleList.filter(item => item instanceof DataElementInlineGroup);
|
189
|
-
const dataLeafs = dataEleList.filter(item => item instanceof DataElementLeaf);
|
190
|
-
//复选框数据元
|
191
|
-
const dataCheckList = dataLeafs.filter(item => item instanceof DataElementCheck);
|
192
|
-
//除复选框之外的LeafDataElement
|
193
|
-
const dataOtherLeafValues = CommonUtil.removeUnionSet(dataLeafs, dataCheckList).map(item => ({ id: item.props.id, name: item.props.name, fieldName: item.props.field, item, getValue: () => { return item.getValue(); }, setValue: (val) => { item.setValue(val); } }));
|
194
|
-
const dataInlineStructList = dataInlineGroups.map(item => ({ id: item.props.id, name: item.props.name, fieldName: item.props.fieldName, item, getValue: () => { return item.getValue(); }, setValue: (val) => { item.setValue(val); } }));
|
195
|
-
//复选框列表
|
196
|
-
const dataCheckStructList = this.getDataCheckModelList(dataCheckList);
|
197
|
-
return [...dataInlineStructList, ...dataCheckStructList, ...dataOtherLeafValues];
|
198
|
-
}
|
199
|
-
/**
|
200
|
-
* 获取复选框数据元结构列表
|
201
|
-
* @param dataCheckList
|
202
|
-
* @returns
|
203
|
-
*/
|
204
|
-
getDataCheckModelList(dataCheckList) {
|
205
|
-
//不存在groupName的复选框
|
206
|
-
const singleCheckList = dataCheckList.filter(item => !item.props.groupName);
|
207
|
-
//存在groupName的复选框
|
208
|
-
const groupNames = Array.from(new Set(dataCheckList.filter(item => item.props.groupName).map(item => item.props.groupName)));
|
209
|
-
const groupCheckListValues = groupNames.map((groupName) => {
|
210
|
-
const groupCheckItems = dataCheckList.filter(item => item.props.groupName === groupName);
|
211
|
-
return {
|
212
|
-
id: groupName,
|
213
|
-
name: groupCheckItems[0].props.name,
|
214
|
-
fieldName: groupCheckItems[0].props.fieldName,
|
215
|
-
multiSelect: groupCheckItems[0].props.multiSelect,
|
216
|
-
item: groupCheckItems,
|
217
|
-
getValue: () => {
|
218
|
-
let checkedValue = '';
|
219
|
-
if (groupCheckItems[0].props.multiSelect) {
|
220
|
-
checkedValue = groupCheckItems.filter(item => item.props.checked).map(item => item.getValue() + '').join(';');
|
221
|
-
}
|
222
|
-
else {
|
223
|
-
const checkedSingleItem = groupCheckItems.find(item => item.props.checked);
|
224
|
-
if (checkedSingleItem) {
|
225
|
-
checkedValue = checkedSingleItem.props.checkedValue;
|
226
|
-
}
|
227
|
-
}
|
228
|
-
;
|
229
|
-
return checkedValue;
|
230
|
-
},
|
231
|
-
setValue: (val) => {
|
232
|
-
//为null时
|
233
|
-
if (val === null || val === undefined) {
|
234
|
-
groupCheckItems.forEach(item => item.props.checked = false);
|
235
|
-
return;
|
236
|
-
}
|
237
|
-
if (groupCheckItems[0].props.multiSelect) {
|
238
|
-
const valItems = typeof val === 'string' ? val.split(';') : val;
|
239
|
-
groupCheckItems.forEach(item => {
|
240
|
-
item.props.checked = valItems.indexOf(item.props.checkedValue + '') >= 0;
|
241
|
-
});
|
242
|
-
}
|
243
|
-
else {
|
244
|
-
groupCheckItems.forEach(item => {
|
245
|
-
item.props.checked = item.props.checkedValue === val;
|
246
|
-
});
|
247
|
-
}
|
248
|
-
;
|
249
|
-
}
|
250
|
-
};
|
251
|
-
});
|
252
|
-
const singleCheckListValues = singleCheckList.map(item => ({ id: item.props.id, name: item.props.name, fieldName: item.props.fieldName, item, getValue: () => { return item.getValue(); }, setValue: (val) => { item.setValue(val); } }));
|
253
|
-
return [...singleCheckListValues, ...groupCheckListValues];
|
254
|
-
}
|
255
|
-
/**
|
256
|
-
* 获取留痕块元素列表
|
257
|
-
*/
|
258
|
-
getTrackElements() {
|
259
|
-
return this.ctx.treeFilter(item => item instanceof TrackRunElement);
|
260
|
-
}
|
261
|
-
getTrackElmeentById(id) {
|
262
|
-
return this.ctx.treeFind(item => item instanceof TrackRunElement && item.props.id === id);
|
263
|
-
}
|
264
|
-
/**
|
265
|
-
* 获取留痕块内数据
|
266
|
-
*/
|
267
|
-
getTracksData() {
|
268
|
-
const trackElements = this.getTrackElements();
|
269
|
-
return trackElements.map(item => {
|
270
|
-
const trackRun = item;
|
271
|
-
const content = ElementSerialize.serializeString(trackRun, { all: true });
|
272
|
-
return {
|
273
|
-
//用户id
|
274
|
-
userId: trackRun.props.userId,
|
275
|
-
//用户名称
|
276
|
-
userName: trackRun.props.userName,
|
277
|
-
//日期
|
278
|
-
date: trackRun.props.date,
|
279
|
-
//类型,ins-run:插入,del-run:删除
|
280
|
-
type: trackRun.type,
|
281
|
-
//留痕块id
|
282
|
-
id: trackRun.props.id,
|
283
|
-
//内容
|
284
|
-
content
|
285
|
-
};
|
286
|
-
});
|
287
|
-
}
|
288
|
-
setControlValue(id, value) {
|
289
|
-
const dataEle = this.getControlById(id);
|
290
|
-
if (dataEle) {
|
291
|
-
dataEle.setValue(value);
|
292
|
-
}
|
293
|
-
this.ss.clear();
|
294
|
-
}
|
295
|
-
setControlValueByName(name, val) {
|
296
|
-
const dataEle = this.getControlByName(name);
|
297
|
-
dataEle.setValue(val);
|
298
|
-
}
|
299
|
-
/**
|
300
|
-
* 获取复选框选中的值
|
301
|
-
*/
|
302
|
-
getCheckBoxValues(groupName) {
|
303
|
-
const ckbs = this.getCheckBoxList(groupName);
|
304
|
-
return ckbs.filter(item => item.props.checked).map(item => item.props.checkedValue);
|
305
|
-
}
|
306
|
-
getCheckBoxList(groupName) {
|
307
|
-
return this.getControlInstanceList().filter(item => item instanceof DataElementCheck && item.props.groupName === groupName);
|
308
|
-
}
|
309
|
-
/**
|
310
|
-
* 当前上下文执行默认绑定
|
311
|
-
* @param data
|
312
|
-
*/
|
313
|
-
bindDataValues(data, predicateKey = 'fieldName') {
|
314
|
-
this.ss.clear();
|
315
|
-
let bindData = typeof data === 'string' ? JSON.parse(data) : data;
|
316
|
-
if (Array.isArray(bindData)) {
|
317
|
-
const obj = {};
|
318
|
-
bindData.forEach(item => { obj[item.key] = item.value; });
|
319
|
-
bindData = obj;
|
320
|
-
}
|
321
|
-
const dataList = this.getDataElementModelList();
|
322
|
-
dataList.forEach(item => {
|
323
|
-
const objKey = item[predicateKey];
|
324
|
-
if (bindData.hasOwnProperty(objKey)) {
|
325
|
-
item.setValue(bindData[objKey]);
|
326
|
-
}
|
327
|
-
});
|
328
|
-
}
|
329
|
-
}
|
330
|
-
//# sourceMappingURL=document-context.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"document-context.js","sourceRoot":"lib/","sources":["framework/document-context.ts"],"names":[],"mappings":"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","sourcesContent":["import { DocumentEvalFunc } from \"./document-eval-func\";\nimport { DocumentImagesLoader } from \"./document-images-loader\";\nimport { SelectionState } from \"./document-selection\";\nimport { BranchElement, Element, ImgLoadStatus, ModifyFlag, Rect, RefreshType, ViewOptions } from \"./element-define\";\nimport { ElementEvent, EventTypes } from \"./element-event-define\";\nimport { DataElementValueStruct, ElementSerialize } from \"./element-serialize\";\nimport { DataElementInlineGroup, DataElementLeaf, validateDataEle } from \"./impl/data-element/data-element-base-impl\";\nimport { DataElementCheck } from \"./impl/data-element/data-element-check-impl\";\nimport { DocumentElement } from \"./impl/document/doc-impl\";\nimport { TrackRunElement, TrackRunTypeEnum } from \"./impl/text/track-run-impl\";\nimport { ElementUtil } from \"./element-util\";\nimport { DocumentBodyPartElement } from \"./impl/document/doc-body-part-impl\";\nimport { DocumentChange } from \"./document-change\";\nimport { CommonUtil } from \"./common-util\";\n\ninterface RegisterTypeHandlerProps<T extends Element> {\n elementType: { new(...args: any): T },\n eventName: EventTypes,\n handler: <E extends ElementEvent>(e: E) => void,\n useCapture: boolean\n}\n/**\n * 当前打开的文档的上下文信息,当前文档所有的属性设置都暴露在上下文中\n */\nexport class EditorContext {\n isDirty: boolean = false;\n cursorRect!: Rect | null;\n private _document!: DocumentElement;\n //文档刷新的订阅事件\n //refSub!: Subscription;\n syncRefresh!: () => void;\n imageLoader: IImageLoader;\n dynamicFunc: DocumentEvalFunc;\n docChange!: DocumentChange;\n clearPrevDocCb!: (() => void) | null;\n constructor(public readonly selectionState: SelectionState, public readonly viewOptions: ViewOptions) {\n this.dynamicFunc = new DocumentEvalFunc(this);\n this.imageLoader = new DocumentImagesLoader();\n this.selectionState.onChangedEvent.subscribe(() => {\n this.syncRefresh?.();\n });\n }\n\n public get document(): DocumentElement {\n return this._document;\n }\n\n public set document(value: DocumentElement) {\n this.clearPrevDocCb?.();\n this._document = value;\n this.initScripts();\n // this.refSub = this._document.refreshSubject.subscribe((data) => {\n // data = data ?? 'content';\n // this.isDirty = this.isDirty || data === 'content';\n // this.syncRefresh?.(data);\n // });\n const docRefreshSub = this._document.refreshSubject.subscribe(() => {\n this.syncRefresh?.();\n });\n const docChangedSub = this._document.onChangeSubject.subscribe(() => {\n this.syncRefresh?.();\n });\n this.syncRefresh();\n this.clearPrevDocCb = () => {\n docRefreshSub.unsubscribe();\n docChangedSub.unsubscribe();\n if (this._document) {\n this.selectionState?.renderContainer?.destroy();\n this.clear();\n this._document.destroy();\n }\n this.clearPrevDocCb = null;\n }\n }\n\n clear(): void {\n this.selectionState.clear();\n this.imageLoader.clear();;\n this.dynamicFunc.destroyScripts();\n this.isDirty = false;\n }\n\n get defaultCtx(): DocumentContext {\n return new DocumentContext(this._document, this.selectionState);\n }\n\n getCurrentCtx(ele: Element): DocumentContext {\n const parentCtx = ElementUtil.getParent(ele, (item) => item instanceof DocumentElement || item instanceof DocumentBodyPartElement) as BranchElement;\n return new DocumentContext(parentCtx, this.selectionState);\n }\n\n /**\n * 根据当前选区,返回所在的上下文元素,返回类型为DocumentElement|DocumentBodyPartElement\n */\n getCurrentEleCtx(): BranchElement | null {\n const { startControl } = this.selectionState;\n if (!startControl) {\n return null;\n }\n const parentCtx = ElementUtil.getParent(startControl, (item) => item instanceof DocumentElement || item instanceof DocumentBodyPartElement) as BranchElement;\n return parentCtx;\n }\n\n getCtx(ele: BranchElement): DocumentContext {\n return new DocumentContext(ele, this.selectionState);\n }\n\n\n private ele_types_handlers: Array<RegisterTypeHandlerProps<Element>> = [];\n registerTypeHandlers<T extends Element>(elementType: { new(...args: any): T }, eventName: EventTypes, handler: (e: ElementEvent) => void, useCapture: boolean = false): void {\n this.ele_types_handlers.push({\n elementType,\n eventName,\n handler,\n useCapture\n })\n }\n\n invokeTypeHandler(ele: Element, eventName: EventTypes, e: ElementEvent, useCapture: boolean = false): void {\n for (const th of this.ele_types_handlers) {\n if (ele instanceof th.elementType && th.eventName === eventName && th.useCapture === useCapture) {\n th.handler(e);\n }\n }\n }\n\n destroy(): void {\n this.clear();\n this.document.destroy();\n this.clearPrevDocCb?.();\n this.ele_types_handlers.length = 0;\n this.imageLoader.clear();;\n }\n\n /**\n * 切换到行打印模式\n */\n switchTextlineMode(): void {\n this.document.viewOptions.textRowLineMode = !this.document.viewOptions.textRowLineMode;\n this.syncRefresh();\n }\n\n /**\n * 实例化动态脚本\n */\n private initScripts(): void {\n this.dynamicFunc.initScripts(this.document.props.scripts);\n }\n\n\n /**\n * 替换数据元\n */\n replaceDataElement(oldDataElement: DataElementLeaf | DataElementInlineGroup, newElement: DataElementLeaf | DataElementInlineGroup, ss: SelectionState): void {\n //清除光标\n ss.clear();\n //执行刷新\n //插入新对象到旧对象之前\n oldDataElement.parent.addChild(newElement, oldDataElement.getIndex());\n //删除旧节点\n oldDataElement.remove();\n }\n\n get refreshType(): RefreshType {\n return this._document?.modifyFlag === ModifyFlag.None ? 'appearance' : 'content'\n }\n}\n\nexport interface ImageSourceItem {\n src: string,\n task: Promise<void>;\n cbs: Array<(status: ImgLoadStatus) => void>;\n ele: HTMLImageElement,\n loadStatus: ImgLoadStatus\n}\n\nexport interface IImageLoader {\n clear(): void;\n loadImage(src: string, onCallback: (status: ImgLoadStatus) => void): void;\n getImage(src: string): HTMLImageElement | undefined;\n imagesLoadCompleted(): boolean;\n getLoadTasks(): Array<Promise<void>>;\n}\n\n/**\n * 文档上下文\n */\nexport class DocumentContext {\n constructor(private ctx: BranchElement, private ss: SelectionState) { }\n\n getControlIDList(): Array<string> {\n const dataEleList = <unknown>this.ctx.treeFilter(item => validateDataEle(item)) as Array<{ props: { id: string } }>;\n return dataEleList.map(item => item.props.id);\n }\n\n getControlInstanceList(): Array<DataElementInlineGroup | DataElementLeaf> {\n return this.ctx.treeFilter(item => validateDataEle(item)) as Array<DataElementInlineGroup | DataElementLeaf>;\n }\n\n getControlById(id: string): DataElementInlineGroup | DataElementLeaf {\n return this.ctx.treeFind(item => validateDataEle(item) && (<any>item)['props']['id'] === id) as DataElementInlineGroup | DataElementLeaf;\n }\n\n getControlByName(name: string): DataElementInlineGroup | DataElementLeaf {\n return this.ctx.treeFind(item => validateDataEle(item) && (<any>item)['props']['name'] === name) as DataElementInlineGroup | DataElementLeaf;\n }\n\n /**\n * 获取数据元值集合\n */\n getDataElementValues(): Array<DataElementValueStruct> {\n const structList = this.getDataElementModelList();\n return structList.map<DataElementValueStruct>(item => ({\n id: item.id,\n name: item.name,\n value: item.getValue()\n }));\n }\n\n /**\n * 获取数据元结构以及get\\set闭包调用函数\n * @returns \n */\n getDataElementModelList(): Array<DataCheckEleModel | DataInputEleModel | DataLeafEleModel> {\n const dataEleList = this.ctx.treeFilter(item => validateDataEle(item)) as Array<DataElementInlineGroup | DataElementLeaf>;\n\n const dataInlineGroups = dataEleList.filter(item => item instanceof DataElementInlineGroup) as Array<DataElementInlineGroup>;\n const dataLeafs = dataEleList.filter(item => item instanceof DataElementLeaf) as Array<DataElementLeaf>;\n\n //复选框数据元\n const dataCheckList = dataLeafs.filter(item => item instanceof DataElementCheck) as Array<DataElementCheck>;\n //除复选框之外的LeafDataElement\n const dataOtherLeafValues = CommonUtil.removeUnionSet(dataLeafs, dataCheckList).map<DataLeafEleModel>(item => (\n { id: item.props.id as string, name: item.props.name as string, fieldName: item.props.field as string, item, getValue: () => { return item.getValue() }, setValue: (val) => { item.setValue(val) } }));\n const dataInlineStructList = dataInlineGroups.map<DataInputEleModel>(item => (\n { id: item.props.id, name: item.props.name, fieldName: item.props.fieldName, item, getValue: () => { return item.getValue() }, setValue: (val) => { item.setValue(val) } }));\n //复选框列表\n const dataCheckStructList = this.getDataCheckModelList(dataCheckList);\n return [...dataInlineStructList, ...dataCheckStructList, ...dataOtherLeafValues];\n }\n\n /**\n * 获取复选框数据元结构列表\n * @param dataCheckList \n * @returns \n */\n private getDataCheckModelList(dataCheckList: Array<DataElementCheck>): Array<DataCheckEleModel | DataLeafEleModel> {\n //不存在groupName的复选框\n const singleCheckList = dataCheckList.filter(item => !item.props.groupName);\n //存在groupName的复选框\n const groupNames = Array.from(new Set(dataCheckList.filter(item => item.props.groupName).map(item => item.props.groupName)));\n const groupCheckListValues = groupNames.map<DataCheckEleModel>((groupName) => {\n const groupCheckItems = dataCheckList.filter(item => item.props.groupName === groupName);\n return {\n id: groupName,\n name: groupCheckItems[0].props.name,\n fieldName: groupCheckItems[0].props.fieldName,\n multiSelect: groupCheckItems[0].props.multiSelect,\n item: groupCheckItems,\n getValue: () => {\n let checkedValue = '';\n if (groupCheckItems[0].props.multiSelect) {\n checkedValue = groupCheckItems.filter(item => item.props.checked).map(item => item.getValue() + '').join(';');\n } else {\n const checkedSingleItem = groupCheckItems.find(item => item.props.checked)\n if (checkedSingleItem) {\n checkedValue = checkedSingleItem.props.checkedValue;\n }\n };\n return checkedValue;\n },\n setValue: (val: string | Array<string>) => {\n //为null时\n if (val === null || val === undefined) {\n groupCheckItems.forEach(item => item.props.checked = false);\n return;\n }\n if (groupCheckItems[0].props.multiSelect) {\n const valItems = typeof val === 'string' ? val.split(';') : val;\n\n groupCheckItems.forEach(item => {\n item.props.checked = valItems.indexOf(item.props.checkedValue + '') >= 0;\n });\n } else {\n groupCheckItems.forEach(item => {\n item.props.checked = item.props.checkedValue === val;\n });\n };\n }\n }\n })\n const singleCheckListValues = singleCheckList.map<DataLeafEleModel>(item => ({ id: item.props.id, name: item.props.name, fieldName: item.props.fieldName, item, getValue: () => { return item.getValue() }, setValue: (val) => { item.setValue(val) } }));\n return [...singleCheckListValues, ...groupCheckListValues];\n }\n\n /**\n * 获取留痕块元素列表\n */\n getTrackElements(): Array<TrackRunElement> {\n return this.ctx.treeFilter(item => item instanceof TrackRunElement) as Array<TrackRunElement>;\n }\n\n getTrackElmeentById(id: string): TrackRunElement | null {\n return this.ctx.treeFind(item => item instanceof TrackRunElement && item.props.id === id) as TrackRunElement | null;\n }\n\n /**\n * 获取留痕块内数据\n */\n getTracksData(): Array<TrackBlockData> {\n const trackElements = this.getTrackElements();\n return trackElements.map(item => {\n const trackRun = item as TrackRunElement;\n const content = ElementSerialize.serializeString(trackRun, { all: true });\n return {\n //用户id\n userId: trackRun.props.userId,\n //用户名称\n userName: trackRun.props.userName,\n //日期\n date: trackRun.props.date,\n //类型,ins-run:插入,del-run:删除\n type: trackRun.type as TrackRunTypeEnum,\n //留痕块id\n id: trackRun.props.id,\n //内容\n content\n }\n });\n }\n\n setControlValue(id: string, value: string): void {\n const dataEle = this.getControlById(id);\n if (dataEle) {\n dataEle.setValue(value);\n }\n this.ss.clear();\n }\n\n setControlValueByName(name: string, val: any): void {\n const dataEle = this.getControlByName(name)\n dataEle.setValue(val)\n }\n\n /**\n * 获取复选框选中的值\n */\n getCheckBoxValues(groupName: string): Array<string> {\n const ckbs = this.getCheckBoxList(groupName);\n return ckbs.filter(item => item.props.checked).map(item => item.props.checkedValue);\n }\n\n getCheckBoxList(groupName: string): Array<DataElementCheck> {\n return this.getControlInstanceList().filter(item => item instanceof DataElementCheck && item.props.groupName === groupName) as Array<DataElementCheck>;\n }\n\n /**\n * 当前上下文执行默认绑定\n * @param data \n */\n bindDataValues(data: string | Object | Array<{ key: string, value: any }>, predicateKey: 'id' | 'name' | 'fieldName' = 'fieldName'): void {\n this.ss.clear();\n let bindData = typeof data === 'string' ? JSON.parse(data) as Object : data;\n if (Array.isArray(bindData)) {\n const obj = {};\n bindData.forEach(item => { obj[item.key] = item.value });\n bindData = obj;\n }\n const dataList = this.getDataElementModelList();\n dataList.forEach(item => {\n const objKey = item[predicateKey];\n if (bindData.hasOwnProperty(objKey)) {\n item.setValue(bindData[objKey]);\n }\n });\n }\n}\n\n\ninterface DataEleBaseModel {\n id: string;\n name: string;\n fieldName: string;\n getValue: () => any;\n setValue: (val: any) => void;\n}\ninterface DataCheckEleModel extends DataEleBaseModel {\n item: Array<DataElementCheck>;\n multiSelect: boolean;\n}\n\ninterface DataInputEleModel extends DataEleBaseModel {\n item: DataElementInlineGroup\n}\n\ninterface DataLeafEleModel extends DataEleBaseModel {\n item: DataElementLeaf;\n}\n\n/**\n * 留痕块结构化数据\n */\ninterface TrackBlockData {\n userId: string;\n userName: string;\n date: string;\n type: TrackRunTypeEnum,\n content: string,\n id: string;\n}"]}
|
@@ -1,48 +0,0 @@
|
|
1
|
-
export class DocumentEvalFunc {
|
2
|
-
docCtx;
|
3
|
-
constructor(docCtx) {
|
4
|
-
this.docCtx = docCtx;
|
5
|
-
}
|
6
|
-
scriptsFunc;
|
7
|
-
/**
|
8
|
-
* 实例化动态脚本
|
9
|
-
*/
|
10
|
-
initScripts(scripts) {
|
11
|
-
this.destroyScripts();
|
12
|
-
if (scripts) {
|
13
|
-
try {
|
14
|
-
const func = new Function("docCtx", scripts);
|
15
|
-
this.scriptsFunc = func(this.docCtx);
|
16
|
-
}
|
17
|
-
catch (e) {
|
18
|
-
console.error("自定义标本解析错误", e);
|
19
|
-
}
|
20
|
-
}
|
21
|
-
// const func = (docCtx: DocumentContext) => {
|
22
|
-
// const sexELe = docCtx.getControlById('NqoYI')
|
23
|
-
// const dyEle = docCtx.getControlById('gTuBI');
|
24
|
-
// return () => {
|
25
|
-
// if (sexELe && dyEle) {
|
26
|
-
// const sexValue = sexELe.getValue();
|
27
|
-
// const dyValue = sexValue === '1' ? '男的吗' : sexValue === '2' ? '女的吗' : '难道是人妖吗';
|
28
|
-
// dyEle.setValue(dyValue);
|
29
|
-
// }
|
30
|
-
// };
|
31
|
-
// };
|
32
|
-
}
|
33
|
-
/**
|
34
|
-
* 销毁动态脚本实例
|
35
|
-
*/
|
36
|
-
destroyScripts() {
|
37
|
-
if (this.scriptsFunc) {
|
38
|
-
this.scriptsFunc = null;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
/**
|
42
|
-
* 触发动态脚本
|
43
|
-
*/
|
44
|
-
invokedScripts() {
|
45
|
-
this.scriptsFunc?.();
|
46
|
-
}
|
47
|
-
}
|
48
|
-
//# sourceMappingURL=document-eval-func.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"document-eval-func.js","sourceRoot":"lib/","sources":["framework/document-eval-func.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IACN;IAAnB,YAAmB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAExC,CAAC;IACD,WAAW,CAAuB;IAElC;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,OAAO,EAAE;YACT,IAAI;gBACA,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aACjC;SAEJ;QACD,8CAA8C;QAC9C,oDAAoD;QACpD,oDAAoD;QACpD,qBAAqB;QACrB,iCAAiC;QACjC,kDAAkD;QAClD,8FAA8F;QAC9F,uCAAuC;QACvC,YAAY;QACZ,SAAS;QACT,KAAK;IACT,CAAC;IAED;;OAEG;IACH,cAAc;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;IACL,CAAC;IAED;;OAEG;IACH,cAAc;QACV,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACzB,CAAC;CAGJ","sourcesContent":["import { EditorContext } from \"./document-context\";\n\nexport class DocumentEvalFunc {\n constructor(public docCtx: EditorContext) {\n\n }\n scriptsFunc!: (() => void) | null;\n\n /**\n * 实例化动态脚本\n */\n initScripts(scripts: string): void {\n this.destroyScripts();\n if (scripts) {\n try {\n const func = new Function(\"docCtx\", scripts)\n this.scriptsFunc = func(this.docCtx);\n } catch (e) {\n console.error(\"自定义标本解析错误\", e);\n }\n\n }\n // const func = (docCtx: DocumentContext) => {\n // const sexELe = docCtx.getControlById('NqoYI')\n // const dyEle = docCtx.getControlById('gTuBI');\n // return () => {\n // if (sexELe && dyEle) {\n // const sexValue = sexELe.getValue();\n // const dyValue = sexValue === '1' ? '男的吗' : sexValue === '2' ? '女的吗' : '难道是人妖吗';\n // dyEle.setValue(dyValue);\n // }\n // };\n // };\n }\n\n /**\n * 销毁动态脚本实例\n */\n destroyScripts(): void {\n if (this.scriptsFunc) {\n this.scriptsFunc = null;\n }\n }\n\n /**\n * 触发动态脚本\n */\n invokedScripts(): void {\n this.scriptsFunc?.();\n }\n\n\n}\n"]}
|