ducjs 2.4.0 → 3.0.3

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 (526) hide show
  1. package/README.md +4 -5
  2. package/dist/enums.d.ts +135 -0
  3. package/dist/enums.js +155 -0
  4. package/dist/index.d.ts +4 -1
  5. package/dist/index.js +4 -1
  6. package/dist/lazy-files.d.ts +31 -71
  7. package/dist/lazy-files.js +91 -163
  8. package/dist/parse.d.ts +16 -82
  9. package/dist/parse.js +56 -1646
  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 +126 -128
  14. package/dist/restore/restoreElements.d.ts +1 -1
  15. package/dist/restore/restoreElements.js +31 -499
  16. package/dist/serialize.d.ts +11 -4
  17. package/dist/serialize.js +58 -2546
  18. package/dist/technical/index.d.ts +0 -1
  19. package/dist/technical/index.js +0 -1
  20. package/dist/technical/scopes.d.ts +2 -2
  21. package/dist/technical/scopes.js +29 -14
  22. package/dist/transform.d.ts +12 -0
  23. package/dist/transform.js +442 -0
  24. package/dist/types/elements/index.d.ts +116 -689
  25. package/dist/types/elements/typeChecks.d.ts +3 -3
  26. package/dist/types/elements/typeChecks.js +3 -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 +3 -86
  30. package/dist/utils/constants.js +1 -197
  31. package/dist/utils/elements/index.d.ts +3 -14
  32. package/dist/utils/elements/index.js +7 -99
  33. package/dist/utils/elements/linearElement.d.ts +2 -2
  34. package/dist/utils/elements/newElement.d.ts +2 -12
  35. package/dist/utils/elements/newElement.js +22 -51
  36. package/dist/utils/elements/textElement.js +1 -1
  37. package/dist/utils/math/index.d.ts +5 -4
  38. package/dist/utils/math/index.js +3 -3
  39. package/dist/utils/shape.js +2 -2
  40. package/dist/utils/state/index.d.ts +0 -1
  41. package/dist/utils/state/index.js +4 -70
  42. package/dist/utils/traverse.d.ts +8 -0
  43. package/dist/utils/traverse.js +37 -0
  44. package/dist/version-control.d.ts +61 -0
  45. package/dist/version-control.js +84 -0
  46. package/dist/wasm.d.ts +20 -0
  47. package/dist/wasm.js +52 -0
  48. package/package.json +3 -2
  49. package/dist/flatbuffers/duc/alternate-units.d.ts +0 -21
  50. package/dist/flatbuffers/duc/alternate-units.js +0 -66
  51. package/dist/flatbuffers/duc/angular-unit-system.d.ts +0 -17
  52. package/dist/flatbuffers/duc/angular-unit-system.js +0 -50
  53. package/dist/flatbuffers/duc/angular-units-format.d.ts +0 -7
  54. package/dist/flatbuffers/duc/angular-units-format.js +0 -10
  55. package/dist/flatbuffers/duc/axis.d.ts +0 -5
  56. package/dist/flatbuffers/duc/axis.js +0 -8
  57. package/dist/flatbuffers/duc/bezier-mirroring.d.ts +0 -5
  58. package/dist/flatbuffers/duc/bezier-mirroring.js +0 -8
  59. package/dist/flatbuffers/duc/blending.d.ts +0 -9
  60. package/dist/flatbuffers/duc/blending.js +0 -12
  61. package/dist/flatbuffers/duc/block-attachment.d.ts +0 -4
  62. package/dist/flatbuffers/duc/block-attachment.js +0 -7
  63. package/dist/flatbuffers/duc/boolean-operation.d.ts +0 -6
  64. package/dist/flatbuffers/duc/boolean-operation.js +0 -9
  65. package/dist/flatbuffers/duc/bound-element.d.ts +0 -17
  66. package/dist/flatbuffers/duc/bound-element.js +0 -48
  67. package/dist/flatbuffers/duc/checkpoint.d.ts +0 -22
  68. package/dist/flatbuffers/duc/checkpoint.js +0 -75
  69. package/dist/flatbuffers/duc/column-layout.d.ts +0 -22
  70. package/dist/flatbuffers/duc/column-layout.js +0 -72
  71. package/dist/flatbuffers/duc/column-type.d.ts +0 -5
  72. package/dist/flatbuffers/duc/column-type.js +0 -8
  73. package/dist/flatbuffers/duc/custom-hatch-pattern.d.ts +0 -23
  74. package/dist/flatbuffers/duc/custom-hatch-pattern.js +0 -71
  75. package/dist/flatbuffers/duc/datum-bracket-style.d.ts +0 -5
  76. package/dist/flatbuffers/duc/datum-bracket-style.js +0 -8
  77. package/dist/flatbuffers/duc/datum-reference.d.ts +0 -17
  78. package/dist/flatbuffers/duc/datum-reference.js +0 -49
  79. package/dist/flatbuffers/duc/datum-target-type.d.ts +0 -6
  80. package/dist/flatbuffers/duc/datum-target-type.js +0 -9
  81. package/dist/flatbuffers/duc/decimal-separator.d.ts +0 -4
  82. package/dist/flatbuffers/duc/decimal-separator.js +0 -7
  83. package/dist/flatbuffers/duc/delta.d.ts +0 -22
  84. package/dist/flatbuffers/duc/delta.js +0 -75
  85. package/dist/flatbuffers/duc/dictionary-entry.d.ts +0 -17
  86. package/dist/flatbuffers/duc/dictionary-entry.js +0 -49
  87. package/dist/flatbuffers/duc/dimension-baseline-data.d.ts +0 -14
  88. package/dist/flatbuffers/duc/dimension-baseline-data.js +0 -40
  89. package/dist/flatbuffers/duc/dimension-bindings.d.ts +0 -17
  90. package/dist/flatbuffers/duc/dimension-bindings.js +0 -50
  91. package/dist/flatbuffers/duc/dimension-continue-data.d.ts +0 -14
  92. package/dist/flatbuffers/duc/dimension-continue-data.js +0 -40
  93. package/dist/flatbuffers/duc/dimension-definition-points.d.ts +0 -21
  94. package/dist/flatbuffers/duc/dimension-definition-points.js +0 -64
  95. package/dist/flatbuffers/duc/dimension-ext-line-style.d.ts +0 -18
  96. package/dist/flatbuffers/duc/dimension-ext-line-style.js +0 -57
  97. package/dist/flatbuffers/duc/dimension-fit-rule.d.ts +0 -6
  98. package/dist/flatbuffers/duc/dimension-fit-rule.js +0 -9
  99. package/dist/flatbuffers/duc/dimension-fit-style.d.ts +0 -19
  100. package/dist/flatbuffers/duc/dimension-fit-style.js +0 -58
  101. package/dist/flatbuffers/duc/dimension-line-style.d.ts +0 -16
  102. package/dist/flatbuffers/duc/dimension-line-style.js +0 -49
  103. package/dist/flatbuffers/duc/dimension-symbol-style.d.ts +0 -22
  104. package/dist/flatbuffers/duc/dimension-symbol-style.js +0 -72
  105. package/dist/flatbuffers/duc/dimension-text-placement.d.ts +0 -5
  106. package/dist/flatbuffers/duc/dimension-text-placement.js +0 -8
  107. package/dist/flatbuffers/duc/dimension-tolerance-style.d.ts +0 -24
  108. package/dist/flatbuffers/duc/dimension-tolerance-style.js +0 -71
  109. package/dist/flatbuffers/duc/dimension-type.d.ts +0 -15
  110. package/dist/flatbuffers/duc/dimension-type.js +0 -18
  111. package/dist/flatbuffers/duc/dimension-units-format.d.ts +0 -7
  112. package/dist/flatbuffers/duc/dimension-units-format.js +0 -10
  113. package/dist/flatbuffers/duc/dimension-validation-rules.d.ts +0 -25
  114. package/dist/flatbuffers/duc/dimension-validation-rules.js +0 -74
  115. package/dist/flatbuffers/duc/document-grid-align-items.d.ts +0 -5
  116. package/dist/flatbuffers/duc/document-grid-align-items.js +0 -8
  117. package/dist/flatbuffers/duc/document-grid-config.d.ts +0 -24
  118. package/dist/flatbuffers/duc/document-grid-config.js +0 -81
  119. package/dist/flatbuffers/duc/duc-arrow-element.d.ts +0 -16
  120. package/dist/flatbuffers/duc/duc-arrow-element.js +0 -49
  121. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.d.ts +0 -16
  122. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.js +0 -44
  123. package/dist/flatbuffers/duc/duc-block-attribute-definition.d.ts +0 -22
  124. package/dist/flatbuffers/duc/duc-block-attribute-definition.js +0 -64
  125. package/dist/flatbuffers/duc/duc-block-collection-entry.d.ts +0 -16
  126. package/dist/flatbuffers/duc/duc-block-collection-entry.js +0 -48
  127. package/dist/flatbuffers/duc/duc-block-collection.d.ts +0 -31
  128. package/dist/flatbuffers/duc/duc-block-collection.js +0 -97
  129. package/dist/flatbuffers/duc/duc-block-duplication-array.d.ts +0 -19
  130. package/dist/flatbuffers/duc/duc-block-duplication-array.js +0 -64
  131. package/dist/flatbuffers/duc/duc-block-instance-element.d.ts +0 -10
  132. package/dist/flatbuffers/duc/duc-block-instance-element.js +0 -28
  133. package/dist/flatbuffers/duc/duc-block-instance.d.ts +0 -32
  134. package/dist/flatbuffers/duc/duc-block-instance.js +0 -100
  135. package/dist/flatbuffers/duc/duc-block-metadata.d.ts +0 -26
  136. package/dist/flatbuffers/duc/duc-block-metadata.js +0 -90
  137. package/dist/flatbuffers/duc/duc-block.d.ts +0 -36
  138. package/dist/flatbuffers/duc/duc-block.js +0 -112
  139. package/dist/flatbuffers/duc/duc-common-style.d.ts +0 -16
  140. package/dist/flatbuffers/duc/duc-common-style.js +0 -44
  141. package/dist/flatbuffers/duc/duc-dimension-element.d.ts +0 -45
  142. package/dist/flatbuffers/duc/duc-dimension-element.js +0 -120
  143. package/dist/flatbuffers/duc/duc-dimension-style.d.ts +0 -28
  144. package/dist/flatbuffers/duc/duc-dimension-style.js +0 -76
  145. package/dist/flatbuffers/duc/duc-doc-element.d.ts +0 -39
  146. package/dist/flatbuffers/duc/duc-doc-element.js +0 -110
  147. package/dist/flatbuffers/duc/duc-doc-style.d.ts +0 -19
  148. package/dist/flatbuffers/duc/duc-doc-style.js +0 -52
  149. package/dist/flatbuffers/duc/duc-element-base.d.ts +0 -100
  150. package/dist/flatbuffers/duc/duc-element-base.js +0 -315
  151. package/dist/flatbuffers/duc/duc-element-styles-base.d.ts +0 -30
  152. package/dist/flatbuffers/duc/duc-element-styles-base.js +0 -103
  153. package/dist/flatbuffers/duc/duc-ellipse-element.d.ts +0 -22
  154. package/dist/flatbuffers/duc/duc-ellipse-element.js +0 -73
  155. package/dist/flatbuffers/duc/duc-embeddable-element.d.ts +0 -14
  156. package/dist/flatbuffers/duc/duc-embeddable-element.js +0 -41
  157. package/dist/flatbuffers/duc/duc-external-file-data.d.ts +0 -27
  158. package/dist/flatbuffers/duc/duc-external-file-data.js +0 -92
  159. package/dist/flatbuffers/duc/duc-external-file-entry.d.ts +0 -16
  160. package/dist/flatbuffers/duc/duc-external-file-entry.js +0 -44
  161. package/dist/flatbuffers/duc/duc-feature-control-frame-element.d.ts +0 -31
  162. package/dist/flatbuffers/duc/duc-feature-control-frame-element.js +0 -89
  163. package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +0 -22
  164. package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +0 -60
  165. package/dist/flatbuffers/duc/duc-frame-element.d.ts +0 -14
  166. package/dist/flatbuffers/duc/duc-frame-element.js +0 -41
  167. package/dist/flatbuffers/duc/duc-free-draw-element.d.ts +0 -52
  168. package/dist/flatbuffers/duc/duc-free-draw-element.js +0 -154
  169. package/dist/flatbuffers/duc/duc-free-draw-ends.d.ts +0 -18
  170. package/dist/flatbuffers/duc/duc-free-draw-ends.js +0 -56
  171. package/dist/flatbuffers/duc/duc-global-state.d.ts +0 -37
  172. package/dist/flatbuffers/duc/duc-global-state.js +0 -121
  173. package/dist/flatbuffers/duc/duc-group.d.ts +0 -16
  174. package/dist/flatbuffers/duc/duc-group.js +0 -44
  175. package/dist/flatbuffers/duc/duc-hatch-style.d.ts +0 -28
  176. package/dist/flatbuffers/duc/duc-hatch-style.js +0 -79
  177. package/dist/flatbuffers/duc/duc-head.d.ts +0 -19
  178. package/dist/flatbuffers/duc/duc-head.js +0 -57
  179. package/dist/flatbuffers/duc/duc-image-element.d.ts +0 -35
  180. package/dist/flatbuffers/duc/duc-image-element.js +0 -91
  181. package/dist/flatbuffers/duc/duc-image-filter.d.ts +0 -15
  182. package/dist/flatbuffers/duc/duc-image-filter.js +0 -48
  183. package/dist/flatbuffers/duc/duc-layer-overrides.d.ts +0 -16
  184. package/dist/flatbuffers/duc/duc-layer-overrides.js +0 -44
  185. package/dist/flatbuffers/duc/duc-layer.d.ts +0 -21
  186. package/dist/flatbuffers/duc/duc-layer.js +0 -59
  187. package/dist/flatbuffers/duc/duc-leader-element.d.ts +0 -22
  188. package/dist/flatbuffers/duc/duc-leader-element.js +0 -60
  189. package/dist/flatbuffers/duc/duc-leader-style.d.ts +0 -27
  190. package/dist/flatbuffers/duc/duc-leader-style.js +0 -79
  191. package/dist/flatbuffers/duc/duc-line-reference.d.ts +0 -15
  192. package/dist/flatbuffers/duc/duc-line-reference.js +0 -43
  193. package/dist/flatbuffers/duc/duc-line.d.ts +0 -15
  194. package/dist/flatbuffers/duc/duc-line.js +0 -43
  195. package/dist/flatbuffers/duc/duc-linear-element-base.d.ts +0 -38
  196. package/dist/flatbuffers/duc/duc-linear-element-base.js +0 -124
  197. package/dist/flatbuffers/duc/duc-linear-element.d.ts +0 -16
  198. package/dist/flatbuffers/duc/duc-linear-element.js +0 -49
  199. package/dist/flatbuffers/duc/duc-local-state.d.ts +0 -68
  200. package/dist/flatbuffers/duc/duc-local-state.js +0 -206
  201. package/dist/flatbuffers/duc/duc-mermaid-element.d.ts +0 -23
  202. package/dist/flatbuffers/duc/duc-mermaid-element.js +0 -65
  203. package/dist/flatbuffers/duc/duc-model-element.d.ts +0 -26
  204. package/dist/flatbuffers/duc/duc-model-element.js +0 -79
  205. package/dist/flatbuffers/duc/duc-parametric-element.d.ts +0 -16
  206. package/dist/flatbuffers/duc/duc-parametric-element.js +0 -44
  207. package/dist/flatbuffers/duc/duc-path.d.ts +0 -26
  208. package/dist/flatbuffers/duc/duc-path.js +0 -69
  209. package/dist/flatbuffers/duc/duc-pdf-element.d.ts +0 -19
  210. package/dist/flatbuffers/duc/duc-pdf-element.js +0 -51
  211. package/dist/flatbuffers/duc/duc-plot-element.d.ts +0 -19
  212. package/dist/flatbuffers/duc/duc-plot-element.js +0 -52
  213. package/dist/flatbuffers/duc/duc-plot-style.d.ts +0 -11
  214. package/dist/flatbuffers/duc/duc-plot-style.js +0 -32
  215. package/dist/flatbuffers/duc/duc-point-binding.d.ts +0 -26
  216. package/dist/flatbuffers/duc/duc-point-binding.js +0 -73
  217. package/dist/flatbuffers/duc/duc-point.d.ts +0 -18
  218. package/dist/flatbuffers/duc/duc-point.js +0 -57
  219. package/dist/flatbuffers/duc/duc-polygon-element.d.ts +0 -16
  220. package/dist/flatbuffers/duc/duc-polygon-element.js +0 -49
  221. package/dist/flatbuffers/duc/duc-rectangle-element.d.ts +0 -14
  222. package/dist/flatbuffers/duc/duc-rectangle-element.js +0 -41
  223. package/dist/flatbuffers/duc/duc-region.d.ts +0 -19
  224. package/dist/flatbuffers/duc/duc-region.js +0 -51
  225. package/dist/flatbuffers/duc/duc-stack-base.d.ts +0 -27
  226. package/dist/flatbuffers/duc/duc-stack-base.js +0 -78
  227. package/dist/flatbuffers/duc/duc-stack-element-base.d.ts +0 -23
  228. package/dist/flatbuffers/duc/duc-stack-element-base.js +0 -65
  229. package/dist/flatbuffers/duc/duc-stack-like-styles.d.ts +0 -16
  230. package/dist/flatbuffers/duc/duc-stack-like-styles.js +0 -48
  231. package/dist/flatbuffers/duc/duc-table-auto-size.d.ts +0 -15
  232. package/dist/flatbuffers/duc/duc-table-auto-size.js +0 -48
  233. package/dist/flatbuffers/duc/duc-table-cell-entry.d.ts +0 -16
  234. package/dist/flatbuffers/duc/duc-table-cell-entry.js +0 -44
  235. package/dist/flatbuffers/duc/duc-table-cell-span.d.ts +0 -15
  236. package/dist/flatbuffers/duc/duc-table-cell-span.js +0 -48
  237. package/dist/flatbuffers/duc/duc-table-cell-style.d.ts +0 -22
  238. package/dist/flatbuffers/duc/duc-table-cell-style.js +0 -59
  239. package/dist/flatbuffers/duc/duc-table-cell.d.ts +0 -27
  240. package/dist/flatbuffers/duc/duc-table-cell.js +0 -72
  241. package/dist/flatbuffers/duc/duc-table-column-entry.d.ts +0 -16
  242. package/dist/flatbuffers/duc/duc-table-column-entry.js +0 -44
  243. package/dist/flatbuffers/duc/duc-table-column.d.ts +0 -18
  244. package/dist/flatbuffers/duc/duc-table-column.js +0 -51
  245. package/dist/flatbuffers/duc/duc-table-element.d.ts +0 -51
  246. package/dist/flatbuffers/duc/duc-table-element.js +0 -167
  247. package/dist/flatbuffers/duc/duc-table-row-entry.d.ts +0 -16
  248. package/dist/flatbuffers/duc/duc-table-row-entry.js +0 -44
  249. package/dist/flatbuffers/duc/duc-table-row.d.ts +0 -18
  250. package/dist/flatbuffers/duc/duc-table-row.js +0 -51
  251. package/dist/flatbuffers/duc/duc-table-style.d.ts +0 -20
  252. package/dist/flatbuffers/duc/duc-table-style.js +0 -57
  253. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.d.ts +0 -14
  254. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.js +0 -40
  255. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.d.ts +0 -17
  256. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.js +0 -49
  257. package/dist/flatbuffers/duc/duc-text-dynamic-part.d.ts +0 -22
  258. package/dist/flatbuffers/duc/duc-text-dynamic-part.js +0 -58
  259. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.d.ts +0 -9
  260. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.js +0 -26
  261. package/dist/flatbuffers/duc/duc-text-dynamic-source.d.ts +0 -19
  262. package/dist/flatbuffers/duc/duc-text-dynamic-source.js +0 -58
  263. package/dist/flatbuffers/duc/duc-text-element.d.ts +0 -33
  264. package/dist/flatbuffers/duc/duc-text-element.js +0 -94
  265. package/dist/flatbuffers/duc/duc-text-style.d.ts +0 -41
  266. package/dist/flatbuffers/duc/duc-text-style.js +0 -120
  267. package/dist/flatbuffers/duc/duc-ucs.d.ts +0 -16
  268. package/dist/flatbuffers/duc/duc-ucs.js +0 -49
  269. package/dist/flatbuffers/duc/duc-view.d.ts +0 -24
  270. package/dist/flatbuffers/duc/duc-view.js +0 -71
  271. package/dist/flatbuffers/duc/duc-viewport-element.d.ts +0 -36
  272. package/dist/flatbuffers/duc/duc-viewport-element.js +0 -102
  273. package/dist/flatbuffers/duc/duc-viewport-style.d.ts +0 -13
  274. package/dist/flatbuffers/duc/duc-viewport-style.js +0 -40
  275. package/dist/flatbuffers/duc/duc-xray-element.d.ts +0 -23
  276. package/dist/flatbuffers/duc/duc-xray-element.js +0 -66
  277. package/dist/flatbuffers/duc/duc-xray-style.d.ts +0 -14
  278. package/dist/flatbuffers/duc/duc-xray-style.js +0 -40
  279. package/dist/flatbuffers/duc/dynamic-snap-settings.d.ts +0 -17
  280. package/dist/flatbuffers/duc/dynamic-snap-settings.js +0 -56
  281. package/dist/flatbuffers/duc/element-background.d.ts +0 -14
  282. package/dist/flatbuffers/duc/element-background.js +0 -41
  283. package/dist/flatbuffers/duc/element-content-base.d.ts +0 -29
  284. package/dist/flatbuffers/duc/element-content-base.js +0 -80
  285. package/dist/flatbuffers/duc/element-content-preference.d.ts +0 -8
  286. package/dist/flatbuffers/duc/element-content-preference.js +0 -11
  287. package/dist/flatbuffers/duc/element-stroke.d.ts +0 -24
  288. package/dist/flatbuffers/duc/element-stroke.js +0 -66
  289. package/dist/flatbuffers/duc/element-wrapper.d.ts +0 -16
  290. package/dist/flatbuffers/duc/element-wrapper.js +0 -49
  291. package/dist/flatbuffers/duc/element.d.ts +0 -51
  292. package/dist/flatbuffers/duc/element.js +0 -110
  293. package/dist/flatbuffers/duc/exported-data-state.d.ts +0 -102
  294. package/dist/flatbuffers/duc/exported-data-state.js +0 -341
  295. package/dist/flatbuffers/duc/fcfbetween-modifier.d.ts +0 -17
  296. package/dist/flatbuffers/duc/fcfbetween-modifier.js +0 -48
  297. package/dist/flatbuffers/duc/fcfdatum-definition.d.ts +0 -16
  298. package/dist/flatbuffers/duc/fcfdatum-definition.js +0 -43
  299. package/dist/flatbuffers/duc/fcfdatum-style.d.ts +0 -14
  300. package/dist/flatbuffers/duc/fcfdatum-style.js +0 -41
  301. package/dist/flatbuffers/duc/fcfframe-modifiers.d.ts +0 -22
  302. package/dist/flatbuffers/duc/fcfframe-modifiers.js +0 -65
  303. package/dist/flatbuffers/duc/fcflayout-style.d.ts +0 -17
  304. package/dist/flatbuffers/duc/fcflayout-style.js +0 -56
  305. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.d.ts +0 -13
  306. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.js +0 -40
  307. package/dist/flatbuffers/duc/fcfsegment-row.d.ts +0 -17
  308. package/dist/flatbuffers/duc/fcfsegment-row.js +0 -55
  309. package/dist/flatbuffers/duc/fcfsymbol-style.d.ts +0 -13
  310. package/dist/flatbuffers/duc/fcfsymbol-style.js +0 -40
  311. package/dist/flatbuffers/duc/feature-control-frame-segment.d.ts +0 -22
  312. package/dist/flatbuffers/duc/feature-control-frame-segment.js +0 -65
  313. package/dist/flatbuffers/duc/feature-modifier.d.ts +0 -18
  314. package/dist/flatbuffers/duc/feature-modifier.js +0 -21
  315. package/dist/flatbuffers/duc/gdt-symbol.d.ts +0 -22
  316. package/dist/flatbuffers/duc/gdt-symbol.js +0 -25
  317. package/dist/flatbuffers/duc/geometric-point.d.ts +0 -10
  318. package/dist/flatbuffers/duc/geometric-point.js +0 -27
  319. package/dist/flatbuffers/duc/grid-display-type.d.ts +0 -6
  320. package/dist/flatbuffers/duc/grid-display-type.js +0 -9
  321. package/dist/flatbuffers/duc/grid-settings.d.ts +0 -54
  322. package/dist/flatbuffers/duc/grid-settings.js +0 -165
  323. package/dist/flatbuffers/duc/grid-style.d.ts +0 -26
  324. package/dist/flatbuffers/duc/grid-style.js +0 -74
  325. package/dist/flatbuffers/duc/grid-type.d.ts +0 -7
  326. package/dist/flatbuffers/duc/grid-type.js +0 -10
  327. package/dist/flatbuffers/duc/handle-type.d.ts +0 -4
  328. package/dist/flatbuffers/duc/handle-type.js +0 -7
  329. package/dist/flatbuffers/duc/hatch-pattern-line.d.ts +0 -35
  330. package/dist/flatbuffers/duc/hatch-pattern-line.js +0 -93
  331. package/dist/flatbuffers/duc/hatch-style.d.ts +0 -5
  332. package/dist/flatbuffers/duc/hatch-style.js +0 -8
  333. package/dist/flatbuffers/duc/identified-common-style.d.ts +0 -16
  334. package/dist/flatbuffers/duc/identified-common-style.js +0 -44
  335. package/dist/flatbuffers/duc/identified-dimension-style.d.ts +0 -16
  336. package/dist/flatbuffers/duc/identified-dimension-style.js +0 -44
  337. package/dist/flatbuffers/duc/identified-doc-style.d.ts +0 -16
  338. package/dist/flatbuffers/duc/identified-doc-style.js +0 -44
  339. package/dist/flatbuffers/duc/identified-fcfstyle.d.ts +0 -16
  340. package/dist/flatbuffers/duc/identified-fcfstyle.js +0 -44
  341. package/dist/flatbuffers/duc/identified-grid-settings.d.ts +0 -16
  342. package/dist/flatbuffers/duc/identified-grid-settings.js +0 -44
  343. package/dist/flatbuffers/duc/identified-hatch-style.d.ts +0 -16
  344. package/dist/flatbuffers/duc/identified-hatch-style.js +0 -44
  345. package/dist/flatbuffers/duc/identified-leader-style.d.ts +0 -16
  346. package/dist/flatbuffers/duc/identified-leader-style.js +0 -44
  347. package/dist/flatbuffers/duc/identified-snap-settings.d.ts +0 -16
  348. package/dist/flatbuffers/duc/identified-snap-settings.js +0 -44
  349. package/dist/flatbuffers/duc/identified-stack-like-style.d.ts +0 -16
  350. package/dist/flatbuffers/duc/identified-stack-like-style.js +0 -44
  351. package/dist/flatbuffers/duc/identified-table-style.d.ts +0 -16
  352. package/dist/flatbuffers/duc/identified-table-style.js +0 -44
  353. package/dist/flatbuffers/duc/identified-text-style.d.ts +0 -16
  354. package/dist/flatbuffers/duc/identified-text-style.js +0 -44
  355. package/dist/flatbuffers/duc/identified-ucs.d.ts +0 -16
  356. package/dist/flatbuffers/duc/identified-ucs.js +0 -44
  357. package/dist/flatbuffers/duc/identified-view.d.ts +0 -16
  358. package/dist/flatbuffers/duc/identified-view.js +0 -44
  359. package/dist/flatbuffers/duc/identified-viewport-style.d.ts +0 -16
  360. package/dist/flatbuffers/duc/identified-viewport-style.js +0 -44
  361. package/dist/flatbuffers/duc/identified-xray-style.d.ts +0 -16
  362. package/dist/flatbuffers/duc/identified-xray-style.js +0 -44
  363. package/dist/flatbuffers/duc/identifier.d.ts +0 -20
  364. package/dist/flatbuffers/duc/identifier.js +0 -57
  365. package/dist/flatbuffers/duc/image-crop.d.ts +0 -23
  366. package/dist/flatbuffers/duc/image-crop.js +0 -80
  367. package/dist/flatbuffers/duc/image-status.d.ts +0 -5
  368. package/dist/flatbuffers/duc/image-status.js +0 -8
  369. package/dist/flatbuffers/duc/isometric-grid-settings.d.ts +0 -15
  370. package/dist/flatbuffers/duc/isometric-grid-settings.js +0 -48
  371. package/dist/flatbuffers/duc/jsonpatch-operation.d.ts +0 -23
  372. package/dist/flatbuffers/duc/jsonpatch-operation.js +0 -64
  373. package/dist/flatbuffers/duc/layer-snap-filters.d.ts +0 -23
  374. package/dist/flatbuffers/duc/layer-snap-filters.js +0 -76
  375. package/dist/flatbuffers/duc/layer-validation-rules.d.ts +0 -17
  376. package/dist/flatbuffers/duc/layer-validation-rules.js +0 -54
  377. package/dist/flatbuffers/duc/leader-block-content.d.ts +0 -25
  378. package/dist/flatbuffers/duc/leader-block-content.js +0 -85
  379. package/dist/flatbuffers/duc/leader-content-data.d.ts +0 -9
  380. package/dist/flatbuffers/duc/leader-content-data.js +0 -26
  381. package/dist/flatbuffers/duc/leader-content-type.d.ts +0 -4
  382. package/dist/flatbuffers/duc/leader-content-type.js +0 -7
  383. package/dist/flatbuffers/duc/leader-content.d.ts +0 -19
  384. package/dist/flatbuffers/duc/leader-content.js +0 -58
  385. package/dist/flatbuffers/duc/leader-text-block-content.d.ts +0 -14
  386. package/dist/flatbuffers/duc/leader-text-block-content.js +0 -40
  387. package/dist/flatbuffers/duc/line-head.d.ts +0 -17
  388. package/dist/flatbuffers/duc/line-head.js +0 -20
  389. package/dist/flatbuffers/duc/line-spacing-type.d.ts +0 -5
  390. package/dist/flatbuffers/duc/line-spacing-type.js +0 -8
  391. package/dist/flatbuffers/duc/line-spacing.d.ts +0 -16
  392. package/dist/flatbuffers/duc/line-spacing.js +0 -49
  393. package/dist/flatbuffers/duc/linear-unit-system.d.ts +0 -24
  394. package/dist/flatbuffers/duc/linear-unit-system.js +0 -75
  395. package/dist/flatbuffers/duc/margins.d.ts +0 -19
  396. package/dist/flatbuffers/duc/margins.js +0 -64
  397. package/dist/flatbuffers/duc/mark-ellipse-center.d.ts +0 -4
  398. package/dist/flatbuffers/duc/mark-ellipse-center.js +0 -7
  399. package/dist/flatbuffers/duc/material-condition.d.ts +0 -5
  400. package/dist/flatbuffers/duc/material-condition.js +0 -8
  401. package/dist/flatbuffers/duc/object-snap-mode.d.ts +0 -22
  402. package/dist/flatbuffers/duc/object-snap-mode.js +0 -25
  403. package/dist/flatbuffers/duc/paragraph-formatting.d.ts +0 -33
  404. package/dist/flatbuffers/duc/paragraph-formatting.js +0 -106
  405. package/dist/flatbuffers/duc/parametric-source-type.d.ts +0 -4
  406. package/dist/flatbuffers/duc/parametric-source-type.js +0 -7
  407. package/dist/flatbuffers/duc/parametric-source.d.ts +0 -20
  408. package/dist/flatbuffers/duc/parametric-source.js +0 -57
  409. package/dist/flatbuffers/duc/plot-layout.d.ts +0 -14
  410. package/dist/flatbuffers/duc/plot-layout.js +0 -41
  411. package/dist/flatbuffers/duc/point-binding-point.d.ts +0 -15
  412. package/dist/flatbuffers/duc/point-binding-point.js +0 -48
  413. package/dist/flatbuffers/duc/polar-grid-settings.d.ts +0 -17
  414. package/dist/flatbuffers/duc/polar-grid-settings.js +0 -56
  415. package/dist/flatbuffers/duc/polar-tracking-settings.d.ts +0 -29
  416. package/dist/flatbuffers/duc/polar-tracking-settings.js +0 -90
  417. package/dist/flatbuffers/duc/primary-units.d.ts +0 -16
  418. package/dist/flatbuffers/duc/primary-units.js +0 -44
  419. package/dist/flatbuffers/duc/pruning-level.d.ts +0 -5
  420. package/dist/flatbuffers/duc/pruning-level.js +0 -8
  421. package/dist/flatbuffers/duc/snap-marker-settings.d.ts +0 -23
  422. package/dist/flatbuffers/duc/snap-marker-settings.js +0 -79
  423. package/dist/flatbuffers/duc/snap-marker-shape.d.ts +0 -6
  424. package/dist/flatbuffers/duc/snap-marker-shape.js +0 -9
  425. package/dist/flatbuffers/duc/snap-marker-style-entry.d.ts +0 -16
  426. package/dist/flatbuffers/duc/snap-marker-style-entry.js +0 -43
  427. package/dist/flatbuffers/duc/snap-marker-style.d.ts +0 -17
  428. package/dist/flatbuffers/duc/snap-marker-style.js +0 -49
  429. package/dist/flatbuffers/duc/snap-mode.d.ts +0 -4
  430. package/dist/flatbuffers/duc/snap-mode.js +0 -7
  431. package/dist/flatbuffers/duc/snap-override-behavior.d.ts +0 -5
  432. package/dist/flatbuffers/duc/snap-override-behavior.js +0 -8
  433. package/dist/flatbuffers/duc/snap-override.d.ts +0 -17
  434. package/dist/flatbuffers/duc/snap-override.js +0 -49
  435. package/dist/flatbuffers/duc/snap-settings.d.ts +0 -75
  436. package/dist/flatbuffers/duc/snap-settings.js +0 -245
  437. package/dist/flatbuffers/duc/stack-format-properties.d.ts +0 -18
  438. package/dist/flatbuffers/duc/stack-format-properties.js +0 -57
  439. package/dist/flatbuffers/duc/stack-format.d.ts +0 -21
  440. package/dist/flatbuffers/duc/stack-format.js +0 -64
  441. package/dist/flatbuffers/duc/stacked-text-align.d.ts +0 -5
  442. package/dist/flatbuffers/duc/stacked-text-align.js +0 -8
  443. package/dist/flatbuffers/duc/standard-overrides.d.ts +0 -63
  444. package/dist/flatbuffers/duc/standard-overrides.js +0 -162
  445. package/dist/flatbuffers/duc/standard-styles.d.ts +0 -77
  446. package/dist/flatbuffers/duc/standard-styles.js +0 -285
  447. package/dist/flatbuffers/duc/standard-units.d.ts +0 -16
  448. package/dist/flatbuffers/duc/standard-units.js +0 -44
  449. package/dist/flatbuffers/duc/standard-validation.d.ts +0 -16
  450. package/dist/flatbuffers/duc/standard-validation.js +0 -44
  451. package/dist/flatbuffers/duc/standard-view-settings.d.ts +0 -35
  452. package/dist/flatbuffers/duc/standard-view-settings.js +0 -124
  453. package/dist/flatbuffers/duc/standard.d.ts +0 -33
  454. package/dist/flatbuffers/duc/standard.js +0 -90
  455. package/dist/flatbuffers/duc/string-value-entry.d.ts +0 -17
  456. package/dist/flatbuffers/duc/string-value-entry.js +0 -49
  457. package/dist/flatbuffers/duc/stroke-cap.d.ts +0 -5
  458. package/dist/flatbuffers/duc/stroke-cap.js +0 -8
  459. package/dist/flatbuffers/duc/stroke-join.d.ts +0 -5
  460. package/dist/flatbuffers/duc/stroke-join.js +0 -8
  461. package/dist/flatbuffers/duc/stroke-placement.d.ts +0 -5
  462. package/dist/flatbuffers/duc/stroke-placement.js +0 -8
  463. package/dist/flatbuffers/duc/stroke-preference.d.ts +0 -6
  464. package/dist/flatbuffers/duc/stroke-preference.js +0 -9
  465. package/dist/flatbuffers/duc/stroke-side-preference.d.ts +0 -8
  466. package/dist/flatbuffers/duc/stroke-side-preference.js +0 -11
  467. package/dist/flatbuffers/duc/stroke-sides.d.ts +0 -24
  468. package/dist/flatbuffers/duc/stroke-sides.js +0 -67
  469. package/dist/flatbuffers/duc/stroke-style.d.ts +0 -37
  470. package/dist/flatbuffers/duc/stroke-style.js +0 -111
  471. package/dist/flatbuffers/duc/stroke-width.d.ts +0 -5
  472. package/dist/flatbuffers/duc/stroke-width.js +0 -8
  473. package/dist/flatbuffers/duc/table-cell-alignment.d.ts +0 -11
  474. package/dist/flatbuffers/duc/table-cell-alignment.js +0 -14
  475. package/dist/flatbuffers/duc/table-flow-direction.d.ts +0 -4
  476. package/dist/flatbuffers/duc/table-flow-direction.js +0 -7
  477. package/dist/flatbuffers/duc/text-align.d.ts +0 -5
  478. package/dist/flatbuffers/duc/text-align.js +0 -8
  479. package/dist/flatbuffers/duc/text-column.d.ts +0 -15
  480. package/dist/flatbuffers/duc/text-column.js +0 -48
  481. package/dist/flatbuffers/duc/text-field-source-property.d.ts +0 -13
  482. package/dist/flatbuffers/duc/text-field-source-property.js +0 -16
  483. package/dist/flatbuffers/duc/text-field-source-type.d.ts +0 -4
  484. package/dist/flatbuffers/duc/text-field-source-type.js +0 -7
  485. package/dist/flatbuffers/duc/text-flow-direction.d.ts +0 -6
  486. package/dist/flatbuffers/duc/text-flow-direction.js +0 -9
  487. package/dist/flatbuffers/duc/tiling-properties.d.ts +0 -21
  488. package/dist/flatbuffers/duc/tiling-properties.js +0 -75
  489. package/dist/flatbuffers/duc/tolerance-clause.d.ts +0 -27
  490. package/dist/flatbuffers/duc/tolerance-clause.js +0 -84
  491. package/dist/flatbuffers/duc/tolerance-display.d.ts +0 -7
  492. package/dist/flatbuffers/duc/tolerance-display.js +0 -10
  493. package/dist/flatbuffers/duc/tolerance-type.d.ts +0 -5
  494. package/dist/flatbuffers/duc/tolerance-type.js +0 -8
  495. package/dist/flatbuffers/duc/tolerance-zone-type.d.ts +0 -7
  496. package/dist/flatbuffers/duc/tolerance-zone-type.js +0 -10
  497. package/dist/flatbuffers/duc/tracking-line-style.d.ts +0 -26
  498. package/dist/flatbuffers/duc/tracking-line-style.js +0 -74
  499. package/dist/flatbuffers/duc/unit-precision.d.ts +0 -19
  500. package/dist/flatbuffers/duc/unit-precision.js +0 -64
  501. package/dist/flatbuffers/duc/unit-system-base.d.ts +0 -20
  502. package/dist/flatbuffers/duc/unit-system-base.js +0 -65
  503. package/dist/flatbuffers/duc/unit-system.d.ts +0 -4
  504. package/dist/flatbuffers/duc/unit-system.js +0 -7
  505. package/dist/flatbuffers/duc/version-base.d.ts +0 -27
  506. package/dist/flatbuffers/duc/version-base.js +0 -80
  507. package/dist/flatbuffers/duc/version-graph-metadata.d.ts +0 -15
  508. package/dist/flatbuffers/duc/version-graph-metadata.js +0 -48
  509. package/dist/flatbuffers/duc/version-graph.d.ts +0 -31
  510. package/dist/flatbuffers/duc/version-graph.js +0 -94
  511. package/dist/flatbuffers/duc/vertical-align.d.ts +0 -5
  512. package/dist/flatbuffers/duc/vertical-align.js +0 -8
  513. package/dist/flatbuffers/duc/viewport-shade-plot.d.ts +0 -6
  514. package/dist/flatbuffers/duc/viewport-shade-plot.js +0 -9
  515. package/dist/flatbuffers/duc/youtube-states.d.ts +0 -8
  516. package/dist/flatbuffers/duc/youtube-states.js +0 -11
  517. package/dist/flatbuffers/duc.d.ts +0 -234
  518. package/dist/flatbuffers/duc.js +0 -236
  519. package/dist/restore/restoreStandards.d.ts +0 -8
  520. package/dist/restore/restoreStandards.js +0 -224
  521. package/dist/technical/standards.d.ts +0 -124
  522. package/dist/technical/standards.js +0 -10
  523. package/dist/utils/elements/viewportElement.d.ts +0 -6
  524. package/dist/utils/elements/viewportElement.js +0 -9
  525. package/dist/utils/state/grid.d.ts +0 -7
  526. package/dist/utils/state/grid.js +0 -25
