@hailin-zheng/editor-core 2.2.2 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. package/editor.css +610 -610
  2. package/index-cjs.d.ts +31 -31
  3. package/index-cjs.js +22202 -22166
  4. package/index-cjs.js.map +1 -1
  5. package/index.d.ts +31 -31
  6. package/index.js +22204 -22169
  7. package/index.js.map +1 -1
  8. package/med_editor/doc-editor.d.ts +464 -461
  9. package/med_editor/doc-rule.d.ts +46 -46
  10. package/med_editor/editor-core.d.ts +21 -21
  11. package/med_editor/framework/code-interpreter/ast-parser.d.ts +4 -4
  12. package/med_editor/framework/code-interpreter/document-eval-func.d.ts +18 -18
  13. package/med_editor/framework/code-interpreter/dynamic-execute.d.ts +23 -23
  14. package/med_editor/framework/doc-layout/document-arrange.d.ts +86 -86
  15. package/med_editor/framework/doc-layout/paragraph-arrange.d.ts +107 -107
  16. package/med_editor/framework/document-change.d.ts +295 -295
  17. package/med_editor/framework/document-combine.d.ts +24 -24
  18. package/med_editor/framework/document-comment.d.ts +38 -38
  19. package/med_editor/framework/document-context.d.ts +133 -133
  20. package/med_editor/framework/document-event.d.ts +251 -251
  21. package/med_editor/framework/document-input-cursor.d.ts +43 -43
  22. package/med_editor/framework/document-paginator.d.ts +46 -46
  23. package/med_editor/framework/document-svg.d.ts +36 -36
  24. package/med_editor/framework/document-template.d.ts +13 -13
  25. package/med_editor/framework/document-textline-mode.d.ts +6 -6
  26. package/med_editor/framework/element-define.d.ts +409 -406
  27. package/med_editor/framework/element-event-define.d.ts +107 -107
  28. package/med_editor/framework/element-props.d.ts +343 -343
  29. package/med_editor/framework/element-reader.d.ts +20 -20
  30. package/med_editor/framework/element-serialize.d.ts +36 -36
  31. package/med_editor/framework/element-type-handler.d.ts +9 -9
  32. package/med_editor/framework/history/element-trace-manage.d.ts +107 -107
  33. package/med_editor/framework/history/element-trace-tracking.d.ts +89 -89
  34. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +19 -19
  35. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +39 -39
  36. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +24 -24
  37. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +19 -19
  38. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +19 -19
  39. package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +15 -15
  40. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +32 -32
  41. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +96 -96
  42. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +26 -26
  43. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +23 -23
  44. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +17 -17
  45. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +23 -23
  46. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +21 -21
  47. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +22 -22
  48. package/med_editor/framework/impl/data-element/qrcode.d.ts +93 -93
  49. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +16 -16
  50. package/med_editor/framework/impl/document/doc-body-impl.d.ts +19 -20
  51. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +22 -22
  52. package/med_editor/framework/impl/document/doc-container-impl.d.ts +7 -7
  53. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +19 -19
  54. package/med_editor/framework/impl/document/doc-header-impl.d.ts +19 -19
  55. package/med_editor/framework/impl/document/doc-impl.d.ts +72 -71
  56. package/med_editor/framework/impl/index.d.ts +39 -39
  57. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +31 -31
  58. package/med_editor/framework/impl/media-formula/permanent-teeth.d.ts +34 -34
  59. package/med_editor/framework/impl/paragraph/p-impl.d.ts +38 -38
  60. package/med_editor/framework/impl/picture/RectEle.d.ts +44 -44
  61. package/med_editor/framework/impl/picture/image-impl.d.ts +24 -24
  62. package/med_editor/framework/impl/radio/radio-impl.d.ts +17 -17
  63. package/med_editor/framework/impl/svg/svg-impl.d.ts +20 -20
  64. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +18 -18
  65. package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +16 -16
  66. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +20 -20
  67. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +15 -15
  68. package/med_editor/framework/impl/table/table-cell-impl.d.ts +34 -34
  69. package/med_editor/framework/impl/table/table-impl.d.ts +49 -49
  70. package/med_editor/framework/impl/table/table-row-impl.d.ts +27 -27
  71. package/med_editor/framework/impl/table/table-split-cell-patch.d.ts +20 -20
  72. package/med_editor/framework/impl/table/table-split-cell.d.ts +92 -92
  73. package/med_editor/framework/impl/table/table-util.d.ts +180 -180
  74. package/med_editor/framework/impl/text/text-impl.d.ts +34 -34
  75. package/med_editor/framework/impl/text/track-run-impl.d.ts +27 -27
  76. package/med_editor/framework/infrastructure/event-subject.d.ts +56 -56
  77. package/med_editor/framework/infrastructure/notify.d.ts +13 -13
  78. package/med_editor/framework/print/document-print-offscreen.d.ts +58 -58
  79. package/med_editor/framework/print/document-print.d.ts +18 -18
  80. package/med_editor/framework/render-context.d.ts +111 -111
  81. package/med_editor/framework/render-define.d.ts +141 -141
  82. package/med_editor/framework/selection/document-selection.d.ts +91 -97
  83. package/med_editor/framework/selection/range-util.d.ts +36 -36
  84. package/med_editor/framework/selection/selection-overlays.d.ts +32 -32
  85. package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -12
  86. package/med_editor/framework/util/common-util.d.ts +76 -76
  87. package/med_editor/framework/util/document-segmenter.d.ts +2 -2
  88. package/med_editor/framework/util/element-util.d.ts +410 -410
  89. package/med_editor/framework/vnode/editor-calendar-vnode.d.ts +42 -42
  90. package/package.json +19 -19
