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,101 +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
- var __rest = (this && this.__rest) || function (s, e) {
11
- var t = {};
12
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
- t[p] = s[p];
14
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
- t[p[i]] = s[p[i]];
18
- }
19
- return t;
20
- };
21
- import * as flatbuffers from 'flatbuffers';
22
- import { restore } from 'ducjs/legacy/v1/utils/restore';
23
- import { ExportedDataState } from 'ducjs/legacy/v1/duc';
24
- import { parseAppStateFromBinary } from 'ducjs/legacy/v1/parse/parseAppStateFromBinary';
25
- import { parseBinaryFilesFromBinary } from 'ducjs/legacy/v1/parse/parseBinaryFilesFromBinary';
26
- import { parseElementFromBinary } from 'ducjs/legacy/v1/parse/parseElementFromBinary';
27
- import { parseRendererStateFromBinary } from 'ducjs/legacy/v1/parse/parseRendererStateFromBinary';
28
- import { parseBlockFromBinary } from 'ducjs/legacy/v1/parse/parseBlockFromBinary';
29
- import { parseGroupFromBinary } from 'ducjs/legacy/v1/parse/parseGroupFromBinary';
30
- export const parseDucFlatBuffers = (blob_1, ...args_1) => __awaiter(void 0, [blob_1, ...args_1], void 0, function* (blob, fileHandle = null) {
31
- const arrayBuffer = yield blob.arrayBuffer();
32
- const byteBuffer = new flatbuffers.ByteBuffer(new Uint8Array(arrayBuffer));
33
- const data = ExportedDataState.getRootAsExportedDataState(byteBuffer);
34
- const version = data.versionLegacy();
35
- // Parse elements
36
- const elements = [];
37
- for (let i = 0; i < data.elementsLength(); i++) {
38
- const e = data.elements(i);
39
- if (e) {
40
- const element = parseElementFromBinary(e, version);
41
- if (element) {
42
- elements.push(element);
43
- }
44
- }
45
- }
46
- // Parse appState
47
- const appState = data.appState();
48
- const parsedAppState = parseAppStateFromBinary(appState, version);
49
- // Parse files
50
- const binaryFiles = data.files();
51
- const parsedFiles = parseBinaryFilesFromBinary(binaryFiles);
52
- // Parse rendererState
53
- const rendererState = data.rendererState();
54
- const parsedRendererState = parseRendererStateFromBinary(rendererState);
55
- // Parse blocks
56
- const blocks = [];
57
- for (let i = 0; i < data.blocksLength(); i++) {
58
- const block = data.blocks(i);
59
- if (block) {
60
- const parsedBlock = parseBlockFromBinary(block, version);
61
- if (parsedBlock) {
62
- blocks.push(parsedBlock);
63
- }
64
- }
65
- }
66
- // Parse groups
67
- const groups = [];
68
- for (let i = 0; i < data.groupsLength(); i++) {
69
- const group = data.groups(i);
70
- if (group && parsedAppState.scope) {
71
- const parsedGroup = parseGroupFromBinary(group, parsedAppState.scope);
72
- if (parsedGroup) {
73
- groups.push(parsedGroup);
74
- }
75
- }
76
- }
77
- const customExtendedAppStateRestorer = (extendedAppState, localExtendedAppState, restoredDucState) => {
78
- return Object.assign(Object.assign({}, restoredDucState), { fileHandle: fileHandle || (blob && 'handle' in blob ? blob.handle : null) });
79
- };
80
- const sanitized = restore({
81
- elements: elements,
82
- appState: parsedAppState,
83
- files: parsedFiles,
84
- blocks,
85
- groups,
86
- rendererState: parsedRendererState,
87
- }, undefined, undefined, customExtendedAppStateRestorer, {
88
- repairBindings: true,
89
- refreshDimensions: false,
90
- syncInvalidIndices: (elements) => elements,
91
- });
92
- const cleanAppState = __rest(sanitized.appState, []);
93
- return {
94
- elements: sanitized.elements,
95
- appState: cleanAppState,
96
- files: sanitized.files,
97
- blocks: sanitized.blocks,
98
- groups: sanitized.groups,
99
- rendererState: parsedRendererState,
100
- };
101
- });
@@ -1,3 +0,0 @@
1
- import { AppState as BinAppState } from 'ducjs/legacy/v1/duc';
2
- import { DucState } from 'ducjs/legacy/v1/types';
3
- export declare const parseAppStateFromBinary: (appStateBin: BinAppState | null, v: number) => Partial<DucState>;
@@ -1,139 +0,0 @@
1
- import { parseElementBinBackground, parseElementBinStroke, parsePoint } from 'ducjs/legacy/v1/parse/parseElementFromBinary';
2
- import { getPrecisionValueFromRaw, NEUTRAL_SCOPE } from 'ducjs/legacy/v1/utils/scopes';
3
- import { HANDLE_TYPE } from 'ducjs/legacy/v1/utils/constants';
4
- export const parseAppStateFromBinary = (appStateBin, v) => {
5
- var _a;
6
- if (!appStateBin)
7
- return {};
8
- const forceNeutralScope = v <= 5;
9
- let readScope = appStateBin.scope();
10
- const scope = forceNeutralScope ? NEUTRAL_SCOPE : (readScope || NEUTRAL_SCOPE);
11
- let readMainScope = appStateBin.mainScope();
12
- const mainScope = forceNeutralScope ? NEUTRAL_SCOPE : (readMainScope || NEUTRAL_SCOPE);
13
- // Parse LinearElementEditor
14
- let editingLinearElement = null;
15
- if (appStateBin.editingLinearElement()) {
16
- const editor = appStateBin.editingLinearElement();
17
- // Parse selected points indices
18
- const selectedPointsIndices = Array.from({ length: editor.selectedPointsIndicesLength() })
19
- .map((_, i) => editor.selectedPointsIndices(i));
20
- // Parse pointer down state
21
- let pointerDownState = undefined;
22
- if (editor.pointerDownState()) {
23
- const pds = editor.pointerDownState();
24
- const handleType = pds.handleType();
25
- pointerDownState = {
26
- prevSelectedPointsIndices: Array.from({ length: pds.prevSelectedPointsIndicesLength() })
27
- .map((_, i) => pds.prevSelectedPointsIndices(i)),
28
- // prevSelectedHandles: Array.from({ length: pds.prevSelectedHandlesLength() })
29
- // .map((_, i) => pds.prevSelectedHandles(i)),
30
- prevSelectedHandles: null,
31
- lastClickedPoint: pds.lastClickedPoint(),
32
- lastClickedIsEndPoint: pds.lastClickedIsEndPoint(),
33
- origin: pds.origin() ? {
34
- x: pds.origin().x(),
35
- y: pds.origin().y(),
36
- } : undefined,
37
- segmentMidpoint: pds.segmentMidpoint() ? {
38
- value: pds.segmentMidpoint().value() ?
39
- parsePoint(pds.segmentMidpoint().value(), scope) :
40
- undefined,
41
- index: pds.segmentMidpoint().index(),
42
- added: pds.segmentMidpoint().added(),
43
- } : undefined,
44
- handleType: HANDLE_TYPE.HANDLE_IN === handleType ? "handleIn" : "handleOut",
45
- handleInfo: null,
46
- };
47
- }
48
- // Create LinearElementEditor with all required properties
49
- editingLinearElement = {
50
- elementId: editor.elementId(),
51
- selectedPointsIndices,
52
- pointerDownState,
53
- isDragging: editor.isDragging(),
54
- wasDragging: false,
55
- lastUncommittedPoint: editor.lastUncommittedPoint() ?
56
- parsePoint(editor.lastUncommittedPoint(), scope) :
57
- undefined,
58
- pointerOffset: editor.pointerOffset() ? {
59
- x: editor.pointerOffset().x(),
60
- y: editor.pointerOffset().y(),
61
- } : { x: 0, y: 0 },
62
- startBindingElement: editor.startBindingElement() || undefined,
63
- endBindingElement: editor.endBindingElement() || undefined,
64
- hoverPointIndex: editor.hoverPointIndex(),
65
- // selectedHandles: editor.selectedHandles() ?
66
- // editor.selectedHandles()!.map(handle => ({
67
- // pointIndex: handle.pointIndex(),
68
- // handleType: handle.handleType() as LinearElementEditor["pointerDownState"]["handleType"],
69
- // })) :
70
- // null,
71
- // hoveredHandle: editor.hoveredHandle() ?
72
- // {
73
- // pointIndex: editor.hoveredHandle()!.pointIndex(),
74
- // handleType: editor.hoveredHandle()!.handleType() as LinearElementEditor["pointerDownState"]["handleType"],
75
- // } :
76
- // null,
77
- selectedHandles: null,
78
- hoveredHandle: null,
79
- segmentMidPointHoveredCoords: editor.segmentMidPointHoveredCoords() ?
80
- parsePoint(editor.segmentMidPointHoveredCoords(), scope) :
81
- undefined,
82
- _dragCache: null,
83
- shouldStartNewChain: false,
84
- addingPointToExistingElement: false,
85
- lastClosedPathPointIndex: null,
86
- elementScope: scope,
87
- pointsCoincidentWithExisting: new Map(), // Initialize coincidence tracking
88
- };
89
- }
90
- return {
91
- name: appStateBin.name(),
92
- zoom: {
93
- value: appStateBin.zoom(),
94
- }, // So that we don't have to parse the stateless values, this is handled on restore.ts
95
- selectedElementIds: Object.fromEntries(Array.from({ length: appStateBin.selectedElementIdsLength() }, (_, i) => [
96
- appStateBin.selectedElementIds(i),
97
- true,
98
- ])),
99
- elementsPendingErasure: new Set(Array.from({ length: appStateBin.elementsPendingErasureLength() }, (_, i) => appStateBin.elementsPendingErasure(i))),
100
- gridSize: appStateBin.gridSize(),
101
- gridStep: appStateBin.gridStep(),
102
- scrollX: {
103
- value: appStateBin.scrollX(),
104
- }, // So that we don't have to parse the stateless values, this is handled on restore.ts
105
- scrollY: {
106
- value: appStateBin.scrollY(),
107
- }, // So that we don't have to parse the stateless values, this is handled on restore.ts
108
- scrolledOutside: appStateBin.scrolledOutside(),
109
- scope,
110
- mainScope,
111
- standard: (_a = appStateBin.standard()) !== null && _a !== void 0 ? _a : undefined,
112
- currentItemStroke: parseElementBinStroke(appStateBin.currentItemStroke(), scope),
113
- currentItemBackground: parseElementBinBackground(appStateBin.currentItemBackground()),
114
- currentItemFontFamily: Number(appStateBin.currentItemFontFamilyV2()),
115
- currentItemRoundness: getPrecisionValueFromRaw(appStateBin.currentItemRoundnessV3(), scope, scope),
116
- currentItemFontSize: getPrecisionValueFromRaw(appStateBin.currentItemFontSizeV3(), scope, scope),
117
- currentItemTextAlign: appStateBin.currentItemTextAlignV3(),
118
- currentItemStartLineHead: appStateBin.currentItemStartLineHead(),
119
- currentItemEndLineHead: appStateBin.currentItemEndLineHead(),
120
- viewBackgroundColor: appStateBin.viewBackgroundColor() || undefined,
121
- scaleRatioLocked: appStateBin.scaleRatioLocked(),
122
- displayAllPointDistances: appStateBin.displayAllPointDistances(),
123
- displayDistanceOnDrawing: appStateBin.displayDistanceOnDrawing(),
124
- displayAllPointCoordinates: appStateBin.displayAllPointCoordinates(),
125
- displayAllPointInfoSelected: appStateBin.displayAllPointInfoSelected(),
126
- displayRootAxis: appStateBin.displayRootAxis(),
127
- coordDecimalPlaces: appStateBin.coordDecimalPlacesV3(),
128
- scopeExponentThreshold: appStateBin.scopeExponentThreshold(),
129
- lineBendingMode: appStateBin.lineBendingMode(),
130
- antiAliasing: appStateBin.antiAliasing(),
131
- vSync: appStateBin.vSync(),
132
- debugRendering: appStateBin.debugRendering(),
133
- zoomStep: appStateBin.zoomStep(),
134
- // hoveredElementId: appStateBin.hoveredElementId() || undefined,
135
- // suggestedBindingElementId: appStateBin.suggestedBindingElementId() || undefined,
136
- isBindingEnabled: appStateBin.isBindingEnabled(),
137
- editingLinearElement: v <= 5 ? undefined : editingLinearElement,
138
- };
139
- };
@@ -1,4 +0,0 @@
1
- import { BinaryFiles as BinBinaryFiles } from 'ducjs/legacy/v1/duc';
2
- import { BinaryFiles } from 'ducjs/legacy/v1/types';
3
- export declare const uint8ArrayToDataURL: (uint8Array: Uint8Array, mimeType: string) => string;
4
- export declare const parseBinaryFilesFromBinary: (binaryFiles: BinBinaryFiles | null) => BinaryFiles;
@@ -1,32 +0,0 @@
1
- // Helper function to convert Uint8Array to DataURL
2
- export const uint8ArrayToDataURL = (uint8Array, mimeType) => {
3
- const binaryString = Array.from(uint8Array)
4
- .map(byte => String.fromCharCode(byte))
5
- .join('');
6
- const base64 = btoa(binaryString);
7
- return `data:${mimeType};base64,${base64}`;
8
- };
9
- export const parseBinaryFilesFromBinary = (binaryFiles) => {
10
- if (!binaryFiles)
11
- return {};
12
- const files = {};
13
- for (let i = 0; i < binaryFiles.entriesLength(); i++) {
14
- const entry = binaryFiles.entries(i);
15
- if (entry === null)
16
- continue;
17
- const key = entry.key();
18
- const fileData = entry.value();
19
- if (key && fileData) {
20
- const mimeType = fileData.mimeType() || 'application/octet-stream';
21
- const dataArray = fileData.dataArray() || new Uint8Array();
22
- files[key] = {
23
- mimeType,
24
- id: fileData.id() || '',
25
- dataURL: uint8ArrayToDataURL(dataArray, mimeType), // Convert Uint8Array back to dataURL
26
- created: Number(fileData.created()),
27
- lastRetrieved: Number(fileData.lastRetrieved()),
28
- };
29
- }
30
- }
31
- return files;
32
- };
@@ -1,3 +0,0 @@
1
- import { DucBlock as BinDucBlock } from 'ducjs/legacy/v1/duc';
2
- import { DucBlock } from 'ducjs/legacy/v1/types/elements';
3
- export declare const parseBlockFromBinary: (block: BinDucBlock, version: number) => Partial<DucBlock> | null;
@@ -1,70 +0,0 @@
1
- import { getPrecisionValueFromRaw, NEUTRAL_SCOPE } from 'ducjs/legacy/v1/utils/scopes';
2
- import { parseElementFromBinary } from './parseElementFromBinary';
3
- export const parseBlockFromBinary = (block, version) => {
4
- if (!block)
5
- return null;
6
- const id = block.id() || undefined;
7
- const label = block.label() || undefined;
8
- const description = block.description() || undefined;
9
- const blockVersion = block.version() || undefined;
10
- // Parse elements
11
- const elements = [];
12
- for (let i = 0; i < block.elementsLength(); i++) {
13
- const element = block.elements(i);
14
- if (element) {
15
- const parsedElement = parseElementFromBinary(element, version);
16
- if (parsedElement) {
17
- elements.push(parsedElement);
18
- }
19
- }
20
- }
21
- // Parse attributes
22
- const attributes = {};
23
- for (let i = 0; i < block.attributesLength(); i++) {
24
- const attribute = block.attributes(i);
25
- if (attribute) {
26
- const parsedAttribute = parseBlockAttributeFromBinary(attribute);
27
- if (parsedAttribute) {
28
- attributes[parsedAttribute.name] = parsedAttribute.details;
29
- }
30
- }
31
- }
32
- return {
33
- id,
34
- label,
35
- description,
36
- version: blockVersion,
37
- elements,
38
- attributes: Object.keys(attributes).length > 0 ? attributes : undefined,
39
- };
40
- };
41
- const parseBlockAttributeFromBinary = (attribute) => {
42
- if (!attribute)
43
- return null;
44
- const name = attribute.name() || '';
45
- const details = parseBlockAttributeDetailsFromBinary(attribute.details());
46
- if (!details)
47
- return null;
48
- return {
49
- name,
50
- details,
51
- };
52
- };
53
- const parseBlockAttributeDetailsFromBinary = (details) => {
54
- if (!details)
55
- return null;
56
- const tag = details.tag() || '';
57
- const defaultValue = details.defaultValue() || '';
58
- const prompt = details.prompt() || undefined;
59
- const position = details.position();
60
- const positionParsed = position ? {
61
- x: getPrecisionValueFromRaw(position.x(), NEUTRAL_SCOPE, NEUTRAL_SCOPE),
62
- y: getPrecisionValueFromRaw(position.y(), NEUTRAL_SCOPE, NEUTRAL_SCOPE),
63
- } : undefined;
64
- return {
65
- tag,
66
- defaultValue,
67
- prompt,
68
- position: positionParsed,
69
- };
70
- };
@@ -1,8 +0,0 @@
1
- import { DucElement as BinDucElement, ElementBackground as BinElementBackground, ElementContentBase as BinElementContentBase, ElementStroke as BinElementStroke, Point as BinPoint } from 'ducjs/legacy/v1/duc';
2
- import { SupportedMeasures } from 'ducjs/legacy/v1/utils/measurements';
3
- import { DucElement, DucPoint, ElementBackground, ElementContentBase, ElementStroke } from 'ducjs/legacy/v1/types/elements';
4
- export declare const parsePoint: (point: BinPoint | null, elementScope: SupportedMeasures) => DucPoint | null;
5
- export declare const parseElementFromBinary: (e: BinDucElement, v: number) => Partial<DucElement> | null;
6
- export declare const parseElementContentBase: (content: BinElementContentBase | null, defaults: ElementContentBase) => ElementContentBase;
7
- export declare const parseElementBinStroke: (stroke: BinElementStroke | null, elementScope: SupportedMeasures) => ElementStroke;
8
- export declare const parseElementBinBackground: (background: BinElementBackground | null) => ElementBackground;