package/dist/serialize.js CHANGED
@@ -7,2560 +7,72 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- /* eslint-disable @typescript-eslint/consistent-type-definitions */
11
- /* IMPORTANT:
12
- - Single-file serializer for DUC FlatBuffers schema.
13
- - No enum remapping tables: use enums directly from ducjs/flatbuffers/duc.
14
- - No defaults added: only write what's present in TS objects.
15
- - PrecisionValue, Radian, Percentage, ScaleFactor, etc. are branded numbers:
16
- cast to number at the final write site (e.g. pv.value).
17
- - Keep args strongly typed. Never use any for function args.
18
- */
19
- import * as flatbuffers from "flatbuffers";
20
- import * as Duc from "./flatbuffers/duc";
21
- import { zlibSync, strToU8 } from "fflate";
22
10
  import { restore } from "./restore";
23
- import { encodeFunctionString, EXPORT_DATA_TYPES } from "./utils";
24
- /**
25
- * Basic helpers
26
- */
27
- const str = (b, v) => v == null ? undefined : b.createString(v);
28
- function writeString(builder, str) {
29
- if (str === null || str === undefined)
30
- return undefined;
31
- return builder.createString(str);
32
- }
33
- function getPrecisionValue(value, useScopedValues) {
34
- return useScopedValues ? value.scoped : value.value;
35
- }
36
- function writeStringVector(builder, items) {
37
- if (!items || items.length === 0)
38
- return undefined;
39
- const arr = Array.isArray(items) ? items.slice() : Array.from(items);
40
- const offsets = arr.map(item => (item ? builder.createString(item) : 0)).filter((offset) => offset !== 0);
41
- if (offsets.length === 0)
42
- return undefined;
43
- // This helper is used for multiple vector fields; return a builder vector; caller decides which create*Vector to use.
44
- // For current callers that expect createGroupIdsVector specifically, fallback to generic createVector via builder.start/endVector
45
- builder.startVector(4, offsets.length, 4);
46
- for (let i = offsets.length - 1; i >= 0; i--) {
47
- builder.addOffset(offsets[i]);
48
- }
49
- return builder.endVector();
50
- }
51
- /**
52
- * Element style/content serializers
53
- */
54
- function writeTiling(b, t, usv) {
55
- if (!t)
56
- return undefined;
57
- Duc.TilingProperties.startTilingProperties(b);
58
- Duc.TilingProperties.addSizeInPercent(b, t.sizeInPercent);
59
- Duc.TilingProperties.addAngle(b, t.angle);
60
- if (t.spacing !== undefined)
61
- Duc.TilingProperties.addSpacing(b, t.spacing);
62
- if (t.offsetX !== undefined)
63
- Duc.TilingProperties.addOffsetX(b, t.offsetX);
64
- if (t.offsetY !== undefined)
65
- Duc.TilingProperties.addOffsetY(b, t.offsetY);
66
- return Duc.TilingProperties.endTilingProperties(b);
67
- }
68
- function writeHatchPatternLine(b, l, usv) {
69
- const origin = writeDucPoint(b, l.origin, usv);
70
- const offsetVec = Duc.HatchPatternLine.createOffsetVector(b, [getPrecisionValue(l.offset[0], usv), getPrecisionValue(l.offset[1], usv)]);
71
- const dashVec = Duc.HatchPatternLine.createDashPatternVector(b, l.dashPattern.map(Number));
72
- Duc.HatchPatternLine.startHatchPatternLine(b);
73
- Duc.HatchPatternLine.addAngle(b, l.angle);
74
- if (origin)
75
- Duc.HatchPatternLine.addOrigin(b, origin);
76
- Duc.HatchPatternLine.addOffset(b, offsetVec);
77
- if (dashVec)
78
- Duc.HatchPatternLine.addDashPattern(b, dashVec);
79
- return Duc.HatchPatternLine.endHatchPatternLine(b);
80
- }
81
- function writeCustomHatch(b, p, usv) {
82
- if (!p)
83
- return undefined;
84
- const name = str(b, p.name);
85
- const desc = str(b, p.description);
86
- const lines = Duc.CustomHatchPattern.createLinesVector(b, p.lines.map((ln) => writeHatchPatternLine(b, ln, usv)));
87
- Duc.CustomHatchPattern.startCustomHatchPattern(b);
88
- if (name)
89
- Duc.CustomHatchPattern.addName(b, name);
90
- if (desc)
91
- Duc.CustomHatchPattern.addDescription(b, desc);
92
- Duc.CustomHatchPattern.addLines(b, lines);
93
- return Duc.CustomHatchPattern.endCustomHatchPattern(b);
94
- }
95
- function writeHatchStyle(b, h, usv) {
96
- if (!h)
97
- return undefined;
98
- const pattName = str(b, h.pattern.name);
99
- const pattOrigin = writeDucPoint(b, h.pattern.origin, usv);
100
- const custom = writeCustomHatch(b, h.customPattern, usv);
101
- Duc.DucHatchStyle.startDucHatchStyle(b);
102
- if (h.hatchStyle !== undefined)
103
- Duc.DucHatchStyle.addHatchStyle(b, h.hatchStyle);
104
- if (pattName)
105
- Duc.DucHatchStyle.addPatternName(b, pattName);
106
- Duc.DucHatchStyle.addPatternScale(b, h.pattern.scale);
107
- Duc.DucHatchStyle.addPatternAngle(b, h.pattern.angle);
108
- if (pattOrigin)
109
- Duc.DucHatchStyle.addPatternOrigin(b, pattOrigin);
110
- Duc.DucHatchStyle.addPatternDouble(b, h.pattern.double);
111
- if (custom)
112
- Duc.DucHatchStyle.addCustomPattern(b, custom);
113
- return Duc.DucHatchStyle.endDucHatchStyle(b);
114
- }
115
- function writeImageFilter(b, f, usv) {
116
- if (!f)
117
- return undefined;
118
- Duc.DucImageFilter.startDucImageFilter(b);
119
- Duc.DucImageFilter.addBrightness(b, f.brightness);
120
- Duc.DucImageFilter.addContrast(b, f.contrast);
121
- return Duc.DucImageFilter.endDucImageFilter(b);
122
- }
123
- function writeContentBase(b, c, usv) {
124
- if (!c)
125
- return undefined;
126
- const s = str(b, c.src);
127
- const til = writeTiling(b, c.tiling, usv);
128
- const hatch = writeHatchStyle(b, c.hatch, usv);
129
- const filt = writeImageFilter(b, c.imageFilter, usv);
130
- Duc.ElementContentBase.startElementContentBase(b);
131
- if (c.preference !== undefined)
132
- Duc.ElementContentBase.addPreference(b, c.preference);
133
- if (s)
134
- Duc.ElementContentBase.addSrc(b, s);
135
- Duc.ElementContentBase.addVisible(b, c.visible);
136
- Duc.ElementContentBase.addOpacity(b, c.opacity);
137
- if (til)
138
- Duc.ElementContentBase.addTiling(b, til);
139
- if (hatch)
140
- Duc.ElementContentBase.addHatch(b, hatch);
141
- if (filt)
142
- Duc.ElementContentBase.addImageFilter(b, filt);
143
- return Duc.ElementContentBase.endElementContentBase(b);
144
- }
145
- function writeStrokeStyle(b, s, usv) {
146
- var _a;
147
- if (!s)
148
- return undefined;
149
- const dashVec = ((_a = s.dash) === null || _a === void 0 ? void 0 : _a.length) ? Duc.StrokeStyle.createDashVector(b, s.dash) : undefined;
150
- const dashLineOverride = str(b, s.dashLineOverride);
151
- Duc.StrokeStyle.startStrokeStyle(b);
152
- if (s.preference !== undefined)
153
- Duc.StrokeStyle.addPreference(b, s.preference);
154
- if (s.cap != null)
155
- Duc.StrokeStyle.addCap(b, s.cap);
156
- if (s.join != null)
157
- Duc.StrokeStyle.addJoin(b, s.join);
158
- if (dashVec)
159
- Duc.StrokeStyle.addDash(b, dashVec);
160
- if (dashLineOverride)
161
- Duc.StrokeStyle.addDashLineOverride(b, dashLineOverride);
162
- if (s.dashCap != null)
163
- Duc.StrokeStyle.addDashCap(b, s.dashCap);
164
- if (s.miterLimit !== undefined)
165
- Duc.StrokeStyle.addMiterLimit(b, s.miterLimit);
166
- return Duc.StrokeStyle.endStrokeStyle(b);
167
- }
168
- function writeStrokeSides(b, ss, usv) {
169
- var _a;
170
- if (!ss)
171
- return undefined;
172
- const valuesVec = ((_a = ss.values) === null || _a === void 0 ? void 0 : _a.length) ? Duc.StrokeSides.createValuesVector(b, ss.values) : undefined;
173
- Duc.StrokeSides.startStrokeSides(b);
174
- if (ss.preference !== undefined)
175
- Duc.StrokeSides.addPreference(b, ss.preference);
176
- if (valuesVec)
177
- Duc.StrokeSides.addValues(b, valuesVec);
178
- return Duc.StrokeSides.endStrokeSides(b);
179
- }
180
- function writeElementStroke(b, s, usv) {
181
- if (!s)
182
- return undefined;
183
- const c = writeContentBase(b, s.content, usv);
184
- const st = writeStrokeStyle(b, s.style, usv);
185
- const sides = writeStrokeSides(b, s.strokeSides, usv);
186
- Duc.ElementStroke.startElementStroke(b);
187
- if (c)
188
- Duc.ElementStroke.addContent(b, c);
189
- if (s.width) {
190
- Duc.ElementStroke.addWidth(b, getPrecisionValue(s.width, usv));
191
- }
192
- if (st)
193
- Duc.ElementStroke.addStyle(b, st);
194
- if (s.placement)
195
- Duc.ElementStroke.addPlacement(b, s.placement);
196
- if (sides)
197
- Duc.ElementStroke.addStrokeSides(b, sides);
198
- return Duc.ElementStroke.endElementStroke(b);
199
- }
200
- function writeElementBackground(b, bg, usv) {
201
- if (!bg)
202
- return undefined;
203
- const c = writeContentBase(b, bg.content, usv);
204
- Duc.ElementBackground.startElementBackground(b);
205
- if (c)
206
- Duc.ElementBackground.addContent(b, c);
207
- return Duc.ElementBackground.endElementBackground(b);
208
- }
209
- function writeStylesBase(b, s, usv) {
210
- if (!s)
211
- return null;
212
- const bgArrRaw = s.background;
213
- const stArrRaw = s.stroke;
214
- if (bgArrRaw === undefined || stArrRaw === undefined) {
215
- return null;
216
- }
217
- const bgArr = Array.isArray(bgArrRaw)
218
- ? bgArrRaw
219
- : (bgArrRaw ? [bgArrRaw] : []);
220
- const stArr = Array.isArray(stArrRaw)
221
- ? stArrRaw
222
- : (stArrRaw ? [stArrRaw] : []);
223
- const bgOffsets = bgArr
224
- .map((x) => (x ? writeElementBackground(b, x, usv) : undefined))
225
- .filter((o) => o !== undefined);
226
- const stOffsets = stArr
227
- .map((x) => (x ? writeElementStroke(b, x, usv) : undefined))
228
- .filter((o) => o !== undefined);
229
- const bgs = Duc._DucElementStylesBase.createBackgroundVector(b, bgOffsets);
230
- const strokes = Duc._DucElementStylesBase.createStrokeVector(b, stOffsets);
231
- Duc._DucElementStylesBase.start_DucElementStylesBase(b);
232
- if (s.roundness) {
233
- Duc._DucElementStylesBase.addRoundness(b, getPrecisionValue(s.roundness, usv));
234
- }
235
- if (s.blending)
236
- Duc._DucElementStylesBase.addBlending(b, s.blending);
237
- Duc._DucElementStylesBase.addBackground(b, bgs);
238
- Duc._DucElementStylesBase.addStroke(b, strokes);
239
- if (s.opacity) {
240
- Duc._DucElementStylesBase.addOpacity(b, s.opacity);
241
- }
242
- return Duc._DucElementStylesBase.end_DucElementStylesBase(b);
243
- }
244
- /**
245
- * Generic helpers
246
- */
247
- function writeStringEntry(b, k, v) {
248
- const ko = b.createString(k);
249
- const vo = b.createString(v);
250
- Duc.StringValueEntry.startStringValueEntry(b);
251
- Duc.StringValueEntry.addKey(b, ko);
252
- Duc.StringValueEntry.addValue(b, vo);
253
- return Duc.StringValueEntry.endStringValueEntry(b);
254
- }
255
- function writeIdentifier(b, id) {
256
- var _a;
257
- const io = b.createString(id.id);
258
- const no = b.createString(id.name);
259
- const doff = b.createString((_a = id.description) !== null && _a !== void 0 ? _a : "");
260
- Duc.Identifier.startIdentifier(b);
261
- Duc.Identifier.addId(b, io);
262
- Duc.Identifier.addName(b, no);
263
- Duc.Identifier.addDescription(b, doff);
264
- return Duc.Identifier.endIdentifier(b);
265
- }
266
- /**
267
- * Geometry and bindings
268
- */
269
- function writeDucPoint(b, p, usv) {
270
- if (!p)
271
- return undefined;
272
- Duc.DucPoint.startDucPoint(b);
273
- Duc.DucPoint.addX(b, getPrecisionValue(p.x, usv));
274
- Duc.DucPoint.addY(b, getPrecisionValue(p.y, usv));
275
- if (p.mirroring != null)
276
- Duc.DucPoint.addMirroring(b, p.mirroring);
277
- return Duc.DucPoint.endDucPoint(b);
278
- }
279
- function writeGeomPoint(b, p, usv) {
280
- if (!p)
281
- return undefined;
282
- return Duc.GeometricPoint.createGeometricPoint(b, p.x, p.y);
283
- }
284
- function writeHead(b, h, usv) {
285
- if (!h)
286
- return undefined;
287
- const blockId = str(b, h.blockId);
288
- Duc.DucHead.startDucHead(b);
289
- Duc.DucHead.addType(b, h.type);
290
- if (blockId)
291
- Duc.DucHead.addBlockId(b, blockId);
292
- Duc.DucHead.addSize(b, getPrecisionValue(h.size, usv));
293
- return Duc.DucHead.endDucHead(b);
294
- }
295
- function writeBindingPoint(b, p, usv) {
296
- if (!p)
297
- return undefined;
298
- Duc.PointBindingPoint.startPointBindingPoint(b);
299
- Duc.PointBindingPoint.addIndex(b, p.index);
300
- Duc.PointBindingPoint.addOffset(b, p.offset);
301
- return Duc.PointBindingPoint.endPointBindingPoint(b);
302
- }
303
- function writePointBinding(b, pb, usv) {
304
- if (!pb)
305
- return undefined;
306
- const el = str(b, pb.elementId);
307
- const fixed = pb.fixedPoint ? writeGeomPoint(b, pb.fixedPoint, usv) : undefined;
308
- const point = writeBindingPoint(b, pb.point, usv);
309
- const head = writeHead(b, pb.head, usv);
310
- Duc.DucPointBinding.startDucPointBinding(b);
311
- if (el)
312
- Duc.DucPointBinding.addElementId(b, el);
313
- Duc.DucPointBinding.addFocus(b, pb.focus);
314
- Duc.DucPointBinding.addGap(b, getPrecisionValue(pb.gap, usv));
315
- if (fixed)
316
- Duc.DucPointBinding.addFixedPoint(b, fixed);
317
- if (point)
318
- Duc.DucPointBinding.addPoint(b, point);
319
- if (head)
320
- Duc.DucPointBinding.addHead(b, head);
321
- return Duc.DucPointBinding.endDucPointBinding(b);
322
- }
323
- function writeLineRef(b, r, usv) {
324
- Duc.DucLineReference.startDucLineReference(b);
325
- Duc.DucLineReference.addIndex(b, r.index);
326
- if (r.handle) {
327
- const hx = getPrecisionValue(r.handle.x, usv);
328
- const hy = getPrecisionValue(r.handle.y, usv);
329
- const gp = Duc.GeometricPoint.createGeometricPoint(b, hx, hy);
330
- Duc.DucLineReference.addHandle(b, gp);
331
- }
332
- return Duc.DucLineReference.endDucLineReference(b);
333
- }
334
- function writeLine(b, l, usv) {
335
- const s = writeLineRef(b, l[0], usv);
336
- const e = writeLineRef(b, l[1], usv);
337
- Duc.DucLine.startDucLine(b);
338
- Duc.DucLine.addStart(b, s);
339
- Duc.DucLine.addEnd(b, e);
340
- return Duc.DucLine.endDucLine(b);
341
- }
342
- function writePath(b, p, usv) {
343
- const lineIndices = Duc.DucPath.createLineIndicesVector(b, p.lineIndices.map((x) => x));
344
- const bg = p.background ? writeElementBackground(b, p.background, usv) : undefined;
345
- const st = p.stroke ? writeElementStroke(b, p.stroke, usv) : undefined;
346
- Duc.DucPath.startDucPath(b);
347
- Duc.DucPath.addLineIndices(b, lineIndices);
348
- if (bg)
349
- Duc.DucPath.addBackground(b, bg);
350
- if (st)
351
- Duc.DucPath.addStroke(b, st);
352
- return Duc.DucPath.endDucPath(b);
353
- }
354
- /**
355
- * DucElement bases
356
- */
357
- function writeBoundElement(b, be, usv) {
358
- const id = str(b, be.id);
359
- const type = str(b, be.type);
360
- Duc.BoundElement.startBoundElement(b);
361
- Duc.BoundElement.addId(b, id);
362
- Duc.BoundElement.addType(b, type);
363
- return Duc.BoundElement.endBoundElement(b);
364
- }
365
- function writeElementBase(b, e, usv) {
366
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
367
- const id = str(b, e.id);
368
- const styles = writeStylesBase(b, e, usv);
369
- const scope = str(b, e.scope);
370
- const label = str(b, (_a = e.label) !== null && _a !== void 0 ? _a : undefined);
371
- const desc = str(b, (_b = e.description) !== null && _b !== void 0 ? _b : undefined);
372
- const index = str(b, (_c = e.index) !== null && _c !== void 0 ? _c : undefined);
373
- const groupIds = ((_d = e.groupIds) === null || _d === void 0 ? void 0 : _d.length) ? Duc._DucElementBase.createGroupIdsVector(b, e.groupIds.map((g) => b.createString(g))) : undefined;
374
- const blockIds = ((_e = e.blockIds) === null || _e === void 0 ? void 0 : _e.length) ? Duc._DucElementBase.createBlockIdsVector(b, e.blockIds.map((blockId) => b.createString(blockId))) : undefined;
375
- const regionIds = ((_f = e.regionIds) === null || _f === void 0 ? void 0 : _f.length) ? Duc._DucElementBase.createRegionIdsVector(b, e.regionIds.map((r) => b.createString(r))) : undefined;
376
- const instanceId = str(b, (_g = e.instanceId) !== null && _g !== void 0 ? _g : undefined);
377
- const layerId = str(b, (_h = e.layerId) !== null && _h !== void 0 ? _h : undefined);
378
- const frameId = str(b, (_j = e.frameId) !== null && _j !== void 0 ? _j : undefined);
379
- const bound = ((_k = e.boundElements) === null || _k === void 0 ? void 0 : _k.length) ? Duc._DucElementBase.createBoundElementsVector(b, e.boundElements.map((x) => writeBoundElement(b, x, usv))) : undefined;
380
- const link = str(b, (_l = e.link) !== null && _l !== void 0 ? _l : undefined);
381
- const custom = e.customData != null ? Duc._DucElementBase.createCustomDataVector(b, zlibSync(strToU8(JSON.stringify(e.customData)))) : undefined;
382
- Duc._DucElementBase.start_DucElementBase(b);
383
- if (id)
384
- Duc._DucElementBase.addId(b, id);
385
- if (styles)
386
- Duc._DucElementBase.addStyles(b, styles);
387
- Duc._DucElementBase.addX(b, getPrecisionValue(e.x, usv));
388
- Duc._DucElementBase.addY(b, getPrecisionValue(e.y, usv));
389
- Duc._DucElementBase.addWidth(b, getPrecisionValue(e.width, usv));
390
- Duc._DucElementBase.addHeight(b, getPrecisionValue(e.height, usv));
391
- Duc._DucElementBase.addAngle(b, e.angle);
392
- if (scope)
393
- Duc._DucElementBase.addScope(b, scope);
394
- if (label)
395
- Duc._DucElementBase.addLabel(b, label);
396
- if (desc)
397
- Duc._DucElementBase.addDescription(b, desc);
398
- Duc._DucElementBase.addIsVisible(b, e.isVisible);
399
- Duc._DucElementBase.addSeed(b, e.seed);
400
- Duc._DucElementBase.addVersion(b, e.version);
401
- Duc._DucElementBase.addVersionNonce(b, e.versionNonce);
402
- Duc._DucElementBase.addUpdated(b, BigInt(e.updated));
403
- if (index)
404
- Duc._DucElementBase.addIndex(b, index);
405
- Duc._DucElementBase.addIsPlot(b, e.isPlot);
406
- Duc._DucElementBase.addIsAnnotative(b, e.isAnnotative);
407
- Duc._DucElementBase.addIsDeleted(b, e.isDeleted);
408
- if (groupIds)
409
- Duc._DucElementBase.addGroupIds(b, groupIds);
410
- if (blockIds)
411
- Duc._DucElementBase.addBlockIds(b, blockIds);
412
- if (regionIds)
413
- Duc._DucElementBase.addRegionIds(b, regionIds);
414
- if (instanceId)
415
- Duc._DucElementBase.addInstanceId(b, instanceId);
416
- if (layerId)
417
- Duc._DucElementBase.addLayerId(b, layerId);
418
- if (frameId)
419
- Duc._DucElementBase.addFrameId(b, frameId);
420
- if (bound)
421
- Duc._DucElementBase.addBoundElements(b, bound);
422
- Duc._DucElementBase.addZIndex(b, e.zIndex);
423
- if (link)
424
- Duc._DucElementBase.addLink(b, link);
425
- Duc._DucElementBase.addLocked(b, e.locked);
426
- if (custom)
427
- Duc._DucElementBase.addCustomData(b, custom);
428
- return Duc._DucElementBase.end_DucElementBase(b);
429
- }
430
- function writeLinearBase(b, e, usv) {
431
- var _a, _b, _c;
432
- const base = writeElementBase(b, e, usv);
433
- // Type-safe guards without using any: default to empty arrays if undefined
434
- const pointsArr = (_a = e.points) !== null && _a !== void 0 ? _a : [];
435
- const linesArr = (_b = e.lines) !== null && _b !== void 0 ? _b : [];
436
- const pathOverridesArr = (_c = e.pathOverrides) !== null && _c !== void 0 ? _c : [];
437
- const points = Duc._DucLinearElementBase.createPointsVector(b, pointsArr.map((p) => writeDucPoint(b, p, usv)).filter((v) => v !== undefined));
438
- const lines = Duc._DucLinearElementBase.createLinesVector(b, linesArr.map((ln) => writeLine(b, ln, usv)));
439
- const pathOverrides = pathOverridesArr.length
440
- ? Duc._DucLinearElementBase.createPathOverridesVector(b, pathOverridesArr.map((p) => writePath(b, p, usv)))
441
- : undefined;
442
- const lastCommitted = writeDucPoint(b, e.lastCommittedPoint, usv);
443
- const startBinding = writePointBinding(b, e.startBinding, usv);
444
- const endBinding = writePointBinding(b, e.endBinding, usv);
445
- Duc._DucLinearElementBase.start_DucLinearElementBase(b);
446
- Duc._DucLinearElementBase.addBase(b, base);
447
- Duc._DucLinearElementBase.addPoints(b, points);
448
- Duc._DucLinearElementBase.addLines(b, lines);
449
- if (pathOverrides)
450
- Duc._DucLinearElementBase.addPathOverrides(b, pathOverrides);
451
- if (lastCommitted)
452
- Duc._DucLinearElementBase.addLastCommittedPoint(b, lastCommitted);
453
- if (startBinding)
454
- Duc._DucLinearElementBase.addStartBinding(b, startBinding);
455
- if (endBinding)
456
- Duc._DucLinearElementBase.addEndBinding(b, endBinding);
457
- return Duc._DucLinearElementBase.end_DucLinearElementBase(b);
458
- }
459
- /**
460
- * Elements
461
- */
462
- function writeRect(b, e, usv) {
463
- const base = writeElementBase(b, e, usv);
464
- Duc.DucRectangleElement.startDucRectangleElement(b);
465
- Duc.DucRectangleElement.addBase(b, base);
466
- return Duc.DucRectangleElement.endDucRectangleElement(b);
467
- }
468
- function writePolygon(b, e, usv) {
469
- const base = writeElementBase(b, e, usv);
470
- Duc.DucPolygonElement.startDucPolygonElement(b);
471
- Duc.DucPolygonElement.addBase(b, base);
472
- Duc.DucPolygonElement.addSides(b, e.sides);
473
- return Duc.DucPolygonElement.endDucPolygonElement(b);
474
- }
475
- function writeEllipse(b, e, usv) {
476
- const base = writeElementBase(b, e, usv);
477
- Duc.DucEllipseElement.startDucEllipseElement(b);
478
- Duc.DucEllipseElement.addBase(b, base);
479
- Duc.DucEllipseElement.addRatio(b, e.ratio);
480
- Duc.DucEllipseElement.addStartAngle(b, e.startAngle);
481
- Duc.DucEllipseElement.addEndAngle(b, e.endAngle);
482
- Duc.DucEllipseElement.addShowAuxCrosshair(b, e.showAuxCrosshair);
483
- return Duc.DucEllipseElement.endDucEllipseElement(b);
484
- }
485
- function writeLinear(b, e, usv) {
486
- const base = writeLinearBase(b, e, usv);
487
- Duc.DucLinearElement.startDucLinearElement(b);
488
- Duc.DucLinearElement.addLinearBase(b, base);
489
- Duc.DucLinearElement.addWipeoutBelow(b, e.wipeoutBelow);
490
- return Duc.DucLinearElement.endDucLinearElement(b);
491
- }
492
- function writeArrow(b, e, usv) {
493
- const base = writeLinearBase(b, e, usv);
494
- Duc.DucArrowElement.startDucArrowElement(b);
495
- Duc.DucArrowElement.addLinearBase(b, base);
496
- Duc.DucArrowElement.addElbowed(b, e.elbowed);
497
- return Duc.DucArrowElement.endDucArrowElement(b);
498
- }
499
- function writeFreeDrawEnds(b, ends, usv) {
500
- if (!ends)
501
- return undefined;
502
- const easing = str(b, encodeFunctionString(ends.easing));
503
- Duc.DucFreeDrawEnds.startDucFreeDrawEnds(b);
504
- Duc.DucFreeDrawEnds.addCap(b, ends.cap);
505
- Duc.DucFreeDrawEnds.addTaper(b, ends.taper);
506
- if (easing)
507
- Duc.DucFreeDrawEnds.addEasing(b, easing);
508
- return Duc.DucFreeDrawEnds.endDucFreeDrawEnds(b);
509
- }
510
- function writeImageCrop(b, c) {
511
- if (!c)
512
- return undefined;
513
- Duc.ImageCrop.startImageCrop(b);
514
- Duc.ImageCrop.addX(b, c.x);
515
- Duc.ImageCrop.addY(b, c.y);
516
- Duc.ImageCrop.addWidth(b, c.width);
517
- Duc.ImageCrop.addHeight(b, c.height);
518
- Duc.ImageCrop.addNaturalWidth(b, c.naturalWidth);
519
- Duc.ImageCrop.addNaturalHeight(b, c.naturalHeight);
520
- return Duc.ImageCrop.endImageCrop(b);
521
- }
522
- function writeImage(b, e, usv) {
523
- const base = writeElementBase(b, e, usv);
524
- const fileId = str(b, e.fileId);
525
- const scaleVec = e.scaleFlip ? Duc.DucImageElement.createScaleVector(b, [e.scaleFlip[0], e.scaleFlip[1]]) : undefined;
526
- const crop = writeImageCrop(b, e.crop);
527
- const filter = writeImageFilter(b, e.filter, usv);
528
- Duc.DucImageElement.startDucImageElement(b);
529
- Duc.DucImageElement.addBase(b, base);
530
- if (fileId)
531
- Duc.DucImageElement.addFileId(b, fileId);
532
- if (e.status)
533
- Duc.DucImageElement.addStatus(b, e.status);
534
- if (scaleVec)
535
- Duc.DucImageElement.addScale(b, scaleVec);
536
- if (crop)
537
- Duc.DucImageElement.addCrop(b, crop);
538
- if (filter)
539
- Duc.DucImageElement.addFilter(b, filter);
540
- return Duc.DucImageElement.endDucImageElement(b);
541
- }
542
- function writeFreeDraw(b, e, usv) {
543
- const base = writeElementBase(b, e, usv);
544
- const pointsVec = e.points && e.points.length
545
- ? Duc.DucFreeDrawElement.createPointsVector(b, e.points.map((p) => writeDucPoint(b, p, usv)).filter((v) => v !== undefined))
546
- : Duc.DucFreeDrawElement.createPointsVector(b, []);
547
- const pressuresVec = e.pressures && e.pressures.length
548
- ? Duc.DucFreeDrawElement.createPressuresVector(b, e.pressures)
549
- : undefined;
550
- const easing = b.createString(encodeFunctionString(e.easing));
551
- const startEnds = writeFreeDrawEnds(b, e.start, usv);
552
- const endEnds = writeFreeDrawEnds(b, e.end, usv);
553
- const lcp = e.lastCommittedPoint ? writeDucPoint(b, e.lastCommittedPoint, usv) : undefined;
554
- const svgPath = e.svgPath ? b.createString(e.svgPath) : undefined;
555
- Duc.DucFreeDrawElement.startDucFreeDrawElement(b);
556
- Duc.DucFreeDrawElement.addBase(b, base);
557
- Duc.DucFreeDrawElement.addPoints(b, pointsVec);
558
- Duc.DucFreeDrawElement.addSize(b, getPrecisionValue(e.size, usv));
559
- Duc.DucFreeDrawElement.addThinning(b, e.thinning);
560
- Duc.DucFreeDrawElement.addSmoothing(b, e.smoothing);
561
- Duc.DucFreeDrawElement.addStreamline(b, e.streamline);
562
- if (easing)
563
- Duc.DucFreeDrawElement.addEasing(b, easing);
564
- if (startEnds)
565
- Duc.DucFreeDrawElement.addStart(b, startEnds);
566
- if (endEnds)
567
- Duc.DucFreeDrawElement.addEnd(b, endEnds);
568
- if (pressuresVec)
569
- Duc.DucFreeDrawElement.addPressures(b, pressuresVec);
570
- Duc.DucFreeDrawElement.addSimulatePressure(b, !!e.simulatePressure);
571
- if (lcp)
572
- Duc.DucFreeDrawElement.addLastCommittedPoint(b, lcp);
573
- if (svgPath)
574
- Duc.DucFreeDrawElement.addSvgPath(b, svgPath);
575
- return Duc.DucFreeDrawElement.endDucFreeDrawElement(b);
576
- }
577
- /**
578
- * Text
579
- */
580
- function writeLineSpacing(b, ls, usv) {
581
- if (!ls)
582
- return undefined;
583
- Duc.LineSpacing.startLineSpacing(b);
584
- if (typeof ls.value === "number") {
585
- Duc.LineSpacing.addValue(b, ls.value);
586
- }
587
- else {
588
- Duc.LineSpacing.addValue(b, getPrecisionValue(ls.value, usv));
589
- }
590
- Duc.LineSpacing.addType(b, ls.type);
591
- return Duc.LineSpacing.endLineSpacing(b);
592
- }
593
- function writeTextStyle(b, s, usv) {
594
- const lineSpacing = writeLineSpacing(b, s.lineSpacing, usv);
595
- const fontFamily = str(b, s.fontFamily.toString());
596
- const bigFont = str(b, s.bigFontFamily);
597
- Duc.DucTextStyle.startDucTextStyle(b);
598
- Duc.DucTextStyle.addIsLtr(b, s.isLtr);
599
- if (fontFamily)
600
- Duc.DucTextStyle.addFontFamily(b, fontFamily);
601
- if (bigFont)
602
- Duc.DucTextStyle.addBigFontFamily(b, bigFont);
603
- if (s.textAlign !== undefined)
604
- Duc.DucTextStyle.addTextAlign(b, s.textAlign);
605
- if (s.verticalAlign !== undefined)
606
- Duc.DucTextStyle.addVerticalAlign(b, s.verticalAlign);
607
- Duc.DucTextStyle.addLineHeight(b, s.lineHeight);
608
- if (lineSpacing)
609
- Duc.DucTextStyle.addLineSpacing(b, lineSpacing);
610
- Duc.DucTextStyle.addObliqueAngle(b, s.obliqueAngle);
611
- Duc.DucTextStyle.addFontSize(b, getPrecisionValue(s.fontSize, usv));
612
- if (s.paperTextHeight !== undefined)
613
- Duc.DucTextStyle.addPaperTextHeight(b, getPrecisionValue(s.paperTextHeight, usv));
614
- Duc.DucTextStyle.addWidthFactor(b, s.widthFactor);
615
- Duc.DucTextStyle.addIsUpsideDown(b, s.isUpsideDown);
616
- Duc.DucTextStyle.addIsBackwards(b, s.isBackwards);
617
- return Duc.DucTextStyle.endDucTextStyle(b);
618
- }
619
- function writePrimaryUnits(b, units, usv) {
620
- if (!units)
621
- return undefined;
622
- // Linear
623
- Duc._UnitSystemBase.start_UnitSystemBase(b);
624
- Duc._UnitSystemBase.addSystem(b, units.linear.system);
625
- Duc._UnitSystemBase.addPrecision(b, units.linear.precision);
626
- Duc._UnitSystemBase.addSuppressLeadingZeros(b, units.linear.suppressLeadingZeros);
627
- Duc._UnitSystemBase.addSuppressTrailingZeros(b, units.linear.suppressTrailingZeros);
628
- const baseLinear = Duc._UnitSystemBase.end_UnitSystemBase(b);
629
- Duc.LinearUnitSystem.startLinearUnitSystem(b);
630
- Duc.LinearUnitSystem.addBase(b, baseLinear);
631
- Duc.LinearUnitSystem.addFormat(b, units.linear.format);
632
- Duc.LinearUnitSystem.addDecimalSeparator(b, units.linear.decimalSeparator);
633
- Duc.LinearUnitSystem.addSuppressZeroFeet(b, units.linear.suppressZeroFeet);
634
- Duc.LinearUnitSystem.addSuppressZeroInches(b, units.linear.suppressZeroInches);
635
- const linear = Duc.LinearUnitSystem.endLinearUnitSystem(b);
636
- // Angular
637
- Duc._UnitSystemBase.start_UnitSystemBase(b);
638
- Duc._UnitSystemBase.addSystem(b, units.angular.system);
639
- Duc._UnitSystemBase.addPrecision(b, units.angular.precision);
640
- Duc._UnitSystemBase.addSuppressLeadingZeros(b, units.angular.suppressLeadingZeros);
641
- Duc._UnitSystemBase.addSuppressTrailingZeros(b, units.angular.suppressTrailingZeros);
642
- const baseAngular = Duc._UnitSystemBase.end_UnitSystemBase(b);
643
- Duc.AngularUnitSystem.startAngularUnitSystem(b);
644
- Duc.AngularUnitSystem.addBase(b, baseAngular);
645
- Duc.AngularUnitSystem.addFormat(b, units.angular.format);
646
- const angular = Duc.AngularUnitSystem.endAngularUnitSystem(b);
647
- Duc.PrimaryUnits.startPrimaryUnits(b);
648
- Duc.PrimaryUnits.addLinear(b, linear);
649
- Duc.PrimaryUnits.addAngular(b, angular);
650
- return Duc.PrimaryUnits.endPrimaryUnits(b);
651
- }
652
- function writeTextDynamicSource(b, s, usv) {
653
- // discriminate by sourceType union ("element" | "dictionary")
654
- if (s.sourceType === Duc.TEXT_FIELD_SOURCE_TYPE.ELEMENT) {
655
- const el = str(b, s.elementId);
656
- const prop = s.property;
657
- Duc.DucTextDynamicElementSource.startDucTextDynamicElementSource(b);
658
- if (el)
659
- Duc.DucTextDynamicElementSource.addElementId(b, el);
660
- Duc.DucTextDynamicElementSource.addProperty(b, prop);
661
- const elem = Duc.DucTextDynamicElementSource.endDucTextDynamicElementSource(b);
662
- Duc.DucTextDynamicSource.startDucTextDynamicSource(b);
663
- Duc.DucTextDynamicSource.addTextSourceType(b, Duc.TEXT_FIELD_SOURCE_TYPE.ELEMENT);
664
- Duc.DucTextDynamicSource.addSourceType(b, Duc.DucTextDynamicSourceData.DucTextDynamicElementSource);
665
- Duc.DucTextDynamicSource.addSource(b, elem);
666
- return Duc.DucTextDynamicSource.endDucTextDynamicSource(b);
667
- }
668
- const key = str(b, s.key);
669
- Duc.DucTextDynamicDictionarySource.startDucTextDynamicDictionarySource(b);
670
- if (key)
671
- Duc.DucTextDynamicDictionarySource.addKey(b, key);
672
- const dict = Duc.DucTextDynamicDictionarySource.endDucTextDynamicDictionarySource(b);
673
- Duc.DucTextDynamicSource.startDucTextDynamicSource(b);
674
- Duc.DucTextDynamicSource.addTextSourceType(b, Duc.TEXT_FIELD_SOURCE_TYPE.DICTIONARY);
675
- Duc.DucTextDynamicSource.addSourceType(b, Duc.DucTextDynamicSourceData.DucTextDynamicDictionarySource);
676
- Duc.DucTextDynamicSource.addSource(b, dict);
677
- return Duc.DucTextDynamicSource.endDucTextDynamicSource(b);
678
- }
679
- function writeTextDynamicPart(b, p, usv) {
680
- const tag = str(b, p.tag);
681
- const src = writeTextDynamicSource(b, p.source, usv);
682
- const fmt = writePrimaryUnits(b, p.formatting, usv);
683
- const cached = str(b, p.cachedValue);
684
- Duc.DucTextDynamicPart.startDucTextDynamicPart(b);
685
- if (tag)
686
- Duc.DucTextDynamicPart.addTag(b, tag);
687
- Duc.DucTextDynamicPart.addSource(b, src);
688
- if (fmt)
689
- Duc.DucTextDynamicPart.addFormatting(b, fmt);
690
- if (cached)
691
- Duc.DucTextDynamicPart.addCachedValue(b, cached);
692
- return Duc.DucTextDynamicPart.endDucTextDynamicPart(b);
693
- }
694
- function writeTextColumn(b, c, usv) {
695
- Duc.TextColumn.startTextColumn(b);
696
- Duc.TextColumn.addWidth(b, getPrecisionValue(c.width, usv));
697
- Duc.TextColumn.addGutter(b, getPrecisionValue(c.gutter, usv));
698
- return Duc.TextColumn.endTextColumn(b);
699
- }
700
- function writeParagraphFormatting(b, p, usv) {
701
- const tabs = Duc.ParagraphFormatting.createTabStopsVector(b, p.tabStops.map((t) => getPrecisionValue(t, usv)));
702
- Duc.ParagraphFormatting.startParagraphFormatting(b);
703
- Duc.ParagraphFormatting.addFirstLineIndent(b, getPrecisionValue(p.firstLineIndent, usv));
704
- Duc.ParagraphFormatting.addHangingIndent(b, getPrecisionValue(p.hangingIndent, usv));
705
- Duc.ParagraphFormatting.addLeftIndent(b, getPrecisionValue(p.leftIndent, usv));
706
- Duc.ParagraphFormatting.addRightIndent(b, getPrecisionValue(p.rightIndent, usv));
707
- Duc.ParagraphFormatting.addSpaceBefore(b, getPrecisionValue(p.spaceBefore, usv));
708
- Duc.ParagraphFormatting.addSpaceAfter(b, getPrecisionValue(p.spaceAfter, usv));
709
- Duc.ParagraphFormatting.addTabStops(b, tabs);
710
- return Duc.ParagraphFormatting.endParagraphFormatting(b);
711
- }
712
- function writeStackFormat(b, s, usv) {
713
- const chars = Duc.StackFormat.createStackCharsVector(b, [...s.stackChars].map((c) => b.createString(c)));
714
- Duc.StackFormatProperties.startStackFormatProperties(b);
715
- Duc.StackFormatProperties.addUpperScale(b, s.properties.upperScale);
716
- Duc.StackFormatProperties.addLowerScale(b, s.properties.lowerScale);
717
- Duc.StackFormatProperties.addAlignment(b, s.properties.alignment);
718
- const props = Duc.StackFormatProperties.endStackFormatProperties(b);
719
- Duc.StackFormat.startStackFormat(b);
720
- Duc.StackFormat.addAutoStack(b, s.autoStack);
721
- Duc.StackFormat.addStackChars(b, chars);
722
- Duc.StackFormat.addProperties(b, props);
723
- return Duc.StackFormat.endStackFormat(b);
724
- }
725
- function writeDocStyle(b, s, usv) {
726
- const text = writeTextStyle(b, s, usv);
727
- const para = writeParagraphFormatting(b, s.paragraph, usv);
728
- const stack = writeStackFormat(b, s.stackFormat, usv);
729
- Duc.DucDocStyle.startDucDocStyle(b);
730
- Duc.DucDocStyle.addTextStyle(b, text);
731
- Duc.DucDocStyle.addParagraph(b, para);
732
- Duc.DucDocStyle.addStackFormat(b, stack);
733
- return Duc.DucDocStyle.endDucDocStyle(b);
734
- }
735
- function writeColumnLayout(b, c, usv) {
736
- const defs = Duc.ColumnLayout.createDefinitionsVector(b, c.definitions.map((d) => writeTextColumn(b, d, usv)));
737
- Duc.ColumnLayout.startColumnLayout(b);
738
- Duc.ColumnLayout.addType(b, c.type);
739
- Duc.ColumnLayout.addDefinitions(b, defs);
740
- Duc.ColumnLayout.addAutoHeight(b, c.autoHeight);
741
- return Duc.ColumnLayout.endColumnLayout(b);
742
- }
743
- function writeDocumentGridConfig(b, config, usv) {
744
- Duc.DocumentGridConfig.startDocumentGridConfig(b);
745
- Duc.DocumentGridConfig.addColumns(b, config.columns);
746
- Duc.DocumentGridConfig.addGapX(b, config.gapX);
747
- Duc.DocumentGridConfig.addGapY(b, config.gapY);
748
- const alignItems = (() => {
749
- if (config.alignItems === 'start')
750
- return Duc.DOCUMENT_GRID_ALIGN_ITEMS.START;
751
- if (config.alignItems === 'center')
752
- return Duc.DOCUMENT_GRID_ALIGN_ITEMS.CENTER;
753
- if (config.alignItems === 'end')
754
- return Duc.DOCUMENT_GRID_ALIGN_ITEMS.END;
755
- return Duc.DOCUMENT_GRID_ALIGN_ITEMS.START;
756
- })();
757
- Duc.DocumentGridConfig.addAlignItems(b, alignItems);
758
- Duc.DocumentGridConfig.addFirstPageAlone(b, config.firstPageAlone);
759
- Duc.DocumentGridConfig.addScale(b, config.scale);
760
- return Duc.DocumentGridConfig.endDocumentGridConfig(b);
761
- }
762
- function writeText(b, e, usv) {
11
+ import { transformToRust } from "./transform";
12
+ import { ensureWasm, wasmGetCurrentSchemaVersion, wasmSerializeDuc } from "./wasm";
13
+ const getSchemaVersionFromEnv = () => {
763
14
  var _a;
764
- const base = writeElementBase(b, e, usv);
765
- const style = writeTextStyle(b, e, usv);
766
- const text = str(b, e.text);
767
- const dynamic = Duc.DucTextElement.createDynamicVector(b, e.dynamic.map((d) => writeTextDynamicPart(b, d, usv)));
768
- const containerId = str(b, (_a = e.containerId) !== null && _a !== void 0 ? _a : undefined);
769
- const original = str(b, e.originalText);
770
- Duc.DucTextElement.startDucTextElement(b);
771
- Duc.DucTextElement.addBase(b, base);
772
- Duc.DucTextElement.addStyle(b, style);
773
- if (text)
774
- Duc.DucTextElement.addText(b, text);
775
- Duc.DucTextElement.addDynamic(b, dynamic);
776
- Duc.DucTextElement.addAutoResize(b, e.autoResize);
777
- if (containerId)
778
- Duc.DucTextElement.addContainerId(b, containerId);
779
- if (original)
780
- Duc.DucTextElement.addOriginalText(b, original);
781
- return Duc.DucTextElement.endDucTextElement(b);
782
- }
783
- /**
784
- * Blocks
785
- */
786
- function writeBlockAttrDef(b, d, usv) {
787
- const tag = b.createString(d.tag);
788
- const prompt = b.createString(d.prompt);
789
- const defVal = b.createString(d.defaultValue);
790
- Duc.DucBlockAttributeDefinition.startDucBlockAttributeDefinition(b);
791
- Duc.DucBlockAttributeDefinition.addTag(b, tag);
792
- Duc.DucBlockAttributeDefinition.addPrompt(b, prompt);
793
- Duc.DucBlockAttributeDefinition.addDefaultValue(b, defVal);
794
- Duc.DucBlockAttributeDefinition.addIsConstant(b, d.isConstant);
795
- return Duc.DucBlockAttributeDefinition.endDucBlockAttributeDefinition(b);
796
- }
797
- function writeBlockMetadata(b, metadata) {
798
- const source = b.createString(metadata.source);
799
- const localization = metadata.localization ? Duc.DucBlockMetadata.createLocalizationVector(b, zlibSync(strToU8(JSON.stringify(metadata.localization)))) : undefined;
800
- Duc.DucBlockMetadata.startDucBlockMetadata(b);
801
- Duc.DucBlockMetadata.addSource(b, source);
802
- Duc.DucBlockMetadata.addUsageCount(b, metadata.usageCount);
803
- Duc.DucBlockMetadata.addCreatedAt(b, BigInt(metadata.createdAt));
804
- Duc.DucBlockMetadata.addUpdatedAt(b, BigInt(metadata.updatedAt));
805
- if (localization) {
806
- Duc.DucBlockMetadata.addLocalization(b, localization);
807
- }
808
- return Duc.DucBlockMetadata.endDucBlockMetadata(b);
809
- }
810
- function writeBlock(b, bl, usv) {
811
- var _a, _b;
812
- const id = b.createString(bl.id);
813
- const label = b.createString(bl.label);
814
- const desc = b.createString((_a = bl.description) !== null && _a !== void 0 ? _a : "");
815
- const defs = Duc.DucBlock.createAttributeDefinitionsVector(b, Object.entries((_b = bl.attributeDefinitions) !== null && _b !== void 0 ? _b : {}).map(([k, v]) => {
816
- const key = b.createString(k);
817
- const val = writeBlockAttrDef(b, v, usv);
818
- Duc.DucBlockAttributeDefinitionEntry.startDucBlockAttributeDefinitionEntry(b);
819
- Duc.DucBlockAttributeDefinitionEntry.addKey(b, key);
820
- Duc.DucBlockAttributeDefinitionEntry.addValue(b, val);
821
- return Duc.DucBlockAttributeDefinitionEntry.endDucBlockAttributeDefinitionEntry(b);
822
- }));
823
- // Write metadata if present
824
- let metadataOffset;
825
- if (bl.metadata) {
826
- metadataOffset = writeBlockMetadata(b, bl.metadata);
827
- }
828
- // Write thumbnail if present
829
- let thumbnailOffset;
830
- if (bl.thumbnail && bl.thumbnail.length > 0) {
831
- thumbnailOffset = Duc.DucBlock.createThumbnailVector(b, bl.thumbnail);
832
- }
833
- Duc.DucBlock.startDucBlock(b);
834
- Duc.DucBlock.addId(b, id);
835
- Duc.DucBlock.addLabel(b, label);
836
- Duc.DucBlock.addDescription(b, desc);
837
- Duc.DucBlock.addVersion(b, bl.version);
838
- Duc.DucBlock.addAttributeDefinitions(b, defs);
839
- if (metadataOffset) {
840
- Duc.DucBlock.addMetadata(b, metadataOffset);
841
- }
842
- if (thumbnailOffset) {
843
- Duc.DucBlock.addThumbnail(b, thumbnailOffset);
844
- }
845
- return Duc.DucBlock.endDucBlock(b);
846
- }
847
- function writeBlockInstance(b, i, usv) {
848
- var _a, _b;
849
- const id = b.createString(i.id);
850
- const blockId = b.createString(i.blockId);
851
- const overrides = Duc.DucBlockInstance.createElementOverridesVector(b, Object.entries((_a = i.elementOverrides) !== null && _a !== void 0 ? _a : {}).map(([k, v]) => writeStringEntry(b, k, v)));
852
- const attrs = Duc.DucBlockInstance.createAttributeValuesVector(b, Object.entries((_b = i.attributeValues) !== null && _b !== void 0 ? _b : {}).map(([k, v]) => writeStringEntry(b, k, v)));
853
- const dup = i.duplicationArray
854
- ? (() => {
855
- Duc.DucBlockDuplicationArray.startDucBlockDuplicationArray(b);
856
- Duc.DucBlockDuplicationArray.addRows(b, i.duplicationArray.rows);
857
- Duc.DucBlockDuplicationArray.addCols(b, i.duplicationArray.cols);
858
- const rSpacing = typeof i.duplicationArray.rowSpacing === 'number'
859
- ? i.duplicationArray.rowSpacing
860
- : getPrecisionValue(i.duplicationArray.rowSpacing, usv);
861
- const cSpacing = typeof i.duplicationArray.colSpacing === 'number'
862
- ? i.duplicationArray.colSpacing
863
- : getPrecisionValue(i.duplicationArray.colSpacing, usv);
864
- Duc.DucBlockDuplicationArray.addRowSpacing(b, rSpacing);
865
- Duc.DucBlockDuplicationArray.addColSpacing(b, cSpacing);
866
- return Duc.DucBlockDuplicationArray.endDucBlockDuplicationArray(b);
867
- })()
868
- : undefined;
869
- Duc.DucBlockInstance.startDucBlockInstance(b);
870
- Duc.DucBlockInstance.addId(b, id);
871
- Duc.DucBlockInstance.addBlockId(b, blockId);
872
- Duc.DucBlockInstance.addVersion(b, i.version);
873
- if (overrides)
874
- Duc.DucBlockInstance.addElementOverrides(b, overrides);
875
- if (attrs)
876
- Duc.DucBlockInstance.addAttributeValues(b, attrs);
877
- if (dup)
878
- Duc.DucBlockInstance.addDuplicationArray(b, dup);
879
- return Duc.DucBlockInstance.endDucBlockInstance(b);
880
- }
881
- function writeBlockCollection(b, c) {
882
- const id = b.createString(c.id);
883
- const label = b.createString(c.label);
884
- // Serialize children array
885
- const children = c.children.map(child => {
886
- const childId = b.createString(child.id);
887
- Duc.DucBlockCollectionEntry.startDucBlockCollectionEntry(b);
888
- Duc.DucBlockCollectionEntry.addId(b, childId);
889
- Duc.DucBlockCollectionEntry.addIsCollection(b, child.isCollection);
890
- return Duc.DucBlockCollectionEntry.endDucBlockCollectionEntry(b);
15
+ const maybeProcess = globalThis.process;
16
+ return (_a = maybeProcess === null || maybeProcess === void 0 ? void 0 : maybeProcess.env) === null || _a === void 0 ? void 0 : _a.DUC_SCHEMA_VERSION;
17
+ };
18
+ const decodeUserVersionToSemver = (userVersion) => {
19
+ const major = Math.floor(userVersion / 1000000);
20
+ const minor = Math.floor((userVersion % 1000000) / 1000);
21
+ const patch = userVersion % 1000;
22
+ return `${major}.${minor}.${patch}`;
23
+ };
24
+ export const DUC_SCHEMA_VERSION = getSchemaVersionFromEnv();
25
+ /**
26
+ * Serialize an ExportedDataState into `.duc` bytes (Uint8Array).
27
+ *
28
+ * 1. restore() for defaults & migrations
29
+ * 2. Element fixups (re-wrap stack elements)
30
+ * 3. WASM serialize (JS → Rust via serde-wasm-bindgen → SQLite → bytes)
31
+ */
32
+ export function serializeDuc(data, elementsConfig, restoreConfig) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ var _a, _b, _c, _d;
35
+ yield ensureWasm();
36
+ const restored = restore(data, elementsConfig !== null && elementsConfig !== void 0 ? elementsConfig : { syncInvalidIndices: (els) => els }, restoreConfig);
37
+ const shouldDropLegacyVersionGraph = hasLegacyVersionGraphShape(data === null || data === void 0 ? void 0 : data.versionGraph);
38
+ const payloadForRust = Object.assign(Object.assign({ type: (_a = data.type) !== null && _a !== void 0 ? _a : "duc", version: (_c = (_b = data.version) !== null && _b !== void 0 ? _b : DUC_SCHEMA_VERSION) !== null && _c !== void 0 ? _c : decodeUserVersionToSemver(wasmGetCurrentSchemaVersion()), source: (_d = data.source) !== null && _d !== void 0 ? _d : "ducjs" }, restored), { versionGraph: shouldDropLegacyVersionGraph
39
+ ? undefined
40
+ : restored.versionGraph });
41
+ const prepared = transformToRust(payloadForRust);
42
+ return wasmSerializeDuc(prepared);
891
43
  });
892
- const childrenOffset = Duc.DucBlockCollection.createChildrenVector(b, children);
893
- // Serialize metadata if present
894
- let metadataOffset;
895
- if (c.metadata) {
896
- const metadata = c.metadata;
897
- let localizationOffset;
898
- if (metadata.localization) {
899
- // localization is stored as compressed binary JSON data
900
- const localizationBin = zlibSync(strToU8(JSON.stringify(metadata.localization)));
901
- localizationOffset = Duc.DucBlockMetadata.createLocalizationVector(b, localizationBin);
902
- }
903
- const source = b.createString(metadata.source);
904
- Duc.DucBlockMetadata.startDucBlockMetadata(b);
905
- Duc.DucBlockMetadata.addSource(b, source);
906
- Duc.DucBlockMetadata.addUsageCount(b, metadata.usageCount);
907
- // Convert to BigInt as expected by FlatBuffers
908
- Duc.DucBlockMetadata.addCreatedAt(b, BigInt(metadata.createdAt));
909
- Duc.DucBlockMetadata.addUpdatedAt(b, BigInt(metadata.updatedAt));
910
- if (localizationOffset)
911
- Duc.DucBlockMetadata.addLocalization(b, localizationOffset);
912
- metadataOffset = Duc.DucBlockMetadata.endDucBlockMetadata(b);
913
- }
914
- // Serialize thumbnail if present
915
- let thumbnailOffset;
916
- if (c.thumbnail) {
917
- thumbnailOffset = b.createByteVector(c.thumbnail);
918
- }
919
- Duc.DucBlockCollection.startDucBlockCollection(b);
920
- Duc.DucBlockCollection.addId(b, id);
921
- Duc.DucBlockCollection.addLabel(b, label);
922
- Duc.DucBlockCollection.addChildren(b, childrenOffset);
923
- if (metadataOffset)
924
- Duc.DucBlockCollection.addMetadata(b, metadataOffset);
925
- if (thumbnailOffset)
926
- Duc.DucBlockCollection.addThumbnail(b, thumbnailOffset);
927
- return Duc.DucBlockCollection.endDucBlockCollection(b);
928
- }
929
- /**
930
- * Stack containers
931
- */
932
- function writeStackLikeStyles(b, s, usv) {
933
- const color = b.createString(s.labelingColor);
934
- Duc.DucStackLikeStyles.startDucStackLikeStyles(b);
935
- Duc.DucStackLikeStyles.addOpacity(b, s.opacity);
936
- Duc.DucStackLikeStyles.addLabelingColor(b, color);
937
- return Duc.DucStackLikeStyles.endDucStackLikeStyles(b);
938
- }
939
- function writeStackBase(b, s, usv) {
940
- var _a;
941
- const label = b.createString(s.label);
942
- const desc = str(b, (_a = s.description) !== null && _a !== void 0 ? _a : undefined);
943
- const styles = writeStackLikeStyles(b, s, usv);
944
- Duc._DucStackBase.start_DucStackBase(b);
945
- Duc._DucStackBase.addLabel(b, label);
946
- if (desc)
947
- Duc._DucStackBase.addDescription(b, desc);
948
- Duc._DucStackBase.addIsCollapsed(b, s.isCollapsed);
949
- Duc._DucStackBase.addIsPlot(b, s.isPlot);
950
- Duc._DucStackBase.addIsVisible(b, s.isVisible);
951
- Duc._DucStackBase.addLocked(b, s.locked);
952
- Duc._DucStackBase.addStyles(b, styles);
953
- return Duc._DucStackBase.end_DucStackBase(b);
954
- }
955
- function writeStackElementBase(b, s, usv) {
956
- const base = writeElementBase(b, s, usv);
957
- const stackBase = writeStackBase(b, s, usv);
958
- const std = str(b, s.standardOverride);
959
- Duc._DucStackElementBase.start_DucStackElementBase(b);
960
- Duc._DucStackElementBase.addBase(b, base);
961
- Duc._DucStackElementBase.addStackBase(b, stackBase);
962
- Duc._DucStackElementBase.addClip(b, s.clip);
963
- Duc._DucStackElementBase.addLabelVisible(b, s.labelVisible);
964
- if (std)
965
- Duc._DucStackElementBase.addStandardOverride(b, std);
966
- return Duc._DucStackElementBase.end_DucStackElementBase(b);
967
- }
968
- function writeFrame(b, e, usv) {
969
- const base = writeStackElementBase(b, e, usv);
970
- Duc.DucFrameElement.startDucFrameElement(b);
971
- Duc.DucFrameElement.addStackElementBase(b, base);
972
- return Duc.DucFrameElement.endDucFrameElement(b);
973
- }
974
- function writePlotLayout(b, l, usv) {
975
- Duc.Margins.startMargins(b);
976
- Duc.Margins.addTop(b, getPrecisionValue(l.margins.top, usv));
977
- Duc.Margins.addRight(b, getPrecisionValue(l.margins.right, usv));
978
- Duc.Margins.addBottom(b, getPrecisionValue(l.margins.bottom, usv));
979
- Duc.Margins.addLeft(b, getPrecisionValue(l.margins.left, usv));
980
- const margins = Duc.Margins.endMargins(b);
981
- Duc.PlotLayout.startPlotLayout(b);
982
- Duc.PlotLayout.addMargins(b, margins);
983
- return Duc.PlotLayout.endPlotLayout(b);
984
- }
985
- function writePlot(b, e, usv) {
986
- const stackBase = writeStackElementBase(b, e, usv);
987
- const plotStyle = (() => {
988
- Duc.DucPlotStyle.startDucPlotStyle(b);
989
- return Duc.DucPlotStyle.endDucPlotStyle(b);
990
- })();
991
- const layout = writePlotLayout(b, e.layout, usv);
992
- Duc.DucPlotElement.startDucPlotElement(b);
993
- Duc.DucPlotElement.addStackElementBase(b, stackBase);
994
- Duc.DucPlotElement.addStyle(b, plotStyle);
995
- Duc.DucPlotElement.addLayout(b, layout);
996
- return Duc.DucPlotElement.endDucPlotElement(b);
997
- }
998
- /**
999
- * Views / Viewports / XRay
1000
- */
1001
- function writeView(b, v, usv) {
1002
- const center = writeDucPoint(b, v.centerPoint, usv);
1003
- const scope = b.createString(v.scope);
1004
- Duc.DucView.startDucView(b);
1005
- Duc.DucView.addScrollX(b, getPrecisionValue(v.scrollX, usv));
1006
- Duc.DucView.addScrollY(b, getPrecisionValue(v.scrollY, usv));
1007
- Duc.DucView.addZoom(b, v.zoom.value);
1008
- Duc.DucView.addTwistAngle(b, v.twistAngle);
1009
- if (center)
1010
- Duc.DucView.addCenterPoint(b, center);
1011
- Duc.DucView.addScope(b, scope);
1012
- return Duc.DucView.endDucView(b);
1013
- }
1014
- function writeViewportStyle(b, s, usv) {
1015
- Duc.DucViewportStyle.startDucViewportStyle(b);
1016
- Duc.DucViewportStyle.addScaleIndicatorVisible(b, s.scaleIndicatorVisible);
1017
- return Duc.DucViewportStyle.endDucViewportStyle(b);
1018
- }
1019
- function writeViewport(b, e, usv) {
1020
- var _a;
1021
- const linear = writeLinearBase(b, e, usv);
1022
- const stackBase = writeStackBase(b, e, usv);
1023
- const style = writeViewportStyle(b, e, usv);
1024
- const view = writeView(b, e.view, usv);
1025
- const frozen = ((_a = e.frozenGroupIds) === null || _a === void 0 ? void 0 : _a.length) ? Duc.DucViewportElement.createFrozenGroupIdsVector(b, e.frozenGroupIds.map((id) => b.createString(id))) : undefined;
1026
- const std = str(b, e.standardOverride);
1027
- Duc.DucViewportElement.startDucViewportElement(b);
1028
- Duc.DucViewportElement.addLinearBase(b, linear);
1029
- Duc.DucViewportElement.addStackBase(b, stackBase);
1030
- Duc.DucViewportElement.addStyle(b, style);
1031
- Duc.DucViewportElement.addView(b, view);
1032
- Duc.DucViewportElement.addScale(b, e.scale);
1033
- if (e.shadePlot !== undefined)
1034
- Duc.DucViewportElement.addShadePlot(b, e.shadePlot);
1035
- if (frozen)
1036
- Duc.DucViewportElement.addFrozenGroupIds(b, frozen);
1037
- if (std)
1038
- Duc.DucViewportElement.addStandardOverride(b, std);
1039
- return Duc.DucViewportElement.endDucViewportElement(b);
1040
- }
1041
- function writeXRayStyle(b, s, usv) {
1042
- const color = b.createString(s.color);
1043
- Duc.DucXRayStyle.startDucXRayStyle(b);
1044
- Duc.DucXRayStyle.addColor(b, color);
1045
- return Duc.DucXRayStyle.endDucXRayStyle(b);
1046
- }
1047
- function writeXRay(b, e, usv) {
1048
- const base = writeElementBase(b, e, usv);
1049
- const style = writeXRayStyle(b, e, usv);
1050
- const origin = writeDucPoint(b, e.origin, usv);
1051
- const direction = writeDucPoint(b, e.direction, usv);
1052
- Duc.DucXRayElement.startDucXRayElement(b);
1053
- Duc.DucXRayElement.addBase(b, base);
1054
- Duc.DucXRayElement.addStyle(b, style);
1055
- if (origin)
1056
- Duc.DucXRayElement.addOrigin(b, origin);
1057
- if (direction)
1058
- Duc.DucXRayElement.addDirection(b, direction);
1059
- Duc.DucXRayElement.addStartFromOrigin(b, e.startFromOrigin);
1060
- return Duc.DucXRayElement.endDucXRayElement(b);
1061
- }
1062
- /**
1063
- * Leader & Dimension & FCF
1064
- */
1065
- function writeLeaderContent(b, c, usv) {
1066
- var _a, _b;
1067
- if (!c)
1068
- return undefined;
1069
- let contentOffset;
1070
- let contentType;
1071
- if (c.type === "text") {
1072
- const text = b.createString(c.text);
1073
- Duc.LeaderTextBlockContent.startLeaderTextBlockContent(b);
1074
- Duc.LeaderTextBlockContent.addText(b, text);
1075
- contentOffset = Duc.LeaderTextBlockContent.endLeaderTextBlockContent(b);
1076
- contentType = Duc.LeaderContentData.LeaderTextBlockContent;
1077
- }
1078
- else {
1079
- const attrs = Duc.LeaderBlockContent.createAttributeValuesVector(b, Object.entries((_a = c.instanceData.attributeValues) !== null && _a !== void 0 ? _a : {}).map(([k, v]) => writeStringEntry(b, k, v)));
1080
- const overrides = Duc.LeaderBlockContent.createElementOverridesVector(b, Object.entries((_b = c.instanceData.elementOverrides) !== null && _b !== void 0 ? _b : {}).map(([k, v]) => writeStringEntry(b, k, v)));
1081
- const blockId = b.createString(c.blockId);
1082
- Duc.LeaderBlockContent.startLeaderBlockContent(b);
1083
- Duc.LeaderBlockContent.addBlockId(b, blockId);
1084
- if (attrs)
1085
- Duc.LeaderBlockContent.addAttributeValues(b, attrs);
1086
- if (overrides)
1087
- Duc.LeaderBlockContent.addElementOverrides(b, overrides);
1088
- contentOffset = Duc.LeaderBlockContent.endLeaderBlockContent(b);
1089
- contentType = Duc.LeaderContentData.LeaderBlockContent;
1090
- }
1091
- Duc.LeaderContent.startLeaderContent(b);
1092
- Duc.LeaderContent.addLeaderContentType(b, Duc.LEADER_CONTENT_TYPE[c.type.toUpperCase()]);
1093
- Duc.LeaderContent.addContentType(b, contentType);
1094
- Duc.LeaderContent.addContent(b, contentOffset);
1095
- return Duc.LeaderContent.endLeaderContent(b);
1096
- }
1097
- function writeLeaderStyle(b, s, usv) {
1098
- const text = writeTextStyle(b, s.textStyle, usv);
1099
- const heads = s.headsOverride ? Duc.DucLeaderStyle.createHeadsOverrideVector(b, s.headsOverride.map((h) => writeHead(b, h, usv))) : undefined;
1100
- Duc.DucLeaderStyle.startDucLeaderStyle(b);
1101
- if (heads)
1102
- Duc.DucLeaderStyle.addHeadsOverride(b, heads);
1103
- if (s.dogleg !== undefined)
1104
- Duc.DucLeaderStyle.addDogleg(b, getPrecisionValue(s.dogleg, usv));
1105
- Duc.DucLeaderStyle.addTextStyle(b, text);
1106
- if (s.textAttachment !== undefined)
1107
- Duc.DucLeaderStyle.addTextAttachment(b, s.textAttachment);
1108
- if (s.blockAttachment !== undefined)
1109
- Duc.DucLeaderStyle.addBlockAttachment(b, s.blockAttachment);
1110
- return Duc.DucLeaderStyle.endDucLeaderStyle(b);
1111
- }
1112
- function writeLeader(b, e, usv) {
1113
- const linear = writeLinearBase(b, e, usv);
1114
- const style = writeLeaderStyle(b, e, usv);
1115
- const content = writeLeaderContent(b, e.leaderContent, usv);
1116
- const anchor = writeGeomPoint(b, e.contentAnchor, usv);
1117
- Duc.DucLeaderElement.startDucLeaderElement(b);
1118
- Duc.DucLeaderElement.addLinearBase(b, linear);
1119
- Duc.DucLeaderElement.addStyle(b, style);
1120
- if (content)
1121
- Duc.DucLeaderElement.addContent(b, content);
1122
- if (anchor)
1123
- Duc.DucLeaderElement.addContentAnchor(b, anchor);
1124
- return Duc.DucLeaderElement.endDucLeaderElement(b);
1125
- }
1126
- function writeDimDefPoints(b, d, usv) {
1127
- const o1 = writeGeomPoint(b, d.origin1, usv);
1128
- const o2 = d.origin2 ? writeGeomPoint(b, d.origin2, usv) : undefined;
1129
- const loc = writeGeomPoint(b, d.location, usv);
1130
- const center = d.center ? writeGeomPoint(b, d.center, usv) : undefined;
1131
- const jog = d.jog ? writeGeomPoint(b, d.jog, usv) : undefined;
1132
- Duc.DimensionDefinitionPoints.startDimensionDefinitionPoints(b);
1133
- if (o1)
1134
- Duc.DimensionDefinitionPoints.addOrigin1(b, o1);
1135
- if (o2)
1136
- Duc.DimensionDefinitionPoints.addOrigin2(b, o2);
1137
- if (loc)
1138
- Duc.DimensionDefinitionPoints.addLocation(b, loc);
1139
- if (center)
1140
- Duc.DimensionDefinitionPoints.addCenter(b, center);
1141
- if (jog)
1142
- Duc.DimensionDefinitionPoints.addJog(b, jog);
1143
- return Duc.DimensionDefinitionPoints.endDimensionDefinitionPoints(b);
1144
- }
1145
- function writeDimBindings(b, d, usv) {
1146
- if (!d)
1147
- return undefined;
1148
- const o1 = d.origin1 ? writePointBinding(b, d.origin1, usv) : undefined;
1149
- const o2 = d.origin2 ? writePointBinding(b, d.origin2, usv) : undefined;
1150
- const c = d.center ? writePointBinding(b, d.center, usv) : undefined;
1151
- Duc.DimensionBindings.startDimensionBindings(b);
1152
- if (o1)
1153
- Duc.DimensionBindings.addOrigin1(b, o1);
1154
- if (o2)
1155
- Duc.DimensionBindings.addOrigin2(b, o2);
1156
- if (c)
1157
- Duc.DimensionBindings.addCenter(b, c);
1158
- return Duc.DimensionBindings.endDimensionBindings(b);
1159
- }
1160
- function writeDimTolStyle(b, t, usv) {
1161
- const textStyle = writeTextStyle(b, t.textStyle, usv);
1162
- Duc.DimensionToleranceStyle.startDimensionToleranceStyle(b);
1163
- Duc.DimensionToleranceStyle.addEnabled(b, t.enabled);
1164
- Duc.DimensionToleranceStyle.addDisplayMethod(b, t.displayMethod);
1165
- Duc.DimensionToleranceStyle.addUpperValue(b, t.upperValue);
1166
- Duc.DimensionToleranceStyle.addLowerValue(b, t.lowerValue);
1167
- Duc.DimensionToleranceStyle.addPrecision(b, t.precision);
1168
- Duc.DimensionToleranceStyle.addTextStyle(b, textStyle);
1169
- return Duc.DimensionToleranceStyle.endDimensionToleranceStyle(b);
1170
- }
1171
- function writeDimLineStyle(b, s, usv) {
1172
- const st = writeElementStroke(b, s.stroke, usv);
1173
- Duc.DimensionLineStyle.startDimensionLineStyle(b);
1174
- if (st)
1175
- Duc.DimensionLineStyle.addStroke(b, st);
1176
- Duc.DimensionLineStyle.addTextGap(b, getPrecisionValue(s.textGap, usv));
1177
- return Duc.DimensionLineStyle.endDimensionLineStyle(b);
1178
- }
1179
- function writeExtLineStyle(b, s, usv) {
1180
- const st = writeElementStroke(b, s.stroke, usv);
1181
- Duc.DimensionExtLineStyle.startDimensionExtLineStyle(b);
1182
- if (st)
1183
- Duc.DimensionExtLineStyle.addStroke(b, st);
1184
- Duc.DimensionExtLineStyle.addOvershoot(b, getPrecisionValue(s.overshoot, usv));
1185
- Duc.DimensionExtLineStyle.addOffset(b, getPrecisionValue(s.offset, usv));
1186
- return Duc.DimensionExtLineStyle.endDimensionExtLineStyle(b);
1187
- }
1188
- function writeDimSymbolStyle(b, s, usv) {
1189
- const heads = s.headsOverride ? Duc.DimensionSymbolStyle.createHeadsOverrideVector(b, s.headsOverride.map((h) => writeHead(b, h, usv))) : undefined;
1190
- Duc.DimensionSymbolStyle.startDimensionSymbolStyle(b);
1191
- if (heads)
1192
- Duc.DimensionSymbolStyle.addHeadsOverride(b, heads);
1193
- Duc.DimensionSymbolStyle.addCenterMarkType(b, s.centerMark.type);
1194
- Duc.DimensionSymbolStyle.addCenterMarkSize(b, getPrecisionValue(s.centerMark.size, usv));
1195
- return Duc.DimensionSymbolStyle.endDimensionSymbolStyle(b);
1196
- }
1197
- function writeDimStyle(b, s, usv) {
1198
- const dim = writeDimLineStyle(b, s.dimLine, usv);
1199
- const ext = writeExtLineStyle(b, s.extLine, usv);
1200
- const text = writeTextStyle(b, s.textStyle, usv);
1201
- const sym = writeDimSymbolStyle(b, s.symbols, usv);
1202
- const tol = writeDimTolStyle(b, s.tolerance, usv);
1203
- const fit = (() => {
1204
- Duc.DimensionFitStyle.startDimensionFitStyle(b);
1205
- Duc.DimensionFitStyle.addRule(b, s.fit.rule);
1206
- Duc.DimensionFitStyle.addTextPlacement(b, s.fit.textPlacement);
1207
- Duc.DimensionFitStyle.addForceTextInside(b, s.fit.forceTextInside);
1208
- return Duc.DimensionFitStyle.endDimensionFitStyle(b);
1209
- })();
1210
- Duc.DucDimensionStyle.startDucDimensionStyle(b);
1211
- Duc.DucDimensionStyle.addDimLine(b, dim);
1212
- Duc.DucDimensionStyle.addExtLine(b, ext);
1213
- Duc.DucDimensionStyle.addTextStyle(b, text);
1214
- Duc.DucDimensionStyle.addSymbols(b, sym);
1215
- Duc.DucDimensionStyle.addTolerance(b, tol);
1216
- Duc.DucDimensionStyle.addFit(b, fit);
1217
- return Duc.DucDimensionStyle.endDucDimensionStyle(b);
1218
- }
1219
- function writeDimension(b, e, usv) {
1220
- const base = writeElementBase(b, e, usv);
1221
- const style = writeDimStyle(b, e, usv);
1222
- const def = writeDimDefPoints(b, e.definitionPoints, usv);
1223
- const bindings = writeDimBindings(b, e.bindings, usv);
1224
- const textOverride = e.textOverride != null ? b.createString(e.textOverride) : undefined;
1225
- const textPos = e.textPosition ? writeGeomPoint(b, e.textPosition, usv) : undefined;
1226
- const tolOverride = e.toleranceOverride ? writeDimTolStyle(b, e.toleranceOverride, usv) : undefined;
1227
- const baseline = e.baselineData
1228
- ? (() => {
1229
- Duc.DimensionBaselineData.startDimensionBaselineData(b);
1230
- Duc.DimensionBaselineData.addBaseDimensionId(b, b.createString(e.baselineData.baseDimensionId));
1231
- return Duc.DimensionBaselineData.endDimensionBaselineData(b);
1232
- })()
1233
- : undefined;
1234
- const cont = e.continueData
1235
- ? (() => {
1236
- Duc.DimensionContinueData.startDimensionContinueData(b);
1237
- Duc.DimensionContinueData.addContinueFromDimensionId(b, b.createString(e.continueData.continueFromDimensionId));
1238
- return Duc.DimensionContinueData.endDimensionContinueData(b);
1239
- })()
1240
- : undefined;
1241
- Duc.DucDimensionElement.startDucDimensionElement(b);
1242
- Duc.DucDimensionElement.addBase(b, base);
1243
- Duc.DucDimensionElement.addStyle(b, style);
1244
- Duc.DucDimensionElement.addDimensionType(b, e.dimensionType);
1245
- Duc.DucDimensionElement.addDefinitionPoints(b, def);
1246
- Duc.DucDimensionElement.addObliqueAngle(b, e.obliqueAngle);
1247
- if (e.ordinateAxis)
1248
- Duc.DucDimensionElement.addOrdinateAxis(b, e.ordinateAxis);
1249
- if (bindings)
1250
- Duc.DucDimensionElement.addBindings(b, bindings);
1251
- if (textOverride)
1252
- Duc.DucDimensionElement.addTextOverride(b, textOverride);
1253
- if (textPos)
1254
- Duc.DucDimensionElement.addTextPosition(b, textPos);
1255
- if (tolOverride)
1256
- Duc.DucDimensionElement.addToleranceOverride(b, tolOverride);
1257
- if (baseline)
1258
- Duc.DucDimensionElement.addBaselineData(b, baseline);
1259
- if (cont)
1260
- Duc.DucDimensionElement.addContinueData(b, cont);
1261
- return Duc.DucDimensionElement.endDucDimensionElement(b);
1262
- }
1263
- function writeDatumRef(b, d, usv) {
1264
- const letters = b.createString(d.letters);
1265
- Duc.DatumReference.startDatumReference(b);
1266
- Duc.DatumReference.addLetters(b, letters);
1267
- if (d.modifier)
1268
- Duc.DatumReference.addModifier(b, d.modifier);
1269
- return Duc.DatumReference.endDatumReference(b);
1270
- }
1271
- function writeToleranceClause(b, t, usv) {
1272
- var _a;
1273
- const value = b.createString(t.value);
1274
- const featureMods = ((_a = t.featureModifiers) === null || _a === void 0 ? void 0 : _a.length)
1275
- ? Duc.ToleranceClause.createFeatureModifiersVector(b, t.featureModifiers.map((f) => f))
1276
- : undefined;
1277
- Duc.ToleranceClause.startToleranceClause(b);
1278
- Duc.ToleranceClause.addValue(b, value);
1279
- if (t.zoneType)
1280
- Duc.ToleranceClause.addZoneType(b, t.zoneType);
1281
- if (featureMods)
1282
- Duc.ToleranceClause.addFeatureModifiers(b, featureMods);
1283
- if (t.materialCondition)
1284
- Duc.ToleranceClause.addMaterialCondition(b, t.materialCondition);
1285
- return Duc.ToleranceClause.endToleranceClause(b);
1286
- }
1287
- function writeFcfSegment(b, s, usv) {
1288
- var _a;
1289
- const tol = writeToleranceClause(b, s.tolerance, usv);
1290
- const datums = ((_a = s.datums) === null || _a === void 0 ? void 0 : _a.length) ? Duc.FeatureControlFrameSegment.createDatumsVector(b, s.datums.filter(Boolean).map((d) => writeDatumRef(b, d, usv))) : undefined;
1291
- Duc.FeatureControlFrameSegment.startFeatureControlFrameSegment(b);
1292
- Duc.FeatureControlFrameSegment.addSymbol(b, s.symbol);
1293
- Duc.FeatureControlFrameSegment.addTolerance(b, tol);
1294
- if (datums)
1295
- Duc.FeatureControlFrameSegment.addDatums(b, datums);
1296
- return Duc.FeatureControlFrameSegment.endFeatureControlFrameSegment(b);
1297
- }
1298
- function writeFcfSegmentRow(b, row, usv) {
1299
- const segs = Duc.FCFSegmentRow.createSegmentsVector(b, row.map((s) => writeFcfSegment(b, s, usv)));
1300
- Duc.FCFSegmentRow.startFCFSegmentRow(b);
1301
- Duc.FCFSegmentRow.addSegments(b, segs);
1302
- return Duc.FCFSegmentRow.endFCFSegmentRow(b);
1303
- }
1304
- function writeFcfBetween(b, v, usv) {
1305
- const s = b.createString(v.start);
1306
- const e = b.createString(v.end);
1307
- Duc.FCFBetweenModifier.startFCFBetweenModifier(b);
1308
- Duc.FCFBetweenModifier.addStart(b, s);
1309
- Duc.FCFBetweenModifier.addEnd(b, e);
1310
- return Duc.FCFBetweenModifier.endFCFBetweenModifier(b);
1311
- }
1312
- function writeProjectedZone(b, v, usv) {
1313
- Duc.FCFProjectedZoneModifier.startFCFProjectedZoneModifier(b);
1314
- Duc.FCFProjectedZoneModifier.addValue(b, getPrecisionValue(v, usv));
1315
- return Duc.FCFProjectedZoneModifier.endFCFProjectedZoneModifier(b);
1316
- }
1317
- function writeFcfFrameModifiers(b, m, usv) {
1318
- if (!m)
1319
- return undefined;
1320
- Duc.FCFFrameModifiers.startFCFFrameModifiers(b);
1321
- if (m.allAround !== undefined)
1322
- Duc.FCFFrameModifiers.addAllAround(b, m.allAround);
1323
- if (m.allOver !== undefined)
1324
- Duc.FCFFrameModifiers.addAllOver(b, m.allOver);
1325
- if (m.continuousFeature !== undefined)
1326
- Duc.FCFFrameModifiers.addContinuousFeature(b, m.continuousFeature);
1327
- if (m.between)
1328
- Duc.FCFFrameModifiers.addBetween(b, writeFcfBetween(b, m.between, usv));
1329
- if (m.projectedToleranceZone)
1330
- Duc.FCFFrameModifiers.addProjectedToleranceZone(b, writeProjectedZone(b, m.projectedToleranceZone, usv));
1331
- return Duc.FCFFrameModifiers.endFCFFrameModifiers(b);
1332
- }
1333
- function writeFcfDatumDefinition(b, d, usv) {
1334
- if (!d)
1335
- return undefined;
1336
- const letter = b.createString(d.letter);
1337
- const binding = d.featureBinding ? writePointBinding(b, d.featureBinding, usv) : undefined;
1338
- Duc.FCFDatumDefinition.startFCFDatumDefinition(b);
1339
- Duc.FCFDatumDefinition.addLetter(b, letter);
1340
- if (binding)
1341
- Duc.FCFDatumDefinition.addFeatureBinding(b, binding);
1342
- return Duc.FCFDatumDefinition.endFCFDatumDefinition(b);
1343
- }
1344
- function writeFcfStyle(b, s, usv) {
1345
- const text = writeTextStyle(b, s.textStyle, usv);
1346
- const layout = (() => {
1347
- Duc.FCFLayoutStyle.startFCFLayoutStyle(b);
1348
- Duc.FCFLayoutStyle.addPadding(b, getPrecisionValue(s.layout.padding, usv));
1349
- Duc.FCFLayoutStyle.addSegmentSpacing(b, getPrecisionValue(s.layout.segmentSpacing, usv));
1350
- Duc.FCFLayoutStyle.addRowSpacing(b, getPrecisionValue(s.layout.rowSpacing, usv));
1351
- return Duc.FCFLayoutStyle.endFCFLayoutStyle(b);
1352
- })();
1353
- const sym = (() => {
1354
- Duc.FCFSymbolStyle.startFCFSymbolStyle(b);
1355
- Duc.FCFSymbolStyle.addScale(b, s.symbols.scale);
1356
- return Duc.FCFSymbolStyle.endFCFSymbolStyle(b);
1357
- })();
1358
- const datum = (() => {
1359
- Duc.FCFDatumStyle.startFCFDatumStyle(b);
1360
- Duc.FCFDatumStyle.addBracketStyle(b, s.datumStyle.bracketStyle);
1361
- return Duc.FCFDatumStyle.endFCFDatumStyle(b);
1362
- })();
1363
- Duc.DucFeatureControlFrameStyle.startDucFeatureControlFrameStyle(b);
1364
- Duc.DucFeatureControlFrameStyle.addTextStyle(b, text);
1365
- Duc.DucFeatureControlFrameStyle.addLayout(b, layout);
1366
- Duc.DucFeatureControlFrameStyle.addSymbols(b, sym);
1367
- Duc.DucFeatureControlFrameStyle.addDatumStyle(b, datum);
1368
- return Duc.DucFeatureControlFrameStyle.endDucFeatureControlFrameStyle(b);
1369
- }
1370
- function writeFcf(b, e, usv) {
1371
- const base = writeElementBase(b, e, usv);
1372
- const style = writeFcfStyle(b, e, usv);
1373
- const rows = Duc.DucFeatureControlFrameElement.createRowsVector(b, e.rows.map((r) => writeFcfSegmentRow(b, r, usv)));
1374
- const mods = writeFcfFrameModifiers(b, e.frameModifiers, usv);
1375
- const leaderId = e.leaderElementId ? b.createString(e.leaderElementId) : undefined;
1376
- const datumDef = writeFcfDatumDefinition(b, e.datumDefinition, usv);
1377
- Duc.DucFeatureControlFrameElement.startDucFeatureControlFrameElement(b);
1378
- Duc.DucFeatureControlFrameElement.addBase(b, base);
1379
- Duc.DucFeatureControlFrameElement.addStyle(b, style);
1380
- Duc.DucFeatureControlFrameElement.addRows(b, rows);
1381
- if (mods)
1382
- Duc.DucFeatureControlFrameElement.addFrameModifiers(b, mods);
1383
- if (leaderId)
1384
- Duc.DucFeatureControlFrameElement.addLeaderElementId(b, leaderId);
1385
- if (datumDef)
1386
- Duc.DucFeatureControlFrameElement.addDatumDefinition(b, datumDef);
1387
- return Duc.DucFeatureControlFrameElement.endDucFeatureControlFrameElement(b);
1388
- }
1389
- /**
1390
- * Doc element
1391
- */
1392
- function writeDoc(b, e, usv) {
1393
- const base = writeElementBase(b, e, usv);
1394
- const style = writeDocStyle(b, e, usv);
1395
- const text = b.createString(e.text);
1396
- const dynamic = Duc.DucDocElement.createDynamicVector(b, e.dynamic.map((d) => writeTextDynamicPart(b, d, usv)));
1397
- const columns = (() => {
1398
- const col = e.columns;
1399
- const defs = Duc.ColumnLayout.createDefinitionsVector(b, col.definitions.map((d) => writeTextColumn(b, d, usv)));
1400
- Duc.ColumnLayout.startColumnLayout(b);
1401
- Duc.ColumnLayout.addType(b, col.type);
1402
- Duc.ColumnLayout.addDefinitions(b, defs);
1403
- Duc.ColumnLayout.addAutoHeight(b, col.autoHeight);
1404
- return Duc.ColumnLayout.endColumnLayout(b);
1405
- })();
1406
- const fileId = e.fileId ? b.createString(e.fileId) : undefined;
1407
- const gridConfig = writeDocumentGridConfig(b, e.gridConfig, usv);
1408
- Duc.DucDocElement.startDucDocElement(b);
1409
- Duc.DucDocElement.addBase(b, base);
1410
- Duc.DucDocElement.addStyle(b, style);
1411
- Duc.DucDocElement.addText(b, text);
1412
- Duc.DucDocElement.addDynamic(b, dynamic);
1413
- Duc.DucDocElement.addFlowDirection(b, e.flowDirection);
1414
- Duc.DucDocElement.addColumns(b, columns);
1415
- Duc.DucDocElement.addAutoResize(b, e.autoResize);
1416
- if (fileId)
1417
- Duc.DucDocElement.addFileId(b, fileId);
1418
- Duc.DucDocElement.addGridConfig(b, gridConfig);
1419
- return Duc.DucDocElement.endDucDocElement(b);
1420
- }
1421
- /**
1422
- * PDF, Mermaid, Embeddable
1423
- */
1424
- function writePdf(b, e, usv) {
1425
- const base = writeElementBase(b, e, usv);
1426
- const fileId = e.fileId ? b.createString(e.fileId) : undefined;
1427
- const gridConfig = writeDocumentGridConfig(b, e.gridConfig, usv);
1428
- Duc.DucPdfElement.startDucPdfElement(b);
1429
- Duc.DucPdfElement.addBase(b, base);
1430
- if (fileId)
1431
- Duc.DucPdfElement.addFileId(b, fileId);
1432
- Duc.DucPdfElement.addGridConfig(b, gridConfig);
1433
- return Duc.DucPdfElement.endDucPdfElement(b);
1434
- }
1435
- function writeMermaid(b, e, usv) {
1436
- const base = writeElementBase(b, e, usv);
1437
- const src = b.createString(e.source);
1438
- const theme = e.theme ? b.createString(e.theme) : undefined;
1439
- const svg = e.svgPath ? b.createString(e.svgPath) : undefined;
1440
- Duc.DucMermaidElement.startDucMermaidElement(b);
1441
- Duc.DucMermaidElement.addBase(b, base);
1442
- Duc.DucMermaidElement.addSource(b, src);
1443
- if (theme)
1444
- Duc.DucMermaidElement.addTheme(b, theme);
1445
- if (svg)
1446
- Duc.DucMermaidElement.addSvgPath(b, svg);
1447
- return Duc.DucMermaidElement.endDucMermaidElement(b);
1448
- }
1449
- function writeModel(b, e, usv) {
1450
- var _a;
1451
- const base = writeElementBase(b, e, usv);
1452
- const src = b.createString(e.source);
1453
- const svg = e.svgPath ? b.createString(e.svgPath) : undefined;
1454
- const fileIds = ((_a = e.fileIds) === null || _a === void 0 ? void 0 : _a.length) ? Duc.DucModelElement.createFileIdsVector(b, e.fileIds.map((id) => b.createString(id))) : undefined;
1455
- Duc.DucModelElement.startDucModelElement(b);
1456
- Duc.DucModelElement.addBase(b, base);
1457
- Duc.DucModelElement.addSource(b, src);
1458
- if (svg)
1459
- Duc.DucModelElement.addSvgPath(b, svg);
1460
- if (fileIds)
1461
- Duc.DucModelElement.addFileIds(b, fileIds);
1462
- return Duc.DucModelElement.endDucModelElement(b);
1463
- }
1464
- function writeEmbeddable(b, e, usv) {
1465
- const base = writeElementBase(b, e, usv);
1466
- Duc.DucEmbeddableElement.startDucEmbeddableElement(b);
1467
- Duc.DucEmbeddableElement.addBase(b, base);
1468
- return Duc.DucEmbeddableElement.endDucEmbeddableElement(b);
1469
- }
1470
- /**
1471
- * Table
1472
- */
1473
- function writeTableCellStyle(b, s, usv) {
1474
- const base = writeStylesBase(b, s, usv);
1475
- const text = writeTextStyle(b, s.textStyle, usv);
1476
- Duc.Margins.startMargins(b);
1477
- Duc.Margins.addTop(b, getPrecisionValue(s.margins.top, usv));
1478
- Duc.Margins.addRight(b, getPrecisionValue(s.margins.right, usv));
1479
- Duc.Margins.addBottom(b, getPrecisionValue(s.margins.bottom, usv));
1480
- Duc.Margins.addLeft(b, getPrecisionValue(s.margins.left, usv));
1481
- const margins = Duc.Margins.endMargins(b);
1482
- Duc.DucTableCellStyle.startDucTableCellStyle(b);
1483
- if (base) {
1484
- Duc.DucTableCellStyle.addBaseStyle(b, base);
1485
- }
1486
- Duc.DucTableCellStyle.addTextStyle(b, text);
1487
- Duc.DucTableCellStyle.addMargins(b, margins);
1488
- Duc.DucTableCellStyle.addAlignment(b, s.alignment);
1489
- return Duc.DucTableCellStyle.endDucTableCellStyle(b);
1490
- }
1491
- function writeTableStyle(b, s, usv) {
1492
- const header = writeTableCellStyle(b, s.headerRowStyle, usv);
1493
- const dataRow = writeTableCellStyle(b, s.dataRowStyle, usv);
1494
- const dataCol = writeTableCellStyle(b, s.dataColumnStyle, usv);
1495
- Duc.DucTableStyle.startDucTableStyle(b);
1496
- Duc.DucTableStyle.addFlowDirection(b, s.flowDirection);
1497
- Duc.DucTableStyle.addHeaderRowStyle(b, header);
1498
- Duc.DucTableStyle.addDataRowStyle(b, dataRow);
1499
- Duc.DucTableStyle.addDataColumnStyle(b, dataCol);
1500
- return Duc.DucTableStyle.endDucTableStyle(b);
1501
- }
1502
- function writeTable(b, e, usv) {
1503
- const base = writeElementBase(b, e, usv);
1504
- const style = writeTableStyle(b, e, usv);
1505
- const colOrder = Duc.DucTableElement.createColumnOrderVector(b, e.columnOrder.map((id) => b.createString(id)));
1506
- const rowOrder = Duc.DucTableElement.createRowOrderVector(b, e.rowOrder.map((id) => b.createString(id)));
1507
- const columns = Duc.DucTableElement.createColumnsVector(b, Object.entries(e.columns).map(([k, v]) => {
1508
- const key = b.createString(k);
1509
- const val = (() => {
1510
- const id = b.createString(v.id);
1511
- Duc.DucTableColumn.startDucTableColumn(b);
1512
- Duc.DucTableColumn.addId(b, id);
1513
- Duc.DucTableColumn.addWidth(b, getPrecisionValue(v.width, usv));
1514
- const styleOverrides = v.styleOverrides ? writeTableCellStyle(b, v.styleOverrides, usv) : undefined;
1515
- if (styleOverrides)
1516
- Duc.DucTableColumn.addStyleOverrides(b, styleOverrides);
1517
- return Duc.DucTableColumn.endDucTableColumn(b);
1518
- })();
1519
- Duc.DucTableColumnEntry.startDucTableColumnEntry(b);
1520
- Duc.DucTableColumnEntry.addKey(b, key);
1521
- Duc.DucTableColumnEntry.addValue(b, val);
1522
- return Duc.DucTableColumnEntry.endDucTableColumnEntry(b);
1523
- }));
1524
- const rows = Duc.DucTableElement.createRowsVector(b, Object.entries(e.rows).map(([k, v]) => {
1525
- const key = b.createString(k);
1526
- const val = (() => {
1527
- const id = b.createString(v.id);
1528
- Duc.DucTableRow.startDucTableRow(b);
1529
- Duc.DucTableRow.addId(b, id);
1530
- Duc.DucTableRow.addHeight(b, getPrecisionValue(v.height, usv));
1531
- const styleOverrides = v.styleOverrides ? writeTableCellStyle(b, v.styleOverrides, usv) : undefined;
1532
- if (styleOverrides)
1533
- Duc.DucTableRow.addStyleOverrides(b, styleOverrides);
1534
- return Duc.DucTableRow.endDucTableRow(b);
1535
- })();
1536
- Duc.DucTableRowEntry.startDucTableRowEntry(b);
1537
- Duc.DucTableRowEntry.addKey(b, key);
1538
- Duc.DucTableRowEntry.addValue(b, val);
1539
- return Duc.DucTableRowEntry.endDucTableRowEntry(b);
1540
- }));
1541
- const cells = Duc.DucTableElement.createCellsVector(b, Object.entries(e.cells).map(([k, v]) => {
1542
- const key = b.createString(k);
1543
- const val = (() => {
1544
- const row = b.createString(v.rowId);
1545
- const col = b.createString(v.columnId);
1546
- const data = b.createString(v.data);
1547
- const span = v.span
1548
- ? (() => {
1549
- Duc.DucTableCellSpan.startDucTableCellSpan(b);
1550
- Duc.DucTableCellSpan.addColumns(b, v.span.columns);
1551
- Duc.DucTableCellSpan.addRows(b, v.span.rows);
1552
- return Duc.DucTableCellSpan.endDucTableCellSpan(b);
1553
- })()
1554
- : undefined;
1555
- const styleOverrides = v.styleOverrides ? writeTableCellStyle(b, v.styleOverrides, usv) : undefined;
1556
- Duc.DucTableCell.startDucTableCell(b);
1557
- Duc.DucTableCell.addRowId(b, row);
1558
- Duc.DucTableCell.addColumnId(b, col);
1559
- Duc.DucTableCell.addData(b, data);
1560
- if (span !== undefined)
1561
- Duc.DucTableCell.addSpan(b, span);
1562
- Duc.DucTableCell.addLocked(b, v.locked);
1563
- if (styleOverrides)
1564
- Duc.DucTableCell.addStyleOverrides(b, styleOverrides);
1565
- return Duc.DucTableCell.endDucTableCell(b);
1566
- })();
1567
- Duc.DucTableCellEntry.startDucTableCellEntry(b);
1568
- Duc.DucTableCellEntry.addKey(b, key);
1569
- Duc.DucTableCellEntry.addValue(b, val);
1570
- return Duc.DucTableCellEntry.endDucTableCellEntry(b);
1571
- }));
1572
- const autoSize = (() => {
1573
- Duc.DucTableAutoSize.startDucTableAutoSize(b);
1574
- Duc.DucTableAutoSize.addColumns(b, e.autoSize.columns);
1575
- Duc.DucTableAutoSize.addRows(b, e.autoSize.rows);
1576
- return Duc.DucTableAutoSize.endDucTableAutoSize(b);
1577
- })();
1578
- Duc.DucTableElement.startDucTableElement(b);
1579
- Duc.DucTableElement.addBase(b, base);
1580
- Duc.DucTableElement.addStyle(b, style);
1581
- Duc.DucTableElement.addColumnOrder(b, colOrder);
1582
- Duc.DucTableElement.addRowOrder(b, rowOrder);
1583
- Duc.DucTableElement.addColumns(b, columns);
1584
- Duc.DucTableElement.addRows(b, rows);
1585
- Duc.DucTableElement.addCells(b, cells);
1586
- Duc.DucTableElement.addHeaderRowCount(b, e.headerRowCount);
1587
- Duc.DucTableElement.addAutoSize(b, autoSize);
1588
- return Duc.DucTableElement.endDucTableElement(b);
1589
- }
1590
- /**
1591
- * Element wrapper
1592
- */
1593
- function writeElementWrapper(b, e, usv) {
1594
- let elem;
1595
- let type;
1596
- switch (e.type) {
1597
- case "rectangle":
1598
- type = Duc.Element.DucRectangleElement;
1599
- elem = writeRect(b, e, usv);
1600
- break;
1601
- case "polygon":
1602
- type = Duc.Element.DucPolygonElement;
1603
- elem = writePolygon(b, e, usv);
1604
- break;
1605
- case "ellipse":
1606
- type = Duc.Element.DucEllipseElement;
1607
- elem = writeEllipse(b, e, usv);
1608
- break;
1609
- case "line":
1610
- type = Duc.Element.DucLinearElement;
1611
- elem = writeLinear(b, e, usv);
1612
- break;
1613
- case "text":
1614
- type = Duc.Element.DucTextElement;
1615
- elem = writeText(b, e, usv);
1616
- break;
1617
- case "arrow":
1618
- type = Duc.Element.DucArrowElement;
1619
- elem = writeArrow(b, e, usv);
1620
- break;
1621
- case "freedraw":
1622
- type = Duc.Element.DucFreeDrawElement;
1623
- elem = writeFreeDraw(b, e, usv);
1624
- break;
1625
- case "image":
1626
- type = Duc.Element.DucImageElement;
1627
- elem = writeImage(b, e, usv);
1628
- break;
1629
- case "table":
1630
- type = Duc.Element.DucTableElement;
1631
- elem = writeTable(b, e, usv);
1632
- break;
1633
- case "frame":
1634
- type = Duc.Element.DucFrameElement;
1635
- elem = writeFrame(b, e, usv);
1636
- break;
1637
- case "plot":
1638
- type = Duc.Element.DucPlotElement;
1639
- elem = writePlot(b, e, usv);
1640
- break;
1641
- case "viewport":
1642
- type = Duc.Element.DucViewportElement;
1643
- elem = writeViewport(b, e, usv);
1644
- break;
1645
- case "xray":
1646
- type = Duc.Element.DucXRayElement;
1647
- elem = writeXRay(b, e, usv);
1648
- break;
1649
- case "leader":
1650
- type = Duc.Element.DucLeaderElement;
1651
- elem = writeLeader(b, e, usv);
1652
- break;
1653
- case "dimension":
1654
- type = Duc.Element.DucDimensionElement;
1655
- elem = writeDimension(b, e, usv);
1656
- break;
1657
- case "featurecontrolframe":
1658
- type = Duc.Element.DucFeatureControlFrameElement;
1659
- elem = writeFcf(b, e, usv);
1660
- break;
1661
- case "doc":
1662
- type = Duc.Element.DucDocElement;
1663
- elem = writeDoc(b, e, usv);
1664
- break;
1665
- case "model":
1666
- type = Duc.Element.DucModelElement;
1667
- elem = writeModel(b, e, usv);
1668
- break;
1669
- case "embeddable":
1670
- type = Duc.Element.DucEmbeddableElement;
1671
- elem = writeEmbeddable(b, e, usv);
1672
- break;
1673
- case "pdf":
1674
- type = Duc.Element.DucPdfElement;
1675
- elem = writePdf(b, e, usv);
1676
- break;
1677
- case "mermaid":
1678
- type = Duc.Element.DucMermaidElement;
1679
- elem = writeMermaid(b, e, usv);
1680
- break;
1681
- default:
1682
- throw new Error(`Unknown element type: ${e.type}`);
1683
- }
1684
- // Safety check to ensure elem is defined
1685
- if (elem === undefined) {
1686
- throw new Error(`Failed to serialize element of type ${e.type}`);
1687
- }
1688
- Duc.ElementWrapper.startElementWrapper(b);
1689
- Duc.ElementWrapper.addElementType(b, type);
1690
- Duc.ElementWrapper.addElement(b, elem);
1691
- return Duc.ElementWrapper.endElementWrapper(b);
1692
- }
1693
- function writeGridStyle(b, s, usv) {
1694
- const color = b.createString(s.color);
1695
- const dash = Duc.GridStyle.createDashPatternVector(b, s.dashPattern);
1696
- Duc.GridStyle.startGridStyle(b);
1697
- Duc.GridStyle.addColor(b, color);
1698
- Duc.GridStyle.addOpacity(b, s.opacity);
1699
- Duc.GridStyle.addDashPattern(b, dash);
1700
- return Duc.GridStyle.endGridStyle(b);
1701
- }
1702
- function writePolarGridSettings(b, p, usv) {
1703
- Duc.PolarGridSettings.startPolarGridSettings(b);
1704
- Duc.PolarGridSettings.addRadialDivisions(b, p.radialDivisions);
1705
- Duc.PolarGridSettings.addRadialSpacing(b, getPrecisionValue(p.radialSpacing, usv));
1706
- Duc.PolarGridSettings.addShowLabels(b, p.showLabels);
1707
- return Duc.PolarGridSettings.endPolarGridSettings(b);
1708
- }
1709
- function writeIsometricGridSettings(b, i, usv) {
1710
- Duc.IsometricGridSettings.startIsometricGridSettings(b);
1711
- Duc.IsometricGridSettings.addLeftAngle(b, i.leftAngle);
1712
- Duc.IsometricGridSettings.addRightAngle(b, i.rightAngle);
1713
- return Duc.IsometricGridSettings.endIsometricGridSettings(b);
1714
- }
1715
- function writeGridSettings(b, g, usv) {
1716
- const origin = Duc.GeometricPoint.createGeometricPoint(b, g.origin.x, g.origin.y);
1717
- const major = writeGridStyle(b, g.majorStyle, usv);
1718
- const minor = writeGridStyle(b, g.minorStyle, usv);
1719
- const polar = g.polarSettings ? writePolarGridSettings(b, g.polarSettings, usv) : undefined;
1720
- const iso = g.isometricSettings ? writeIsometricGridSettings(b, g.isometricSettings, usv) : undefined;
1721
- Duc.GridSettings.startGridSettings(b);
1722
- Duc.GridSettings.addType(b, g.type);
1723
- Duc.GridSettings.addReadonly(b, g.readonly);
1724
- Duc.GridSettings.addDisplayType(b, g.displayType);
1725
- Duc.GridSettings.addIsAdaptive(b, g.isAdaptive);
1726
- Duc.GridSettings.addXSpacing(b, getPrecisionValue(g.xSpacing, usv));
1727
- Duc.GridSettings.addYSpacing(b, getPrecisionValue(g.ySpacing, usv));
1728
- Duc.GridSettings.addSubdivisions(b, g.subdivisions);
1729
- Duc.GridSettings.addOrigin(b, origin);
1730
- Duc.GridSettings.addRotation(b, g.rotation);
1731
- Duc.GridSettings.addFollowUcs(b, g.followUCS);
1732
- Duc.GridSettings.addMajorStyle(b, major);
1733
- Duc.GridSettings.addMinorStyle(b, minor);
1734
- Duc.GridSettings.addShowMinor(b, g.showMinor);
1735
- Duc.GridSettings.addMinZoom(b, g.minZoom);
1736
- Duc.GridSettings.addMaxZoom(b, g.maxZoom);
1737
- Duc.GridSettings.addAutoHide(b, g.autoHide);
1738
- if (polar)
1739
- Duc.GridSettings.addPolarSettings(b, polar);
1740
- if (iso)
1741
- Duc.GridSettings.addIsometricSettings(b, iso);
1742
- Duc.GridSettings.addEnableSnapping(b, g.enableSnapping);
1743
- return Duc.GridSettings.endGridSettings(b);
1744
- }
1745
- function writeSnapMarkerSettings(b, s, usv) {
1746
- const styles = Duc.SnapMarkerSettings.createStylesVector(b, Object.entries(s.styles).map(([k, v]) => {
1747
- Duc.SnapMarkerStyleEntry.startSnapMarkerStyleEntry(b);
1748
- Duc.SnapMarkerStyleEntry.addKey(b, Number(k));
1749
- const color = b.createString(v.color);
1750
- Duc.SnapMarkerStyle.startSnapMarkerStyle(b);
1751
- Duc.SnapMarkerStyle.addShape(b, v.shape);
1752
- Duc.SnapMarkerStyle.addColor(b, color);
1753
- const val = Duc.SnapMarkerStyle.endSnapMarkerStyle(b);
1754
- Duc.SnapMarkerStyleEntry.addValue(b, val);
1755
- return Duc.SnapMarkerStyleEntry.endSnapMarkerStyleEntry(b);
1756
- }));
1757
- Duc.SnapMarkerSettings.startSnapMarkerSettings(b);
1758
- Duc.SnapMarkerSettings.addEnabled(b, s.enabled);
1759
- Duc.SnapMarkerSettings.addSize(b, s.size);
1760
- if (s.duration !== undefined)
1761
- Duc.SnapMarkerSettings.addDuration(b, s.duration);
1762
- Duc.SnapMarkerSettings.addStyles(b, styles);
1763
- return Duc.SnapMarkerSettings.endSnapMarkerSettings(b);
1764
- }
1765
- function writeTrackingLineStyle(b, t, usv) {
1766
- if (!t)
1767
- return undefined;
1768
- const color = b.createString(t.color);
1769
- const dash = t.dashPattern ? Duc.TrackingLineStyle.createDashPatternVector(b, t.dashPattern) : undefined;
1770
- Duc.TrackingLineStyle.startTrackingLineStyle(b);
1771
- Duc.TrackingLineStyle.addColor(b, color);
1772
- Duc.TrackingLineStyle.addOpacity(b, t.opacity);
1773
- if (dash)
1774
- Duc.TrackingLineStyle.addDashPattern(b, dash);
1775
- return Duc.TrackingLineStyle.endTrackingLineStyle(b);
1776
- }
1777
- function writeDynamicSnapSettings(b, d, usv) {
1778
- Duc.DynamicSnapSettings.startDynamicSnapSettings(b);
1779
- Duc.DynamicSnapSettings.addEnabledDuringDrag(b, d.enabledDuringDrag);
1780
- Duc.DynamicSnapSettings.addEnabledDuringRotation(b, d.enabledDuringRotation);
1781
- Duc.DynamicSnapSettings.addEnabledDuringScale(b, d.enabledDuringScale);
1782
- return Duc.DynamicSnapSettings.endDynamicSnapSettings(b);
1783
- }
1784
- function writeSnapOverride(b, o, usv) {
1785
- const key = b.createString(o.key);
1786
- Duc.SnapOverride.startSnapOverride(b);
1787
- Duc.SnapOverride.addKey(b, key);
1788
- Duc.SnapOverride.addBehavior(b, o.behavior);
1789
- return Duc.SnapOverride.endSnapOverride(b);
1790
44
  }
