ducjs 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -0
  3. package/dist/flatbuffers/duc/alternate-units.d.ts +21 -0
  4. package/dist/flatbuffers/duc/alternate-units.js +66 -0
  5. package/dist/flatbuffers/duc/angular-unit-system.d.ts +17 -0
  6. package/dist/flatbuffers/duc/angular-unit-system.js +50 -0
  7. package/dist/flatbuffers/duc/angular-units-format.d.ts +7 -0
  8. package/dist/flatbuffers/duc/angular-units-format.js +10 -0
  9. package/dist/flatbuffers/duc/axis.d.ts +5 -0
  10. package/dist/flatbuffers/duc/axis.js +8 -0
  11. package/dist/flatbuffers/duc/bezier-mirroring.d.ts +5 -0
  12. package/dist/flatbuffers/duc/bezier-mirroring.js +8 -0
  13. package/dist/flatbuffers/duc/blending.d.ts +9 -0
  14. package/dist/flatbuffers/duc/blending.js +12 -0
  15. package/dist/flatbuffers/duc/block-attachment.d.ts +4 -0
  16. package/dist/flatbuffers/duc/block-attachment.js +7 -0
  17. package/dist/flatbuffers/duc/boolean-operation.d.ts +6 -0
  18. package/dist/flatbuffers/duc/boolean-operation.js +9 -0
  19. package/dist/flatbuffers/duc/bound-element.d.ts +17 -0
  20. package/dist/flatbuffers/duc/bound-element.js +48 -0
  21. package/dist/flatbuffers/duc/checkpoint.d.ts +22 -0
  22. package/dist/flatbuffers/duc/checkpoint.js +75 -0
  23. package/dist/flatbuffers/duc/column-layout.d.ts +22 -0
  24. package/dist/flatbuffers/duc/column-layout.js +72 -0
  25. package/dist/flatbuffers/duc/column-type.d.ts +5 -0
  26. package/dist/flatbuffers/duc/column-type.js +8 -0
  27. package/dist/flatbuffers/duc/custom-hatch-pattern.d.ts +23 -0
  28. package/dist/flatbuffers/duc/custom-hatch-pattern.js +71 -0
  29. package/dist/flatbuffers/duc/datum-bracket-style.d.ts +5 -0
  30. package/dist/flatbuffers/duc/datum-bracket-style.js +8 -0
  31. package/dist/flatbuffers/duc/datum-reference.d.ts +17 -0
  32. package/dist/flatbuffers/duc/datum-reference.js +49 -0
  33. package/dist/flatbuffers/duc/datum-target-type.d.ts +6 -0
  34. package/dist/flatbuffers/duc/datum-target-type.js +9 -0
  35. package/dist/flatbuffers/duc/decimal-separator.d.ts +4 -0
  36. package/dist/flatbuffers/duc/decimal-separator.js +7 -0
  37. package/dist/flatbuffers/duc/delta.d.ts +20 -0
  38. package/dist/flatbuffers/duc/delta.js +64 -0
  39. package/dist/flatbuffers/duc/dictionary-entry.d.ts +17 -0
  40. package/dist/flatbuffers/duc/dictionary-entry.js +49 -0
  41. package/dist/flatbuffers/duc/dimension-baseline-data.d.ts +14 -0
  42. package/dist/flatbuffers/duc/dimension-baseline-data.js +40 -0
  43. package/dist/flatbuffers/duc/dimension-bindings.d.ts +17 -0
  44. package/dist/flatbuffers/duc/dimension-bindings.js +50 -0
  45. package/dist/flatbuffers/duc/dimension-continue-data.d.ts +14 -0
  46. package/dist/flatbuffers/duc/dimension-continue-data.js +40 -0
  47. package/dist/flatbuffers/duc/dimension-definition-points.d.ts +21 -0
  48. package/dist/flatbuffers/duc/dimension-definition-points.js +64 -0
  49. package/dist/flatbuffers/duc/dimension-ext-line-style.d.ts +18 -0
  50. package/dist/flatbuffers/duc/dimension-ext-line-style.js +57 -0
  51. package/dist/flatbuffers/duc/dimension-fit-rule.d.ts +6 -0
  52. package/dist/flatbuffers/duc/dimension-fit-rule.js +9 -0
  53. package/dist/flatbuffers/duc/dimension-fit-style.d.ts +19 -0
  54. package/dist/flatbuffers/duc/dimension-fit-style.js +58 -0
  55. package/dist/flatbuffers/duc/dimension-line-style.d.ts +16 -0
  56. package/dist/flatbuffers/duc/dimension-line-style.js +49 -0
  57. package/dist/flatbuffers/duc/dimension-symbol-style.d.ts +22 -0
  58. package/dist/flatbuffers/duc/dimension-symbol-style.js +72 -0
  59. package/dist/flatbuffers/duc/dimension-text-placement.d.ts +5 -0
  60. package/dist/flatbuffers/duc/dimension-text-placement.js +8 -0
  61. package/dist/flatbuffers/duc/dimension-tolerance-style.d.ts +24 -0
  62. package/dist/flatbuffers/duc/dimension-tolerance-style.js +71 -0
  63. package/dist/flatbuffers/duc/dimension-type.d.ts +15 -0
  64. package/dist/flatbuffers/duc/dimension-type.js +18 -0
  65. package/dist/flatbuffers/duc/dimension-units-format.d.ts +7 -0
  66. package/dist/flatbuffers/duc/dimension-units-format.js +10 -0
  67. package/dist/flatbuffers/duc/dimension-validation-rules.d.ts +25 -0
  68. package/dist/flatbuffers/duc/dimension-validation-rules.js +74 -0
  69. package/dist/flatbuffers/duc/duc-arrow-element.d.ts +16 -0
  70. package/dist/flatbuffers/duc/duc-arrow-element.js +49 -0
  71. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.d.ts +16 -0
  72. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.js +44 -0
  73. package/dist/flatbuffers/duc/duc-block-attribute-definition.d.ts +22 -0
  74. package/dist/flatbuffers/duc/duc-block-attribute-definition.js +64 -0
  75. package/dist/flatbuffers/duc/duc-block-duplication-array.d.ts +19 -0
  76. package/dist/flatbuffers/duc/duc-block-duplication-array.js +64 -0
  77. package/dist/flatbuffers/duc/duc-block-instance-element.d.ts +30 -0
  78. package/dist/flatbuffers/duc/duc-block-instance-element.js +94 -0
  79. package/dist/flatbuffers/duc/duc-block.d.ts +34 -0
  80. package/dist/flatbuffers/duc/duc-block.js +111 -0
  81. package/dist/flatbuffers/duc/duc-common-style.d.ts +16 -0
  82. package/dist/flatbuffers/duc/duc-common-style.js +44 -0
  83. package/dist/flatbuffers/duc/duc-dimension-element.d.ts +45 -0
  84. package/dist/flatbuffers/duc/duc-dimension-element.js +120 -0
  85. package/dist/flatbuffers/duc/duc-dimension-style.d.ts +28 -0
  86. package/dist/flatbuffers/duc/duc-dimension-style.js +76 -0
  87. package/dist/flatbuffers/duc/duc-doc-element.d.ts +33 -0
  88. package/dist/flatbuffers/duc/duc-doc-element.js +95 -0
  89. package/dist/flatbuffers/duc/duc-doc-style.d.ts +19 -0
  90. package/dist/flatbuffers/duc/duc-doc-style.js +52 -0
  91. package/dist/flatbuffers/duc/duc-element-base.d.ts +88 -0
  92. package/dist/flatbuffers/duc/duc-element-base.js +269 -0
  93. package/dist/flatbuffers/duc/duc-element-styles-base.d.ts +30 -0
  94. package/dist/flatbuffers/duc/duc-element-styles-base.js +103 -0
  95. package/dist/flatbuffers/duc/duc-ellipse-element.d.ts +22 -0
  96. package/dist/flatbuffers/duc/duc-ellipse-element.js +73 -0
  97. package/dist/flatbuffers/duc/duc-embeddable-element.d.ts +14 -0
  98. package/dist/flatbuffers/duc/duc-embeddable-element.js +41 -0
  99. package/dist/flatbuffers/duc/duc-external-file-data.d.ts +27 -0
  100. package/dist/flatbuffers/duc/duc-external-file-data.js +92 -0
  101. package/dist/flatbuffers/duc/duc-external-file-entry.d.ts +16 -0
  102. package/dist/flatbuffers/duc/duc-external-file-entry.js +44 -0
  103. package/dist/flatbuffers/duc/duc-feature-control-frame-element.d.ts +31 -0
  104. package/dist/flatbuffers/duc/duc-feature-control-frame-element.js +89 -0
  105. package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +25 -0
  106. package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +68 -0
  107. package/dist/flatbuffers/duc/duc-frame-element.d.ts +14 -0
  108. package/dist/flatbuffers/duc/duc-frame-element.js +41 -0
  109. package/dist/flatbuffers/duc/duc-free-draw-element.d.ts +52 -0
  110. package/dist/flatbuffers/duc/duc-free-draw-element.js +154 -0
  111. package/dist/flatbuffers/duc/duc-free-draw-ends.d.ts +18 -0
  112. package/dist/flatbuffers/duc/duc-free-draw-ends.js +56 -0
  113. package/dist/flatbuffers/duc/duc-global-state.d.ts +37 -0
  114. package/dist/flatbuffers/duc/duc-global-state.js +121 -0
  115. package/dist/flatbuffers/duc/duc-group.d.ts +16 -0
  116. package/dist/flatbuffers/duc/duc-group.js +44 -0
  117. package/dist/flatbuffers/duc/duc-hatch-style.d.ts +28 -0
  118. package/dist/flatbuffers/duc/duc-hatch-style.js +79 -0
  119. package/dist/flatbuffers/duc/duc-head.d.ts +19 -0
  120. package/dist/flatbuffers/duc/duc-head.js +57 -0
  121. package/dist/flatbuffers/duc/duc-image-element.d.ts +35 -0
  122. package/dist/flatbuffers/duc/duc-image-element.js +91 -0
  123. package/dist/flatbuffers/duc/duc-image-filter.d.ts +15 -0
  124. package/dist/flatbuffers/duc/duc-image-filter.js +48 -0
  125. package/dist/flatbuffers/duc/duc-layer-overrides.d.ts +16 -0
  126. package/dist/flatbuffers/duc/duc-layer-overrides.js +44 -0
  127. package/dist/flatbuffers/duc/duc-layer.d.ts +21 -0
  128. package/dist/flatbuffers/duc/duc-layer.js +59 -0
  129. package/dist/flatbuffers/duc/duc-leader-element.d.ts +22 -0
  130. package/dist/flatbuffers/duc/duc-leader-element.js +60 -0
  131. package/dist/flatbuffers/duc/duc-leader-style.d.ts +30 -0
  132. package/dist/flatbuffers/duc/duc-leader-style.js +87 -0
  133. package/dist/flatbuffers/duc/duc-line-reference.d.ts +15 -0
  134. package/dist/flatbuffers/duc/duc-line-reference.js +43 -0
  135. package/dist/flatbuffers/duc/duc-line.d.ts +15 -0
  136. package/dist/flatbuffers/duc/duc-line.js +43 -0
  137. package/dist/flatbuffers/duc/duc-linear-element-base.d.ts +38 -0
  138. package/dist/flatbuffers/duc/duc-linear-element-base.js +124 -0
  139. package/dist/flatbuffers/duc/duc-linear-element.d.ts +16 -0
  140. package/dist/flatbuffers/duc/duc-linear-element.js +49 -0
  141. package/dist/flatbuffers/duc/duc-local-state.d.ts +68 -0
  142. package/dist/flatbuffers/duc/duc-local-state.js +206 -0
  143. package/dist/flatbuffers/duc/duc-mermaid-element.d.ts +23 -0
  144. package/dist/flatbuffers/duc/duc-mermaid-element.js +65 -0
  145. package/dist/flatbuffers/duc/duc-parametric-element.d.ts +16 -0
  146. package/dist/flatbuffers/duc/duc-parametric-element.js +44 -0
  147. package/dist/flatbuffers/duc/duc-path.d.ts +26 -0
  148. package/dist/flatbuffers/duc/duc-path.js +69 -0
  149. package/dist/flatbuffers/duc/duc-pdf-element.d.ts +17 -0
  150. package/dist/flatbuffers/duc/duc-pdf-element.js +49 -0
  151. package/dist/flatbuffers/duc/duc-plot-element.d.ts +19 -0
  152. package/dist/flatbuffers/duc/duc-plot-element.js +52 -0
  153. package/dist/flatbuffers/duc/duc-plot-style.d.ts +14 -0
  154. package/dist/flatbuffers/duc/duc-plot-style.js +41 -0
  155. package/dist/flatbuffers/duc/duc-point-binding.d.ts +26 -0
  156. package/dist/flatbuffers/duc/duc-point-binding.js +73 -0
  157. package/dist/flatbuffers/duc/duc-point.d.ts +18 -0
  158. package/dist/flatbuffers/duc/duc-point.js +57 -0
  159. package/dist/flatbuffers/duc/duc-polygon-element.d.ts +16 -0
  160. package/dist/flatbuffers/duc/duc-polygon-element.js +49 -0
  161. package/dist/flatbuffers/duc/duc-rectangle-element.d.ts +14 -0
  162. package/dist/flatbuffers/duc/duc-rectangle-element.js +41 -0
  163. package/dist/flatbuffers/duc/duc-region.d.ts +19 -0
  164. package/dist/flatbuffers/duc/duc-region.js +51 -0
  165. package/dist/flatbuffers/duc/duc-stack-base.d.ts +27 -0
  166. package/dist/flatbuffers/duc/duc-stack-base.js +78 -0
  167. package/dist/flatbuffers/duc/duc-stack-element-base.d.ts +23 -0
  168. package/dist/flatbuffers/duc/duc-stack-element-base.js +65 -0
  169. package/dist/flatbuffers/duc/duc-stack-like-styles.d.ts +16 -0
  170. package/dist/flatbuffers/duc/duc-stack-like-styles.js +48 -0
  171. package/dist/flatbuffers/duc/duc-table-auto-size.d.ts +15 -0
  172. package/dist/flatbuffers/duc/duc-table-auto-size.js +48 -0
  173. package/dist/flatbuffers/duc/duc-table-cell-entry.d.ts +16 -0
  174. package/dist/flatbuffers/duc/duc-table-cell-entry.js +44 -0
  175. package/dist/flatbuffers/duc/duc-table-cell-span.d.ts +15 -0
  176. package/dist/flatbuffers/duc/duc-table-cell-span.js +48 -0
  177. package/dist/flatbuffers/duc/duc-table-cell-style.d.ts +22 -0
  178. package/dist/flatbuffers/duc/duc-table-cell-style.js +59 -0
  179. package/dist/flatbuffers/duc/duc-table-cell.d.ts +27 -0
  180. package/dist/flatbuffers/duc/duc-table-cell.js +72 -0
  181. package/dist/flatbuffers/duc/duc-table-column-entry.d.ts +16 -0
  182. package/dist/flatbuffers/duc/duc-table-column-entry.js +44 -0
  183. package/dist/flatbuffers/duc/duc-table-column.d.ts +18 -0
  184. package/dist/flatbuffers/duc/duc-table-column.js +51 -0
  185. package/dist/flatbuffers/duc/duc-table-element.d.ts +51 -0
  186. package/dist/flatbuffers/duc/duc-table-element.js +167 -0
  187. package/dist/flatbuffers/duc/duc-table-row-entry.d.ts +16 -0
  188. package/dist/flatbuffers/duc/duc-table-row-entry.js +44 -0
  189. package/dist/flatbuffers/duc/duc-table-row.d.ts +18 -0
  190. package/dist/flatbuffers/duc/duc-table-row.js +51 -0
  191. package/dist/flatbuffers/duc/duc-table-style.d.ts +23 -0
  192. package/dist/flatbuffers/duc/duc-table-style.js +65 -0
  193. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.d.ts +14 -0
  194. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.js +40 -0
  195. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.d.ts +17 -0
  196. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.js +49 -0
  197. package/dist/flatbuffers/duc/duc-text-dynamic-part.d.ts +22 -0
  198. package/dist/flatbuffers/duc/duc-text-dynamic-part.js +58 -0
  199. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.d.ts +9 -0
  200. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.js +26 -0
  201. package/dist/flatbuffers/duc/duc-text-dynamic-source.d.ts +19 -0
  202. package/dist/flatbuffers/duc/duc-text-dynamic-source.js +58 -0
  203. package/dist/flatbuffers/duc/duc-text-element.d.ts +33 -0
  204. package/dist/flatbuffers/duc/duc-text-element.js +94 -0
  205. package/dist/flatbuffers/duc/duc-text-style.d.ts +44 -0
  206. package/dist/flatbuffers/duc/duc-text-style.js +128 -0
  207. package/dist/flatbuffers/duc/duc-ucs.d.ts +16 -0
  208. package/dist/flatbuffers/duc/duc-ucs.js +49 -0
  209. package/dist/flatbuffers/duc/duc-view.d.ts +24 -0
  210. package/dist/flatbuffers/duc/duc-view.js +71 -0
  211. package/dist/flatbuffers/duc/duc-viewport-element.d.ts +36 -0
  212. package/dist/flatbuffers/duc/duc-viewport-element.js +102 -0
  213. package/dist/flatbuffers/duc/duc-viewport-style.d.ts +16 -0
  214. package/dist/flatbuffers/duc/duc-viewport-style.js +49 -0
  215. package/dist/flatbuffers/duc/duc-xray-element.d.ts +23 -0
  216. package/dist/flatbuffers/duc/duc-xray-element.js +66 -0
  217. package/dist/flatbuffers/duc/duc-xray-style.d.ts +17 -0
  218. package/dist/flatbuffers/duc/duc-xray-style.js +49 -0
  219. package/dist/flatbuffers/duc/dynamic-snap-settings.d.ts +17 -0
  220. package/dist/flatbuffers/duc/dynamic-snap-settings.js +56 -0
  221. package/dist/flatbuffers/duc/element-background.d.ts +14 -0
  222. package/dist/flatbuffers/duc/element-background.js +41 -0
  223. package/dist/flatbuffers/duc/element-content-base.d.ts +29 -0
  224. package/dist/flatbuffers/duc/element-content-base.js +80 -0
  225. package/dist/flatbuffers/duc/element-content-preference.d.ts +8 -0
  226. package/dist/flatbuffers/duc/element-content-preference.js +11 -0
  227. package/dist/flatbuffers/duc/element-stroke.d.ts +24 -0
  228. package/dist/flatbuffers/duc/element-stroke.js +66 -0
  229. package/dist/flatbuffers/duc/element-wrapper.d.ts +16 -0
  230. package/dist/flatbuffers/duc/element-wrapper.js +49 -0
  231. package/dist/flatbuffers/duc/element.d.ts +49 -0
  232. package/dist/flatbuffers/duc/element.js +106 -0
  233. package/dist/flatbuffers/duc/exported-data-state.d.ts +87 -0
  234. package/dist/flatbuffers/duc/exported-data-state.js +290 -0
  235. package/dist/flatbuffers/duc/fcfbetween-modifier.d.ts +17 -0
  236. package/dist/flatbuffers/duc/fcfbetween-modifier.js +48 -0
  237. package/dist/flatbuffers/duc/fcfdatum-definition.d.ts +16 -0
  238. package/dist/flatbuffers/duc/fcfdatum-definition.js +43 -0
  239. package/dist/flatbuffers/duc/fcfdatum-style.d.ts +14 -0
  240. package/dist/flatbuffers/duc/fcfdatum-style.js +41 -0
  241. package/dist/flatbuffers/duc/fcfframe-modifiers.d.ts +22 -0
  242. package/dist/flatbuffers/duc/fcfframe-modifiers.js +65 -0
  243. package/dist/flatbuffers/duc/fcflayout-style.d.ts +17 -0
  244. package/dist/flatbuffers/duc/fcflayout-style.js +56 -0
  245. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.d.ts +13 -0
  246. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.js +40 -0
  247. package/dist/flatbuffers/duc/fcfsegment-row.d.ts +17 -0
  248. package/dist/flatbuffers/duc/fcfsegment-row.js +55 -0
  249. package/dist/flatbuffers/duc/fcfsymbol-style.d.ts +13 -0
  250. package/dist/flatbuffers/duc/fcfsymbol-style.js +40 -0
  251. package/dist/flatbuffers/duc/feature-control-frame-segment.d.ts +22 -0
  252. package/dist/flatbuffers/duc/feature-control-frame-segment.js +65 -0
  253. package/dist/flatbuffers/duc/feature-modifier.d.ts +18 -0
  254. package/dist/flatbuffers/duc/feature-modifier.js +21 -0
  255. package/dist/flatbuffers/duc/gdt-symbol.d.ts +22 -0
  256. package/dist/flatbuffers/duc/gdt-symbol.js +25 -0
  257. package/dist/flatbuffers/duc/geometric-point.d.ts +10 -0
  258. package/dist/flatbuffers/duc/geometric-point.js +27 -0
  259. package/dist/flatbuffers/duc/grid-display-type.d.ts +6 -0
  260. package/dist/flatbuffers/duc/grid-display-type.js +9 -0
  261. package/dist/flatbuffers/duc/grid-settings.d.ts +54 -0
  262. package/dist/flatbuffers/duc/grid-settings.js +165 -0
  263. package/dist/flatbuffers/duc/grid-style.d.ts +26 -0
  264. package/dist/flatbuffers/duc/grid-style.js +74 -0
  265. package/dist/flatbuffers/duc/grid-type.d.ts +7 -0
  266. package/dist/flatbuffers/duc/grid-type.js +10 -0
  267. package/dist/flatbuffers/duc/handle-type.d.ts +4 -0
  268. package/dist/flatbuffers/duc/handle-type.js +7 -0
  269. package/dist/flatbuffers/duc/hatch-pattern-line.d.ts +35 -0
  270. package/dist/flatbuffers/duc/hatch-pattern-line.js +93 -0
  271. package/dist/flatbuffers/duc/hatch-style.d.ts +5 -0
  272. package/dist/flatbuffers/duc/hatch-style.js +8 -0
  273. package/dist/flatbuffers/duc/identified-common-style.d.ts +16 -0
  274. package/dist/flatbuffers/duc/identified-common-style.js +44 -0
  275. package/dist/flatbuffers/duc/identified-dimension-style.d.ts +16 -0
  276. package/dist/flatbuffers/duc/identified-dimension-style.js +44 -0
  277. package/dist/flatbuffers/duc/identified-doc-style.d.ts +16 -0
  278. package/dist/flatbuffers/duc/identified-doc-style.js +44 -0
  279. package/dist/flatbuffers/duc/identified-fcfstyle.d.ts +16 -0
  280. package/dist/flatbuffers/duc/identified-fcfstyle.js +44 -0
  281. package/dist/flatbuffers/duc/identified-grid-settings.d.ts +16 -0
  282. package/dist/flatbuffers/duc/identified-grid-settings.js +44 -0
  283. package/dist/flatbuffers/duc/identified-hatch-style.d.ts +16 -0
  284. package/dist/flatbuffers/duc/identified-hatch-style.js +44 -0
  285. package/dist/flatbuffers/duc/identified-leader-style.d.ts +16 -0
  286. package/dist/flatbuffers/duc/identified-leader-style.js +44 -0
  287. package/dist/flatbuffers/duc/identified-snap-settings.d.ts +16 -0
  288. package/dist/flatbuffers/duc/identified-snap-settings.js +44 -0
  289. package/dist/flatbuffers/duc/identified-stack-like-style.d.ts +16 -0
  290. package/dist/flatbuffers/duc/identified-stack-like-style.js +44 -0
  291. package/dist/flatbuffers/duc/identified-table-style.d.ts +16 -0
  292. package/dist/flatbuffers/duc/identified-table-style.js +44 -0
  293. package/dist/flatbuffers/duc/identified-text-style.d.ts +16 -0
  294. package/dist/flatbuffers/duc/identified-text-style.js +44 -0
  295. package/dist/flatbuffers/duc/identified-ucs.d.ts +16 -0
  296. package/dist/flatbuffers/duc/identified-ucs.js +44 -0
  297. package/dist/flatbuffers/duc/identified-view.d.ts +16 -0
  298. package/dist/flatbuffers/duc/identified-view.js +44 -0
  299. package/dist/flatbuffers/duc/identified-viewport-style.d.ts +16 -0
  300. package/dist/flatbuffers/duc/identified-viewport-style.js +44 -0
  301. package/dist/flatbuffers/duc/identified-xray-style.d.ts +16 -0
  302. package/dist/flatbuffers/duc/identified-xray-style.js +44 -0
  303. package/dist/flatbuffers/duc/identifier.d.ts +20 -0
  304. package/dist/flatbuffers/duc/identifier.js +57 -0
  305. package/dist/flatbuffers/duc/image-crop.d.ts +23 -0
  306. package/dist/flatbuffers/duc/image-crop.js +80 -0
  307. package/dist/flatbuffers/duc/image-status.d.ts +5 -0
  308. package/dist/flatbuffers/duc/image-status.js +8 -0
  309. package/dist/flatbuffers/duc/isometric-grid-settings.d.ts +15 -0
  310. package/dist/flatbuffers/duc/isometric-grid-settings.js +48 -0
  311. package/dist/flatbuffers/duc/jsonpatch-operation.d.ts +23 -0
  312. package/dist/flatbuffers/duc/jsonpatch-operation.js +64 -0
  313. package/dist/flatbuffers/duc/layer-snap-filters.d.ts +23 -0
  314. package/dist/flatbuffers/duc/layer-snap-filters.js +76 -0
  315. package/dist/flatbuffers/duc/layer-validation-rules.d.ts +17 -0
  316. package/dist/flatbuffers/duc/layer-validation-rules.js +54 -0
  317. package/dist/flatbuffers/duc/leader-block-content.d.ts +25 -0
  318. package/dist/flatbuffers/duc/leader-block-content.js +85 -0
  319. package/dist/flatbuffers/duc/leader-content-data.d.ts +9 -0
  320. package/dist/flatbuffers/duc/leader-content-data.js +26 -0
  321. package/dist/flatbuffers/duc/leader-content-type.d.ts +4 -0
  322. package/dist/flatbuffers/duc/leader-content-type.js +7 -0
  323. package/dist/flatbuffers/duc/leader-content.d.ts +19 -0
  324. package/dist/flatbuffers/duc/leader-content.js +58 -0
  325. package/dist/flatbuffers/duc/leader-text-block-content.d.ts +14 -0
  326. package/dist/flatbuffers/duc/leader-text-block-content.js +40 -0
  327. package/dist/flatbuffers/duc/line-head.d.ts +17 -0
  328. package/dist/flatbuffers/duc/line-head.js +20 -0
  329. package/dist/flatbuffers/duc/line-spacing-type.d.ts +5 -0
  330. package/dist/flatbuffers/duc/line-spacing-type.js +8 -0
  331. package/dist/flatbuffers/duc/line-spacing.d.ts +16 -0
  332. package/dist/flatbuffers/duc/line-spacing.js +49 -0
  333. package/dist/flatbuffers/duc/linear-unit-system.d.ts +24 -0
  334. package/dist/flatbuffers/duc/linear-unit-system.js +75 -0
  335. package/dist/flatbuffers/duc/margins.d.ts +19 -0
  336. package/dist/flatbuffers/duc/margins.js +64 -0
  337. package/dist/flatbuffers/duc/mark-ellipse-center.d.ts +4 -0
  338. package/dist/flatbuffers/duc/mark-ellipse-center.js +7 -0
  339. package/dist/flatbuffers/duc/material-condition.d.ts +5 -0
  340. package/dist/flatbuffers/duc/material-condition.js +8 -0
  341. package/dist/flatbuffers/duc/object-snap-mode.d.ts +22 -0
  342. package/dist/flatbuffers/duc/object-snap-mode.js +25 -0
  343. package/dist/flatbuffers/duc/paragraph-formatting.d.ts +33 -0
  344. package/dist/flatbuffers/duc/paragraph-formatting.js +106 -0
  345. package/dist/flatbuffers/duc/parametric-source-type.d.ts +4 -0
  346. package/dist/flatbuffers/duc/parametric-source-type.js +7 -0
  347. package/dist/flatbuffers/duc/parametric-source.d.ts +20 -0
  348. package/dist/flatbuffers/duc/parametric-source.js +57 -0
  349. package/dist/flatbuffers/duc/plot-layout.d.ts +14 -0
  350. package/dist/flatbuffers/duc/plot-layout.js +41 -0
  351. package/dist/flatbuffers/duc/point-binding-point.d.ts +15 -0
  352. package/dist/flatbuffers/duc/point-binding-point.js +48 -0
  353. package/dist/flatbuffers/duc/polar-grid-settings.d.ts +17 -0
  354. package/dist/flatbuffers/duc/polar-grid-settings.js +56 -0
  355. package/dist/flatbuffers/duc/polar-tracking-settings.d.ts +29 -0
  356. package/dist/flatbuffers/duc/polar-tracking-settings.js +90 -0
  357. package/dist/flatbuffers/duc/primary-units.d.ts +16 -0
  358. package/dist/flatbuffers/duc/primary-units.js +44 -0
  359. package/dist/flatbuffers/duc/pruning-level.d.ts +5 -0
  360. package/dist/flatbuffers/duc/pruning-level.js +8 -0
  361. package/dist/flatbuffers/duc/snap-marker-settings.d.ts +23 -0
  362. package/dist/flatbuffers/duc/snap-marker-settings.js +79 -0
  363. package/dist/flatbuffers/duc/snap-marker-shape.d.ts +6 -0
  364. package/dist/flatbuffers/duc/snap-marker-shape.js +9 -0
  365. package/dist/flatbuffers/duc/snap-marker-style-entry.d.ts +16 -0
  366. package/dist/flatbuffers/duc/snap-marker-style-entry.js +43 -0
  367. package/dist/flatbuffers/duc/snap-marker-style.d.ts +17 -0
  368. package/dist/flatbuffers/duc/snap-marker-style.js +49 -0
  369. package/dist/flatbuffers/duc/snap-mode.d.ts +4 -0
  370. package/dist/flatbuffers/duc/snap-mode.js +7 -0
  371. package/dist/flatbuffers/duc/snap-override-behavior.d.ts +5 -0
  372. package/dist/flatbuffers/duc/snap-override-behavior.js +8 -0
  373. package/dist/flatbuffers/duc/snap-override.d.ts +17 -0
  374. package/dist/flatbuffers/duc/snap-override.js +49 -0
  375. package/dist/flatbuffers/duc/snap-settings.d.ts +75 -0
  376. package/dist/flatbuffers/duc/snap-settings.js +245 -0
  377. package/dist/flatbuffers/duc/stack-format-properties.d.ts +18 -0
  378. package/dist/flatbuffers/duc/stack-format-properties.js +57 -0
  379. package/dist/flatbuffers/duc/stack-format.d.ts +21 -0
  380. package/dist/flatbuffers/duc/stack-format.js +64 -0
  381. package/dist/flatbuffers/duc/stacked-text-align.d.ts +5 -0
  382. package/dist/flatbuffers/duc/stacked-text-align.js +8 -0
  383. package/dist/flatbuffers/duc/standard-overrides.d.ts +63 -0
  384. package/dist/flatbuffers/duc/standard-overrides.js +162 -0
  385. package/dist/flatbuffers/duc/standard-styles.d.ts +77 -0
  386. package/dist/flatbuffers/duc/standard-styles.js +285 -0
  387. package/dist/flatbuffers/duc/standard-units.d.ts +16 -0
  388. package/dist/flatbuffers/duc/standard-units.js +44 -0
  389. package/dist/flatbuffers/duc/standard-validation.d.ts +16 -0
  390. package/dist/flatbuffers/duc/standard-validation.js +44 -0
  391. package/dist/flatbuffers/duc/standard-view-settings.d.ts +35 -0
  392. package/dist/flatbuffers/duc/standard-view-settings.js +124 -0
  393. package/dist/flatbuffers/duc/standard.d.ts +33 -0
  394. package/dist/flatbuffers/duc/standard.js +90 -0
  395. package/dist/flatbuffers/duc/string-value-entry.d.ts +17 -0
  396. package/dist/flatbuffers/duc/string-value-entry.js +49 -0
  397. package/dist/flatbuffers/duc/stroke-cap.d.ts +5 -0
  398. package/dist/flatbuffers/duc/stroke-cap.js +8 -0
  399. package/dist/flatbuffers/duc/stroke-join.d.ts +5 -0
  400. package/dist/flatbuffers/duc/stroke-join.js +8 -0
  401. package/dist/flatbuffers/duc/stroke-placement.d.ts +5 -0
  402. package/dist/flatbuffers/duc/stroke-placement.js +8 -0
  403. package/dist/flatbuffers/duc/stroke-preference.d.ts +6 -0
  404. package/dist/flatbuffers/duc/stroke-preference.js +9 -0
  405. package/dist/flatbuffers/duc/stroke-side-preference.d.ts +8 -0
  406. package/dist/flatbuffers/duc/stroke-side-preference.js +11 -0
  407. package/dist/flatbuffers/duc/stroke-sides.d.ts +24 -0
  408. package/dist/flatbuffers/duc/stroke-sides.js +67 -0
  409. package/dist/flatbuffers/duc/stroke-style.d.ts +37 -0
  410. package/dist/flatbuffers/duc/stroke-style.js +111 -0
  411. package/dist/flatbuffers/duc/stroke-width.d.ts +5 -0
  412. package/dist/flatbuffers/duc/stroke-width.js +8 -0
  413. package/dist/flatbuffers/duc/table-cell-alignment.d.ts +11 -0
  414. package/dist/flatbuffers/duc/table-cell-alignment.js +14 -0
  415. package/dist/flatbuffers/duc/table-flow-direction.d.ts +4 -0
  416. package/dist/flatbuffers/duc/table-flow-direction.js +7 -0
  417. package/dist/flatbuffers/duc/text-align.d.ts +5 -0
  418. package/dist/flatbuffers/duc/text-align.js +8 -0
  419. package/dist/flatbuffers/duc/text-column.d.ts +15 -0
  420. package/dist/flatbuffers/duc/text-column.js +48 -0
  421. package/dist/flatbuffers/duc/text-field-source-property.d.ts +13 -0
  422. package/dist/flatbuffers/duc/text-field-source-property.js +16 -0
  423. package/dist/flatbuffers/duc/text-field-source-type.d.ts +4 -0
  424. package/dist/flatbuffers/duc/text-field-source-type.js +7 -0
  425. package/dist/flatbuffers/duc/text-flow-direction.d.ts +6 -0
  426. package/dist/flatbuffers/duc/text-flow-direction.js +9 -0
  427. package/dist/flatbuffers/duc/tiling-properties.d.ts +21 -0
  428. package/dist/flatbuffers/duc/tiling-properties.js +75 -0
  429. package/dist/flatbuffers/duc/tolerance-clause.d.ts +27 -0
  430. package/dist/flatbuffers/duc/tolerance-clause.js +84 -0
  431. package/dist/flatbuffers/duc/tolerance-display.d.ts +7 -0
  432. package/dist/flatbuffers/duc/tolerance-display.js +10 -0
  433. package/dist/flatbuffers/duc/tolerance-type.d.ts +5 -0
  434. package/dist/flatbuffers/duc/tolerance-type.js +8 -0
  435. package/dist/flatbuffers/duc/tolerance-zone-type.d.ts +7 -0
  436. package/dist/flatbuffers/duc/tolerance-zone-type.js +10 -0
  437. package/dist/flatbuffers/duc/tracking-line-style.d.ts +26 -0
  438. package/dist/flatbuffers/duc/tracking-line-style.js +74 -0
  439. package/dist/flatbuffers/duc/unit-precision.d.ts +19 -0
  440. package/dist/flatbuffers/duc/unit-precision.js +64 -0
  441. package/dist/flatbuffers/duc/unit-system-base.d.ts +20 -0
  442. package/dist/flatbuffers/duc/unit-system-base.js +65 -0
  443. package/dist/flatbuffers/duc/unit-system.d.ts +4 -0
  444. package/dist/flatbuffers/duc/unit-system.js +7 -0
  445. package/dist/flatbuffers/duc/version-base.d.ts +27 -0
  446. package/dist/flatbuffers/duc/version-base.js +80 -0
  447. package/dist/flatbuffers/duc/version-graph-metadata.d.ts +15 -0
  448. package/dist/flatbuffers/duc/version-graph-metadata.js +48 -0
  449. package/dist/flatbuffers/duc/version-graph.d.ts +31 -0
  450. package/dist/flatbuffers/duc/version-graph.js +94 -0
  451. package/dist/flatbuffers/duc/vertical-align.d.ts +5 -0
  452. package/dist/flatbuffers/duc/vertical-align.js +8 -0
  453. package/dist/flatbuffers/duc/viewport-shade-plot.d.ts +6 -0
  454. package/dist/flatbuffers/duc/viewport-shade-plot.js +9 -0
  455. package/dist/flatbuffers/duc/youtube-states.d.ts +8 -0
  456. package/dist/flatbuffers/duc/youtube-states.js +11 -0
  457. package/dist/flatbuffers/duc.d.ts +227 -0
  458. package/dist/flatbuffers/duc.js +229 -0
  459. package/dist/index.d.ts +8 -0
  460. package/dist/index.js +8 -0
  461. package/dist/legacy/index.d.ts +1 -0
  462. package/dist/legacy/index.js +1 -0
  463. package/dist/legacy/v1/duc/app-state.d.ts +124 -0
  464. package/dist/legacy/v1/duc/app-state.js +388 -0
  465. package/dist/legacy/v1/duc/binary-file-data.d.ts +27 -0
  466. package/dist/legacy/v1/duc/binary-file-data.js +90 -0
  467. package/dist/legacy/v1/duc/binary-files-entry.d.ts +16 -0
  468. package/dist/legacy/v1/duc/binary-files-entry.js +43 -0
  469. package/dist/legacy/v1/duc/binary-files.d.ts +17 -0
  470. package/dist/legacy/v1/duc/binary-files.js +55 -0
  471. package/dist/legacy/v1/duc/binding-point.d.ts +15 -0
  472. package/dist/legacy/v1/duc/binding-point.js +48 -0
  473. package/dist/legacy/v1/duc/bound-element.d.ts +17 -0
  474. package/dist/legacy/v1/duc/bound-element.js +48 -0
  475. package/dist/legacy/v1/duc/duc-block-attribute-details.d.ts +22 -0
  476. package/dist/legacy/v1/duc/duc-block-attribute-details.js +57 -0
  477. package/dist/legacy/v1/duc/duc-block-attribute.d.ts +16 -0
  478. package/dist/legacy/v1/duc/duc-block-attribute.js +43 -0
  479. package/dist/legacy/v1/duc/duc-block-instance-element-override.d.ts +17 -0
  480. package/dist/legacy/v1/duc/duc-block-instance-element-override.js +48 -0
  481. package/dist/legacy/v1/duc/duc-block.d.ts +34 -0
  482. package/dist/legacy/v1/duc/duc-block.js +110 -0
  483. package/dist/legacy/v1/duc/duc-element.d.ts +273 -0
  484. package/dist/legacy/v1/duc/duc-element.js +865 -0
  485. package/dist/legacy/v1/duc/duc-group.d.ts +40 -0
  486. package/dist/legacy/v1/duc/duc-group.js +114 -0
  487. package/dist/legacy/v1/duc/duc-line-reference.d.ts +15 -0
  488. package/dist/legacy/v1/duc/duc-line-reference.js +43 -0
  489. package/dist/legacy/v1/duc/duc-line.d.ts +15 -0
  490. package/dist/legacy/v1/duc/duc-line.js +43 -0
  491. package/dist/legacy/v1/duc/duc-path.d.ts +26 -0
  492. package/dist/legacy/v1/duc/duc-path.js +69 -0
  493. package/dist/legacy/v1/duc/duc-table-cell.d.ts +22 -0
  494. package/dist/legacy/v1/duc/duc-table-cell.js +57 -0
  495. package/dist/legacy/v1/duc/duc-table-column.d.ts +18 -0
  496. package/dist/legacy/v1/duc/duc-table-column.js +50 -0
  497. package/dist/legacy/v1/duc/duc-table-row.d.ts +18 -0
  498. package/dist/legacy/v1/duc/duc-table-row.js +50 -0
  499. package/dist/legacy/v1/duc/duc-table-style-props.d.ts +39 -0
  500. package/dist/legacy/v1/duc/duc-table-style-props.js +114 -0
  501. package/dist/legacy/v1/duc/duc-table-style.d.ts +14 -0
  502. package/dist/legacy/v1/duc/duc-table-style.js +41 -0
  503. package/dist/legacy/v1/duc/element-background.d.ts +14 -0
  504. package/dist/legacy/v1/duc/element-background.js +41 -0
  505. package/dist/legacy/v1/duc/element-content-base.d.ts +22 -0
  506. package/dist/legacy/v1/duc/element-content-base.js +64 -0
  507. package/dist/legacy/v1/duc/element-stroke.d.ts +23 -0
  508. package/dist/legacy/v1/duc/element-stroke.js +66 -0
  509. package/dist/legacy/v1/duc/exported-data-state.d.ts +51 -0
  510. package/dist/legacy/v1/duc/exported-data-state.js +155 -0
  511. package/dist/legacy/v1/duc/image-crop.d.ts +23 -0
  512. package/dist/legacy/v1/duc/image-crop.js +80 -0
  513. package/dist/legacy/v1/duc/linear-element-editor.d.ts +44 -0
  514. package/dist/legacy/v1/duc/linear-element-editor.js +119 -0
  515. package/dist/legacy/v1/duc/point-binding.d.ts +25 -0
  516. package/dist/legacy/v1/duc/point-binding.js +72 -0
  517. package/dist/legacy/v1/duc/point.d.ts +20 -0
  518. package/dist/legacy/v1/duc/point.js +63 -0
  519. package/dist/legacy/v1/duc/pointer-down-state.d.ts +32 -0
  520. package/dist/legacy/v1/duc/pointer-down-state.js +90 -0
  521. package/dist/legacy/v1/duc/renderer-state.d.ts +17 -0
  522. package/dist/legacy/v1/duc/renderer-state.js +54 -0
  523. package/dist/legacy/v1/duc/segment-midpoint-state.d.ts +18 -0
  524. package/dist/legacy/v1/duc/segment-midpoint-state.js +57 -0
  525. package/dist/legacy/v1/duc/simple-point.d.ts +15 -0
  526. package/dist/legacy/v1/duc/simple-point.js +48 -0
  527. package/dist/legacy/v1/duc/stroke-sides.d.ts +23 -0
  528. package/dist/legacy/v1/duc/stroke-sides.js +66 -0
  529. package/dist/legacy/v1/duc/stroke-style.d.ts +31 -0
  530. package/dist/legacy/v1/duc/stroke-style.js +102 -0
  531. package/dist/legacy/v1/duc/tiling-properties.d.ts +21 -0
  532. package/dist/legacy/v1/duc/tiling-properties.js +75 -0
  533. package/dist/legacy/v1/duc.d.ts +35 -0
  534. package/dist/legacy/v1/duc.js +37 -0
  535. package/dist/legacy/v1/index.d.ts +1 -0
  536. package/dist/legacy/v1/index.js +1 -0
  537. package/dist/legacy/v1/parse/index.d.ts +67 -0
  538. package/dist/legacy/v1/parse/index.js +101 -0
  539. package/dist/legacy/v1/parse/parseAppStateFromBinary.d.ts +3 -0
  540. package/dist/legacy/v1/parse/parseAppStateFromBinary.js +139 -0
  541. package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.d.ts +4 -0
  542. package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.js +32 -0
  543. package/dist/legacy/v1/parse/parseBlockFromBinary.d.ts +3 -0
  544. package/dist/legacy/v1/parse/parseBlockFromBinary.js +70 -0
  545. package/dist/legacy/v1/parse/parseElementFromBinary.d.ts +8 -0
  546. package/dist/legacy/v1/parse/parseElementFromBinary.js +387 -0
  547. package/dist/legacy/v1/parse/parseGroupFromBinary.d.ts +4 -0
  548. package/dist/legacy/v1/parse/parseGroupFromBinary.js +36 -0
  549. package/dist/legacy/v1/parse/parseRendererStateFromBinary.d.ts +4 -0
  550. package/dist/legacy/v1/parse/parseRendererStateFromBinary.js +15 -0
  551. package/dist/legacy/v1/serialize/index.d.ts +5 -0
  552. package/dist/legacy/v1/serialize/index.js +81 -0
  553. package/dist/legacy/v1/serialize/serializationUtils.d.ts +17 -0
  554. package/dist/legacy/v1/serialize/serializationUtils.js +27 -0
  555. package/dist/legacy/v1/serialize/serializeAppStateFromDuc.d.ts +4 -0
  556. package/dist/legacy/v1/serialize/serializeAppStateFromDuc.js +145 -0
  557. package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.d.ts +4 -0
  558. package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.js +46 -0
  559. package/dist/legacy/v1/serialize/serializeBlockFromDuc.d.ts +3 -0
  560. package/dist/legacy/v1/serialize/serializeBlockFromDuc.js +60 -0
  561. package/dist/legacy/v1/serialize/serializeElementFromDuc.d.ts +8 -0
  562. package/dist/legacy/v1/serialize/serializeElementFromDuc.js +435 -0
  563. package/dist/legacy/v1/serialize/serializeGroupFromDuc.d.ts +3 -0
  564. package/dist/legacy/v1/serialize/serializeGroupFromDuc.js +37 -0
  565. package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.d.ts +4 -0
  566. package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.js +7 -0
  567. package/dist/legacy/v1/types/elements/index.d.ts +480 -0
  568. package/dist/legacy/v1/types/elements/index.js +1 -0
  569. package/dist/legacy/v1/types/elements/typeChecks.d.ts +40 -0
  570. package/dist/legacy/v1/types/elements/typeChecks.js +179 -0
  571. package/dist/legacy/v1/types/geometryTypes.d.ts +78 -0
  572. package/dist/legacy/v1/types/geometryTypes.js +1 -0
  573. package/dist/legacy/v1/types/index.d.ts +496 -0
  574. package/dist/legacy/v1/types/index.js +1 -0
  575. package/dist/legacy/v1/types/utility-types.d.ts +31 -0
  576. package/dist/legacy/v1/types/utility-types.js +1 -0
  577. package/dist/legacy/v1/utils/bounds.d.ts +76 -0
  578. package/dist/legacy/v1/utils/bounds.js +415 -0
  579. package/dist/legacy/v1/utils/constants.d.ts +370 -0
  580. package/dist/legacy/v1/utils/constants.js +571 -0
  581. package/dist/legacy/v1/utils/elements/index.d.ts +26 -0
  582. package/dist/legacy/v1/utils/elements/index.js +108 -0
  583. package/dist/legacy/v1/utils/elements/linearElement.d.ts +133 -0
  584. package/dist/legacy/v1/utils/elements/linearElement.js +544 -0
  585. package/dist/legacy/v1/utils/elements/textElement.d.ts +89 -0
  586. package/dist/legacy/v1/utils/elements/textElement.js +563 -0
  587. package/dist/legacy/v1/utils/index.d.ts +26 -0
  588. package/dist/legacy/v1/utils/index.js +40 -0
  589. package/dist/legacy/v1/utils/math/algebra/ga.d.ts +63 -0
  590. package/dist/legacy/v1/utils/math/algebra/ga.js +268 -0
  591. package/dist/legacy/v1/utils/math/algebra/gadirections.d.ts +9 -0
  592. package/dist/legacy/v1/utils/math/algebra/gadirections.js +18 -0
  593. package/dist/legacy/v1/utils/math/algebra/galines.d.ts +23 -0
  594. package/dist/legacy/v1/utils/math/algebra/galines.js +32 -0
  595. package/dist/legacy/v1/utils/math/algebra/gapoints.d.ts +8 -0
  596. package/dist/legacy/v1/utils/math/algebra/gapoints.js +30 -0
  597. package/dist/legacy/v1/utils/math/algebra/gatransforms.d.ts +10 -0
  598. package/dist/legacy/v1/utils/math/algebra/gatransforms.js +23 -0
  599. package/dist/legacy/v1/utils/math/bbox.d.ts +10 -0
  600. package/dist/legacy/v1/utils/math/bbox.js +42 -0
  601. package/dist/legacy/v1/utils/math/geometry.d.ts +102 -0
  602. package/dist/legacy/v1/utils/math/geometry.js +790 -0
  603. package/dist/legacy/v1/utils/math/index.d.ts +309 -0
  604. package/dist/legacy/v1/utils/math/index.js +1140 -0
  605. package/dist/legacy/v1/utils/math/random.d.ts +4 -0
  606. package/dist/legacy/v1/utils/math/random.js +25 -0
  607. package/dist/legacy/v1/utils/measurements.d.ts +33 -0
  608. package/dist/legacy/v1/utils/measurements.js +65 -0
  609. package/dist/legacy/v1/utils/normalize.d.ts +14 -0
  610. package/dist/legacy/v1/utils/normalize.js +49 -0
  611. package/dist/legacy/v1/utils/restore.d.ts +197 -0
  612. package/dist/legacy/v1/utils/restore.js +1255 -0
  613. package/dist/legacy/v1/utils/scopes.d.ts +260 -0
  614. package/dist/legacy/v1/utils/scopes.js +661 -0
  615. package/dist/legacy/v1/utils/standards.d.ts +12 -0
  616. package/dist/legacy/v1/utils/standards.js +10 -0
  617. package/dist/legacy/v1/utils/state/index.d.ts +2 -0
  618. package/dist/legacy/v1/utils/state/index.js +68 -0
  619. package/dist/legacy/v1/utils/url.d.ts +8 -0
  620. package/dist/legacy/v1/utils/url.js +33 -0
  621. package/dist/parse.d.ts +54 -0
  622. package/dist/parse.js +1318 -0
  623. package/dist/restore/index.d.ts +3 -0
  624. package/dist/restore/index.js +3 -0
  625. package/dist/restore/restoreDataState.d.ts +191 -0
  626. package/dist/restore/restoreDataState.js +716 -0
  627. package/dist/restore/restoreElements.d.ts +34 -0
  628. package/dist/restore/restoreElements.js +1281 -0
  629. package/dist/restore/restoreStandards.d.ts +8 -0
  630. package/dist/restore/restoreStandards.js +224 -0
  631. package/dist/serialize.d.ts +3 -0
  632. package/dist/serialize.js +2465 -0
  633. package/dist/technical/index.d.ts +3 -0
  634. package/dist/technical/index.js +3 -0
  635. package/dist/technical/measurements.d.ts +31 -0
  636. package/dist/technical/measurements.js +64 -0
  637. package/dist/technical/scopes.d.ts +261 -0
  638. package/dist/technical/scopes.js +661 -0
  639. package/dist/technical/standards.d.ts +124 -0
  640. package/dist/technical/standards.js +10 -0
  641. package/dist/types/elements/index.d.ts +1356 -0
  642. package/dist/types/elements/index.js +1 -0
  643. package/dist/types/elements/typeChecks.d.ts +40 -0
  644. package/dist/types/elements/typeChecks.js +188 -0
  645. package/dist/types/geometryTypes.d.ts +90 -0
  646. package/dist/types/geometryTypes.js +1 -0
  647. package/dist/types/index.d.ts +591 -0
  648. package/dist/types/index.js +3 -0
  649. package/dist/types/utility-types.d.ts +31 -0
  650. package/dist/types/utility-types.js +1 -0
  651. package/dist/utils/bounds.d.ts +75 -0
  652. package/dist/utils/bounds.js +414 -0
  653. package/dist/utils/constants.d.ts +288 -0
  654. package/dist/utils/constants.js +529 -0
  655. package/dist/utils/elements/frameElement.d.ts +4 -0
  656. package/dist/utils/elements/frameElement.js +16 -0
  657. package/dist/utils/elements/freedrawElement.d.ts +2 -0
  658. package/dist/utils/elements/freedrawElement.js +46 -0
  659. package/dist/utils/elements/index.d.ts +51 -0
  660. package/dist/utils/elements/index.js +215 -0
  661. package/dist/utils/elements/linearElement.d.ts +53 -0
  662. package/dist/utils/elements/linearElement.js +539 -0
  663. package/dist/utils/elements/newElement.d.ts +72 -0
  664. package/dist/utils/elements/newElement.js +268 -0
  665. package/dist/utils/elements/textElement.d.ts +89 -0
  666. package/dist/utils/elements/textElement.js +565 -0
  667. package/dist/utils/elements/viewportElement.d.ts +6 -0
  668. package/dist/utils/elements/viewportElement.js +9 -0
  669. package/dist/utils/filebyte.d.ts +39 -0
  670. package/dist/utils/filebyte.js +117 -0
  671. package/dist/utils/functionCodec.d.ts +5 -0
  672. package/dist/utils/functionCodec.js +86 -0
  673. package/dist/utils/index.d.ts +32 -0
  674. package/dist/utils/index.js +53 -0
  675. package/dist/utils/math/algebra/ga.d.ts +63 -0
  676. package/dist/utils/math/algebra/ga.js +268 -0
  677. package/dist/utils/math/algebra/gadirections.d.ts +9 -0
  678. package/dist/utils/math/algebra/gadirections.js +18 -0
  679. package/dist/utils/math/algebra/galines.d.ts +23 -0
  680. package/dist/utils/math/algebra/galines.js +32 -0
  681. package/dist/utils/math/algebra/gapoints.d.ts +8 -0
  682. package/dist/utils/math/algebra/gapoints.js +30 -0
  683. package/dist/utils/math/algebra/gatransforms.d.ts +10 -0
  684. package/dist/utils/math/algebra/gatransforms.js +23 -0
  685. package/dist/utils/math/algebra/index.d.ts +5 -0
  686. package/dist/utils/math/algebra/index.js +5 -0
  687. package/dist/utils/math/bbox.d.ts +10 -0
  688. package/dist/utils/math/bbox.js +42 -0
  689. package/dist/utils/math/geometry.d.ts +102 -0
  690. package/dist/utils/math/geometry.js +790 -0
  691. package/dist/utils/math/index.d.ts +323 -0
  692. package/dist/utils/math/index.js +1188 -0
  693. package/dist/utils/math/random.d.ts +4 -0
  694. package/dist/utils/math/random.js +25 -0
  695. package/dist/utils/normalize.d.ts +14 -0
  696. package/dist/utils/normalize.js +49 -0
  697. package/dist/utils/shape.d.ts +15 -0
  698. package/dist/utils/shape.js +254 -0
  699. package/dist/utils/state/grid.d.ts +7 -0
  700. package/dist/utils/state/grid.js +25 -0
  701. package/dist/utils/state/index.d.ts +9 -0
  702. package/dist/utils/state/index.js +131 -0
  703. package/dist/utils/url.d.ts +8 -0
  704. package/dist/utils/url.js +33 -0
  705. package/dist/utils/version.d.ts +1 -0
  706. package/dist/utils/version.js +1 -0
  707. package/package.json +79 -0
