ducjs 2.3.0 → 3.0.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 (529) hide show
  1. package/README.md +2 -2
  2. package/dist/enums.d.ts +135 -0
  3. package/dist/enums.js +155 -0
  4. package/dist/index.d.ts +8 -4
  5. package/dist/index.js +8 -4
  6. package/dist/lazy-files.d.ts +44 -0
  7. package/dist/lazy-files.js +129 -0
  8. package/dist/parse.d.ts +21 -55
  9. package/dist/parse.js +58 -1445
  10. package/dist/restore/index.d.ts +0 -1
  11. package/dist/restore/index.js +0 -1
  12. package/dist/restore/restoreDataState.d.ts +6 -10
  13. package/dist/restore/restoreDataState.js +117 -127
  14. package/dist/restore/restoreElements.d.ts +1 -1
  15. package/dist/restore/restoreElements.js +37 -494
  16. package/dist/serialize.d.ts +11 -4
  17. package/dist/serialize.js +58 -2545
  18. package/dist/technical/index.d.ts +0 -1
  19. package/dist/technical/index.js +0 -1
  20. package/dist/technical/scopes.d.ts +1 -1
  21. package/dist/technical/scopes.js +1 -1
  22. package/dist/transform.d.ts +12 -0
  23. package/dist/transform.js +442 -0
  24. package/dist/types/elements/index.d.ts +120 -693
  25. package/dist/types/elements/typeChecks.d.ts +6 -3
  26. package/dist/types/elements/typeChecks.js +9 -8
  27. package/dist/types/geometryTypes.d.ts +1 -1
  28. package/dist/types/index.d.ts +38 -305
  29. package/dist/utils/constants.d.ts +21 -100
  30. package/dist/utils/constants.js +29 -212
  31. package/dist/utils/elements/freedrawElement.d.ts +6 -0
  32. package/dist/utils/elements/freedrawElement.js +28 -11
  33. package/dist/utils/elements/index.d.ts +3 -14
  34. package/dist/utils/elements/index.js +7 -99
  35. package/dist/utils/elements/linearElement.d.ts +2 -2
  36. package/dist/utils/elements/newElement.d.ts +2 -12
  37. package/dist/utils/elements/newElement.js +32 -52
  38. package/dist/utils/elements/textElement.d.ts +3 -3
  39. package/dist/utils/elements/textElement.js +44 -17
  40. package/dist/utils/math/index.d.ts +5 -4
  41. package/dist/utils/math/index.js +3 -3
  42. package/dist/utils/shape.js +2 -2
  43. package/dist/utils/state/index.d.ts +0 -1
  44. package/dist/utils/state/index.js +5 -71
  45. package/dist/utils/traverse.d.ts +8 -0
  46. package/dist/utils/traverse.js +37 -0
  47. package/dist/version-control.d.ts +61 -0
  48. package/dist/version-control.js +84 -0
  49. package/dist/wasm.d.ts +20 -0
  50. package/dist/wasm.js +52 -0
  51. package/package.json +2 -2
  52. package/dist/flatbuffers/duc/alternate-units.d.ts +0 -21
  53. package/dist/flatbuffers/duc/alternate-units.js +0 -66
  54. package/dist/flatbuffers/duc/angular-unit-system.d.ts +0 -17
  55. package/dist/flatbuffers/duc/angular-unit-system.js +0 -50
  56. package/dist/flatbuffers/duc/angular-units-format.d.ts +0 -7
  57. package/dist/flatbuffers/duc/angular-units-format.js +0 -10
  58. package/dist/flatbuffers/duc/axis.d.ts +0 -5
  59. package/dist/flatbuffers/duc/axis.js +0 -8
  60. package/dist/flatbuffers/duc/bezier-mirroring.d.ts +0 -5
  61. package/dist/flatbuffers/duc/bezier-mirroring.js +0 -8
  62. package/dist/flatbuffers/duc/blending.d.ts +0 -9
  63. package/dist/flatbuffers/duc/blending.js +0 -12
  64. package/dist/flatbuffers/duc/block-attachment.d.ts +0 -4
  65. package/dist/flatbuffers/duc/block-attachment.js +0 -7
  66. package/dist/flatbuffers/duc/boolean-operation.d.ts +0 -6
  67. package/dist/flatbuffers/duc/boolean-operation.js +0 -9
  68. package/dist/flatbuffers/duc/bound-element.d.ts +0 -17
  69. package/dist/flatbuffers/duc/bound-element.js +0 -48
  70. package/dist/flatbuffers/duc/checkpoint.d.ts +0 -22
  71. package/dist/flatbuffers/duc/checkpoint.js +0 -75
  72. package/dist/flatbuffers/duc/column-layout.d.ts +0 -22
  73. package/dist/flatbuffers/duc/column-layout.js +0 -72
  74. package/dist/flatbuffers/duc/column-type.d.ts +0 -5
  75. package/dist/flatbuffers/duc/column-type.js +0 -8
  76. package/dist/flatbuffers/duc/custom-hatch-pattern.d.ts +0 -23
  77. package/dist/flatbuffers/duc/custom-hatch-pattern.js +0 -71
  78. package/dist/flatbuffers/duc/datum-bracket-style.d.ts +0 -5
  79. package/dist/flatbuffers/duc/datum-bracket-style.js +0 -8
  80. package/dist/flatbuffers/duc/datum-reference.d.ts +0 -17
  81. package/dist/flatbuffers/duc/datum-reference.js +0 -49
  82. package/dist/flatbuffers/duc/datum-target-type.d.ts +0 -6
  83. package/dist/flatbuffers/duc/datum-target-type.js +0 -9
  84. package/dist/flatbuffers/duc/decimal-separator.d.ts +0 -4
  85. package/dist/flatbuffers/duc/decimal-separator.js +0 -7
  86. package/dist/flatbuffers/duc/delta.d.ts +0 -22
  87. package/dist/flatbuffers/duc/delta.js +0 -75
  88. package/dist/flatbuffers/duc/dictionary-entry.d.ts +0 -17
  89. package/dist/flatbuffers/duc/dictionary-entry.js +0 -49
  90. package/dist/flatbuffers/duc/dimension-baseline-data.d.ts +0 -14
  91. package/dist/flatbuffers/duc/dimension-baseline-data.js +0 -40
  92. package/dist/flatbuffers/duc/dimension-bindings.d.ts +0 -17
  93. package/dist/flatbuffers/duc/dimension-bindings.js +0 -50
  94. package/dist/flatbuffers/duc/dimension-continue-data.d.ts +0 -14
  95. package/dist/flatbuffers/duc/dimension-continue-data.js +0 -40
  96. package/dist/flatbuffers/duc/dimension-definition-points.d.ts +0 -21
  97. package/dist/flatbuffers/duc/dimension-definition-points.js +0 -64
  98. package/dist/flatbuffers/duc/dimension-ext-line-style.d.ts +0 -18
  99. package/dist/flatbuffers/duc/dimension-ext-line-style.js +0 -57
  100. package/dist/flatbuffers/duc/dimension-fit-rule.d.ts +0 -6
  101. package/dist/flatbuffers/duc/dimension-fit-rule.js +0 -9
  102. package/dist/flatbuffers/duc/dimension-fit-style.d.ts +0 -19
  103. package/dist/flatbuffers/duc/dimension-fit-style.js +0 -58
  104. package/dist/flatbuffers/duc/dimension-line-style.d.ts +0 -16
  105. package/dist/flatbuffers/duc/dimension-line-style.js +0 -49
  106. package/dist/flatbuffers/duc/dimension-symbol-style.d.ts +0 -22
  107. package/dist/flatbuffers/duc/dimension-symbol-style.js +0 -72
  108. package/dist/flatbuffers/duc/dimension-text-placement.d.ts +0 -5
  109. package/dist/flatbuffers/duc/dimension-text-placement.js +0 -8
  110. package/dist/flatbuffers/duc/dimension-tolerance-style.d.ts +0 -24
  111. package/dist/flatbuffers/duc/dimension-tolerance-style.js +0 -71
  112. package/dist/flatbuffers/duc/dimension-type.d.ts +0 -15
  113. package/dist/flatbuffers/duc/dimension-type.js +0 -18
  114. package/dist/flatbuffers/duc/dimension-units-format.d.ts +0 -7
  115. package/dist/flatbuffers/duc/dimension-units-format.js +0 -10
  116. package/dist/flatbuffers/duc/dimension-validation-rules.d.ts +0 -25
  117. package/dist/flatbuffers/duc/dimension-validation-rules.js +0 -74
  118. package/dist/flatbuffers/duc/document-grid-align-items.d.ts +0 -5
  119. package/dist/flatbuffers/duc/document-grid-align-items.js +0 -8
  120. package/dist/flatbuffers/duc/document-grid-config.d.ts +0 -22
  121. package/dist/flatbuffers/duc/document-grid-config.js +0 -73
  122. package/dist/flatbuffers/duc/duc-arrow-element.d.ts +0 -16
  123. package/dist/flatbuffers/duc/duc-arrow-element.js +0 -49
  124. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.d.ts +0 -16
  125. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.js +0 -44
  126. package/dist/flatbuffers/duc/duc-block-attribute-definition.d.ts +0 -22
  127. package/dist/flatbuffers/duc/duc-block-attribute-definition.js +0 -64
  128. package/dist/flatbuffers/duc/duc-block-collection-entry.d.ts +0 -16
  129. package/dist/flatbuffers/duc/duc-block-collection-entry.js +0 -48
  130. package/dist/flatbuffers/duc/duc-block-collection.d.ts +0 -31
  131. package/dist/flatbuffers/duc/duc-block-collection.js +0 -97
  132. package/dist/flatbuffers/duc/duc-block-duplication-array.d.ts +0 -19
  133. package/dist/flatbuffers/duc/duc-block-duplication-array.js +0 -64
  134. package/dist/flatbuffers/duc/duc-block-instance-element.d.ts +0 -10
  135. package/dist/flatbuffers/duc/duc-block-instance-element.js +0 -28
  136. package/dist/flatbuffers/duc/duc-block-instance.d.ts +0 -32
  137. package/dist/flatbuffers/duc/duc-block-instance.js +0 -100
  138. package/dist/flatbuffers/duc/duc-block-metadata.d.ts +0 -26
  139. package/dist/flatbuffers/duc/duc-block-metadata.js +0 -90
  140. package/dist/flatbuffers/duc/duc-block.d.ts +0 -36
  141. package/dist/flatbuffers/duc/duc-block.js +0 -112
  142. package/dist/flatbuffers/duc/duc-common-style.d.ts +0 -16
  143. package/dist/flatbuffers/duc/duc-common-style.js +0 -44
  144. package/dist/flatbuffers/duc/duc-dimension-element.d.ts +0 -45
  145. package/dist/flatbuffers/duc/duc-dimension-element.js +0 -120
  146. package/dist/flatbuffers/duc/duc-dimension-style.d.ts +0 -28
  147. package/dist/flatbuffers/duc/duc-dimension-style.js +0 -76
  148. package/dist/flatbuffers/duc/duc-doc-element.d.ts +0 -39
  149. package/dist/flatbuffers/duc/duc-doc-element.js +0 -110
  150. package/dist/flatbuffers/duc/duc-doc-style.d.ts +0 -19
  151. package/dist/flatbuffers/duc/duc-doc-style.js +0 -52
  152. package/dist/flatbuffers/duc/duc-element-base.d.ts +0 -100
  153. package/dist/flatbuffers/duc/duc-element-base.js +0 -315
  154. package/dist/flatbuffers/duc/duc-element-styles-base.d.ts +0 -30
  155. package/dist/flatbuffers/duc/duc-element-styles-base.js +0 -103
  156. package/dist/flatbuffers/duc/duc-ellipse-element.d.ts +0 -22
  157. package/dist/flatbuffers/duc/duc-ellipse-element.js +0 -73
  158. package/dist/flatbuffers/duc/duc-embeddable-element.d.ts +0 -14
  159. package/dist/flatbuffers/duc/duc-embeddable-element.js +0 -41
  160. package/dist/flatbuffers/duc/duc-external-file-data.d.ts +0 -27
  161. package/dist/flatbuffers/duc/duc-external-file-data.js +0 -92
  162. package/dist/flatbuffers/duc/duc-external-file-entry.d.ts +0 -16
  163. package/dist/flatbuffers/duc/duc-external-file-entry.js +0 -44
  164. package/dist/flatbuffers/duc/duc-feature-control-frame-element.d.ts +0 -31
  165. package/dist/flatbuffers/duc/duc-feature-control-frame-element.js +0 -89
  166. package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +0 -22
  167. package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +0 -60
  168. package/dist/flatbuffers/duc/duc-frame-element.d.ts +0 -14
  169. package/dist/flatbuffers/duc/duc-frame-element.js +0 -41
  170. package/dist/flatbuffers/duc/duc-free-draw-element.d.ts +0 -52
  171. package/dist/flatbuffers/duc/duc-free-draw-element.js +0 -154
  172. package/dist/flatbuffers/duc/duc-free-draw-ends.d.ts +0 -18
  173. package/dist/flatbuffers/duc/duc-free-draw-ends.js +0 -56
  174. package/dist/flatbuffers/duc/duc-global-state.d.ts +0 -37
  175. package/dist/flatbuffers/duc/duc-global-state.js +0 -121
  176. package/dist/flatbuffers/duc/duc-group.d.ts +0 -16
  177. package/dist/flatbuffers/duc/duc-group.js +0 -44
  178. package/dist/flatbuffers/duc/duc-hatch-style.d.ts +0 -28
  179. package/dist/flatbuffers/duc/duc-hatch-style.js +0 -79
  180. package/dist/flatbuffers/duc/duc-head.d.ts +0 -19
  181. package/dist/flatbuffers/duc/duc-head.js +0 -57
  182. package/dist/flatbuffers/duc/duc-image-element.d.ts +0 -35
  183. package/dist/flatbuffers/duc/duc-image-element.js +0 -91
  184. package/dist/flatbuffers/duc/duc-image-filter.d.ts +0 -15
  185. package/dist/flatbuffers/duc/duc-image-filter.js +0 -48
  186. package/dist/flatbuffers/duc/duc-layer-overrides.d.ts +0 -16
  187. package/dist/flatbuffers/duc/duc-layer-overrides.js +0 -44
  188. package/dist/flatbuffers/duc/duc-layer.d.ts +0 -21
  189. package/dist/flatbuffers/duc/duc-layer.js +0 -59
  190. package/dist/flatbuffers/duc/duc-leader-element.d.ts +0 -22
  191. package/dist/flatbuffers/duc/duc-leader-element.js +0 -60
  192. package/dist/flatbuffers/duc/duc-leader-style.d.ts +0 -27
  193. package/dist/flatbuffers/duc/duc-leader-style.js +0 -79
  194. package/dist/flatbuffers/duc/duc-line-reference.d.ts +0 -15
  195. package/dist/flatbuffers/duc/duc-line-reference.js +0 -43
  196. package/dist/flatbuffers/duc/duc-line.d.ts +0 -15
  197. package/dist/flatbuffers/duc/duc-line.js +0 -43
  198. package/dist/flatbuffers/duc/duc-linear-element-base.d.ts +0 -38
  199. package/dist/flatbuffers/duc/duc-linear-element-base.js +0 -124
  200. package/dist/flatbuffers/duc/duc-linear-element.d.ts +0 -16
  201. package/dist/flatbuffers/duc/duc-linear-element.js +0 -49
  202. package/dist/flatbuffers/duc/duc-local-state.d.ts +0 -68
  203. package/dist/flatbuffers/duc/duc-local-state.js +0 -206
  204. package/dist/flatbuffers/duc/duc-mermaid-element.d.ts +0 -23
  205. package/dist/flatbuffers/duc/duc-mermaid-element.js +0 -65
  206. package/dist/flatbuffers/duc/duc-model-element.d.ts +0 -26
  207. package/dist/flatbuffers/duc/duc-model-element.js +0 -79
  208. package/dist/flatbuffers/duc/duc-parametric-element.d.ts +0 -16
  209. package/dist/flatbuffers/duc/duc-parametric-element.js +0 -44
  210. package/dist/flatbuffers/duc/duc-path.d.ts +0 -26
  211. package/dist/flatbuffers/duc/duc-path.js +0 -69
  212. package/dist/flatbuffers/duc/duc-pdf-element.d.ts +0 -19
  213. package/dist/flatbuffers/duc/duc-pdf-element.js +0 -51
  214. package/dist/flatbuffers/duc/duc-plot-element.d.ts +0 -19
  215. package/dist/flatbuffers/duc/duc-plot-element.js +0 -52
  216. package/dist/flatbuffers/duc/duc-plot-style.d.ts +0 -11
  217. package/dist/flatbuffers/duc/duc-plot-style.js +0 -32
  218. package/dist/flatbuffers/duc/duc-point-binding.d.ts +0 -26
  219. package/dist/flatbuffers/duc/duc-point-binding.js +0 -73
  220. package/dist/flatbuffers/duc/duc-point.d.ts +0 -18
  221. package/dist/flatbuffers/duc/duc-point.js +0 -57
  222. package/dist/flatbuffers/duc/duc-polygon-element.d.ts +0 -16
  223. package/dist/flatbuffers/duc/duc-polygon-element.js +0 -49
  224. package/dist/flatbuffers/duc/duc-rectangle-element.d.ts +0 -14
  225. package/dist/flatbuffers/duc/duc-rectangle-element.js +0 -41
  226. package/dist/flatbuffers/duc/duc-region.d.ts +0 -19
  227. package/dist/flatbuffers/duc/duc-region.js +0 -51
  228. package/dist/flatbuffers/duc/duc-stack-base.d.ts +0 -27
  229. package/dist/flatbuffers/duc/duc-stack-base.js +0 -78
  230. package/dist/flatbuffers/duc/duc-stack-element-base.d.ts +0 -23
  231. package/dist/flatbuffers/duc/duc-stack-element-base.js +0 -65
  232. package/dist/flatbuffers/duc/duc-stack-like-styles.d.ts +0 -16
  233. package/dist/flatbuffers/duc/duc-stack-like-styles.js +0 -48
  234. package/dist/flatbuffers/duc/duc-table-auto-size.d.ts +0 -15
  235. package/dist/flatbuffers/duc/duc-table-auto-size.js +0 -48
  236. package/dist/flatbuffers/duc/duc-table-cell-entry.d.ts +0 -16
  237. package/dist/flatbuffers/duc/duc-table-cell-entry.js +0 -44
  238. package/dist/flatbuffers/duc/duc-table-cell-span.d.ts +0 -15
  239. package/dist/flatbuffers/duc/duc-table-cell-span.js +0 -48
  240. package/dist/flatbuffers/duc/duc-table-cell-style.d.ts +0 -22
  241. package/dist/flatbuffers/duc/duc-table-cell-style.js +0 -59
  242. package/dist/flatbuffers/duc/duc-table-cell.d.ts +0 -27
  243. package/dist/flatbuffers/duc/duc-table-cell.js +0 -72
  244. package/dist/flatbuffers/duc/duc-table-column-entry.d.ts +0 -16
  245. package/dist/flatbuffers/duc/duc-table-column-entry.js +0 -44
  246. package/dist/flatbuffers/duc/duc-table-column.d.ts +0 -18
  247. package/dist/flatbuffers/duc/duc-table-column.js +0 -51
  248. package/dist/flatbuffers/duc/duc-table-element.d.ts +0 -51
  249. package/dist/flatbuffers/duc/duc-table-element.js +0 -167
  250. package/dist/flatbuffers/duc/duc-table-row-entry.d.ts +0 -16
  251. package/dist/flatbuffers/duc/duc-table-row-entry.js +0 -44
  252. package/dist/flatbuffers/duc/duc-table-row.d.ts +0 -18
  253. package/dist/flatbuffers/duc/duc-table-row.js +0 -51
  254. package/dist/flatbuffers/duc/duc-table-style.d.ts +0 -20
  255. package/dist/flatbuffers/duc/duc-table-style.js +0 -57
  256. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.d.ts +0 -14
  257. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.js +0 -40
  258. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.d.ts +0 -17
  259. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.js +0 -49
  260. package/dist/flatbuffers/duc/duc-text-dynamic-part.d.ts +0 -22
  261. package/dist/flatbuffers/duc/duc-text-dynamic-part.js +0 -58
  262. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.d.ts +0 -9
  263. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.js +0 -26
  264. package/dist/flatbuffers/duc/duc-text-dynamic-source.d.ts +0 -19
  265. package/dist/flatbuffers/duc/duc-text-dynamic-source.js +0 -58
  266. package/dist/flatbuffers/duc/duc-text-element.d.ts +0 -33
  267. package/dist/flatbuffers/duc/duc-text-element.js +0 -94
  268. package/dist/flatbuffers/duc/duc-text-style.d.ts +0 -41
  269. package/dist/flatbuffers/duc/duc-text-style.js +0 -120
  270. package/dist/flatbuffers/duc/duc-ucs.d.ts +0 -16
  271. package/dist/flatbuffers/duc/duc-ucs.js +0 -49
  272. package/dist/flatbuffers/duc/duc-view.d.ts +0 -24
  273. package/dist/flatbuffers/duc/duc-view.js +0 -71
  274. package/dist/flatbuffers/duc/duc-viewport-element.d.ts +0 -36
  275. package/dist/flatbuffers/duc/duc-viewport-element.js +0 -102
  276. package/dist/flatbuffers/duc/duc-viewport-style.d.ts +0 -13
  277. package/dist/flatbuffers/duc/duc-viewport-style.js +0 -40
  278. package/dist/flatbuffers/duc/duc-xray-element.d.ts +0 -23
  279. package/dist/flatbuffers/duc/duc-xray-element.js +0 -66
  280. package/dist/flatbuffers/duc/duc-xray-style.d.ts +0 -14
  281. package/dist/flatbuffers/duc/duc-xray-style.js +0 -40
  282. package/dist/flatbuffers/duc/dynamic-snap-settings.d.ts +0 -17
  283. package/dist/flatbuffers/duc/dynamic-snap-settings.js +0 -56
  284. package/dist/flatbuffers/duc/element-background.d.ts +0 -14
  285. package/dist/flatbuffers/duc/element-background.js +0 -41
  286. package/dist/flatbuffers/duc/element-content-base.d.ts +0 -29
  287. package/dist/flatbuffers/duc/element-content-base.js +0 -80
  288. package/dist/flatbuffers/duc/element-content-preference.d.ts +0 -8
  289. package/dist/flatbuffers/duc/element-content-preference.js +0 -11
  290. package/dist/flatbuffers/duc/element-stroke.d.ts +0 -24
  291. package/dist/flatbuffers/duc/element-stroke.js +0 -66
  292. package/dist/flatbuffers/duc/element-wrapper.d.ts +0 -16
  293. package/dist/flatbuffers/duc/element-wrapper.js +0 -49
  294. package/dist/flatbuffers/duc/element.d.ts +0 -51
  295. package/dist/flatbuffers/duc/element.js +0 -110
  296. package/dist/flatbuffers/duc/exported-data-state.d.ts +0 -102
  297. package/dist/flatbuffers/duc/exported-data-state.js +0 -341
  298. package/dist/flatbuffers/duc/fcfbetween-modifier.d.ts +0 -17
  299. package/dist/flatbuffers/duc/fcfbetween-modifier.js +0 -48
  300. package/dist/flatbuffers/duc/fcfdatum-definition.d.ts +0 -16
  301. package/dist/flatbuffers/duc/fcfdatum-definition.js +0 -43
  302. package/dist/flatbuffers/duc/fcfdatum-style.d.ts +0 -14
  303. package/dist/flatbuffers/duc/fcfdatum-style.js +0 -41
  304. package/dist/flatbuffers/duc/fcfframe-modifiers.d.ts +0 -22
  305. package/dist/flatbuffers/duc/fcfframe-modifiers.js +0 -65
  306. package/dist/flatbuffers/duc/fcflayout-style.d.ts +0 -17
  307. package/dist/flatbuffers/duc/fcflayout-style.js +0 -56
  308. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.d.ts +0 -13
  309. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.js +0 -40
  310. package/dist/flatbuffers/duc/fcfsegment-row.d.ts +0 -17
  311. package/dist/flatbuffers/duc/fcfsegment-row.js +0 -55
  312. package/dist/flatbuffers/duc/fcfsymbol-style.d.ts +0 -13
  313. package/dist/flatbuffers/duc/fcfsymbol-style.js +0 -40
  314. package/dist/flatbuffers/duc/feature-control-frame-segment.d.ts +0 -22
  315. package/dist/flatbuffers/duc/feature-control-frame-segment.js +0 -65
  316. package/dist/flatbuffers/duc/feature-modifier.d.ts +0 -18
  317. package/dist/flatbuffers/duc/feature-modifier.js +0 -21
  318. package/dist/flatbuffers/duc/gdt-symbol.d.ts +0 -22
  319. package/dist/flatbuffers/duc/gdt-symbol.js +0 -25
  320. package/dist/flatbuffers/duc/geometric-point.d.ts +0 -10
  321. package/dist/flatbuffers/duc/geometric-point.js +0 -27
  322. package/dist/flatbuffers/duc/grid-display-type.d.ts +0 -6
  323. package/dist/flatbuffers/duc/grid-display-type.js +0 -9
  324. package/dist/flatbuffers/duc/grid-settings.d.ts +0 -54
  325. package/dist/flatbuffers/duc/grid-settings.js +0 -165
  326. package/dist/flatbuffers/duc/grid-style.d.ts +0 -26
  327. package/dist/flatbuffers/duc/grid-style.js +0 -74
  328. package/dist/flatbuffers/duc/grid-type.d.ts +0 -7
  329. package/dist/flatbuffers/duc/grid-type.js +0 -10
  330. package/dist/flatbuffers/duc/handle-type.d.ts +0 -4
  331. package/dist/flatbuffers/duc/handle-type.js +0 -7
  332. package/dist/flatbuffers/duc/hatch-pattern-line.d.ts +0 -35
  333. package/dist/flatbuffers/duc/hatch-pattern-line.js +0 -93
  334. package/dist/flatbuffers/duc/hatch-style.d.ts +0 -5
  335. package/dist/flatbuffers/duc/hatch-style.js +0 -8
  336. package/dist/flatbuffers/duc/identified-common-style.d.ts +0 -16
  337. package/dist/flatbuffers/duc/identified-common-style.js +0 -44
  338. package/dist/flatbuffers/duc/identified-dimension-style.d.ts +0 -16
  339. package/dist/flatbuffers/duc/identified-dimension-style.js +0 -44
  340. package/dist/flatbuffers/duc/identified-doc-style.d.ts +0 -16
  341. package/dist/flatbuffers/duc/identified-doc-style.js +0 -44
  342. package/dist/flatbuffers/duc/identified-fcfstyle.d.ts +0 -16
  343. package/dist/flatbuffers/duc/identified-fcfstyle.js +0 -44
  344. package/dist/flatbuffers/duc/identified-grid-settings.d.ts +0 -16
  345. package/dist/flatbuffers/duc/identified-grid-settings.js +0 -44
  346. package/dist/flatbuffers/duc/identified-hatch-style.d.ts +0 -16
  347. package/dist/flatbuffers/duc/identified-hatch-style.js +0 -44
  348. package/dist/flatbuffers/duc/identified-leader-style.d.ts +0 -16
  349. package/dist/flatbuffers/duc/identified-leader-style.js +0 -44
  350. package/dist/flatbuffers/duc/identified-snap-settings.d.ts +0 -16
  351. package/dist/flatbuffers/duc/identified-snap-settings.js +0 -44
  352. package/dist/flatbuffers/duc/identified-stack-like-style.d.ts +0 -16
  353. package/dist/flatbuffers/duc/identified-stack-like-style.js +0 -44
  354. package/dist/flatbuffers/duc/identified-table-style.d.ts +0 -16
  355. package/dist/flatbuffers/duc/identified-table-style.js +0 -44
  356. package/dist/flatbuffers/duc/identified-text-style.d.ts +0 -16
  357. package/dist/flatbuffers/duc/identified-text-style.js +0 -44
  358. package/dist/flatbuffers/duc/identified-ucs.d.ts +0 -16
  359. package/dist/flatbuffers/duc/identified-ucs.js +0 -44
  360. package/dist/flatbuffers/duc/identified-view.d.ts +0 -16
  361. package/dist/flatbuffers/duc/identified-view.js +0 -44
  362. package/dist/flatbuffers/duc/identified-viewport-style.d.ts +0 -16
  363. package/dist/flatbuffers/duc/identified-viewport-style.js +0 -44
  364. package/dist/flatbuffers/duc/identified-xray-style.d.ts +0 -16
  365. package/dist/flatbuffers/duc/identified-xray-style.js +0 -44
  366. package/dist/flatbuffers/duc/identifier.d.ts +0 -20
  367. package/dist/flatbuffers/duc/identifier.js +0 -57
  368. package/dist/flatbuffers/duc/image-crop.d.ts +0 -23
  369. package/dist/flatbuffers/duc/image-crop.js +0 -80
  370. package/dist/flatbuffers/duc/image-status.d.ts +0 -5
  371. package/dist/flatbuffers/duc/image-status.js +0 -8
  372. package/dist/flatbuffers/duc/isometric-grid-settings.d.ts +0 -15
  373. package/dist/flatbuffers/duc/isometric-grid-settings.js +0 -48
  374. package/dist/flatbuffers/duc/jsonpatch-operation.d.ts +0 -23
  375. package/dist/flatbuffers/duc/jsonpatch-operation.js +0 -64
  376. package/dist/flatbuffers/duc/layer-snap-filters.d.ts +0 -23
  377. package/dist/flatbuffers/duc/layer-snap-filters.js +0 -76
  378. package/dist/flatbuffers/duc/layer-validation-rules.d.ts +0 -17
  379. package/dist/flatbuffers/duc/layer-validation-rules.js +0 -54
  380. package/dist/flatbuffers/duc/leader-block-content.d.ts +0 -25
  381. package/dist/flatbuffers/duc/leader-block-content.js +0 -85
  382. package/dist/flatbuffers/duc/leader-content-data.d.ts +0 -9
  383. package/dist/flatbuffers/duc/leader-content-data.js +0 -26
  384. package/dist/flatbuffers/duc/leader-content-type.d.ts +0 -4
  385. package/dist/flatbuffers/duc/leader-content-type.js +0 -7
  386. package/dist/flatbuffers/duc/leader-content.d.ts +0 -19
  387. package/dist/flatbuffers/duc/leader-content.js +0 -58
  388. package/dist/flatbuffers/duc/leader-text-block-content.d.ts +0 -14
  389. package/dist/flatbuffers/duc/leader-text-block-content.js +0 -40
  390. package/dist/flatbuffers/duc/line-head.d.ts +0 -17
  391. package/dist/flatbuffers/duc/line-head.js +0 -20
  392. package/dist/flatbuffers/duc/line-spacing-type.d.ts +0 -5
  393. package/dist/flatbuffers/duc/line-spacing-type.js +0 -8
  394. package/dist/flatbuffers/duc/line-spacing.d.ts +0 -16
  395. package/dist/flatbuffers/duc/line-spacing.js +0 -49
  396. package/dist/flatbuffers/duc/linear-unit-system.d.ts +0 -24
  397. package/dist/flatbuffers/duc/linear-unit-system.js +0 -75
  398. package/dist/flatbuffers/duc/margins.d.ts +0 -19
  399. package/dist/flatbuffers/duc/margins.js +0 -64
  400. package/dist/flatbuffers/duc/mark-ellipse-center.d.ts +0 -4
  401. package/dist/flatbuffers/duc/mark-ellipse-center.js +0 -7
  402. package/dist/flatbuffers/duc/material-condition.d.ts +0 -5
  403. package/dist/flatbuffers/duc/material-condition.js +0 -8
  404. package/dist/flatbuffers/duc/object-snap-mode.d.ts +0 -22
  405. package/dist/flatbuffers/duc/object-snap-mode.js +0 -25
  406. package/dist/flatbuffers/duc/paragraph-formatting.d.ts +0 -33
  407. package/dist/flatbuffers/duc/paragraph-formatting.js +0 -106
  408. package/dist/flatbuffers/duc/parametric-source-type.d.ts +0 -4
  409. package/dist/flatbuffers/duc/parametric-source-type.js +0 -7
  410. package/dist/flatbuffers/duc/parametric-source.d.ts +0 -20
  411. package/dist/flatbuffers/duc/parametric-source.js +0 -57
  412. package/dist/flatbuffers/duc/plot-layout.d.ts +0 -14
  413. package/dist/flatbuffers/duc/plot-layout.js +0 -41
  414. package/dist/flatbuffers/duc/point-binding-point.d.ts +0 -15
  415. package/dist/flatbuffers/duc/point-binding-point.js +0 -48
  416. package/dist/flatbuffers/duc/polar-grid-settings.d.ts +0 -17
  417. package/dist/flatbuffers/duc/polar-grid-settings.js +0 -56
  418. package/dist/flatbuffers/duc/polar-tracking-settings.d.ts +0 -29
  419. package/dist/flatbuffers/duc/polar-tracking-settings.js +0 -90
  420. package/dist/flatbuffers/duc/primary-units.d.ts +0 -16
  421. package/dist/flatbuffers/duc/primary-units.js +0 -44
  422. package/dist/flatbuffers/duc/pruning-level.d.ts +0 -5
  423. package/dist/flatbuffers/duc/pruning-level.js +0 -8
  424. package/dist/flatbuffers/duc/snap-marker-settings.d.ts +0 -23
  425. package/dist/flatbuffers/duc/snap-marker-settings.js +0 -79
  426. package/dist/flatbuffers/duc/snap-marker-shape.d.ts +0 -6
  427. package/dist/flatbuffers/duc/snap-marker-shape.js +0 -9
  428. package/dist/flatbuffers/duc/snap-marker-style-entry.d.ts +0 -16
  429. package/dist/flatbuffers/duc/snap-marker-style-entry.js +0 -43
  430. package/dist/flatbuffers/duc/snap-marker-style.d.ts +0 -17
  431. package/dist/flatbuffers/duc/snap-marker-style.js +0 -49
  432. package/dist/flatbuffers/duc/snap-mode.d.ts +0 -4
  433. package/dist/flatbuffers/duc/snap-mode.js +0 -7
  434. package/dist/flatbuffers/duc/snap-override-behavior.d.ts +0 -5
  435. package/dist/flatbuffers/duc/snap-override-behavior.js +0 -8
  436. package/dist/flatbuffers/duc/snap-override.d.ts +0 -17
  437. package/dist/flatbuffers/duc/snap-override.js +0 -49
  438. package/dist/flatbuffers/duc/snap-settings.d.ts +0 -75
  439. package/dist/flatbuffers/duc/snap-settings.js +0 -245
  440. package/dist/flatbuffers/duc/stack-format-properties.d.ts +0 -18
  441. package/dist/flatbuffers/duc/stack-format-properties.js +0 -57
  442. package/dist/flatbuffers/duc/stack-format.d.ts +0 -21
  443. package/dist/flatbuffers/duc/stack-format.js +0 -64
  444. package/dist/flatbuffers/duc/stacked-text-align.d.ts +0 -5
  445. package/dist/flatbuffers/duc/stacked-text-align.js +0 -8
  446. package/dist/flatbuffers/duc/standard-overrides.d.ts +0 -63
  447. package/dist/flatbuffers/duc/standard-overrides.js +0 -162
  448. package/dist/flatbuffers/duc/standard-styles.d.ts +0 -77
  449. package/dist/flatbuffers/duc/standard-styles.js +0 -285
  450. package/dist/flatbuffers/duc/standard-units.d.ts +0 -16
  451. package/dist/flatbuffers/duc/standard-units.js +0 -44
  452. package/dist/flatbuffers/duc/standard-validation.d.ts +0 -16
  453. package/dist/flatbuffers/duc/standard-validation.js +0 -44
  454. package/dist/flatbuffers/duc/standard-view-settings.d.ts +0 -35
  455. package/dist/flatbuffers/duc/standard-view-settings.js +0 -124
  456. package/dist/flatbuffers/duc/standard.d.ts +0 -33
  457. package/dist/flatbuffers/duc/standard.js +0 -90
  458. package/dist/flatbuffers/duc/string-value-entry.d.ts +0 -17
  459. package/dist/flatbuffers/duc/string-value-entry.js +0 -49
  460. package/dist/flatbuffers/duc/stroke-cap.d.ts +0 -5
  461. package/dist/flatbuffers/duc/stroke-cap.js +0 -8
  462. package/dist/flatbuffers/duc/stroke-join.d.ts +0 -5
  463. package/dist/flatbuffers/duc/stroke-join.js +0 -8
  464. package/dist/flatbuffers/duc/stroke-placement.d.ts +0 -5
  465. package/dist/flatbuffers/duc/stroke-placement.js +0 -8
  466. package/dist/flatbuffers/duc/stroke-preference.d.ts +0 -6
  467. package/dist/flatbuffers/duc/stroke-preference.js +0 -9
  468. package/dist/flatbuffers/duc/stroke-side-preference.d.ts +0 -8
  469. package/dist/flatbuffers/duc/stroke-side-preference.js +0 -11
  470. package/dist/flatbuffers/duc/stroke-sides.d.ts +0 -24
  471. package/dist/flatbuffers/duc/stroke-sides.js +0 -67
  472. package/dist/flatbuffers/duc/stroke-style.d.ts +0 -37
  473. package/dist/flatbuffers/duc/stroke-style.js +0 -111
  474. package/dist/flatbuffers/duc/stroke-width.d.ts +0 -5
  475. package/dist/flatbuffers/duc/stroke-width.js +0 -8
  476. package/dist/flatbuffers/duc/table-cell-alignment.d.ts +0 -11
  477. package/dist/flatbuffers/duc/table-cell-alignment.js +0 -14
  478. package/dist/flatbuffers/duc/table-flow-direction.d.ts +0 -4
  479. package/dist/flatbuffers/duc/table-flow-direction.js +0 -7
  480. package/dist/flatbuffers/duc/text-align.d.ts +0 -5
  481. package/dist/flatbuffers/duc/text-align.js +0 -8
  482. package/dist/flatbuffers/duc/text-column.d.ts +0 -15
  483. package/dist/flatbuffers/duc/text-column.js +0 -48
  484. package/dist/flatbuffers/duc/text-field-source-property.d.ts +0 -13
  485. package/dist/flatbuffers/duc/text-field-source-property.js +0 -16
  486. package/dist/flatbuffers/duc/text-field-source-type.d.ts +0 -4
  487. package/dist/flatbuffers/duc/text-field-source-type.js +0 -7
  488. package/dist/flatbuffers/duc/text-flow-direction.d.ts +0 -6
  489. package/dist/flatbuffers/duc/text-flow-direction.js +0 -9
  490. package/dist/flatbuffers/duc/tiling-properties.d.ts +0 -21
  491. package/dist/flatbuffers/duc/tiling-properties.js +0 -75
  492. package/dist/flatbuffers/duc/tolerance-clause.d.ts +0 -27
  493. package/dist/flatbuffers/duc/tolerance-clause.js +0 -84
  494. package/dist/flatbuffers/duc/tolerance-display.d.ts +0 -7
  495. package/dist/flatbuffers/duc/tolerance-display.js +0 -10
  496. package/dist/flatbuffers/duc/tolerance-type.d.ts +0 -5
  497. package/dist/flatbuffers/duc/tolerance-type.js +0 -8
  498. package/dist/flatbuffers/duc/tolerance-zone-type.d.ts +0 -7
  499. package/dist/flatbuffers/duc/tolerance-zone-type.js +0 -10
  500. package/dist/flatbuffers/duc/tracking-line-style.d.ts +0 -26
  501. package/dist/flatbuffers/duc/tracking-line-style.js +0 -74
  502. package/dist/flatbuffers/duc/unit-precision.d.ts +0 -19
  503. package/dist/flatbuffers/duc/unit-precision.js +0 -64
  504. package/dist/flatbuffers/duc/unit-system-base.d.ts +0 -20
  505. package/dist/flatbuffers/duc/unit-system-base.js +0 -65
  506. package/dist/flatbuffers/duc/unit-system.d.ts +0 -4
  507. package/dist/flatbuffers/duc/unit-system.js +0 -7
  508. package/dist/flatbuffers/duc/version-base.d.ts +0 -27
  509. package/dist/flatbuffers/duc/version-base.js +0 -80
  510. package/dist/flatbuffers/duc/version-graph-metadata.d.ts +0 -15
  511. package/dist/flatbuffers/duc/version-graph-metadata.js +0 -48
  512. package/dist/flatbuffers/duc/version-graph.d.ts +0 -31
  513. package/dist/flatbuffers/duc/version-graph.js +0 -94
  514. package/dist/flatbuffers/duc/vertical-align.d.ts +0 -5
  515. package/dist/flatbuffers/duc/vertical-align.js +0 -8
  516. package/dist/flatbuffers/duc/viewport-shade-plot.d.ts +0 -6
  517. package/dist/flatbuffers/duc/viewport-shade-plot.js +0 -9
  518. package/dist/flatbuffers/duc/youtube-states.d.ts +0 -8
  519. package/dist/flatbuffers/duc/youtube-states.js +0 -11
  520. package/dist/flatbuffers/duc.d.ts +0 -234
  521. package/dist/flatbuffers/duc.js +0 -236
  522. package/dist/restore/restoreStandards.d.ts +0 -8
  523. package/dist/restore/restoreStandards.js +0 -224
  524. package/dist/technical/standards.d.ts +0 -124
  525. package/dist/technical/standards.js +0 -10
  526. package/dist/utils/elements/viewportElement.d.ts +0 -6
  527. package/dist/utils/elements/viewportElement.js +0 -9
  528. package/dist/utils/state/grid.d.ts +0 -7
  529. package/dist/utils/state/grid.js +0 -25
