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,565 @@
1
+ import { TEXT_ALIGN, VERTICAL_ALIGN } from "ducjs/flatbuffers/duc";
2
+ import { isArrowElement, isBoundToContainer, isTextElement } from "ducjs/types/elements/typeChecks";
3
+ import { getContainerElement, getElementAbsoluteCoords, getResizedElementAbsoluteCoords } from "ducjs/utils/bounds";
4
+ import { ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO, ARROW_LABEL_WIDTH_FRACTION, BOUND_TEXT_PADDING, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, FONT_FAMILY, WINDOWS_EMOJI_FALLBACK_FONT } from "ducjs/utils/constants";
5
+ import { getBoundTextElementPosition, getPointGlobalCoordinates, getPointsGlobalCoordinates, getSegmentMidPoint } from "ducjs/utils/elements/linearElement";
6
+ import { adjustXYWithRotation } from "ducjs/utils/math";
7
+ import { normalizeText } from "ducjs/utils/normalize";
8
+ import { getPrecisionValueFromRaw, getScopedBezierPointFromDucPoint } from "ducjs/technical/scopes";
9
+ export const computeBoundTextPosition = (container, boundTextElement, elementsMap, currentScope) => {
10
+ if (isArrowElement(container)) {
11
+ const coords = getBoundTextElementPosition(container, boundTextElement, elementsMap, currentScope);
12
+ if (coords === null) {
13
+ return {
14
+ x: getPrecisionValueFromRaw(0, boundTextElement.scope, currentScope).scoped,
15
+ y: getPrecisionValueFromRaw(0, boundTextElement.scope, currentScope).scoped,
16
+ };
17
+ }
18
+ return { x: coords.x, y: coords.y };
19
+ }
20
+ const containerCoords = getContainerCoords(container);
21
+ const maxContainerHeight = getBoundTextMaxHeight(container, boundTextElement);
22
+ const maxContainerWidth = getBoundTextMaxWidth(container, boundTextElement);
23
+ let x;
24
+ let y;
25
+ if (boundTextElement.verticalAlign === VERTICAL_ALIGN.TOP) {
26
+ y = containerCoords.y;
27
+ }
28
+ else if (boundTextElement.verticalAlign === VERTICAL_ALIGN.BOTTOM) {
29
+ y = containerCoords.y + (maxContainerHeight - boundTextElement.height.value);
30
+ }
31
+ else {
32
+ y =
33
+ containerCoords.y +
34
+ (maxContainerHeight / 2 - boundTextElement.height.value / 2);
35
+ }
36
+ if (boundTextElement.textAlign === TEXT_ALIGN.LEFT) {
37
+ x = containerCoords.x;
38
+ }
39
+ else if (boundTextElement.textAlign === TEXT_ALIGN.RIGHT) {
40
+ x = containerCoords.x + (maxContainerWidth - boundTextElement.width.value);
41
+ }
42
+ else {
43
+ x =
44
+ containerCoords.x + (maxContainerWidth / 2 - boundTextElement.width.value / 2);
45
+ }
46
+ const xValue = getPrecisionValueFromRaw(x, boundTextElement.scope, currentScope);
47
+ const yValue = getPrecisionValueFromRaw(y, boundTextElement.scope, currentScope);
48
+ return { x: xValue.scoped, y: yValue.scoped };
49
+ };
50
+ export const measureText = (text, font, lineHeight, currentScope) => {
51
+ text = text
52
+ .split("\n")
53
+ // replace empty lines with single space because leading/trailing empty
54
+ // lines would be stripped from computation
55
+ .map((x) => x || " ")
56
+ .join("\n");
57
+ const fontSize = getPrecisionValueFromRaw(parseFloat(font), currentScope, currentScope);
58
+ const height = getTextHeight(text, fontSize, lineHeight);
59
+ const width = getTextWidth(text, font);
60
+ return { width, height };
61
+ };
62
+ /**
63
+ * We calculate the line height from the font size and the unitless line height,
64
+ * aligning with the W3C spec.
65
+ */
66
+ export const getLineHeightInPx = (fontSize, lineHeight) => {
67
+ return fontSize.value * lineHeight;
68
+ };
69
+ // FIXME rename to getApproxMinContainerHeight
70
+ export const getApproxMinLineHeight = (fontSize, lineHeight) => {
71
+ return getLineHeightInPx(fontSize, lineHeight) + (BOUND_TEXT_PADDING * 2);
72
+ };
73
+ let canvas;
74
+ /**
75
+ * @param forceAdvanceWidth use to force retrieve the "advance width" ~ `metrics.width`, instead of the actual boundind box width.
76
+ *
77
+ * > The advance width is the distance between the glyph's initial pen position and the next glyph's initial pen position.
78
+ *
79
+ * We need to use the advance width as that's the closest thing to the browser wrapping algo, hence using it for:
80
+ * - text wrapping
81
+ * - wysiwyg editor (+padding)
82
+ *
83
+ * Everything else should be based on the actual bounding box width.
84
+ *
85
+ * `Math.ceil` of the final width adds additional buffer which stabilizes slight wrapping incosistencies.
86
+ */
87
+ const getLineWidth = (text, font, forceAdvanceWidth, isTestEnv) => {
88
+ if (!canvas) {
89
+ canvas = document.createElement("canvas");
90
+ }
91
+ const canvas2dContext = canvas.getContext("2d");
92
+ canvas2dContext.font = font;
93
+ const metrics = canvas2dContext.measureText(text);
94
+ const advanceWidth = metrics.width;
95
+ // retrieve the actual bounding box width if these metrics are available (as of now > 95% coverage)
96
+ if (!forceAdvanceWidth &&
97
+ typeof window !== "undefined" &&
98
+ window.TextMetrics &&
99
+ "actualBoundingBoxLeft" in window.TextMetrics.prototype &&
100
+ "actualBoundingBoxRight" in window.TextMetrics.prototype) {
101
+ // could be negative, therefore getting the absolute value
102
+ const actualWidth = Math.abs(metrics.actualBoundingBoxLeft) +
103
+ Math.abs(metrics.actualBoundingBoxRight);
104
+ // fallback to advance width if the actual width is zero, i.e. on text editing start
105
+ // or when actual width does not respect whitespace chars, i.e. spaces
106
+ // otherwise actual width should always be bigger
107
+ return Math.max(actualWidth, advanceWidth);
108
+ }
109
+ // since in test env the canvas measureText algo
110
+ // doesn't measure text and instead just returns number of
111
+ // characters hence we assume that each letteris 10px
112
+ if (isTestEnv) {
113
+ return advanceWidth * 10;
114
+ }
115
+ return advanceWidth;
116
+ };
117
+ export const getTextWidth = (text, font, forceAdvanceWidth) => {
118
+ const lines = splitIntoLines(text);
119
+ let width = 0;
120
+ lines.forEach((line) => {
121
+ width = Math.max(width, getLineWidth(line, font, forceAdvanceWidth));
122
+ });
123
+ return width;
124
+ };
125
+ export const getTextHeight = (text, fontSize, lineHeight) => {
126
+ const lineCount = splitIntoLines(text).length;
127
+ return getLineHeightInPx(fontSize, lineHeight) * lineCount;
128
+ };
129
+ export const parseTokens = (text) => {
130
+ // Splitting words containing "-" as those are treated as separate words
131
+ // by css wrapping algorithm eg non-profit => non-, profit
132
+ const words = text.split("-");
133
+ if (words.length > 1) {
134
+ // non-proft org => ['non-', 'profit org']
135
+ words.forEach((word, index) => {
136
+ if (index !== words.length - 1) {
137
+ words[index] = word += "-";
138
+ }
139
+ });
140
+ }
141
+ // Joining the words with space and splitting them again with space to get the
142
+ // final list of tokens
143
+ // ['non-', 'profit org'] =>,'non- proft org' => ['non-','profit','org']
144
+ return words.join(" ").split(" ");
145
+ };
146
+ export const wrapText = (text, font, maxWidth) => {
147
+ // if maxWidth is not finite or NaN which can happen in case of bugs in
148
+ // computation, we need to make sure we don't continue as we'll end up
149
+ // in an infinite loop
150
+ if (!Number.isFinite(maxWidth) || maxWidth < 0) {
151
+ return text;
152
+ }
153
+ const lines = [];
154
+ const originalLines = text.split("\n");
155
+ const spaceAdvanceWidth = getLineWidth(" ", font, true);
156
+ let currentLine = "";
157
+ let currentLineWidthTillNow = 0;
158
+ const push = (str) => {
159
+ if (str.trim()) {
160
+ lines.push(str);
161
+ }
162
+ };
163
+ const resetParams = () => {
164
+ currentLine = "";
165
+ currentLineWidthTillNow = 0;
166
+ };
167
+ for (const originalLine of originalLines) {
168
+ const currentLineWidth = getLineWidth(originalLine, font, true);
169
+ // Push the line if its <= maxWidth
170
+ if (currentLineWidth <= maxWidth) {
171
+ lines.push(originalLine);
172
+ continue;
173
+ }
174
+ const words = parseTokens(originalLine);
175
+ resetParams();
176
+ let index = 0;
177
+ while (index < words.length) {
178
+ const currentWordWidth = getLineWidth(words[index], font, true);
179
+ // This will only happen when single word takes entire width
180
+ if (currentWordWidth === maxWidth) {
181
+ push(words[index]);
182
+ index++;
183
+ }
184
+ // Start breaking longer words exceeding max width
185
+ else if (currentWordWidth > maxWidth) {
186
+ // push current line since the current word exceeds the max width
187
+ // so will be appended in next line
188
+ push(currentLine);
189
+ resetParams();
190
+ while (words[index].length > 0) {
191
+ const currentChar = String.fromCodePoint(words[index].codePointAt(0));
192
+ const line = currentLine + currentChar;
193
+ // use advance width instead of the actual width as it's closest to the browser wapping algo
194
+ // use width of the whole line instead of calculating individual chars to accomodate for kerning
195
+ const lineAdvanceWidth = getLineWidth(line, font, true);
196
+ const charAdvanceWidth = charWidth.calculate(currentChar, font);
197
+ currentLineWidthTillNow = lineAdvanceWidth;
198
+ words[index] = words[index].slice(currentChar.length);
199
+ if (currentLineWidthTillNow >= maxWidth) {
200
+ push(currentLine);
201
+ currentLine = currentChar;
202
+ currentLineWidthTillNow = charAdvanceWidth;
203
+ }
204
+ else {
205
+ currentLine = line;
206
+ }
207
+ }
208
+ // push current line if appending space exceeds max width
209
+ if (currentLineWidthTillNow + spaceAdvanceWidth >= maxWidth) {
210
+ push(currentLine);
211
+ resetParams();
212
+ // space needs to be appended before next word
213
+ // as currentLine contains chars which couldn't be appended
214
+ // to previous line unless the line ends with hyphen to sync
215
+ // with css word-wrap
216
+ }
217
+ else if (!currentLine.endsWith("-")) {
218
+ currentLine += " ";
219
+ currentLineWidthTillNow += spaceAdvanceWidth;
220
+ }
221
+ index++;
222
+ }
223
+ else {
224
+ // Start appending words in a line till max width reached
225
+ while (currentLineWidthTillNow < maxWidth && index < words.length) {
226
+ const word = words[index];
227
+ currentLineWidthTillNow = getLineWidth(currentLine + word, font, true);
228
+ if (currentLineWidthTillNow > maxWidth) {
229
+ push(currentLine);
230
+ resetParams();
231
+ break;
232
+ }
233
+ index++;
234
+ // if word ends with "-" then we don't need to add space
235
+ // to sync with css word-wrap
236
+ const shouldAppendSpace = !word.endsWith("-");
237
+ currentLine += word;
238
+ if (shouldAppendSpace) {
239
+ currentLine += " ";
240
+ }
241
+ // Push the word if appending space exceeds max width
242
+ if (currentLineWidthTillNow + spaceAdvanceWidth >= maxWidth) {
243
+ if (shouldAppendSpace) {
244
+ lines.push(currentLine.slice(0, -1));
245
+ }
246
+ else {
247
+ lines.push(currentLine);
248
+ }
249
+ resetParams();
250
+ break;
251
+ }
252
+ }
253
+ }
254
+ }
255
+ if (currentLine.slice(-1) === " ") {
256
+ // only remove last trailing space which we have added when joining words
257
+ currentLine = currentLine.slice(0, -1);
258
+ push(currentLine);
259
+ }
260
+ }
261
+ return lines.join("\n");
262
+ };
263
+ export const charWidth = (() => {
264
+ const cachedCharWidth = {};
265
+ const calculate = (char, font) => {
266
+ const ascii = char.charCodeAt(0);
267
+ if (!cachedCharWidth[font]) {
268
+ cachedCharWidth[font] = [];
269
+ }
270
+ if (!cachedCharWidth[font][ascii]) {
271
+ const width = getLineWidth(char, font, true);
272
+ cachedCharWidth[font][ascii] = width;
273
+ }
274
+ return cachedCharWidth[font][ascii];
275
+ };
276
+ const getCache = (font) => {
277
+ return cachedCharWidth[font];
278
+ };
279
+ return {
280
+ calculate,
281
+ getCache,
282
+ };
283
+ })();
284
+ const DUMMY_TEXT = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toLocaleUpperCase();
285
+ // FIXME rename to getApproxMinContainerWidth
286
+ export const getApproxMinLineWidth = (font, lineHeight, currentScope) => {
287
+ const maxCharWidth = getMaxCharWidth(font);
288
+ if (maxCharWidth === 0) {
289
+ return (measureText(DUMMY_TEXT.split("").join("\n"), font, lineHeight, currentScope).width +
290
+ BOUND_TEXT_PADDING * 2);
291
+ }
292
+ return (maxCharWidth + BOUND_TEXT_PADDING * 2);
293
+ };
294
+ export const getMinCharWidth = (font) => {
295
+ const cache = charWidth.getCache(font);
296
+ if (!cache) {
297
+ return 0;
298
+ }
299
+ const cacheWithOutEmpty = cache.filter((val) => val !== undefined);
300
+ return Math.min(...cacheWithOutEmpty);
301
+ };
302
+ export const getMaxCharWidth = (font) => {
303
+ const cache = charWidth.getCache(font);
304
+ if (!cache) {
305
+ return 0;
306
+ }
307
+ const cacheWithOutEmpty = cache.filter((val) => val !== undefined);
308
+ return Math.max(...cacheWithOutEmpty);
309
+ };
310
+ export const getContainerCenter = (container, DucState, elementsMap) => {
311
+ if (!isArrowElement(container)) {
312
+ return {
313
+ x: container.x.scoped + container.width.scoped / 2,
314
+ y: container.y.scoped + container.height.scoped / 2,
315
+ };
316
+ }
317
+ const points = getPointsGlobalCoordinates(container, elementsMap, DucState.scope);
318
+ if (points.length % 2 === 1) {
319
+ const index = Math.floor(container.points.length / 2);
320
+ const midPoint = getPointGlobalCoordinates(container, getScopedBezierPointFromDucPoint(container.points[index]), elementsMap, DucState.scope);
321
+ return { x: midPoint.x, y: midPoint.y };
322
+ }
323
+ const index = container.points.length / 2 - 1;
324
+ // const initialMidSegmentMidpoint = getEditorMidPoints(
325
+ // container,
326
+ // elementsMap,
327
+ // DucState,
328
+ // )[index];
329
+ let initialMidSegmentMidpoint; // FIXME: provide a better implementation for mid points handling
330
+ const initMidPoints = initialMidSegmentMidpoint && getScopedBezierPointFromDucPoint(initialMidSegmentMidpoint);
331
+ // Remove casting in the future
332
+ let midSegmentMidpoint = initMidPoints && { x: initMidPoints.x, y: initMidPoints.y };
333
+ if (!midSegmentMidpoint) {
334
+ midSegmentMidpoint = getSegmentMidPoint(container, getScopedBezierPointFromDucPoint(points[index]), getScopedBezierPointFromDucPoint(points[index + 1]), index + 1, elementsMap, DucState.scope);
335
+ }
336
+ return { x: midSegmentMidpoint.x, y: midSegmentMidpoint.y };
337
+ };
338
+ export const getContainerCoords = (container) => {
339
+ let offsetX = BOUND_TEXT_PADDING;
340
+ let offsetY = BOUND_TEXT_PADDING;
341
+ if (container.type === "ellipse") {
342
+ // The derivation of coordinates is explained in https://github.com/excalidraw/excalidraw/pull/6172
343
+ offsetX += (container.width.value / 2) * (1 - Math.sqrt(2) / 2);
344
+ offsetY += (container.height.value / 2) * (1 - Math.sqrt(2) / 2);
345
+ }
346
+ // The derivation of coordinates is explained in https://github.com/excalidraw/excalidraw/pull/6265
347
+ if (container.type === "polygon") {
348
+ offsetX += container.width.value / 4;
349
+ offsetY += container.height.value / 4;
350
+ }
351
+ return {
352
+ x: container.x.value + offsetX,
353
+ y: container.y.value + offsetY,
354
+ };
355
+ };
356
+ export const getTextElementAngle = (textElement, container) => {
357
+ if (!container || isArrowElement(container)) {
358
+ return textElement.angle;
359
+ }
360
+ return container.angle;
361
+ };
362
+ export const shouldAllowVerticalAlign = (selectedElements, elementsMap) => {
363
+ return selectedElements.some((element) => {
364
+ if (isBoundToContainer(element)) {
365
+ const container = getContainerElement(element, elementsMap);
366
+ if (isArrowElement(container)) {
367
+ return false;
368
+ }
369
+ return true;
370
+ }
371
+ return false;
372
+ });
373
+ };
374
+ export const suppportsHorizontalAlign = (selectedElements, elementsMap) => {
375
+ return selectedElements.some((element) => {
376
+ if (isBoundToContainer(element)) {
377
+ const container = getContainerElement(element, elementsMap);
378
+ if (isArrowElement(container)) {
379
+ return false;
380
+ }
381
+ return true;
382
+ }
383
+ return isTextElement(element);
384
+ });
385
+ };
386
+ const VALID_CONTAINER_TYPES = new Set([
387
+ "rectangle",
388
+ "ellipse",
389
+ "diamond",
390
+ "arrow",
391
+ ]);
392
+ export const isValidTextContainer = (element) => VALID_CONTAINER_TYPES.has(element.type);
393
+ export const computeContainerDimensionForBoundText = (dimension, containerType) => {
394
+ dimension = Math.ceil(dimension);
395
+ const padding = (BOUND_TEXT_PADDING * 2);
396
+ if (containerType === "ellipse") {
397
+ return Math.round(((dimension + padding) / Math.sqrt(2)) * 2);
398
+ }
399
+ if (containerType === "arrow") {
400
+ return (dimension + padding * 8);
401
+ }
402
+ if (containerType === "diamond") {
403
+ return (2 * (dimension + padding));
404
+ }
405
+ return (dimension + padding);
406
+ };
407
+ export const getBoundTextMaxWidth = (container, boundTextElement) => {
408
+ var _a;
409
+ const { width } = container;
410
+ if (isArrowElement(container)) {
411
+ const minWidth = ((_a = boundTextElement === null || boundTextElement === void 0 ? void 0 : boundTextElement.fontSize.value) !== null && _a !== void 0 ? _a : DEFAULT_FONT_SIZE) *
412
+ ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO;
413
+ return Math.max(ARROW_LABEL_WIDTH_FRACTION * width.value, minWidth);
414
+ }
415
+ if (container.type === "ellipse") {
416
+ // The width of the largest rectangle inscribed inside an ellipse is
417
+ // Math.round((ellipse.width / 2) * Math.sqrt(2)) which is derived from
418
+ // equation of an ellipse -https://github.com/excalidraw/excalidraw/pull/6172
419
+ return (Math.round((width.value / 2) * Math.sqrt(2)) - BOUND_TEXT_PADDING * 2);
420
+ }
421
+ if (container.type === "polygon") {
422
+ // The width of the largest rectangle inscribed inside a rhombus is
423
+ // Math.round(width / 2) - https://github.com/excalidraw/excalidraw/pull/6265
424
+ return (Math.round(width.value / 2) - BOUND_TEXT_PADDING * 2);
425
+ }
426
+ return (width.value - BOUND_TEXT_PADDING * 2);
427
+ };
428
+ export const getBoundTextMaxHeight = (container, boundTextElement) => {
429
+ const { height } = container;
430
+ if (isArrowElement(container)) {
431
+ const containerHeight = height.value - BOUND_TEXT_PADDING * 8 * 2;
432
+ if (containerHeight <= 0) {
433
+ return boundTextElement.height.value;
434
+ }
435
+ return height.value;
436
+ }
437
+ if (container.type === "ellipse") {
438
+ // The height of the largest rectangle inscribed inside an ellipse is
439
+ // Math.round((ellipse.height / 2) * Math.sqrt(2)) which is derived from
440
+ // equation of an ellipse - https://github.com/excalidraw/excalidraw/pull/6172
441
+ return (Math.round((height.value / 2) * Math.sqrt(2)) - BOUND_TEXT_PADDING * 2);
442
+ }
443
+ if (container.type === "polygon") {
444
+ // The height of the largest rectangle inscribed inside a rhombus is
445
+ // Math.round(height / 2) - https://github.com/excalidraw/excalidraw/pull/6265
446
+ return (Math.round(height.value / 2) - BOUND_TEXT_PADDING * 2);
447
+ }
448
+ return (height.value - BOUND_TEXT_PADDING * 2);
449
+ };
450
+ export const isMeasureTextSupported = (currentScope) => {
451
+ const width = getTextWidth(DUMMY_TEXT, getFontString({
452
+ fontSize: getPrecisionValueFromRaw(DEFAULT_FONT_SIZE, currentScope, currentScope),
453
+ fontFamily: DEFAULT_FONT_FAMILY,
454
+ }));
455
+ return width > 0;
456
+ };
457
+ export const getMinTextElementWidth = (font, lineHeight, currentScope) => {
458
+ return measureText("", font, lineHeight, currentScope).width + BOUND_TEXT_PADDING * 2;
459
+ };
460
+ /** retrieves text from text elements and concatenates to a single string */
461
+ export const getTextFromElements = (elements, separator = "\n\n") => {
462
+ const text = elements
463
+ .reduce((acc, element) => {
464
+ if (isTextElement(element)) {
465
+ acc.push(element.text);
466
+ }
467
+ return acc;
468
+ }, [])
469
+ .join(separator);
470
+ return text;
471
+ };
472
+ export const getFontFamilyString = ({ fontFamily, }) => {
473
+ for (const [fontFamilyString, id] of Object.entries(FONT_FAMILY)) {
474
+ if (id === fontFamily) {
475
+ return `${fontFamilyString}, ${WINDOWS_EMOJI_FALLBACK_FONT}`;
476
+ }
477
+ }
478
+ return WINDOWS_EMOJI_FALLBACK_FONT;
479
+ };
480
+ /** returns fontSize+fontFamily string for assignment to DOM elements */
481
+ export const getFontString = ({ fontSize, fontFamily, }) => {
482
+ return `${fontSize.scoped}px ${getFontFamilyString({ fontFamily })}`;
483
+ };
484
+ /** computes element x/y offset based on textAlign/verticalAlign */
485
+ export const getTextElementPositionOffsets = (opts, metrics) => {
486
+ return {
487
+ x: opts.textAlign === TEXT_ALIGN.CENTER
488
+ ? metrics.width / 2
489
+ : opts.textAlign === TEXT_ALIGN.RIGHT
490
+ ? metrics.width
491
+ : 0,
492
+ y: opts.verticalAlign === VERTICAL_ALIGN.MIDDLE ? metrics.height / 2 : 0,
493
+ };
494
+ };
495
+ export const refreshTextDimensions = (textElement, container, elementsMap, currentScope, text = textElement.text) => {
496
+ if (textElement.isDeleted) {
497
+ return;
498
+ }
499
+ if (container || !textElement.autoResize) {
500
+ text = wrapText(text, getFontString({ fontFamily: textElement.fontFamily, fontSize: textElement.fontSize }), container
501
+ ? getBoundTextMaxWidth(container, textElement)
502
+ : textElement.width.scoped);
503
+ }
504
+ const dimensions = getAdjustedDimensions(textElement, elementsMap, text, currentScope);
505
+ return Object.assign({ text }, dimensions);
506
+ };
507
+ export const splitIntoLines = (text) => {
508
+ return normalizeText(text).split("\n");
509
+ };
510
+ /**
511
+ * To get unitless line-height (if unknown) we can calculate it by dividing
512
+ * height-per-line by fontSize.
513
+ */
514
+ export const detectLineHeight = (textElement) => {
515
+ const lineCount = splitIntoLines(textElement.text).length;
516
+ return (textElement.height.scoped /
517
+ lineCount /
518
+ textElement.fontSize.scoped);
519
+ };
520
+ export const getAdjustedDimensions = (element, elementsMap, nextText, currentScope) => {
521
+ let { width: nextWidth, height: nextHeight } = measureText(nextText, getFontString({ fontFamily: element.fontFamily, fontSize: element.fontSize }), element.lineHeight, currentScope);
522
+ // wrapped text
523
+ if (!element.autoResize) {
524
+ nextWidth = element.width.value;
525
+ }
526
+ const { textAlign, verticalAlign } = element;
527
+ let x;
528
+ let y;
529
+ if (textAlign === TEXT_ALIGN.CENTER &&
530
+ verticalAlign === VERTICAL_ALIGN.MIDDLE &&
531
+ !element.containerId &&
532
+ element.autoResize) {
533
+ const prevMetrics = measureText(element.text, getFontString({ fontFamily: element.fontFamily, fontSize: element.fontSize }), element.lineHeight, currentScope);
534
+ const offsets = getTextElementPositionOffsets(element, {
535
+ width: nextWidth - prevMetrics.width,
536
+ height: nextHeight - prevMetrics.height,
537
+ });
538
+ x = element.x.value - offsets.x;
539
+ y = element.y.value - offsets.y;
540
+ }
541
+ else {
542
+ const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap, currentScope);
543
+ const nextWidthValue = getPrecisionValueFromRaw(nextWidth, element.scope, currentScope);
544
+ const nextHeightValue = getPrecisionValueFromRaw(nextHeight, element.scope, currentScope);
545
+ const [nextX1, nextY1, nextX2, nextY2] = getResizedElementAbsoluteCoords(element, nextWidthValue.scoped, nextHeightValue.scoped, false, currentScope);
546
+ const deltaX1 = (x1 - nextX1) / 2;
547
+ const deltaY1 = (y1 - nextY1) / 2;
548
+ const deltaX2 = (x2 - nextX2) / 2;
549
+ const deltaY2 = (y2 - nextY2) / 2;
550
+ const rotationPoint = adjustXYWithRotation({
551
+ s: true,
552
+ e: textAlign === TEXT_ALIGN.CENTER || textAlign === TEXT_ALIGN.LEFT,
553
+ w: textAlign === TEXT_ALIGN.CENTER || textAlign === TEXT_ALIGN.RIGHT,
554
+ }, element.x.value, element.y.value, element.angle, deltaX1, deltaY1, deltaX2, deltaY2);
555
+ x = rotationPoint.x;
556
+ y = rotationPoint.y;
557
+ }
558
+ return {
559
+ width: nextWidth,
560
+ height: nextHeight,
561
+ x: Number.isFinite(x) ? x : element.x.value,
562
+ y: Number.isFinite(y) ? y : element.y.value,
563
+ };
564
+ };
565
+ export { getBoundTextElementPosition };
@@ -0,0 +1,6 @@
1
+ import { AnnotationScale, ViewportScale } from "ducjs/types";
2
+ /**
3
+ * Utility functions to convert between the two scales
4
+ */
5
+ export declare const viewportToAnnotationScale: (viewportScale: ViewportScale) => AnnotationScale;
6
+ export declare const annotationToViewportScale: (annotationScale: AnnotationScale) => ViewportScale;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Utility functions to convert between the two scales
3
+ */
4
+ export const viewportToAnnotationScale = (viewportScale) => {
5
+ return (1 / viewportScale);
6
+ };
7
+ export const annotationToViewportScale = (annotationScale) => {
8
+ return (1 / annotationScale);
9
+ };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Synchronously converts data to a Base64 Data URL.
3
+ *
4
+ * This function is truly synchronous and works in both Node.js and browser environments.
5
+ *
6
+ * @param data The input data. Can be a UTF-8 string, a Uint8Array, or an ArrayBuffer.
7
+ * @param mimeType The MIME type for the Data URL.
8
+ * @returns A fully formed Base64 Data URL string.
9
+ */
10
+ export declare function toDataURL(data: string | Uint8Array | ArrayBuffer, mimeType?: string): string;
11
+ /**
12
+ * Synchronously decodes a Base64 Data URL into its constituent parts.
13
+ *
14
+ * This function only supports Base64 encoded Data URLs.
15
+ *
16
+ * @param dataUrl The Base64 Data URL string (e.g., "data:image/png;base64,iVBOR...").
17
+ * @returns An object containing the decoded Uint8Array and the MIME type.
18
+ * @throws An error if the input is not a valid or supported Data URL.
19
+ */
20
+ export declare function fromDataURL(dataUrl: string): {
21
+ data: Uint8Array;
22
+ mimeType: string;
23
+ };
24
+ export declare function uint8ArrayToBase64(bytes: Uint8Array): string;
25
+ export declare function base64ToUint8Array(base64: string): Uint8Array;
26
+ /**
27
+ * Converts a Uint8Array to a browser File object.
28
+ *
29
+ * @param bytes The Uint8Array containing the binary data of the file.
30
+ * @param fileName The desired name for the file, including its extension (e.g., "thumbnail.png").
31
+ * @param options Optional settings for the file.
32
+ * @param options.mimeType The MIME type of the file (e.g., "image/png"). Defaults to "application/octet-stream".
33
+ * @param options.lastModified The timestamp (milliseconds since epoch) for the file's last modified date. Defaults to the current time.
34
+ * @returns A File object.
35
+ */
36
+ export declare function uint8ArrayToFile(bytes: Uint8Array, fileName: string, options?: {
37
+ mimeType?: string;
38
+ lastModified?: number;
39
+ }): File;