@@ -0,0 +1,539 @@
1
+ import { getPrecisionValueFromRaw, getPrecisionValueFromScoped, getScopedBezierPointFromDucPoint } from "ducjs/technical/scopes";
2
+ import { getBoundTextElement, getElementAbsoluteCoords, getElementPointsCoords } from "ducjs/utils/bounds";
3
+ import { LINE_CONFIRM_THRESHOLD } from "ducjs/utils/constants";
4
+ import { centerPoint, getBezierXY, getControlPointsForBezierCurve, getCubicBezierBoundingBox, getQuadraticBezierBoundingBox, mapIntervalToBezierT, rotate, rotatePoint } from "ducjs/utils/math";
5
+ /**
6
+ * Merges overlapping points using the line-based system
7
+ * Returns updated points and lines arrays
8
+ */
9
+ export const mergeOverlappingPoints = (points, lines, threshold = LINE_CONFIRM_THRESHOLD) => {
10
+ // Create copies to avoid mutating originals
11
+ const pointsCopy = structuredClone(points);
12
+ const linesCopy = structuredClone(lines);
13
+ // Step 1: Find overlapping points
14
+ const overlaps = findOverlappingPointGroups(pointsCopy, threshold);
15
+ // Process each group of overlapping points
16
+ const allPointsToRemove = [];
17
+ const newLinesToAdd = [];
18
+ for (const overlapGroup of overlaps) {
19
+ if (overlapGroup.length > 1) {
20
+ // Step 2: Choose target point (lowest index)
21
+ const targetIndex = Math.min(...overlapGroup);
22
+ const pointsToRemove = overlapGroup.filter(idx => idx !== targetIndex);
23
+ // Step 3: Create new lines to preserve connectivity before updating references
24
+ const newLines = createNewLinesForMergedPoints(linesCopy, pointsToRemove, targetIndex);
25
+ newLinesToAdd.push(...newLines);
26
+ // Step 4: Update all line references to point to target
27
+ updateLineReferences(linesCopy, pointsToRemove, targetIndex);
28
+ // Step 5: Merge any bezier properties if needed
29
+ mergeBezierProperties(pointsCopy, targetIndex, pointsToRemove);
30
+ // Collect points to remove
31
+ allPointsToRemove.push(...pointsToRemove);
32
+ }
33
+ }
34
+ // Add new lines to preserve connectivity
35
+ linesCopy.push(...newLinesToAdd);
36
+ // Step 6: Remove duplicate points and update all indices
37
+ if (allPointsToRemove.length > 0) {
38
+ const { updatedPoints, updatedLines } = removePointsAndUpdateIndices(pointsCopy, linesCopy, allPointsToRemove);
39
+ // Step 7: Remove duplicate lines (keep only the one with the lowest index)
40
+ const finalLines = removeDuplicateLines(updatedLines);
41
+ return { points: updatedPoints, lines: finalLines };
42
+ }
43
+ return { points: pointsCopy, lines: linesCopy };
44
+ };
45
+ const findOverlappingPointGroups = (points, threshold) => {
46
+ const groups = {};
47
+ points.forEach((point, index) => {
48
+ // Create a key based on rounded coordinates for threshold-based grouping
49
+ const roundedX = Math.round(point.x.value / threshold) * threshold;
50
+ const roundedY = Math.round(point.y.value / threshold) * threshold;
51
+ const key = `${roundedX},${roundedY}`;
52
+ if (!groups[key]) {
53
+ groups[key] = [];
54
+ }
55
+ groups[key].push(index);
56
+ });
57
+ return Object.values(groups).filter(group => group.length > 1);
58
+ };
59
+ const updateLineReferences = (lines, pointsToRemove, targetIndex) => {
60
+ lines.forEach(line => {
61
+ // Update first point reference
62
+ if (pointsToRemove.includes(line[0].index)) {
63
+ line[0].index = targetIndex;
64
+ }
65
+ // Update second point reference
66
+ if (pointsToRemove.includes(line[1].index)) {
67
+ line[1].index = targetIndex;
68
+ }
69
+ });
70
+ // Remove lines that now connect a point to itself (self-loops)
71
+ const linesToRemove = [];
72
+ lines.forEach((line, index) => {
73
+ if (line[0].index === line[1].index) {
74
+ linesToRemove.push(index);
75
+ }
76
+ });
77
+ // Remove self-loop lines in reverse order
78
+ linesToRemove.reverse().forEach(index => {
79
+ lines.splice(index, 1);
80
+ });
81
+ };
82
+ const mergeBezierProperties = (points, targetIndex, pointsToRemove) => {
83
+ // If target doesn't have mirroring but a removed point does, inherit it
84
+ if (!points[targetIndex].mirroring) {
85
+ for (const removeIndex of pointsToRemove) {
86
+ if (points[removeIndex].mirroring) {
87
+ points[targetIndex].mirroring = points[removeIndex].mirroring;
88
+ break; // Take the first one found
89
+ }
90
+ }
91
+ }
92
+ };
93
+ const removePointsAndUpdateIndices = (points, lines, indicesToRemove) => {
94
+ const uniqueIndicesToRemove = Array.from(new Set(indicesToRemove));
95
+ const indexMap = createIndexMapping(points.length, uniqueIndicesToRemove);
96
+ const updatedPoints = points.filter((_, index) => !uniqueIndicesToRemove.includes(index));
97
+ const updatedLines = [];
98
+ for (const line of lines) {
99
+ const p1Index = indexMap[line[0].index];
100
+ const p2Index = indexMap[line[1].index];
101
+ if (p1Index !== -1 && p2Index !== -1) {
102
+ updatedLines.push([
103
+ Object.assign(Object.assign({}, line[0]), { index: p1Index }),
104
+ Object.assign(Object.assign({}, line[1]), { index: p2Index })
105
+ ]);
106
+ }
107
+ }
108
+ return { updatedPoints, updatedLines };
109
+ };
110
+ const createIndexMapping = (originalLength, removedIndices) => {
111
+ const indexMap = [];
112
+ let offset = 0;
113
+ for (let i = 0; i < originalLength; i++) {
114
+ if (removedIndices.includes(i)) {
115
+ offset++;
116
+ indexMap[i] = -1; // Mark as removed
117
+ }
118
+ else {
119
+ indexMap[i] = i - offset;
120
+ }
121
+ }
122
+ return indexMap;
123
+ };
124
+ /**
125
+ * Creates new lines to preserve connectivity when points are merged
126
+ * This ensures that connections involving the removed points are maintained
127
+ */
128
+ /**
129
+ * Creates new lines to preserve connectivity when points are merged
130
+ * This ensures that connections involving the removed points are maintained
131
+ */
132
+ const createNewLinesForMergedPoints = (lines, pointsToRemove, targetIndex) => {
133
+ const newLines = [];
134
+ const connectionsToPreserve = new Set();
135
+ // Find all unique connections that involve points being removed
136
+ lines.forEach(line => {
137
+ const point1 = line[0].index;
138
+ const point2 = line[1].index;
139
+ // If either point is being removed, we need to check if we need new connections
140
+ if (pointsToRemove.includes(point1) || pointsToRemove.includes(point2)) {
141
+ // Determine what the connection will become after merge
142
+ const newPoint1 = pointsToRemove.includes(point1) ? targetIndex : point1;
143
+ const newPoint2 = pointsToRemove.includes(point2) ? targetIndex : point2;
144
+ // Skip self-loops
145
+ if (newPoint1 !== newPoint2) {
146
+ // Create normalized connection key to avoid duplicates
147
+ const connectionKey = [Math.min(newPoint1, newPoint2), Math.max(newPoint1, newPoint2)].join('-');
148
+ // If this is a new connection we haven't seen before
149
+ if (!connectionsToPreserve.has(connectionKey)) {
150
+ connectionsToPreserve.add(connectionKey);
151
+ // Check if this connection already exists in the original lines
152
+ const connectionExists = lines.some(existingLine => {
153
+ const ep1 = existingLine[0].index;
154
+ const ep2 = existingLine[1].index;
155
+ return (ep1 === newPoint1 && ep2 === newPoint2) ||
156
+ (ep1 === newPoint2 && ep2 === newPoint1);
157
+ });
158
+ // Only create new line if the connection doesn't already exist
159
+ if (!connectionExists) {
160
+ newLines.push([
161
+ { index: newPoint1, handle: line[0].index === point1 ? line[0].handle : null },
162
+ { index: newPoint2, handle: line[1].index === point2 ? line[1].handle : null }
163
+ ]);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ });
169
+ return newLines;
170
+ };
171
+ /**
172
+ * Removes duplicate lines, keeping only the one with the lowest index
173
+ * Two lines are considered duplicates if they connect the same points (regardless of direction)
174
+ */
175
+ const removeDuplicateLines = (lines) => {
176
+ const seenConnections = new Map();
177
+ const linesToKeep = [];
178
+ lines.forEach((line, index) => {
179
+ // Create a normalized key for the connection (sorted indices to handle bidirectional duplicates)
180
+ const point1 = line[0].index;
181
+ const point2 = line[1].index;
182
+ const connectionKey = [Math.min(point1, point2), Math.max(point1, point2)].join('-');
183
+ if (!seenConnections.has(connectionKey)) {
184
+ // First time seeing this connection, keep it
185
+ seenConnections.set(connectionKey, index);
186
+ linesToKeep.push(line);
187
+ }
188
+ // If we've seen this connection before, we skip it (removing the duplicate with higher index)
189
+ });
190
+ return linesToKeep;
191
+ };
192
+ /**
193
+ * Normalizes line points so that the start point is at [0,0]. This is
194
+ * expected in various parts of the codebase. Also returns new x/y to account
195
+ * for the potential normalization.
196
+ */
197
+ export const getNormalizedPoints = (element, currentScope) => {
198
+ const { points, x, y, lines } = element;
199
+ if (points.length === 0) {
200
+ // Handle empty points array: return element's current x/y and empty normalized points
201
+ return {
202
+ points: [],
203
+ x: getPrecisionValueFromRaw(x.value, element.scope, currentScope),
204
+ y: getPrecisionValueFromRaw(y.value, element.scope, currentScope),
205
+ lines: lines || [],
206
+ };
207
+ }
208
+ const offsetX = points[0].x.value;
209
+ const offsetY = points[0].y.value;
210
+ const normalizedPoints = points.map((point) => {
211
+ return Object.assign(Object.assign({}, point), { x: getPrecisionValueFromRaw((point.x.value - offsetX), element.scope, currentScope), y: getPrecisionValueFromRaw((point.y.value - offsetY), element.scope, currentScope) });
212
+ });
213
+ const normalizedLines = (lines || []).map((line) => {
214
+ const [start, end] = line;
215
+ return [
216
+ Object.assign(Object.assign({}, start), { handle: start.handle
217
+ ? {
218
+ x: getPrecisionValueFromRaw((start.handle.x.value - offsetX), element.scope, currentScope),
219
+ y: getPrecisionValueFromRaw((start.handle.y.value - offsetY), element.scope, currentScope),
220
+ }
221
+ : null }),
222
+ Object.assign(Object.assign({}, end), { handle: end.handle
223
+ ? {
224
+ x: getPrecisionValueFromRaw((end.handle.x.value - offsetX), element.scope, currentScope),
225
+ y: getPrecisionValueFromRaw((end.handle.y.value - offsetY), element.scope, currentScope),
226
+ }
227
+ : null }),
228
+ ];
229
+ });
230
+ return {
231
+ points: normalizedPoints,
232
+ lines: normalizedLines,
233
+ x: getPrecisionValueFromRaw((x.value + offsetX), element.scope, currentScope),
234
+ y: getPrecisionValueFromRaw((y.value + offsetY), element.scope, currentScope),
235
+ };
236
+ };
237
+ /** scene coords */
238
+ export const getPointsGlobalCoordinates = (element, elementsMap, currentScope) => {
239
+ const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap, currentScope);
240
+ const cx = (x1 + x2) / 2;
241
+ const cy = (y1 + y2) / 2;
242
+ return element.points.map((point) => {
243
+ let { x, y } = element;
244
+ // FIXME: We need to handle the element.lines handles here
245
+ // let handleIn = point.handleIn
246
+ // let handleOut = point.handleOut
247
+ const rotatePoint = rotate(x.scoped + point.x.scoped, y.scoped + point.y.scoped, cx, cy, element.angle);
248
+ // if (point.isCurve) {
249
+ // if(handleIn)
250
+ // handleIn = rotate(x + handleIn.x, y + handleIn.y, cx, cy, element.angle);
251
+ // if(handleOut)
252
+ // handleOut = rotate(x + handleOut.x, y + handleOut.y, cx, cy, element.angle);
253
+ // }
254
+ x = getPrecisionValueFromScoped(rotatePoint.x, element.scope, currentScope);
255
+ y = getPrecisionValueFromScoped(rotatePoint.y, element.scope, currentScope);
256
+ return Object.assign(Object.assign({}, point), { x, y });
257
+ });
258
+ };
259
+ /** scene coords */
260
+ export const getPointGlobalCoordinates = (element, point, elementsMap, currentScope) => {
261
+ const [x1_sv, y1_sv, x2_sv, y2_sv] = getElementAbsoluteCoords(element, elementsMap, currentScope);
262
+ const cx = (x1_sv + x2_sv) / 2;
263
+ const cy = (y1_sv + y2_sv) / 2;
264
+ let elementX = element.x.scoped;
265
+ let elementY = element.y.scoped;
266
+ const rotatedPoint = rotate(elementX + point.x, elementY + point.y, cx, cy, element.angle);
267
+ return { x: rotatedPoint.x, y: rotatedPoint.y };
268
+ };
269
+ export const getBoundTextElementPosition = (element, boundTextElement, elementsMap, currentScope) => {
270
+ const points = getPointsGlobalCoordinates(element, elementsMap, currentScope);
271
+ if (points.length < 2) {
272
+ return null;
273
+ }
274
+ let x = 0;
275
+ let y = 0;
276
+ if (element.points.length % 2 === 1) {
277
+ const index = Math.floor(element.points.length / 2);
278
+ const midPoint = getPointGlobalCoordinates(element, getScopedBezierPointFromDucPoint(element.points[index]), elementsMap, currentScope);
279
+ x = midPoint.x - boundTextElement.width.scoped / 2;
280
+ y = midPoint.y - boundTextElement.height.scoped / 2;
281
+ }
282
+ else {
283
+ const index = element.points.length / 2 - 1;
284
+ let midSegmentMidpoint = null;
285
+ if (element.points.length === 2) {
286
+ midSegmentMidpoint = centerPoint({ x: points[0].x.scoped, y: points[0].y.scoped }, { x: points[1].x.scoped, y: points[1].y.scoped });
287
+ }
288
+ else {
289
+ midSegmentMidpoint = getSegmentMidPoint(element, getScopedBezierPointFromDucPoint(points[index]), getScopedBezierPointFromDucPoint(points[index + 1]), index + 1, elementsMap, currentScope);
290
+ }
291
+ if (midSegmentMidpoint) {
292
+ x = midSegmentMidpoint.x - boundTextElement.width.scoped / 2;
293
+ y = midSegmentMidpoint.y - boundTextElement.height.scoped / 2;
294
+ }
295
+ }
296
+ return { x, y };
297
+ };
298
+ export const getLinearElementAbsoluteCoords = (element, elementsMap, includeBoundText = false, currentScope, returnUnrotatedBoundsOnly = true) => {
299
+ const { points, lines, angle, x: elX, y: elY } = element;
300
+ // Get unrotated bounding box to determine the center of rotation
301
+ const [unrotatedX1, unrotatedY1, unrotatedX2, unrotatedY2] = getElementPointsCoords(element, points);
302
+ const cx = ((unrotatedX1 + unrotatedX2) / 2);
303
+ const cy = ((unrotatedY1 + unrotatedY2) / 2);
304
+ let coords;
305
+ if (!returnUnrotatedBoundsOnly && angle !== 0) {
306
+ let minX = Infinity;
307
+ let minY = Infinity;
308
+ let maxX = -Infinity;
309
+ let maxY = -Infinity;
310
+ if (lines && lines.length > 0) {
311
+ for (const line of lines) {
312
+ const startPoint = points[line[0].index];
313
+ const endPoint = points[line[1].index];
314
+ if (!startPoint || !endPoint) {
315
+ continue;
316
+ }
317
+ const absoluteStartPoint = {
318
+ x: elX.scoped + startPoint.x.scoped,
319
+ y: elY.scoped + startPoint.y.scoped,
320
+ };
321
+ const absoluteEndPoint = {
322
+ x: elX.scoped + endPoint.x.scoped,
323
+ y: elY.scoped + endPoint.y.scoped,
324
+ };
325
+ const startHandle = line[0].handle;
326
+ const endHandle = line[1].handle;
327
+ if (startHandle && endHandle) {
328
+ const absoluteStartHandle = {
329
+ x: elX.scoped + startHandle.x.scoped,
330
+ y: elY.scoped + startHandle.y.scoped,
331
+ };
332
+ const absoluteEndHandle = {
333
+ x: elX.scoped + endHandle.x.scoped,
334
+ y: elY.scoped + endHandle.y.scoped,
335
+ };
336
+ const p0 = rotate(absoluteStartPoint.x, absoluteStartPoint.y, cx, cy, angle);
337
+ const p1 = rotate(absoluteStartHandle.x, absoluteStartHandle.y, cx, cy, angle);
338
+ const p2 = rotate(absoluteEndHandle.x, absoluteEndHandle.y, cx, cy, angle);
339
+ const p3 = rotate(absoluteEndPoint.x, absoluteEndPoint.y, cx, cy, angle);
340
+ const bbox = getCubicBezierBoundingBox(p0, p1, p2, p3);
341
+ minX = Math.min(minX, bbox.minX);
342
+ minY = Math.min(minY, bbox.minY);
343
+ maxX = Math.max(maxX, bbox.maxX);
344
+ maxY = Math.max(maxY, bbox.maxY);
345
+ }
346
+ else if (startHandle || endHandle) {
347
+ const controlHandle = startHandle || endHandle;
348
+ const absoluteControlHandle = {
349
+ x: elX.scoped + controlHandle.x.scoped,
350
+ y: elY.scoped + controlHandle.y.scoped,
351
+ };
352
+ const p0 = rotate(absoluteStartPoint.x, absoluteStartPoint.y, cx, cy, angle);
353
+ const p1 = rotate(absoluteControlHandle.x, absoluteControlHandle.y, cx, cy, angle);
354
+ const p2 = rotate(absoluteEndPoint.x, absoluteEndPoint.y, cx, cy, angle);
355
+ const bbox = getQuadraticBezierBoundingBox(p0, p1, p2);
356
+ minX = Math.min(minX, bbox.minX);
357
+ minY = Math.min(minY, bbox.minY);
358
+ maxX = Math.max(maxX, bbox.maxX);
359
+ maxY = Math.max(maxY, bbox.maxY);
360
+ }
361
+ else {
362
+ const p0 = rotate(absoluteStartPoint.x, absoluteStartPoint.y, cx, cy, angle);
363
+ const p1 = rotate(absoluteEndPoint.x, absoluteEndPoint.y, cx, cy, angle);
364
+ minX = Math.min(minX, p0.x, p1.x);
365
+ minY = Math.min(minY, p0.y, p1.y);
366
+ maxX = Math.max(maxX, p0.x, p1.x);
367
+ maxY = Math.max(maxY, p0.y, p1.y);
368
+ }
369
+ }
370
+ }
371
+ else {
372
+ // Fallback for elements without lines
373
+ for (let i = 0; i < points.length - 1; i++) {
374
+ const p0 = rotate(elX.scoped + points[i].x.scoped, elY.scoped + points[i].y.scoped, cx, cy, angle);
375
+ const p1 = rotate(elX.scoped + points[i + 1].x.scoped, elY.scoped + points[i + 1].y.scoped, cx, cy, angle);
376
+ minX = Math.min(minX, p0.x, p1.x);
377
+ minY = Math.min(minY, p0.y, p1.y);
378
+ maxX = Math.max(maxX, p0.x, p1.x);
379
+ maxY = Math.max(maxY, p0.y, p1.y);
380
+ }
381
+ }
382
+ coords = [
383
+ minX,
384
+ minY,
385
+ maxX,
386
+ maxY,
387
+ ((minX + maxX) / 2),
388
+ ((minY + maxY) / 2),
389
+ ];
390
+ }
391
+ else {
392
+ coords = [unrotatedX1, unrotatedY1, unrotatedX2, unrotatedY2, cx, cy];
393
+ }
394
+ if (includeBoundText) {
395
+ const boundTextElement = getBoundTextElement(element, elementsMap);
396
+ if (boundTextElement) {
397
+ coords = getMinMaxXYWithBoundText(element, elementsMap, [coords[0], coords[1], coords[2], coords[3]], boundTextElement, currentScope);
398
+ }
399
+ }
400
+ return coords;
401
+ };
402
+ export const getMinMaxXYWithBoundText = (element, elementsMap, elementBounds, boundTextElement, currentScope) => {
403
+ let [x1, y1, x2, y2] = elementBounds;
404
+ const cx = (x1 + x2) / 2;
405
+ const cy = (y1 + y2) / 2;
406
+ const boundTextCoords = getBoundTextElementPosition(element, boundTextElement, elementsMap, currentScope);
407
+ if (boundTextCoords === null) {
408
+ return [x1, y1, x2, y2, cx, cy];
409
+ }
410
+ const { x: boundTextX1, y: boundTextY1 } = boundTextCoords;
411
+ const boundTextX2 = boundTextX1 + boundTextElement.width.scoped;
412
+ const boundTextY2 = boundTextY1 + boundTextElement.height.scoped;
413
+ const topLeftRotatedPoint = rotatePoint({ x: x1, y: y1 }, { x: cx, y: cy }, element.angle);
414
+ const topRightRotatedPoint = rotatePoint({ x: x2, y: y1 }, { x: cx, y: cy }, element.angle);
415
+ const counterRotateBoundTextTopLeft = rotatePoint({ x: boundTextX1, y: boundTextY1 }, { x: cx, y: cy }, -element.angle);
416
+ const counterRotateBoundTextTopRight = rotatePoint({ x: boundTextX2, y: boundTextY1 }, { x: cx, y: cy }, -element.angle);
417
+ const counterRotateBoundTextBottomLeft = rotatePoint({ x: boundTextX1, y: boundTextY2 }, { x: cx, y: cy }, -element.angle);
418
+ const counterRotateBoundTextBottomRight = rotatePoint({ x: boundTextX2, y: boundTextY2 }, { x: cx, y: cy }, -element.angle);
419
+ if (topLeftRotatedPoint.x < topRightRotatedPoint.x &&
420
+ topLeftRotatedPoint.y >= topRightRotatedPoint.y) {
421
+ x1 = Math.min(x1, counterRotateBoundTextBottomLeft.x);
422
+ x2 = Math.max(x2, Math.max(counterRotateBoundTextTopRight.x, counterRotateBoundTextBottomRight.x));
423
+ y1 = Math.min(y1, counterRotateBoundTextTopLeft.y);
424
+ y2 = Math.max(y2, counterRotateBoundTextBottomRight.y);
425
+ }
426
+ else if (topLeftRotatedPoint.x >= topRightRotatedPoint.x &&
427
+ topLeftRotatedPoint.y > topRightRotatedPoint.y) {
428
+ x1 = Math.min(x1, counterRotateBoundTextBottomRight.x);
429
+ x2 = Math.max(x2, Math.max(counterRotateBoundTextTopLeft.x, counterRotateBoundTextTopRight.x));
430
+ y1 = Math.min(y1, counterRotateBoundTextBottomLeft.y);
431
+ y2 = Math.max(y2, counterRotateBoundTextTopRight.y);
432
+ }
433
+ else if (topLeftRotatedPoint.x >= topRightRotatedPoint.x) {
434
+ x1 = Math.min(x1, counterRotateBoundTextTopRight.x);
435
+ x2 = Math.max(x2, counterRotateBoundTextBottomLeft.x);
436
+ y1 = Math.min(y1, counterRotateBoundTextBottomRight.y);
437
+ y2 = Math.max(y2, counterRotateBoundTextTopLeft.y);
438
+ }
439
+ else if (topLeftRotatedPoint.y <= topRightRotatedPoint.y) {
440
+ x1 = Math.min(x1, Math.min(counterRotateBoundTextTopRight.x, counterRotateBoundTextTopLeft.x));
441
+ x2 = Math.max(x2, counterRotateBoundTextBottomRight.x);
442
+ y1 = Math.min(y1, counterRotateBoundTextTopRight.y);
443
+ y2 = Math.max(y2, counterRotateBoundTextBottomLeft.y);
444
+ }
445
+ return [x1, y1, x2, y2, cx, cy];
446
+ };
447
+ export const getSegmentMidPoint = (element, startPoint, endPoint, endPointIndex, elementsMap, currentScope) => {
448
+ let segmentMidPoint = centerPoint(startPoint, endPoint);
449
+ if (element.points.length > 2 && element.roundness) {
450
+ const controlPoints = getControlPointsForBezierCurve(element, getScopedBezierPointFromDucPoint(element.points[endPointIndex]));
451
+ if (controlPoints) {
452
+ const t = mapIntervalToBezierT(element, getScopedBezierPointFromDucPoint(element.points[endPointIndex]), 0.5);
453
+ const { x: tx, y: ty } = getBezierXY(controlPoints[0], controlPoints[1], controlPoints[2], controlPoints[3], t);
454
+ segmentMidPoint = getPointGlobalCoordinates(element, { x: tx, y: ty }, elementsMap, currentScope);
455
+ }
456
+ }
457
+ return segmentMidPoint;
458
+ };
459
+ /**
460
+ * Validates if the given line indices form a closed path in the element
461
+ * @param element The linear element containing the points and lines
462
+ * @param lineIndices Array of line indices to check
463
+ * @returns true if the line indices form a valid closed path, false otherwise
464
+ */
465
+ export const validateClosedPath = (element, lineIndices) => {
466
+ if (!lineIndices || lineIndices.length < 3) {
467
+ // Need at least 3 lines to form a closed path
468
+ return false;
469
+ }
470
+ // Check if all line indices are valid
471
+ const invalidIndices = lineIndices.filter(index => index < 0 || index >= element.lines.length);
472
+ if (invalidIndices.length > 0) {
473
+ return false;
474
+ }
475
+ // Get the actual lines
476
+ const pathLines = lineIndices.map(index => element.lines[index]);
477
+ // Build adjacency map for the path lines only
478
+ const adjacency = new Map();
479
+ for (const line of pathLines) {
480
+ const startIdx = line[0].index;
481
+ const endIdx = line[1].index;
482
+ // Check if point indices are valid
483
+ if (startIdx < 0 || startIdx >= element.points.length ||
484
+ endIdx < 0 || endIdx >= element.points.length) {
485
+ return false;
486
+ }
487
+ // Add bidirectional connections
488
+ if (!adjacency.has(startIdx)) {
489
+ adjacency.set(startIdx, []);
490
+ }
491
+ if (!adjacency.has(endIdx)) {
492
+ adjacency.set(endIdx, []);
493
+ }
494
+ adjacency.get(startIdx).push(endIdx);
495
+ adjacency.get(endIdx).push(startIdx);
496
+ }
497
+ // For a closed path, every point should have exactly 2 connections
498
+ adjacency.forEach((connections) => {
499
+ if (connections.length !== 2) {
500
+ return false;
501
+ }
502
+ });
503
+ // Check if we can traverse all lines and return to start
504
+ const visitedLines = new Set();
505
+ const startLine = pathLines[0];
506
+ let currentPoint = startLine[0].index;
507
+ const targetPoint = startLine[1].index;
508
+ // Mark first line as visited
509
+ visitedLines.add(lineIndices[0]);
510
+ currentPoint = targetPoint;
511
+ while (visitedLines.size < lineIndices.length) {
512
+ let foundNextLine = false;
513
+ for (let i = 0; i < lineIndices.length; i++) {
514
+ const lineIndex = lineIndices[i];
515
+ if (visitedLines.has(lineIndex)) {
516
+ continue;
517
+ }
518
+ const line = pathLines[i];
519
+ let nextPoint = null;
520
+ if (line[0].index === currentPoint) {
521
+ nextPoint = line[1].index;
522
+ }
523
+ else if (line[1].index === currentPoint) {
524
+ nextPoint = line[0].index;
525
+ }
526
+ if (nextPoint !== null) {
527
+ visitedLines.add(lineIndex);
528
+ currentPoint = nextPoint;
529
+ foundNextLine = true;
530
+ break;
531
+ }
532
+ }
533
+ if (!foundNextLine) {
534
+ return false;
535
+ }
536
+ }
537
+ // Check if we've returned to the starting point
538
+ return currentPoint === startLine[0].index;
539
+ };
@@ -0,0 +1,72 @@
1
+ import { Scope } from "ducjs/types";
2
+ import { DucArrowElement, DucDimensionElement, DucDocElement, DucElement, DucEllipseElement, DucEmbeddableElement, DucFeatureControlFrameElement, DucFrameElement, DucFreeDrawElement, DucGenericElement, DucImageElement, DucLeaderElement, DucLinearElement, DucMermaidElement, DucParametricElement, DucPdfElement, DucPlotElement, DucPolygonElement, DucTableElement, DucTextElement, DucViewportElement, DucXRayElement, DucBlockInstanceElement, ElementConstructorOpts, ElementUpdate, NonDeleted } from "ducjs/types/elements";
3
+ import { Mutable } from "ducjs/types/utility-types";
4
+ export declare const newElementWith: <TElement extends DucElement>(element: TElement, updates: ElementUpdate<TElement>,
5
+ /** pass `true` to always regenerate */
6
+ force?: boolean) => TElement;
7
+ export declare const newElement: (currentScope: Scope, opts: {
8
+ type: DucGenericElement["type"];
9
+ } & ElementConstructorOpts) => NonDeleted<DucGenericElement>;
10
+ export declare const newEmbeddableElement: (currentScope: Scope, opts: {
11
+ type: "embeddable";
12
+ } & ElementConstructorOpts) => NonDeleted<DucEmbeddableElement>;
13
+ export declare const newFrameElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucFrameElement>;
14
+ export declare const newPlotElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucPlotElement>;
15
+ export declare const newViewportElement: (currentScope: Scope, opts: {
16
+ zoom?: number;
17
+ scopeExponentThreshold?: number;
18
+ mainScope?: Scope;
19
+ } & ElementConstructorOpts) => NonDeleted<DucViewportElement>;
20
+ export declare const newEllipseElement: (currentScope: Scope, opts: {
21
+ type: "ellipse";
22
+ ratio?: DucEllipseElement["ratio"];
23
+ startAngle?: DucEllipseElement["startAngle"];
24
+ endAngle?: DucEllipseElement["endAngle"];
25
+ showAuxCrosshair?: DucEllipseElement["showAuxCrosshair"];
26
+ } & ElementConstructorOpts) => NonDeleted<DucEllipseElement>;
27
+ export declare const newPolygonElement: (currentScope: Scope, opts: {
28
+ type: "polygon";
29
+ sides?: DucPolygonElement["sides"];
30
+ } & ElementConstructorOpts) => NonDeleted<DucPolygonElement>;
31
+ export declare const newTextElement: (currentScope: Scope, opts: {
32
+ text: string;
33
+ originalText?: string;
34
+ } & Partial<DucTextElement> & ElementConstructorOpts) => NonDeleted<DucTextElement>;
35
+ export declare const newFreeDrawElement: (currentScope: Scope, opts: {
36
+ simulatePressure: boolean;
37
+ } & Partial<DucFreeDrawElement> & ElementConstructorOpts) => NonDeleted<DucFreeDrawElement>;
38
+ export declare const newLinearElement: (currentScope: Scope, opts: Partial<DucLinearElement> & ElementConstructorOpts) => NonDeleted<DucLinearElement>;
39
+ export declare const newArrowElement: (currentScope: Scope, opts: Partial<DucArrowElement> & ElementConstructorOpts) => NonDeleted<DucArrowElement>;
40
+ export declare const newImageElement: (currentScope: Scope, opts: Partial<DucImageElement> & ElementConstructorOpts) => NonDeleted<DucImageElement>;
41
+ export declare const newTableElement: (currentScope: Scope, opts: Partial<DucTableElement> & ElementConstructorOpts) => NonDeleted<DucTableElement>;
42
+ export declare const newDocElement: (currentScope: Scope, opts: Partial<DucDocElement> & ElementConstructorOpts) => NonDeleted<DucDocElement>;
43
+ export declare const newPdfElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucPdfElement>;
44
+ export declare const newMermaidElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucMermaidElement>;
45
+ export declare const newXRayElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucXRayElement>;
46
+ export declare const newLeaderElement: (currentScope: Scope, opts: Partial<DucLeaderElement> & ElementConstructorOpts) => NonDeleted<DucLeaderElement>;
47
+ export declare const newDimensionElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucDimensionElement>;
48
+ export declare const newFeatureControlFrameElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucFeatureControlFrameElement>;
49
+ export declare const newBlockInstanceElement: (currentScope: Scope, opts: {
50
+ blockId: DucBlockInstanceElement["blockId"];
51
+ elementOverrides?: DucBlockInstanceElement["elementOverrides"];
52
+ attributeValues?: DucBlockInstanceElement["attributeValues"];
53
+ duplicationArray?: DucBlockInstanceElement["duplicationArray"];
54
+ } & ElementConstructorOpts) => NonDeleted<DucBlockInstanceElement>;
55
+ export declare const newParametricElement: (currentScope: Scope, opts: ElementConstructorOpts) => NonDeleted<DucParametricElement>;
56
+ /**
57
+ * Clones DucElement data structure. Does not regenerate id, nonce, or
58
+ * any value. The purpose is to to break object references for immutability
59
+ * reasons, whenever we want to keep the original element, but ensure it's not
60
+ * mutated.
61
+ *
62
+ * Only clones plain objects and arrays. Doesn't clone Date, RegExp, Map, Set,
63
+ * Typed arrays and other non-null objects.
64
+ */
65
+ export declare const deepCopyElement: <T extends DucElement>(val: T) => Mutable<T>;
66
+ /**
67
+ * utility wrapper to generate new id. In test env it reuses the old + postfix
68
+ * for test assertions.
69
+ */
70
+ export declare const regenerateId: (
71
+ /** supply null if no previous id exists */
72
+ previousId: string | null) => string;