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.
- package/LICENSE +21 -0
- package/README.md +42 -0
- package/dist/flatbuffers/duc/alternate-units.d.ts +21 -0
- package/dist/flatbuffers/duc/alternate-units.js +66 -0
- package/dist/flatbuffers/duc/angular-unit-system.d.ts +17 -0
- package/dist/flatbuffers/duc/angular-unit-system.js +50 -0
- package/dist/flatbuffers/duc/angular-units-format.d.ts +7 -0
- package/dist/flatbuffers/duc/angular-units-format.js +10 -0
- package/dist/flatbuffers/duc/axis.d.ts +5 -0
- package/dist/flatbuffers/duc/axis.js +8 -0
- package/dist/flatbuffers/duc/bezier-mirroring.d.ts +5 -0
- package/dist/flatbuffers/duc/bezier-mirroring.js +8 -0
- package/dist/flatbuffers/duc/blending.d.ts +9 -0
- package/dist/flatbuffers/duc/blending.js +12 -0
- package/dist/flatbuffers/duc/block-attachment.d.ts +4 -0
- package/dist/flatbuffers/duc/block-attachment.js +7 -0
- package/dist/flatbuffers/duc/boolean-operation.d.ts +6 -0
- package/dist/flatbuffers/duc/boolean-operation.js +9 -0
- package/dist/flatbuffers/duc/bound-element.d.ts +17 -0
- package/dist/flatbuffers/duc/bound-element.js +48 -0
- package/dist/flatbuffers/duc/checkpoint.d.ts +22 -0
- package/dist/flatbuffers/duc/checkpoint.js +75 -0
- package/dist/flatbuffers/duc/column-layout.d.ts +22 -0
- package/dist/flatbuffers/duc/column-layout.js +72 -0
- package/dist/flatbuffers/duc/column-type.d.ts +5 -0
- package/dist/flatbuffers/duc/column-type.js +8 -0
- package/dist/flatbuffers/duc/custom-hatch-pattern.d.ts +23 -0
- package/dist/flatbuffers/duc/custom-hatch-pattern.js +71 -0
- package/dist/flatbuffers/duc/datum-bracket-style.d.ts +5 -0
- package/dist/flatbuffers/duc/datum-bracket-style.js +8 -0
- package/dist/flatbuffers/duc/datum-reference.d.ts +17 -0
- package/dist/flatbuffers/duc/datum-reference.js +49 -0
- package/dist/flatbuffers/duc/datum-target-type.d.ts +6 -0
- package/dist/flatbuffers/duc/datum-target-type.js +9 -0
- package/dist/flatbuffers/duc/decimal-separator.d.ts +4 -0
- package/dist/flatbuffers/duc/decimal-separator.js +7 -0
- package/dist/flatbuffers/duc/delta.d.ts +20 -0
- package/dist/flatbuffers/duc/delta.js +64 -0
- package/dist/flatbuffers/duc/dictionary-entry.d.ts +17 -0
- package/dist/flatbuffers/duc/dictionary-entry.js +49 -0
- package/dist/flatbuffers/duc/dimension-baseline-data.d.ts +14 -0
- package/dist/flatbuffers/duc/dimension-baseline-data.js +40 -0
- package/dist/flatbuffers/duc/dimension-bindings.d.ts +17 -0
- package/dist/flatbuffers/duc/dimension-bindings.js +50 -0
- package/dist/flatbuffers/duc/dimension-continue-data.d.ts +14 -0
- package/dist/flatbuffers/duc/dimension-continue-data.js +40 -0
- package/dist/flatbuffers/duc/dimension-definition-points.d.ts +21 -0
- package/dist/flatbuffers/duc/dimension-definition-points.js +64 -0
- package/dist/flatbuffers/duc/dimension-ext-line-style.d.ts +18 -0
- package/dist/flatbuffers/duc/dimension-ext-line-style.js +57 -0
- package/dist/flatbuffers/duc/dimension-fit-rule.d.ts +6 -0
- package/dist/flatbuffers/duc/dimension-fit-rule.js +9 -0
- package/dist/flatbuffers/duc/dimension-fit-style.d.ts +19 -0
- package/dist/flatbuffers/duc/dimension-fit-style.js +58 -0
- package/dist/flatbuffers/duc/dimension-line-style.d.ts +16 -0
- package/dist/flatbuffers/duc/dimension-line-style.js +49 -0
- package/dist/flatbuffers/duc/dimension-symbol-style.d.ts +22 -0
- package/dist/flatbuffers/duc/dimension-symbol-style.js +72 -0
- package/dist/flatbuffers/duc/dimension-text-placement.d.ts +5 -0
- package/dist/flatbuffers/duc/dimension-text-placement.js +8 -0
- package/dist/flatbuffers/duc/dimension-tolerance-style.d.ts +24 -0
- package/dist/flatbuffers/duc/dimension-tolerance-style.js +71 -0
- package/dist/flatbuffers/duc/dimension-type.d.ts +15 -0
- package/dist/flatbuffers/duc/dimension-type.js +18 -0
- package/dist/flatbuffers/duc/dimension-units-format.d.ts +7 -0
- package/dist/flatbuffers/duc/dimension-units-format.js +10 -0
- package/dist/flatbuffers/duc/dimension-validation-rules.d.ts +25 -0
- package/dist/flatbuffers/duc/dimension-validation-rules.js +74 -0
- package/dist/flatbuffers/duc/duc-arrow-element.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-arrow-element.js +49 -0
- package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.js +44 -0
- package/dist/flatbuffers/duc/duc-block-attribute-definition.d.ts +22 -0
- package/dist/flatbuffers/duc/duc-block-attribute-definition.js +64 -0
- package/dist/flatbuffers/duc/duc-block-duplication-array.d.ts +19 -0
- package/dist/flatbuffers/duc/duc-block-duplication-array.js +64 -0
- package/dist/flatbuffers/duc/duc-block-instance-element.d.ts +30 -0
- package/dist/flatbuffers/duc/duc-block-instance-element.js +94 -0
- package/dist/flatbuffers/duc/duc-block.d.ts +34 -0
- package/dist/flatbuffers/duc/duc-block.js +111 -0
- package/dist/flatbuffers/duc/duc-common-style.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-common-style.js +44 -0
- package/dist/flatbuffers/duc/duc-dimension-element.d.ts +45 -0
- package/dist/flatbuffers/duc/duc-dimension-element.js +120 -0
- package/dist/flatbuffers/duc/duc-dimension-style.d.ts +28 -0
- package/dist/flatbuffers/duc/duc-dimension-style.js +76 -0
- package/dist/flatbuffers/duc/duc-doc-element.d.ts +33 -0
- package/dist/flatbuffers/duc/duc-doc-element.js +95 -0
- package/dist/flatbuffers/duc/duc-doc-style.d.ts +19 -0
- package/dist/flatbuffers/duc/duc-doc-style.js +52 -0
- package/dist/flatbuffers/duc/duc-element-base.d.ts +88 -0
- package/dist/flatbuffers/duc/duc-element-base.js +269 -0
- package/dist/flatbuffers/duc/duc-element-styles-base.d.ts +30 -0
- package/dist/flatbuffers/duc/duc-element-styles-base.js +103 -0
- package/dist/flatbuffers/duc/duc-ellipse-element.d.ts +22 -0
- package/dist/flatbuffers/duc/duc-ellipse-element.js +73 -0
- package/dist/flatbuffers/duc/duc-embeddable-element.d.ts +14 -0
- package/dist/flatbuffers/duc/duc-embeddable-element.js +41 -0
- package/dist/flatbuffers/duc/duc-external-file-data.d.ts +27 -0
- package/dist/flatbuffers/duc/duc-external-file-data.js +92 -0
- package/dist/flatbuffers/duc/duc-external-file-entry.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-external-file-entry.js +44 -0
- package/dist/flatbuffers/duc/duc-feature-control-frame-element.d.ts +31 -0
- package/dist/flatbuffers/duc/duc-feature-control-frame-element.js +89 -0
- package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +25 -0
- package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +68 -0
- package/dist/flatbuffers/duc/duc-frame-element.d.ts +14 -0
- package/dist/flatbuffers/duc/duc-frame-element.js +41 -0
- package/dist/flatbuffers/duc/duc-free-draw-element.d.ts +52 -0
- package/dist/flatbuffers/duc/duc-free-draw-element.js +154 -0
- package/dist/flatbuffers/duc/duc-free-draw-ends.d.ts +18 -0
- package/dist/flatbuffers/duc/duc-free-draw-ends.js +56 -0
- package/dist/flatbuffers/duc/duc-global-state.d.ts +37 -0
- package/dist/flatbuffers/duc/duc-global-state.js +121 -0
- package/dist/flatbuffers/duc/duc-group.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-group.js +44 -0
- package/dist/flatbuffers/duc/duc-hatch-style.d.ts +28 -0
- package/dist/flatbuffers/duc/duc-hatch-style.js +79 -0
- package/dist/flatbuffers/duc/duc-head.d.ts +19 -0
- package/dist/flatbuffers/duc/duc-head.js +57 -0
- package/dist/flatbuffers/duc/duc-image-element.d.ts +35 -0
- package/dist/flatbuffers/duc/duc-image-element.js +91 -0
- package/dist/flatbuffers/duc/duc-image-filter.d.ts +15 -0
- package/dist/flatbuffers/duc/duc-image-filter.js +48 -0
- package/dist/flatbuffers/duc/duc-layer-overrides.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-layer-overrides.js +44 -0
- package/dist/flatbuffers/duc/duc-layer.d.ts +21 -0
- package/dist/flatbuffers/duc/duc-layer.js +59 -0
- package/dist/flatbuffers/duc/duc-leader-element.d.ts +22 -0
- package/dist/flatbuffers/duc/duc-leader-element.js +60 -0
- package/dist/flatbuffers/duc/duc-leader-style.d.ts +30 -0
- package/dist/flatbuffers/duc/duc-leader-style.js +87 -0
- package/dist/flatbuffers/duc/duc-line-reference.d.ts +15 -0
- package/dist/flatbuffers/duc/duc-line-reference.js +43 -0
- package/dist/flatbuffers/duc/duc-line.d.ts +15 -0
- package/dist/flatbuffers/duc/duc-line.js +43 -0
- package/dist/flatbuffers/duc/duc-linear-element-base.d.ts +38 -0
- package/dist/flatbuffers/duc/duc-linear-element-base.js +124 -0
- package/dist/flatbuffers/duc/duc-linear-element.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-linear-element.js +49 -0
- package/dist/flatbuffers/duc/duc-local-state.d.ts +68 -0
- package/dist/flatbuffers/duc/duc-local-state.js +206 -0
- package/dist/flatbuffers/duc/duc-mermaid-element.d.ts +23 -0
- package/dist/flatbuffers/duc/duc-mermaid-element.js +65 -0
- package/dist/flatbuffers/duc/duc-parametric-element.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-parametric-element.js +44 -0
- package/dist/flatbuffers/duc/duc-path.d.ts +26 -0
- package/dist/flatbuffers/duc/duc-path.js +69 -0
- package/dist/flatbuffers/duc/duc-pdf-element.d.ts +17 -0
- package/dist/flatbuffers/duc/duc-pdf-element.js +49 -0
- package/dist/flatbuffers/duc/duc-plot-element.d.ts +19 -0
- package/dist/flatbuffers/duc/duc-plot-element.js +52 -0
- package/dist/flatbuffers/duc/duc-plot-style.d.ts +14 -0
- package/dist/flatbuffers/duc/duc-plot-style.js +41 -0
- package/dist/flatbuffers/duc/duc-point-binding.d.ts +26 -0
- package/dist/flatbuffers/duc/duc-point-binding.js +73 -0
- package/dist/flatbuffers/duc/duc-point.d.ts +18 -0
- package/dist/flatbuffers/duc/duc-point.js +57 -0
- package/dist/flatbuffers/duc/duc-polygon-element.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-polygon-element.js +49 -0
- package/dist/flatbuffers/duc/duc-rectangle-element.d.ts +14 -0
- package/dist/flatbuffers/duc/duc-rectangle-element.js +41 -0
- package/dist/flatbuffers/duc/duc-region.d.ts +19 -0
- package/dist/flatbuffers/duc/duc-region.js +51 -0
- package/dist/flatbuffers/duc/duc-stack-base.d.ts +27 -0
- package/dist/flatbuffers/duc/duc-stack-base.js +78 -0
- package/dist/flatbuffers/duc/duc-stack-element-base.d.ts +23 -0
- package/dist/flatbuffers/duc/duc-stack-element-base.js +65 -0
- package/dist/flatbuffers/duc/duc-stack-like-styles.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-stack-like-styles.js +48 -0
- package/dist/flatbuffers/duc/duc-table-auto-size.d.ts +15 -0
- package/dist/flatbuffers/duc/duc-table-auto-size.js +48 -0
- package/dist/flatbuffers/duc/duc-table-cell-entry.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-table-cell-entry.js +44 -0
- package/dist/flatbuffers/duc/duc-table-cell-span.d.ts +15 -0
- package/dist/flatbuffers/duc/duc-table-cell-span.js +48 -0
- package/dist/flatbuffers/duc/duc-table-cell-style.d.ts +22 -0
- package/dist/flatbuffers/duc/duc-table-cell-style.js +59 -0
- package/dist/flatbuffers/duc/duc-table-cell.d.ts +27 -0
- package/dist/flatbuffers/duc/duc-table-cell.js +72 -0
- package/dist/flatbuffers/duc/duc-table-column-entry.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-table-column-entry.js +44 -0
- package/dist/flatbuffers/duc/duc-table-column.d.ts +18 -0
- package/dist/flatbuffers/duc/duc-table-column.js +51 -0
- package/dist/flatbuffers/duc/duc-table-element.d.ts +51 -0
- package/dist/flatbuffers/duc/duc-table-element.js +167 -0
- package/dist/flatbuffers/duc/duc-table-row-entry.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-table-row-entry.js +44 -0
- package/dist/flatbuffers/duc/duc-table-row.d.ts +18 -0
- package/dist/flatbuffers/duc/duc-table-row.js +51 -0
- package/dist/flatbuffers/duc/duc-table-style.d.ts +23 -0
- package/dist/flatbuffers/duc/duc-table-style.js +65 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.d.ts +14 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.js +40 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-element-source.d.ts +17 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-element-source.js +49 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-part.d.ts +22 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-part.js +58 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-source-data.d.ts +9 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-source-data.js +26 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-source.d.ts +19 -0
- package/dist/flatbuffers/duc/duc-text-dynamic-source.js +58 -0
- package/dist/flatbuffers/duc/duc-text-element.d.ts +33 -0
- package/dist/flatbuffers/duc/duc-text-element.js +94 -0
- package/dist/flatbuffers/duc/duc-text-style.d.ts +44 -0
- package/dist/flatbuffers/duc/duc-text-style.js +128 -0
- package/dist/flatbuffers/duc/duc-ucs.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-ucs.js +49 -0
- package/dist/flatbuffers/duc/duc-view.d.ts +24 -0
- package/dist/flatbuffers/duc/duc-view.js +71 -0
- package/dist/flatbuffers/duc/duc-viewport-element.d.ts +36 -0
- package/dist/flatbuffers/duc/duc-viewport-element.js +102 -0
- package/dist/flatbuffers/duc/duc-viewport-style.d.ts +16 -0
- package/dist/flatbuffers/duc/duc-viewport-style.js +49 -0
- package/dist/flatbuffers/duc/duc-xray-element.d.ts +23 -0
- package/dist/flatbuffers/duc/duc-xray-element.js +66 -0
- package/dist/flatbuffers/duc/duc-xray-style.d.ts +17 -0
- package/dist/flatbuffers/duc/duc-xray-style.js +49 -0
- package/dist/flatbuffers/duc/dynamic-snap-settings.d.ts +17 -0
- package/dist/flatbuffers/duc/dynamic-snap-settings.js +56 -0
- package/dist/flatbuffers/duc/element-background.d.ts +14 -0
- package/dist/flatbuffers/duc/element-background.js +41 -0
- package/dist/flatbuffers/duc/element-content-base.d.ts +29 -0
- package/dist/flatbuffers/duc/element-content-base.js +80 -0
- package/dist/flatbuffers/duc/element-content-preference.d.ts +8 -0
- package/dist/flatbuffers/duc/element-content-preference.js +11 -0
- package/dist/flatbuffers/duc/element-stroke.d.ts +24 -0
- package/dist/flatbuffers/duc/element-stroke.js +66 -0
- package/dist/flatbuffers/duc/element-wrapper.d.ts +16 -0
- package/dist/flatbuffers/duc/element-wrapper.js +49 -0
- package/dist/flatbuffers/duc/element.d.ts +49 -0
- package/dist/flatbuffers/duc/element.js +106 -0
- package/dist/flatbuffers/duc/exported-data-state.d.ts +87 -0
- package/dist/flatbuffers/duc/exported-data-state.js +290 -0
- package/dist/flatbuffers/duc/fcfbetween-modifier.d.ts +17 -0
- package/dist/flatbuffers/duc/fcfbetween-modifier.js +48 -0
- package/dist/flatbuffers/duc/fcfdatum-definition.d.ts +16 -0
- package/dist/flatbuffers/duc/fcfdatum-definition.js +43 -0
- package/dist/flatbuffers/duc/fcfdatum-style.d.ts +14 -0
- package/dist/flatbuffers/duc/fcfdatum-style.js +41 -0
- package/dist/flatbuffers/duc/fcfframe-modifiers.d.ts +22 -0
- package/dist/flatbuffers/duc/fcfframe-modifiers.js +65 -0
- package/dist/flatbuffers/duc/fcflayout-style.d.ts +17 -0
- package/dist/flatbuffers/duc/fcflayout-style.js +56 -0
- package/dist/flatbuffers/duc/fcfprojected-zone-modifier.d.ts +13 -0
- package/dist/flatbuffers/duc/fcfprojected-zone-modifier.js +40 -0
- package/dist/flatbuffers/duc/fcfsegment-row.d.ts +17 -0
- package/dist/flatbuffers/duc/fcfsegment-row.js +55 -0
- package/dist/flatbuffers/duc/fcfsymbol-style.d.ts +13 -0
- package/dist/flatbuffers/duc/fcfsymbol-style.js +40 -0
- package/dist/flatbuffers/duc/feature-control-frame-segment.d.ts +22 -0
- package/dist/flatbuffers/duc/feature-control-frame-segment.js +65 -0
- package/dist/flatbuffers/duc/feature-modifier.d.ts +18 -0
- package/dist/flatbuffers/duc/feature-modifier.js +21 -0
- package/dist/flatbuffers/duc/gdt-symbol.d.ts +22 -0
- package/dist/flatbuffers/duc/gdt-symbol.js +25 -0
- package/dist/flatbuffers/duc/geometric-point.d.ts +10 -0
- package/dist/flatbuffers/duc/geometric-point.js +27 -0
- package/dist/flatbuffers/duc/grid-display-type.d.ts +6 -0
- package/dist/flatbuffers/duc/grid-display-type.js +9 -0
- package/dist/flatbuffers/duc/grid-settings.d.ts +54 -0
- package/dist/flatbuffers/duc/grid-settings.js +165 -0
- package/dist/flatbuffers/duc/grid-style.d.ts +26 -0
- package/dist/flatbuffers/duc/grid-style.js +74 -0
- package/dist/flatbuffers/duc/grid-type.d.ts +7 -0
- package/dist/flatbuffers/duc/grid-type.js +10 -0
- package/dist/flatbuffers/duc/handle-type.d.ts +4 -0
- package/dist/flatbuffers/duc/handle-type.js +7 -0
- package/dist/flatbuffers/duc/hatch-pattern-line.d.ts +35 -0
- package/dist/flatbuffers/duc/hatch-pattern-line.js +93 -0
- package/dist/flatbuffers/duc/hatch-style.d.ts +5 -0
- package/dist/flatbuffers/duc/hatch-style.js +8 -0
- package/dist/flatbuffers/duc/identified-common-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-common-style.js +44 -0
- package/dist/flatbuffers/duc/identified-dimension-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-dimension-style.js +44 -0
- package/dist/flatbuffers/duc/identified-doc-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-doc-style.js +44 -0
- package/dist/flatbuffers/duc/identified-fcfstyle.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-fcfstyle.js +44 -0
- package/dist/flatbuffers/duc/identified-grid-settings.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-grid-settings.js +44 -0
- package/dist/flatbuffers/duc/identified-hatch-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-hatch-style.js +44 -0
- package/dist/flatbuffers/duc/identified-leader-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-leader-style.js +44 -0
- package/dist/flatbuffers/duc/identified-snap-settings.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-snap-settings.js +44 -0
- package/dist/flatbuffers/duc/identified-stack-like-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-stack-like-style.js +44 -0
- package/dist/flatbuffers/duc/identified-table-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-table-style.js +44 -0
- package/dist/flatbuffers/duc/identified-text-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-text-style.js +44 -0
- package/dist/flatbuffers/duc/identified-ucs.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-ucs.js +44 -0
- package/dist/flatbuffers/duc/identified-view.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-view.js +44 -0
- package/dist/flatbuffers/duc/identified-viewport-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-viewport-style.js +44 -0
- package/dist/flatbuffers/duc/identified-xray-style.d.ts +16 -0
- package/dist/flatbuffers/duc/identified-xray-style.js +44 -0
- package/dist/flatbuffers/duc/identifier.d.ts +20 -0
- package/dist/flatbuffers/duc/identifier.js +57 -0
- package/dist/flatbuffers/duc/image-crop.d.ts +23 -0
- package/dist/flatbuffers/duc/image-crop.js +80 -0
- package/dist/flatbuffers/duc/image-status.d.ts +5 -0
- package/dist/flatbuffers/duc/image-status.js +8 -0
- package/dist/flatbuffers/duc/isometric-grid-settings.d.ts +15 -0
- package/dist/flatbuffers/duc/isometric-grid-settings.js +48 -0
- package/dist/flatbuffers/duc/jsonpatch-operation.d.ts +23 -0
- package/dist/flatbuffers/duc/jsonpatch-operation.js +64 -0
- package/dist/flatbuffers/duc/layer-snap-filters.d.ts +23 -0
- package/dist/flatbuffers/duc/layer-snap-filters.js +76 -0
- package/dist/flatbuffers/duc/layer-validation-rules.d.ts +17 -0
- package/dist/flatbuffers/duc/layer-validation-rules.js +54 -0
- package/dist/flatbuffers/duc/leader-block-content.d.ts +25 -0
- package/dist/flatbuffers/duc/leader-block-content.js +85 -0
- package/dist/flatbuffers/duc/leader-content-data.d.ts +9 -0
- package/dist/flatbuffers/duc/leader-content-data.js +26 -0
- package/dist/flatbuffers/duc/leader-content-type.d.ts +4 -0
- package/dist/flatbuffers/duc/leader-content-type.js +7 -0
- package/dist/flatbuffers/duc/leader-content.d.ts +19 -0
- package/dist/flatbuffers/duc/leader-content.js +58 -0
- package/dist/flatbuffers/duc/leader-text-block-content.d.ts +14 -0
- package/dist/flatbuffers/duc/leader-text-block-content.js +40 -0
- package/dist/flatbuffers/duc/line-head.d.ts +17 -0
- package/dist/flatbuffers/duc/line-head.js +20 -0
- package/dist/flatbuffers/duc/line-spacing-type.d.ts +5 -0
- package/dist/flatbuffers/duc/line-spacing-type.js +8 -0
- package/dist/flatbuffers/duc/line-spacing.d.ts +16 -0
- package/dist/flatbuffers/duc/line-spacing.js +49 -0
- package/dist/flatbuffers/duc/linear-unit-system.d.ts +24 -0
- package/dist/flatbuffers/duc/linear-unit-system.js +75 -0
- package/dist/flatbuffers/duc/margins.d.ts +19 -0
- package/dist/flatbuffers/duc/margins.js +64 -0
- package/dist/flatbuffers/duc/mark-ellipse-center.d.ts +4 -0
- package/dist/flatbuffers/duc/mark-ellipse-center.js +7 -0
- package/dist/flatbuffers/duc/material-condition.d.ts +5 -0
- package/dist/flatbuffers/duc/material-condition.js +8 -0
- package/dist/flatbuffers/duc/object-snap-mode.d.ts +22 -0
- package/dist/flatbuffers/duc/object-snap-mode.js +25 -0
- package/dist/flatbuffers/duc/paragraph-formatting.d.ts +33 -0
- package/dist/flatbuffers/duc/paragraph-formatting.js +106 -0
- package/dist/flatbuffers/duc/parametric-source-type.d.ts +4 -0
- package/dist/flatbuffers/duc/parametric-source-type.js +7 -0
- package/dist/flatbuffers/duc/parametric-source.d.ts +20 -0
- package/dist/flatbuffers/duc/parametric-source.js +57 -0
- package/dist/flatbuffers/duc/plot-layout.d.ts +14 -0
- package/dist/flatbuffers/duc/plot-layout.js +41 -0
- package/dist/flatbuffers/duc/point-binding-point.d.ts +15 -0
- package/dist/flatbuffers/duc/point-binding-point.js +48 -0
- package/dist/flatbuffers/duc/polar-grid-settings.d.ts +17 -0
- package/dist/flatbuffers/duc/polar-grid-settings.js +56 -0
- package/dist/flatbuffers/duc/polar-tracking-settings.d.ts +29 -0
- package/dist/flatbuffers/duc/polar-tracking-settings.js +90 -0
- package/dist/flatbuffers/duc/primary-units.d.ts +16 -0
- package/dist/flatbuffers/duc/primary-units.js +44 -0
- package/dist/flatbuffers/duc/pruning-level.d.ts +5 -0
- package/dist/flatbuffers/duc/pruning-level.js +8 -0
- package/dist/flatbuffers/duc/snap-marker-settings.d.ts +23 -0
- package/dist/flatbuffers/duc/snap-marker-settings.js +79 -0
- package/dist/flatbuffers/duc/snap-marker-shape.d.ts +6 -0
- package/dist/flatbuffers/duc/snap-marker-shape.js +9 -0
- package/dist/flatbuffers/duc/snap-marker-style-entry.d.ts +16 -0
- package/dist/flatbuffers/duc/snap-marker-style-entry.js +43 -0
- package/dist/flatbuffers/duc/snap-marker-style.d.ts +17 -0
- package/dist/flatbuffers/duc/snap-marker-style.js +49 -0
- package/dist/flatbuffers/duc/snap-mode.d.ts +4 -0
- package/dist/flatbuffers/duc/snap-mode.js +7 -0
- package/dist/flatbuffers/duc/snap-override-behavior.d.ts +5 -0
- package/dist/flatbuffers/duc/snap-override-behavior.js +8 -0
- package/dist/flatbuffers/duc/snap-override.d.ts +17 -0
- package/dist/flatbuffers/duc/snap-override.js +49 -0
- package/dist/flatbuffers/duc/snap-settings.d.ts +75 -0
- package/dist/flatbuffers/duc/snap-settings.js +245 -0
- package/dist/flatbuffers/duc/stack-format-properties.d.ts +18 -0
- package/dist/flatbuffers/duc/stack-format-properties.js +57 -0
- package/dist/flatbuffers/duc/stack-format.d.ts +21 -0
- package/dist/flatbuffers/duc/stack-format.js +64 -0
- package/dist/flatbuffers/duc/stacked-text-align.d.ts +5 -0
- package/dist/flatbuffers/duc/stacked-text-align.js +8 -0
- package/dist/flatbuffers/duc/standard-overrides.d.ts +63 -0
- package/dist/flatbuffers/duc/standard-overrides.js +162 -0
- package/dist/flatbuffers/duc/standard-styles.d.ts +77 -0
- package/dist/flatbuffers/duc/standard-styles.js +285 -0
- package/dist/flatbuffers/duc/standard-units.d.ts +16 -0
- package/dist/flatbuffers/duc/standard-units.js +44 -0
- package/dist/flatbuffers/duc/standard-validation.d.ts +16 -0
- package/dist/flatbuffers/duc/standard-validation.js +44 -0
- package/dist/flatbuffers/duc/standard-view-settings.d.ts +35 -0
- package/dist/flatbuffers/duc/standard-view-settings.js +124 -0
- package/dist/flatbuffers/duc/standard.d.ts +33 -0
- package/dist/flatbuffers/duc/standard.js +90 -0
- package/dist/flatbuffers/duc/string-value-entry.d.ts +17 -0
- package/dist/flatbuffers/duc/string-value-entry.js +49 -0
- package/dist/flatbuffers/duc/stroke-cap.d.ts +5 -0
- package/dist/flatbuffers/duc/stroke-cap.js +8 -0
- package/dist/flatbuffers/duc/stroke-join.d.ts +5 -0
- package/dist/flatbuffers/duc/stroke-join.js +8 -0
- package/dist/flatbuffers/duc/stroke-placement.d.ts +5 -0
- package/dist/flatbuffers/duc/stroke-placement.js +8 -0
- package/dist/flatbuffers/duc/stroke-preference.d.ts +6 -0
- package/dist/flatbuffers/duc/stroke-preference.js +9 -0
- package/dist/flatbuffers/duc/stroke-side-preference.d.ts +8 -0
- package/dist/flatbuffers/duc/stroke-side-preference.js +11 -0
- package/dist/flatbuffers/duc/stroke-sides.d.ts +24 -0
- package/dist/flatbuffers/duc/stroke-sides.js +67 -0
- package/dist/flatbuffers/duc/stroke-style.d.ts +37 -0
- package/dist/flatbuffers/duc/stroke-style.js +111 -0
- package/dist/flatbuffers/duc/stroke-width.d.ts +5 -0
- package/dist/flatbuffers/duc/stroke-width.js +8 -0
- package/dist/flatbuffers/duc/table-cell-alignment.d.ts +11 -0
- package/dist/flatbuffers/duc/table-cell-alignment.js +14 -0
- package/dist/flatbuffers/duc/table-flow-direction.d.ts +4 -0
- package/dist/flatbuffers/duc/table-flow-direction.js +7 -0
- package/dist/flatbuffers/duc/text-align.d.ts +5 -0
- package/dist/flatbuffers/duc/text-align.js +8 -0
- package/dist/flatbuffers/duc/text-column.d.ts +15 -0
- package/dist/flatbuffers/duc/text-column.js +48 -0
- package/dist/flatbuffers/duc/text-field-source-property.d.ts +13 -0
- package/dist/flatbuffers/duc/text-field-source-property.js +16 -0
- package/dist/flatbuffers/duc/text-field-source-type.d.ts +4 -0
- package/dist/flatbuffers/duc/text-field-source-type.js +7 -0
- package/dist/flatbuffers/duc/text-flow-direction.d.ts +6 -0
- package/dist/flatbuffers/duc/text-flow-direction.js +9 -0
- package/dist/flatbuffers/duc/tiling-properties.d.ts +21 -0
- package/dist/flatbuffers/duc/tiling-properties.js +75 -0
- package/dist/flatbuffers/duc/tolerance-clause.d.ts +27 -0
- package/dist/flatbuffers/duc/tolerance-clause.js +84 -0
- package/dist/flatbuffers/duc/tolerance-display.d.ts +7 -0
- package/dist/flatbuffers/duc/tolerance-display.js +10 -0
- package/dist/flatbuffers/duc/tolerance-type.d.ts +5 -0
- package/dist/flatbuffers/duc/tolerance-type.js +8 -0
- package/dist/flatbuffers/duc/tolerance-zone-type.d.ts +7 -0
- package/dist/flatbuffers/duc/tolerance-zone-type.js +10 -0
- package/dist/flatbuffers/duc/tracking-line-style.d.ts +26 -0
- package/dist/flatbuffers/duc/tracking-line-style.js +74 -0
- package/dist/flatbuffers/duc/unit-precision.d.ts +19 -0
- package/dist/flatbuffers/duc/unit-precision.js +64 -0
- package/dist/flatbuffers/duc/unit-system-base.d.ts +20 -0
- package/dist/flatbuffers/duc/unit-system-base.js +65 -0
- package/dist/flatbuffers/duc/unit-system.d.ts +4 -0
- package/dist/flatbuffers/duc/unit-system.js +7 -0
- package/dist/flatbuffers/duc/version-base.d.ts +27 -0
- package/dist/flatbuffers/duc/version-base.js +80 -0
- package/dist/flatbuffers/duc/version-graph-metadata.d.ts +15 -0
- package/dist/flatbuffers/duc/version-graph-metadata.js +48 -0
- package/dist/flatbuffers/duc/version-graph.d.ts +31 -0
- package/dist/flatbuffers/duc/version-graph.js +94 -0
- package/dist/flatbuffers/duc/vertical-align.d.ts +5 -0
- package/dist/flatbuffers/duc/vertical-align.js +8 -0
- package/dist/flatbuffers/duc/viewport-shade-plot.d.ts +6 -0
- package/dist/flatbuffers/duc/viewport-shade-plot.js +9 -0
- package/dist/flatbuffers/duc/youtube-states.d.ts +8 -0
- package/dist/flatbuffers/duc/youtube-states.js +11 -0
- package/dist/flatbuffers/duc.d.ts +227 -0
- package/dist/flatbuffers/duc.js +229 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/legacy/index.d.ts +1 -0
- package/dist/legacy/index.js +1 -0
- package/dist/legacy/v1/duc/app-state.d.ts +124 -0
- package/dist/legacy/v1/duc/app-state.js +388 -0
- package/dist/legacy/v1/duc/binary-file-data.d.ts +27 -0
- package/dist/legacy/v1/duc/binary-file-data.js +90 -0
- package/dist/legacy/v1/duc/binary-files-entry.d.ts +16 -0
- package/dist/legacy/v1/duc/binary-files-entry.js +43 -0
- package/dist/legacy/v1/duc/binary-files.d.ts +17 -0
- package/dist/legacy/v1/duc/binary-files.js +55 -0
- package/dist/legacy/v1/duc/binding-point.d.ts +15 -0
- package/dist/legacy/v1/duc/binding-point.js +48 -0
- package/dist/legacy/v1/duc/bound-element.d.ts +17 -0
- package/dist/legacy/v1/duc/bound-element.js +48 -0
- package/dist/legacy/v1/duc/duc-block-attribute-details.d.ts +22 -0
- package/dist/legacy/v1/duc/duc-block-attribute-details.js +57 -0
- package/dist/legacy/v1/duc/duc-block-attribute.d.ts +16 -0
- package/dist/legacy/v1/duc/duc-block-attribute.js +43 -0
- package/dist/legacy/v1/duc/duc-block-instance-element-override.d.ts +17 -0
- package/dist/legacy/v1/duc/duc-block-instance-element-override.js +48 -0
- package/dist/legacy/v1/duc/duc-block.d.ts +34 -0
- package/dist/legacy/v1/duc/duc-block.js +110 -0
- package/dist/legacy/v1/duc/duc-element.d.ts +273 -0
- package/dist/legacy/v1/duc/duc-element.js +865 -0
- package/dist/legacy/v1/duc/duc-group.d.ts +40 -0
- package/dist/legacy/v1/duc/duc-group.js +114 -0
- package/dist/legacy/v1/duc/duc-line-reference.d.ts +15 -0
- package/dist/legacy/v1/duc/duc-line-reference.js +43 -0
- package/dist/legacy/v1/duc/duc-line.d.ts +15 -0
- package/dist/legacy/v1/duc/duc-line.js +43 -0
- package/dist/legacy/v1/duc/duc-path.d.ts +26 -0
- package/dist/legacy/v1/duc/duc-path.js +69 -0
- package/dist/legacy/v1/duc/duc-table-cell.d.ts +22 -0
- package/dist/legacy/v1/duc/duc-table-cell.js +57 -0
- package/dist/legacy/v1/duc/duc-table-column.d.ts +18 -0
- package/dist/legacy/v1/duc/duc-table-column.js +50 -0
- package/dist/legacy/v1/duc/duc-table-row.d.ts +18 -0
- package/dist/legacy/v1/duc/duc-table-row.js +50 -0
- package/dist/legacy/v1/duc/duc-table-style-props.d.ts +39 -0
- package/dist/legacy/v1/duc/duc-table-style-props.js +114 -0
- package/dist/legacy/v1/duc/duc-table-style.d.ts +14 -0
- package/dist/legacy/v1/duc/duc-table-style.js +41 -0
- package/dist/legacy/v1/duc/element-background.d.ts +14 -0
- package/dist/legacy/v1/duc/element-background.js +41 -0
- package/dist/legacy/v1/duc/element-content-base.d.ts +22 -0
- package/dist/legacy/v1/duc/element-content-base.js +64 -0
- package/dist/legacy/v1/duc/element-stroke.d.ts +23 -0
- package/dist/legacy/v1/duc/element-stroke.js +66 -0
- package/dist/legacy/v1/duc/exported-data-state.d.ts +51 -0
- package/dist/legacy/v1/duc/exported-data-state.js +155 -0
- package/dist/legacy/v1/duc/image-crop.d.ts +23 -0
- package/dist/legacy/v1/duc/image-crop.js +80 -0
- package/dist/legacy/v1/duc/linear-element-editor.d.ts +44 -0
- package/dist/legacy/v1/duc/linear-element-editor.js +119 -0
- package/dist/legacy/v1/duc/point-binding.d.ts +25 -0
- package/dist/legacy/v1/duc/point-binding.js +72 -0
- package/dist/legacy/v1/duc/point.d.ts +20 -0
- package/dist/legacy/v1/duc/point.js +63 -0
- package/dist/legacy/v1/duc/pointer-down-state.d.ts +32 -0
- package/dist/legacy/v1/duc/pointer-down-state.js +90 -0
- package/dist/legacy/v1/duc/renderer-state.d.ts +17 -0
- package/dist/legacy/v1/duc/renderer-state.js +54 -0
- package/dist/legacy/v1/duc/segment-midpoint-state.d.ts +18 -0
- package/dist/legacy/v1/duc/segment-midpoint-state.js +57 -0
- package/dist/legacy/v1/duc/simple-point.d.ts +15 -0
- package/dist/legacy/v1/duc/simple-point.js +48 -0
- package/dist/legacy/v1/duc/stroke-sides.d.ts +23 -0
- package/dist/legacy/v1/duc/stroke-sides.js +66 -0
- package/dist/legacy/v1/duc/stroke-style.d.ts +31 -0
- package/dist/legacy/v1/duc/stroke-style.js +102 -0
- package/dist/legacy/v1/duc/tiling-properties.d.ts +21 -0
- package/dist/legacy/v1/duc/tiling-properties.js +75 -0
- package/dist/legacy/v1/duc.d.ts +35 -0
- package/dist/legacy/v1/duc.js +37 -0
- package/dist/legacy/v1/index.d.ts +1 -0
- package/dist/legacy/v1/index.js +1 -0
- package/dist/legacy/v1/parse/index.d.ts +67 -0
- package/dist/legacy/v1/parse/index.js +101 -0
- package/dist/legacy/v1/parse/parseAppStateFromBinary.d.ts +3 -0
- package/dist/legacy/v1/parse/parseAppStateFromBinary.js +139 -0
- package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.d.ts +4 -0
- package/dist/legacy/v1/parse/parseBinaryFilesFromBinary.js +32 -0
- package/dist/legacy/v1/parse/parseBlockFromBinary.d.ts +3 -0
- package/dist/legacy/v1/parse/parseBlockFromBinary.js +70 -0
- package/dist/legacy/v1/parse/parseElementFromBinary.d.ts +8 -0
- package/dist/legacy/v1/parse/parseElementFromBinary.js +387 -0
- package/dist/legacy/v1/parse/parseGroupFromBinary.d.ts +4 -0
- package/dist/legacy/v1/parse/parseGroupFromBinary.js +36 -0
- package/dist/legacy/v1/parse/parseRendererStateFromBinary.d.ts +4 -0
- package/dist/legacy/v1/parse/parseRendererStateFromBinary.js +15 -0
- package/dist/legacy/v1/serialize/index.d.ts +5 -0
- package/dist/legacy/v1/serialize/index.js +81 -0
- package/dist/legacy/v1/serialize/serializationUtils.d.ts +17 -0
- package/dist/legacy/v1/serialize/serializationUtils.js +27 -0
- package/dist/legacy/v1/serialize/serializeAppStateFromDuc.d.ts +4 -0
- package/dist/legacy/v1/serialize/serializeAppStateFromDuc.js +145 -0
- package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.d.ts +4 -0
- package/dist/legacy/v1/serialize/serializeBinaryFilesFromDuc.js +46 -0
- package/dist/legacy/v1/serialize/serializeBlockFromDuc.d.ts +3 -0
- package/dist/legacy/v1/serialize/serializeBlockFromDuc.js +60 -0
- package/dist/legacy/v1/serialize/serializeElementFromDuc.d.ts +8 -0
- package/dist/legacy/v1/serialize/serializeElementFromDuc.js +435 -0
- package/dist/legacy/v1/serialize/serializeGroupFromDuc.d.ts +3 -0
- package/dist/legacy/v1/serialize/serializeGroupFromDuc.js +37 -0
- package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.d.ts +4 -0
- package/dist/legacy/v1/serialize/serializeRendererStateFromDuc.js +7 -0
- package/dist/legacy/v1/types/elements/index.d.ts +480 -0
- package/dist/legacy/v1/types/elements/index.js +1 -0
- package/dist/legacy/v1/types/elements/typeChecks.d.ts +40 -0
- package/dist/legacy/v1/types/elements/typeChecks.js +179 -0
- package/dist/legacy/v1/types/geometryTypes.d.ts +78 -0
- package/dist/legacy/v1/types/geometryTypes.js +1 -0
- package/dist/legacy/v1/types/index.d.ts +496 -0
- package/dist/legacy/v1/types/index.js +1 -0
- package/dist/legacy/v1/types/utility-types.d.ts +31 -0
- package/dist/legacy/v1/types/utility-types.js +1 -0
- package/dist/legacy/v1/utils/bounds.d.ts +76 -0
- package/dist/legacy/v1/utils/bounds.js +415 -0
- package/dist/legacy/v1/utils/constants.d.ts +370 -0
- package/dist/legacy/v1/utils/constants.js +571 -0
- package/dist/legacy/v1/utils/elements/index.d.ts +26 -0
- package/dist/legacy/v1/utils/elements/index.js +108 -0
- package/dist/legacy/v1/utils/elements/linearElement.d.ts +133 -0
- package/dist/legacy/v1/utils/elements/linearElement.js +544 -0
- package/dist/legacy/v1/utils/elements/textElement.d.ts +89 -0
- package/dist/legacy/v1/utils/elements/textElement.js +563 -0
- package/dist/legacy/v1/utils/index.d.ts +26 -0
- package/dist/legacy/v1/utils/index.js +40 -0
- package/dist/legacy/v1/utils/math/algebra/ga.d.ts +63 -0
- package/dist/legacy/v1/utils/math/algebra/ga.js +268 -0
- package/dist/legacy/v1/utils/math/algebra/gadirections.d.ts +9 -0
- package/dist/legacy/v1/utils/math/algebra/gadirections.js +18 -0
- package/dist/legacy/v1/utils/math/algebra/galines.d.ts +23 -0
- package/dist/legacy/v1/utils/math/algebra/galines.js +32 -0
- package/dist/legacy/v1/utils/math/algebra/gapoints.d.ts +8 -0
- package/dist/legacy/v1/utils/math/algebra/gapoints.js +30 -0
- package/dist/legacy/v1/utils/math/algebra/gatransforms.d.ts +10 -0
- package/dist/legacy/v1/utils/math/algebra/gatransforms.js +23 -0
- package/dist/legacy/v1/utils/math/bbox.d.ts +10 -0
- package/dist/legacy/v1/utils/math/bbox.js +42 -0
- package/dist/legacy/v1/utils/math/geometry.d.ts +102 -0
- package/dist/legacy/v1/utils/math/geometry.js +790 -0
- package/dist/legacy/v1/utils/math/index.d.ts +309 -0
- package/dist/legacy/v1/utils/math/index.js +1140 -0
- package/dist/legacy/v1/utils/math/random.d.ts +4 -0
- package/dist/legacy/v1/utils/math/random.js +25 -0
- package/dist/legacy/v1/utils/measurements.d.ts +33 -0
- package/dist/legacy/v1/utils/measurements.js +65 -0
- package/dist/legacy/v1/utils/normalize.d.ts +14 -0
- package/dist/legacy/v1/utils/normalize.js +49 -0
- package/dist/legacy/v1/utils/restore.d.ts +197 -0
- package/dist/legacy/v1/utils/restore.js +1255 -0
- package/dist/legacy/v1/utils/scopes.d.ts +260 -0
- package/dist/legacy/v1/utils/scopes.js +661 -0
- package/dist/legacy/v1/utils/standards.d.ts +12 -0
- package/dist/legacy/v1/utils/standards.js +10 -0
- package/dist/legacy/v1/utils/state/index.d.ts +2 -0
- package/dist/legacy/v1/utils/state/index.js +68 -0
- package/dist/legacy/v1/utils/url.d.ts +8 -0
- package/dist/legacy/v1/utils/url.js +33 -0
- package/dist/parse.d.ts +54 -0
- package/dist/parse.js +1318 -0
- package/dist/restore/index.d.ts +3 -0
- package/dist/restore/index.js +3 -0
- package/dist/restore/restoreDataState.d.ts +191 -0
- package/dist/restore/restoreDataState.js +716 -0
- package/dist/restore/restoreElements.d.ts +34 -0
- package/dist/restore/restoreElements.js +1281 -0
- package/dist/restore/restoreStandards.d.ts +8 -0
- package/dist/restore/restoreStandards.js +224 -0
- package/dist/serialize.d.ts +3 -0
- package/dist/serialize.js +2465 -0
- package/dist/technical/index.d.ts +3 -0
- package/dist/technical/index.js +3 -0
- package/dist/technical/measurements.d.ts +31 -0
- package/dist/technical/measurements.js +64 -0
- package/dist/technical/scopes.d.ts +261 -0
- package/dist/technical/scopes.js +661 -0
- package/dist/technical/standards.d.ts +124 -0
- package/dist/technical/standards.js +10 -0
- package/dist/types/elements/index.d.ts +1356 -0
- package/dist/types/elements/index.js +1 -0
- package/dist/types/elements/typeChecks.d.ts +40 -0
- package/dist/types/elements/typeChecks.js +188 -0
- package/dist/types/geometryTypes.d.ts +90 -0
- package/dist/types/geometryTypes.js +1 -0
- package/dist/types/index.d.ts +591 -0
- package/dist/types/index.js +3 -0
- package/dist/types/utility-types.d.ts +31 -0
- package/dist/types/utility-types.js +1 -0
- package/dist/utils/bounds.d.ts +75 -0
- package/dist/utils/bounds.js +414 -0
- package/dist/utils/constants.d.ts +288 -0
- package/dist/utils/constants.js +529 -0
- package/dist/utils/elements/frameElement.d.ts +4 -0
- package/dist/utils/elements/frameElement.js +16 -0
- package/dist/utils/elements/freedrawElement.d.ts +2 -0
- package/dist/utils/elements/freedrawElement.js +46 -0
- package/dist/utils/elements/index.d.ts +51 -0
- package/dist/utils/elements/index.js +215 -0
- package/dist/utils/elements/linearElement.d.ts +53 -0
- package/dist/utils/elements/linearElement.js +539 -0
- package/dist/utils/elements/newElement.d.ts +72 -0
- package/dist/utils/elements/newElement.js +268 -0
- package/dist/utils/elements/textElement.d.ts +89 -0
- package/dist/utils/elements/textElement.js +565 -0
- package/dist/utils/elements/viewportElement.d.ts +6 -0
- package/dist/utils/elements/viewportElement.js +9 -0
- package/dist/utils/filebyte.d.ts +39 -0
- package/dist/utils/filebyte.js +117 -0
- package/dist/utils/functionCodec.d.ts +5 -0
- package/dist/utils/functionCodec.js +86 -0
- package/dist/utils/index.d.ts +32 -0
- package/dist/utils/index.js +53 -0
- package/dist/utils/math/algebra/ga.d.ts +63 -0
- package/dist/utils/math/algebra/ga.js +268 -0
- package/dist/utils/math/algebra/gadirections.d.ts +9 -0
- package/dist/utils/math/algebra/gadirections.js +18 -0
- package/dist/utils/math/algebra/galines.d.ts +23 -0
- package/dist/utils/math/algebra/galines.js +32 -0
- package/dist/utils/math/algebra/gapoints.d.ts +8 -0
- package/dist/utils/math/algebra/gapoints.js +30 -0
- package/dist/utils/math/algebra/gatransforms.d.ts +10 -0
- package/dist/utils/math/algebra/gatransforms.js +23 -0
- package/dist/utils/math/algebra/index.d.ts +5 -0
- package/dist/utils/math/algebra/index.js +5 -0
- package/dist/utils/math/bbox.d.ts +10 -0
- package/dist/utils/math/bbox.js +42 -0
- package/dist/utils/math/geometry.d.ts +102 -0
- package/dist/utils/math/geometry.js +790 -0
- package/dist/utils/math/index.d.ts +323 -0
- package/dist/utils/math/index.js +1188 -0
- package/dist/utils/math/random.d.ts +4 -0
- package/dist/utils/math/random.js +25 -0
- package/dist/utils/normalize.d.ts +14 -0
- package/dist/utils/normalize.js +49 -0
- package/dist/utils/shape.d.ts +15 -0
- package/dist/utils/shape.js +254 -0
- package/dist/utils/state/grid.d.ts +7 -0
- package/dist/utils/state/grid.js +25 -0
- package/dist/utils/state/index.d.ts +9 -0
- package/dist/utils/state/index.js +131 -0
- package/dist/utils/url.d.ts +8 -0
- package/dist/utils/url.js +33 -0
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.js +1 -0
- 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;
|