@hailin-zheng/editor-core 1.0.8 → 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} +100 -73
- package/src/med_editor/framework/common-util.ts +200 -0
- package/{lib/framework/document-change.js → src/med_editor/framework/document-change.ts} +306 -257
- 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} +115 -84
- 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} +43 -37
- 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} +38 -30
- 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} +25 -18
- 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} +21 -18
- package/{lib/framework/impl/comments/comments-container-impl.js → src/med_editor/framework/impl/comments/comments-container-impl.ts} +21 -15
- 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} +26 -15
- package/{lib/framework/impl/data-element/data-decorate-impl.js → src/med_editor/framework/impl/data-element/data-decorate-impl.ts} +25 -21
- package/{lib/framework/impl/data-element/data-element-barcode.js → src/med_editor/framework/impl/data-element/data-element-barcode.ts} +39 -27
- 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} +46 -33
- package/{lib/framework/impl/data-element/data-element-date-impl.js → src/med_editor/framework/impl/data-element/data-element-date-impl.ts} +39 -22
- package/{lib/framework/impl/data-element/data-element-group-impl.js → src/med_editor/framework/impl/data-element/data-element-group-impl.ts} +49 -29
- package/{lib/framework/impl/data-element/data-element-image-impl.js → src/med_editor/framework/impl/data-element/data-element-image-impl.ts} +36 -26
- package/{lib/framework/impl/data-element/data-element-list-impl.js → src/med_editor/framework/impl/data-element/data-element-list-impl.ts} +41 -30
- package/{lib/framework/impl/data-element/data-element-text-impl.js → src/med_editor/framework/impl/data-element/data-element-text-impl.ts} +34 -20
- 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} +31 -15
- package/{lib/framework/impl/document/doc-body-part-impl.js → src/med_editor/framework/impl/document/doc-body-part-impl.ts} +26 -16
- 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} +29 -18
- package/{lib/framework/impl/document/doc-header-impl.js → src/med_editor/framework/impl/document/doc-header-impl.ts} +33 -16
- package/{lib/framework/impl/document/doc-impl.js → src/med_editor/framework/impl/document/doc-impl.ts} +59 -42
- package/{lib/framework/impl/media-formula/menstrual-history.js → src/med_editor/framework/impl/media-formula/menstrual-history.ts} +57 -35
- package/{lib/framework/impl/paragraph/p-impl.js → src/med_editor/framework/impl/paragraph/p-impl.ts} +62 -28
- package/{lib/framework/impl/picture/image-impl.js → src/med_editor/framework/impl/picture/image-impl.ts} +35 -23
- package/{lib/framework/impl/radio/radio-impl.js → src/med_editor/framework/impl/radio/radio-impl.ts} +26 -19
- package/{lib/framework/impl/symbol/br-symbol-impl.js → src/med_editor/framework/impl/symbol/br-symbol-impl.ts} +20 -14
- package/{lib/framework/impl/symbol/p-symbol-impl.js → src/med_editor/framework/impl/symbol/p-symbol-impl.ts} +14 -11
- package/{lib/framework/impl/table/table-cell-impl.js → src/med_editor/framework/impl/table/table-cell-impl.ts} +39 -28
- package/{lib/framework/impl/table/table-impl.js → src/med_editor/framework/impl/table/table-impl.ts} +120 -82
- package/{lib/framework/impl/table/table-row-impl.js → src/med_editor/framework/impl/table/table-row-impl.ts} +24 -16
- 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} +195 -157
- package/{lib/framework/impl/text/text-impl.js → src/med_editor/framework/impl/text/text-impl.ts} +46 -32
- package/{lib/framework/impl/text/track-run-impl.js → src/med_editor/framework/impl/text/track-run-impl.ts} +51 -28
- 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} +286 -189
- 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 -98
- 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,27 +1,33 @@
|
|
1
|
-
import { ElementFactory } from "../../element-define";
|
1
|
+
import { Element, ElementFactory, SerializeProps, ViewOptions } from "../../element-define";
|
2
2
|
import { DataEleDateProps } from "../../element-props";
|
3
3
|
import { ElementUtil } from "../../element-util";
|
4
|
+
import { RenderContenxtType } from "../../render-context";
|
5
|
+
import { RenderObject } from "../../render-define";
|
4
6
|
import { ElementSerialize } from "../../element-serialize";
|
5
7
|
import { TextGroupElement } from "../text/text-impl";
|
6
8
|
import { DataElementInlineGroup, DataElementRenderObject } from "./data-element-base-impl";
|
7
|
-
import moment from 'moment'
|
8
|
-
|
9
|
+
import moment from 'moment'
|
10
|
+
|
11
|
+
export class DataElementDate extends DataElementInlineGroup<DataEleDateProps> {
|
9
12
|
constructor() {
|
10
13
|
super('data-ele-date');
|
11
14
|
this.props = new DataEleDateProps();
|
12
15
|
}
|
13
|
-
|
16
|
+
|
17
|
+
createRenderObject(): RenderObject {
|
14
18
|
return new DataElementDateRenderObject(this);
|
15
19
|
}
|
16
|
-
|
20
|
+
|
21
|
+
serialize(viewOptions: ViewOptions): SerializeProps & any {
|
17
22
|
return {
|
18
23
|
type: this.type,
|
19
24
|
props: {
|
20
25
|
...this.props.getSerializeProps(viewOptions)
|
21
26
|
}
|
22
|
-
}
|
27
|
+
}
|
23
28
|
}
|
24
|
-
|
29
|
+
|
30
|
+
clone(data: boolean): DataElementDate {
|
25
31
|
const clone = new DataElementDate();
|
26
32
|
this.props.clone(clone.props);
|
27
33
|
if (data) {
|
@@ -35,7 +41,9 @@ export class DataElementDate extends DataElementInlineGroup {
|
|
35
41
|
}
|
36
42
|
return clone;
|
37
43
|
}
|
38
|
-
|
44
|
+
|
45
|
+
|
46
|
+
setValue(val: Date | string): void {
|
39
47
|
const format = this.props.format ?? 'YYYY-MM-DD';
|
40
48
|
const date = moment(val, format);
|
41
49
|
if (!date.isValid()) {
|
@@ -53,10 +61,12 @@ export class DataElementDate extends DataElementInlineGroup {
|
|
53
61
|
this.addChild(valueText, this.length - 1);
|
54
62
|
this.beginMeasure();
|
55
63
|
}
|
56
|
-
|
57
|
-
|
64
|
+
|
65
|
+
getValue(): string {
|
66
|
+
return ElementSerialize.serializeString(this)
|
58
67
|
}
|
59
|
-
|
68
|
+
|
69
|
+
validate(): string {
|
60
70
|
let res = super.validate();
|
61
71
|
if (res) {
|
62
72
|
return res;
|
@@ -68,12 +78,15 @@ export class DataElementDate extends DataElementInlineGroup {
|
|
68
78
|
}
|
69
79
|
return '';
|
70
80
|
}
|
81
|
+
|
71
82
|
}
|
72
|
-
|
73
|
-
|
83
|
+
|
84
|
+
|
85
|
+
export class DataElementDateRenderObject extends DataElementRenderObject<DataElementDate> {
|
86
|
+
constructor(element: DataElementDate) {
|
74
87
|
super(element);
|
75
88
|
}
|
76
|
-
clone() {
|
89
|
+
clone(): RenderObject {
|
77
90
|
const cloneRender = new DataElementDateRenderObject(this.element);
|
78
91
|
cloneRender.rect = ElementUtil.cloneRect(this.rect);
|
79
92
|
for (let i = 0; i < this.length; i++) {
|
@@ -81,19 +94,22 @@ export class DataElementDateRenderObject extends DataElementRenderObject {
|
|
81
94
|
}
|
82
95
|
return cloneRender;
|
83
96
|
}
|
97
|
+
|
84
98
|
}
|
85
|
-
|
86
|
-
|
87
|
-
|
99
|
+
|
100
|
+
export class DataElementDateFactory extends ElementFactory<DataEleDateProps> {
|
101
|
+
match(type: string): boolean {
|
102
|
+
return type === "data-ele-date"
|
88
103
|
}
|
89
|
-
createElement(data, renderCtx) {
|
90
|
-
const props = data.props;
|
104
|
+
createElement(data: any, renderCtx: RenderContenxtType): Element {
|
105
|
+
const props = data.props as DataEleDateProps;
|
91
106
|
const ele = new DataElementDate();
|
92
107
|
this.createDataEleProps(ele.props, props);
|
93
108
|
return ele;
|
94
109
|
}
|
95
|
-
|
96
|
-
|
110
|
+
|
111
|
+
createDataEleProps(dest: DataEleDateProps, props: DataEleDateProps): DataEleDateProps {
|
112
|
+
const dataEleProps: DataEleDateProps = dest;
|
97
113
|
ElementUtil.readEleBaseProps(dataEleProps, props);
|
98
114
|
//dataEleProps.id = props.id ?? nanoid(5);
|
99
115
|
//dataEleProps.name = props.name;
|
@@ -107,5 +123,6 @@ export class DataElementDateFactory extends ElementFactory {
|
|
107
123
|
dataEleProps.valueTextProps = ElementUtil.readTextProps(null, props.valueTextProps, this.options);
|
108
124
|
return dataEleProps;
|
109
125
|
}
|
126
|
+
|
127
|
+
|
110
128
|
}
|
111
|
-
//# sourceMappingURL=data-element-date-impl.js.map
|
@@ -1,22 +1,25 @@
|
|
1
1
|
import { InlineGroupInputElement } from "./data-element-base-impl";
|
2
|
-
import { InlineGroupRenderObject } from "../../render-define";
|
3
|
-
import {
|
2
|
+
import { InlineGroupRenderObject, RenderObject } from "../../render-define";
|
3
|
+
import { RenderContenxtType } from "../../render-context";
|
4
|
+
import { SerializeProps, ViewOptions, Element, ElementFactory, Position } from "../../element-define";
|
4
5
|
import { DataElementGroupProps } from "../../element-props";
|
5
6
|
import { ElementUtil } from "../../element-util";
|
7
|
+
import { ContextMenuElementEvent } from "../../element-event-define";
|
6
8
|
import { ElementSerialize } from "../../element-serialize";
|
7
9
|
import { ParagraphRenderObject } from "../paragraph/p-impl";
|
8
10
|
import { CommonUtil } from "../../common-util";
|
9
|
-
|
11
|
+
|
12
|
+
export class DataElementGroupElement extends InlineGroupInputElement<DataElementGroupProps>{
|
10
13
|
constructor() {
|
11
14
|
super('data-group');
|
12
15
|
this.props = new DataElementGroupProps();
|
13
|
-
this.addEvent('ElementContextMenu', (evt) => {
|
16
|
+
this.addEvent<ContextMenuElementEvent>('ElementContextMenu', (evt) => {
|
14
17
|
if (evt.ctx.viewOptions.devMode) {
|
15
18
|
evt.menus.push({
|
16
19
|
icon: '获取数据组值', caption: '获取数据组值', eventObj: {
|
17
20
|
onClick: () => {
|
18
|
-
const str = ElementSerialize.serializeString(this, { all: false })
|
19
|
-
alert(str)
|
21
|
+
const str = ElementSerialize.serializeString(this, { all: false })
|
22
|
+
alert(str)
|
20
23
|
}
|
21
24
|
}
|
22
25
|
});
|
@@ -31,7 +34,7 @@ export class DataElementGroupElement extends InlineGroupInputElement {
|
|
31
34
|
this.refreshView();
|
32
35
|
});
|
33
36
|
}
|
34
|
-
clone(data) {
|
37
|
+
clone(data: boolean): Element {
|
35
38
|
const clone = new DataElementGroupElement();
|
36
39
|
this.props.clone(clone.props);
|
37
40
|
if (data) {
|
@@ -45,36 +48,45 @@ export class DataElementGroupElement extends InlineGroupInputElement {
|
|
45
48
|
}
|
46
49
|
return clone;
|
47
50
|
}
|
48
|
-
|
51
|
+
|
52
|
+
createRenderObject(options: ViewOptions, renderCtx: RenderContenxtType): RenderObject | null {
|
49
53
|
return new DataElementGroupRenderObject(this);
|
50
54
|
}
|
51
|
-
|
55
|
+
|
56
|
+
serialize(viewOptions: ViewOptions): SerializeProps | null {
|
52
57
|
return {
|
53
58
|
type: this.type,
|
54
59
|
props: {
|
55
60
|
...this.props.getSerializeProps()
|
56
61
|
}
|
57
|
-
}
|
62
|
+
}
|
58
63
|
}
|
64
|
+
|
59
65
|
}
|
60
|
-
|
61
|
-
|
62
|
-
|
66
|
+
|
67
|
+
|
68
|
+
export class DataElementGroupRenderObject extends InlineGroupRenderObject<DataElementGroupElement> {
|
69
|
+
paintPos!: Position;
|
70
|
+
beginRender(ctx: RenderContenxtType, position: Position): void {
|
63
71
|
//ctx.contentContext.fillRect(position.x, position.y, this.rect.width, this.rect.height, 'yellow');
|
64
72
|
this.paintPos = position;
|
73
|
+
|
65
74
|
}
|
66
|
-
|
67
|
-
|
68
|
-
const
|
75
|
+
|
76
|
+
private getCurrentParaGroupRenders(): DataElementGroupRenderObject[] {
|
77
|
+
const renders: DataElementGroupRenderObject[] = [];
|
78
|
+
const currParaRender = ElementUtil.getParentRender(this, ParagraphRenderObject) as ParagraphRenderObject;
|
69
79
|
for (let i = 0; i < this.element.paintRenders.length; i++) {
|
70
|
-
const paraRender = ElementUtil.getParentRender(this.element.paintRenders[i], ParagraphRenderObject);
|
80
|
+
const paraRender = ElementUtil.getParentRender(this.element.paintRenders[i], ParagraphRenderObject) as ParagraphRenderObject;
|
71
81
|
if (paraRender === currParaRender) {
|
72
|
-
renders.push(this.element.paintRenders[i]);
|
82
|
+
renders.push(this.element.paintRenders[i] as DataElementGroupRenderObject);
|
73
83
|
}
|
74
84
|
}
|
75
85
|
return renders;
|
76
86
|
}
|
77
|
-
|
87
|
+
|
88
|
+
|
89
|
+
pagePaintCompleted(ctx: RenderContenxtType, position: Position): void {
|
78
90
|
const canPaint = this.element.isMouseenter || this.element.isFocused;
|
79
91
|
if (canPaint && this.element.paintRenders.indexOf(this) === 0) {
|
80
92
|
const currParaRenders = this.getCurrentParaGroupRenders();
|
@@ -82,11 +94,12 @@ export class DataElementGroupRenderObject extends InlineGroupRenderObject {
|
|
82
94
|
if (currParaRenders.length > 1) {
|
83
95
|
const secondGroupRenderPos = currParaRenders[1].paintPos;
|
84
96
|
if (secondGroupRenderPos.x + currParaRenders[1].rect.width > this.paintPos.x) {
|
85
|
-
const leftPoints = [];
|
86
|
-
const rightPoints = [];
|
97
|
+
const leftPoints: Array<Position> = [];
|
98
|
+
const rightPoints: Array<Position> = [];
|
87
99
|
for (let i = 0; i < currParaRenders.length; i++) {
|
88
100
|
const groupRender = currParaRenders[i];
|
89
101
|
const groupRenderPos = groupRender.paintPos;
|
102
|
+
|
90
103
|
leftPoints.push({ x: groupRenderPos.x, y: groupRenderPos.y - verOffset });
|
91
104
|
rightPoints.push({ x: groupRenderPos.x + groupRender.rect.width, y: groupRenderPos.y - verOffset });
|
92
105
|
leftPoints.push({ x: groupRenderPos.x, y: groupRenderPos.y + groupRender.rect.height + verOffset * 2 });
|
@@ -103,10 +116,16 @@ export class DataElementGroupRenderObject extends InlineGroupRenderObject {
|
|
103
116
|
ctx.overlaysContext.strokeRect(render.paintPos.x, render.paintPos.y - verOffset, render.rect.width, render.rect.height + verOffset * 2, ctx.viewOptions.dataGroupColor);
|
104
117
|
}
|
105
118
|
}
|
119
|
+
|
106
120
|
}
|
107
|
-
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
endRender(ctx: RenderContenxtType, position: Position): void {
|
125
|
+
|
108
126
|
}
|
109
|
-
|
127
|
+
|
128
|
+
clone(): RenderObject {
|
110
129
|
const cloneRender = new DataElementGroupRenderObject(this.element);
|
111
130
|
cloneRender.rect = ElementUtil.cloneRect(this.rect);
|
112
131
|
for (let i = 0; i < this.length; i++) {
|
@@ -115,16 +134,17 @@ export class DataElementGroupRenderObject extends InlineGroupRenderObject {
|
|
115
134
|
return cloneRender;
|
116
135
|
}
|
117
136
|
}
|
118
|
-
|
119
|
-
|
120
|
-
|
137
|
+
|
138
|
+
export class DataElementGroupFactory extends ElementFactory<DataElementGroupProps> {
|
139
|
+
match(type: string): boolean {
|
140
|
+
return type === "data-group"
|
121
141
|
}
|
122
|
-
createElement(data, renderCtx) {
|
123
|
-
const props = data.props;
|
142
|
+
createElement(data: any, renderCtx: RenderContenxtType): Element {
|
143
|
+
const props = data.props as DataElementGroupProps;
|
124
144
|
const ele = new DataElementGroupElement();
|
125
145
|
ele.props.id = props.id;
|
126
146
|
ele.props.name = props.name;
|
127
147
|
return ele;
|
128
148
|
}
|
149
|
+
|
129
150
|
}
|
130
|
-
//# sourceMappingURL=data-element-group-impl.js.map
|
@@ -1,65 +1,72 @@
|
|
1
|
-
import { ElementFactory, ResizeLeafRenderObject } from "../../element-define";
|
1
|
+
import { Element, ElementFactory, ImgLoadStatus, LeafElement, Position, readElementProps, ResizeLeafRenderObject, SerializeProps, ViewOptions } from "../../element-define";
|
2
2
|
import { DataEleImageProps } from "../../element-props";
|
3
3
|
import { ElementUtil } from "../../element-util";
|
4
|
+
import { RenderContenxtType } from "../../render-context";
|
5
|
+
import { LeafRenderObject, RenderObject } from "../../render-define";
|
4
6
|
import { DataElementLeaf } from "./data-element-base-impl";
|
5
|
-
|
7
|
+
|
8
|
+
export class DataElementImage extends DataElementLeaf<DataEleImageProps> {
|
6
9
|
//props: DataEleImageProps;
|
7
|
-
status = 'no';
|
8
|
-
resizeable = true;
|
10
|
+
status: ImgLoadStatus = 'no';
|
11
|
+
resizeable: boolean = true;
|
9
12
|
constructor() {
|
10
13
|
super('data-ele-img');
|
11
14
|
this.props = new DataEleImageProps();
|
12
15
|
//this.addPropValueChangedSub(this.props);
|
13
|
-
this.cursorType = 'move'
|
16
|
+
this.cursorType = 'move'
|
14
17
|
this.focusable = true;
|
15
18
|
}
|
16
|
-
createRenderObject() {
|
19
|
+
createRenderObject(): LeafRenderObject {
|
17
20
|
const render = new DataImageRenderObject(this);
|
18
21
|
render.rect.width = this.props.width + 2;
|
19
22
|
render.rect.height = this.props.height + 2;
|
20
23
|
return render;
|
21
24
|
}
|
22
|
-
serialize(options) {
|
25
|
+
serialize(options: ViewOptions): SerializeProps {
|
23
26
|
return {
|
24
27
|
type: 'data-ele-img',
|
25
28
|
props: {
|
26
29
|
...this.props.getSerializeProps(options)
|
27
30
|
}
|
28
|
-
}
|
31
|
+
}
|
29
32
|
}
|
30
|
-
clone(data) {
|
33
|
+
clone(data: boolean): Element {
|
31
34
|
const clone = new DataElementImage();
|
32
35
|
this.props.clone(clone.props);
|
33
36
|
return clone;
|
34
37
|
}
|
35
|
-
|
38
|
+
|
39
|
+
loadImage(ctx: RenderContenxtType): void {
|
36
40
|
if (this.status === 'no') {
|
37
41
|
this.status = 'loading';
|
38
|
-
const onCallback = (status) => {
|
42
|
+
const onCallback = (status: ImgLoadStatus) => {
|
39
43
|
this.status = status;
|
40
44
|
if (status === 'completed') {
|
41
45
|
this.refreshView();
|
42
46
|
}
|
43
|
-
}
|
47
|
+
}
|
44
48
|
ctx.docCtx.imageLoader.loadImage(this.props.src, onCallback);
|
45
49
|
}
|
46
50
|
}
|
47
|
-
destroy() {
|
51
|
+
destroy(): void {
|
48
52
|
super.destroy();
|
49
53
|
}
|
50
|
-
|
54
|
+
|
55
|
+
setValue(val: any): void {
|
51
56
|
if (this.getValue() === val) {
|
52
57
|
return;
|
53
58
|
}
|
54
|
-
this.props.src = val;
|
59
|
+
this.props.src = val as string;
|
55
60
|
}
|
56
|
-
|
61
|
+
|
62
|
+
getValue(): string {
|
57
63
|
return this.props.src;
|
58
64
|
}
|
59
65
|
}
|
66
|
+
|
60
67
|
export class DataImageRenderObject extends ResizeLeafRenderObject {
|
61
|
-
render(ctx, position) {
|
62
|
-
const dataImgElement = this.element;
|
68
|
+
render(ctx: RenderContenxtType, position: { x: number; y: number; }): void {
|
69
|
+
const dataImgElement = this.element as DataElementImage;
|
63
70
|
const picProps = dataImgElement.props;
|
64
71
|
if (dataImgElement.status === 'no') {
|
65
72
|
dataImgElement.loadImage(ctx);
|
@@ -85,12 +92,13 @@ export class DataImageRenderObject extends ResizeLeafRenderObject {
|
|
85
92
|
ctx.contentContext.strokeLines([{ x: x - lineWidth, y }, { x, y }, { x, y: y + height }, { x: x - lineWidth, y: y + height }], 1, paintColor);
|
86
93
|
}
|
87
94
|
}
|
88
|
-
clone() {
|
95
|
+
clone(): RenderObject {
|
89
96
|
const clone = new DataImageRenderObject(this.element);
|
90
97
|
clone.rect = ElementUtil.cloneRect(this.rect);
|
91
98
|
return clone;
|
92
99
|
}
|
93
|
-
|
100
|
+
|
101
|
+
pagePaintCompleted(ctx: RenderContenxtType, pos: Position): void {
|
94
102
|
if (this.element.isFocused) {
|
95
103
|
const { width, height } = this.rect;
|
96
104
|
ctx.contentContext.strokeRect(pos.x, pos.y, this.rect.width, this.rect.height, '#1890ff', 0.5);
|
@@ -104,7 +112,8 @@ export class DataImageRenderObject extends ResizeLeafRenderObject {
|
|
104
112
|
this.drawResizeCircle(ctx, pos.x + width, pos.y + (Math.floor(height / 2)));
|
105
113
|
}
|
106
114
|
}
|
107
|
-
|
115
|
+
|
116
|
+
private drawResizeCircle(ctx: RenderContenxtType, x: number, y: number): void {
|
108
117
|
const ctxNative = ctx.contentContext.ctx;
|
109
118
|
ctxNative.save();
|
110
119
|
ctxNative.fillStyle = '#69c0ff';
|
@@ -115,12 +124,14 @@ export class DataImageRenderObject extends ResizeLeafRenderObject {
|
|
115
124
|
ctxNative.restore();
|
116
125
|
}
|
117
126
|
}
|
118
|
-
|
119
|
-
|
127
|
+
|
128
|
+
|
129
|
+
export class DataElementImgFactory extends ElementFactory<DataEleImageProps> {
|
130
|
+
match(type: string): boolean {
|
120
131
|
return type === 'data-ele-img';
|
121
132
|
}
|
122
|
-
createElement(data
|
123
|
-
const props = data.props;
|
133
|
+
createElement(data: readElementProps<DataEleImageProps>, renderCtx: RenderContenxtType): Element {
|
134
|
+
const props = data.props as DataEleImageProps;
|
124
135
|
const pic = new DataElementImage();
|
125
136
|
ElementUtil.readEleBaseProps(pic.props, props);
|
126
137
|
//pic.props.id = props.id ?? nanoid(5);
|
@@ -134,4 +145,3 @@ export class DataElementImgFactory extends ElementFactory {
|
|
134
145
|
return pic;
|
135
146
|
}
|
136
147
|
}
|
137
|
-
//# sourceMappingURL=data-element-image-impl.js.map
|
@@ -1,27 +1,33 @@
|
|
1
|
-
import { ElementFactory } from "../../element-define";
|
2
|
-
import { DataEleListProps } from "../../element-props";
|
1
|
+
import { Element, ElementFactory, readElementProps, SerializeProps, ViewOptions } from "../../element-define";
|
2
|
+
import { DataEleListProps, DataEleBaseTextProps } from "../../element-props";
|
3
3
|
import { ElementUtil } from "../../element-util";
|
4
|
+
import { RenderContenxtType } from "../../render-context";
|
5
|
+
import { RenderObject } from "../../render-define";
|
4
6
|
import { ElementSerialize } from "../../element-serialize";
|
5
7
|
import { TextGroupElement } from "../text/text-impl";
|
6
8
|
import { DataElementInlineGroup, DataElementRenderObject } from "./data-element-base-impl";
|
7
|
-
|
9
|
+
|
10
|
+
export class DataElementList extends DataElementInlineGroup<DataEleListProps> {
|
8
11
|
//props: DataEleListProps;
|
9
12
|
constructor() {
|
10
13
|
super('data-ele-list');
|
11
14
|
this.props = new DataEleListProps();
|
12
15
|
}
|
13
|
-
|
16
|
+
|
17
|
+
createRenderObject(): RenderObject {
|
14
18
|
return new DataElementListRenderObject(this);
|
15
19
|
}
|
16
|
-
|
20
|
+
|
21
|
+
serialize(viewOptions: ViewOptions): SerializeProps & any {
|
17
22
|
return {
|
18
23
|
type: this.type,
|
19
24
|
props: {
|
20
25
|
...this.props.getSerializeProps(viewOptions)
|
21
26
|
}
|
22
|
-
}
|
27
|
+
}
|
23
28
|
}
|
24
|
-
|
29
|
+
|
30
|
+
clone(data: boolean): DataElementList {
|
25
31
|
const clone = new DataElementList();
|
26
32
|
this.props.clone(clone.props);
|
27
33
|
if (data) {
|
@@ -35,7 +41,8 @@ export class DataElementList extends DataElementInlineGroup {
|
|
35
41
|
}
|
36
42
|
return clone;
|
37
43
|
}
|
38
|
-
|
44
|
+
|
45
|
+
setValue(vals: string[]): void {
|
39
46
|
if (this.getValue() === vals.join(';')) {
|
40
47
|
return;
|
41
48
|
}
|
@@ -48,15 +55,14 @@ export class DataElementList extends DataElementInlineGroup {
|
|
48
55
|
if (option) {
|
49
56
|
const valueText = new TextGroupElement();
|
50
57
|
this.props.valueTextProps.clone(valueText.props);
|
51
|
-
const splitSymbol = i < vals.length - 1 ? ';' : ''
|
58
|
+
const splitSymbol = i < vals.length - 1 ? ';' : ''
|
52
59
|
valueText.text = option.value + splitSymbol;
|
53
60
|
this.addChild(valueText, this.length - 1);
|
54
61
|
}
|
55
62
|
}
|
56
|
-
}
|
57
|
-
else {
|
63
|
+
} else {
|
58
64
|
if (vals.length > 1) {
|
59
|
-
console.warn('当前下拉框是单选模式,不能传入多个值')
|
65
|
+
console.warn('当前下拉框是单选模式,不能传入多个值')
|
60
66
|
}
|
61
67
|
const val = vals[0];
|
62
68
|
const option = this.props.options.find(item => item.code === val);
|
@@ -69,30 +75,32 @@ export class DataElementList extends DataElementInlineGroup {
|
|
69
75
|
}
|
70
76
|
this.beginMeasure();
|
71
77
|
}
|
72
|
-
|
78
|
+
|
79
|
+
getValue(): string {
|
73
80
|
const values = ElementSerialize.serializeString(this);
|
74
81
|
if (!values) {
|
75
82
|
return '';
|
76
83
|
}
|
77
84
|
const valueItems = values.split(';');
|
78
|
-
const valueCode = [];
|
85
|
+
const valueCode: Array<string> = [];
|
79
86
|
for (const valueItem of valueItems) {
|
80
87
|
const option = this.props.options.find(item => item.value === valueItem);
|
81
88
|
if (option) {
|
82
|
-
valueCode.push(option.code)
|
83
|
-
}
|
84
|
-
|
85
|
-
valueCode.push(option + '');
|
89
|
+
valueCode.push(option.code)
|
90
|
+
} else {
|
91
|
+
valueCode.push(option + '')
|
86
92
|
}
|
87
93
|
}
|
88
|
-
return valueCode.join(';')
|
94
|
+
return valueCode.join(';')
|
89
95
|
}
|
90
96
|
}
|
91
|
-
|
92
|
-
|
97
|
+
|
98
|
+
|
99
|
+
export class DataElementListRenderObject extends DataElementRenderObject<DataElementList> {
|
100
|
+
constructor(element: DataElementList) {
|
93
101
|
super(element);
|
94
102
|
}
|
95
|
-
clone() {
|
103
|
+
clone(): RenderObject {
|
96
104
|
const cloneRender = new DataElementListRenderObject(this.element);
|
97
105
|
cloneRender.rect = ElementUtil.cloneRect(this.rect);
|
98
106
|
for (let i = 0; i < this.length; i++) {
|
@@ -100,19 +108,22 @@ export class DataElementListRenderObject extends DataElementRenderObject {
|
|
100
108
|
}
|
101
109
|
return cloneRender;
|
102
110
|
}
|
111
|
+
|
103
112
|
}
|
104
|
-
|
105
|
-
|
106
|
-
|
113
|
+
|
114
|
+
export class DataElementListFactory extends ElementFactory<DataEleListProps> {
|
115
|
+
match(type: string): boolean {
|
116
|
+
return type === "data-ele-list"
|
107
117
|
}
|
108
|
-
createElement(data
|
109
|
-
const props = data.props;
|
118
|
+
createElement(data: readElementProps<DataEleListProps>, renderCtx: RenderContenxtType): Element {
|
119
|
+
const props = data.props as DataEleListProps;
|
110
120
|
const ele = new DataElementList();
|
111
121
|
this.createDataEleProps(ele.props, props);
|
112
122
|
return ele;
|
113
123
|
}
|
114
|
-
|
115
|
-
|
124
|
+
|
125
|
+
createDataEleProps(dest: DataEleListProps, props: DataEleListProps): DataEleBaseTextProps {
|
126
|
+
const dataEleProps: DataEleListProps = dest;
|
116
127
|
ElementUtil.readEleBaseProps(dataEleProps, props);
|
117
128
|
//dataEleProps.id = props.id ?? nanoid(5);
|
118
129
|
//dataEleProps.name = props.name;
|
@@ -127,5 +138,5 @@ export class DataElementListFactory extends ElementFactory {
|
|
127
138
|
dataEleProps.dropDownStyle = props.dropDownStyle;
|
128
139
|
return dataEleProps;
|
129
140
|
}
|
141
|
+
|
130
142
|
}
|
131
|
-
//# sourceMappingURL=data-element-list-impl.js.map
|