@hailin-zheng/editor-core 1.0.1 → 1.0.3
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/lib/doc-ruler.js +313 -0
- 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/lib/framework/document-change.js +1342 -0
- package/lib/framework/document-change.js.map +1 -0
- package/lib/framework/document-combine.d.ts +24 -0
- package/lib/framework/document-combine.js +40 -0
- package/lib/framework/document-combine.js.map +1 -0
- package/lib/framework/document-comment.d.ts +46 -0
- package/lib/framework/document-comment.js +148 -0
- package/lib/framework/document-comment.js.map +1 -0
- package/lib/framework/document-context.d.ts +149 -0
- package/lib/framework/document-context.js +330 -0
- package/lib/framework/document-context.js.map +1 -0
- package/lib/framework/document-eval-func.d.ts +18 -0
- package/lib/framework/document-eval-func.js +48 -0
- package/lib/framework/document-eval-func.js.map +1 -0
- package/lib/framework/document-event.d.ts +213 -0
- package/lib/framework/document-event.js +1054 -0
- package/lib/framework/document-event.js.map +1 -0
- package/lib/framework/document-history.d.ts +26 -0
- package/lib/framework/document-history.js +65 -0
- package/lib/framework/document-history.js.map +1 -0
- package/lib/framework/document-images-loader.d.ts +16 -0
- package/lib/framework/document-images-loader.js +66 -0
- package/lib/framework/document-images-loader.js.map +1 -0
- package/lib/framework/document-input-cursor.d.ts +78 -0
- package/lib/framework/document-input-cursor.js +239 -0
- package/lib/framework/document-input-cursor.js.map +1 -0
- package/lib/framework/document-paint.d.ts +34 -0
- package/lib/framework/document-paint.js +103 -0
- package/lib/framework/document-paint.js.map +1 -0
- package/lib/framework/document-print-offscreen.d.ts +38 -0
- package/lib/framework/document-print-offscreen.js +128 -0
- package/lib/framework/document-print-offscreen.js.map +1 -0
- package/lib/framework/document-print.d.ts +60 -0
- package/lib/framework/document-print.js +203 -0
- 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/lib/framework/document-selection.js +358 -0
- package/lib/framework/document-selection.js.map +1 -0
- package/lib/framework/document-template.d.ts +4 -0
- package/lib/framework/document-template.js +20 -0
- 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/lib/framework/element-define.js +579 -0
- 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/lib/framework/element-measure.js +551 -0
- package/lib/framework/element-measure.js.map +1 -0
- package/lib/framework/element-paint.d.ts +42 -0
- package/lib/framework/element-paint.js +170 -0
- package/lib/framework/element-paint.js.map +1 -0
- package/lib/framework/element-props.d.ts +301 -0
- package/lib/framework/element-props.js +809 -0
- package/lib/framework/element-props.js.map +1 -0
- package/lib/framework/element-reader.d.ts +19 -0
- package/lib/framework/element-reader.js +151 -0
- package/lib/framework/element-reader.js.map +1 -0
- package/lib/framework/element-render-cut.d.ts +55 -0
- package/lib/framework/element-render-cut.js +449 -0
- package/lib/framework/element-render-cut.js.map +1 -0
- package/lib/framework/element-serialize.d.ts +30 -0
- package/lib/framework/element-serialize.js +113 -0
- package/lib/framework/element-serialize.js.map +1 -0
- package/lib/framework/element-util.d.ts +369 -0
- package/lib/framework/element-util.js +1463 -0
- package/lib/framework/element-util.js.map +1 -0
- package/lib/framework/impl/checkbox/checkbox-impl.d.ts +24 -0
- package/lib/framework/impl/checkbox/checkbox-impl.js +64 -0
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +1 -0
- package/lib/framework/impl/comments/comment-content-impl.d.ts +40 -0
- package/lib/framework/impl/comments/comment-content-impl.js +105 -0
- 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/lib/framework/impl/comments/comment-element-impl.js +62 -0
- 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/lib/framework/impl/comments/comments-container-impl.js +62 -0
- package/lib/framework/impl/comments/comments-container-impl.js.map +1 -0
- package/lib/framework/impl/comments/comments-util.d.ts +12 -0
- package/lib/framework/impl/comments/comments-util.js +67 -0
- package/lib/framework/impl/comments/comments-util.js.map +1 -0
- package/lib/framework/impl/comments/validate-msg-impl.d.ts +21 -0
- package/lib/framework/impl/comments/validate-msg-impl.js +83 -0
- 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/lib/framework/impl/data-element/data-decorate-impl.js +91 -0
- 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/lib/framework/impl/data-element/data-element-barcode.js +115 -0
- 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/lib/framework/impl/data-element/data-element-base-impl.js +205 -0
- 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/lib/framework/impl/data-element/data-element-check-impl.js +133 -0
- 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/lib/framework/impl/data-element/data-element-date-impl.js +111 -0
- 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/lib/framework/impl/data-element/data-element-group-impl.js +130 -0
- 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/lib/framework/impl/data-element/data-element-image-impl.js +137 -0
- 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/lib/framework/impl/data-element/data-element-list-impl.js +131 -0
- 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/lib/framework/impl/data-element/data-element-text-impl.js +103 -0
- 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/lib/framework/impl/decorate/fill-null-space-imple.js +43 -0
- 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/lib/framework/impl/document/doc-body-impl.js +79 -0
- 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/lib/framework/impl/document/doc-body-part-impl.js +94 -0
- 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/lib/framework/impl/document/doc-footer-impl.js +77 -0
- 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/lib/framework/impl/document/doc-header-impl.js +83 -0
- package/lib/framework/impl/document/doc-header-impl.js.map +1 -0
- package/lib/framework/impl/document/doc-impl.d.ts +61 -0
- package/lib/framework/impl/document/doc-impl.js +209 -0
- package/lib/framework/impl/document/doc-impl.js.map +1 -0
- package/lib/framework/impl/media-formula/menstrual-history.d.ts +35 -0
- package/lib/framework/impl/media-formula/menstrual-history.js +153 -0
- package/lib/framework/impl/media-formula/menstrual-history.js.map +1 -0
- package/lib/framework/impl/paragraph/p-impl.d.ts +45 -0
- package/lib/framework/impl/paragraph/p-impl.js +156 -0
- package/lib/framework/impl/paragraph/p-impl.js.map +1 -0
- package/lib/framework/impl/picture/image-impl.d.ts +31 -0
- package/lib/framework/impl/picture/image-impl.js +124 -0
- package/lib/framework/impl/picture/image-impl.js.map +1 -0
- package/lib/framework/impl/radio/radio-impl.d.ts +22 -0
- package/lib/framework/impl/radio/radio-impl.js +72 -0
- package/lib/framework/impl/radio/radio-impl.js.map +1 -0
- package/lib/framework/impl/symbol/br-symbol-impl.d.ts +22 -0
- package/lib/framework/impl/symbol/br-symbol-impl.js +54 -0
- 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/lib/framework/impl/symbol/p-symbol-impl.js +54 -0
- 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/lib/framework/impl/table/table-cell-impl.js +145 -0
- package/lib/framework/impl/table/table-cell-impl.js.map +1 -0
- package/lib/framework/impl/table/table-impl.d.ts +55 -0
- package/lib/framework/impl/table/table-impl.js +363 -0
- package/lib/framework/impl/table/table-impl.js.map +1 -0
- package/lib/framework/impl/table/table-row-impl.d.ts +26 -0
- package/lib/framework/impl/table/table-row-impl.js +75 -0
- 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/lib/framework/impl/table/table-split-cell-patch.js +89 -0
- 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/lib/framework/impl/table/table-split-cell.js +464 -0
- package/lib/framework/impl/table/table-split-cell.js.map +1 -0
- package/lib/framework/impl/table/table-util.d.ts +150 -0
- package/lib/framework/impl/table/table-util.js +678 -0
- package/lib/framework/impl/table/table-util.js.map +1 -0
- package/lib/framework/impl/text/text-impl.d.ts +32 -0
- package/lib/framework/impl/text/text-impl.js +149 -0
- package/lib/framework/impl/text/text-impl.js.map +1 -0
- package/lib/framework/impl/text/track-run-impl.d.ts +27 -0
- package/lib/framework/impl/text/track-run-impl.js +112 -0
- package/lib/framework/impl/text/track-run-impl.js.map +1 -0
- package/lib/framework/notify.d.ts +13 -0
- package/lib/framework/notify.js +116 -0
- package/lib/framework/notify.js.map +1 -0
- package/lib/framework/range-util.d.ts +40 -0
- package/lib/framework/range-util.js +312 -0
- package/lib/framework/range-util.js.map +1 -0
- package/lib/framework/render-context.d.ts +91 -0
- package/lib/framework/render-context.js +384 -0
- package/lib/framework/render-context.js.map +1 -0
- package/lib/framework/render-define.d.ts +109 -0
- package/lib/framework/render-define.js +195 -0
- package/lib/framework/render-define.js.map +1 -0
- package/lib/framework/selection-overlays.d.ts +30 -0
- package/lib/framework/selection-overlays.js +124 -0
- package/lib/framework/selection-overlays.js.map +1 -0
- package/lib/texteditor.d.ts +318 -0
- package/lib/texteditor.js +913 -0
- 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/lib/util/table-bind.js +6 -0
- package/lib/util/table-bind.js.map +1 -0
- package/package.json +1 -1
- package/tsconfig.json +1 -1
- package/webpack.config.js +0 -1
@@ -0,0 +1,330 @@
|
|
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 "@/med_editor/framework/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
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"document-context.js","sourceRoot":"","sources":["../../src/med_editor/framework/document-context.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { EditorContext } from "./document-context";
|
2
|
+
export declare class DocumentEvalFunc {
|
3
|
+
docCtx: EditorContext;
|
4
|
+
constructor(docCtx: EditorContext);
|
5
|
+
scriptsFunc: (() => void) | null;
|
6
|
+
/**
|
7
|
+
* 实例化动态脚本
|
8
|
+
*/
|
9
|
+
initScripts(scripts: string): void;
|
10
|
+
/**
|
11
|
+
* 销毁动态脚本实例
|
12
|
+
*/
|
13
|
+
destroyScripts(): void;
|
14
|
+
/**
|
15
|
+
* 触发动态脚本
|
16
|
+
*/
|
17
|
+
invokedScripts(): void;
|
18
|
+
}
|
@@ -0,0 +1,48 @@
|
|
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
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"document-eval-func.js","sourceRoot":"","sources":["../../src/med_editor/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"}
|
@@ -0,0 +1,213 @@
|
|
1
|
+
import { Subject, Subscription } from "rxjs";
|
2
|
+
import { DocumentPaint } from "./document-paint";
|
3
|
+
import { SelectionState } from "./document-selection";
|
4
|
+
import { LeafElement, Rect, Element, Position, ViewOptions } from "./element-define";
|
5
|
+
import { ElementEvent, EventStage, EventTypes, HitEventInfo, HitRegion, ITrackTips, MouseElementEvent } from "./element-event-define";
|
6
|
+
import { BorderType, CursorType, RenderObject } from "./render-define";
|
7
|
+
import { EditorContext } from "./document-context";
|
8
|
+
interface EdgeRenderInfo {
|
9
|
+
renderElement: Element;
|
10
|
+
relativePos: Position;
|
11
|
+
mousedown: boolean;
|
12
|
+
mousedownPos?: Position;
|
13
|
+
border: BorderType;
|
14
|
+
}
|
15
|
+
/**
|
16
|
+
* 事件系统
|
17
|
+
*/
|
18
|
+
export declare class DocumentEvent {
|
19
|
+
private canvas;
|
20
|
+
private documentPaint;
|
21
|
+
private viewOptions;
|
22
|
+
private selectionState;
|
23
|
+
private docCtx;
|
24
|
+
private ismousedown;
|
25
|
+
startHitInfo: HitEventInfo | null;
|
26
|
+
endHitInfo: HitEventInfo | null;
|
27
|
+
focusedElement: LeafElement | null;
|
28
|
+
focusedRect: Rect | null;
|
29
|
+
currentMouseoverRender: {
|
30
|
+
render: RenderObject;
|
31
|
+
absoluteRenderRect: Rect;
|
32
|
+
} | null;
|
33
|
+
hitInfoChanged: Subject<{
|
34
|
+
startHitInfo: HitEventInfo;
|
35
|
+
endHitInfo: HitEventInfo;
|
36
|
+
}>;
|
37
|
+
clickEvent: Subject<MouseEvent>;
|
38
|
+
dblClickEvent: Subject<MouseEvent>;
|
39
|
+
changeCursor: Subject<CursorType>;
|
40
|
+
contextMenu: Subject<MouseEvent>;
|
41
|
+
trackTipsChanged: Subject<{
|
42
|
+
pos: Position;
|
43
|
+
tips: ITrackTips;
|
44
|
+
}>;
|
45
|
+
edgeRenderInfo: EdgeRenderInfo | null;
|
46
|
+
currentPos: Position;
|
47
|
+
mousedownPos: Position;
|
48
|
+
subs: Array<Subscription>;
|
49
|
+
constructor(canvas: HTMLCanvasElement, documentPaint: DocumentPaint, viewOptions: ViewOptions, selectionState: SelectionState, docCtx: EditorContext);
|
50
|
+
private bindEvent;
|
51
|
+
addSubEvent(sub: Subscription): void;
|
52
|
+
clearSubEvent(): void;
|
53
|
+
clear(): void;
|
54
|
+
private mousedown;
|
55
|
+
private mouseup;
|
56
|
+
private mousemove;
|
57
|
+
private prevTrackInfo;
|
58
|
+
/**
|
59
|
+
* 显示提示信息
|
60
|
+
* 显示留痕提示信息等
|
61
|
+
*/
|
62
|
+
private getTips;
|
63
|
+
/**
|
64
|
+
* 滚动视图的时候,需要手动触发mousemove
|
65
|
+
*/
|
66
|
+
onScrollView(): void;
|
67
|
+
/**
|
68
|
+
* 处理鼠标按下事件
|
69
|
+
* @param evt
|
70
|
+
* @returns
|
71
|
+
*/
|
72
|
+
private mousedownHandle;
|
73
|
+
/**
|
74
|
+
* 设置元素焦点状态
|
75
|
+
*/
|
76
|
+
private switchElementFocus;
|
77
|
+
clearHitInfo(): void;
|
78
|
+
/**
|
79
|
+
* 获取当前鼠标所在位置的元素信息
|
80
|
+
* @param evt
|
81
|
+
* @returns
|
82
|
+
*/
|
83
|
+
private getHitInfo;
|
84
|
+
private getMouseoverRenderInfo;
|
85
|
+
/**
|
86
|
+
* 鼠标移动事件
|
87
|
+
* 主要处理选区改变
|
88
|
+
*/
|
89
|
+
private mousemoveHandle;
|
90
|
+
private isCellRenderObject;
|
91
|
+
/**
|
92
|
+
* 当前绘制元素是否在单元格上面
|
93
|
+
* @param render
|
94
|
+
* @returns
|
95
|
+
*/
|
96
|
+
private isInCellRenderObject;
|
97
|
+
private isResizeRenderObject;
|
98
|
+
/**
|
99
|
+
* 触发鼠标移动事件
|
100
|
+
*/
|
101
|
+
private invokeMousemoveEvent;
|
102
|
+
prevCursorItems: Array<Element>;
|
103
|
+
/**
|
104
|
+
* 触发获取焦点事件
|
105
|
+
* 需要根据上次获取焦点的元素,比较触发失去焦点事件
|
106
|
+
* @param focusElement
|
107
|
+
*/
|
108
|
+
invokeCursor(focusElement: LeafElement): void;
|
109
|
+
/**
|
110
|
+
* mousedown-mouseup-click
|
111
|
+
*/
|
112
|
+
private mouseClickHandle;
|
113
|
+
/**
|
114
|
+
* 鼠标双击事件
|
115
|
+
*/
|
116
|
+
private mouseDblClickHandle;
|
117
|
+
/**
|
118
|
+
* 获取点击的渲染元素对象
|
119
|
+
* @param renderObject
|
120
|
+
* @param parPos
|
121
|
+
* @param hitPos
|
122
|
+
* @returns
|
123
|
+
*/
|
124
|
+
private getHitLeafRender;
|
125
|
+
private getTRowHitLeafRender;
|
126
|
+
/**
|
127
|
+
* 如果当前范围未击中任何元素,则需要匹配最近的元素
|
128
|
+
* @param renderObject
|
129
|
+
* @param parent
|
130
|
+
* @param position
|
131
|
+
*/
|
132
|
+
private getRecentHitRender;
|
133
|
+
/**
|
134
|
+
* 获取点击的doc-page
|
135
|
+
*/
|
136
|
+
private getHitDocPage;
|
137
|
+
/**
|
138
|
+
* 触发事件
|
139
|
+
* @param type
|
140
|
+
* @param sourceElement
|
141
|
+
*/
|
142
|
+
static invokeEvent(type: EventTypes, sourceElement: Element, event: ElementEvent, eventStage: EventStage, docCtx: EditorContext): ElementEvent | null;
|
143
|
+
/**
|
144
|
+
* 发布当前的点击信息
|
145
|
+
*/
|
146
|
+
private pubHitInfo;
|
147
|
+
/**
|
148
|
+
* 获取鼠标所在的渲染元素对象
|
149
|
+
* @param renderObject
|
150
|
+
* @param parent
|
151
|
+
* @param position
|
152
|
+
* @returns
|
153
|
+
*/
|
154
|
+
private getMouseoverRender;
|
155
|
+
/**
|
156
|
+
* 缩放元素
|
157
|
+
*/
|
158
|
+
private resizeRender;
|
159
|
+
/**
|
160
|
+
* 缩放表格
|
161
|
+
*/
|
162
|
+
private resizeTableCell;
|
163
|
+
private getResizeTableCell;
|
164
|
+
/**
|
165
|
+
* 调整元素大小
|
166
|
+
*/
|
167
|
+
private resizeElement;
|
168
|
+
/**
|
169
|
+
* 选中当前全部 ctrl+A
|
170
|
+
*/
|
171
|
+
selectAll(): void;
|
172
|
+
/**
|
173
|
+
* 移动光标到行首
|
174
|
+
*/
|
175
|
+
moveCursorToLineStart(): void;
|
176
|
+
/**
|
177
|
+
* 移动光标到行尾
|
178
|
+
*/
|
179
|
+
moveCursorToLineEnd(): void;
|
180
|
+
/**
|
181
|
+
* 处理移动光标到行尾或行首
|
182
|
+
* @param home
|
183
|
+
* @returns
|
184
|
+
*/
|
185
|
+
private moveCursorToHomeOrEnd;
|
186
|
+
/**
|
187
|
+
* 向左移动光标
|
188
|
+
*/
|
189
|
+
moveCursorToLeft(): void;
|
190
|
+
/**
|
191
|
+
* 向右移动光标
|
192
|
+
*/
|
193
|
+
moveCursorToRight(): void;
|
194
|
+
/**
|
195
|
+
* 向上移动光标
|
196
|
+
*/
|
197
|
+
moveCursorToUpOrDown(up?: boolean): void;
|
198
|
+
/**
|
199
|
+
* 当前偏移量是否处于当前元素的末尾
|
200
|
+
* @param ele
|
201
|
+
* @param offset
|
202
|
+
* @returns
|
203
|
+
*/
|
204
|
+
private isLeafEleEndOffset;
|
205
|
+
/**
|
206
|
+
* 获取点击的文档区域
|
207
|
+
* @param docRender
|
208
|
+
* @param pos
|
209
|
+
* @returns
|
210
|
+
*/
|
211
|
+
getHitRegion(docEvent: MouseElementEvent): HitRegion | null;
|
212
|
+
}
|
213
|
+
export {};
|