1791
- function writePolarTrackingSettings(b, p, usv) {
1792
- const angles = Duc.PolarTrackingSettings.createAnglesVector(b, p.angles.map(a => a));
1793
- Duc.PolarTrackingSettings.startPolarTrackingSettings(b);
1794
- Duc.PolarTrackingSettings.addEnabled(b, p.enabled);
1795
- Duc.PolarTrackingSettings.addAngles(b, angles);
1796
- if (p.incrementAngle !== undefined)
1797
- Duc.PolarTrackingSettings.addIncrementAngle(b, p.incrementAngle);
1798
- Duc.PolarTrackingSettings.addTrackFromLastPoint(b, p.trackFromLastPoint);
1799
- Duc.PolarTrackingSettings.addShowPolarCoordinates(b, p.showPolarCoordinates);
1800
- return Duc.PolarTrackingSettings.endPolarTrackingSettings(b);
1801
- }
1802
- function writeLayerSnapFilters(b, f, usv) {
1803
- if (!f)
1804
- return undefined;
1805
- const include = f.includeLayers ? Duc.LayerSnapFilters.createIncludeLayersVector(b, f.includeLayers.map(id => b.createString(id))) : undefined;
1806
- const exclude = f.excludeLayers ? Duc.LayerSnapFilters.createExcludeLayersVector(b, f.excludeLayers.map(id => b.createString(id))) : undefined;
1807
- Duc.LayerSnapFilters.startLayerSnapFilters(b);
1808
- if (include)
1809
- Duc.LayerSnapFilters.addIncludeLayers(b, include);
1810
- if (exclude)
1811
- Duc.LayerSnapFilters.addExcludeLayers(b, exclude);
1812
- return Duc.LayerSnapFilters.endLayerSnapFilters(b);
1813
- }
1814
- function writeSnapSettings(b, s, usv) {
1815
- var _a;
1816
- const overridesArray = (_a = s.temporaryOverrides) !== null && _a !== void 0 ? _a : [];
1817
- const overridesVec = overridesArray.length
1818
- ? Duc.SnapSettings.createTemporaryOverridesVector(b, overridesArray.map(o => writeSnapOverride(b, o, usv)))
1819
- : undefined;
1820
- const tracking = writeTrackingLineStyle(b, s.trackingLineStyle, usv);
1821
- const dynamic = writeDynamicSnapSettings(b, s.dynamicSnap, usv);
1822
- // Always build PolarTrackingSettings (constructor ensures required fields); no defaults introduced.
1823
- const polar = writePolarTrackingSettings(b, s.polarTracking, usv);
1824
- const layers = writeLayerSnapFilters(b, s.layerSnapFilters, usv);
1825
- const markers = writeSnapMarkerSettings(b, s.snapMarkers, usv);
1826
- const types = s.elementTypeFilters ? Duc.SnapSettings.createElementTypeFiltersVector(b, s.elementTypeFilters.map(t => {
1827
- // element type enum is Duc.Element (wrapper), but here it's a string union.
1828
- // The schema likely stores raw strings; we store as strings.
1829
- return b.createString(t);
1830
- })) : undefined;
1831
- Duc.SnapSettings.startSnapSettings(b);
1832
- Duc.SnapSettings.addReadonly(b, s.readonly);
1833
- Duc.SnapSettings.addTwistAngle(b, s.twistAngle);
1834
- Duc.SnapSettings.addSnapTolerance(b, s.snapTolerance);
1835
- Duc.SnapSettings.addObjectSnapAperture(b, s.objectSnapAperture);
1836
- Duc.SnapSettings.addIsOrthoModeOn(b, s.isOrthoModeOn);
1837
- if (polar !== undefined)
1838
- Duc.SnapSettings.addPolarTracking(b, polar);
1839
- Duc.SnapSettings.addIsObjectSnapOn(b, s.isObjectSnapOn);
1840
- Duc.SnapSettings.addActiveObjectSnapModes(b, Duc.SnapSettings.createActiveObjectSnapModesVector(b, s.activeObjectSnapModes));
1841
- Duc.SnapSettings.addSnapPriority(b, Duc.SnapSettings.createSnapPriorityVector(b, s.snapPriority));
1842
- Duc.SnapSettings.addShowTrackingLines(b, s.showTrackingLines);
1843
- if (tracking)
1844
- Duc.SnapSettings.addTrackingLineStyle(b, tracking);
1845
- Duc.SnapSettings.addDynamicSnap(b, dynamic);
1846
- if (overridesVec)
1847
- Duc.SnapSettings.addTemporaryOverrides(b, overridesVec);
1848
- if (s.incrementalDistance !== undefined)
1849
- Duc.SnapSettings.addIncrementalDistance(b, s.incrementalDistance);
1850
- if (s.magneticStrength !== undefined)
1851
- Duc.SnapSettings.addMagneticStrength(b, s.magneticStrength);
1852
- if (layers)
1853
- Duc.SnapSettings.addLayerSnapFilters(b, layers);
1854
- if (types)
1855
- Duc.SnapSettings.addElementTypeFilters(b, types);
1856
- Duc.SnapSettings.addSnapMode(b, s.snapMode);
1857
- Duc.SnapSettings.addSnapMarkers(b, markers);
1858
- Duc.SnapSettings.addConstructionSnapEnabled(b, s.constructionSnapEnabled);
1859
- if (s.snapToGridIntersections !== undefined)
1860
- Duc.SnapSettings.addSnapToGridIntersections(b, s.snapToGridIntersections);
1861
- return Duc.SnapSettings.endSnapSettings(b);
1862
- }
1863
- function writeUcs(b, u) {
1864
- const origin = Duc.GeometricPoint.createGeometricPoint(b, u.origin.x, u.origin.y);
1865
- Duc.DucUcs.startDucUcs(b);
1866
- Duc.DucUcs.addOrigin(b, origin);
1867
- Duc.DucUcs.addAngle(b, u.angle);
1868
- return Duc.DucUcs.endDucUcs(b);
1869
- }
1870
- function serializeStandardOverrides(b, o, usv) {
1871
- const activeGrid = o.activeGridSettingsId ? Duc.StandardOverrides.createActiveGridSettingsIdVector(b, o.activeGridSettingsId.map(id => b.createString(id))) : undefined;
1872
- const dashOverride = o.dashLineOverride ? b.createString(o.dashLineOverride) : undefined;
1873
- Duc.StandardOverrides.startStandardOverrides(b);
1874
- if (o.mainScope)
1875
- Duc.StandardOverrides.addMainScope(b, b.createString(o.mainScope));
1876
- if (o.elementsStrokeWidthOverride)
1877
- Duc.StandardOverrides.addElementsStrokeWidthOverride(b, getPrecisionValue(o.elementsStrokeWidthOverride, usv));
1878
- if (o.commonStyleId)
1879
- Duc.StandardOverrides.addCommonStyleId(b, b.createString(o.commonStyleId));
1880
- if (o.stackLikeStyleId)
1881
- Duc.StandardOverrides.addStackLikeStyleId(b, b.createString(o.stackLikeStyleId));
1882
- if (o.textStyleId)
1883
- Duc.StandardOverrides.addTextStyleId(b, b.createString(o.textStyleId));
1884
- if (o.dimensionStyleId)
1885
- Duc.StandardOverrides.addDimensionStyleId(b, b.createString(o.dimensionStyleId));
1886
- if (o.leaderStyleId)
1887
- Duc.StandardOverrides.addLeaderStyleId(b, b.createString(o.leaderStyleId));
1888
- if (o.featureControlFrameStyleId)
1889
- Duc.StandardOverrides.addFeatureControlFrameStyleId(b, b.createString(o.featureControlFrameStyleId));
1890
- if (o.tableStyleId)
1891
- Duc.StandardOverrides.addTableStyleId(b, b.createString(o.tableStyleId));
1892
- if (o.docStyleId)
1893
- Duc.StandardOverrides.addDocStyleId(b, b.createString(o.docStyleId));
1894
- if (o.viewportStyleId)
1895
- Duc.StandardOverrides.addViewportStyleId(b, b.createString(o.viewportStyleId));
1896
- if (o.plotStyleId)
1897
- Duc.StandardOverrides.addPlotStyleId(b, b.createString(o.plotStyleId));
1898
- if (o.hatchStyleId)
1899
- Duc.StandardOverrides.addHatchStyleId(b, b.createString(o.hatchStyleId));
1900
- if (activeGrid)
1901
- Duc.StandardOverrides.addActiveGridSettingsId(b, activeGrid);
1902
- if (o.activeSnapSettingsId)
1903
- Duc.StandardOverrides.addActiveSnapSettingsId(b, b.createString(o.activeSnapSettingsId));
1904
- if (dashOverride)
1905
- Duc.StandardOverrides.addDashLineOverride(b, dashOverride);
1906
- if (o.unitPrecision) {
1907
- Duc.UnitPrecision.startUnitPrecision(b);
1908
- if (o.unitPrecision.linear !== undefined)
1909
- Duc.UnitPrecision.addLinear(b, o.unitPrecision.linear);
1910
- if (o.unitPrecision.angular !== undefined)
1911
- Duc.UnitPrecision.addAngular(b, o.unitPrecision.angular);
1912
- if (o.unitPrecision.area !== undefined)
1913
- Duc.UnitPrecision.addArea(b, o.unitPrecision.area);
1914
- if (o.unitPrecision.volume !== undefined)
1915
- Duc.UnitPrecision.addVolume(b, o.unitPrecision.volume);
1916
- const up = Duc.UnitPrecision.endUnitPrecision(b);
1917
- Duc.StandardOverrides.addUnitPrecision(b, up);
45
+ function hasLegacyVersionGraphShape(versionGraph) {
46
+ if (!versionGraph || typeof versionGraph !== "object") {
47
+ return false;
1918
48
  }
1919
- return Duc.StandardOverrides.endStandardOverrides(b);
1920
- }
1921
- function serializeStandardUnits(b, u, usv) {
1922
- const primary = writePrimaryUnits(b, {
1923
- linear: {
1924
- system: u.primaryUnits.linear.system,
1925
- precision: u.primaryUnits.linear.precision,
1926
- suppressLeadingZeros: u.primaryUnits.linear.suppressLeadingZeros,
1927
- suppressTrailingZeros: u.primaryUnits.linear.suppressTrailingZeros,
1928
- format: u.primaryUnits.linear.format,
1929
- decimalSeparator: u.primaryUnits.linear.decimalSeparator,
1930
- suppressZeroFeet: u.primaryUnits.linear.suppressZeroFeet,
1931
- suppressZeroInches: u.primaryUnits.linear.suppressZeroInches,
1932
- },
1933
- angular: {
1934
- system: u.primaryUnits.angular.system,
1935
- precision: u.primaryUnits.angular.precision,
1936
- suppressLeadingZeros: u.primaryUnits.angular.suppressLeadingZeros,
1937
- suppressTrailingZeros: u.primaryUnits.angular.suppressTrailingZeros,
1938
- format: u.primaryUnits.angular.format,
1939
- },
1940
- }, usv);
1941
- Duc.AlternateUnits.startAlternateUnits(b);
1942
- Duc.AlternateUnits.addIsVisible(b, u.alternateUnits.isVisible);
1943
- Duc.AlternateUnits.addMultiplier(b, u.alternateUnits.multiplier);
1944
- Duc.AlternateUnits.addFormat(b, u.alternateUnits.format);
1945
- // AlternateUnits in schema may not have these fields; only write those that exist
1946
- if ("addSystem" in Duc.AlternateUnits) {
1947
- // @ts-expect-error guarded by runtime check
1948
- Duc.AlternateUnits.addSystem(b, u.alternateUnits.system);
49
+ const metadata = versionGraph.metadata;
50
+ if (!metadata || typeof metadata !== "object") {
51
+ return true;
1949
52
  }
1950
- if ("addPrecision" in Duc.AlternateUnits) {
1951
- // @ts-expect-error guarded by runtime check
1952
- Duc.AlternateUnits.addPrecision(b, u.alternateUnits.precision);
53
+ const hasModernMetadata = typeof metadata.currentVersion === "number" &&
54
+ typeof metadata.currentSchemaVersion === "number" &&
55
+ typeof metadata.chainCount === "number";
56
+ if (!hasModernMetadata) {
57
+ return true;
1953
58
  }
1954
- if ("addSuppressLeadingZeros" in Duc.AlternateUnits) {
1955
- // @ts-expect-error guarded by runtime check
1956
- Duc.AlternateUnits.addSuppressLeadingZeros(b, u.alternateUnits.suppressLeadingZeros);
59
+ if (metadata.currentSchemaVersion < 1 || metadata.chainCount < 1) {
60
+ return true;
1957
61
  }
1958
- if ("addSuppressTrailingZeros" in Duc.AlternateUnits) {
1959
- // @ts-expect-error guarded by runtime check
1960
- Duc.AlternateUnits.addSuppressTrailingZeros(b, u.alternateUnits.suppressTrailingZeros);
62
+ const checkpoints = Array.isArray(versionGraph.checkpoints)
63
+ ? versionGraph.checkpoints
64
+ : [];
65
+ const deltas = Array.isArray(versionGraph.deltas) ? versionGraph.deltas : [];
66
+ const hasLegacyCheckpoint = checkpoints.some((cp) => typeof (cp === null || cp === void 0 ? void 0 : cp.versionNumber) !== "number" ||
67
+ typeof (cp === null || cp === void 0 ? void 0 : cp.schemaVersion) !== "number");
68
+ if (hasLegacyCheckpoint) {
69
+ return true;
1961
70
  }
1962
- const alt = Duc.AlternateUnits.endAlternateUnits(b);
1963
- Duc.StandardUnits.startStandardUnits(b);
1964
- if (primary !== undefined)
1965
- Duc.StandardUnits.addPrimaryUnits(b, primary);
1966
- Duc.StandardUnits.addAlternateUnits(b, alt);
1967
- return Duc.StandardUnits.endStandardUnits(b);
1968
- }
1969
- function writeIdentifiedCommonStyle(b, entry, usv) {
1970
- const idOff = writeIdentifier(b, entry);
1971
- const bg = writeElementBackground(b, entry.background, usv);
1972
- const st = writeElementStroke(b, entry.stroke, usv);
1973
- Duc.DucCommonStyle.startDucCommonStyle(b);
1974
- if (bg)
1975
- Duc.DucCommonStyle.addBackground(b, bg);
1976
- if (st)
1977
- Duc.DucCommonStyle.addStroke(b, st);
1978
- const style = Duc.DucCommonStyle.endDucCommonStyle(b);
1979
- Duc.IdentifiedCommonStyle.startIdentifiedCommonStyle(b);
1980
- Duc.IdentifiedCommonStyle.addId(b, idOff);
1981
- Duc.IdentifiedCommonStyle.addStyle(b, style);
1982
- return Duc.IdentifiedCommonStyle.endIdentifiedCommonStyle(b);
1983
- }
1984
- function writeIdentifiedStackLikeStyle(b, entry, usv) {
1985
- const idOff = writeIdentifier(b, entry);
1986
- const s = (() => {
1987
- Duc.DucStackLikeStyles.startDucStackLikeStyles(b);
1988
- Duc.DucStackLikeStyles.addOpacity(b, entry.opacity);
1989
- Duc.DucStackLikeStyles.addLabelingColor(b, b.createString(entry.labelingColor));
1990
- return Duc.DucStackLikeStyles.endDucStackLikeStyles(b);
1991
- })();
1992
- Duc.IdentifiedStackLikeStyle.startIdentifiedStackLikeStyle(b);
1993
- Duc.IdentifiedStackLikeStyle.addId(b, idOff);
1994
- Duc.IdentifiedStackLikeStyle.addStyle(b, s);
1995
- return Duc.IdentifiedStackLikeStyle.endIdentifiedStackLikeStyle(b);
1996
- }
1997
- function writeIdentifiedTextStyle(b, entry, usv) {
1998
- const idOff = writeIdentifier(b, entry);
1999
- const style = writeTextStyle(b, entry, usv);
2000
- Duc.IdentifiedTextStyle.startIdentifiedTextStyle(b);
2001
- Duc.IdentifiedTextStyle.addId(b, idOff);
2002
- Duc.IdentifiedTextStyle.addStyle(b, style);
2003
- return Duc.IdentifiedTextStyle.endIdentifiedTextStyle(b);
2004
- }
2005
- function writeIdentifiedDimensionStyle(b, entry, usv) {
2006
- const idOff = writeIdentifier(b, entry);
2007
- const style = writeDimStyle(b, entry, usv);
2008
- Duc.IdentifiedDimensionStyle.startIdentifiedDimensionStyle(b);
2009
- Duc.IdentifiedDimensionStyle.addId(b, idOff);
2010
- Duc.IdentifiedDimensionStyle.addStyle(b, style);
2011
- return Duc.IdentifiedDimensionStyle.endIdentifiedDimensionStyle(b);
2012
- }
2013
- function writeIdentifiedLeaderStyle(b, entry, usv) {
2014
- const idOff = writeIdentifier(b, entry);
2015
- const style = writeLeaderStyle(b, entry, usv);
2016
- Duc.IdentifiedLeaderStyle.startIdentifiedLeaderStyle(b);
2017
- Duc.IdentifiedLeaderStyle.addId(b, idOff);
2018
- Duc.IdentifiedLeaderStyle.addStyle(b, style);
2019
- return Duc.IdentifiedLeaderStyle.endIdentifiedLeaderStyle(b);
2020
- }
2021
- function writeIdentifiedFCFStyle(b, entry, usv) {
2022
- const idOff = writeIdentifier(b, entry);
2023
- const style = writeFcfStyle(b, entry, usv);
2024
- Duc.IdentifiedFCFStyle.startIdentifiedFCFStyle(b);
2025
- Duc.IdentifiedFCFStyle.addId(b, idOff);
2026
- Duc.IdentifiedFCFStyle.addStyle(b, style);
2027
- return Duc.IdentifiedFCFStyle.endIdentifiedFCFStyle(b);
2028
- }
2029
- function writeIdentifiedTableStyle(b, entry, usv) {
2030
- const idOff = writeIdentifier(b, entry);
2031
- const style = writeTableStyle(b, entry, usv);
2032
- Duc.IdentifiedTableStyle.startIdentifiedTableStyle(b);
2033
- Duc.IdentifiedTableStyle.addId(b, idOff);
2034
- Duc.IdentifiedTableStyle.addStyle(b, style);
2035
- return Duc.IdentifiedTableStyle.endIdentifiedTableStyle(b);
2036
- }
2037
- function writeIdentifiedDocStyle(b, entry, usv) {
2038
- const idOff = writeIdentifier(b, entry);
2039
- const style = writeDocStyle(b, entry, usv);
2040
- Duc.IdentifiedDocStyle.startIdentifiedDocStyle(b);
2041
- Duc.IdentifiedDocStyle.addId(b, idOff);
2042
- Duc.IdentifiedDocStyle.addStyle(b, style);
2043
- return Duc.IdentifiedDocStyle.endIdentifiedDocStyle(b);
2044
- }
2045
- function writeIdentifiedViewportStyle(b, entry, usv) {
2046
- const idOff = writeIdentifier(b, entry);
2047
- const style = writeViewportStyle(b, entry, usv);
2048
- Duc.IdentifiedViewportStyle.startIdentifiedViewportStyle(b);
2049
- Duc.IdentifiedViewportStyle.addId(b, idOff);
2050
- Duc.IdentifiedViewportStyle.addStyle(b, style);
2051
- return Duc.IdentifiedViewportStyle.endIdentifiedViewportStyle(b);
2052
- }
2053
- function writeIdentifiedHatchStyle(b, entry, usv) {
2054
- const idOff = writeIdentifier(b, entry);
2055
- const style = writeHatchStyle(b, entry, usv);
2056
- Duc.IdentifiedHatchStyle.startIdentifiedHatchStyle(b);
2057
- Duc.IdentifiedHatchStyle.addId(b, idOff);
2058
- if (style)
2059
- Duc.IdentifiedHatchStyle.addStyle(b, style);
2060
- return Duc.IdentifiedHatchStyle.endIdentifiedHatchStyle(b);
2061
- }
2062
- function writeIdentifiedXRayStyle(b, entry, usv) {
2063
- const idOff = writeIdentifier(b, entry);
2064
- const style = writeXRayStyle(b, entry, usv);
2065
- Duc.IdentifiedXRayStyle.startIdentifiedXRayStyle(b);
2066
- Duc.IdentifiedXRayStyle.addId(b, idOff);
2067
- Duc.IdentifiedXRayStyle.addStyle(b, style);
2068
- return Duc.IdentifiedXRayStyle.endIdentifiedXRayStyle(b);
2069
- }
2070
- function serializeStandardStyles(b, s, usv) {
2071
- const commonVec = s.commonStyles.length
2072
- ? Duc.StandardStyles.createCommonStylesVector(b, s.commonStyles.map(cs => writeIdentifiedCommonStyle(b, cs, usv)))
2073
- : undefined;
2074
- const stackLikeVec = s.stackLikeStyles.length
2075
- ? Duc.StandardStyles.createStackLikeStylesVector(b, s.stackLikeStyles.map(st => writeIdentifiedStackLikeStyle(b, st, usv)))
2076
- : undefined;
2077
- const textVec = s.textStyles.length
2078
- ? Duc.StandardStyles.createTextStylesVector(b, s.textStyles.map(ts => writeIdentifiedTextStyle(b, ts, usv)))
2079
- : undefined;
2080
- const dimVec = s.dimensionStyles.length
2081
- ? Duc.StandardStyles.createDimensionStylesVector(b, s.dimensionStyles.map(ds => writeIdentifiedDimensionStyle(b, ds, usv)))
2082
- : undefined;
2083
- const leaderVec = s.leaderStyles.length
2084
- ? Duc.StandardStyles.createLeaderStylesVector(b, s.leaderStyles.map(ls => writeIdentifiedLeaderStyle(b, ls, usv)))
2085
- : undefined;
2086
- const fcfVec = s.featureControlFrameStyles.length
2087
- ? Duc.StandardStyles.createFeatureControlFrameStylesVector(b, s.featureControlFrameStyles.map(fs => writeIdentifiedFCFStyle(b, fs, usv)))
2088
- : undefined;
2089
- const tableVec = s.tableStyles.length
2090
- ? Duc.StandardStyles.createTableStylesVector(b, s.tableStyles.map(ts => writeIdentifiedTableStyle(b, ts, usv)))
2091
- : undefined;
2092
- const docVec = s.docStyles.length
2093
- ? Duc.StandardStyles.createDocStylesVector(b, s.docStyles.map(ds => writeIdentifiedDocStyle(b, ds, usv)))
2094
- : undefined;
2095
- const viewportVec = s.viewportStyles.length
2096
- ? Duc.StandardStyles.createViewportStylesVector(b, s.viewportStyles.map(vs => writeIdentifiedViewportStyle(b, vs, usv)))
2097
- : undefined;
2098
- const hatchVec = s.hatchStyles.length
2099
- ? Duc.StandardStyles.createHatchStylesVector(b, s.hatchStyles.map(hs => writeIdentifiedHatchStyle(b, hs, usv)))
2100
- : undefined;
2101
- const xrayVec = s.xrayStyles.length
2102
- ? Duc.StandardStyles.createXrayStylesVector(b, s.xrayStyles.map(xs => writeIdentifiedXRayStyle(b, xs, usv)))
2103
- : undefined;
2104
- Duc.StandardStyles.startStandardStyles(b);
2105
- if (commonVec)
2106
- Duc.StandardStyles.addCommonStyles(b, commonVec);
2107
- if (stackLikeVec)
2108
- Duc.StandardStyles.addStackLikeStyles(b, stackLikeVec);
2109
- if (textVec)
2110
- Duc.StandardStyles.addTextStyles(b, textVec);
2111
- if (dimVec)
2112
- Duc.StandardStyles.addDimensionStyles(b, dimVec);
2113
- if (leaderVec)
2114
- Duc.StandardStyles.addLeaderStyles(b, leaderVec);
2115
- if (fcfVec)
2116
- Duc.StandardStyles.addFeatureControlFrameStyles(b, fcfVec);
2117
- if (tableVec)
2118
- Duc.StandardStyles.addTableStyles(b, tableVec);
2119
- if (docVec)
2120
- Duc.StandardStyles.addDocStyles(b, docVec);
2121
- if (viewportVec)
2122
- Duc.StandardStyles.addViewportStyles(b, viewportVec);
2123
- if (hatchVec)
2124
- Duc.StandardStyles.addHatchStyles(b, hatchVec);
2125
- if (xrayVec)
2126
- Duc.StandardStyles.addXrayStyles(b, xrayVec);
2127
- return Duc.StandardStyles.endStandardStyles(b);
2128
- }
2129
- function serializeStandardViewSettings(b, v, usv) {
2130
- const viewsVec = v.views && v.views.length
2131
- ? Duc.StandardViewSettings.createViewsVector(b, v.views.map((entry) => {
2132
- const id = writeIdentifier(b, entry);
2133
- const view = writeView(b, entry, usv);
2134
- Duc.IdentifiedView.startIdentifiedView(b);
2135
- Duc.IdentifiedView.addId(b, id);
2136
- Duc.IdentifiedView.addView(b, view);
2137
- return Duc.IdentifiedView.endIdentifiedView(b);
2138
- }))
2139
- : undefined;
2140
- const ucsVec = v.ucs && v.ucs.length
2141
- ? Duc.StandardViewSettings.createUcsVector(b, v.ucs.map((entry) => {
2142
- const id = writeIdentifier(b, entry);
2143
- const ucs = writeUcs(b, entry);
2144
- Duc.IdentifiedUcs.startIdentifiedUcs(b);
2145
- Duc.IdentifiedUcs.addId(b, id);
2146
- Duc.IdentifiedUcs.addUcs(b, ucs);
2147
- return Duc.IdentifiedUcs.endIdentifiedUcs(b);
2148
- }))
2149
- : undefined;
2150
- const gridsVec = v.gridSettings && v.gridSettings.length
2151
- ? Duc.StandardViewSettings.createGridSettingsVector(b, v.gridSettings.map((entry) => {
2152
- const id = writeIdentifier(b, entry);
2153
- const settings = writeGridSettings(b, entry, usv);
2154
- Duc.IdentifiedGridSettings.startIdentifiedGridSettings(b);
2155
- Duc.IdentifiedGridSettings.addId(b, id);
2156
- Duc.IdentifiedGridSettings.addSettings(b, settings);
2157
- return Duc.IdentifiedGridSettings.endIdentifiedGridSettings(b);
2158
- }))
2159
- : undefined;
2160
- const snapsVec = v.snapSettings && v.snapSettings.length
2161
- ? Duc.StandardViewSettings.createSnapSettingsVector(b, v.snapSettings.map((entry) => {
2162
- const id = writeIdentifier(b, entry);
2163
- const settings = writeSnapSettings(b, entry, usv);
2164
- Duc.IdentifiedSnapSettings.startIdentifiedSnapSettings(b);
2165
- Duc.IdentifiedSnapSettings.addId(b, id);
2166
- Duc.IdentifiedSnapSettings.addSettings(b, settings);
2167
- return Duc.IdentifiedSnapSettings.endIdentifiedSnapSettings(b);
2168
- }))
2169
- : undefined;
2170
- Duc.StandardViewSettings.startStandardViewSettings(b);
2171
- if (viewsVec)
2172
- Duc.StandardViewSettings.addViews(b, viewsVec);
2173
- if (ucsVec)
2174
- Duc.StandardViewSettings.addUcs(b, ucsVec);
2175
- if (gridsVec)
2176
- Duc.StandardViewSettings.addGridSettings(b, gridsVec);
2177
- if (snapsVec)
2178
- Duc.StandardViewSettings.addSnapSettings(b, snapsVec);
2179
- return Duc.StandardViewSettings.endStandardViewSettings(b);
2180
- }
2181
- function serializeStandardValidation(b, val, usv) {
2182
- Duc.StandardValidation.startStandardValidation(b);
2183
- if (val.dimensionRules) {
2184
- Duc.DimensionValidationRules.startDimensionValidationRules(b);
2185
- if (val.dimensionRules.minTextHeight !== undefined)
2186
- Duc.DimensionValidationRules.addMinTextHeight(b, getPrecisionValue(val.dimensionRules.minTextHeight, usv));
2187
- if (val.dimensionRules.maxTextHeight !== undefined)
2188
- Duc.DimensionValidationRules.addMaxTextHeight(b, getPrecisionValue(val.dimensionRules.maxTextHeight, usv));
2189
- if (val.dimensionRules.allowedPrecisions) {
2190
- Duc.DimensionValidationRules.addAllowedPrecisions(b, Duc.DimensionValidationRules.createAllowedPrecisionsVector(b, val.dimensionRules.allowedPrecisions));
2191
- }
2192
- const dr = Duc.DimensionValidationRules.endDimensionValidationRules(b);
2193
- Duc.StandardValidation.addDimensionRules(b, dr);
2194
- }
2195
- if (val.layerRules) {
2196
- const prohibited = val.layerRules.prohibitedLayerNames
2197
- ? Duc.LayerValidationRules.createProhibitedLayerNamesVector(b, val.layerRules.prohibitedLayerNames.map(s => b.createString(s)))
2198
- : undefined;
2199
- Duc.LayerValidationRules.startLayerValidationRules(b);
2200
- if (prohibited)
2201
- Duc.LayerValidationRules.addProhibitedLayerNames(b, prohibited);
2202
- const lr = Duc.LayerValidationRules.endLayerValidationRules(b);
2203
- Duc.StandardValidation.addLayerRules(b, lr);
71
+ const hasLegacyDelta = deltas.some((d) => typeof (d === null || d === void 0 ? void 0 : d.versionNumber) !== "number" ||
72
+ typeof (d === null || d === void 0 ? void 0 : d.schemaVersion) !== "number" ||
73
+ typeof (d === null || d === void 0 ? void 0 : d.baseCheckpointId) !== "string");
74
+ if (hasLegacyDelta) {
75
+ return true;
2204
76
  }
2205
- return Duc.StandardValidation.endStandardValidation(b);
2206
- }
2207
- function serializeStandard(b, s, usv) {
2208
- const ident = writeIdentifier(b, s);
2209
- const version = b.createString(s.version);
2210
- const overrides = s.overrides ? serializeStandardOverrides(b, s.overrides, usv) : undefined;
2211
- const styles = s.styles ? serializeStandardStyles(b, s.styles, usv) : undefined;
2212
- const view = s.viewSettings ? serializeStandardViewSettings(b, s.viewSettings, usv) : undefined;
2213
- const units = s.units ? serializeStandardUnits(b, s.units, usv) : undefined;
2214
- const validation = s.validation ? serializeStandardValidation(b, s.validation, usv) : undefined;
2215
- Duc.Standard.startStandard(b);
2216
- Duc.Standard.addIdentifier(b, ident);
2217
- Duc.Standard.addVersion(b, version);
2218
- Duc.Standard.addReadonly(b, s.readonly);
2219
- if (overrides)
2220
- Duc.Standard.addOverrides(b, overrides);
2221
- if (styles)
2222
- Duc.Standard.addStyles(b, styles);
2223
- if (view)
2224
- Duc.Standard.addViewSettings(b, view);
2225
- if (units)
2226
- Duc.Standard.addUnits(b, units);
2227
- if (validation)
2228
- Duc.Standard.addValidation(b, validation);
2229
- return Duc.Standard.endStandard(b);
2230
- }
2231
- /**
2232
- * VersionGraph
2233
- */
2234
- function serializeVersionBase(b, v) {
2235
- const id = b.createString(v.id);
2236
- const parent = v.parentId ? b.createString(v.parentId) : undefined;
2237
- const desc = v.description ? b.createString(v.description) : undefined;
2238
- const user = v.userId ? b.createString(v.userId) : undefined;
2239
- Duc.VersionBase.startVersionBase(b);
2240
- Duc.VersionBase.addId(b, id);
2241
- if (parent)
2242
- Duc.VersionBase.addParentId(b, parent);
2243
- Duc.VersionBase.addTimestamp(b, BigInt(v.timestamp));
2244
- if (desc)
2245
- Duc.VersionBase.addDescription(b, desc);
2246
- Duc.VersionBase.addIsManualSave(b, v.isManualSave);
2247
- if (user)
2248
- Duc.VersionBase.addUserId(b, user);
2249
- return Duc.VersionBase.endVersionBase(b);
2250
- }
2251
- function serializeCheckpoint(b, c) {
2252
- const base = serializeVersionBase(b, c);
2253
- const data = b.createByteVector(c.data);
2254
- Duc.Checkpoint.startCheckpoint(b);
2255
- Duc.Checkpoint.addBase(b, base);
2256
- Duc.Checkpoint.addData(b, data);
2257
- Duc.Checkpoint.addSizeBytes(b, BigInt(c.sizeBytes));
2258
- return Duc.Checkpoint.endCheckpoint(b);
2259
- }
2260
- function writeJsonPatch(b, p) {
2261
- // Compress the JSON patch data
2262
- const patchData = zlibSync(strToU8(JSON.stringify(p)));
2263
- const offset = Duc.Delta.createPatchVector(b, patchData);
2264
- return { offset, sizeBytes: patchData.length };
77
+ return false;
2265
78
  }
2266
- function serializeDelta(b, d) {
2267
- const base = serializeVersionBase(b, d);
2268
- const { offset: patch, sizeBytes } = writeJsonPatch(b, d.patch);
2269
- Duc.Delta.startDelta(b);
2270
- Duc.Delta.addBase(b, base);
2271
- Duc.Delta.addPatch(b, patch);
2272
- Duc.Delta.addSizeBytes(b, BigInt(sizeBytes));
2273
- return Duc.Delta.endDelta(b);
2274
- }
2275
- function serializeDucVersionGraph(b, vg) {
2276
- const userCheckpoint = b.createString(vg.userCheckpointVersionId);
2277
- const latest = b.createString(vg.latestVersionId);
2278
- const checkpoints = Duc.VersionGraph.createCheckpointsVector(b, vg.checkpoints.map(c => serializeCheckpoint(b, c)));
2279
- const deltas = Duc.VersionGraph.createDeltasVector(b, vg.deltas.map(d => serializeDelta(b, d)));
2280
- Duc.VersionGraphMetadata.startVersionGraphMetadata(b);
2281
- Duc.VersionGraphMetadata.addLastPruned(b, BigInt(vg.metadata.lastPruned));
2282
- Duc.VersionGraphMetadata.addTotalSize(b, BigInt(vg.metadata.totalSize));
2283
- const meta = Duc.VersionGraphMetadata.endVersionGraphMetadata(b);
2284
- Duc.VersionGraph.startVersionGraph(b);
2285
- Duc.VersionGraph.addUserCheckpointVersionId(b, userCheckpoint);
2286
- Duc.VersionGraph.addLatestVersionId(b, latest);
2287
- Duc.VersionGraph.addCheckpoints(b, checkpoints);
2288
- Duc.VersionGraph.addDeltas(b, deltas);
2289
- Duc.VersionGraph.addMetadata(b, meta);
2290
- return Duc.VersionGraph.endVersionGraph(b);
2291
- }
2292
- // #endregion
2293
- // #region STATE SERIALIZERS
2294
- function serializeDucGlobalState(builder, state, usv) {
2295
- const nameOffset = writeString(builder, state.name);
2296
- const viewBackgroundColorOffset = writeString(builder, state.viewBackgroundColor);
2297
- const mainScopeOffset = writeString(builder, state.mainScope);
2298
- Duc.DucGlobalState.startDucGlobalState(builder);
2299
- if (nameOffset)
2300
- Duc.DucGlobalState.addName(builder, nameOffset);
2301
- if (viewBackgroundColorOffset)
2302
- Duc.DucGlobalState.addViewBackgroundColor(builder, viewBackgroundColorOffset);
2303
- if (mainScopeOffset)
2304
- Duc.DucGlobalState.addMainScope(builder, mainScopeOffset);
2305
- Duc.DucGlobalState.addDashSpacingScale(builder, state.dashSpacingScale);
2306
- Duc.DucGlobalState.addIsDashSpacingAffectedByViewportScale(builder, state.isDashSpacingAffectedByViewportScale);
2307
- Duc.DucGlobalState.addScopeExponentThreshold(builder, state.scopeExponentThreshold);
2308
- if (state.pruningLevel)
2309
- Duc.DucGlobalState.addPruningLevel(builder, state.pruningLevel);
2310
- Duc.DucGlobalState.addDimensionsAssociativeByDefault(builder, state.dimensionsAssociativeByDefault);
2311
- Duc.DucGlobalState.addUseAnnotativeScaling(builder, state.useAnnotativeScaling);
2312
- Duc.DucGlobalState.addDisplayPrecisionLinear(builder, state.displayPrecision.linear);
2313
- Duc.DucGlobalState.addDisplayPrecisionAngular(builder, state.displayPrecision.angular);
2314
- return Duc.DucGlobalState.endDucGlobalState(builder);
2315
- }
2316
- function serializeDucLocalState(builder, state, usv) {
2317
- const scopeOffset = writeString(builder, state.scope);
2318
- const activeStandardIdOffset = writeString(builder, state.activeStandardId);
2319
- const activeGridSettingsVector = writeStringVector(builder, state.activeGridSettings);
2320
- const activeSnapSettingsOffset = writeString(builder, state.activeSnapSettings);
2321
- const currentItemStrokeOffset = writeElementStroke(builder, state.currentItemStroke, usv);
2322
- const currentItemBackgroundOffset = writeElementBackground(builder, state.currentItemBackground, usv);
2323
- const currentItemFontFamilyOffset = state.currentItemFontFamily && writeString(builder, state.currentItemFontFamily.toString());
2324
- Duc.DucLocalState.startDucLocalState(builder);
2325
- if (scopeOffset)
2326
- Duc.DucLocalState.addScope(builder, scopeOffset);
2327
- if (activeStandardIdOffset)
2328
- Duc.DucLocalState.addActiveStandardId(builder, activeStandardIdOffset);
2329
- if (state.scrollX)
2330
- Duc.DucLocalState.addScrollX(builder, getPrecisionValue(state.scrollX, usv));
2331
- if (state.scrollY)
2332
- Duc.DucLocalState.addScrollY(builder, getPrecisionValue(state.scrollY, usv));
2333
- if (state.zoom)
2334
- Duc.DucLocalState.addZoom(builder, state.zoom.value);
2335
- if (activeGridSettingsVector)
2336
- Duc.DucLocalState.addActiveGridSettings(builder, activeGridSettingsVector);
2337
- if (activeSnapSettingsOffset)
2338
- Duc.DucLocalState.addActiveSnapSettings(builder, activeSnapSettingsOffset);
2339
- Duc.DucLocalState.addIsBindingEnabled(builder, state.isBindingEnabled);
2340
- if (currentItemStrokeOffset)
2341
- Duc.DucLocalState.addCurrentItemStroke(builder, currentItemStrokeOffset);
2342
- if (currentItemBackgroundOffset)
2343
- Duc.DucLocalState.addCurrentItemBackground(builder, currentItemBackgroundOffset);
2344
- Duc.DucLocalState.addCurrentItemOpacity(builder, state.currentItemOpacity);
2345
- if (currentItemFontFamilyOffset)
2346
- Duc.DucLocalState.addCurrentItemFontFamily(builder, currentItemFontFamilyOffset);
2347
- if (state.currentItemFontSize)
2348
- Duc.DucLocalState.addCurrentItemFontSize(builder, getPrecisionValue(state.currentItemFontSize, usv));
2349
- if (state.currentItemTextAlign)
2350
- Duc.DucLocalState.addCurrentItemTextAlign(builder, state.currentItemTextAlign);
2351
- if (state.currentItemRoundness)
2352
- Duc.DucLocalState.addCurrentItemRoundness(builder, getPrecisionValue(state.currentItemRoundness, usv));
2353
- Duc.DucLocalState.addPenMode(builder, state.penMode);
2354
- Duc.DucLocalState.addViewModeEnabled(builder, state.viewModeEnabled);
2355
- Duc.DucLocalState.addObjectsSnapModeEnabled(builder, state.objectsSnapModeEnabled);
2356
- Duc.DucLocalState.addGridModeEnabled(builder, state.gridModeEnabled);
2357
- Duc.DucLocalState.addOutlineModeEnabled(builder, state.outlineModeEnabled);
2358
- Duc.DucLocalState.addManualSaveMode(builder, state.manualSaveMode);
2359
- return Duc.DucLocalState.endDucLocalState(builder);
2360
- }
2361
- function serializeDictionary(builder, dictionary) {
2362
- if (!dictionary)
2363
- return undefined;
2364
- const entries = Object.entries(dictionary).map(([key, value]) => {
2365
- const keyOffset = builder.createString(key);
2366
- const valueOffset = builder.createString(value);
2367
- Duc.DictionaryEntry.startDictionaryEntry(builder);
2368
- Duc.DictionaryEntry.addKey(builder, keyOffset);
2369
- Duc.DictionaryEntry.addValue(builder, valueOffset);
2370
- return Duc.DictionaryEntry.endDictionaryEntry(builder);
2371
- });
2372
- return Duc.ExportedDataState.createDictionaryVector(builder, entries);
2373
- }
2374
- // #endregion
2375
- function serializeDucGroup(builder, g, usv) {
2376
- const id = builder.createString(g.id);
2377
- const stack = writeStackBase(builder, g, usv);
2378
- Duc.DucGroup.startDucGroup(builder);
2379
- Duc.DucGroup.addId(builder, id);
2380
- Duc.DucGroup.addStackBase(builder, stack);
2381
- return Duc.DucGroup.endDucGroup(builder);
2382
- }
2383
- function serializeDucRegion(builder, r, usv) {
2384
- const id = builder.createString(r.id);
2385
- const stack = writeStackBase(builder, r, usv);
2386
- Duc.DucRegion.startDucRegion(builder);
2387
- Duc.DucRegion.addId(builder, id);
2388
- Duc.DucRegion.addStackBase(builder, stack);
2389
- Duc.DucRegion.addBooleanOperation(builder, r.booleanOperation);
2390
- return Duc.DucRegion.endDucRegion(builder);
2391
- }
2392
- function serializeDucLayer(builder, l, usv) {
2393
- const id = builder.createString(l.id);
2394
- const stack = writeStackBase(builder, l, usv);
2395
- const overrides = l.overrides ? (() => {
2396
- const stroke = writeElementStroke(builder, l.overrides.stroke, usv);
2397
- const bg = writeElementBackground(builder, l.overrides.background, usv);
2398
- Duc.DucLayerOverrides.startDucLayerOverrides(builder);
2399
- if (stroke)
2400
- Duc.DucLayerOverrides.addStroke(builder, stroke);
2401
- if (bg)
2402
- Duc.DucLayerOverrides.addBackground(builder, bg);
2403
- return Duc.DucLayerOverrides.endDucLayerOverrides(builder);
2404
- })() : undefined;
2405
- Duc.DucLayer.startDucLayer(builder);
2406
- Duc.DucLayer.addId(builder, id);
2407
- Duc.DucLayer.addStackBase(builder, stack);
2408
- Duc.DucLayer.addReadonly(builder, l.readonly);
2409
- if (overrides)
2410
- Duc.DucLayer.addOverrides(builder, overrides);
2411
- return Duc.DucLayer.endDucLayer(builder);
2412
- }
2413
- /**
2414
- * External files map serializer: returns vector offset or undefined
2415
- */
2416
- function serializeExternalFiles(builder, files, usv) {
2417
- if (!files)
2418
- return undefined;
2419
- const entries = Object.entries(files).map(([key, value]) => {
2420
- const keyOff = builder.createString(key);
2421
- const mt = builder.createString(value.mimeType);
2422
- const idOff = builder.createString(value.id);
2423
- let dataVectorOffset = undefined;
2424
- if (value.data) {
2425
- dataVectorOffset = Duc.DucExternalFileData.createDataVector(builder, value.data);
2426
- }
2427
- Duc.DucExternalFileData.startDucExternalFileData(builder);
2428
- Duc.DucExternalFileData.addMimeType(builder, mt);
2429
- Duc.DucExternalFileData.addId(builder, idOff);
2430
- if (dataVectorOffset)
2431
- Duc.DucExternalFileData.addData(builder, dataVectorOffset);
2432
- Duc.DucExternalFileData.addCreated(builder, BigInt(value.created));
2433
- if (value.lastRetrieved !== undefined)
2434
- Duc.DucExternalFileData.addLastRetrieved(builder, BigInt(value.lastRetrieved));
2435
- const dataOff = Duc.DucExternalFileData.endDucExternalFileData(builder);
2436
- Duc.DucExternalFileEntry.startDucExternalFileEntry(builder);
2437
- Duc.DucExternalFileEntry.addKey(builder, keyOff);
2438
- Duc.DucExternalFileEntry.addValue(builder, dataOff);
2439
- return Duc.DucExternalFileEntry.endDucExternalFileEntry(builder);
2440
- });
2441
- // Build vector of entries
2442
- builder.startVector(4, entries.length, 4);
2443
- for (let i = entries.length - 1; i >= 0; i--)
2444
- builder.addOffset(entries[i]);
2445
- return builder.endVector();
2446
- }
2447
- export const DUC_SCHEMA_VERSION = (typeof process !== "undefined" && process.env && process.env.DUC_SCHEMA_VERSION) ||
2448
- (typeof import.meta !== "undefined" && import.meta.env && import.meta.env.DUC_SCHEMA_VERSION) ||
2449
- "0.0.0";
2450
- export const serializeDuc = (data_1, ...args_1) => __awaiter(void 0, [data_1, ...args_1], void 0, function* (data, useScopedValues = false, passThroughElementIds = [], restoreConfig = {}) {
2451
- const builder = new flatbuffers.Builder(1024);
2452
- const sanitized = restore(data, {
2453
- refreshDimensions: false,
2454
- syncInvalidIndices: (elements) => elements,
2455
- passThroughElementIds
2456
- }, restoreConfig);
2457
- const typeOffset = builder.createString(EXPORT_DATA_TYPES.duc);
2458
- const sourceOffset = builder.createString(typeof window !== "undefined" ? window.location.origin : "unknown");
2459
- const versionOffset = builder.createString(DUC_SCHEMA_VERSION);
2460
- // Serialize elements
2461
- const elementOffsets = sanitized.elements.map((element) => {
2462
- return writeElementWrapper(builder, element, useScopedValues);
2463
- });
2464
- const elementsOffset = Duc.ExportedDataState.createElementsVector(builder, elementOffsets);
2465
- // Serialize localState
2466
- const localStateOffset = serializeDucLocalState(builder, sanitized.localState, useScopedValues);
2467
- // Serialize files
2468
- const externalFilesOffset = serializeExternalFiles(builder, sanitized.files, useScopedValues);
2469
- // Serialize blocks
2470
- const blocksOffset = sanitized.blocks.length > 0
2471
- ? Duc.ExportedDataState.createBlocksVector(builder, sanitized.blocks.map(block => writeBlock(builder, block, useScopedValues)))
2472
- : null;
2473
- // Serialize block instances
2474
- const blockInstancesOffset = sanitized.blockInstances.length > 0
2475
- ? Duc.ExportedDataState.createBlockInstancesVector(builder, sanitized.blockInstances.map(instance => writeBlockInstance(builder, instance, useScopedValues)))
2476
- : null;
2477
- // Serialize block collections
2478
- const blockCollectionsOffset = sanitized.blockCollections.length > 0
2479
- ? Duc.ExportedDataState.createBlockCollectionsVector(builder, sanitized.blockCollections.map(collection => writeBlockCollection(builder, collection)))
2480
- : null;
2481
- // Serialize groups
2482
- const groupsOffset = sanitized.groups.length > 0
2483
- ? Duc.ExportedDataState.createGroupsVector(builder, sanitized.groups.map(group => serializeDucGroup(builder, group, useScopedValues)))
2484
- : null;
2485
- // Serialize regions
2486
- const regionsOffset = (sanitized.regions && sanitized.regions.length > 0)
2487
- ? Duc.ExportedDataState.createRegionsVector(builder, sanitized.regions.map(region => serializeDucRegion(builder, region, useScopedValues)))
2488
- : null;
2489
- // Serialize layers
2490
- const layersOffset = (sanitized.layers && sanitized.layers.length > 0)
2491
- ? Duc.ExportedDataState.createLayersVector(builder, sanitized.layers.map(layer => serializeDucLayer(builder, layer, useScopedValues)))
2492
- : null;
2493
- // Serialize standards
2494
- const standardsOffset = (sanitized.standards && sanitized.standards.length > 0)
2495
- ? Duc.ExportedDataState.createStandardsVector(builder, sanitized.standards.map(standard => serializeStandard(builder, standard, useScopedValues)))
2496
- : null;
2497
- // Serialize dictionary
2498
- const dictionaryOffset = (sanitized.dictionary && Object.keys(sanitized.dictionary).length > 0)
2499
- ? serializeDictionary(builder, sanitized.dictionary)
2500
- : null;
2501
- // Serialize duc_global_state
2502
- const ducGlobalStateOffset = sanitized.globalState
2503
- ? serializeDucGlobalState(builder, sanitized.globalState, useScopedValues)
2504
- : null;
2505
- // Serialize version_graph
2506
- const versionGraphOffset = sanitized.versionGraph
2507
- ? serializeDucVersionGraph(builder, sanitized.versionGraph)
2508
- : null;
2509
- // Serialize thumbnail (as byte vector if present)
2510
- const thumbnailOffset = sanitized.thumbnail
2511
- ? builder.createByteVector(sanitized.thumbnail)
2512
- : null;
2513
- // Serialize id (as string if present)
2514
- const idOffset = sanitized.id
2515
- ? builder.createString(sanitized.id)
2516
- : null;
2517
- Duc.ExportedDataState.startExportedDataState(builder);
2518
- Duc.ExportedDataState.addType(builder, typeOffset);
2519
- Duc.ExportedDataState.addVersion(builder, versionOffset);
2520
- Duc.ExportedDataState.addSource(builder, sourceOffset);
2521
- Duc.ExportedDataState.addElements(builder, elementsOffset);
2522
- Duc.ExportedDataState.addDucLocalState(builder, localStateOffset);
2523
- if (externalFilesOffset) {
2524
- Duc.ExportedDataState.addExternalFiles(builder, externalFilesOffset);
2525
- }
2526
- if (blocksOffset) {
2527
- Duc.ExportedDataState.addBlocks(builder, blocksOffset);
2528
- }
2529
- if (blockInstancesOffset) {
2530
- Duc.ExportedDataState.addBlockInstances(builder, blockInstancesOffset);
2531
- }
2532
- if (blockCollectionsOffset) {
2533
- Duc.ExportedDataState.addBlockCollections(builder, blockCollectionsOffset);
2534
- }
2535
- if (groupsOffset) {
2536
- Duc.ExportedDataState.addGroups(builder, groupsOffset);
2537
- }
2538
- if (regionsOffset) {
2539
- Duc.ExportedDataState.addRegions(builder, regionsOffset);
2540
- }
2541
- if (layersOffset) {
2542
- Duc.ExportedDataState.addLayers(builder, layersOffset);
2543
- }
2544
- if (standardsOffset) {
2545
- Duc.ExportedDataState.addStandards(builder, standardsOffset);
2546
- }
2547
- if (dictionaryOffset) {
2548
- Duc.ExportedDataState.addDictionary(builder, dictionaryOffset);
2549
- }
2550
- if (ducGlobalStateOffset) {
2551
- Duc.ExportedDataState.addDucGlobalState(builder, ducGlobalStateOffset);
2552
- }
2553
- if (versionGraphOffset) {
2554
- Duc.ExportedDataState.addVersionGraph(builder, versionGraphOffset);
2555
- }
2556
- if (thumbnailOffset) {
2557
- Duc.ExportedDataState.addThumbnail(builder, thumbnailOffset);
2558
- }
2559
- if (idOffset) {
2560
- Duc.ExportedDataState.addId(builder, idOffset);
2561
- }
2562
- const exportedDataStateOffset = Duc.ExportedDataState.endExportedDataState(builder);
2563
- builder.finish(exportedDataStateOffset, "DUC_");
2564
- return builder.asUint8Array();
2565
- });
2566
- // #endregion