@@ -1,3 +1,2 @@
1
- export * from "./standards";
2
1
  export * from "./measurements";
3
2
  export * from "./scopes";
@@ -1,3 +1,2 @@
1
- export * from "./standards";
2
1
  export * from "./measurements";
3
2
  export * from "./scopes";
@@ -1,4 +1,4 @@
1
- import { UNIT_SYSTEM } from "../flatbuffers/duc";
1
+ import { UNIT_SYSTEM } from "../enums";
2
2
  import { PrecisionValue, RawValue, ScaledZoom, Scope, ScopedValue, ScopedZoomValue, ValueOf } from "../types";
3
3
  import { DucPoint } from "../types/elements";
4
4
  import { GeometricPoint } from "../types/geometryTypes";
@@ -1,4 +1,4 @@
1
- import { UNIT_SYSTEM } from "../flatbuffers/duc";
1
+ import { UNIT_SYSTEM } from "../enums";
2
2
  export const MIN_ZOOM = 1e-32;
3
3
  export const MAX_ZOOM = 1e32;
4
4
  export const NEUTRAL_SCOPE = "m";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Post-parse transformation: fix stack element nesting
3
+ * (move stackBase fields to top level for frame/plot elements).
4
+ *
5
+ * Also adds `type` discriminator to version graph entries.
6
+ */
7
+ export declare function transformFromRust(data: any): any;
8
+ /**
9
+ * Pre-serialize transformation: re-wrap stack element fields
10
+ * and flatten PrecisionValue objects to plain numbers for Rust.
11
+ */
12
+ export declare function transformToRust(data: any): any;
@@ -0,0 +1,442 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ /**
13
+ * Post-parse transformation: fix stack element nesting
14
+ * (move stackBase fields to top level for frame/plot elements).
15
+ *
16
+ * Also adds `type` discriminator to version graph entries.
17
+ */
18
+ export function transformFromRust(data) {
19
+ if (!data)
20
+ return data;
21
+ if (data.elements) {
22
+ data.elements = data.elements.map(fixElementFromRust);
23
+ }
24
+ if (data.versionGraph) {
25
+ const vg = data.versionGraph;
26
+ if (vg.checkpoints) {
27
+ vg.checkpoints = vg.checkpoints.map((c) => (Object.assign(Object.assign({}, c), { type: "checkpoint" })));
28
+ }
29
+ if (vg.deltas) {
30
+ vg.deltas = vg.deltas.map((d) => (Object.assign(Object.assign({}, d), { type: "delta" })));
31
+ }
32
+ }
33
+ if (data.layers) {
34
+ data.layers = data.layers.map((layer) => {
35
+ if (layer === null || layer === void 0 ? void 0 : layer.overrides) {
36
+ layer = Object.assign(Object.assign({}, layer), { overrides: fixLayerOverridesHatch(layer.overrides, true) });
37
+ }
38
+ return layer;
39
+ });
40
+ }
41
+ if (data.blockInstances) {
42
+ data.blockInstances = data.blockInstances.map((bi) => {
43
+ if (Array.isArray(bi === null || bi === void 0 ? void 0 : bi.elementOverrides)) {
44
+ const record = {};
45
+ for (const entry of bi.elementOverrides) {
46
+ if ((entry === null || entry === void 0 ? void 0 : entry.key) !== undefined)
47
+ record[entry.key] = entry.value;
48
+ }
49
+ return Object.assign(Object.assign({}, bi), { elementOverrides: record });
50
+ }
51
+ return bi;
52
+ });
53
+ }
54
+ if (data.blocks) {
55
+ data.blocks = data.blocks.map((block) => {
56
+ if (block === null || block === void 0 ? void 0 : block.metadata)
57
+ fixLocalizationFromRust(block.metadata);
58
+ return block;
59
+ });
60
+ }
61
+ if (data.blockCollections) {
62
+ data.blockCollections = data.blockCollections.map((collection) => {
63
+ if (collection === null || collection === void 0 ? void 0 : collection.metadata)
64
+ fixLocalizationFromRust(collection.metadata);
65
+ return collection;
66
+ });
67
+ }
68
+ return data;
69
+ }
70
+ /**
71
+ * Pre-serialize transformation: re-wrap stack element fields
72
+ * and flatten PrecisionValue objects to plain numbers for Rust.
73
+ */
74
+ export function transformToRust(data) {
75
+ if (!data)
76
+ return data;
77
+ const result = Object.assign({}, data);
78
+ if (result.elements) {
79
+ result.elements = result.elements.map((el) => coerceElementIntegerFields(flattenPrecisionValues(fixElementToRust(el))));
80
+ }
81
+ if (result.localState) {
82
+ result.localState = normalizeLocalStateForRust(result.localState);
83
+ }
84
+ if (result.globalState) {
85
+ result.globalState = normalizeGlobalStateForRust(result.globalState);
86
+ }
87
+ if (result.versionGraph) {
88
+ const vg = Object.assign({}, result.versionGraph);
89
+ if (vg.checkpoints) {
90
+ vg.checkpoints = vg.checkpoints.map((_a) => {
91
+ var { type: _ } = _a, rest = __rest(_a, ["type"]);
92
+ return rest;
93
+ });
94
+ }
95
+ if (vg.deltas) {
96
+ vg.deltas = vg.deltas.map((_a) => {
97
+ var { type: _ } = _a, rest = __rest(_a, ["type"]);
98
+ return rest;
99
+ });
100
+ }
101
+ result.versionGraph = vg;
102
+ }
103
+ if (result.layers) {
104
+ result.layers = result.layers.map((layer) => {
105
+ let l = Object.assign({}, layer);
106
+ if (l.overrides) {
107
+ l.overrides = fixLayerOverridesHatch(l.overrides, false);
108
+ }
109
+ return flattenPrecisionValues(l);
110
+ });
111
+ }
112
+ if (result.blockInstances) {
113
+ result.blockInstances = result.blockInstances.map((bi) => {
114
+ let b = Object.assign({}, bi);
115
+ if (b.elementOverrides && !Array.isArray(b.elementOverrides) && typeof b.elementOverrides === "object") {
116
+ b.elementOverrides = Object.entries(b.elementOverrides).map(([key, value]) => ({ key, value: String(value) }));
117
+ }
118
+ return flattenPrecisionValues(b);
119
+ });
120
+ }
121
+ if (result.blocks) {
122
+ result.blocks = result.blocks.map((block) => {
123
+ let b = Object.assign({}, block);
124
+ if (b.metadata) {
125
+ b.metadata = Object.assign({}, b.metadata);
126
+ fixLocalizationToRust(b.metadata);
127
+ }
128
+ return b;
129
+ });
130
+ }
131
+ if (result.blockCollections) {
132
+ result.blockCollections = result.blockCollections.map((collection) => {
133
+ let c = Object.assign({}, collection);
134
+ if (c.metadata) {
135
+ c.metadata = Object.assign({}, c.metadata);
136
+ fixLocalizationToRust(c.metadata);
137
+ }
138
+ return c;
139
+ });
140
+ }
141
+ return result;
142
+ }
143
+ import { FREEDRAW_EASINGS } from "./utils/constants";
144
+ const STACK_ELEMENT_TYPES = new Set(["frame", "plot"]);
145
+ const LINEAR_ELEMENT_TYPES = new Set(["line", "arrow", "freedraw"]);
146
+ const EASING_FN_TO_NAME = new Map(Object.entries(FREEDRAW_EASINGS).map(([name, fn]) => [fn, name]));
147
+ const TEXT_STYLE_FIELDS = new Set([
148
+ "isLtr", "fontFamily", "bigFontFamily", "textAlign", "verticalAlign",
149
+ "lineHeight", "lineSpacing", "obliqueAngle", "fontSize", "widthFactor",
150
+ "isUpsideDown", "isBackwards",
151
+ ]);
152
+ // --- Hatch pattern: Rust flat fields ↔ TS nested `pattern` object ---
153
+ function fixHatchFromRust(hatch) {
154
+ if (!hatch || typeof hatch !== "object" || hatch.pattern)
155
+ return hatch;
156
+ const { patternName, patternScale, patternAngle, patternOrigin, patternDouble } = hatch, rest = __rest(hatch, ["patternName", "patternScale", "patternAngle", "patternOrigin", "patternDouble"]);
157
+ if (patternName === undefined)
158
+ return hatch;
159
+ return Object.assign(Object.assign({}, rest), { pattern: { name: patternName, scale: patternScale, angle: patternAngle, origin: patternOrigin, double: patternDouble } });
160
+ }
161
+ function fixHatchToRust(hatch) {
162
+ if (!(hatch === null || hatch === void 0 ? void 0 : hatch.pattern))
163
+ return hatch;
164
+ const { pattern } = hatch, rest = __rest(hatch, ["pattern"]);
165
+ return Object.assign(Object.assign({}, rest), { patternName: pattern.name, patternScale: pattern.scale, patternAngle: pattern.angle, patternOrigin: pattern.origin, patternDouble: pattern.double });
166
+ }
167
+ function fixContentHatch(content, fromRust) {
168
+ if (!(content === null || content === void 0 ? void 0 : content.hatch))
169
+ return content;
170
+ return Object.assign(Object.assign({}, content), { hatch: fromRust ? fixHatchFromRust(content.hatch) : fixHatchToRust(content.hatch) });
171
+ }
172
+ function fixStylesHatch(el, fromRust) {
173
+ var _a, _b, _c, _d;
174
+ if (Array.isArray(el === null || el === void 0 ? void 0 : el.background)) {
175
+ for (let i = 0; i < el.background.length; i++) {
176
+ if ((_b = (_a = el.background[i]) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.hatch) {
177
+ el.background[i] = Object.assign(Object.assign({}, el.background[i]), { content: fixContentHatch(el.background[i].content, fromRust) });
178
+ }
179
+ }
180
+ }
181
+ if (Array.isArray(el === null || el === void 0 ? void 0 : el.stroke)) {
182
+ for (let i = 0; i < el.stroke.length; i++) {
183
+ if ((_d = (_c = el.stroke[i]) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.hatch) {
184
+ el.stroke[i] = Object.assign(Object.assign({}, el.stroke[i]), { content: fixContentHatch(el.stroke[i].content, fromRust) });
185
+ }
186
+ }
187
+ }
188
+ }
189
+ function fixLayerOverridesHatch(overrides, fromRust) {
190
+ var _a, _b, _c, _d;
191
+ if (!overrides)
192
+ return overrides;
193
+ let result = overrides;
194
+ if ((_b = (_a = result.stroke) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.hatch) {
195
+ result = Object.assign(Object.assign({}, result), { stroke: Object.assign(Object.assign({}, result.stroke), { content: fixContentHatch(result.stroke.content, fromRust) }) });
196
+ }
197
+ if ((_d = (_c = result.background) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.hatch) {
198
+ result = Object.assign(Object.assign({}, result), { background: Object.assign(Object.assign({}, result.background), { content: fixContentHatch(result.background.content, fromRust) }) });
199
+ }
200
+ return result;
201
+ }
202
+ // --- Viewer3DGrid: Rust `value` key ↔ TS `planes` key for perPlane variant ---
203
+ function fixViewer3DGridFromRust(grid) {
204
+ if ((grid === null || grid === void 0 ? void 0 : grid.type) === "perPlane" && "value" in grid && !("planes" in grid)) {
205
+ const { value } = grid, rest = __rest(grid, ["value"]);
206
+ return Object.assign(Object.assign({}, rest), { planes: value });
207
+ }
208
+ return grid;
209
+ }
210
+ function fixViewer3DGridToRust(grid) {
211
+ if ((grid === null || grid === void 0 ? void 0 : grid.type) === "perPlane" && "planes" in grid) {
212
+ const { planes } = grid, rest = __rest(grid, ["planes"]);
213
+ return Object.assign(Object.assign({}, rest), { value: planes });
214
+ }
215
+ return grid;
216
+ }
217
+ // --- customData: Rust `Option<String>` (JSON) ↔ TS `Record<string, any>` ---
218
+ function fixCustomDataFromRust(el) {
219
+ if (typeof (el === null || el === void 0 ? void 0 : el.customData) === "string") {
220
+ try {
221
+ el.customData = JSON.parse(el.customData);
222
+ }
223
+ catch ( /* keep as string */_a) { /* keep as string */ }
224
+ }
225
+ }
226
+ function fixCustomDataToRust(el) {
227
+ if ((el === null || el === void 0 ? void 0 : el.customData) != null && typeof el.customData !== "string") {
228
+ el.customData = JSON.stringify(el.customData);
229
+ }
230
+ }
231
+ // --- Block metadata localization: Rust `Option<String>` (JSON) ↔ TS Record ---
232
+ function fixLocalizationFromRust(metadata) {
233
+ if (typeof (metadata === null || metadata === void 0 ? void 0 : metadata.localization) === "string") {
234
+ try {
235
+ metadata.localization = JSON.parse(metadata.localization);
236
+ }
237
+ catch ( /* keep as string */_a) { /* keep as string */ }
238
+ }
239
+ }
240
+ function fixLocalizationToRust(metadata) {
241
+ if ((metadata === null || metadata === void 0 ? void 0 : metadata.localization) != null && typeof metadata.localization !== "string") {
242
+ metadata.localization = JSON.stringify(metadata.localization);
243
+ }
244
+ }
245
+ function fixElementFromRust(el) {
246
+ var _a, _b, _c;
247
+ if (!el)
248
+ return el;
249
+ fixStylesHatch(el, true);
250
+ fixCustomDataFromRust(el);
251
+ if (el.type === "model" && ((_b = (_a = el.viewerState) === null || _a === void 0 ? void 0 : _a.display) === null || _b === void 0 ? void 0 : _b.grid)) {
252
+ el.viewerState = Object.assign(Object.assign({}, el.viewerState), { display: Object.assign(Object.assign({}, el.viewerState.display), { grid: fixViewer3DGridFromRust(el.viewerState.display.grid) }) });
253
+ }
254
+ // Convert Rust DucLine structs { start, end } → TypeScript tuples [start, end]
255
+ if (LINEAR_ELEMENT_TYPES.has(el.type) && Array.isArray(el.lines)) {
256
+ el.lines = el.lines.map((line) => {
257
+ if (Array.isArray(line))
258
+ return line;
259
+ if (line && line.start !== undefined && line.end !== undefined) {
260
+ return [line.start, line.end];
261
+ }
262
+ return line;
263
+ });
264
+ }
265
+ // Convert easing string key → function for freedraw elements
266
+ if (el.type === "freedraw") {
267
+ el = convertEasingFromRust(el);
268
+ }
269
+ // Unwrap nested text style → flat fields for TS
270
+ if (el.type === "text" && el.style && typeof el.style === "object") {
271
+ const { style } = el, rest = __rest(el, ["style"]);
272
+ return Object.assign(Object.assign({}, rest), style);
273
+ }
274
+ // Remove empty style from table/doc elements
275
+ if ((el.type === "table" || el.type === "doc") && "style" in el) {
276
+ const { style: _ } = el, rest = __rest(el, ["style"]);
277
+ return rest;
278
+ }
279
+ if (!STACK_ELEMENT_TYPES.has(el.type))
280
+ return el;
281
+ // Stack elements (frame, plot) — unwrap stackBase, remove empty plot style
282
+ const { stackBase, style: _plotStyle } = el, rest = __rest(el, ["stackBase", "style"]);
283
+ if (!stackBase)
284
+ return el;
285
+ return Object.assign(Object.assign({}, rest), { isCollapsed: (_c = stackBase.isCollapsed) !== null && _c !== void 0 ? _c : false });
286
+ }
287
+ function fixElementToRust(el) {
288
+ var _a, _b, _c, _d, _e, _f, _g, _h;
289
+ if (!el)
290
+ return el;
291
+ fixStylesHatch(el, false);
292
+ fixCustomDataToRust(el);
293
+ if (el.type === "model" && ((_b = (_a = el.viewerState) === null || _a === void 0 ? void 0 : _a.display) === null || _b === void 0 ? void 0 : _b.grid)) {
294
+ el.viewerState = Object.assign(Object.assign({}, el.viewerState), { display: Object.assign(Object.assign({}, el.viewerState.display), { grid: fixViewer3DGridToRust(el.viewerState.display.grid) }) });
295
+ }
296
+ // Convert TypeScript DucLine tuples [start, end] → Rust structs { start, end }
297
+ if (LINEAR_ELEMENT_TYPES.has(el.type) && Array.isArray(el.lines)) {
298
+ el.lines = el.lines.map((line) => {
299
+ if (Array.isArray(line)) {
300
+ return { start: line[0], end: line[1] };
301
+ }
302
+ return line;
303
+ });
304
+ }
305
+ // Convert easing function → string key for freedraw elements
306
+ if (el.type === "freedraw") {
307
+ el = convertEasingToRust(el);
308
+ }
309
+ // Wrap flat text style fields into nested `style` object for Rust serde
310
+ if (el.type === "text") {
311
+ const style = {};
312
+ const rest = {};
313
+ for (const key of Object.keys(el)) {
314
+ if (TEXT_STYLE_FIELDS.has(key)) {
315
+ style[key] = el[key];
316
+ }
317
+ else {
318
+ rest[key] = el[key];
319
+ }
320
+ }
321
+ return Object.assign(Object.assign({}, rest), { style });
322
+ }
323
+ // Add empty style for table/doc elements
324
+ if (el.type === "table" || el.type === "doc") {
325
+ return Object.assign(Object.assign({}, el), { style: {} });
326
+ }
327
+ if (!STACK_ELEMENT_TYPES.has(el.type))
328
+ return el;
329
+ const { isCollapsed } = el, rest = __rest(el, ["isCollapsed"]);
330
+ return Object.assign(Object.assign(Object.assign({}, rest), (el.type === "plot" ? { style: {} } : {})), { stackBase: {
331
+ label: (_c = el.label) !== null && _c !== void 0 ? _c : "",
332
+ description: (_d = el.description) !== null && _d !== void 0 ? _d : null,
333
+ isCollapsed: isCollapsed !== null && isCollapsed !== void 0 ? isCollapsed : false,
334
+ isPlot: (_e = el.isPlot) !== null && _e !== void 0 ? _e : false,
335
+ isVisible: (_f = el.isVisible) !== null && _f !== void 0 ? _f : true,
336
+ locked: (_g = el.locked) !== null && _g !== void 0 ? _g : false,
337
+ opacity: (_h = el.opacity) !== null && _h !== void 0 ? _h : 1.0,
338
+ } });
339
+ }
340
+ /**
341
+ * Recursively convert PrecisionValue objects ({value, scoped}) to plain
342
+ * numbers (extracting `.value` — the raw/unscoped value) so Rust's serde
343
+ * can deserialize them as f64.
344
+ */
345
+ function flattenPrecisionValues(obj) {
346
+ if (obj === null || obj === undefined)
347
+ return obj;
348
+ if (isPrecisionValueLike(obj))
349
+ return obj.value;
350
+ if (Array.isArray(obj))
351
+ return obj.map(flattenPrecisionValues);
352
+ if (typeof obj === "object") {
353
+ const out = {};
354
+ for (const key in obj) {
355
+ if (!Object.prototype.hasOwnProperty.call(obj, key))
356
+ continue;
357
+ out[key] = flattenPrecisionValues(obj[key]);
358
+ }
359
+ return out;
360
+ }
361
+ return obj;
362
+ }
363
+ function isPrecisionValueLike(v) {
364
+ return (v !== null &&
365
+ typeof v === "object" &&
366
+ !Array.isArray(v) &&
367
+ typeof v.value === "number" &&
368
+ typeof v.scoped === "number" &&
369
+ Object.keys(v).length === 2);
370
+ }
371
+ function toNumberFromPrecisionLike(value, fallback) {
372
+ const flattened = flattenPrecisionValues(value);
373
+ if (typeof flattened === "number" && Number.isFinite(flattened)) {
374
+ return flattened;
375
+ }
376
+ return fallback;
377
+ }
378
+ function toInteger(value, fallback) {
379
+ if (typeof value !== "number" || !Number.isFinite(value))
380
+ return fallback;
381
+ return Math.trunc(value);
382
+ }
383
+ function coerceElementIntegerFields(el) {
384
+ if (!el || typeof el !== "object")
385
+ return el;
386
+ return Object.assign(Object.assign({}, el), { seed: toInteger(el.seed, 1), version: toInteger(el.version, 1), versionNonce: toInteger(el.versionNonce, 0) });
387
+ }
388
+ function normalizeLocalStateForRust(localState) {
389
+ if (!localState || typeof localState !== "object")
390
+ return localState;
391
+ return Object.assign(Object.assign({}, localState), { scrollX: toNumberFromPrecisionLike(localState.scrollX, 0), scrollY: toNumberFromPrecisionLike(localState.scrollY, 0), zoom: localState.zoom && typeof localState.zoom === "object"
392
+ ? toNumberFromPrecisionLike(localState.zoom.value, 1)
393
+ : toNumberFromPrecisionLike(localState.zoom, 1), currentItemStroke: flattenPrecisionValues(localState.currentItemStroke), currentItemBackground: flattenPrecisionValues(localState.currentItemBackground), currentItemFontSize: toNumberFromPrecisionLike(localState.currentItemFontSize, 16), currentItemRoundness: toNumberFromPrecisionLike(localState.currentItemRoundness, 0), currentItemTextAlign: toInteger(localState.currentItemTextAlign, 10), decimalPlaces: toInteger(localState.decimalPlaces, 2) });
394
+ }
395
+ function normalizeGlobalStateForRust(globalState) {
396
+ if (!globalState || typeof globalState !== "object")
397
+ return globalState;
398
+ return Object.assign(Object.assign({}, globalState), { scopeExponentThreshold: toInteger(globalState.scopeExponentThreshold, 4), pruningLevel: toInteger(globalState.pruningLevel, 20) });
399
+ }
400
+ function easingFnToName(fn) {
401
+ var _a;
402
+ if (typeof fn === "string")
403
+ return fn;
404
+ if (typeof fn === "function") {
405
+ return (_a = EASING_FN_TO_NAME.get(fn)) !== null && _a !== void 0 ? _a : "easeOutSine";
406
+ }
407
+ return "easeOutSine";
408
+ }
409
+ function easingNameToFn(name) {
410
+ if (typeof name === "function")
411
+ return name;
412
+ if (typeof name === "string" && name in FREEDRAW_EASINGS) {
413
+ return FREEDRAW_EASINGS[name];
414
+ }
415
+ return FREEDRAW_EASINGS.easeOutSine;
416
+ }
417
+ function convertEasingToRust(el) {
418
+ var _a, _b;
419
+ const result = Object.assign({}, el);
420
+ if (result.easing != null) {
421
+ result.easing = easingFnToName(result.easing);
422
+ }
423
+ if (((_a = result.start) === null || _a === void 0 ? void 0 : _a.easing) != null) {
424
+ result.start = Object.assign(Object.assign({}, result.start), { easing: easingFnToName(result.start.easing) });
425
+ }
426
+ if (((_b = result.end) === null || _b === void 0 ? void 0 : _b.easing) != null) {
427
+ result.end = Object.assign(Object.assign({}, result.end), { easing: easingFnToName(result.end.easing) });
428
+ }
429
+ return result;
430
+ }
431
+ function convertEasingFromRust(el) {
432
+ if (typeof el.easing === "string") {
433
+ el.easing = easingNameToFn(el.easing);
434
+ }
435
+ if (el.start && typeof el.start.easing === "string") {
436
+ el.start = Object.assign(Object.assign({}, el.start), { easing: easingNameToFn(el.start.easing) });
437
+ }
438
+ if (el.end && typeof el.end.easing === "string") {
439
+ el.end = Object.assign(Object.assign({}, el.end), { easing: easingNameToFn(el.end.easing) });
440
+ }
441
+ return el;
442
+ }