@@ -1,406 +1,409 @@
1
- import { ElementEvent, EventTypes } from "./element-event-define";
2
- import { RenderContextType } from "./render-context";
3
- import { CursorType, LeafRenderObject, RenderObject } from "./render-define";
4
- import { Subject, Subscription } from "./infrastructure/event-subject";
5
- export declare class Rect {
6
- x: number;
7
- y: number;
8
- width: number;
9
- height: number;
10
- }
11
- export interface SerializeProps {
12
- type: string;
13
- props?: any;
14
- attribute?: any;
15
- children?: Array<SerializeProps>;
16
- complete?: boolean;
17
- }
18
- /**
19
- * 刷新类型
20
- * 刷新外观,不需要进行测量,直接进入绘制
21
- * 刷新内容,需要重新测量,再绘制
22
- */
23
- export declare type RefreshType = 'appearance' | 'content';
24
- /**
25
- * 修改标志
26
- */
27
- export declare enum ModifyFlag {
28
- Modify = 0,
29
- None = 1,
30
- Track = 2
31
- }
32
- export interface OnChangeEventProps {
33
- data: any;
34
- }
35
- export declare type ElementHandler<E extends ElementEvent = ElementEvent> = (e: E) => void;
36
- interface RegisterTypeHandlerProps<T extends Element> {
37
- elementType: any;
38
- elementTypeCategory?: 'function' | 'constructor';
39
- eventName: EventTypes;
40
- handler: ElementHandler;
41
- useCapture: boolean;
42
- ctx: ElementEvent['ctx'];
43
- }
44
- /**
45
- * 类型事件处理
46
- */
47
- export declare const elementTypeEventHandler: Array<RegisterTypeHandlerProps<Element>>;
48
- export declare function invokeTypeHandler(ele: Element, eventName: EventTypes, e: ElementEvent, useCapture?: boolean): void;
49
- /**
50
- * 定义组件的数据,配置
51
- */
52
- export declare abstract class Element<P extends object = any> {
53
- type: string;
54
- modifyFlag: ModifyFlag;
55
- isMouseenter: boolean;
56
- private _eventMap;
57
- private _refreshEvent;
58
- protected _onChangeEvent: Subject<void>;
59
- private observers;
60
- paintRenders: Array<RenderObject>;
61
- cacheRender: RenderObject | null;
62
- focusable: boolean;
63
- isFocused: boolean;
64
- /**
65
- * 修饰元素不能复制、序列化、删除(需要手动删除)
66
- */
67
- isDecorate: boolean;
68
- /**
69
- * 可点击性,例如:null-text 占位符元素不具备可点击能力
70
- * 2.编辑页眉页脚的能力
71
- */
72
- disableClick: boolean;
73
- disposed: boolean;
74
- loaded: boolean;
75
- visibleExpr?: IVisibleExpression;
76
- attribute?: ElementAttribute;
77
- private _parent;
78
- get parent(): BranchElement;
79
- set parent(val: BranchElement);
80
- private _props;
81
- get props(): P;
82
- set props(value: P);
83
- private notifyChanged;
84
- key: string;
85
- constructor(type: string);
86
- abstract createRenderObject(data: ICreateRenderData): RenderObject | null;
87
- abstract serialize(viewOptions: ViewOptions): SerializeProps | null;
88
- abstract clone(data: boolean): Element;
89
- abstract getChildLength(): number;
90
- abstract getSelfLength(pure: boolean): number;
91
- destroy(): void;
92
- addEvent<T extends ElementEvent>(event: EventTypes, handle: (evt: T) => void, useCapture?: boolean): string;
93
- removeEvent(eventId: string): void;
94
- removeEventByType(eventType: EventTypes): void;
95
- invokeEvent(event: EventTypes, evt: ElementEvent, userCapture?: boolean): void;
96
- beginMeasure(data: IBeginMeasureData): void;
97
- endMeasure(): void;
98
- getIndex(): number;
99
- get refreshSubject(): Subject<void>;
100
- get onChangeSubject(): Subject<void>;
101
- refreshView(): void;
102
- abstract pubOnChange(selfChange: pubChangeType): void;
103
- unsubscribe(element: Element): void;
104
- addsubscribe(element: Element, ...sub: Array<Subscription>): void;
105
- /**
106
- * 移除当前节点
107
- */
108
- remove(): void;
109
- }
110
- /**
111
- * 最小节点元素
112
- */
113
- export declare abstract class LeafElement<P extends object = any> extends Element<P> {
114
- cursorType: CursorType;
115
- getChildLength(): number;
116
- destroy(): void;
117
- getSelfLength(pure: boolean): number;
118
- pubOnChange(selfChange: pubChangeType): void;
119
- }
120
- /**
121
- * 枝干节点,包含若干个枝干或者叶子节点
122
- */
123
- export declare abstract class BranchElement<P extends object = any> extends Element<P> {
124
- private chilren;
125
- constructor(type: string);
126
- addChild(child: Element, index?: number): void;
127
- removeChild(child: Element): void;
128
- removeChildByIndex(index: number): void;
129
- disposeChild(child: Element): void;
130
- clearItems(): void;
131
- destroy(): void;
132
- get length(): number;
133
- find(predicate: (item: Element, index: number) => boolean): Element | undefined;
134
- getChild<T extends Element = Element>(index: number): T;
135
- getChildIndex(child: Element): number;
136
- getChildLength(): number;
137
- getSelfLength(pure: boolean): number;
138
- treeFilter(predicate: (item: Element) => boolean): Array<Element>;
139
- treeFind(predicate: (item: Element) => boolean): Element | null;
140
- pubOnChange(selfChange: pubChangeType): void;
141
- }
142
- export declare function clearChildrenRenderCache(ele: BranchElement): void;
143
- export declare function setChildrenModifyFlag(modifyFlag: ModifyFlag, ele: BranchElement): void;
144
- export declare type pubChangeType = 'self' | 'tracker' | 'to-child';
145
- /**
146
- * 行内编组元素
147
- */
148
- export declare abstract class InlineGroupElement<P extends object = any> extends BranchElement<P> {
149
- }
150
- /**
151
- * 块级元素,目前只有P元素
152
- */
153
- export declare abstract class BlockContentElement<P extends object = any> extends BranchElement<P> {
154
- }
155
- /**
156
- * 包含块级渲染元素的容器元素,例如body、table-cell、table等
157
- */
158
- export declare abstract class BlockContainerElement<P extends object = any> extends BranchElement<P> {
159
- }
160
- export interface readElementProps<T> {
161
- type: string;
162
- props: T | undefined;
163
- children: any | undefined;
164
- }
165
- export declare abstract class ElementFactory<T = null> {
166
- options: ViewOptions;
167
- abstract match(type: string): boolean;
168
- abstract createElement(data: readElementProps<T>): Element;
169
- readCompleted(ele: Element, children: Array<Element>): void;
170
- }
171
- export interface SelectionContentRange {
172
- target: Element;
173
- parentRange?: SelectionContentRange;
174
- isFullSelected: boolean;
175
- startOffset: number;
176
- endOffset: number;
177
- selectedChildren: Array<SelectionContentRange>;
178
- }
179
- /**
180
- * 编辑模式
181
- */
182
- export declare enum EditMode {
183
- /**
184
- * 自由模式,设计模板时使用
185
- */
186
- Free = 0,
187
- /**
188
- * 严格模式,医生书写模式时使用,只可更改数据元值
189
- */
190
- Strict = 1,
191
- /**
192
- * 查看模式,任何修改文档的操作都不允许,但是可选中,有拖蓝
193
- */
194
- View = 2,
195
- /**
196
- * 禁用模式,当前区域不可点击,不可选中,页脚、页眉编辑时的控制
197
- */
198
- Disabled = 3
199
- }
200
- /**
201
- * 文档模式
202
- */
203
- export declare enum DocMode {
204
- Design = 0,
205
- /**
206
- * 完全编辑模式
207
- */
208
- Edit = 1,
209
- /**
210
- * 表单编辑模式
211
- */
212
- FormEdit = 2,
213
- /**
214
- * 视图模式,只能查看
215
- */
216
- View = 3
217
- }
218
- export declare enum BooleanEnum {
219
- Null = 0,
220
- True = 1,
221
- False = 2
222
- }
223
- export interface DocUser {
224
- id: string;
225
- name: string;
226
- }
227
- export declare class PageOptions {
228
- private _width;
229
- private _height;
230
- orient: OrientType;
231
- constructor(width: number, height: number, orient?: OrientType);
232
- get width(): number;
233
- set width(value: number);
234
- get height(): number;
235
- set height(value: number);
236
- clone(): PageOptions;
237
- }
238
- export declare type OrientType = 'landscape' | 'portrait';
239
- export declare type PageLayoutMode = 'singlePage' | 'multiPage' | 'fit-page';
240
- export declare class ViewOptions {
241
- copyRightInfo: string;
242
- watermark?: string;
243
- drawLineRectColor: string;
244
- drawCharRectColor: string;
245
- drawSymbolsColor: string;
246
- defaultFontName: string;
247
- editorVersion: string;
248
- defaultFontSize: number;
249
- defaultColor: string;
250
- selectionOverlaysColor: string;
251
- dataEleOverlaysColor: string;
252
- dataEleFocusedBgColor: string;
253
- dataEleErrorBgColor: string;
254
- dataEleReadOnlyOverlayColor: string;
255
- dataEleOutlineColor: string;
256
- viewBackcolor: string;
257
- paraSymbolColor: string;
258
- dataGroupColor: string;
259
- defaultLineHeight: number;
260
- virtualViewMode: boolean;
261
- trackInsColor: string;
262
- trackDelColor: string;
263
- showLineRect: boolean;
264
- showCharRect: boolean;
265
- dataEleDecoratorMode: 'none' | 'outline' | 'overlay';
266
- dataEleDecoratorColor: string;
267
- showTabChar: boolean;
268
- showSpaceChar: boolean;
269
- showLineBreak: boolean;
270
- bodyMarginTop: number;
271
- devMode: boolean;
272
- showParaSymbol: boolean;
273
- showDebug: boolean;
274
- resourceMode: 'lazy' | 'immediate';
275
- secretBrowse: boolean;
276
- chineseLayout: boolean;
277
- enableTrackHistory: boolean;
278
- trackHistoryMaxLength: number;
279
- enableDyExpression: boolean;
280
- showRule: boolean;
281
- enableDataEleInputValidate: boolean;
282
- private _fullPageView;
283
- ruleHeight: number;
284
- printHeaderFooterLine: boolean;
285
- showEnterSymbol: boolean;
286
- enableVisibleExpression: boolean;
287
- get fullPageView(): boolean;
288
- set fullPageView(value: boolean);
289
- mmToPixelsRatio: number;
290
- cursor: CursorType;
291
- pageOffset: Position;
292
- docPageSettings: PageOptions;
293
- viewSettings: {
294
- width: number;
295
- height: number;
296
- };
297
- selectPrintAreaBgColor: string;
298
- pageNumFormat: string;
299
- pageNumOffset: number;
300
- pageLayoutMode: PageLayoutMode;
301
- defaultIndent: number;
302
- get contentWidth(): number;
303
- docSpace: number;
304
- reviewWindowWidth: number;
305
- private _scale;
306
- get scale(): number;
307
- set scale(val: number);
308
- docMode: DocMode;
309
- private _showTrackChanges;
310
- private _showTrackChangesTip;
311
- get showTrackChanges(): boolean;
312
- set showTrackChanges(value: boolean);
313
- get showTrackChangesTip(): boolean;
314
- set showTrackChangesTip(value: boolean);
315
- textRowLineMode: boolean;
316
- editUser: DocUser;
317
- trackChangePeriod: number;
318
- onChange: Subject<'demand' | 'force'>;
319
- printMode: 'normal' | 'continuation';
320
- constructor();
321
- }
322
- export declare class MarginProps {
323
- top: number;
324
- bottom: number;
325
- left: number;
326
- right: number;
327
- constructor(top?: number, bottom?: number, left?: number, right?: number);
328
- clone(): MarginProps;
329
- }
330
- export declare class PaddingProps extends MarginProps {
331
- }
332
- export declare class BorderProps {
333
- width: number;
334
- color: string;
335
- style: string;
336
- constructor(width?: number, color?: string, style?: string);
337
- clone(): BorderProps;
338
- }
339
- /**
340
- * 克隆元素的基本属性
341
- * @param ele
342
- * @param target
343
- */
344
- export declare function cloneElementBase(ele: Element, target: Element): any;
345
- /**
346
- * 克隆元素的子元素
347
- * @param ele
348
- * @param target
349
- * @param data
350
- */
351
- export declare function cloneChildren(ele: BranchElement, target: BranchElement, data: boolean): void;
352
- export declare abstract class IDispose {
353
- abstract destroy(): void;
354
- }
355
- export declare type TextAlign = 'center' | 'left' | 'right' | 'justify';
356
- export interface Position {
357
- x: number;
358
- y: number;
359
- }
360
- export declare abstract class ResizeLeafRenderObject<T extends Element = Element> extends LeafRenderObject<T> {
361
- }
362
- export declare type NullableType<T> = {
363
- [PropName in keyof T]?: T[PropName];
364
- };
365
- export declare type RequiredType<T> = {
366
- [PropName in keyof T]: T[PropName];
367
- };
368
- export declare type ImgLoadStatus = 'no' | 'loading' | 'completed' | 'error';
369
- export interface ICancelTokenFn {
370
- cancel?: () => void;
371
- onFinish?: (data: any) => void;
372
- }
373
- declare type IVoidFn = () => void;
374
- export declare function onceTask(fn: IVoidFn): IVoidFn;
375
- export interface IBeginMeasureData {
376
- doc: BranchElement;
377
- viewOptions: ViewOptions;
378
- execute: object;
379
- createParaFn: () => Element;
380
- }
381
- export interface ICreateRenderData {
382
- options: ViewOptions;
383
- renderCtx: RenderContextType;
384
- }
385
- export interface FontBoundingBox {
386
- fontBoundingBoxAscent: number;
387
- fontBoundingBoxDescent: number;
388
- }
389
- export interface RefCtxValue {
390
- get value(): any;
391
- set value(val: any);
392
- get ref(): any;
393
- }
394
- /**
395
- * 需要实现一个可见性表达式的类型,控制目标元素的可见性(sourceElement),targetElement为影响元素,影响元素可能为多个
396
- * 例如:sourceElement.visible= targetElement1.value==="1" && targetElement2.value===2等
397
- */
398
- export interface IVisibleExpression {
399
- compliedCode: string;
400
- func: Function;
401
- depItems: Map<string, RefCtxValue>;
402
- }
403
- export interface ElementAttribute {
404
- visibleExpr?: string;
405
- }
406
- export {};
1
+ import { ElementEvent, EventTypes } from "./element-event-define";
2
+ import { RenderContextType } from "./render-context";
3
+ import { CursorType, LeafRenderObject, RenderObject } from "./render-define";
4
+ import { Subject, Subscription } from "./infrastructure/event-subject";
5
+ export declare class Rect {
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ }
11
+ export interface SerializeProps {
12
+ type: string;
13
+ props?: any;
14
+ attribute?: any;
15
+ children?: Array<SerializeProps>;
16
+ complete?: boolean;
17
+ }
18
+ export declare const TEXT_HEIGHT_FACTOR = 1.4;
19
+ /**
20
+ * 刷新类型
21
+ * 刷新外观,不需要进行测量,直接进入绘制
22
+ * 刷新内容,需要重新测量,再绘制
23
+ */
24
+ export declare type RefreshType = 'appearance' | 'content';
25
+ /**
26
+ * 修改标志
27
+ */
28
+ export declare enum ModifyFlag {
29
+ Modify = 0,
30
+ None = 1,
31
+ Track = 2
32
+ }
33
+ export interface OnChangeEventProps {
34
+ data: any;
35
+ }
36
+ export declare type ElementHandler<E extends ElementEvent = ElementEvent> = (e: E) => void;
37
+ interface RegisterTypeHandlerProps<T extends Element> {
38
+ elementType: any;
39
+ elementTypeCategory?: 'function' | 'constructor';
40
+ eventName: EventTypes;
41
+ handler: ElementHandler;
42
+ useCapture: boolean;
43
+ ctx: ElementEvent['ctx'];
44
+ }
45
+ /**
46
+ * 类型事件处理
47
+ */
48
+ export declare const elementTypeEventHandler: Array<RegisterTypeHandlerProps<Element>>;
49
+ export declare function invokeTypeHandler(ele: Element, eventName: EventTypes, e: ElementEvent, useCapture?: boolean): void;
50
+ /**
51
+ * 定义组件的数据,配置
52
+ */
53
+ export declare abstract class Element<P extends object = any> {
54
+ type: string;
55
+ modifyFlag: ModifyFlag;
56
+ isMouseenter: boolean;
57
+ private _eventMap;
58
+ private _refreshEvent;
59
+ protected _onChangeEvent: Subject<void>;
60
+ private observers;
61
+ paintRenders: Array<RenderObject>;
62
+ cacheRender: RenderObject | null;
63
+ focusable: boolean;
64
+ isFocused: boolean;
65
+ /**
66
+ * 修饰元素不能复制、序列化、删除(需要手动删除)
67
+ */
68
+ isDecorate: boolean;
69
+ /**
70
+ * 可点击性,例如:null-text 占位符元素不具备可点击能力
71
+ * 2.编辑页眉页脚的能力
72
+ */
73
+ disableClick: boolean;
74
+ disposed: boolean;
75
+ loaded: boolean;
76
+ visibleExpr?: IVisibleExpression;
77
+ attribute?: ElementAttribute;
78
+ private _parent;
79
+ get parent(): BranchElement;
80
+ set parent(val: BranchElement);
81
+ private _props;
82
+ get props(): P;
83
+ set props(value: P);
84
+ private notifyChanged;
85
+ key: string;
86
+ constructor(type: string);
87
+ abstract createRenderObject(data: ICreateRenderData): RenderObject | null;
88
+ abstract serialize(viewOptions: ViewOptions): SerializeProps | null;
89
+ abstract clone(data: boolean): Element;
90
+ abstract getChildLength(): number;
91
+ abstract getSelfLength(pure: boolean): number;
92
+ destroy(): void;
93
+ addEvent<T extends ElementEvent>(event: EventTypes, handle: (evt: T) => void, useCapture?: boolean): string;
94
+ removeEvent(eventId: string): void;
95
+ removeEventByType(eventType: EventTypes): void;
96
+ invokeEvent(event: EventTypes, evt: ElementEvent, userCapture?: boolean): void;
97
+ beginMeasure(data: IBeginMeasureData): void;
98
+ endMeasure(): void;
99
+ getIndex(): number;
100
+ get refreshSubject(): Subject<void>;
101
+ get onChangeSubject(): Subject<void>;
102
+ refreshView(): void;
103
+ abstract pubOnChange(selfChange: pubChangeType): void;
104
+ unsubscribe(element: Element): void;
105
+ addsubscribe(element: Element, ...sub: Array<Subscription>): void;
106
+ /**
107
+ * 移除当前节点
108
+ */
109
+ remove(): void;
110
+ }
111
+ /**
112
+ * 最小节点元素
113
+ */
114
+ export declare abstract class LeafElement<P extends object = any> extends Element<P> {
115
+ cursorType: CursorType;
116
+ getChildLength(): number;
117
+ destroy(): void;
118
+ getSelfLength(pure: boolean): number;
119
+ pubOnChange(selfChange: pubChangeType): void;
120
+ }
121
+ /**
122
+ * 枝干节点,包含若干个枝干或者叶子节点
123
+ */
124
+ export declare abstract class BranchElement<P extends object = any> extends Element<P> {
125
+ private chilren;
126
+ constructor(type: string);
127
+ addChild(child: Element, index?: number): void;
128
+ removeChild(child: Element): void;
129
+ removeChildByIndex(index: number): void;
130
+ disposeChild(child: Element): void;
131
+ clearItems(): void;
132
+ destroy(): void;
133
+ get length(): number;
134
+ find(predicate: (item: Element, index: number) => boolean): Element | undefined;
135
+ getChild<T extends Element = Element>(index: number): T;
136
+ getChildIndex(child: Element): number;
137
+ getChildLength(): number;
138
+ getSelfLength(pure: boolean): number;
139
+ treeFilter(predicate: (item: Element) => boolean): Array<Element>;
140
+ treeFind(predicate: (item: Element) => boolean): Element | null;
141
+ pubOnChange(selfChange: pubChangeType): void;
142
+ }
143
+ export declare function clearChildrenRenderCache(ele: BranchElement): void;
144
+ export declare function setChildrenModifyFlag(modifyFlag: ModifyFlag, ele: BranchElement): void;
145
+ export declare type pubChangeType = 'self' | 'tracker' | 'to-child';
146
+ /**
147
+ * 行内编组元素
148
+ */
149
+ export declare abstract class InlineGroupElement<P extends object = any> extends BranchElement<P> {
150
+ }
151
+ /**
152
+ * 块级元素,目前只有P元素
153
+ */
154
+ export declare abstract class BlockContentElement<P extends object = any> extends BranchElement<P> {
155
+ }
156
+ /**
157
+ * 包含块级渲染元素的容器元素,例如body、table-cell、table等
158
+ */
159
+ export declare abstract class BlockContainerElement<P extends object = any> extends BranchElement<P> {
160
+ }
161
+ export interface readElementProps<T> {
162
+ type: string;
163
+ props: T | undefined;
164
+ children: any | undefined;
165
+ }
166
+ export declare abstract class ElementFactory<T = null> {
167
+ options: ViewOptions;
168
+ abstract match(type: string): boolean;
169
+ abstract createElement(data: readElementProps<T>): Element;
170
+ readCompleted(ele: Element, children: Array<Element>): void;
171
+ }
172
+ export interface SelectionContentRange {
173
+ target: Element;
174
+ parentRange?: SelectionContentRange;
175
+ isFullSelected: boolean;
176
+ startOffset: number;
177
+ endOffset: number;
178
+ selectedChildren: Array<SelectionContentRange>;
179
+ }
180
+ /**
181
+ * 编辑模式
182
+ */
183
+ export declare enum EditMode {
184
+ /**
185
+ * 自由模式,设计模板时使用
186
+ */
187
+ Free = 0,
188
+ /**
189
+ * 严格模式,医生书写模式时使用,只可更改数据元值
190
+ */
191
+ Strict = 1,
192
+ /**
193
+ * 查看模式,任何修改文档的操作都不允许,但是可选中,有拖蓝
194
+ */
195
+ View = 2,
196
+ /**
197
+ * 禁用模式,当前区域不可点击,不可选中,页脚、页眉编辑时的控制
198
+ */
199
+ Disabled = 3
200
+ }
201
+ /**
202
+ * 文档模式
203
+ */
204
+ export declare enum DocMode {
205
+ Design = 0,
206
+ /**
207
+ * 完全编辑模式
208
+ */
209
+ Edit = 1,
210
+ /**
211
+ * 表单编辑模式
212
+ */
213
+ FormEdit = 2,
214
+ /**
215
+ * 视图模式,只能查看
216
+ */
217
+ View = 3
218
+ }
219
+ export declare enum BooleanEnum {
220
+ Null = 0,
221
+ True = 1,
222
+ False = 2
223
+ }
224
+ export interface DocUser {
225
+ id: string;
226
+ name: string;
227
+ }
228
+ export declare class PageOptions {
229
+ private _width;
230
+ private _height;
231
+ orient: OrientType;
232
+ constructor(width: number, height: number, orient?: OrientType);
233
+ get width(): number;
234
+ set width(value: number);
235
+ get height(): number;
236
+ set height(value: number);
237
+ clone(): PageOptions;
238
+ }
239
+ export declare type OrientType = 'landscape' | 'portrait';
240
+ export declare type PageLayoutMode = 'singlePage' | 'multiPage' | 'fit-page';
241
+ export declare class ViewOptions {
242
+ copyRightInfo: string;
243
+ trialVersion: boolean;
244
+ watermark?: string;
245
+ drawLineRectColor: string;
246
+ drawCharRectColor: string;
247
+ drawSymbolsColor: string;
248
+ defaultFontName: string;
249
+ editorVersion: string;
250
+ defaultFontSize: number;
251
+ defaultColor: string;
252
+ selectionOverlaysColor: string;
253
+ dataEleOverlaysColor: string;
254
+ dataEleFocusedBgColor: string;
255
+ dataEleErrorBgColor: string;
256
+ dataEleReadOnlyOverlayColor: string;
257
+ dataEleOutlineColor: string;
258
+ viewBackcolor: string;
259
+ paraSymbolColor: string;
260
+ dataGroupColor: string;
261
+ defaultLineHeight: number;
262
+ virtualViewMode: boolean;
263
+ trackInsColor: string;
264
+ trackDelColor: string;
265
+ showLineRect: boolean;
266
+ showCharRect: boolean;
267
+ dataEleDecoratorMode: 'none' | 'outline' | 'overlay';
268
+ dataEleDecoratorColor: string;
269
+ showTabChar: boolean;
270
+ showSpaceChar: boolean;
271
+ showLineBreak: boolean;
272
+ bodyMarginTop: number;
273
+ devMode: boolean;
274
+ showParaSymbol: boolean;
275
+ showDebug: boolean;
276
+ resourceMode: 'lazy' | 'immediate';
277
+ secretBrowse: boolean;
278
+ chineseLayout: boolean;
279
+ enableTrackHistory: boolean;
280
+ trackHistoryMaxLength: number;
281
+ enableDyExpression: boolean;
282
+ showRule: boolean;
283
+ enableDataEleInputValidate: boolean;
284
+ private _fullPageView;
285
+ ruleHeight: number;
286
+ printHeaderFooterLine: boolean;
287
+ showEnterSymbol: boolean;
288
+ enableVisibleExpression: boolean;
289
+ get fullPageView(): boolean;
290
+ set fullPageView(value: boolean);
291
+ mmToPixelsRatio: number;
292
+ cursor: CursorType;
293
+ pageOffset: Position;
294
+ docPageSettings: PageOptions;
295
+ viewSettings: {
296
+ width: number;
297
+ height: number;
298
+ };
299
+ selectPrintAreaBgColor: string;
300
+ pageNumFormat: string;
301
+ pageNumOffset: number;
302
+ pageLayoutMode: PageLayoutMode;
303
+ defaultIndent: number;
304
+ get contentWidth(): number;
305
+ docSpace: number;
306
+ reviewWindowWidth: number;
307
+ private _scale;
308
+ get scale(): number;
309
+ set scale(val: number);
310
+ docMode: DocMode;
311
+ private _showTrackChanges;
312
+ private _showTrackChangesTip;
313
+ enableTrackChanges: boolean;
314
+ get showTrackChanges(): boolean;
315
+ set showTrackChanges(value: boolean);
316
+ get showTrackChangesTip(): boolean;
317
+ set showTrackChangesTip(value: boolean);
318
+ textRowLineMode: boolean;
319
+ editUser: DocUser;
320
+ trackChangePeriod: number;
321
+ onChange: Subject<'demand' | 'force'>;
322
+ printMode: 'normal' | 'continuation';
323
+ constructor();
324
+ }
325
+ export declare class MarginProps {
326
+ top: number;
327
+ bottom: number;
328
+ left: number;
329
+ right: number;
330
+ constructor(top?: number, bottom?: number, left?: number, right?: number);
331
+ clone(): MarginProps;
332
+ }
333
+ export declare class PaddingProps extends MarginProps {
334
+ }
335
+ export declare class BorderProps {
336
+ width: number;
337
+ color: string;
338
+ style: string;
339
+ constructor(width?: number, color?: string, style?: string);
340
+ clone(): BorderProps;
341
+ }
342
+ /**
343
+ * 克隆元素的基本属性
344
+ * @param ele
345
+ * @param target
346
+ */
347
+ export declare function cloneElementBase(ele: Element, target: Element): any;
348
+ /**
349
+ * 克隆元素的子元素
350
+ * @param ele
351
+ * @param target
352
+ * @param data
353
+ */
354
+ export declare function cloneChildren(ele: BranchElement, target: BranchElement, data: boolean): void;
355
+ export declare abstract class IDispose {
356
+ abstract destroy(): void;
357
+ }
358
+ export declare type TextAlign = 'center' | 'left' | 'right' | 'justify';
359
+ export interface Position {
360
+ x: number;
361
+ y: number;
362
+ }
363
+ export declare abstract class ResizeLeafRenderObject<T extends Element = Element> extends LeafRenderObject<T> {
364
+ }
365
+ export declare type NullableType<T> = {
366
+ [PropName in keyof T]?: T[PropName];
367
+ };
368
+ export declare type RequiredType<T> = {
369
+ [PropName in keyof T]: T[PropName];
370
+ };
371
+ export declare type ImgLoadStatus = 'no' | 'loading' | 'completed' | 'error';
372
+ export interface ICancelTokenFn {
373
+ cancel?: () => void;
374
+ onFinish?: (data: any) => void;
375
+ }
376
+ declare type IVoidFn = () => void;
377
+ export declare function onceTask(fn: IVoidFn): IVoidFn;
378
+ export interface IBeginMeasureData {
379
+ doc: BranchElement;
380
+ viewOptions: ViewOptions;
381
+ execute: object;
382
+ createParaFn: () => Element;
383
+ }
384
+ export interface ICreateRenderData {
385
+ options: ViewOptions;
386
+ renderCtx: RenderContextType;
387
+ }
388
+ export interface FontBoundingBox {
389
+ fontBoundingBoxAscent: number;
390
+ fontBoundingBoxDescent: number;
391
+ }
392
+ export interface RefCtxValue {
393
+ get value(): any;
394
+ set value(val: any);
395
+ get ref(): any;
396
+ }
397
+ /**
398
+ * 需要实现一个可见性表达式的类型,控制目标元素的可见性(sourceElement),targetElement为影响元素,影响元素可能为多个
399
+ * 例如:sourceElement.visible= targetElement1.value==="1" && targetElement2.value===2等
400
+ */
401
+ export interface IVisibleExpression {
402
+ compliedCode: string;
403
+ func: Function;
404
+ depItems: Map<string, RefCtxValue>;
405
+ }
406
+ export interface ElementAttribute {
407
+ visibleExpr?: string;
408
+ }
409
+ export {};