@hailin-zheng/editor-core 2.2.43 → 2.2.44

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