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.
Files changed (248) hide show
  1. package/README.md +1 -1
  2. package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +0 -3
  3. package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +0 -8
  4. package/dist/flatbuffers/duc/duc-leader-style.d.ts +0 -3
  5. package/dist/flatbuffers/duc/duc-leader-style.js +0 -8
  6. package/dist/flatbuffers/duc/duc-plot-style.d.ts +1 -4
  7. package/dist/flatbuffers/duc/duc-plot-style.js +1 -10
  8. package/dist/flatbuffers/duc/duc-table-style.d.ts +0 -3
  9. package/dist/flatbuffers/duc/duc-table-style.js +0 -8
  10. package/dist/flatbuffers/duc/duc-text-style.d.ts +0 -3
  11. package/dist/flatbuffers/duc/duc-text-style.js +0 -8
  12. package/dist/flatbuffers/duc/duc-viewport-style.d.ts +1 -4
  13. package/dist/flatbuffers/duc/duc-viewport-style.js +1 -10
  14. package/dist/flatbuffers/duc/duc-xray-style.d.ts +1 -4
  15. package/dist/flatbuffers/duc/duc-xray-style.js +1 -10
  16. package/dist/flatbuffers/duc/exported-data-state.d.ts +3 -0
  17. package/dist/flatbuffers/duc/exported-data-state.js +8 -1
  18. package/dist/index.d.ts +0 -1
  19. package/dist/index.js +0 -1
  20. package/dist/parse.d.ts +5 -5
  21. package/dist/parse.js +57 -20
  22. package/dist/restore/restoreDataState.d.ts +14 -10
  23. package/dist/restore/restoreDataState.js +29 -22
  24. package/dist/restore/restoreElements.d.ts +2 -2
  25. package/dist/restore/restoreElements.js +21 -14
  26. package/dist/restore/restoreStandards.d.ts +2 -2
  27. package/dist/restore/restoreStandards.js +4 -4
  28. package/dist/serialize.d.ts +3 -2
  29. package/dist/serialize.js +14 -27
  30. package/dist/technical/measurements.d.ts +2 -2
  31. package/dist/technical/measurements.js +1 -1
  32. package/dist/technical/scopes.d.ts +4 -4
  33. package/dist/technical/scopes.js +1 -1
  34. package/dist/technical/standards.d.ts +4 -4
  35. package/dist/types/elements/index.d.ts +13 -13
  36. package/dist/types/elements/typeChecks.d.ts +5 -4
  37. package/dist/types/elements/typeChecks.js +5 -2
  38. package/dist/types/geometryTypes.d.ts +2 -2
  39. package/dist/types/index.d.ts +11 -8
  40. package/dist/types/index.js +1 -0
  41. package/dist/types/typeChecks.d.ts +5 -0
  42. package/dist/types/typeChecks.js +10 -0
  43. package/dist/utils/bounds.d.ts +3 -3
  44. package/dist/utils/bounds.js +3 -3
  45. package/dist/utils/constants.d.ts +5 -3
  46. package/dist/utils/constants.js +3 -5
  47. package/dist/utils/elements/frameElement.d.ts +2 -1
  48. package/dist/utils/elements/frameElement.js +13 -1
  49. package/dist/utils/elements/freedrawElement.d.ts +1 -1
  50. package/dist/utils/elements/freedrawElement.js +1 -1
  51. package/dist/utils/elements/index.d.ts +4 -4
  52. package/dist/utils/elements/index.js +17 -21
  53. package/dist/utils/elements/linearElement.d.ts +6 -6
  54. package/dist/utils/elements/linearElement.js +4 -4
  55. package/dist/utils/elements/newElement.d.ts +3 -3
  56. package/dist/utils/elements/newElement.js +26 -26
  57. package/dist/utils/elements/textElement.d.ts +7 -7
  58. package/dist/utils/elements/textElement.js +11 -9
  59. package/dist/utils/elements/viewportElement.d.ts +1 -1
  60. package/dist/utils/functionCodec.js +2 -2
  61. package/dist/utils/index.d.ts +1 -0
  62. package/dist/utils/index.js +1 -0
  63. package/dist/utils/math/algebra/gadirections.d.ts +1 -1
  64. package/dist/utils/math/algebra/gadirections.js +1 -1
  65. package/dist/utils/math/algebra/galines.d.ts +1 -1
  66. package/dist/utils/math/algebra/galines.js +1 -1
  67. package/dist/utils/math/algebra/gapoints.d.ts +1 -1
  68. package/dist/utils/math/algebra/gapoints.js +3 -3
  69. package/dist/utils/math/algebra/gatransforms.d.ts +1 -1
  70. package/dist/utils/math/algebra/gatransforms.js +2 -2
  71. package/dist/utils/math/bbox.d.ts +2 -2
  72. package/dist/utils/math/geometry.d.ts +3 -3
  73. package/dist/utils/math/geometry.js +2 -2
  74. package/dist/utils/math/index.d.ts +6 -6
  75. package/dist/utils/math/index.js +3 -3
  76. package/dist/utils/normalize.d.ts +2 -2
  77. package/dist/utils/normalize.js +2 -2
  78. package/dist/utils/shape.d.ts +2 -2
  79. package/dist/utils/shape.js +8 -8
  80. package/dist/utils/state/grid.d.ts +1 -1
  81. package/dist/utils/state/grid.js +3 -3
  82. package/dist/utils/state/index.d.ts +1 -1
  83. package/dist/utils/state/index.js +7 -7
  84. package/dist/utils/traverse.d.ts +22 -0
  85. package/dist/utils/traverse.js +87 -0
  86. package/dist/utils/version.d.ts +1 -1
  87. package/dist/utils/version.js +1 -1
  88. package/package.json +4 -2
  89. package/dist/legacy/index.d.ts +0 -1
  90. package/dist/legacy/index.js +0 -1
  91. package/dist/legacy/v1/duc/app-state.d.ts +0 -124
  92. package/dist/legacy/v1/duc/app-state.js +0 -388
  93. package/dist/legacy/v1/duc/binary-file-data.d.ts +0 -27
  94. package/dist/legacy/v1/duc/binary-file-data.js +0 -90
  95. package/dist/legacy/v1/duc/binary-files-entry.d.ts +0 -16
  96. package/dist/legacy/v1/duc/binary-files-entry.js +0 -43
  97. package/dist/legacy/v1/duc/binary-files.d.ts +0 -17
  98. package/dist/legacy/v1/duc/binary-files.js +0 -55
  99. package/dist/legacy/v1/duc/binding-point.d.ts +0 -15
  100. package/dist/legacy/v1/duc/binding-point.js +0 -48
  101. package/dist/legacy/v1/duc/bound-element.d.ts +0 -17
  102. package/dist/legacy/v1/duc/bound-element.js +0 -48
  103. package/dist/legacy/v1/duc/duc-block-attribute-details.d.ts +0 -22
  104. package/dist/legacy/v1/duc/duc-block-attribute-details.js +0 -57
  105. package/dist/legacy/v1/duc/duc-block-attribute.d.ts +0 -16
  106. package/dist/legacy/v1/duc/duc-block-attribute.js +0 -43
  107. package/dist/legacy/v1/duc/duc-block-instance-element-override.d.ts +0 -17
  108. package/dist/legacy/v1/duc/duc-block-instance-element-override.js +0 -48
  109. package/dist/legacy/v1/duc/duc-block.d.ts +0 -34
  110. package/dist/legacy/v1/duc/duc-block.js +0 -110
  111. package/dist/legacy/v1/duc/duc-element.d.ts +0 -273
  112. package/dist/legacy/v1/duc/duc-element.js +0 -865
  113. package/dist/legacy/v1/duc/duc-group.d.ts +0 -40
  114. package/dist/legacy/v1/duc/duc-group.js +0 -114
  115. package/dist/legacy/v1/duc/duc-line-reference.d.ts +0 -15
  116. package/dist/legacy/v1/duc/duc-line-reference.js +0 -43
  117. package/dist/legacy/v1/duc/duc-line.d.ts +0 -15
  118. package/dist/legacy/v1/duc/duc-line.js +0 -43
  119. package/dist/legacy/v1/duc/duc-path.d.ts +0 -26
  120. package/dist/legacy/v1/duc/duc-path.js +0 -69
  121. package/dist/legacy/v1/duc/duc-table-cell.d.ts +0 -22
  122. package/dist/legacy/v1/duc/duc-table-cell.js +0 -57
  123. package/dist/legacy/v1/duc/duc-table-column.d.ts +0 -18
  124. package/dist/legacy/v1/duc/duc-table-column.js +0 -50
  125. package/dist/legacy/v1/duc/duc-table-row.d.ts +0 -18
  126. package/dist/legacy/v1/duc/duc-table-row.js +0 -50
  127. package/dist/legacy/v1/duc/duc-table-style-props.d.ts +0 -39
  128. package/dist/legacy/v1/duc/duc-table-style-props.js +0 -114
  129. package/dist/legacy/v1/duc/duc-table-style.d.ts +0 -14
  130. package/dist/legacy/v1/duc/duc-table-style.js +0 -41
  131. package/dist/legacy/v1/duc/element-background.d.ts +0 -14
  132. package/dist/legacy/v1/duc/element-background.js +0 -41
  133. package/dist/legacy/v1/duc/element-content-base.d.ts +0 -22
  134. package/dist/legacy/v1/duc/element-content-base.js +0 -64
  135. package/dist/legacy/v1/duc/element-stroke.d.ts +0 -23
  136. package/dist/legacy/v1/duc/element-stroke.js +0 -66
  137. package/dist/legacy/v1/duc/exported-data-state.d.ts +0 -51
  138. package/dist/legacy/v1/duc/exported-data-state.js +0 -155
  139. package/dist/legacy/v1/duc/image-crop.d.ts +0 -23
  140. package/dist/legacy/v1/duc/image-crop.js +0 -80
  141. package/dist/legacy/v1/duc/linear-element-editor.d.ts +0 -44
  142. package/dist/legacy/v1/duc/linear-element-editor.js +0 -119
  143. package/dist/legacy/v1/duc/point-binding.d.ts +0 -25
  144. package/dist/legacy/v1/duc/point-binding.js +0 -72
  145. package/dist/legacy/v1/duc/point.d.ts +0 -20
  146. package/dist/legacy/v1/duc/point.js +0 -63
  147. package/dist/legacy/v1/duc/pointer-down-state.d.ts +0 -32
  148. package/dist/legacy/v1/duc/pointer-down-state.js +0 -90
  149. package/dist/legacy/v1/duc/renderer-state.d.ts +0 -17
  150. package/dist/legacy/v1/duc/renderer-state.js +0 -54
  151. package/dist/legacy/v1/duc/segment-midpoint-state.d.ts +0 -18
  152. package/dist/legacy/v1/duc/segment-midpoint-state.js +0 -57
  153. package/dist/legacy/v1/duc/simple-point.d.ts +0 -15
  154. package/dist/legacy/v1/duc/simple-point.js +0 -48
  155. package/dist/legacy/v1/duc/stroke-sides.d.ts +0 -23
  156. package/dist/legacy/v1/duc/stroke-sides.js +0 -66
  157. package/dist/legacy/v1/duc/stroke-style.d.ts +0 -31
  158. package/dist/legacy/v1/duc/stroke-style.js +0 -102
  159. package/dist/legacy/v1/duc/tiling-properties.d.ts +0 -21
  160. package/dist/legacy/v1/duc/tiling-properties.js +0 -75
  161. package/dist/legacy/v1/duc.d.ts +0 -35
  162. package/dist/legacy/v1/duc.js +0 -37
  163. package/dist/legacy/v1/index.d.ts +0 -1
  164. package/dist/legacy/v1/index.js +0 -1
  165. package/dist/legacy/v1/parse/index.d.ts +0 -67
  166. package/dist/legacy/v1/parse/index.js +0 -101
  167. package/dist/legacy/v1/parse/parseAppStateFromBinary.d.ts +0 -3
  168. package/dist/legacy/v1/parse/parseAppStateFromBinary.js +0 -139
  169. package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.d.ts +0 -4
  170. package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.js +0 -32
  171. package/dist/legacy/v1/parse/parseBlockFromBinary.d.ts +0 -3
  172. package/dist/legacy/v1/parse/parseBlockFromBinary.js +0 -70
  173. package/dist/legacy/v1/parse/parseElementFromBinary.d.ts +0 -8
  174. package/dist/legacy/v1/parse/parseElementFromBinary.js +0 -387
  175. package/dist/legacy/v1/parse/parseGroupFromBinary.d.ts +0 -4
  176. package/dist/legacy/v1/parse/parseGroupFromBinary.js +0 -36
  177. package/dist/legacy/v1/parse/parseRendererStateFromBinary.d.ts +0 -4
  178. package/dist/legacy/v1/parse/parseRendererStateFromBinary.js +0 -15
  179. package/dist/legacy/v1/serialize/index.d.ts +0 -5
  180. package/dist/legacy/v1/serialize/index.js +0 -81
  181. package/dist/legacy/v1/serialize/serializationUtils.d.ts +0 -17
  182. package/dist/legacy/v1/serialize/serializationUtils.js +0 -27
  183. package/dist/legacy/v1/serialize/serializeAppStateFromDuc.d.ts +0 -4
  184. package/dist/legacy/v1/serialize/serializeAppStateFromDuc.js +0 -145
  185. package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.d.ts +0 -4
  186. package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.js +0 -46
  187. package/dist/legacy/v1/serialize/serializeBlockFromDuc.d.ts +0 -3
  188. package/dist/legacy/v1/serialize/serializeBlockFromDuc.js +0 -60
  189. package/dist/legacy/v1/serialize/serializeElementFromDuc.d.ts +0 -8
  190. package/dist/legacy/v1/serialize/serializeElementFromDuc.js +0 -435
  191. package/dist/legacy/v1/serialize/serializeGroupFromDuc.d.ts +0 -3
  192. package/dist/legacy/v1/serialize/serializeGroupFromDuc.js +0 -37
  193. package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.d.ts +0 -4
  194. package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.js +0 -7
  195. package/dist/legacy/v1/types/elements/index.d.ts +0 -480
  196. package/dist/legacy/v1/types/elements/index.js +0 -1
  197. package/dist/legacy/v1/types/elements/typeChecks.d.ts +0 -40
  198. package/dist/legacy/v1/types/elements/typeChecks.js +0 -179
  199. package/dist/legacy/v1/types/geometryTypes.d.ts +0 -78
  200. package/dist/legacy/v1/types/geometryTypes.js +0 -1
  201. package/dist/legacy/v1/types/index.d.ts +0 -496
  202. package/dist/legacy/v1/types/index.js +0 -1
  203. package/dist/legacy/v1/types/utility-types.d.ts +0 -31
  204. package/dist/legacy/v1/types/utility-types.js +0 -1
  205. package/dist/legacy/v1/utils/bounds.d.ts +0 -76
  206. package/dist/legacy/v1/utils/bounds.js +0 -415
  207. package/dist/legacy/v1/utils/constants.d.ts +0 -370
  208. package/dist/legacy/v1/utils/constants.js +0 -571
  209. package/dist/legacy/v1/utils/elements/index.d.ts +0 -26
  210. package/dist/legacy/v1/utils/elements/index.js +0 -108
  211. package/dist/legacy/v1/utils/elements/linearElement.d.ts +0 -133
  212. package/dist/legacy/v1/utils/elements/linearElement.js +0 -544
  213. package/dist/legacy/v1/utils/elements/textElement.d.ts +0 -89
  214. package/dist/legacy/v1/utils/elements/textElement.js +0 -563
  215. package/dist/legacy/v1/utils/index.d.ts +0 -26
  216. package/dist/legacy/v1/utils/index.js +0 -40
  217. package/dist/legacy/v1/utils/math/algebra/ga.d.ts +0 -63
  218. package/dist/legacy/v1/utils/math/algebra/ga.js +0 -268
  219. package/dist/legacy/v1/utils/math/algebra/gadirections.d.ts +0 -9
  220. package/dist/legacy/v1/utils/math/algebra/gadirections.js +0 -18
  221. package/dist/legacy/v1/utils/math/algebra/galines.d.ts +0 -23
  222. package/dist/legacy/v1/utils/math/algebra/galines.js +0 -32
  223. package/dist/legacy/v1/utils/math/algebra/gapoints.d.ts +0 -8
  224. package/dist/legacy/v1/utils/math/algebra/gapoints.js +0 -30
  225. package/dist/legacy/v1/utils/math/algebra/gatransforms.d.ts +0 -10
  226. package/dist/legacy/v1/utils/math/algebra/gatransforms.js +0 -23
  227. package/dist/legacy/v1/utils/math/bbox.d.ts +0 -10
  228. package/dist/legacy/v1/utils/math/bbox.js +0 -42
  229. package/dist/legacy/v1/utils/math/geometry.d.ts +0 -102
  230. package/dist/legacy/v1/utils/math/geometry.js +0 -790
  231. package/dist/legacy/v1/utils/math/index.d.ts +0 -309
  232. package/dist/legacy/v1/utils/math/index.js +0 -1140
  233. package/dist/legacy/v1/utils/math/random.d.ts +0 -4
  234. package/dist/legacy/v1/utils/math/random.js +0 -25
  235. package/dist/legacy/v1/utils/measurements.d.ts +0 -33
  236. package/dist/legacy/v1/utils/measurements.js +0 -65
  237. package/dist/legacy/v1/utils/normalize.d.ts +0 -14
  238. package/dist/legacy/v1/utils/normalize.js +0 -49
  239. package/dist/legacy/v1/utils/restore.d.ts +0 -197
  240. package/dist/legacy/v1/utils/restore.js +0 -1255
  241. package/dist/legacy/v1/utils/scopes.d.ts +0 -260
  242. package/dist/legacy/v1/utils/scopes.js +0 -661
  243. package/dist/legacy/v1/utils/standards.d.ts +0 -12
  244. package/dist/legacy/v1/utils/standards.js +0 -10
  245. package/dist/legacy/v1/utils/state/index.d.ts +0 -2
  246. package/dist/legacy/v1/utils/state/index.js +0 -68
  247. package/dist/legacy/v1/utils/url.d.ts +0 -8
  248. 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,4 +0,0 @@
1
- import { RendererState } from 'ducjs/legacy/v1/duc';
2
- export declare const parseRendererStateFromBinary: (rendererState: RendererState | null) => {
3
- deletedElementIds: string[];
4
- };
@@ -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 };
@@ -1,4 +0,0 @@
1
- import * as flatbuffers from 'flatbuffers';
2
- import { DucState } from 'ducjs/legacy/v1/types';
3
- declare const serializeAppState: (builder: flatbuffers.Builder, appState: Partial<DucState>, forRenderer: boolean) => flatbuffers.Offset;
4
- export { serializeAppState };