@hailin-zheng/editor-core 1.0.6 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/{lib/doc-ruler.js → src/med_editor/doc-ruler.ts} +101 -74
- package/src/med_editor/framework/common-util.ts +200 -0
- package/{lib/framework/document-change.js → src/med_editor/framework/document-change.ts} +308 -259
- package/{lib/framework/document-combine.js → src/med_editor/framework/document-combine.ts} +15 -11
- package/{lib/framework/document-comment.js → src/med_editor/framework/document-comment.ts} +52 -37
- package/{lib/framework/document-context.js → src/med_editor/framework/document-context.ts} +181 -101
- package/{lib/framework/document-eval-func.js → src/med_editor/framework/document-eval-func.ts} +16 -11
- package/{lib/framework/document-event.js → src/med_editor/framework/document-event.ts} +244 -216
- package/{lib/framework/document-history.js → src/med_editor/framework/document-history.ts} +25 -14
- package/{lib/framework/document-images-loader.js → src/med_editor/framework/document-images-loader.ts} +25 -17
- package/{lib/framework/document-input-cursor.js → src/med_editor/framework/document-input-cursor.ts} +76 -71
- package/{lib/framework/document-paint.js → src/med_editor/framework/document-paint.ts} +35 -28
- package/{lib/framework/document-print-offscreen.js → src/med_editor/framework/document-print-offscreen.ts} +25 -19
- package/{lib/framework/document-print.js → src/med_editor/framework/document-print.ts} +57 -41
- package/src/med_editor/framework/document-segmenter.ts +211 -0
- package/{lib/framework/document-selection.js → src/med_editor/framework/document-selection.ts} +116 -85
- package/{lib/framework/document-template.js → src/med_editor/framework/document-template.ts} +3 -3
- package/src/med_editor/framework/document-textline-mode.ts +34 -0
- package/{lib/framework/element-define.js → src/med_editor/framework/element-define.ts} +301 -206
- package/src/med_editor/framework/element-event-define.ts +141 -0
- package/{lib/framework/element-measure.js → src/med_editor/framework/element-measure.ts} +143 -121
- package/{lib/framework/element-paint.js → src/med_editor/framework/element-paint.ts} +44 -38
- package/{lib/framework/element-props.js → src/med_editor/framework/element-props.ts} +331 -202
- package/{lib/framework/element-reader.js → src/med_editor/framework/element-reader.ts} +39 -31
- package/{lib/framework/element-render-cut.js → src/med_editor/framework/element-render-cut.ts} +113 -106
- package/{lib/framework/element-serialize.js → src/med_editor/framework/element-serialize.ts} +37 -24
- package/{lib/framework/element-util.js → src/med_editor/framework/element-util.ts} +317 -216
- package/{lib/framework/impl/checkbox/checkbox-impl.js → src/med_editor/framework/impl/checkbox/checkbox-impl.ts} +27 -20
- package/{lib/framework/impl/comments/comment-content-impl.js → src/med_editor/framework/impl/comments/comment-content-impl.ts} +45 -31
- package/{lib/framework/impl/comments/comment-element-impl.js → src/med_editor/framework/impl/comments/comment-element-impl.ts} +23 -20
- package/{lib/framework/impl/comments/comments-container-impl.js → src/med_editor/framework/impl/comments/comments-container-impl.ts} +22 -16
- package/{lib/framework/impl/comments/comments-util.js → src/med_editor/framework/impl/comments/comments-util.ts} +34 -17
- package/{lib/framework/impl/comments/validate-msg-impl.js → src/med_editor/framework/impl/comments/validate-msg-impl.ts} +28 -17
- package/{lib/framework/impl/data-element/data-decorate-impl.js → src/med_editor/framework/impl/data-element/data-decorate-impl.ts} +26 -22
- package/{lib/framework/impl/data-element/data-element-barcode.js → src/med_editor/framework/impl/data-element/data-element-barcode.ts} +41 -29
- package/{lib/framework/impl/data-element/data-element-base-impl.js → src/med_editor/framework/impl/data-element/data-element-base-impl.ts} +73 -44
- package/{lib/framework/impl/data-element/data-element-check-impl.js → src/med_editor/framework/impl/data-element/data-element-check-impl.ts} +48 -35
- package/{lib/framework/impl/data-element/data-element-date-impl.js → src/med_editor/framework/impl/data-element/data-element-date-impl.ts} +41 -24
- package/{lib/framework/impl/data-element/data-element-group-impl.js → src/med_editor/framework/impl/data-element/data-element-group-impl.ts} +52 -32
- package/{lib/framework/impl/data-element/data-element-image-impl.js → src/med_editor/framework/impl/data-element/data-element-image-impl.ts} +38 -28
- package/{lib/framework/impl/data-element/data-element-list-impl.js → src/med_editor/framework/impl/data-element/data-element-list-impl.ts} +42 -31
- package/{lib/framework/impl/data-element/data-element-text-impl.js → src/med_editor/framework/impl/data-element/data-element-text-impl.ts} +36 -22
- package/{lib/framework/impl/decorate/fill-null-space-imple.js → src/med_editor/framework/impl/decorate/fill-null-space-imple.ts} +15 -10
- package/{lib/framework/impl/document/doc-body-impl.js → src/med_editor/framework/impl/document/doc-body-impl.ts} +32 -16
- package/{lib/framework/impl/document/doc-body-part-impl.js → src/med_editor/framework/impl/document/doc-body-part-impl.ts} +27 -17
- package/src/med_editor/framework/impl/document/doc-container-impl.ts +24 -0
- package/{lib/framework/impl/document/doc-footer-impl.js → src/med_editor/framework/impl/document/doc-footer-impl.ts} +30 -19
- package/{lib/framework/impl/document/doc-header-impl.js → src/med_editor/framework/impl/document/doc-header-impl.ts} +34 -17
- package/{lib/framework/impl/document/doc-impl.js → src/med_editor/framework/impl/document/doc-impl.ts} +62 -45
- package/{lib/framework/impl/media-formula/menstrual-history.js → src/med_editor/framework/impl/media-formula/menstrual-history.ts} +58 -36
- package/{lib/framework/impl/paragraph/p-impl.js → src/med_editor/framework/impl/paragraph/p-impl.ts} +64 -30
- package/{lib/framework/impl/picture/image-impl.js → src/med_editor/framework/impl/picture/image-impl.ts} +37 -25
- package/{lib/framework/impl/radio/radio-impl.js → src/med_editor/framework/impl/radio/radio-impl.ts} +28 -21
- package/{lib/framework/impl/symbol/br-symbol-impl.js → src/med_editor/framework/impl/symbol/br-symbol-impl.ts} +21 -15
- package/{lib/framework/impl/symbol/p-symbol-impl.js → src/med_editor/framework/impl/symbol/p-symbol-impl.ts} +15 -12
- package/{lib/framework/impl/table/table-cell-impl.js → src/med_editor/framework/impl/table/table-cell-impl.ts} +41 -30
- package/{lib/framework/impl/table/table-impl.js → src/med_editor/framework/impl/table/table-impl.ts} +122 -84
- package/{lib/framework/impl/table/table-row-impl.js → src/med_editor/framework/impl/table/table-row-impl.ts} +26 -18
- package/{lib/framework/impl/table/table-split-cell-patch.js → src/med_editor/framework/impl/table/table-split-cell-patch.ts} +31 -22
- package/{lib/framework/impl/table/table-split-cell.js → src/med_editor/framework/impl/table/table-split-cell.ts} +105 -94
- package/{lib/framework/impl/table/table-util.js → src/med_editor/framework/impl/table/table-util.ts} +197 -159
- package/{lib/framework/impl/text/text-impl.js → src/med_editor/framework/impl/text/text-impl.ts} +49 -35
- package/{lib/framework/impl/text/track-run-impl.js → src/med_editor/framework/impl/text/track-run-impl.ts} +53 -30
- package/{lib/framework/notify.js → src/med_editor/framework/notify.ts} +50 -36
- package/{lib/framework/range-util.js → src/med_editor/framework/range-util.ts} +80 -71
- package/{lib/framework/render-context.js → src/med_editor/framework/render-context.ts} +111 -64
- package/{lib/framework/render-define.js → src/med_editor/framework/render-define.ts} +90 -61
- package/{lib/framework/selection-overlays.js → src/med_editor/framework/selection-overlays.ts} +25 -16
- package/{lib/texteditor.js → src/med_editor/texteditor.ts} +288 -191
- package/src/med_editor/util/subject.ts +118 -0
- package/{lib/util/table-bind.js → src/med_editor/util/table-bind.ts} +2 -2
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225.json +3573 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225.json +3573 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225bug.json +315 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/211/271/346/263/250.json +122 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/346/226/207/346/241/243/351/252/214/350/257/201.json +3599 -0
- package/src/med_editor//345/205/245/351/231/242/350/256/260/345/275/225/346/265/213/350/257/225/351/225/277/346/226/207/346/234/254.json +24586 -0
- package/src/med_editor//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225.json +2874 -0
- package/src/med_editor//346/211/213/346/234/257/350/256/260/345/275/225.json +341 -0
- package/src/med_editor//346/231/256/351/200/232doc/347/261/273/346/226/207/346/241/243.json +2201 -0
- package/src/med_editor//346/243/200/351/252/214/347/224/263/350/257/267/345/215/225.json +1069 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//345/206/205/351/225/234/344/270/213/346/262/273/347/226/227/350/256/260/345/275/225.json +125 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//345/220/210/345/271/266/347/227/205/347/250/213/345/275/225/346/250/241/346/235/277.json +86 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//346/227/245/345/270/270/347/227/205/347/250/213/350/256/260/345/275/225.json +115 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//346/237/245/346/210/277/350/256/260/345/275/2251.json +108 -0
- package/src/med_editor//347/227/205/347/250/213/345/275/225//351/246/226/346/254/241/344/270/212/347/272/247/345/214/273/345/270/210/346/237/245/346/210/277/350/256/260/345/275/225.json +272 -0
- package/src/med_editor//351/225/277/346/234/237/345/214/273/345/230/261/345/215/225.json +1070 -0
- package/lib/doc-ruler.d.ts +0 -51
- package/lib/doc-ruler.js.map +0 -1
- package/lib/framework/common-util.d.ts +0 -63
- package/lib/framework/common-util.js +0 -178
- package/lib/framework/common-util.js.map +0 -1
- package/lib/framework/document-change.d.ts +0 -265
- package/lib/framework/document-change.js.map +0 -1
- package/lib/framework/document-combine.d.ts +0 -24
- package/lib/framework/document-combine.js.map +0 -1
- package/lib/framework/document-comment.d.ts +0 -46
- package/lib/framework/document-comment.js.map +0 -1
- package/lib/framework/document-context.d.ts +0 -149
- package/lib/framework/document-context.js.map +0 -1
- package/lib/framework/document-eval-func.d.ts +0 -18
- package/lib/framework/document-eval-func.js.map +0 -1
- package/lib/framework/document-event.d.ts +0 -213
- package/lib/framework/document-event.js.map +0 -1
- package/lib/framework/document-history.d.ts +0 -26
- package/lib/framework/document-history.js.map +0 -1
- package/lib/framework/document-images-loader.d.ts +0 -16
- package/lib/framework/document-images-loader.js.map +0 -1
- package/lib/framework/document-input-cursor.d.ts +0 -78
- package/lib/framework/document-input-cursor.js.map +0 -1
- package/lib/framework/document-paint.d.ts +0 -34
- package/lib/framework/document-paint.js.map +0 -1
- package/lib/framework/document-print-offscreen.d.ts +0 -38
- package/lib/framework/document-print-offscreen.js.map +0 -1
- package/lib/framework/document-print.d.ts +0 -60
- package/lib/framework/document-print.js.map +0 -1
- package/lib/framework/document-segmenter.d.ts +0 -2
- package/lib/framework/document-segmenter.js +0 -106
- package/lib/framework/document-segmenter.js.map +0 -1
- package/lib/framework/document-selection.d.ts +0 -89
- package/lib/framework/document-selection.js.map +0 -1
- package/lib/framework/document-template.d.ts +0 -4
- package/lib/framework/document-template.js.map +0 -1
- package/lib/framework/document-textline-mode.d.ts +0 -7
- package/lib/framework/document-textline-mode.js +0 -30
- package/lib/framework/document-textline-mode.js.map +0 -1
- package/lib/framework/element-define.d.ts +0 -319
- package/lib/framework/element-define.js.map +0 -1
- package/lib/framework/element-event-define.d.ts +0 -99
- package/lib/framework/element-event-define.js +0 -108
- package/lib/framework/element-event-define.js.map +0 -1
- package/lib/framework/element-measure.d.ts +0 -97
- package/lib/framework/element-measure.js.map +0 -1
- package/lib/framework/element-paint.d.ts +0 -42
- package/lib/framework/element-paint.js.map +0 -1
- package/lib/framework/element-props.d.ts +0 -301
- package/lib/framework/element-props.js.map +0 -1
- package/lib/framework/element-reader.d.ts +0 -19
- package/lib/framework/element-reader.js.map +0 -1
- package/lib/framework/element-render-cut.d.ts +0 -55
- package/lib/framework/element-render-cut.js.map +0 -1
- package/lib/framework/element-serialize.d.ts +0 -30
- package/lib/framework/element-serialize.js.map +0 -1
- package/lib/framework/element-util.d.ts +0 -369
- package/lib/framework/element-util.js.map +0 -1
- package/lib/framework/impl/checkbox/checkbox-impl.d.ts +0 -24
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-content-impl.d.ts +0 -40
- package/lib/framework/impl/comments/comment-content-impl.js.map +0 -1
- package/lib/framework/impl/comments/comment-element-impl.d.ts +0 -21
- package/lib/framework/impl/comments/comment-element-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-container-impl.d.ts +0 -22
- package/lib/framework/impl/comments/comments-container-impl.js.map +0 -1
- package/lib/framework/impl/comments/comments-util.d.ts +0 -12
- package/lib/framework/impl/comments/comments-util.js.map +0 -1
- package/lib/framework/impl/comments/validate-msg-impl.d.ts +0 -21
- package/lib/framework/impl/comments/validate-msg-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-decorate-impl.d.ts +0 -30
- package/lib/framework/impl/data-element/data-decorate-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-barcode.d.ts +0 -31
- package/lib/framework/impl/data-element/data-element-barcode.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-base-impl.d.ts +0 -68
- package/lib/framework/impl/data-element/data-element-base-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-check-impl.d.ts +0 -35
- package/lib/framework/impl/data-element/data-element-check-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-date-impl.d.ts +0 -23
- package/lib/framework/impl/data-element/data-element-date-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-group-impl.d.ts +0 -23
- package/lib/framework/impl/data-element/data-element-group-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-image-impl.d.ts +0 -30
- package/lib/framework/impl/data-element/data-element-image-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-list-impl.d.ts +0 -22
- package/lib/framework/impl/data-element/data-element-list-impl.js.map +0 -1
- package/lib/framework/impl/data-element/data-element-text-impl.d.ts +0 -23
- package/lib/framework/impl/data-element/data-element-text-impl.js.map +0 -1
- package/lib/framework/impl/decorate/fill-null-space-imple.d.ts +0 -21
- package/lib/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
- package/lib/framework/impl/document/doc-body-impl.d.ts +0 -27
- package/lib/framework/impl/document/doc-body-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-body-part-impl.d.ts +0 -30
- package/lib/framework/impl/document/doc-body-part-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-container-impl.d.ts +0 -16
- package/lib/framework/impl/document/doc-container-impl.js +0 -21
- package/lib/framework/impl/document/doc-container-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-footer-impl.d.ts +0 -26
- package/lib/framework/impl/document/doc-footer-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-header-impl.d.ts +0 -26
- package/lib/framework/impl/document/doc-header-impl.js.map +0 -1
- package/lib/framework/impl/document/doc-impl.d.ts +0 -61
- package/lib/framework/impl/document/doc-impl.js.map +0 -1
- package/lib/framework/impl/media-formula/menstrual-history.d.ts +0 -35
- package/lib/framework/impl/media-formula/menstrual-history.js.map +0 -1
- package/lib/framework/impl/paragraph/p-impl.d.ts +0 -45
- package/lib/framework/impl/paragraph/p-impl.js.map +0 -1
- package/lib/framework/impl/picture/image-impl.d.ts +0 -31
- package/lib/framework/impl/picture/image-impl.js.map +0 -1
- package/lib/framework/impl/radio/radio-impl.d.ts +0 -22
- package/lib/framework/impl/radio/radio-impl.js.map +0 -1
- package/lib/framework/impl/symbol/br-symbol-impl.d.ts +0 -22
- package/lib/framework/impl/symbol/br-symbol-impl.js.map +0 -1
- package/lib/framework/impl/symbol/p-symbol-impl.d.ts +0 -19
- package/lib/framework/impl/symbol/p-symbol-impl.js.map +0 -1
- package/lib/framework/impl/table/table-cell-impl.d.ts +0 -37
- package/lib/framework/impl/table/table-cell-impl.js.map +0 -1
- package/lib/framework/impl/table/table-impl.d.ts +0 -55
- package/lib/framework/impl/table/table-impl.js.map +0 -1
- package/lib/framework/impl/table/table-row-impl.d.ts +0 -26
- package/lib/framework/impl/table/table-row-impl.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell-patch.d.ts +0 -20
- package/lib/framework/impl/table/table-split-cell-patch.js.map +0 -1
- package/lib/framework/impl/table/table-split-cell.d.ts +0 -90
- package/lib/framework/impl/table/table-split-cell.js.map +0 -1
- package/lib/framework/impl/table/table-util.d.ts +0 -150
- package/lib/framework/impl/table/table-util.js.map +0 -1
- package/lib/framework/impl/text/text-impl.d.ts +0 -32
- package/lib/framework/impl/text/text-impl.js.map +0 -1
- package/lib/framework/impl/text/track-run-impl.d.ts +0 -27
- package/lib/framework/impl/text/track-run-impl.js.map +0 -1
- package/lib/framework/notify.d.ts +0 -13
- package/lib/framework/notify.js.map +0 -1
- package/lib/framework/range-util.d.ts +0 -40
- package/lib/framework/range-util.js.map +0 -1
- package/lib/framework/render-context.d.ts +0 -91
- package/lib/framework/render-context.js.map +0 -1
- package/lib/framework/render-define.d.ts +0 -109
- package/lib/framework/render-define.js.map +0 -1
- package/lib/framework/selection-overlays.d.ts +0 -30
- package/lib/framework/selection-overlays.js.map +0 -1
- package/lib/texteditor.d.ts +0 -318
- package/lib/texteditor.js.map +0 -1
- package/lib/util/subject.d.ts +0 -34
- package/lib/util/subject.js +0 -88
- package/lib/util/subject.js.map +0 -1
- package/lib/util/table-bind.d.ts +0 -5
- package/lib/util/table-bind.js.map +0 -1
@@ -1,37 +1,45 @@
|
|
1
|
-
import { ElementFactory, LeafElement, ResizeLeafRenderObject } from "
|
2
|
-
import { PictureProps } from "
|
3
|
-
import { ElementUtil } from "
|
4
|
-
|
1
|
+
import { Element, ElementFactory, ImgLoadStatus, LeafElement, Position, ResizeLeafRenderObject, SerializeProps, ViewOptions } from "../../element-define";
|
2
|
+
import { PictureProps } from "../../element-props";
|
3
|
+
import { ElementUtil } from "../../element-util";
|
4
|
+
import { RenderContenxtType } from "../../render-context";
|
5
|
+
import { LeafRenderObject, RenderObject } from "../../render-define";
|
6
|
+
|
7
|
+
|
8
|
+
interface IResizeElement {
|
9
|
+
resizeable: boolean;
|
10
|
+
}
|
11
|
+
export class PictureElement extends LeafElement<PictureProps> implements IResizeElement {
|
5
12
|
//props: PictureProps;
|
6
|
-
status = 'no';
|
7
|
-
resizeable = true;
|
13
|
+
status: ImgLoadStatus = 'no';
|
14
|
+
resizeable: boolean = true;
|
8
15
|
constructor() {
|
9
16
|
super('img');
|
10
17
|
this.props = new PictureProps();
|
11
18
|
//this.addPropValueChangedSub(this.props);
|
12
|
-
this.cursorType = 'move'
|
19
|
+
this.cursorType = 'move'
|
13
20
|
this.focusable = true;
|
14
21
|
}
|
15
|
-
createRenderObject() {
|
22
|
+
createRenderObject(): LeafRenderObject {
|
16
23
|
const render = new PictureRenderObject(this);
|
17
24
|
render.rect.width = this.props.width + 2;
|
18
25
|
render.rect.height = this.props.height + 2;
|
19
26
|
return render;
|
20
27
|
}
|
21
|
-
serialize(options) {
|
28
|
+
serialize(options: ViewOptions): SerializeProps {
|
22
29
|
return {
|
23
30
|
type: 'img',
|
24
31
|
props: {
|
25
32
|
...this.props.getSerializeProps(options)
|
26
33
|
}
|
27
|
-
}
|
34
|
+
}
|
28
35
|
}
|
29
|
-
clone(data) {
|
36
|
+
clone(data: boolean): Element {
|
30
37
|
const clone = new PictureElement();
|
31
38
|
this.props.clone(clone.props);
|
32
39
|
return clone;
|
33
40
|
}
|
34
|
-
|
41
|
+
|
42
|
+
loadImage(ctx: RenderContenxtType): void {
|
35
43
|
if (this.status === 'no') {
|
36
44
|
this.status = 'loading';
|
37
45
|
//this.imageSource = new Image();
|
@@ -44,22 +52,23 @@ export class PictureElement extends LeafElement {
|
|
44
52
|
// this.isLoad = 'error';
|
45
53
|
// console.error(e);
|
46
54
|
// };
|
47
|
-
const onCallback = (status) => {
|
55
|
+
const onCallback = (status: ImgLoadStatus) => {
|
48
56
|
this.status = status;
|
49
57
|
if (status === 'completed') {
|
50
58
|
this.refreshView();
|
51
59
|
}
|
52
|
-
}
|
60
|
+
}
|
53
61
|
ctx.docCtx.imageLoader.loadImage(this.props.src, onCallback);
|
54
62
|
}
|
55
63
|
}
|
56
|
-
destroy() {
|
64
|
+
destroy(): void {
|
57
65
|
super.destroy();
|
58
66
|
}
|
59
67
|
}
|
68
|
+
|
60
69
|
export class PictureRenderObject extends ResizeLeafRenderObject {
|
61
|
-
render(ctx, position) {
|
62
|
-
const picElement = this.element;
|
70
|
+
render(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
71
|
+
const picElement = this.element as PictureElement;
|
63
72
|
const picProps = picElement.props;
|
64
73
|
if (picElement.status === 'no') {
|
65
74
|
picElement.loadImage(ctx);
|
@@ -76,12 +85,13 @@ export class PictureRenderObject extends ResizeLeafRenderObject {
|
|
76
85
|
ctx.contentContext.drawImage(imageSource, 0, 0, imageSource.naturalWidth, imageSource.naturalHeight, position.x + 2, position.y + 2, picProps.width, picProps.height);
|
77
86
|
}
|
78
87
|
}
|
79
|
-
clone() {
|
88
|
+
clone(): RenderObject {
|
80
89
|
const clone = new PictureRenderObject(this.element);
|
81
90
|
clone.rect = ElementUtil.cloneRect(this.rect);
|
82
91
|
return clone;
|
83
92
|
}
|
84
|
-
|
93
|
+
|
94
|
+
pagePaintCompleted(ctx: RenderContenxtType, pos: Position): void {
|
85
95
|
if (this.element.isFocused) {
|
86
96
|
const { width, height } = this.rect;
|
87
97
|
ctx.contentContext.strokeRect(pos.x, pos.y, width, height, '#1890ff', 0.5);
|
@@ -95,7 +105,8 @@ export class PictureRenderObject extends ResizeLeafRenderObject {
|
|
95
105
|
this.drawResizeCircle(ctx, pos.x + width, pos.y + (Math.floor(height / 2)));
|
96
106
|
}
|
97
107
|
}
|
98
|
-
|
108
|
+
|
109
|
+
private drawResizeCircle(ctx: RenderContenxtType, x: number, y: number): void {
|
99
110
|
const ctxNative = ctx.contentContext.ctx;
|
100
111
|
ctxNative.fillStyle = '#69c0ff';
|
101
112
|
ctxNative.beginPath();
|
@@ -104,12 +115,14 @@ export class PictureRenderObject extends ResizeLeafRenderObject {
|
|
104
115
|
ctxNative.fill();
|
105
116
|
}
|
106
117
|
}
|
107
|
-
|
108
|
-
|
118
|
+
|
119
|
+
|
120
|
+
export class PictureFactory extends ElementFactory<PictureProps> {
|
121
|
+
match(type: string): boolean {
|
109
122
|
return type === 'img';
|
110
123
|
}
|
111
|
-
createElement(data, renderCtx) {
|
112
|
-
const props = data.props;
|
124
|
+
createElement(data: any, renderCtx: RenderContenxtType): Element {
|
125
|
+
const props = data.props as PictureProps;
|
113
126
|
const pic = new PictureElement();
|
114
127
|
const picProps = pic.props;
|
115
128
|
picProps.width = props.width;
|
@@ -121,4 +134,3 @@ export class PictureFactory extends ElementFactory {
|
|
121
134
|
return pic;
|
122
135
|
}
|
123
136
|
}
|
124
|
-
//# sourceMappingURL=image-impl.js.map
|
package/{lib/framework/impl/radio/radio-impl.js → src/med_editor/framework/impl/radio/radio-impl.ts}
RENAMED
@@ -1,26 +1,29 @@
|
|
1
|
-
import { ElementFactory, LeafElement } from "
|
2
|
-
import { RadioBoxProps } from "
|
3
|
-
import { ElementUtil } from "
|
4
|
-
import {
|
5
|
-
|
1
|
+
import { ElementFactory, LeafElement, SerializeProps } from "../../element-define";
|
2
|
+
import { RadioBoxProps } from "../../element-props";
|
3
|
+
import { ElementUtil } from "../../element-util";
|
4
|
+
import { RenderContenxtType } from "../../render-context";
|
5
|
+
import { LeafRenderObject, RenderObject } from "../../render-define";
|
6
|
+
|
7
|
+
export class RadioBoxElement extends LeafElement<RadioBoxProps> {
|
6
8
|
//props: RadioBoxProps;
|
7
9
|
constructor() {
|
8
10
|
super('rd');
|
9
11
|
this.props = new RadioBoxProps();
|
10
12
|
//this.addPropValueChangedSub(this.props);
|
11
|
-
this.cursorType = 'default'
|
12
|
-
this.addEvent('ElementClick', (evt) => { this.changeState()
|
13
|
+
this.cursorType = 'default'
|
14
|
+
this.addEvent('ElementClick', (evt) => { this.changeState() });
|
13
15
|
}
|
14
|
-
createRenderObject() {
|
16
|
+
createRenderObject(): RadioBoxRenderObject {
|
15
17
|
const render = new RadioBoxRenderObject(this);
|
16
18
|
render.rect.width = this.props.size + 4;
|
17
19
|
render.rect.height = this.props.size;
|
18
20
|
return render;
|
19
21
|
}
|
20
|
-
|
22
|
+
|
23
|
+
changeState(): void {
|
21
24
|
const parent = this.parent;
|
22
25
|
if (!parent) {
|
23
|
-
throw new Error('parent is null')
|
26
|
+
throw new Error('parent is null')
|
24
27
|
}
|
25
28
|
for (let i = 0; i < parent.length; i++) {
|
26
29
|
const child = parent.getChild(i);
|
@@ -30,27 +33,28 @@ export class RadioBoxElement extends LeafElement {
|
|
30
33
|
}
|
31
34
|
this.props.isChecked = true;
|
32
35
|
}
|
33
|
-
serialize() {
|
36
|
+
serialize(): SerializeProps {
|
34
37
|
return {
|
35
38
|
type: 'rd',
|
36
39
|
props: {
|
37
40
|
...this.props
|
38
41
|
}
|
39
|
-
}
|
42
|
+
}
|
40
43
|
}
|
41
|
-
clone() {
|
44
|
+
clone(): RadioBoxElement {
|
42
45
|
const clone = new RadioBoxElement();
|
43
46
|
this.props.clone(clone.props);
|
44
47
|
return clone;
|
45
48
|
}
|
46
49
|
}
|
47
|
-
|
48
|
-
|
50
|
+
|
51
|
+
export class RadioBoxFactory extends ElementFactory<RadioBoxProps> {
|
52
|
+
match(type: string): boolean {
|
49
53
|
return type === 'rd';
|
50
54
|
}
|
51
|
-
createElement(data, renderCtx) {
|
55
|
+
createElement(data: any, renderCtx: RenderContenxtType): RadioBoxElement {
|
52
56
|
const rdElement = new RadioBoxElement();
|
53
|
-
const props = data.props;
|
57
|
+
const props = data.props as RadioBoxProps;
|
54
58
|
const ckbProps = rdElement.props;
|
55
59
|
ckbProps.size = props.size ?? 14;
|
56
60
|
ckbProps.isChecked = props.isChecked;
|
@@ -58,15 +62,18 @@ export class RadioBoxFactory extends ElementFactory {
|
|
58
62
|
return rdElement;
|
59
63
|
}
|
60
64
|
}
|
65
|
+
|
61
66
|
export class RadioBoxRenderObject extends LeafRenderObject {
|
62
|
-
|
63
|
-
|
67
|
+
|
68
|
+
render(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
69
|
+
const element = this.element as RadioBoxElement;
|
64
70
|
ctx.contentContext.drawRadioBox(position.x + 2, position.y, element.props.size, element.props.size, element.props.isChecked);
|
65
71
|
}
|
66
|
-
|
72
|
+
|
73
|
+
clone(cloneData = true): RenderObject {
|
67
74
|
const clone = new RadioBoxRenderObject(this.element);
|
68
75
|
clone.rect = ElementUtil.cloneRect(this.rect);
|
69
76
|
return clone;
|
70
77
|
}
|
78
|
+
|
71
79
|
}
|
72
|
-
//# sourceMappingURL=radio-impl.js.map
|
@@ -1,9 +1,11 @@
|
|
1
|
-
import { ElementFactory, LeafElement } from "
|
2
|
-
import { ElementUtil } from "
|
3
|
-
import {
|
1
|
+
import { Element, ElementFactory, LeafElement, SerializeProps } from "../../element-define";
|
2
|
+
import { ElementUtil } from "../../element-util";
|
3
|
+
import { RenderContenxtType } from "../../render-context";
|
4
|
+
import { LeafRenderObject, RenderObject } from "../../render-define";
|
4
5
|
import { TextProps } from "../../element-props";
|
6
|
+
|
5
7
|
export class BreakElement extends LeafElement {
|
6
|
-
textProps;
|
8
|
+
textProps: TextProps;
|
7
9
|
constructor() {
|
8
10
|
super('br');
|
9
11
|
this.textProps = new TextProps();
|
@@ -11,44 +13,48 @@ export class BreakElement extends LeafElement {
|
|
11
13
|
this.textProps.fontName = '宋体';
|
12
14
|
this.textProps.color = '#595959';
|
13
15
|
}
|
14
|
-
createRenderObject() {
|
16
|
+
createRenderObject(): LeafRenderObject {
|
15
17
|
const symbol = new BreakRenderObject(this);
|
16
18
|
symbol.rect.height = 14;
|
17
19
|
symbol.rect.width = 7;
|
18
20
|
return symbol;
|
19
21
|
}
|
20
|
-
serialize() {
|
22
|
+
serialize(): SerializeProps {
|
21
23
|
return {
|
22
24
|
type: 'br',
|
23
25
|
props: {}
|
24
|
-
}
|
26
|
+
}
|
25
27
|
}
|
26
|
-
clone() {
|
28
|
+
clone(): Element {
|
27
29
|
const clone = new BreakElement();
|
28
30
|
//clone.renderCtx = this.renderCtx;
|
29
31
|
return clone;
|
30
32
|
}
|
33
|
+
|
31
34
|
}
|
32
|
-
|
33
|
-
|
35
|
+
|
36
|
+
export class BreakRenderObject extends LeafRenderObject<BreakElement> {
|
37
|
+
render(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
34
38
|
if (ctx.drawMode === 'print') {
|
35
39
|
return;
|
36
40
|
}
|
37
41
|
ctx.contentContext.drawText('↓', this.element.textProps, position.x, position.y, 20, this.rect.height);
|
38
42
|
}
|
39
|
-
clone() {
|
43
|
+
clone(): RenderObject {
|
40
44
|
const render = new BreakRenderObject(this.element);
|
41
45
|
render.rect = ElementUtil.cloneRect(this.rect);
|
42
46
|
return render;
|
43
47
|
}
|
44
48
|
}
|
45
|
-
|
46
|
-
|
49
|
+
|
50
|
+
export class BreakFactory extends ElementFactory<null> {
|
51
|
+
match(type: string): boolean {
|
47
52
|
return type === 'br';
|
48
53
|
}
|
49
|
-
createElement(data, renderCtx) {
|
54
|
+
createElement(data: any, renderCtx: RenderContenxtType): Element {
|
50
55
|
const ele = new BreakElement();
|
51
56
|
return ele;
|
52
57
|
}
|
58
|
+
|
53
59
|
}
|
54
|
-
|
60
|
+
|
@@ -1,9 +1,10 @@
|
|
1
|
-
import { LeafElement } from "
|
2
|
-
import { ElementUtil } from "
|
3
|
-
import {
|
1
|
+
import { Element, LeafElement, SerializeProps } from "../../element-define";
|
2
|
+
import { ElementUtil } from "../../element-util";
|
3
|
+
import { RenderContenxtType } from "../../render-context";
|
4
|
+
import { LeafRenderObject, RenderObject } from "../../render-define";
|
4
5
|
import { TextProps } from "../../element-props";
|
5
6
|
export class PSymbolElement extends LeafElement {
|
6
|
-
textProps;
|
7
|
+
textProps: TextProps;
|
7
8
|
defaultHeight = 14;
|
8
9
|
constructor() {
|
9
10
|
super('psym');
|
@@ -17,38 +18,40 @@ export class PSymbolElement extends LeafElement {
|
|
17
18
|
evt.selectionState.resetRange(this, 0);
|
18
19
|
}
|
19
20
|
}
|
20
|
-
})
|
21
|
+
})
|
21
22
|
this.textProps = new TextProps();
|
22
23
|
this.textProps.fontSize = this.defaultHeight;
|
23
24
|
this.textProps.fontName = '宋体';
|
24
25
|
this.textProps.color = '#8c8c8c';
|
25
26
|
}
|
26
|
-
createRenderObject() {
|
27
|
+
createRenderObject(): LeafRenderObject {
|
27
28
|
const symbol = new PSymbolRenderObject(this);
|
28
29
|
symbol.rect.height = this.defaultHeight;
|
29
30
|
symbol.rect.width = 7;
|
30
31
|
return symbol;
|
31
32
|
}
|
32
|
-
serialize() {
|
33
|
+
serialize(): SerializeProps | null {
|
33
34
|
return null;
|
34
35
|
}
|
35
|
-
clone() {
|
36
|
+
clone(): Element {
|
36
37
|
const clone = new PSymbolElement();
|
37
38
|
return clone;
|
38
39
|
}
|
39
40
|
}
|
40
|
-
|
41
|
-
|
41
|
+
|
42
|
+
export class PSymbolRenderObject extends LeafRenderObject<PSymbolElement> {
|
43
|
+
render(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
42
44
|
if (ctx.drawMode === 'print') {
|
43
45
|
return;
|
44
46
|
}
|
45
47
|
ctx.contentContext.drawText('⤶', this.element.textProps, position.x, position.y, 20, this.rect.height);
|
46
48
|
}
|
47
49
|
//绘制段落符号
|
48
|
-
clone() {
|
50
|
+
clone(): RenderObject {
|
49
51
|
const render = new PSymbolRenderObject(this.element);
|
50
52
|
render.rect = ElementUtil.cloneRect(this.rect);
|
51
53
|
return render;
|
52
54
|
}
|
55
|
+
|
53
56
|
}
|
54
|
-
|
57
|
+
|
@@ -1,26 +1,32 @@
|
|
1
|
-
import { BlockContainerElement, ElementFactory, PaddingProps } from "
|
2
|
-
import { TableCellProps } from "
|
3
|
-
import { ElementUtil } from "
|
4
|
-
import {
|
5
|
-
|
1
|
+
import { BlockContainerElement, Element, ElementFactory, PaddingProps, readElementProps, SerializeProps, ViewOptions } from "../../element-define";
|
2
|
+
import { TableCellProps } from "../../element-props";
|
3
|
+
import { ElementUtil } from "../../element-util";
|
4
|
+
import { RenderContenxtType } from "../../render-context";
|
5
|
+
import { InlineMuiltBlockLineRenderObject, RenderObject } from "../../render-define";
|
6
|
+
import { TableElement } from "./table-impl";
|
7
|
+
|
8
|
+
export class TableCellElement extends BlockContainerElement<TableCellProps> {
|
6
9
|
//props: TableCellProps;
|
7
10
|
constructor() {
|
8
11
|
super('tbc');
|
9
12
|
this.props = new TableCellProps();
|
10
13
|
//this.addPropValueChangedSub(this.props);
|
11
14
|
}
|
12
|
-
|
15
|
+
|
16
|
+
beginMeasure(): void {
|
13
17
|
super.beginMeasure();
|
14
18
|
this.disableClick = !this.isNotBeMergedCell();
|
15
19
|
}
|
20
|
+
|
16
21
|
/**
|
17
22
|
* 不被合并单元格的单元格
|
18
|
-
* @returns
|
23
|
+
* @returns
|
19
24
|
*/
|
20
|
-
isNotBeMergedCell() {
|
25
|
+
isNotBeMergedCell(): boolean {
|
21
26
|
return this.props.hMerge !== 'continue' && this.props.vMerge !== 'continue';
|
22
27
|
}
|
23
|
-
|
28
|
+
|
29
|
+
createRenderObject(): RenderObject | null {
|
24
30
|
if (!this.isNotBeMergedCell()) {
|
25
31
|
return null;
|
26
32
|
}
|
@@ -32,7 +38,7 @@ export class TableCellElement extends BlockContainerElement {
|
|
32
38
|
cellRender.rect.x = cellOffset;
|
33
39
|
return cellRender;
|
34
40
|
}
|
35
|
-
serialize(options) {
|
41
|
+
serialize(options: ViewOptions): SerializeProps {
|
36
42
|
return {
|
37
43
|
type: 'tbc',
|
38
44
|
props: {
|
@@ -40,7 +46,7 @@ export class TableCellElement extends BlockContainerElement {
|
|
40
46
|
}
|
41
47
|
};
|
42
48
|
}
|
43
|
-
clone(data) {
|
49
|
+
clone(data: boolean): Element {
|
44
50
|
const clone = new TableCellElement();
|
45
51
|
this.props.clone(clone.props);
|
46
52
|
if (data) {
|
@@ -50,72 +56,76 @@ export class TableCellElement extends BlockContainerElement {
|
|
50
56
|
}
|
51
57
|
return clone;
|
52
58
|
}
|
53
|
-
getCellWidth() {
|
59
|
+
getCellWidth(): { cellWidth: number, cellOffset: number } {
|
54
60
|
const row = this.parent;
|
55
61
|
if (!row) {
|
56
62
|
throw new Error('row is null');
|
57
63
|
}
|
58
|
-
const table = row.parent;
|
64
|
+
const table = row.parent as TableElement;
|
59
65
|
const cellIndex = row.getChildIndex(this);
|
60
66
|
let cellWidth = table.getCellWidth(cellIndex);
|
61
67
|
const cellOffset = table.getCellOffsetX(cellIndex);
|
62
68
|
if (this.props.hMerge === 'restart') {
|
63
69
|
for (let i = cellIndex + 1; i < table.getColsCount(); i++) {
|
64
|
-
const nextCell = row.getChild(i);
|
70
|
+
const nextCell = row.getChild(i) as TableCellElement;
|
65
71
|
if (nextCell.props.hMerge === 'continue') {
|
66
72
|
cellWidth += table.getCellWidth(i);
|
67
|
-
}
|
68
|
-
else {
|
73
|
+
} else {
|
69
74
|
break;
|
70
75
|
}
|
71
76
|
}
|
72
77
|
}
|
73
78
|
return { cellWidth, cellOffset };
|
74
79
|
}
|
75
|
-
|
80
|
+
|
81
|
+
static createCell(): TableCellElement {
|
76
82
|
const tc = new TableCellElement();
|
77
83
|
return tc;
|
78
84
|
}
|
85
|
+
|
79
86
|
}
|
87
|
+
|
80
88
|
export class TableCellRenderObject extends InlineMuiltBlockLineRenderObject {
|
81
|
-
prevGlobalAlpha = 1;
|
82
|
-
beginRender(ctx, position) {
|
89
|
+
private prevGlobalAlpha = 1;
|
90
|
+
beginRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
83
91
|
ctx.contentContext.clip(position.x, position.y, this.rect.width, this.rect.height);
|
84
|
-
const { hMerge, vMerge, backgroundColor, diagonal } = this.element.props;
|
92
|
+
const { hMerge, vMerge, backgroundColor, diagonal } = (<TableCellElement>this.element).props;
|
85
93
|
if (hMerge === 'continue' || vMerge === 'continue') {
|
86
94
|
this.prevGlobalAlpha = ctx.contentContext.getGlobalAlpha();
|
87
95
|
ctx.contentContext.setGlobalAlpha(0);
|
88
96
|
ctx.overlaysContext.setGlobalAlpha(0);
|
89
97
|
}
|
90
98
|
if (backgroundColor && this.rect.width && this.rect.height) {
|
91
|
-
ctx.contentContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, backgroundColor)
|
99
|
+
ctx.contentContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, backgroundColor)
|
92
100
|
}
|
93
101
|
if (diagonal && this.rect.width && this.rect.height) {
|
94
102
|
let diagonalStartX = diagonal === 'main' ? position.x : position.x + this.rect.width;
|
95
103
|
let diagonalStartY = position.y;
|
96
104
|
let diagonalEndX = diagonal === 'main' ? position.x + this.rect.width : position.x;
|
97
105
|
let diagonalEndY = position.y + this.rect.height;
|
98
|
-
ctx.contentContext.strokeLines([{ x: diagonalStartX, y: diagonalStartY }, { x: diagonalEndX, y: diagonalEndY }])
|
106
|
+
ctx.contentContext.strokeLines([{ x: diagonalStartX, y: diagonalStartY }, { x: diagonalEndX, y: diagonalEndY }])
|
99
107
|
}
|
100
108
|
}
|
101
|
-
|
109
|
+
|
110
|
+
endRender(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
102
111
|
ctx.contentContext.ctx.restore();
|
103
112
|
if (!this.element.parent) {
|
104
113
|
throw new Error('parent is null');
|
105
114
|
}
|
106
|
-
const tb = this.element.parent.parent;
|
115
|
+
const tb = this.element.parent.parent as TableElement;
|
107
116
|
const tbProps = tb.props;
|
108
117
|
if (tbProps.border === 'all') {
|
109
118
|
//ctx.contentContext.strokeRect(position.x, position.y, this.rect.width, this.rect.height, '#000', 1);
|
110
119
|
//ctx.contentContext.roundRect(position.x, position.y, this.rect.width, this.rect.height, 5, false, true);
|
111
120
|
}
|
112
|
-
const { hMerge, vMerge } = this.element.props;
|
121
|
+
const { hMerge, vMerge } = (<TableCellElement>this.element).props;
|
113
122
|
if (hMerge === 'continue' || vMerge === 'continue') {
|
114
123
|
ctx.contentContext.setGlobalAlpha(1);
|
115
124
|
ctx.overlaysContext.setGlobalAlpha(1);
|
116
125
|
}
|
117
126
|
}
|
118
|
-
|
127
|
+
|
128
|
+
clone(): RenderObject {
|
119
129
|
const cloneRender = new TableCellRenderObject(this.element);
|
120
130
|
cloneRender.rect = ElementUtil.cloneRect(this.rect);
|
121
131
|
cloneRender.padding = this.padding?.clone();
|
@@ -126,11 +136,12 @@ export class TableCellRenderObject extends InlineMuiltBlockLineRenderObject {
|
|
126
136
|
return cloneRender;
|
127
137
|
}
|
128
138
|
}
|
129
|
-
|
130
|
-
|
139
|
+
|
140
|
+
export class TableCellFactory extends ElementFactory<TableCellProps> {
|
141
|
+
match(type: string): boolean {
|
131
142
|
return type === 'tbc';
|
132
143
|
}
|
133
|
-
createElement(data
|
144
|
+
createElement(data: readElementProps<TableCellProps>, renderCtx: RenderContenxtType): Element {
|
134
145
|
const tc = new TableCellElement();
|
135
146
|
const props = data.props;
|
136
147
|
tc.props.vMerge = props?.vMerge ?? null;
|
@@ -141,5 +152,5 @@ export class TableCellFactory extends ElementFactory {
|
|
141
152
|
//tc.renderCtx = renderCtx;
|
142
153
|
return tc;
|
143
154
|
}
|
155
|
+
|
144
156
|
}
|
145
|
-
//# sourceMappingURL=table-cell-impl.js.map
|