ducjs 2.0.0 → 2.1.0
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/README.md +1 -1
- package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +0 -3
- package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +0 -8
- package/dist/flatbuffers/duc/duc-leader-style.d.ts +0 -3
- package/dist/flatbuffers/duc/duc-leader-style.js +0 -8
- package/dist/flatbuffers/duc/duc-plot-style.d.ts +1 -4
- package/dist/flatbuffers/duc/duc-plot-style.js +1 -10
- package/dist/flatbuffers/duc/duc-table-style.d.ts +0 -3
- package/dist/flatbuffers/duc/duc-table-style.js +0 -8
- package/dist/flatbuffers/duc/duc-text-style.d.ts +0 -3
- package/dist/flatbuffers/duc/duc-text-style.js +0 -8
- package/dist/flatbuffers/duc/duc-viewport-style.d.ts +1 -4
- package/dist/flatbuffers/duc/duc-viewport-style.js +1 -10
- package/dist/flatbuffers/duc/duc-xray-style.d.ts +1 -4
- package/dist/flatbuffers/duc/duc-xray-style.js +1 -10
- package/dist/flatbuffers/duc/exported-data-state.d.ts +3 -0
- package/dist/flatbuffers/duc/exported-data-state.js +8 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/parse.d.ts +5 -5
- package/dist/parse.js +57 -20
- package/dist/restore/restoreDataState.d.ts +14 -10
- package/dist/restore/restoreDataState.js +29 -22
- package/dist/restore/restoreElements.d.ts +2 -2
- package/dist/restore/restoreElements.js +21 -14
- package/dist/restore/restoreStandards.d.ts +2 -2
- package/dist/restore/restoreStandards.js +4 -4
- package/dist/serialize.d.ts +3 -2
- package/dist/serialize.js +14 -27
- package/dist/technical/measurements.d.ts +2 -2
- package/dist/technical/measurements.js +1 -1
- package/dist/technical/scopes.d.ts +4 -4
- package/dist/technical/scopes.js +1 -1
- package/dist/technical/standards.d.ts +4 -4
- package/dist/types/elements/index.d.ts +13 -13
- package/dist/types/elements/typeChecks.d.ts +5 -4
- package/dist/types/elements/typeChecks.js +5 -2
- package/dist/types/geometryTypes.d.ts +2 -2
- package/dist/types/index.d.ts +11 -8
- package/dist/types/index.js +1 -0
- package/dist/types/typeChecks.d.ts +5 -0
- package/dist/types/typeChecks.js +10 -0
- package/dist/utils/bounds.d.ts +3 -3
- package/dist/utils/bounds.js +3 -3
- package/dist/utils/constants.d.ts +5 -3
- package/dist/utils/constants.js +3 -5
- package/dist/utils/elements/frameElement.d.ts +2 -1
- package/dist/utils/elements/frameElement.js +13 -1
- package/dist/utils/elements/freedrawElement.d.ts +1 -1
- package/dist/utils/elements/freedrawElement.js +1 -1
- package/dist/utils/elements/index.d.ts +4 -4
- package/dist/utils/elements/index.js +17 -21
- package/dist/utils/elements/linearElement.d.ts +6 -6
- package/dist/utils/elements/linearElement.js +4 -4
- package/dist/utils/elements/newElement.d.ts +3 -3
- package/dist/utils/elements/newElement.js +26 -26
- package/dist/utils/elements/textElement.d.ts +7 -7
- package/dist/utils/elements/textElement.js +11 -9
- package/dist/utils/elements/viewportElement.d.ts +1 -1
- package/dist/utils/functionCodec.js +2 -2
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/math/algebra/gadirections.d.ts +1 -1
- package/dist/utils/math/algebra/gadirections.js +1 -1
- package/dist/utils/math/algebra/galines.d.ts +1 -1
- package/dist/utils/math/algebra/galines.js +1 -1
- package/dist/utils/math/algebra/gapoints.d.ts +1 -1
- package/dist/utils/math/algebra/gapoints.js +3 -3
- package/dist/utils/math/algebra/gatransforms.d.ts +1 -1
- package/dist/utils/math/algebra/gatransforms.js +2 -2
- package/dist/utils/math/bbox.d.ts +2 -2
- package/dist/utils/math/geometry.d.ts +3 -3
- package/dist/utils/math/geometry.js +2 -2
- package/dist/utils/math/index.d.ts +6 -6
- package/dist/utils/math/index.js +3 -3
- package/dist/utils/normalize.d.ts +2 -2
- package/dist/utils/normalize.js +2 -2
- package/dist/utils/shape.d.ts +2 -2
- package/dist/utils/shape.js +8 -8
- package/dist/utils/state/grid.d.ts +1 -1
- package/dist/utils/state/grid.js +3 -3
- package/dist/utils/state/index.d.ts +1 -1
- package/dist/utils/state/index.js +7 -7
- package/dist/utils/traverse.d.ts +22 -0
- package/dist/utils/traverse.js +87 -0
- package/dist/utils/version.d.ts +1 -1
- package/dist/utils/version.js +1 -1
- package/package.json +4 -2
- package/dist/legacy/index.d.ts +0 -1
- package/dist/legacy/index.js +0 -1
- package/dist/legacy/v1/duc/app-state.d.ts +0 -124
- package/dist/legacy/v1/duc/app-state.js +0 -388
- package/dist/legacy/v1/duc/binary-file-data.d.ts +0 -27
- package/dist/legacy/v1/duc/binary-file-data.js +0 -90
- package/dist/legacy/v1/duc/binary-files-entry.d.ts +0 -16
- package/dist/legacy/v1/duc/binary-files-entry.js +0 -43
- package/dist/legacy/v1/duc/binary-files.d.ts +0 -17
- package/dist/legacy/v1/duc/binary-files.js +0 -55
- package/dist/legacy/v1/duc/binding-point.d.ts +0 -15
- package/dist/legacy/v1/duc/binding-point.js +0 -48
- package/dist/legacy/v1/duc/bound-element.d.ts +0 -17
- package/dist/legacy/v1/duc/bound-element.js +0 -48
- package/dist/legacy/v1/duc/duc-block-attribute-details.d.ts +0 -22
- package/dist/legacy/v1/duc/duc-block-attribute-details.js +0 -57
- package/dist/legacy/v1/duc/duc-block-attribute.d.ts +0 -16
- package/dist/legacy/v1/duc/duc-block-attribute.js +0 -43
- package/dist/legacy/v1/duc/duc-block-instance-element-override.d.ts +0 -17
- package/dist/legacy/v1/duc/duc-block-instance-element-override.js +0 -48
- package/dist/legacy/v1/duc/duc-block.d.ts +0 -34
- package/dist/legacy/v1/duc/duc-block.js +0 -110
- package/dist/legacy/v1/duc/duc-element.d.ts +0 -273
- package/dist/legacy/v1/duc/duc-element.js +0 -865
- package/dist/legacy/v1/duc/duc-group.d.ts +0 -40
- package/dist/legacy/v1/duc/duc-group.js +0 -114
- package/dist/legacy/v1/duc/duc-line-reference.d.ts +0 -15
- package/dist/legacy/v1/duc/duc-line-reference.js +0 -43
- package/dist/legacy/v1/duc/duc-line.d.ts +0 -15
- package/dist/legacy/v1/duc/duc-line.js +0 -43
- package/dist/legacy/v1/duc/duc-path.d.ts +0 -26
- package/dist/legacy/v1/duc/duc-path.js +0 -69
- package/dist/legacy/v1/duc/duc-table-cell.d.ts +0 -22
- package/dist/legacy/v1/duc/duc-table-cell.js +0 -57
- package/dist/legacy/v1/duc/duc-table-column.d.ts +0 -18
- package/dist/legacy/v1/duc/duc-table-column.js +0 -50
- package/dist/legacy/v1/duc/duc-table-row.d.ts +0 -18
- package/dist/legacy/v1/duc/duc-table-row.js +0 -50
- package/dist/legacy/v1/duc/duc-table-style-props.d.ts +0 -39
- package/dist/legacy/v1/duc/duc-table-style-props.js +0 -114
- package/dist/legacy/v1/duc/duc-table-style.d.ts +0 -14
- package/dist/legacy/v1/duc/duc-table-style.js +0 -41
- package/dist/legacy/v1/duc/element-background.d.ts +0 -14
- package/dist/legacy/v1/duc/element-background.js +0 -41
- package/dist/legacy/v1/duc/element-content-base.d.ts +0 -22
- package/dist/legacy/v1/duc/element-content-base.js +0 -64
- package/dist/legacy/v1/duc/element-stroke.d.ts +0 -23
- package/dist/legacy/v1/duc/element-stroke.js +0 -66
- package/dist/legacy/v1/duc/exported-data-state.d.ts +0 -51
- package/dist/legacy/v1/duc/exported-data-state.js +0 -155
- package/dist/legacy/v1/duc/image-crop.d.ts +0 -23
- package/dist/legacy/v1/duc/image-crop.js +0 -80
- package/dist/legacy/v1/duc/linear-element-editor.d.ts +0 -44
- package/dist/legacy/v1/duc/linear-element-editor.js +0 -119
- package/dist/legacy/v1/duc/point-binding.d.ts +0 -25
- package/dist/legacy/v1/duc/point-binding.js +0 -72
- package/dist/legacy/v1/duc/point.d.ts +0 -20
- package/dist/legacy/v1/duc/point.js +0 -63
- package/dist/legacy/v1/duc/pointer-down-state.d.ts +0 -32
- package/dist/legacy/v1/duc/pointer-down-state.js +0 -90
- package/dist/legacy/v1/duc/renderer-state.d.ts +0 -17
- package/dist/legacy/v1/duc/renderer-state.js +0 -54
- package/dist/legacy/v1/duc/segment-midpoint-state.d.ts +0 -18
- package/dist/legacy/v1/duc/segment-midpoint-state.js +0 -57
- package/dist/legacy/v1/duc/simple-point.d.ts +0 -15
- package/dist/legacy/v1/duc/simple-point.js +0 -48
- package/dist/legacy/v1/duc/stroke-sides.d.ts +0 -23
- package/dist/legacy/v1/duc/stroke-sides.js +0 -66
- package/dist/legacy/v1/duc/stroke-style.d.ts +0 -31
- package/dist/legacy/v1/duc/stroke-style.js +0 -102
- package/dist/legacy/v1/duc/tiling-properties.d.ts +0 -21
- package/dist/legacy/v1/duc/tiling-properties.js +0 -75
- package/dist/legacy/v1/duc.d.ts +0 -35
- package/dist/legacy/v1/duc.js +0 -37
- package/dist/legacy/v1/index.d.ts +0 -1
- package/dist/legacy/v1/index.js +0 -1
- package/dist/legacy/v1/parse/index.d.ts +0 -67
- package/dist/legacy/v1/parse/index.js +0 -101
- package/dist/legacy/v1/parse/parseAppStateFromBinary.d.ts +0 -3
- package/dist/legacy/v1/parse/parseAppStateFromBinary.js +0 -139
- package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.d.ts +0 -4
- package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.js +0 -32
- package/dist/legacy/v1/parse/parseBlockFromBinary.d.ts +0 -3
- package/dist/legacy/v1/parse/parseBlockFromBinary.js +0 -70
- package/dist/legacy/v1/parse/parseElementFromBinary.d.ts +0 -8
- package/dist/legacy/v1/parse/parseElementFromBinary.js +0 -387
- package/dist/legacy/v1/parse/parseGroupFromBinary.d.ts +0 -4
- package/dist/legacy/v1/parse/parseGroupFromBinary.js +0 -36
- package/dist/legacy/v1/parse/parseRendererStateFromBinary.d.ts +0 -4
- package/dist/legacy/v1/parse/parseRendererStateFromBinary.js +0 -15
- package/dist/legacy/v1/serialize/index.d.ts +0 -5
- package/dist/legacy/v1/serialize/index.js +0 -81
- package/dist/legacy/v1/serialize/serializationUtils.d.ts +0 -17
- package/dist/legacy/v1/serialize/serializationUtils.js +0 -27
- package/dist/legacy/v1/serialize/serializeAppStateFromDuc.d.ts +0 -4
- package/dist/legacy/v1/serialize/serializeAppStateFromDuc.js +0 -145
- package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.d.ts +0 -4
- package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.js +0 -46
- package/dist/legacy/v1/serialize/serializeBlockFromDuc.d.ts +0 -3
- package/dist/legacy/v1/serialize/serializeBlockFromDuc.js +0 -60
- package/dist/legacy/v1/serialize/serializeElementFromDuc.d.ts +0 -8
- package/dist/legacy/v1/serialize/serializeElementFromDuc.js +0 -435
- package/dist/legacy/v1/serialize/serializeGroupFromDuc.d.ts +0 -3
- package/dist/legacy/v1/serialize/serializeGroupFromDuc.js +0 -37
- package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.d.ts +0 -4
- package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.js +0 -7
- package/dist/legacy/v1/types/elements/index.d.ts +0 -480
- package/dist/legacy/v1/types/elements/index.js +0 -1
- package/dist/legacy/v1/types/elements/typeChecks.d.ts +0 -40
- package/dist/legacy/v1/types/elements/typeChecks.js +0 -179
- package/dist/legacy/v1/types/geometryTypes.d.ts +0 -78
- package/dist/legacy/v1/types/geometryTypes.js +0 -1
- package/dist/legacy/v1/types/index.d.ts +0 -496
- package/dist/legacy/v1/types/index.js +0 -1
- package/dist/legacy/v1/types/utility-types.d.ts +0 -31
- package/dist/legacy/v1/types/utility-types.js +0 -1
- package/dist/legacy/v1/utils/bounds.d.ts +0 -76
- package/dist/legacy/v1/utils/bounds.js +0 -415
- package/dist/legacy/v1/utils/constants.d.ts +0 -370
- package/dist/legacy/v1/utils/constants.js +0 -571
- package/dist/legacy/v1/utils/elements/index.d.ts +0 -26
- package/dist/legacy/v1/utils/elements/index.js +0 -108
- package/dist/legacy/v1/utils/elements/linearElement.d.ts +0 -133
- package/dist/legacy/v1/utils/elements/linearElement.js +0 -544
- package/dist/legacy/v1/utils/elements/textElement.d.ts +0 -89
- package/dist/legacy/v1/utils/elements/textElement.js +0 -563
- package/dist/legacy/v1/utils/index.d.ts +0 -26
- package/dist/legacy/v1/utils/index.js +0 -40
- package/dist/legacy/v1/utils/math/algebra/ga.d.ts +0 -63
- package/dist/legacy/v1/utils/math/algebra/ga.js +0 -268
- package/dist/legacy/v1/utils/math/algebra/gadirections.d.ts +0 -9
- package/dist/legacy/v1/utils/math/algebra/gadirections.js +0 -18
- package/dist/legacy/v1/utils/math/algebra/galines.d.ts +0 -23
- package/dist/legacy/v1/utils/math/algebra/galines.js +0 -32
- package/dist/legacy/v1/utils/math/algebra/gapoints.d.ts +0 -8
- package/dist/legacy/v1/utils/math/algebra/gapoints.js +0 -30
- package/dist/legacy/v1/utils/math/algebra/gatransforms.d.ts +0 -10
- package/dist/legacy/v1/utils/math/algebra/gatransforms.js +0 -23
- package/dist/legacy/v1/utils/math/bbox.d.ts +0 -10
- package/dist/legacy/v1/utils/math/bbox.js +0 -42
- package/dist/legacy/v1/utils/math/geometry.d.ts +0 -102
- package/dist/legacy/v1/utils/math/geometry.js +0 -790
- package/dist/legacy/v1/utils/math/index.d.ts +0 -309
- package/dist/legacy/v1/utils/math/index.js +0 -1140
- package/dist/legacy/v1/utils/math/random.d.ts +0 -4
- package/dist/legacy/v1/utils/math/random.js +0 -25
- package/dist/legacy/v1/utils/measurements.d.ts +0 -33
- package/dist/legacy/v1/utils/measurements.js +0 -65
- package/dist/legacy/v1/utils/normalize.d.ts +0 -14
- package/dist/legacy/v1/utils/normalize.js +0 -49
- package/dist/legacy/v1/utils/restore.d.ts +0 -197
- package/dist/legacy/v1/utils/restore.js +0 -1255
- package/dist/legacy/v1/utils/scopes.d.ts +0 -260
- package/dist/legacy/v1/utils/scopes.js +0 -661
- package/dist/legacy/v1/utils/standards.d.ts +0 -12
- package/dist/legacy/v1/utils/standards.js +0 -10
- package/dist/legacy/v1/utils/state/index.d.ts +0 -2
- package/dist/legacy/v1/utils/state/index.js +0 -68
- package/dist/legacy/v1/utils/url.d.ts +0 -8
- package/dist/legacy/v1/utils/url.js +0 -33
|
@@ -1,387 +0,0 @@
|
|
|
1
|
-
import { getPrecisionValueFromRaw, NEUTRAL_SCOPE } from 'ducjs/legacy/v1/utils/scopes';
|
|
2
|
-
import { DEFAULT_ELEMENT_PROPS, FREEDRAW_EASINGS } from 'ducjs/legacy/v1/utils/constants';
|
|
3
|
-
import tinycolor from 'tinycolor2';
|
|
4
|
-
export const parsePoint = (point, elementScope) => {
|
|
5
|
-
if (!point)
|
|
6
|
-
return null;
|
|
7
|
-
return Object.assign({ x: getPrecisionValueFromRaw(point.xV3(), elementScope, elementScope), y: getPrecisionValueFromRaw(point.yV3(), elementScope, elementScope) }, (point.mirroring() && { mirroring: point.mirroring() }));
|
|
8
|
-
};
|
|
9
|
-
const parseLineReference = (lineRef, elementScope) => {
|
|
10
|
-
if (!lineRef)
|
|
11
|
-
return null;
|
|
12
|
-
const handle = lineRef.handle();
|
|
13
|
-
return {
|
|
14
|
-
index: lineRef.index(),
|
|
15
|
-
handle: handle ? {
|
|
16
|
-
x: getPrecisionValueFromRaw(handle.x(), elementScope, elementScope),
|
|
17
|
-
y: getPrecisionValueFromRaw(handle.y(), elementScope, elementScope)
|
|
18
|
-
} : null
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
const parseLine = (line, elementScope) => {
|
|
22
|
-
if (!line)
|
|
23
|
-
return null;
|
|
24
|
-
const start = parseLineReference(line.start(), elementScope);
|
|
25
|
-
const end = parseLineReference(line.end(), elementScope);
|
|
26
|
-
if (!start || !end)
|
|
27
|
-
return null;
|
|
28
|
-
return [start, end];
|
|
29
|
-
};
|
|
30
|
-
const parseDucPath = (path, elementScope) => {
|
|
31
|
-
if (!path)
|
|
32
|
-
return null;
|
|
33
|
-
const lineIndices = Array.from({ length: path.lineIndicesLength() })
|
|
34
|
-
.map((_, i) => path.lineIndices(i))
|
|
35
|
-
.filter((index) => index !== null && index !== undefined);
|
|
36
|
-
const background = path.background() ? parseElementBinBackground(path.background()) : null;
|
|
37
|
-
const stroke = path.stroke() ? parseElementBinStroke(path.stroke(), elementScope) : null;
|
|
38
|
-
return {
|
|
39
|
-
lineIndices,
|
|
40
|
-
background,
|
|
41
|
-
stroke
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
const parseBindingPoint = (bindingPoint) => {
|
|
45
|
-
if (!bindingPoint)
|
|
46
|
-
return null;
|
|
47
|
-
return {
|
|
48
|
-
index: bindingPoint.index(),
|
|
49
|
-
offset: bindingPoint.offset()
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
const parsePointBinding = (binding, elementScope) => {
|
|
53
|
-
if (!binding)
|
|
54
|
-
return null;
|
|
55
|
-
const fixedPoint = binding.fixedPoint();
|
|
56
|
-
return {
|
|
57
|
-
elementId: binding.elementId() || '',
|
|
58
|
-
focus: binding.focus(),
|
|
59
|
-
gap: getPrecisionValueFromRaw(binding.gap(), elementScope, elementScope),
|
|
60
|
-
fixedPoint: fixedPoint ? {
|
|
61
|
-
x: fixedPoint.x(),
|
|
62
|
-
y: fixedPoint.y(),
|
|
63
|
-
} : null,
|
|
64
|
-
point: binding.point() ? parseBindingPoint(binding.point()) : null,
|
|
65
|
-
head: binding.head()
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
export const parseElementFromBinary = (e, v) => {
|
|
69
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
70
|
-
if (!e)
|
|
71
|
-
return null;
|
|
72
|
-
const elType = e.type();
|
|
73
|
-
if (!elType)
|
|
74
|
-
return null;
|
|
75
|
-
const forceNeutralScope = v <= 5;
|
|
76
|
-
let readScope = e.scope();
|
|
77
|
-
const elementScope = forceNeutralScope ? NEUTRAL_SCOPE : (readScope || NEUTRAL_SCOPE);
|
|
78
|
-
// Populate groupIds array
|
|
79
|
-
let groupIds = [];
|
|
80
|
-
for (let j = 0; j < e.groupIdsLength(); j++) {
|
|
81
|
-
groupIds.push(e.groupIds(j) || '');
|
|
82
|
-
}
|
|
83
|
-
// Populate boundElements array
|
|
84
|
-
const boundElements = Array.from({ length: e.boundElementsLength() })
|
|
85
|
-
.map((_, j) => e.boundElements(j))
|
|
86
|
-
.filter((element) => !!element)
|
|
87
|
-
.map(boundElement => ({
|
|
88
|
-
id: boundElement.id(),
|
|
89
|
-
type: boundElement.type()
|
|
90
|
-
}))
|
|
91
|
-
.filter((element) => !!element.id && !!element.type);
|
|
92
|
-
// Handle backward compatibility for stroke and background
|
|
93
|
-
let strokes = [];
|
|
94
|
-
let backgrounds = [];
|
|
95
|
-
// v4
|
|
96
|
-
if (e.strokeLength && e.strokeLength() > 0) {
|
|
97
|
-
strokes = Array.from({ length: e.strokeLength() })
|
|
98
|
-
.map((_, i) => {
|
|
99
|
-
const stroke = e.stroke(i);
|
|
100
|
-
return parseElementBinStroke(stroke, elementScope);
|
|
101
|
-
})
|
|
102
|
-
.filter((stroke) => stroke !== null);
|
|
103
|
-
}
|
|
104
|
-
// v3
|
|
105
|
-
else if (e.strokeColorV3 && e.strokeColorV3()) {
|
|
106
|
-
const strokeColor = e.strokeColorV3();
|
|
107
|
-
const color = tinycolor(strokeColor);
|
|
108
|
-
const stroke = Object.assign(Object.assign({}, DEFAULT_ELEMENT_PROPS.stroke), { content: Object.assign(Object.assign({}, DEFAULT_ELEMENT_PROPS.stroke.content), { src: color.toHexString(), opacity: color.getAlpha() }) });
|
|
109
|
-
strokes = [stroke];
|
|
110
|
-
}
|
|
111
|
-
// v4
|
|
112
|
-
if (e.backgroundLength && e.backgroundLength() > 0) {
|
|
113
|
-
backgrounds = Array.from({ length: e.backgroundLength() })
|
|
114
|
-
.map((_, i) => {
|
|
115
|
-
const background = e.background(i);
|
|
116
|
-
return parseElementBinBackground(background);
|
|
117
|
-
})
|
|
118
|
-
.filter((background) => background !== null);
|
|
119
|
-
}
|
|
120
|
-
// v3
|
|
121
|
-
else if (e.backgroundColorV3 && e.backgroundColorV3()) {
|
|
122
|
-
const backgroundColor = e.backgroundColorV3();
|
|
123
|
-
const color = tinycolor(backgroundColor);
|
|
124
|
-
const background = {
|
|
125
|
-
content: Object.assign(Object.assign({}, DEFAULT_ELEMENT_PROPS.background.content), { src: color.toHexString(), opacity: color.getAlpha() })
|
|
126
|
-
};
|
|
127
|
-
backgrounds = [background];
|
|
128
|
-
}
|
|
129
|
-
const points = ['freedraw', 'line', 'arrow'].includes(elType)
|
|
130
|
-
? Array.from({ length: e.linearElementPointsLength() })
|
|
131
|
-
.map((_, j) => e.linearElementPoints(j))
|
|
132
|
-
.filter((point) => !!point)
|
|
133
|
-
.map(point => parsePoint(point, elementScope))
|
|
134
|
-
.filter((point) => point !== null)
|
|
135
|
-
: [];
|
|
136
|
-
const lines = ['line', 'arrow'].includes(elType)
|
|
137
|
-
? e.linearElementLines(0) !== null || e.linearElementLinesLength() > 0 // Check if field exists
|
|
138
|
-
? Array.from({ length: e.linearElementLinesLength() })
|
|
139
|
-
.map((_, j) => e.linearElementLines(j))
|
|
140
|
-
.filter((line) => !!line)
|
|
141
|
-
.map(line => parseLine(line, elementScope))
|
|
142
|
-
.filter((line) => line !== null)
|
|
143
|
-
: undefined
|
|
144
|
-
: undefined;
|
|
145
|
-
const pathOverrides = ['line', 'arrow'].includes(elType)
|
|
146
|
-
? e.linearElementPathOverrides(0) !== null || e.linearElementPathOverridesLength() > 0
|
|
147
|
-
? Array.from({ length: e.linearElementPathOverridesLength() })
|
|
148
|
-
.map((_, j) => e.linearElementPathOverrides(j))
|
|
149
|
-
.filter((path) => !!path)
|
|
150
|
-
.map(path => parseDucPath(path, elementScope))
|
|
151
|
-
.filter((path) => path !== null)
|
|
152
|
-
: undefined
|
|
153
|
-
: undefined;
|
|
154
|
-
const pressures = elType === 'freedraw'
|
|
155
|
-
? Array.from({ length: e.freeDrawPressuresLength() })
|
|
156
|
-
.map((_, j) => e.freeDrawPressures(j))
|
|
157
|
-
.filter((pressure) => pressure !== null && pressure !== undefined)
|
|
158
|
-
: [];
|
|
159
|
-
const xValue = v > 2 ? e.x() : e.xV2() || undefined;
|
|
160
|
-
const yValue = v > 2 ? e.y() : e.yV2() || undefined;
|
|
161
|
-
const widthValue = v > 2 ? e.width() : e.widthV2() || undefined;
|
|
162
|
-
const heightValue = v > 2 ? e.height() : e.heightV2() || undefined;
|
|
163
|
-
const roundnessValue = e.roundness();
|
|
164
|
-
const baseElement = {
|
|
165
|
-
id: e.id() || undefined,
|
|
166
|
-
x: xValue ? getPrecisionValueFromRaw(xValue, elementScope, elementScope) : undefined,
|
|
167
|
-
y: yValue ? getPrecisionValueFromRaw(yValue, elementScope, elementScope) : undefined,
|
|
168
|
-
isVisible: e.isVisible(),
|
|
169
|
-
opacity: e.opacity(),
|
|
170
|
-
width: widthValue ? getPrecisionValueFromRaw(widthValue, elementScope, elementScope) : undefined,
|
|
171
|
-
height: heightValue ? getPrecisionValueFromRaw(heightValue, elementScope, elementScope) : undefined,
|
|
172
|
-
angle: (v > 2 ? e.angle() : e.angleV2()) || undefined,
|
|
173
|
-
isDeleted: e.isDeleted(),
|
|
174
|
-
frameId: e.frameId(),
|
|
175
|
-
link: e.link() || undefined,
|
|
176
|
-
locked: e.locked(),
|
|
177
|
-
groupIds: groupIds,
|
|
178
|
-
scope: elementScope,
|
|
179
|
-
label: e.label() || undefined,
|
|
180
|
-
boundElements: boundElements,
|
|
181
|
-
stroke: strokes,
|
|
182
|
-
background: backgrounds,
|
|
183
|
-
blending: e.blending(),
|
|
184
|
-
roundness: roundnessValue ? getPrecisionValueFromRaw(roundnessValue, elementScope, elementScope) : undefined,
|
|
185
|
-
subset: e.subset(),
|
|
186
|
-
zIndex: e.zIndex(),
|
|
187
|
-
description: e.description() || undefined,
|
|
188
|
-
noPlot: e.noPlot() || undefined,
|
|
189
|
-
};
|
|
190
|
-
switch (elType) {
|
|
191
|
-
case "text":
|
|
192
|
-
const fontSizeValue = v > 2 ? e.textFontSize() : e.textFontSizeV2() || undefined;
|
|
193
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, fontSize: fontSizeValue ? getPrecisionValueFromRaw(fontSizeValue, elementScope, elementScope) : undefined, fontFamily: Number(e.textFontFamily()), text: e.textText(), textAlign: e.textTextAlign(), verticalAlign: e.textVerticalAlign(), containerId: e.textContainerId(), originalText: e.textText(), lineHeight: v > 2 ? e.textLineHeight() : e.textLineHeightV2() || undefined, autoResize: e.textAutoResize() });
|
|
194
|
-
case "arrow":
|
|
195
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, points,
|
|
196
|
-
lines,
|
|
197
|
-
pathOverrides, lastCommittedPoint: e.linearElementLastCommittedPoint() ? parsePoint(e.linearElementLastCommittedPoint(), elementScope) : null, startBinding: parsePointBinding(e.linearElementStartBinding(), elementScope), endBinding: parsePointBinding(e.linearElementEndBinding(), elementScope), elbowed: e.arrowElbowed() });
|
|
198
|
-
case "line":
|
|
199
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, points: points, lines,
|
|
200
|
-
pathOverrides, lastCommittedPoint: e.linearElementLastCommittedPoint() ? parsePoint(e.linearElementLastCommittedPoint(), elementScope) : null, startBinding: parsePointBinding(e.linearElementStartBinding(), elementScope), endBinding: parsePointBinding(e.linearElementEndBinding(), elementScope) });
|
|
201
|
-
case "freedraw":
|
|
202
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, size: e.freeDrawSize() ? getPrecisionValueFromRaw(e.freeDrawSize(), elementScope, elementScope) : undefined, points: points, pressures: pressures, simulatePressure: e.freeDrawSimulatePressure(), lastCommittedPoint: e.linearElementLastCommittedPoint() ? parsePoint(e.linearElementLastCommittedPoint(), elementScope) : null, thinning: ((_a = e.freeDrawThinning()) !== null && _a !== void 0 ? _a : undefined), smoothing: ((_b = e.freeDrawSmoothing()) !== null && _b !== void 0 ? _b : undefined), streamline: ((_c = e.freeDrawStreamline()) !== null && _c !== void 0 ? _c : undefined), easing: e.freeDrawEasing() ? FREEDRAW_EASINGS[e.freeDrawEasing()] : undefined, start: e.freeDrawStartCap() !== null || e.freeDrawStartTaper() !== null || e.freeDrawStartEasing() !== null ? {
|
|
203
|
-
cap: (_d = e.freeDrawStartCap()) !== null && _d !== void 0 ? _d : false,
|
|
204
|
-
taper: ((_e = e.freeDrawStartTaper()) !== null && _e !== void 0 ? _e : 0),
|
|
205
|
-
easing: e.freeDrawStartEasing() ? FREEDRAW_EASINGS[e.freeDrawStartEasing()] : undefined,
|
|
206
|
-
} : null, end: e.freeDrawEndCap() !== null || e.freeDrawEndTaper() !== null || e.freeDrawEndEasing() !== null ? {
|
|
207
|
-
cap: (_f = e.freeDrawEndCap()) !== null && _f !== void 0 ? _f : false,
|
|
208
|
-
taper: ((_g = e.freeDrawEndTaper()) !== null && _g !== void 0 ? _g : 0),
|
|
209
|
-
easing: e.freeDrawEndEasing() ? FREEDRAW_EASINGS[e.freeDrawEndEasing()] : undefined,
|
|
210
|
-
} : null, svgPath: (_h = e.freeDrawSvgPath()) !== null && _h !== void 0 ? _h : undefined });
|
|
211
|
-
case "image":
|
|
212
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, fileId: e.fileId(), status: e.imageStatus(), scale: (() => { const s = e.imageScale(); return s ? [s.x(), s.y()] : undefined; })(), crop: parseImageCrop(e.imageCrop()) });
|
|
213
|
-
case "frame":
|
|
214
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, isCollapsed: e.stackLikeIsCollapsed(), clip: e.stackLikeClip() || undefined, labelingColor: e.stackLikeLabelingColor() || undefined, strokeOverride: e.stackLikeStrokeOverride() ? parseElementBinStroke(e.stackLikeStrokeOverride(), elementScope) : null, backgroundOverride: e.stackLikeBackgroundOverride() ? parseElementBinBackground(e.stackLikeBackgroundOverride()) : null });
|
|
215
|
-
case "selection":
|
|
216
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType });
|
|
217
|
-
case "rectangle":
|
|
218
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType });
|
|
219
|
-
case "polygon":
|
|
220
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, sides: e.polygonSides() });
|
|
221
|
-
case "ellipse":
|
|
222
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, ratio: (_j = e.ellipseRatio()) !== null && _j !== void 0 ? _j : undefined, startAngle: (_k = e.ellipseStartAngle()) !== null && _k !== void 0 ? _k : undefined, endAngle: (_l = e.ellipseEndAngle()) !== null && _l !== void 0 ? _l : undefined, showAuxCrosshair: (_m = e.ellipseShowAuxCrosshair()) !== null && _m !== void 0 ? _m : undefined });
|
|
223
|
-
case "table":
|
|
224
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, columnOrder: Array.from({ length: e.tableColumnOrderLength() }, (_, j) => e.tableColumnOrder(j) || ''), rowOrder: Array.from({ length: e.tableRowOrderLength() }, (_, j) => e.tableRowOrder(j) || ''), columns: parseDucTableColumns(e.tableColumnsLength(), e.tableColumns.bind(e), elementScope), rows: parseDucTableRows(e.tableRowsLength(), e.tableRows.bind(e), elementScope), cells: parseDucTableCells(e.tableCellsLength(), e.tableCells.bind(e), elementScope), style: e.tableStyle() ? parseDucTableStyleProps(e.tableStyle().defaultProps(), elementScope) : undefined });
|
|
225
|
-
case "doc":
|
|
226
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, content: e.docContent() || "" });
|
|
227
|
-
case "blockinstance":
|
|
228
|
-
const blockElementOverrides = {};
|
|
229
|
-
for (let j = 0; j < e.blockInstanceElementOverridesLength(); j++) {
|
|
230
|
-
const override = e.blockInstanceElementOverrides(j);
|
|
231
|
-
if (override && override.elementId() && override.overrides()) {
|
|
232
|
-
blockElementOverrides[override.elementId()] = override.overrides();
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return Object.assign(Object.assign({}, baseElement), { type: elType, blockId: e.blockInstanceBlockId() || '', blockElementOverrides: Object.keys(blockElementOverrides).length > 0 ? blockElementOverrides : undefined });
|
|
236
|
-
default:
|
|
237
|
-
return null;
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
export const parseElementContentBase = (content, defaults) => {
|
|
241
|
-
var _a, _b;
|
|
242
|
-
if (!content)
|
|
243
|
-
return defaults;
|
|
244
|
-
return {
|
|
245
|
-
preference: content.preference(),
|
|
246
|
-
src: (_a = content.src()) !== null && _a !== void 0 ? _a : defaults.src,
|
|
247
|
-
visible: content.visible(),
|
|
248
|
-
opacity: content.opacity(),
|
|
249
|
-
tiling: parseTiling((_b = content.tiling()) !== null && _b !== void 0 ? _b : null)
|
|
250
|
-
};
|
|
251
|
-
};
|
|
252
|
-
const parseTiling = (tiling) => {
|
|
253
|
-
var _a, _b, _c;
|
|
254
|
-
if (!tiling)
|
|
255
|
-
return undefined;
|
|
256
|
-
const sizeInPercent = tiling.sizeInPercent();
|
|
257
|
-
const angle = tiling.angle();
|
|
258
|
-
// Ensure both sizeInPercent and angle are defined
|
|
259
|
-
if (sizeInPercent === undefined || angle === undefined) {
|
|
260
|
-
return undefined;
|
|
261
|
-
}
|
|
262
|
-
return {
|
|
263
|
-
sizeInPercent: sizeInPercent,
|
|
264
|
-
angle: angle,
|
|
265
|
-
spacing: (_a = tiling.spacing()) !== null && _a !== void 0 ? _a : undefined,
|
|
266
|
-
offsetX: (_b = tiling.offsetX()) !== null && _b !== void 0 ? _b : undefined,
|
|
267
|
-
offsetY: (_c = tiling.offsetY()) !== null && _c !== void 0 ? _c : undefined,
|
|
268
|
-
};
|
|
269
|
-
};
|
|
270
|
-
const parseStrokeLines = (strokeSides) => {
|
|
271
|
-
if (!strokeSides)
|
|
272
|
-
return undefined;
|
|
273
|
-
return {
|
|
274
|
-
preference: strokeSides.preference(),
|
|
275
|
-
values: strokeSides.valuesLength() > 0
|
|
276
|
-
? Array.from({ length: strokeSides.valuesLength() }, (_, i) => strokeSides.values(i)).filter((item) => item !== null)
|
|
277
|
-
: undefined
|
|
278
|
-
};
|
|
279
|
-
};
|
|
280
|
-
export const parseElementBinStroke = (stroke, elementScope) => {
|
|
281
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
282
|
-
if (!stroke) {
|
|
283
|
-
return Object.assign(Object.assign({}, DEFAULT_ELEMENT_PROPS.stroke), { width: getPrecisionValueFromRaw(DEFAULT_ELEMENT_PROPS.stroke.width.value, elementScope, elementScope) });
|
|
284
|
-
}
|
|
285
|
-
const widthValue = (_b = (_a = stroke.width) === null || _a === void 0 ? void 0 : _a.call(stroke)) !== null && _b !== void 0 ? _b : DEFAULT_ELEMENT_PROPS.stroke.width.value;
|
|
286
|
-
return {
|
|
287
|
-
content: parseElementContentBase((_c = stroke.content()) !== null && _c !== void 0 ? _c : null, DEFAULT_ELEMENT_PROPS.stroke.content),
|
|
288
|
-
width: getPrecisionValueFromRaw(widthValue, elementScope, elementScope),
|
|
289
|
-
style: {
|
|
290
|
-
preference: (_f = (_e = (_d = stroke.style()) === null || _d === void 0 ? void 0 : _d.preference) === null || _e === void 0 ? void 0 : _e.call(_d)) !== null && _f !== void 0 ? _f : DEFAULT_ELEMENT_PROPS.stroke.style.preference,
|
|
291
|
-
cap: (_j = (_h = (_g = stroke.style()) === null || _g === void 0 ? void 0 : _g.cap) === null || _h === void 0 ? void 0 : _h.call(_g)) !== null && _j !== void 0 ? _j : undefined,
|
|
292
|
-
join: (_m = (_l = (_k = stroke.style()) === null || _k === void 0 ? void 0 : _k.join) === null || _l === void 0 ? void 0 : _l.call(_k)) !== null && _m !== void 0 ? _m : undefined,
|
|
293
|
-
dash: Array.from({ length: ((_o = stroke.style()) === null || _o === void 0 ? void 0 : _o.dashLength()) || 0 }, (_, i) => { var _a; return (_a = stroke.style()) === null || _a === void 0 ? void 0 : _a.dash(i); }),
|
|
294
|
-
dashCap: (_r = (_q = (_p = stroke.style()) === null || _p === void 0 ? void 0 : _p.dashCap) === null || _q === void 0 ? void 0 : _q.call(_p)) !== null && _r !== void 0 ? _r : undefined,
|
|
295
|
-
miterLimit: (_u = (_t = (_s = stroke.style()) === null || _s === void 0 ? void 0 : _s.miterLimit) === null || _t === void 0 ? void 0 : _t.call(_s)) !== null && _u !== void 0 ? _u : undefined,
|
|
296
|
-
},
|
|
297
|
-
placement: (_w = (_v = stroke.placement) === null || _v === void 0 ? void 0 : _v.call(stroke)) !== null && _w !== void 0 ? _w : DEFAULT_ELEMENT_PROPS.stroke.placement,
|
|
298
|
-
strokeSides: parseStrokeLines((_x = stroke.strokeSides()) !== null && _x !== void 0 ? _x : null)
|
|
299
|
-
};
|
|
300
|
-
};
|
|
301
|
-
export const parseElementBinBackground = (background) => {
|
|
302
|
-
var _a;
|
|
303
|
-
if (!background) {
|
|
304
|
-
return DEFAULT_ELEMENT_PROPS.background;
|
|
305
|
-
}
|
|
306
|
-
return {
|
|
307
|
-
content: parseElementContentBase((_a = background.content()) !== null && _a !== void 0 ? _a : null, DEFAULT_ELEMENT_PROPS.background.content),
|
|
308
|
-
};
|
|
309
|
-
};
|
|
310
|
-
const parseImageCrop = (crop) => {
|
|
311
|
-
if (!crop)
|
|
312
|
-
return null;
|
|
313
|
-
return {
|
|
314
|
-
x: crop.x(),
|
|
315
|
-
y: crop.y(),
|
|
316
|
-
width: crop.width(),
|
|
317
|
-
height: crop.height(),
|
|
318
|
-
naturalWidth: crop.naturalWidth(),
|
|
319
|
-
naturalHeight: crop.naturalHeight()
|
|
320
|
-
};
|
|
321
|
-
};
|
|
322
|
-
const parseDucTableStyleProps = (styleProps, elementScope) => {
|
|
323
|
-
if (!styleProps)
|
|
324
|
-
return undefined;
|
|
325
|
-
const rawDashes = Array.from({ length: styleProps.borderDashesLength() }, (_, j) => styleProps.borderDashes(j));
|
|
326
|
-
const dashes = rawDashes.filter((d) => d !== null && d !== undefined);
|
|
327
|
-
const border = {
|
|
328
|
-
width: styleProps.borderWidth() ? getPrecisionValueFromRaw(styleProps.borderWidth(), elementScope, elementScope) : undefined,
|
|
329
|
-
dashes: dashes.length > 0 ? dashes : undefined,
|
|
330
|
-
color: styleProps.borderColor() || undefined,
|
|
331
|
-
};
|
|
332
|
-
const text = {
|
|
333
|
-
color: styleProps.textColor() || undefined,
|
|
334
|
-
size: styleProps.textSize() ? getPrecisionValueFromRaw(styleProps.textSize(), elementScope, elementScope) : undefined,
|
|
335
|
-
font: styleProps.textFont() || undefined,
|
|
336
|
-
align: styleProps.textAlign() || undefined,
|
|
337
|
-
};
|
|
338
|
-
return {
|
|
339
|
-
background: styleProps.backgroundColor() || undefined,
|
|
340
|
-
border: Object.values(border).some(val => val !== undefined) ? border : undefined,
|
|
341
|
-
text: Object.values(text).some(val => val !== undefined) ? text : undefined,
|
|
342
|
-
};
|
|
343
|
-
};
|
|
344
|
-
const parseDucTableColumns = (length, getter, elementScope) => {
|
|
345
|
-
const columns = {};
|
|
346
|
-
for (let j = 0; j < length; j++) {
|
|
347
|
-
const col = getter(j);
|
|
348
|
-
if (col && col.id()) {
|
|
349
|
-
columns[col.id()] = {
|
|
350
|
-
id: col.id(),
|
|
351
|
-
width: col.width() ? getPrecisionValueFromRaw(col.width(), elementScope, elementScope) : undefined,
|
|
352
|
-
style: parseDucTableStyleProps(col.style(), elementScope),
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
return columns;
|
|
357
|
-
};
|
|
358
|
-
const parseDucTableRows = (length, getter, elementScope) => {
|
|
359
|
-
const rows = {};
|
|
360
|
-
for (let j = 0; j < length; j++) {
|
|
361
|
-
const row = getter(j);
|
|
362
|
-
if (row && row.id()) {
|
|
363
|
-
rows[row.id()] = {
|
|
364
|
-
id: row.id(),
|
|
365
|
-
height: row.height() ? getPrecisionValueFromRaw(row.height(), elementScope, elementScope) : undefined,
|
|
366
|
-
style: parseDucTableStyleProps(row.style(), elementScope),
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
return rows;
|
|
371
|
-
};
|
|
372
|
-
const parseDucTableCells = (length, getter, elementScope) => {
|
|
373
|
-
const cells = {};
|
|
374
|
-
for (let j = 0; j < length; j++) {
|
|
375
|
-
const cell = getter(j);
|
|
376
|
-
if (cell && cell.rowId() && cell.columnId()) {
|
|
377
|
-
const key = `${cell.rowId()}:${cell.columnId()}`;
|
|
378
|
-
cells[key] = {
|
|
379
|
-
rowId: cell.rowId(),
|
|
380
|
-
columnId: cell.columnId(),
|
|
381
|
-
data: cell.data() || "",
|
|
382
|
-
style: parseDucTableStyleProps(cell.style(), elementScope),
|
|
383
|
-
};
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
return cells;
|
|
387
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { DucGroup as BinDucGroup } from 'ducjs/legacy/v1/duc';
|
|
2
|
-
import { DucGroup } from 'ducjs/legacy/v1/types/elements';
|
|
3
|
-
import { Scope } from 'ducjs/legacy/v1/types';
|
|
4
|
-
export declare const parseGroupFromBinary: (group: BinDucGroup, currentScope: Scope) => Partial<DucGroup> | null;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { parseElementBinBackground, parseElementBinStroke } from './parseElementFromBinary';
|
|
2
|
-
export const parseGroupFromBinary = (group, currentScope) => {
|
|
3
|
-
if (!group)
|
|
4
|
-
return null;
|
|
5
|
-
const id = group.id() || undefined;
|
|
6
|
-
const label = group.label() || undefined;
|
|
7
|
-
const description = group.description() || null;
|
|
8
|
-
const isCollapsed = group.isCollapsed();
|
|
9
|
-
const noPlot = group.noPlot() || undefined;
|
|
10
|
-
const locked = group.locked();
|
|
11
|
-
const isVisible = group.isVisible();
|
|
12
|
-
const opacity = group.opacity() || undefined;
|
|
13
|
-
const labelingColor = group.labelingColor() || undefined;
|
|
14
|
-
const clip = group.clip() || undefined;
|
|
15
|
-
// Parse stroke and background overrides
|
|
16
|
-
const strokeOverride = group.strokeOverride()
|
|
17
|
-
? parseElementBinStroke(group.strokeOverride(), currentScope)
|
|
18
|
-
: null;
|
|
19
|
-
const backgroundOverride = group.backgroundOverride()
|
|
20
|
-
? parseElementBinBackground(group.backgroundOverride())
|
|
21
|
-
: null;
|
|
22
|
-
return {
|
|
23
|
-
id,
|
|
24
|
-
label,
|
|
25
|
-
description,
|
|
26
|
-
isCollapsed,
|
|
27
|
-
noPlot,
|
|
28
|
-
locked,
|
|
29
|
-
isVisible,
|
|
30
|
-
opacity,
|
|
31
|
-
labelingColor,
|
|
32
|
-
strokeOverride,
|
|
33
|
-
backgroundOverride,
|
|
34
|
-
clip,
|
|
35
|
-
};
|
|
36
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const parseRendererStateFromBinary = (rendererState) => {
|
|
2
|
-
if (!rendererState) {
|
|
3
|
-
return { deletedElementIds: [] };
|
|
4
|
-
}
|
|
5
|
-
const deletedElementIds = [];
|
|
6
|
-
for (let i = 0; i < rendererState.deletedElementIdsLength(); i++) {
|
|
7
|
-
const id = rendererState.deletedElementIds(i);
|
|
8
|
-
if (id) {
|
|
9
|
-
deletedElementIds.push(id);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
deletedElementIds,
|
|
14
|
-
};
|
|
15
|
-
};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { DucBlock, DucElement, DucGroup } from 'ducjs/legacy/v1/types/elements';
|
|
2
|
-
import { BinaryFiles, RendererState, DucState } from 'ducjs/legacy/v1/types';
|
|
3
|
-
import { ExtendedAppStateRestorer } from 'ducjs/legacy/v1/utils/restore';
|
|
4
|
-
export declare const DUC_SCHEMA_VERSION: string;
|
|
5
|
-
export declare const serializeAsFlatBuffers: (elements: readonly DucElement[], ducState: Partial<DucState>, files: BinaryFiles, blocks: readonly DucBlock[], groups: readonly DucGroup[], rendererState?: RendererState, extendedAppStateRestorer?: ExtendedAppStateRestorer<DucState>) => Promise<Uint8Array>;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import * as flatbuffers from 'flatbuffers';
|
|
11
|
-
import { ExportedDataState, } from 'ducjs/legacy/v1/duc';
|
|
12
|
-
import { EXPORT_DATA_TYPES } from 'ducjs/legacy/v1/utils/constants';
|
|
13
|
-
import { serializeDucElement } from 'ducjs/legacy/v1/serialize/serializeElementFromDuc';
|
|
14
|
-
import { serializeAppState } from 'ducjs/legacy/v1/serialize/serializeAppStateFromDuc';
|
|
15
|
-
import { serializeBinaryFiles } from 'ducjs/legacy/v1/serialize/serializeBinaryFilesFromDuc';
|
|
16
|
-
import { restore, noopExtendedAppStateRestorer } from 'ducjs/legacy/v1/utils/restore';
|
|
17
|
-
import { serializeRendererState } from 'ducjs/legacy/v1/serialize/serializeRendererStateFromDuc';
|
|
18
|
-
import { serializeDucBlock } from 'ducjs/legacy/v1/serialize/serializeBlockFromDuc';
|
|
19
|
-
import { serializeDucGroup } from 'ducjs/legacy/v1/serialize/serializeGroupFromDuc';
|
|
20
|
-
export const DUC_SCHEMA_VERSION = process.env.DUC_SCHEMA_VERSION || "0.0.0";
|
|
21
|
-
export const serializeAsFlatBuffers = (elements_1, ducState_1, files_1, blocks_1, groups_1, rendererState_1, ...args_1) => __awaiter(void 0, [elements_1, ducState_1, files_1, blocks_1, groups_1, rendererState_1, ...args_1], void 0, function* (elements, ducState, files, blocks, groups, rendererState, extendedAppStateRestorer = noopExtendedAppStateRestorer) {
|
|
22
|
-
var _a;
|
|
23
|
-
const builder = new flatbuffers.Builder(1024);
|
|
24
|
-
const sanitized = restore({
|
|
25
|
-
elements,
|
|
26
|
-
appState: ducState,
|
|
27
|
-
files,
|
|
28
|
-
blocks,
|
|
29
|
-
groups,
|
|
30
|
-
rendererState,
|
|
31
|
-
}, null, // localExtendedAppState
|
|
32
|
-
null, // localElements
|
|
33
|
-
extendedAppStateRestorer, {
|
|
34
|
-
refreshDimensions: false,
|
|
35
|
-
syncInvalidIndices: (elements) => elements,
|
|
36
|
-
});
|
|
37
|
-
const typeOffset = builder.createString(EXPORT_DATA_TYPES.duc);
|
|
38
|
-
const sourceOffset = builder.createString((_a = window.location.origin) !== null && _a !== void 0 ? _a : "Unknown");
|
|
39
|
-
// Serialize elements
|
|
40
|
-
const elementOffsets = sanitized.elements.map((element) => {
|
|
41
|
-
return serializeDucElement(builder, element, Boolean(rendererState));
|
|
42
|
-
});
|
|
43
|
-
const elementsOffset = ExportedDataState.createElementsVector(builder, elementOffsets);
|
|
44
|
-
// Serialize appState
|
|
45
|
-
const appStateOffset = serializeAppState(builder, sanitized.appState, Boolean(rendererState));
|
|
46
|
-
// Serialize files
|
|
47
|
-
const binaryFilesOffset = serializeBinaryFiles(builder, sanitized.files);
|
|
48
|
-
// Serialize rendererState
|
|
49
|
-
const rendererStateOffset = rendererState
|
|
50
|
-
? serializeRendererState(builder, rendererState)
|
|
51
|
-
: null;
|
|
52
|
-
// Serialize blocks
|
|
53
|
-
const blocksOffset = sanitized.blocks.length > 0
|
|
54
|
-
? ExportedDataState.createBlocksVector(builder, sanitized.blocks.map(block => serializeDucBlock(builder, block, Boolean(rendererState))))
|
|
55
|
-
: null;
|
|
56
|
-
// Serialize groups
|
|
57
|
-
const groupsOffset = sanitized.groups.length > 0
|
|
58
|
-
? ExportedDataState.createGroupsVector(builder, sanitized.groups.map(group => serializeDucGroup(builder, group, Boolean(rendererState))))
|
|
59
|
-
: null;
|
|
60
|
-
ExportedDataState.startExportedDataState(builder);
|
|
61
|
-
ExportedDataState.addType(builder, typeOffset);
|
|
62
|
-
// For legacy compatibility, extract major version number from semantic version
|
|
63
|
-
const majorVersion = parseInt(DUC_SCHEMA_VERSION.split('.')[0]) || 0;
|
|
64
|
-
ExportedDataState.addVersionLegacy(builder, majorVersion);
|
|
65
|
-
ExportedDataState.addSource(builder, sourceOffset);
|
|
66
|
-
ExportedDataState.addElements(builder, elementsOffset);
|
|
67
|
-
ExportedDataState.addAppState(builder, appStateOffset);
|
|
68
|
-
ExportedDataState.addFiles(builder, binaryFilesOffset);
|
|
69
|
-
if (rendererStateOffset) {
|
|
70
|
-
ExportedDataState.addRendererState(builder, rendererStateOffset);
|
|
71
|
-
}
|
|
72
|
-
if (blocksOffset) {
|
|
73
|
-
ExportedDataState.addBlocks(builder, blocksOffset);
|
|
74
|
-
}
|
|
75
|
-
if (groupsOffset) {
|
|
76
|
-
ExportedDataState.addGroups(builder, groupsOffset);
|
|
77
|
-
}
|
|
78
|
-
const exportedDataStateOffset = ExportedDataState.endExportedDataState(builder);
|
|
79
|
-
builder.finish(exportedDataStateOffset, "DUC_");
|
|
80
|
-
return builder.asUint8Array();
|
|
81
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { PrecisionValue } from 'ducjs/legacy/v1/types';
|
|
2
|
-
/**
|
|
3
|
-
* Ensures that a given number is finite. If not, returns a default value.
|
|
4
|
-
* This is primarily for internal use within serialization helpers like getPrecisionValueField,
|
|
5
|
-
* or for values that are not expected to be pre-sanitized by the restore phase.
|
|
6
|
-
*/
|
|
7
|
-
declare const ensureFiniteNumber: (num: number | undefined, defaultValue?: number) => number;
|
|
8
|
-
/**
|
|
9
|
-
* Safely extracts the .value or .scoped field from a PrecisionValue object,
|
|
10
|
-
* ensuring the result is a finite number.
|
|
11
|
-
* @param pv The PrecisionValue object.
|
|
12
|
-
* @param scoped If true, uses pv.scoped; otherwise, uses pv.value.
|
|
13
|
-
* @param defaultValue The default value to return if pv is undefined or the extracted value is not finite.
|
|
14
|
-
* @returns A finite number.
|
|
15
|
-
*/
|
|
16
|
-
export declare const getPrecisionValueField: (pv: PrecisionValue | undefined, scoped: boolean, defaultValue?: number) => number;
|
|
17
|
-
export { ensureFiniteNumber };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ensures that a given number is finite. If not, returns a default value.
|
|
3
|
-
* This is primarily for internal use within serialization helpers like getPrecisionValueField,
|
|
4
|
-
* or for values that are not expected to be pre-sanitized by the restore phase.
|
|
5
|
-
*/
|
|
6
|
-
const ensureFiniteNumber = (num, defaultValue = 0) => {
|
|
7
|
-
if (typeof num === 'number' && Number.isFinite(num)) {
|
|
8
|
-
return num;
|
|
9
|
-
}
|
|
10
|
-
return defaultValue;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Safely extracts the .value or .scoped field from a PrecisionValue object,
|
|
14
|
-
* ensuring the result is a finite number.
|
|
15
|
-
* @param pv The PrecisionValue object.
|
|
16
|
-
* @param scoped If true, uses pv.scoped; otherwise, uses pv.value.
|
|
17
|
-
* @param defaultValue The default value to return if pv is undefined or the extracted value is not finite.
|
|
18
|
-
* @returns A finite number.
|
|
19
|
-
*/
|
|
20
|
-
export const getPrecisionValueField = (pv, scoped, defaultValue = 0) => {
|
|
21
|
-
if (!pv) {
|
|
22
|
-
return defaultValue;
|
|
23
|
-
}
|
|
24
|
-
const val = scoped ? pv.scoped : pv.value;
|
|
25
|
-
return ensureFiniteNumber(val, defaultValue);
|
|
26
|
-
};
|
|
27
|
-
export { ensureFiniteNumber };
|