@vertexvis/viewer-toolkit-react 0.0.6-canary.14 → 0.0.6-canary.16
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/dist/bundle.cjs.js +3 -3
- package/dist/bundle.cjs.js.map +1 -1
- package/dist/bundle.esm.js +3 -3
- package/dist/bundle.esm.js.map +1 -1
- package/dist/components/appearance/__tests__/feature-edges-controls.spec.d.ts +1 -0
- package/dist/components/appearance/__tests__/feature-edges-controls.spec.d.ts.map +1 -0
- package/dist/components/appearance/__tests__/feature-edges-reset.spec.d.ts +1 -0
- package/dist/components/appearance/__tests__/feature-edges-reset.spec.d.ts.map +1 -0
- package/dist/components/appearance/__tests__/selection-highlighting-controls.spec.d.ts +1 -0
- package/dist/components/appearance/__tests__/selection-highlighting-controls.spec.d.ts.map +1 -0
- package/dist/components/appearance/__tests__/selection-highlighting-reset.spec.d.ts +1 -0
- package/dist/components/appearance/__tests__/selection-highlighting-reset.spec.d.ts.map +1 -0
- package/dist/components/appearance/__tests__/viewer-background-color-picker.spec.d.ts +1 -0
- package/dist/components/appearance/__tests__/viewer-background-color-picker.spec.d.ts.map +1 -0
- package/dist/components/appearance/__tests__/viewer-background-reset.spec.d.ts +1 -0
- package/dist/components/appearance/__tests__/viewer-background-reset.spec.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/__tests__/cross-section-appearance-controls.spec.d.ts +1 -0
- package/dist/components/appearance/cross-section/__tests__/cross-section-appearance-controls.spec.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/__tests__/cross-section-appearance-reset.spec.d.ts +1 -0
- package/dist/components/appearance/cross-section/__tests__/cross-section-appearance-reset.spec.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-color-picker.d.ts +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-color-picker.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-controls.d.ts +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-controls.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-line-thickness-slider.d.ts +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-line-thickness-slider.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-panel-section.d.ts +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-panel-section.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-reset.d.ts +1 -0
- package/dist/components/appearance/cross-section/cross-section-appearance-reset.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/end-cap-color-options.d.ts +1 -0
- package/dist/components/appearance/cross-section/end-cap-color-options.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/end-cap-color-picker.d.ts +1 -0
- package/dist/components/appearance/cross-section/end-cap-color-picker.d.ts.map +1 -0
- package/dist/components/appearance/cross-section/end-cap-toggle.d.ts +1 -0
- package/dist/components/appearance/cross-section/end-cap-toggle.d.ts.map +1 -0
- package/dist/components/appearance/feature-edges-color-picker.d.ts +1 -0
- package/dist/components/appearance/feature-edges-color-picker.d.ts.map +1 -0
- package/dist/components/appearance/feature-edges-controls.d.ts +1 -0
- package/dist/components/appearance/feature-edges-controls.d.ts.map +1 -0
- package/dist/components/appearance/feature-edges-panel-section.d.ts +1 -0
- package/dist/components/appearance/feature-edges-panel-section.d.ts.map +1 -0
- package/dist/components/appearance/feature-edges-reset.d.ts +1 -0
- package/dist/components/appearance/feature-edges-reset.d.ts.map +1 -0
- package/dist/components/appearance/feature-edges-thickness-slider.d.ts +1 -0
- package/dist/components/appearance/feature-edges-thickness-slider.d.ts.map +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-picker.spec.d.ts +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-picker.spec.d.ts.map +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-swatch-context-menu.spec.d.ts +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-swatch-context-menu.spec.d.ts.map +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-swatch.spec.d.ts +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-swatch.spec.d.ts.map +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-swatches.spec.d.ts +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-color-swatches.spec.d.ts.map +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-opacity-slider.spec.d.ts +1 -0
- package/dist/components/appearance/material/__tests__/scene-item-material-opacity-slider.spec.d.ts.map +1 -0
- package/dist/components/appearance/material/material-controls.d.ts +1 -0
- package/dist/components/appearance/material/material-controls.d.ts.map +1 -0
- package/dist/components/appearance/material/material-panel-section.d.ts +1 -0
- package/dist/components/appearance/material/material-panel-section.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-apply-all-confirmation-dialog.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-apply-all-confirmation-dialog.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-apply-all.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-apply-all.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-clear.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-clear.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-color-picker.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-color-picker.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-color-swatch-context-menu.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-color-swatch-context-menu.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-color-swatch.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-color-swatch.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-color-swatches.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-color-swatches.d.ts.map +1 -0
- package/dist/components/appearance/material/scene-item-material-opacity-slider.d.ts +1 -0
- package/dist/components/appearance/material/scene-item-material-opacity-slider.d.ts.map +1 -0
- package/dist/components/appearance/selection-highlighting-color-picker.d.ts +1 -0
- package/dist/components/appearance/selection-highlighting-color-picker.d.ts.map +1 -0
- package/dist/components/appearance/selection-highlighting-controls.d.ts +1 -0
- package/dist/components/appearance/selection-highlighting-controls.d.ts.map +1 -0
- package/dist/components/appearance/selection-highlighting-line-thickness-slider.d.ts +1 -0
- package/dist/components/appearance/selection-highlighting-line-thickness-slider.d.ts.map +1 -0
- package/dist/components/appearance/selection-highlighting-opacity-slider.d.ts +1 -0
- package/dist/components/appearance/selection-highlighting-opacity-slider.d.ts.map +1 -0
- package/dist/components/appearance/selection-highlighting-panel-section.d.ts +1 -0
- package/dist/components/appearance/selection-highlighting-panel-section.d.ts.map +1 -0
- package/dist/components/appearance/selection-highlighting-reset.d.ts +1 -0
- package/dist/components/appearance/selection-highlighting-reset.d.ts.map +1 -0
- package/dist/components/appearance/viewer-background-color-picker.d.ts +1 -0
- package/dist/components/appearance/viewer-background-color-picker.d.ts.map +1 -0
- package/dist/components/appearance/viewer-background-controls.d.ts +1 -0
- package/dist/components/appearance/viewer-background-controls.d.ts.map +1 -0
- package/dist/components/appearance/viewer-background-panel-section.d.ts +1 -0
- package/dist/components/appearance/viewer-background-panel-section.d.ts.map +1 -0
- package/dist/components/appearance/viewer-background-reset.d.ts +1 -0
- package/dist/components/appearance/viewer-background-reset.d.ts.map +1 -0
- package/dist/components/box-selection/__tests__/box-selection-button.spec.d.ts +1 -0
- package/dist/components/box-selection/__tests__/box-selection-button.spec.d.ts.map +1 -0
- package/dist/components/box-selection/__tests__/box-selection-tool.spec.d.ts +1 -0
- package/dist/components/box-selection/__tests__/box-selection-tool.spec.d.ts.map +1 -0
- package/dist/components/box-selection/box-selection-button.d.ts +1 -0
- package/dist/components/box-selection/box-selection-button.d.ts.map +1 -0
- package/dist/components/box-selection/box-selection-tool.d.ts +1 -0
- package/dist/components/box-selection/box-selection-tool.d.ts.map +1 -0
- package/dist/components/common/__tests__/slider.spec.d.ts +1 -0
- package/dist/components/common/__tests__/slider.spec.d.ts.map +1 -0
- package/dist/components/common/beta-label.d.ts +1 -0
- package/dist/components/common/beta-label.d.ts.map +1 -0
- package/dist/components/common/copy-button.d.ts +1 -0
- package/dist/components/common/copy-button.d.ts.map +1 -0
- package/dist/components/common/debounced-color-picker.d.ts +1 -0
- package/dist/components/common/debounced-color-picker.d.ts.map +1 -0
- package/dist/components/common/popup-button.d.ts +1 -0
- package/dist/components/common/popup-button.d.ts.map +1 -0
- package/dist/components/common/reset-button.d.ts +1 -0
- package/dist/components/common/reset-button.d.ts.map +1 -0
- package/dist/components/common/resizable-content.d.ts +1 -0
- package/dist/components/common/resizable-content.d.ts.map +1 -0
- package/dist/components/common/slider.d.ts +1 -0
- package/dist/components/common/slider.d.ts.map +1 -0
- package/dist/components/context-menu/__tests__/scene-tree-context-menu.spec.d.ts +1 -0
- package/dist/components/context-menu/__tests__/scene-tree-context-menu.spec.d.ts.map +1 -0
- package/dist/components/context-menu/__tests__/viewer-context-menu.spec.d.ts +1 -0
- package/dist/components/context-menu/__tests__/viewer-context-menu.spec.d.ts.map +1 -0
- package/dist/components/context-menu/context-menu.d.ts +1 -0
- package/dist/components/context-menu/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/default-scene-tree-context-menu.d.ts +1 -0
- package/dist/components/context-menu/default-scene-tree-context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/default-viewer-context-menu.d.ts +1 -0
- package/dist/components/context-menu/default-viewer-context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/fly-out-context-menu.d.ts +1 -0
- package/dist/components/context-menu/fly-out-context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/__tests__/ghost-selected-menu-item.spec.d.ts +1 -0
- package/dist/components/context-menu/menu-items/__tests__/ghost-selected-menu-item.spec.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/__tests__/unghost-selected-menu-item.spec.d.ts +1 -0
- package/dist/components/context-menu/menu-items/__tests__/unghost-selected-menu-item.spec.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/fit-selected-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/fit-selected-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/fly-to-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/fly-to-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/ghost-selected-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/ghost-selected-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/hide-all-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/hide-all-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/hide-part-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/hide-part-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/hide-selected-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/hide-selected-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/show-all-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/show-all-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/show-model-views-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/show-model-views-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/show-only-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/show-only-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/show-only-selected-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/show-only-selected-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/show-properties-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/show-properties-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/menu-items/unghost-selected-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/unghost-selected-menu-item.d.ts.map +1 -0
- package/dist/components/context-menu/scene-tree-context-menu.d.ts +1 -0
- package/dist/components/context-menu/scene-tree-context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/viewer-context-menu.d.ts +1 -0
- package/dist/components/context-menu/viewer-context-menu.d.ts.map +1 -0
- package/dist/components/ghosting/__tests__/ghosting-panel-section.spec.d.ts +1 -0
- package/dist/components/ghosting/__tests__/ghosting-panel-section.spec.d.ts.map +1 -0
- package/dist/components/ghosting/ghosting-controls.d.ts +1 -0
- package/dist/components/ghosting/ghosting-controls.d.ts.map +1 -0
- package/dist/components/ghosting/ghosting-panel-section.d.ts +1 -0
- package/dist/components/ghosting/ghosting-panel-section.d.ts.map +1 -0
- package/dist/components/ghosting/scene-item-ghosting-clear.d.ts +1 -0
- package/dist/components/ghosting/scene-item-ghosting-clear.d.ts.map +1 -0
- package/dist/components/ghosting/scene-item-ghosting-opacity-slider.d.ts +1 -0
- package/dist/components/ghosting/scene-item-ghosting-opacity-slider.d.ts.map +1 -0
- package/dist/components/ghosting/scene-item-ghosting-toggle.d.ts +1 -0
- package/dist/components/ghosting/scene-item-ghosting-toggle.d.ts.map +1 -0
- package/dist/components/measurement/__tests__/measurement-context-menu.spec.d.ts +1 -0
- package/dist/components/measurement/__tests__/measurement-context-menu.spec.d.ts.map +1 -0
- package/dist/components/measurement/__tests__/point-to-point-measurement-tool.spec.d.ts +1 -0
- package/dist/components/measurement/__tests__/point-to-point-measurement-tool.spec.d.ts.map +1 -0
- package/dist/components/measurement/__tests__/point-to-point-measurement.spec.d.ts +1 -0
- package/dist/components/measurement/__tests__/point-to-point-measurement.spec.d.ts.map +1 -0
- package/dist/components/measurement/__tests__/precise-measurement-tool.spec.d.ts +1 -0
- package/dist/components/measurement/__tests__/precise-measurement-tool.spec.d.ts.map +1 -0
- package/dist/components/measurement/__tests__/precise-measurement.spec.d.ts +1 -0
- package/dist/components/measurement/__tests__/precise-measurement.spec.d.ts.map +1 -0
- package/dist/components/measurement/measurement-context-menu.d.ts +1 -0
- package/dist/components/measurement/measurement-context-menu.d.ts.map +1 -0
- package/dist/components/measurement/measurement-details.d.ts +1 -0
- package/dist/components/measurement/measurement-details.d.ts.map +1 -0
- package/dist/components/measurement/point-to-point-measurement-tool.d.ts +1 -0
- package/dist/components/measurement/point-to-point-measurement-tool.d.ts.map +1 -0
- package/dist/components/measurement/point-to-point-measurement.d.ts +1 -0
- package/dist/components/measurement/point-to-point-measurement.d.ts.map +1 -0
- package/dist/components/measurement/precise-measurement-tool.d.ts +1 -0
- package/dist/components/measurement/precise-measurement-tool.d.ts.map +1 -0
- package/dist/components/measurement/precise-measurement.d.ts +1 -0
- package/dist/components/measurement/precise-measurement.d.ts.map +1 -0
- package/dist/components/messages/application-messages.d.ts +1 -0
- package/dist/components/messages/application-messages.d.ts.map +1 -0
- package/dist/components/metadata/__tests__/metadata-panel.spec.d.ts +1 -0
- package/dist/components/metadata/__tests__/metadata-panel.spec.d.ts.map +1 -0
- package/dist/components/metadata/__tests__/metadata-property-value.spec.d.ts +1 -0
- package/dist/components/metadata/__tests__/metadata-property-value.spec.d.ts.map +1 -0
- package/dist/components/metadata/metadata-panel-contents.d.ts +1 -0
- package/dist/components/metadata/metadata-panel-contents.d.ts.map +1 -0
- package/dist/components/metadata/metadata-panel.d.ts +1 -0
- package/dist/components/metadata/metadata-panel.d.ts.map +1 -0
- package/dist/components/metadata/metadata-property-value.d.ts +1 -0
- package/dist/components/metadata/metadata-property-value.d.ts.map +1 -0
- package/dist/components/model-views/__tests__/model-views-panel-section.spec.d.ts +1 -0
- package/dist/components/model-views/__tests__/model-views-panel-section.spec.d.ts.map +1 -0
- package/dist/components/model-views/__tests__/pmi-annotation-secondary-panel.spec.d.ts +1 -0
- package/dist/components/model-views/__tests__/pmi-annotation-secondary-panel.spec.d.ts.map +1 -0
- package/dist/components/model-views/file-with-magnifying-glass-image.d.ts +1 -0
- package/dist/components/model-views/file-with-magnifying-glass-image.d.ts.map +1 -0
- package/dist/components/model-views/model-views-empty-state.d.ts +1 -0
- package/dist/components/model-views/model-views-empty-state.d.ts.map +1 -0
- package/dist/components/model-views/model-views-list.d.ts +1 -0
- package/dist/components/model-views/model-views-list.d.ts.map +1 -0
- package/dist/components/model-views/model-views-panel-section.d.ts +1 -0
- package/dist/components/model-views/model-views-panel-section.d.ts.map +1 -0
- package/dist/components/model-views/model-views-view-row.d.ts +1 -0
- package/dist/components/model-views/model-views-view-row.d.ts.map +1 -0
- package/dist/components/model-views/pmi-annotation-row.d.ts +1 -0
- package/dist/components/model-views/pmi-annotation-row.d.ts.map +1 -0
- package/dist/components/model-views/pmi-annotations-secondary-panel.d.ts +1 -0
- package/dist/components/model-views/pmi-annotations-secondary-panel.d.ts.map +1 -0
- package/dist/components/scene-tree/__tests__/scene-tree-secondary-panel.spec.d.ts +1 -0
- package/dist/components/scene-tree/__tests__/scene-tree-secondary-panel.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/__tests__/vertex-scene-tree-table-layout.spec.d.ts +1 -0
- package/dist/components/scene-tree/__tests__/vertex-scene-tree-table-layout.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/__tests__/vertex-scene-tree.spec.d.ts +1 -0
- package/dist/components/scene-tree/__tests__/vertex-scene-tree.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/__tests__/scene-tree-columns-popover.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/__tests__/scene-tree-columns-popover.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/__tests__/scene-tree-custom-column.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/__tests__/scene-tree-custom-column.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/__tests__/scene-tree-metadata-columns.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/__tests__/scene-tree-metadata-columns.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-columns-popover.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-columns-popover.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-custom-column.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-custom-column.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-metadata-check.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-metadata-check.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-metadata-columns.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-columns/scene-tree-metadata-columns.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-header.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-header.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/enter-scene-tree-search-mode-button.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/enter-scene-tree-search-mode-button.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/scene-tree-search-bar.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/scene-tree-search-bar.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/scene-tree-search-information-for-toolbar.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/scene-tree-search-information-for-toolbar.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/scene-tree-search-options-popover.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/__tests__/scene-tree-search-options-popover.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/enter-scene-tree-search-mode-button.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/enter-scene-tree-search-mode-button.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search-bar.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search-bar.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search-information-for-toolbar.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search-information-for-toolbar.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search-options-popover.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search-options-popover.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-search/scene-tree-search.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-secondary-panel.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-secondary-panel.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-table-layout.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-table-layout.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/__tests__/scene-tree-toolbar.spec.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/__tests__/scene-tree-toolbar.spec.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/scene-tree-collapse-all.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/scene-tree-collapse-all.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/scene-tree-expand-all.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/scene-tree-expand-all.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/scene-tree-toolbar.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree-toolbar/scene-tree-toolbar.d.ts.map +1 -0
- package/dist/components/scene-tree/scene-tree.d.ts +1 -0
- package/dist/components/scene-tree/scene-tree.d.ts.map +1 -0
- package/dist/components/settings/__tests__/units-panel-section.spec.d.ts +1 -0
- package/dist/components/settings/__tests__/units-panel-section.spec.d.ts.map +1 -0
- package/dist/components/settings/decimal-place-selector.d.ts +1 -0
- package/dist/components/settings/decimal-place-selector.d.ts.map +1 -0
- package/dist/components/settings/length-unit-selector.d.ts +1 -0
- package/dist/components/settings/length-unit-selector.d.ts.map +1 -0
- package/dist/components/settings/units-controls.d.ts +1 -0
- package/dist/components/settings/units-controls.d.ts.map +1 -0
- package/dist/components/settings/units-panel-section.d.ts +1 -0
- package/dist/components/settings/units-panel-section.d.ts.map +1 -0
- package/dist/components/sidebar/panel-section.d.ts +1 -0
- package/dist/components/sidebar/panel-section.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-icon.d.ts +1 -0
- package/dist/components/sidebar/sidebar-icon.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.d.ts +1 -0
- package/dist/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/__tests__/viewer-right-open-panel.spec.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/__tests__/viewer-right-open-panel.spec.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/__tests__/viewer-right-sidebar.spec.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/__tests__/viewer-right-sidebar.spec.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/appearance-panel.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/appearance-panel.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/model-views-panel.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/model-views-panel.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/settings-panel.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/settings-panel.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/transforms-panel.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/transforms-panel.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/viewer-right-open-panel.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/viewer-right-open-panel.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/viewer-right-panel-header.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/viewer-right-panel-header.d.ts.map +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/viewer-right-sidebar.d.ts +1 -0
- package/dist/components/sidebar/viewer-right-sidebar/viewer-right-sidebar.d.ts.map +1 -0
- package/dist/components/toolbar/__tests__/toolbar.spec.d.ts +1 -0
- package/dist/components/toolbar/__tests__/toolbar.spec.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section-alignment-popover-menu.spec.d.ts +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section-alignment-popover-menu.spec.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section-axis-popover-menu.spec.d.ts +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section-axis-popover-menu.spec.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section-offset-stepper.spec.d.ts +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section-offset-stepper.spec.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section.spec.d.ts +1 -0
- package/dist/components/toolbar/cross-section/__tests__/cross-section.spec.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/cross-section-alignment-popover-menu.d.ts +1 -0
- package/dist/components/toolbar/cross-section/cross-section-alignment-popover-menu.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/cross-section-axis-popover-menu.d.ts +1 -0
- package/dist/components/toolbar/cross-section/cross-section-axis-popover-menu.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/cross-section-offset-stepper.d.ts +1 -0
- package/dist/components/toolbar/cross-section/cross-section-offset-stepper.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/cross-section-popup-menu.d.ts +1 -0
- package/dist/components/toolbar/cross-section/cross-section-popup-menu.d.ts.map +1 -0
- package/dist/components/toolbar/cross-section/cross-section.d.ts +1 -0
- package/dist/components/toolbar/cross-section/cross-section.d.ts.map +1 -0
- package/dist/components/toolbar/default-toolbar.d.ts +1 -0
- package/dist/components/toolbar/default-toolbar.d.ts.map +1 -0
- package/dist/components/toolbar/fit-all.d.ts +1 -0
- package/dist/components/toolbar/fit-all.d.ts.map +1 -0
- package/dist/components/toolbar/pan.d.ts +1 -0
- package/dist/components/toolbar/pan.d.ts.map +1 -0
- package/dist/components/toolbar/rotate.d.ts +1 -0
- package/dist/components/toolbar/rotate.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar-divider.d.ts +1 -0
- package/dist/components/toolbar/toolbar-divider.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.d.ts +1 -0
- package/dist/components/toolbar/toolbar.d.ts.map +1 -0
- package/dist/components/toolbar/zoom.d.ts +1 -0
- package/dist/components/toolbar/zoom.d.ts.map +1 -0
- package/dist/components/transforms/__tests__/transform-panel-section.spec.d.ts +1 -0
- package/dist/components/transforms/__tests__/transform-panel-section.spec.d.ts.map +1 -0
- package/dist/components/transforms/__tests__/transform-widget.spec.d.ts +1 -0
- package/dist/components/transforms/__tests__/transform-widget.spec.d.ts.map +1 -0
- package/dist/components/transforms/transform-clear.d.ts +1 -0
- package/dist/components/transforms/transform-clear.d.ts.map +1 -0
- package/dist/components/transforms/transform-controls.d.ts +1 -0
- package/dist/components/transforms/transform-controls.d.ts.map +1 -0
- package/dist/components/transforms/transform-inputs.d.ts +1 -0
- package/dist/components/transforms/transform-inputs.d.ts.map +1 -0
- package/dist/components/transforms/transform-manipulator-toggle.d.ts +1 -0
- package/dist/components/transforms/transform-manipulator-toggle.d.ts.map +1 -0
- package/dist/components/transforms/transform-numeric-field.d.ts +1 -0
- package/dist/components/transforms/transform-numeric-field.d.ts.map +1 -0
- package/dist/components/transforms/transform-panel-section.d.ts +1 -0
- package/dist/components/transforms/transform-panel-section.d.ts.map +1 -0
- package/dist/components/transforms/transform-widget.d.ts +1 -0
- package/dist/components/transforms/transform-widget.d.ts.map +1 -0
- package/dist/components/viewer/__tests__/camera-type-menu.spec.d.ts +1 -0
- package/dist/components/viewer/__tests__/camera-type-menu.spec.d.ts.map +1 -0
- package/dist/components/viewer/__tests__/scene-reset.spec.d.ts +1 -0
- package/dist/components/viewer/__tests__/scene-reset.spec.d.ts.map +1 -0
- package/dist/components/viewer/__tests__/vertex-viewer-view-cube.spec.d.ts +1 -0
- package/dist/components/viewer/__tests__/vertex-viewer-view-cube.spec.d.ts.map +1 -0
- package/dist/components/viewer/__tests__/vertex-viewer.spec.d.ts +1 -0
- package/dist/components/viewer/__tests__/vertex-viewer.spec.d.ts.map +1 -0
- package/dist/components/viewer/camera-type-menu.d.ts +1 -0
- package/dist/components/viewer/camera-type-menu.d.ts.map +1 -0
- package/dist/components/viewer/scene-reset.d.ts +1 -0
- package/dist/components/viewer/scene-reset.d.ts.map +1 -0
- package/dist/components/viewer/vertex-viewer-view-cube.d.ts +1 -0
- package/dist/components/viewer/vertex-viewer-view-cube.d.ts.map +1 -0
- package/dist/components/viewer/vertex-viewer.d.ts +1 -0
- package/dist/components/viewer/vertex-viewer.d.ts.map +1 -0
- package/dist/events-listener.d.ts +1 -0
- package/dist/events-listener.d.ts.map +1 -0
- package/dist/index.css +1 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/root.d.ts +1 -0
- package/dist/root.d.ts.map +1 -0
- package/dist/state/appearance/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/appearance/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/appearance/actions.d.ts +1 -0
- package/dist/state/appearance/actions.d.ts.map +1 -0
- package/dist/state/appearance/feature-edges.d.ts +1 -0
- package/dist/state/appearance/feature-edges.d.ts.map +1 -0
- package/dist/state/appearance/index.d.ts +1 -0
- package/dist/state/appearance/index.d.ts.map +1 -0
- package/dist/state/appearance/material.d.ts +1 -0
- package/dist/state/appearance/material.d.ts.map +1 -0
- package/dist/state/appearance/selection-highlighting.d.ts +1 -0
- package/dist/state/appearance/selection-highlighting.d.ts.map +1 -0
- package/dist/state/appearance/types.d.ts +1 -0
- package/dist/state/appearance/types.d.ts.map +1 -0
- package/dist/state/appearance/viewer-background.d.ts +1 -0
- package/dist/state/appearance/viewer-background.d.ts.map +1 -0
- package/dist/state/box-selection/actions.d.ts +1 -0
- package/dist/state/box-selection/actions.d.ts.map +1 -0
- package/dist/state/box-selection/box-selection.d.ts +1 -0
- package/dist/state/box-selection/box-selection.d.ts.map +1 -0
- package/dist/state/box-selection/index.d.ts +1 -0
- package/dist/state/box-selection/index.d.ts.map +1 -0
- package/dist/state/config/config.d.ts +1 -0
- package/dist/state/config/config.d.ts.map +1 -0
- package/dist/state/config/index.d.ts +1 -0
- package/dist/state/config/index.d.ts.map +1 -0
- package/dist/state/context-menu/actions.d.ts +1 -0
- package/dist/state/context-menu/actions.d.ts.map +1 -0
- package/dist/state/context-menu/backdrop.d.ts +1 -0
- package/dist/state/context-menu/backdrop.d.ts.map +1 -0
- package/dist/state/context-menu/context-menu.d.ts +1 -0
- package/dist/state/context-menu/context-menu.d.ts.map +1 -0
- package/dist/state/context-menu/index.d.ts +1 -0
- package/dist/state/context-menu/index.d.ts.map +1 -0
- package/dist/state/cross-section/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/cross-section/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/cross-section/actions.d.ts +1 -0
- package/dist/state/cross-section/actions.d.ts.map +1 -0
- package/dist/state/cross-section/cross-section.d.ts +1 -0
- package/dist/state/cross-section/cross-section.d.ts.map +1 -0
- package/dist/state/cross-section/index.d.ts +1 -0
- package/dist/state/cross-section/index.d.ts.map +1 -0
- package/dist/state/ghosting/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/ghosting/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/ghosting/actions.d.ts +1 -0
- package/dist/state/ghosting/actions.d.ts.map +1 -0
- package/dist/state/ghosting/ghosting.d.ts +1 -0
- package/dist/state/ghosting/ghosting.d.ts.map +1 -0
- package/dist/state/ghosting/index.d.ts +1 -0
- package/dist/state/ghosting/index.d.ts.map +1 -0
- package/dist/state/hits/__tests__/hits.spec.d.ts +1 -0
- package/dist/state/hits/__tests__/hits.spec.d.ts.map +1 -0
- package/dist/state/hits/actions.d.ts +1 -0
- package/dist/state/hits/actions.d.ts.map +1 -0
- package/dist/state/hits/event-state.d.ts +1 -0
- package/dist/state/hits/event-state.d.ts.map +1 -0
- package/dist/state/hits/hits.d.ts +1 -0
- package/dist/state/hits/hits.d.ts.map +1 -0
- package/dist/state/hits/index.d.ts +1 -0
- package/dist/state/hits/index.d.ts.map +1 -0
- package/dist/state/keybinding/__tests__/long-press.spec.d.ts +1 -0
- package/dist/state/keybinding/__tests__/long-press.spec.d.ts.map +1 -0
- package/dist/state/keybinding/default-keybindings.d.ts +1 -0
- package/dist/state/keybinding/default-keybindings.d.ts.map +1 -0
- package/dist/state/keybinding/index.d.ts +1 -0
- package/dist/state/keybinding/index.d.ts.map +1 -0
- package/dist/state/keybinding/keybinding.d.ts +1 -0
- package/dist/state/keybinding/keybinding.d.ts.map +1 -0
- package/dist/state/keybinding/long-press.d.ts +1 -0
- package/dist/state/keybinding/long-press.d.ts.map +1 -0
- package/dist/state/keybinding/targets.d.ts +1 -0
- package/dist/state/keybinding/targets.d.ts.map +1 -0
- package/dist/state/measurement/actions.d.ts +1 -0
- package/dist/state/measurement/actions.d.ts.map +1 -0
- package/dist/state/measurement/index.d.ts +1 -0
- package/dist/state/measurement/index.d.ts.map +1 -0
- package/dist/state/measurement/measurement.d.ts +1 -0
- package/dist/state/measurement/measurement.d.ts.map +1 -0
- package/dist/state/measurement/point-to-point-measurement.d.ts +1 -0
- package/dist/state/measurement/point-to-point-measurement.d.ts.map +1 -0
- package/dist/state/measurement/precise-measurement.d.ts +1 -0
- package/dist/state/measurement/precise-measurement.d.ts.map +1 -0
- package/dist/state/messages/actions.d.ts +1 -0
- package/dist/state/messages/actions.d.ts.map +1 -0
- package/dist/state/messages/index.d.ts +1 -0
- package/dist/state/messages/index.d.ts.map +1 -0
- package/dist/state/messages/messages.d.ts +1 -0
- package/dist/state/messages/messages.d.ts.map +1 -0
- package/dist/state/metadata/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/metadata/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/metadata/actions.d.ts +1 -0
- package/dist/state/metadata/actions.d.ts.map +1 -0
- package/dist/state/metadata/index.d.ts +1 -0
- package/dist/state/metadata/index.d.ts.map +1 -0
- package/dist/state/metadata/metadata.d.ts +1 -0
- package/dist/state/metadata/metadata.d.ts.map +1 -0
- package/dist/state/metadata/types.d.ts +1 -0
- package/dist/state/metadata/types.d.ts.map +1 -0
- package/dist/state/model-views/__tests__/pmi-annotations.spec.d.ts +1 -0
- package/dist/state/model-views/__tests__/pmi-annotations.spec.d.ts.map +1 -0
- package/dist/state/model-views/actions.d.ts +1 -0
- package/dist/state/model-views/actions.d.ts.map +1 -0
- package/dist/state/model-views/index.d.ts +1 -0
- package/dist/state/model-views/index.d.ts.map +1 -0
- package/dist/state/model-views/model-views.d.ts +1 -0
- package/dist/state/model-views/model-views.d.ts.map +1 -0
- package/dist/state/model-views/pmi-annotations.d.ts +1 -0
- package/dist/state/model-views/pmi-annotations.d.ts.map +1 -0
- package/dist/state/panel/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/panel/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/panel/actions.d.ts +1 -0
- package/dist/state/panel/actions.d.ts.map +1 -0
- package/dist/state/panel/index.d.ts +1 -0
- package/dist/state/panel/index.d.ts.map +1 -0
- package/dist/state/panel/panel.d.ts +1 -0
- package/dist/state/panel/panel.d.ts.map +1 -0
- package/dist/state/performance/index.d.ts +1 -0
- package/dist/state/performance/index.d.ts.map +1 -0
- package/dist/state/performance/types.d.ts +1 -0
- package/dist/state/performance/types.d.ts.map +1 -0
- package/dist/state/scene-tree/columns/actions.d.ts +1 -0
- package/dist/state/scene-tree/columns/actions.d.ts.map +1 -0
- package/dist/state/scene-tree/columns/columns.d.ts +1 -0
- package/dist/state/scene-tree/columns/columns.d.ts.map +1 -0
- package/dist/state/scene-tree/columns/index.d.ts +1 -0
- package/dist/state/scene-tree/columns/index.d.ts.map +1 -0
- package/dist/state/scene-tree/columns/open-positioned-popover.d.ts +1 -0
- package/dist/state/scene-tree/columns/open-positioned-popover.d.ts.map +1 -0
- package/dist/state/scene-tree/core/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/scene-tree/core/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/scene-tree/core/actions.d.ts +1 -0
- package/dist/state/scene-tree/core/actions.d.ts.map +1 -0
- package/dist/state/scene-tree/core/core.d.ts +1 -0
- package/dist/state/scene-tree/core/core.d.ts.map +1 -0
- package/dist/state/scene-tree/core/index.d.ts +1 -0
- package/dist/state/scene-tree/core/index.d.ts.map +1 -0
- package/dist/state/scene-tree/index.d.ts +1 -0
- package/dist/state/scene-tree/index.d.ts.map +1 -0
- package/dist/state/scene-tree/metadata/index.d.ts +1 -0
- package/dist/state/scene-tree/metadata/index.d.ts.map +1 -0
- package/dist/state/scene-tree/metadata/metadata.d.ts +1 -0
- package/dist/state/scene-tree/metadata/metadata.d.ts.map +1 -0
- package/dist/state/scene-tree/search/actions.d.ts +1 -0
- package/dist/state/scene-tree/search/actions.d.ts.map +1 -0
- package/dist/state/scene-tree/search/index.d.ts +1 -0
- package/dist/state/scene-tree/search/index.d.ts.map +1 -0
- package/dist/state/scene-tree/search/search.d.ts +1 -0
- package/dist/state/scene-tree/search/search.d.ts.map +1 -0
- package/dist/state/scene-tree/types.d.ts +1 -0
- package/dist/state/scene-tree/types.d.ts.map +1 -0
- package/dist/state/scene-view-item/actions.d.ts +1 -0
- package/dist/state/scene-view-item/actions.d.ts.map +1 -0
- package/dist/state/scene-view-item/index.d.ts +1 -0
- package/dist/state/scene-view-item/index.d.ts.map +1 -0
- package/dist/state/scene-view-item/items.d.ts +1 -0
- package/dist/state/scene-view-item/items.d.ts.map +1 -0
- package/dist/state/selection/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/selection/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/selection/actions.d.ts +1 -0
- package/dist/state/selection/actions.d.ts.map +1 -0
- package/dist/state/selection/event-state.d.ts +1 -0
- package/dist/state/selection/event-state.d.ts.map +1 -0
- package/dist/state/selection/index.d.ts +1 -0
- package/dist/state/selection/index.d.ts.map +1 -0
- package/dist/state/selection/selection.d.ts +1 -0
- package/dist/state/selection/selection.d.ts.map +1 -0
- package/dist/state/settings/index.d.ts +1 -0
- package/dist/state/settings/index.d.ts.map +1 -0
- package/dist/state/settings/settings.d.ts +3 -1
- package/dist/state/settings/settings.d.ts.map +1 -0
- package/dist/state/transforms/actions.d.ts +1 -0
- package/dist/state/transforms/actions.d.ts.map +1 -0
- package/dist/state/transforms/edit-transforms.d.ts +1 -0
- package/dist/state/transforms/edit-transforms.d.ts.map +1 -0
- package/dist/state/transforms/index.d.ts +1 -0
- package/dist/state/transforms/index.d.ts.map +1 -0
- package/dist/state/transforms/transforms.d.ts +1 -0
- package/dist/state/transforms/transforms.d.ts.map +1 -0
- package/dist/state/viewer/camera/__tests__/actions.spec.d.ts +1 -0
- package/dist/state/viewer/camera/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/state/viewer/camera/actions.d.ts +1 -0
- package/dist/state/viewer/camera/actions.d.ts.map +1 -0
- package/dist/state/viewer/camera/camera.d.ts +1 -0
- package/dist/state/viewer/camera/camera.d.ts.map +1 -0
- package/dist/state/viewer/camera/index.d.ts +1 -0
- package/dist/state/viewer/camera/index.d.ts.map +1 -0
- package/dist/state/viewer/core/core.d.ts +1 -0
- package/dist/state/viewer/core/core.d.ts.map +1 -0
- package/dist/state/viewer/core/index.d.ts +1 -0
- package/dist/state/viewer/core/index.d.ts.map +1 -0
- package/dist/state/viewer/frame/actions.d.ts +1 -0
- package/dist/state/viewer/frame/actions.d.ts.map +1 -0
- package/dist/state/viewer/index.d.ts +1 -0
- package/dist/state/viewer/index.d.ts.map +1 -0
- package/dist/state/viewer/scene/actions.d.ts +1 -0
- package/dist/state/viewer/scene/actions.d.ts.map +1 -0
- package/dist/state/viewer/scene/index.d.ts +1 -0
- package/dist/state/viewer/scene/index.d.ts.map +1 -0
- package/dist/state/viewer/scene/item-operations.d.ts +1 -0
- package/dist/state/viewer/scene/item-operations.d.ts.map +1 -0
- package/dist/state/viewer/scene/pmi-annotation-operations.d.ts +1 -0
- package/dist/state/viewer/scene/pmi-annotation-operations.d.ts.map +1 -0
- package/dist/state/viewer/scene/scene.d.ts +1 -0
- package/dist/state/viewer/scene/scene.d.ts.map +1 -0
- package/dist/testing/__setup__/mocks.d.ts +1 -0
- package/dist/testing/__setup__/mocks.d.ts.map +1 -0
- package/dist/testing/additional-hooks-wrapper.d.ts +1 -0
- package/dist/testing/additional-hooks-wrapper.d.ts.map +1 -0
- package/dist/testing/color-materials.d.ts +1 -0
- package/dist/testing/color-materials.d.ts.map +1 -0
- package/dist/testing/react.d.ts +1 -0
- package/dist/testing/react.d.ts.map +1 -0
- package/dist/testing/recoil-observer.d.ts +1 -0
- package/dist/testing/recoil-observer.d.ts.map +1 -0
- package/dist/testing/recoil-state.d.ts +1 -0
- package/dist/testing/recoil-state.d.ts.map +1 -0
- package/dist/testing/recoil-wrapper.d.ts +1 -0
- package/dist/testing/recoil-wrapper.d.ts.map +1 -0
- package/dist/testing/viewer.d.ts +1 -0
- package/dist/testing/viewer.d.ts.map +1 -0
- package/dist/util/appearance/color.d.ts +1 -0
- package/dist/util/appearance/color.d.ts.map +1 -0
- package/dist/util/camera/__tests__/camera.spec.d.ts +1 -0
- package/dist/util/camera/__tests__/camera.spec.d.ts.map +1 -0
- package/dist/util/camera/camera.d.ts +1 -0
- package/dist/util/camera/camera.d.ts.map +1 -0
- package/dist/util/cross-section/__tests__/interaction-handler.spec.d.ts +1 -0
- package/dist/util/cross-section/__tests__/interaction-handler.spec.d.ts.map +1 -0
- package/dist/util/cross-section/__tests__/section-plane.spec.d.ts +1 -0
- package/dist/util/cross-section/__tests__/section-plane.spec.d.ts.map +1 -0
- package/dist/util/cross-section/interaction-handler.d.ts +1 -0
- package/dist/util/cross-section/interaction-handler.d.ts.map +1 -0
- package/dist/util/cross-section/section-plane.d.ts +1 -0
- package/dist/util/cross-section/section-plane.d.ts.map +1 -0
- package/dist/util/dom/boolean-attributes.d.ts +1 -0
- package/dist/util/dom/boolean-attributes.d.ts.map +1 -0
- package/dist/util/dom/elements.d.ts +1 -0
- package/dist/util/dom/elements.d.ts.map +1 -0
- package/dist/util/geometry/__tests__/bounding-box.spec.d.ts +1 -0
- package/dist/util/geometry/__tests__/bounding-box.spec.d.ts.map +1 -0
- package/dist/util/geometry/__tests__/vector3.spec.d.ts +1 -0
- package/dist/util/geometry/__tests__/vector3.spec.d.ts.map +1 -0
- package/dist/util/geometry/bounding-box.d.ts +1 -0
- package/dist/util/geometry/bounding-box.d.ts.map +1 -0
- package/dist/util/geometry/vector3.d.ts +1 -0
- package/dist/util/geometry/vector3.d.ts.map +1 -0
- package/dist/util/logging/__tests__/logger.spec.d.ts +1 -0
- package/dist/util/logging/__tests__/logger.spec.d.ts.map +1 -0
- package/dist/util/logging/index.d.ts +1 -0
- package/dist/util/logging/index.d.ts.map +1 -0
- package/dist/util/logging/logger.d.ts +1 -0
- package/dist/util/logging/logger.d.ts.map +1 -0
- package/dist/util/numbers/distance-units.d.ts +3 -14
- package/dist/util/numbers/distance-units.d.ts.map +1 -0
- package/dist/util/popover/popover.d.ts +1 -0
- package/dist/util/popover/popover.d.ts.map +1 -0
- package/dist/util/react/children.d.ts +1 -0
- package/dist/util/react/children.d.ts.map +1 -0
- package/dist/util/recoil/__tests__/actions.spec.d.ts +1 -0
- package/dist/util/recoil/__tests__/actions.spec.d.ts.map +1 -0
- package/dist/util/recoil/actions.d.ts +1 -0
- package/dist/util/recoil/actions.d.ts.map +1 -0
- package/dist/util/recoil/loadable.d.ts +1 -0
- package/dist/util/recoil/loadable.d.ts.map +1 -0
- package/dist/util/recoil/reducer.d.ts +1 -0
- package/dist/util/recoil/reducer.d.ts.map +1 -0
- package/dist/util/refs/__tests__/when-component-ready.spec.d.ts +1 -0
- package/dist/util/refs/__tests__/when-component-ready.spec.d.ts.map +1 -0
- package/dist/util/refs/callback-ref.d.ts +1 -0
- package/dist/util/refs/callback-ref.d.ts.map +1 -0
- package/dist/util/refs/debounce.d.ts +1 -0
- package/dist/util/refs/debounce.d.ts.map +1 -0
- package/dist/util/refs/recoil-ref.d.ts +1 -0
- package/dist/util/refs/recoil-ref.d.ts.map +1 -0
- package/dist/util/refs/when-component-ready.d.ts +1 -0
- package/dist/util/refs/when-component-ready.d.ts.map +1 -0
- package/dist/util/scene-tree/customization.d.ts +1 -0
- package/dist/util/scene-tree/customization.d.ts.map +1 -0
- package/dist/util/sdk-mapping/__tests__/config.spec.d.ts +1 -0
- package/dist/util/sdk-mapping/__tests__/config.spec.d.ts.map +1 -0
- package/dist/util/sdk-mapping/config.d.ts +1 -0
- package/dist/util/sdk-mapping/config.d.ts.map +1 -0
- package/dist/util/state/synced-value.d.ts +1 -0
- package/dist/util/state/synced-value.d.ts.map +1 -0
- package/dist/util/transforms/transforms.d.ts +1 -0
- package/dist/util/transforms/transforms.d.ts.map +1 -0
- package/package.json +27 -25
package/dist/bundle.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import a from"quick-format-unescaped";import{useRecoilCallback as i,atom as o,selector as r,useRecoilValue as s,atomFamily as l,useSetRecoilState as c,selectorFamily as d,DefaultValue as u,useRecoilValueLoadable as m,useRecoilStateLoadable as p,useRecoilState as h,RecoilRoot as f}from"recoil";import{BoundingBox as g,Vector3 as v,Point as b,Euler as w,Matrix4 as C,Angle as S}from"@vertexvis/geometry";import*as k from"react";import A,{useEffect as T,useCallback as P,useRef as M,useState as E,useMemo as I}from"react";import{toWorldTransform as N,toLocalTransform as O,toMatrix as V,toRadiansTransform as L,ColorMaterial as _}from"@vertexvis/viewer";import{VertexColorPicker as R,VertexSlider as D,VertexRadioGroup as B,VertexRadio as
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import a from"quick-format-unescaped";import{useRecoilCallback as i,atom as o,selector as r,useRecoilValue as s,atomFamily as l,useSetRecoilState as c,selectorFamily as d,DefaultValue as u,useRecoilValueLoadable as m,useRecoilStateLoadable as p,useRecoilState as h,RecoilRoot as f}from"recoil";import{BoundingBox as g,Vector3 as v,Point as b,Euler as w,Matrix4 as C,Angle as S}from"@vertexvis/geometry";import*as k from"react";import A,{useEffect as T,useCallback as P,useRef as M,useState as E,useMemo as I}from"react";import{toWorldTransform as N,toLocalTransform as O,toMatrix as V,toRadiansTransform as L,ColorMaterial as _}from"@vertexvis/viewer";import{VertexColorPicker as R,VertexSlider as D,VertexRadioGroup as B,VertexRadio as j,VertexToggle as H,VertexTooltip as F,VertexIconButton as W,VertexDialog as U,VertexButton as G,VertexColorSwatch as K,VertexIcon as $,VertexDropdownMenu as q,VertexMenuItem as Y,VertexResizable as X,VertexMenu as Z,VertexMenuDivider as J,VertexDraggablePopover as Q,VertexBanner as ee,VertexToast as te,VertexPopover as ne,VertexTextfield as ae,VertexSelect as ie,VertexSpinner as oe}from"@vertexvis/ui-react";import{VertexViewerMeasurementDetails as re,VertexViewerMeasurementDistance as se,VertexViewerMeasurementPrecise as le,VertexSceneTreeSearch as ce,VertexSceneTreeToolbar as de,VertexSceneTreeNotificationBanner as ue,VertexSceneTreeTableColumn as me,VertexSceneTreeTableLayout as pe,VertexSceneTree as he,VertexViewerToolbarGroup as fe,VertexViewerToolbar as ge,VertexViewerTransformWidget as ve,VertexViewerBoxQueryTool as ye,VertexViewerViewCube as be,VertexViewer as we}from"@vertexvis/viewer-react";import Ce from"prop-types";import{defineCustomElements as Se}from"@vertexvis/ui/loader";import{defineCustomElements as xe}from"@vertexvis/viewer/loader";var extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)};function __extends(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function __(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){return __assign=Object.assign||function __assign(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},__assign.apply(this,arguments)};function __read(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a=n.call(e),i,o=[],r;try{for(;(void 0===t||t-- >0)&&!(i=a.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o}"function"==typeof SuppressedError&&SuppressedError;var ke=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/,Ae=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(.+)\s*\)/,Te=/^(#|0x)?([A-Fa-f0-9]{6})$/,create$2=function(e,t,n,a){return void 0===a&&(a=255),{r:e,g:t,b:n,a:a}},fromNumber=function(e){var t=16777215&e;return create$2(t>>16&255,t>>8&255,255&t)},fromHexString=function(e){var t=Te.exec(e);if(null!=t)return fromNumber(parseInt(t[2],16))},fromCss=function(e){var t=ke.exec(e);if(null!=t)return create$2(parseInt(t[1]),parseInt(t[2]),parseInt(t[3]));var n=Ae.exec(e);return null!=n?create$2(parseInt(n[1]),parseInt(n[2]),parseInt(n[3]),Math.floor(255*parseFloat(n[4]))):Te.test(e)?fromHexString(e):void 0},fromArray=function(e){return create$2(e[0],e[1],e[2],e[3])},isInvisible=function(e){return 0===e.a},isOpaque=function(e){return 255===e.a},toHexString=function(e){return"#".concat(componentToHex(e.r)).concat(componentToHex(e.g)).concat(componentToHex(e.b))},componentToHex=function(e){var t=e.toString(16);return 1===t.length?"0"+t:t},Pe=Object.freeze({__proto__:null,create:create$2,fromNumber:fromNumber,fromHexString:fromHexString,fromCss:fromCss,fromArray:fromArray,isInvisible:isInvisible,isOpaque:isOpaque,toHexString:toHexString});!function(e){function MapperValidationError(t){var n=e.call(this,"Validation error mapping object.")||this;return n.errors=t,Object.setPrototypeOf(n,MapperValidationError.prototype),n}__extends(MapperValidationError,e)}(Error);var Me=function equal(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var n,a,i;if(Array.isArray(e)){if((n=e.length)!=t.length)return!1;for(a=n;0!==a--;)if(!equal(e[a],t[a]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((n=(i=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(a=n;0!==a--;)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return!1;for(a=n;0!==a--;){var o=i[a];if(!equal(e[o],t[o]))return!1}return!0}return e!=e&&t!=t};
|
|
2
2
|
/*!
|
|
3
3
|
* isobject <https://github.com/jonschlinkert/isobject>
|
|
4
4
|
*
|
|
@@ -10,10 +10,10 @@ import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import a from"qu
|
|
|
10
10
|
*
|
|
11
11
|
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
12
12
|
* Released under the MIT License.
|
|
13
|
-
*/function isObjectObject(e){return!0===isObject(e)&&"[object Object]"===Object.prototype.toString.call(e)}function isPlainObject$1(e){var t,n;return!1!==isObjectObject(e)&&("function"==typeof(t=e.constructor)&&(!1!==isObjectObject(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}function defaults(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=__read(e),a=n[0],i=n.slice(1),o=__assign({},a);if(0===i.length)return o;if(1===i.length){var r=i[0];for(var s in r)null==o[s]?o[s]=r[s]:isPlainObject(o[s])&&(o[s]=defaults(o[s],r[s]));return o}return i.reduce((function(e,t){return defaults(e,t)}),a)}function isPlainObject(e){return isPlainObject$1(e)}function isEqual$1(e,t){return Me(e,t)}function toPairs(e){return null!=e?Object.keys(e).map((function(t){return[t,e[t]]})):[]}function fromPairs(e){return Array.isArray(e)?e.reduce((function(e,t){var n;return null!=t?__assign(__assign({},e),((n={})[t[0]]=t[1],n)):e}),{}):{}}var Ee=Object.freeze({__proto__:null,defaults:defaults,isPlainObject:isPlainObject,isEqual:isEqual$1,toPairs:toPairs,fromPairs:fromPairs}),Ie,Ne=new Uint8Array(16);function rng(){if(!Ie&&!(Ie="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Ie(Ne)}var Oe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(e){return"string"==typeof e&&Oe.test(e)}for(var Ve=[],Le=0;Le<256;++Le)Ve.push((Le+256).toString(16).substr(1));function stringify(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(Ve[e[t+0]]+Ve[e[t+1]]+Ve[e[t+2]]+Ve[e[t+3]]+"-"+Ve[e[t+4]]+Ve[e[t+5]]+"-"+Ve[e[t+6]]+Ve[e[t+7]]+"-"+Ve[e[t+8]]+Ve[e[t+9]]+"-"+Ve[e[t+10]]+Ve[e[t+11]]+Ve[e[t+12]]+Ve[e[t+13]]+Ve[e[t+14]]+Ve[e[t+15]]).toLowerCase();if(!validate(n))throw TypeError("Stringified UUID is invalid");return n}function v4(e,t,n){var a=(e=e||{}).random||(e.rng||rng)();return a[6]=15&a[6]|64,a[8]=63&a[8]|128,stringify(a)}function create$1(){return v4()}function fromMsbLsb(e,t){function digits(e,t){var n=BigInt(1)<<t*BigInt(4);return(n|e&n-BigInt(1)).toString(16).substring(1)}var n="string"==typeof e?BigInt(e):e,a="string"==typeof t?BigInt(t):t,i=digits(n>>BigInt(32),BigInt(8)),o=digits(n>>BigInt(16),BigInt(4)),r=digits(n,BigInt(4)),s=digits(a>>BigInt(48),BigInt(4)),l=digits(a,BigInt(12));return"".concat(i,"-").concat(o,"-").concat(r,"-").concat(s,"-").concat(l)}function toMsbLsb(e){var t=__read(e.split("-"),5),n=t[0],a=t[1],i=t[2],o=t[3],r=t[4];if(null==n||null==a||null==i||null==o||null==r)throw new Error("Invalid UUID string ".concat(e));var s=BigInt.asIntN(64,BigInt("0x".concat(n+a+i))),l=BigInt.asIntN(64,BigInt("0x".concat(o+r)));return{msb:s.toString(),lsb:l.toString()}}var _e=Object.freeze({__proto__:null,create:create$1,fromMsbLsb:fromMsbLsb,toMsbLsb:toMsbLsb}),Re={exports:{}};const De=a;Re.exports=pino;const ze=pfGlobalThisOrFallback().console||{},Be={mapHttpRequest:mock,mapHttpResponse:mock,wrapRequestSerializer:passthrough,wrapResponseSerializer:passthrough,wrapErrorSerializer:passthrough,req:mock,res:mock,err:asErrValue,errWithCause:asErrValue};function levelToValue(e,t){return"silent"===e?1/0:t.levels.values[e]}const He=Symbol("pino.logFuncs"),je=Symbol("pino.hierarchy"),Fe={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function appendChildLogger(e,t){const n={logger:t,parent:e[je]};t[je]=n}function setupBaseLogFunctions(e,t,n){const a={};t.forEach((e=>{a[e]=n[e]?n[e]:ze[e]||ze[Fe[e]||"log"]||noop})),e[He]=a}function shouldSerialize(e,t){if(Array.isArray(e)){const t=undefined;return e.filter((function(e){return"!stdSerializers.err"!==e}))}return!0===e&&Object.keys(t)}function pino(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const n=e.browser.write||ze;e.browser.write&&(e.browser.asObject=!0);const a=e.serializers||{},i=shouldSerialize(e.browser.serialize,a);let o=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(o=!1);const r=Object.keys(e.customLevels||{}),s=["error","fatal","warn","info","debug","trace"].concat(r);"function"==typeof n&&s.forEach((function(e){n[e]=n})),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");const l=e.level||"info",c=Object.create(n);c.log||(c.log=noop),setupBaseLogFunctions(c,s,n),appendChildLogger({},c),Object.defineProperty(c,"levelVal",{get:getLevelVal}),Object.defineProperty(c,"level",{get:getLevel,set:setLevel});const d={transmit:t,serialize:i,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,levels:s,timestamp:getTimeFunction(e),messageKey:e.messageKey||"msg",onChild:e.onChild||noop};function getLevelVal(){return levelToValue(this.level,this)}function getLevel(){return this._level}function setLevel(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,set(this,d,c,"error"),set(this,d,c,"fatal"),set(this,d,c,"warn"),set(this,d,c,"info"),set(this,d,c,"debug"),set(this,d,c,"trace"),r.forEach((e=>{set(this,d,c,e)}))}function child(n,o,r){if(!o)throw new Error("missing bindings for child Pino");r=r||{},i&&o.serializers&&(r.serializers=o.serializers);const s=r.serializers;if(i&&s){var l=Object.assign({},a,s),c=!0===e.browser.serialize?Object.keys(l):i;delete o.serializers,applySerializers([o],c,l,this._stdErrSerialize)}function Child(e){this._childLevel=1+(0|e._childLevel),this.bindings=o,l&&(this.serializers=l,this._serialize=c),t&&(this._logEvent=createLogEventShape([].concat(e._logEvent.bindings,o)))}Child.prototype=this;const d=new Child(this);return appendChildLogger(this,d),d.child=function(...e){return child.call(this,n,...e)},d.level=r.level||this.level,n.onChild(d),d}return c.levels=getLevels(e),c.level=l,c.isLevelEnabled=function(e){return!!this.levels.values[e]&&this.levels.values[e]>=this.levels.values[this.level]},c.setMaxListeners=c.getMaxListeners=c.emit=c.addListener=c.on=c.prependListener=c.once=c.prependOnceListener=c.removeListener=c.removeAllListeners=c.listeners=c.listenerCount=c.eventNames=c.write=c.flush=noop,c.serializers=a,c._serialize=i,c._stdErrSerialize=o,c.child=function(...e){return child.call(this,d,...e)},t&&(c._logEvent=createLogEventShape()),c}function getLevels(e){const t=e.customLevels||{},n=undefined,a=undefined;return{values:Object.assign({},pino.levels.values,t),labels:Object.assign({},pino.levels.labels,invertObject(t))}}function invertObject(e){const t={};return Object.keys(e).forEach((function(n){t[e[n]]=n})),t}function getBindingChain(e){const t=[];e.bindings&&t.push(e.bindings);let n=e[je];for(;n.parent;)n=n.parent,n.logger.bindings&&t.push(n.logger.bindings);return t.reverse()}function set(e,t,n,a){if(Object.defineProperty(e,a,{value:levelToValue(e.level,n)>levelToValue(a,n)?noop:n[He][a],writable:!0,enumerable:!0,configurable:!0}),e[a]===noop){if(!t.transmit)return;const i=undefined,o=levelToValue(t.transmit.level||e.level,n),r=undefined;if(levelToValue(a,n)<o)return}e[a]=createWrap(e,t,n,a);const i=getBindingChain(e);0!==i.length&&(e[a]=prependBindingsInArguments(i,e[a]))}function prependBindingsInArguments(e,t){return function(){return t.apply(this,[...e,...arguments])}}function createWrap(e,t,n,a){return i=e[He][a],function LOG(){const o=t.timestamp(),r=new Array(arguments.length),s=Object.getPrototypeOf&&Object.getPrototypeOf(this)===ze?ze:this;for(var l=0;l<r.length;l++)r[l]=arguments[l];var c=!1;if(t.serialize&&(applySerializers(r,this._serialize,this.serializers,this._stdErrSerialize),c=!0),t.asObject||t.formatters?i.call(s,...asObject(this,a,r,o,t)):i.apply(s,r),t.transmit){const i=void 0,s=levelToValue(t.transmit.level||e._level,n),l=levelToValue(a,n);if(l<s)return;transmit(this,{ts:o,methodLevel:a,methodValue:l,transmitValue:n.levels.values[t.transmit.level||e._level],send:t.transmit.send,val:levelToValue(e._level,n)},r,c)}};var i}function asObject(e,t,n,a,i){const{level:o,log:r=e=>e}=i.formatters||{},s=n.slice();let l=s[0];const c={};let d=1+(0|e._childLevel);if(d<1&&(d=1),a&&(c.time=a),o){const n=o(t,e.levels.values[t]);Object.assign(c,n)}else c.level=e.levels.values[t];if(i.asObjectBindingsOnly){if(null!==l&&"object"==typeof l)for(;d--&&"object"==typeof s[0];)Object.assign(c,s.shift());const e=undefined;return[r(c),...s]}{if(null!==l&&"object"==typeof l){for(;d--&&"object"==typeof s[0];)Object.assign(c,s.shift());l=s.length?De(s.shift(),s):void 0}else"string"==typeof l&&(l=De(s.shift(),s));void 0!==l&&(c[i.messageKey]=l);const e=undefined;return[r(c)]}}function applySerializers(e,t,n,a){for(const i in e)if(a&&e[i]instanceof Error)e[i]=pino.stdSerializers.err(e[i]);else if("object"==typeof e[i]&&!Array.isArray(e[i])&&t)for(const a in e[i])t.indexOf(a)>-1&&a in n&&(e[i][a]=n[a](e[i][a]))}function transmit(e,t,n,a=!1){const i=t.send,o=t.ts,r=t.methodLevel,s=t.methodValue,l=t.val,c=e._logEvent.bindings;a||applySerializers(n,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=o,e._logEvent.messages=n.filter((function(e){return-1===c.indexOf(e)})),e._logEvent.level.label=r,e._logEvent.level.value=s,i(r,e._logEvent,l),e._logEvent=createLogEventShape(c)}function createLogEventShape(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function asErrValue(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const n in e)void 0===t[n]&&(t[n]=e[n]);return t}function getTimeFunction(e){return"function"==typeof e.timestamp?e.timestamp:!1===e.timestamp?nullTime:epochTime}function mock(){return{}}function passthrough(e){return e}function noop(){}function nullTime(){return!1}function epochTime(){return Date.now()}function unixTime(){return Math.round(Date.now()/1e3)}function isoTime(){return new Date(Date.now()).toISOString()}function pfGlobalThisOrFallback(){function defd(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(e){return defd(self)||defd(window)||defd(this)||{}}}var We;pino.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},pino.stdSerializers=Be,pino.stdTimeFunctions=Object.assign({},{nullTime:nullTime,epochTime:epochTime,unixTime:unixTime,isoTime:isoTime}),Re.exports.default=pino,Re.exports.pino=pino;const Ue=(0,Re.exports)({formatters:{level:e=>({level:e})}}),logger_error=(e,t)=>{null!=t?Ue.error(t,e):Ue.error(e)},logger_info=(e,t)=>{null!=t?Ue.info(t,e):Ue.info(e)},logger_warn=(e,t)=>{null!=t?Ue.warn(t,e):Ue.warn(e)},logger_debug=(e,t)=>{null!=t?Ue.debug(t,e):Ue.debug(e)};class Ge{}function useActionCallback(e,t=[]){const n=undefined;return i((t=>e({...t,snapshot:Object.defineProperties(t.snapshot,{getPromiseRequired:{configurable:!0,value:createGetPromiseRequiredWrapper(t.snapshot)},tryGetPromise:{configurable:!0,value:createTryGetPromiseWrapper(t.snapshot)}})})),t instanceof Ge?void 0:t)}function retainSnapshot(e){return({snapshot:t,...n})=>async(...a)=>{const i=t.retain();try{const i=undefined;return await e({...n,snapshot:t})(...a)}finally{i()}}}function createGetPromiseRequiredWrapper(e){return async(t,n)=>{const a=await e.getPromise(t);if(null==a)throw n??new Error(`No value present for required value ${t.key}`);return a}}function createTryGetPromiseWrapper(e){return async t=>{try{return{value:await e.getPromise(t)}}catch(e){return logger_debug(`Error encountered retrieving Recoil value. [key={${t.key}}]`,e),{error:e}}}}const Ke=3e3,$e=5e3,qe=8e3,Ye=o({key:"applicationMessageToast",default:void 0}),Xe=o({key:"applicationMessageBanner",default:void 0}),useApplicationMessageActions=()=>({setBannerMessage:useActionCallback((({set:e})=>t=>{e(Xe,null!=t?{...t,id:_e.create()}:void 0)})),setToastMessage:useActionCallback((({set:e})=>t=>{e(Ye,null!=t?{...t,id:_e.create()}:void 0)}))});var Ze=Object.freeze({__proto__:null,LOW_SEVERITY_BANNER_MESSAGE_DURATION_MS:$e,LOW_SEVERITY_TOAST_MESSAGE_DURATION_MS:Ke,MEDIUM_SEVERITY_TOAST_MESSAGE_DURATION_MS:qe,applicationMessageBanner:Xe,applicationMessageToast:Ye,useApplicationMessageActions:useApplicationMessageActions});const Je=500;function useViewerCameraActions(){const e=useApplicationMessageActions();return{flyToById:useActionCallback((({snapshot:e})=>async(t,n)=>{const a=await e.getPromise(et),i=await(a?.scene());await(i?.camera().flyTo({itemId:t}).render({animation:{milliseconds:n??Je}}))})),flyToByBoundingBox:useActionCallback((({snapshot:e})=>async(t,n)=>{const a=await e.getPromise(et),i=await(a?.scene());await(i?.camera().flyTo({boundingBox:t}).render({animation:{milliseconds:n??Je}}))})),updateCameraType:useActionCallback((({set:t,snapshot:n})=>async(a,i)=>{const o=await n.getPromise(st),r=undefined;null!=o&&g.isValid(o)||!i?t(Qe,a):e.setToastMessage({type:"error",message:"Cannot change the camera type when no geometry is visible.",duration:qe})}))}}const Qe=o({key:"viewerCameraType",default:"perspective"}),et=o({key:"viewerToolkitViewerElement",default:void 0,dangerouslyAllowMutability:!0}),tt=o({key:"viewerElementId",default:"vertex-viewer"}),nt=o({key:"viewerInitialSceneReady",default:!1}),at=o({key:"viewerBaseInteractionHandlerProvider",default:Promise.resolve(void 0),dangerouslyAllowMutability:!0}),it=o({key:"viewerPrimaryInteractionType",default:"rotate"}),ot=o({key:"viewerSceneViewId",default:void 0});function useViewerSceneActions(){const e=useActionCallback((({snapshot:e})=>async(t,n,...a)=>{const i=await e.getPromise(et),o=await(i?.scene());a.length>0&&await(o?.items((e=>a.map((t=>t(e))))).execute({suppliedCorrelationId:n}))})),t=A.useCallback(((...e)=>t=>t.where((t=>t.withItemIds(e))).select()),[]),n=A.useCallback(((...e)=>t=>t.where((t=>t.withItemIds(e))).deselect()),[]),a=A.useCallback((e=>e.where((e=>e.all())).deselect()),[]);return{executeWithCorrelationId:e,execute:useActionCallback((()=>async(t,...n)=>{const a=_e.create();await e(t,a,...n)})),selectItemsTransform:t,deselectItemsTransform:n,clearSelectionTransform:a,reset:useActionCallback((({snapshot:e})=>async t=>{const n=await e.getPromise(et),a=await(n?.scene()),i=await e.getPromiseRequired(Qe);a?.reset({includeCamera:!0,suppliedCorrelationId:t,cameraTypeOverride:i})}))}}const rt=o({key:"viewerFrameScene",default:void 0,dangerouslyAllowMutability:!0}),st=r({key:"viewerSceneVisibleBoundingBox",get:({get:e})=>e(rt)?.boundingBox});var lt=Object.freeze({__proto__:null,DEFAULT_CAMERA_ANIMATION_DURATION:Je,useViewerCameraActions:useViewerCameraActions,useViewerSceneActions:useViewerSceneActions,viewerBaseInteractionHandlerProvider:at,viewerCameraType:Qe,viewerElement:et,viewerElementId:tt,viewerFrameScene:rt,viewerInitialSceneReady:nt,viewerPrimaryInteractionType:it,viewerSceneViewId:ot,viewerSceneVisibleBoundingBox:st});class ct{api;interactionStarted=!1;initialize(e,t){this.api=t}dispose(){this.endInteraction()}async beginInteraction(){this.interactionStarted||(await(this.api?.beginInteraction()),this.interactionStarted=!0)}async endInteraction(){await(this.api?.endInteraction()),this.interactionStarted=!1}}const create=(e,t=0)=>({normal:e,offset:t}),forAxis=(e,t)=>{switch(e){case"x":return x(t);case"y":return y(t);case"z":return z(t)}},x=e=>create(v.left(),-e),y=e=>create(v.down(),-e),z=e=>create(v.forward(),-e),getAxis=(e,t)=>{switch(e){case"x":return xAxis(t);case"y":return yAxis(t);case"z":return zAxis(t)}},dt={x:v.left(),y:v.down(),z:v.forward()},xAxis=e=>e.x,yAxis=e=>e.y||v.create(e.x.z,e.x.x,e.x.y),zAxis=e=>e.z||v.create(e.x.y,e.x.z,e.x.x),axis=(e,t,n,a)=>e&&e.normal&&[["x",t],["y",n],["z",a]].filter((t=>0===v.magnitude(v.cross(e.normal,t[1])))).map((e=>e[0])).pop(),isNegativeNormal=e=>v.dot(v.create(-1,-1,-1),e.normal)>0,towardsVector=(e,t)=>{const n=undefined;return v.dot(e,t.normal)<0?invert(t):t},towardsCamera=(e,t)=>towardsVector(e.viewVector,t),invert=e=>({...e,normal:v.multiply(e.normal,v.create(-1,-1,-1)),offset:-e.offset}),fromHit=(e,t)=>{const n=v.normalize(e.normal),a=v.dot(n,e.position);return towardsCamera(t,create(n,a))},toAxis=(e,t,n,a,i)=>{const o=n.viewAll(),r=getAxis(e,t),s=null!=a&&null!=r?create(r,v.dot(r,i||g.center(a))):forAxis(e,o.lookAt[e]);return towardsCamera(n,s)};function corners(e){return[v.create(e.min.x,e.min.y,e.min.z),v.create(e.min.x,e.min.y,e.max.z),v.create(e.min.x,e.max.y,e.min.z),v.create(e.min.x,e.max.y,e.max.z),v.create(e.max.x,e.max.y,e.max.z),v.create(e.max.x,e.max.y,e.min.z),v.create(e.max.x,e.min.y,e.max.z),v.create(e.max.x,e.min.y,e.min.z)]}function equals(e,t){return e.min.x===t.min.x&&e.min.y===t.min.y&&e.min.z===t.min.z&&e.max.x===t.max.x&&e.max.y===t.max.y&&e.max.z===t.max.z}var ut;!function(e){e.PART="PART",e.SINGLE="SINGLE"}(ut||(ut={}));const mt="#616161",pt=1,ht="#BDBDBD",ft={default:5,min:0,max:10},gt=o({key:"crossSectioningEnabled",default:!1}),yt=o({key:"crossSectioningHighlightColor",default:mt}),vt=o({key:"crossSectioningBorderWidth",default:1}),bt=o({key:"endCapEnabledDefault",default:!0}),wt=o({key:"endCapEnabled",default:!0}),Ct=o({key:"endCapColorType",default:ut.PART}),St=o({key:"endCapCustomColor",default:ht}),xt=o({key:"crossSectioningPlanes",default:[]}),kt=o({key:"crossSectioningAlignment",default:{mode:"global",hitPending:!1}}),At=r({key:"crossSectioningTargetBoundingBox",get:async({get:e})=>{const t=undefined;return e(st)}}),Tt=o({key:"crossSectioningIsInteractive",default:!1}),Pt=o({key:"crossSectioningActiveAxis",default:"x"}),Mt=o({key:"crossSectioningAvailableAxes",default:dt}),Et=r({key:"crossSectioningOffsetScalar",get:({get:e})=>{const t=e(xt);return t.length>0&&isNegativeNormal(t[0])?-1:1}}),It=r({key:"crossSectioningSliderRange",get:({get:e})=>{const t=e(xt),n=e(At),a=null!=n?corners(n):[];if(t.length>0){const e=a.map((e=>v.dot(e,isNegativeNormal(t[0])?v.multiply(t[0].normal,v.create(-1,-1,-1)):t[0].normal)));return{default:t[0].offset,min:Math.min(...e)-2,max:Math.max(...e)+2}}return ft}}),Nt=r({key:"crossSectioningPlaneDisplayOffset",get:({get:e})=>{const t=e(xt),n=e(Et),a=e(It);return t.length>0?t[0].offset*n:a.default}}),Ot=o({key:"crossSectioningAdditionalToolsOpen",default:!1}),Vt=o({key:"crossSectioningAlignmentToolsOpen",default:!1}),Lt=o({key:"crossSectioningAxisToolsOpen",default:!1}),_t=o({key:"crossSectioningInteractionHandler",default:new ct,dangerouslyAllowMutability:!0});function useCrossSectioning(e,t){const n=s(_t);A.useEffect((()=>{t&&e?.registerInteractionHandler(n)}),[e,t,n])}const Rt=o({key:"hitResultsTapDetails",default:void 0}),Dt=o({key:"hitResultsLongPressDetails",default:void 0}),zt=o({key:"previousHitResult",default:void 0}),Bt=o({key:"currentHitResult",default:void 0}),Ht=r({key:"hitResult",get:async({get:e})=>{const t=e(Rt),n=e(Dt),a=t??n,i=e(et),o=await(i?.scene()),r=o?.sceneViewId,s=o?.raycaster();if(null!=a&&null!=s&&null!=r){const e=await s.hitItems(a.position),t=(e?.hits||[])[0];if(null!=t)return{id:t.itemId?.hex,normal:v.create(t?.hitNormal?.x||0,t?.hitNormal?.y||0,t?.hitNormal?.z||0),position:v.create(t?.hitPoint?.x||0,t?.hitPoint?.y||0,t?.hitPoint?.z||0),meta:a.metaKey||a.ctrlKey||!1,metadata:[],ancestors:t?.ancestors?.filter((e=>null!=e.itemId?.hex)).map((e=>e.itemId?.hex))||[],annotationId:t?.annotationId?.hex}}}}),jt=o({key:"hitResultsSkipNextTap",default:!1}),Ft="Scene Alteration Performance";var Wt;!function(e){e.HIDE_ITEM="Hide Item",e.SHOW_ONLY_SELECTED="Show Only Selected",e.HIDE_SELECTED="Hide Selected",e.SHOW_ONLY_ITEM="Show Only Item",e.SHOW_ALL="Show All",e.HIDE_ALL="Hide All",e.SELECT_FILTERED_ITEMS="Select Filtered Items",e.INVERT_SELECTION="Invert Selection",e.CLEAR_ALL_TRANSFORMS="Clear All Transforms",e.CLEAR_SELECTED_TRANSFORMS="Clear Selected Transforms",e.CLEAR_SELECTION="Clear Selection",e.DESELECTING_ITEMS="Deselecting Items",e.SELECTING_ITEMS="Selecting Items",e.SELECTING_ONLY_ITEM="Selecting Only Item",e.SELECTING_ANCESTOR="Selecting Ancestor",e.APPLY_MATERIAL_OVERRIDE_TO_ALL="Apply Material Override To All",e.APPLY_MATERIAL_OVERRIDE_TO_SELECTION="Apply Material Override To Selection",e.CLEAR_ALL_MATERIAL_OVERRIDES="Clear All Material Overrides",e.CLEAR_SELECTED_MATERIAL_OVERRIDES="Clear Selected Material Overrides",e.SET_PHANTOM_ALL="Set Phantom All",e.SET_PHANTOM_SELECTED_ITEMS="Set Phantom Selected Items",e.CLEAR_PHANTOM_ALL="Clear Phantom All",e.CLEAR_PHANTOM_SELECTED_ITEMS="Clear Phantom Selected Items",e.SET_PHANTOM_NON_SELECTED_ITEMS="Set Phantom Non Selected Items",e.RESTORE_PHANTOM_OVERRIDES="Restore Phantom Overrides",e.SET_ITEM_AS_END_ITEM="Set Item as End Item",e.UNSET_ITEM_AS_END_ITEM="Unset Item as End Item",e.SHOW_ANNOTATION="Show Annotation",e.HIDE_ANNOTATION="Hide Annotation"}(Wt||(Wt={}));var Ut=Object.freeze({__proto__:null,SCENE_ALTERATION_PERFORMANCE:Ft,get SceneAlterationPerformanceType(){return Wt}});const Gt=l({key:"selectionSelectedItems",default:void 0}),Kt=o({key:"selectionSelectedItemIds",default:[]}),$t=o({key:"selectionLastSelected",default:void 0}),qt=o({key:"selectionLastSelectionFromViewer",default:!1}),Yt=o({key:"selectionLastSelectWasMultiSelect",default:!1}),Xt=r({key:"selectionHasMultipleSelected",get:({get:e})=>{const t=e($t),n=undefined;return e(Kt).filter((e=>e!==t?.id&&!t?.ancestors?.includes(e))).length>0}}),Zt=o({key:"selectionIsAncestorSelection",default:!1}),Jt=o({key:"selectionFirstSelectedItemInTreeId",default:void 0}),Qt=r({key:"selectionHighestSelectedAncestor",get:({get:e})=>{const t=e($t),n=e(Kt);return t?.ancestors?.find((e=>n.includes(e)))??t?.id}}),en=o({key:"selectionPreviousVisibleSummary",default:void 0}),tn=o({key:"selectionVisibleSummary",default:void 0}),nn=r({key:"selectionVisibleCount",get:({get:e})=>e(tn)?.count??0}),an=r({key:"selectionBoundingBoxCenter",get:({get:e})=>{const t=e(tn);return null!=t?.boundingBox?g.center(t.boundingBox):v.origin()}}),on=r({key:"selectionIsActive",get:({get:e})=>{const t=e(Kt),n=undefined;return e(nn)>0||t.length>0}}),rn=r({key:"fetchedAndSelectedItems",get:async({get:e})=>{const t=e(Kt),n=undefined;return null!=e(ot)?t.map((t=>e(pa(t)))):[]}}),sn=o({key:"selectionModelViewsSelected",default:void 0});function contextMenuItemIsRow(e){return null!=e&&null!=e?.node?.id}function contextMenuItemIsElement(e){return null!=e&&e instanceof HTMLElement}const ln=o({key:"contextMenuActive",default:void 0}),cn=o({key:"contextMenuPosition",default:void 0}),dn=o({key:"contextMenuTarget",default:void 0}),un=o({key:"contextMenuItem",default:void 0}),mn=o({key:"contextMenuActions",default:[]}),pn=r({key:"contextMenuActivePosition",get:({get:e})=>null!=e(ln)?e(cn):void 0});function useContextMenuActions(){return{pointerDown:useActionCallback((({set:e})=>async t=>{if(2===t.button){const n=t.clientX,a=t?.clientY;e(cn,b.create(n,a)),e(dn,t.target)}})),pointerUp:useActionCallback((({snapshot:e,set:t})=>async(n,a,i,o)=>{const r=await e.getPromise(cn),s=await e.getPromise(ln);if(null!=r&&null==s){const e=n.clientX,s=n?.clientY,l=b.create(e,s),c=null!=r?b.distance(r,l):0,d=null==i||i(n);c<2&&d&&(o?.(n,r??l),t(ln,a))}})),contextMenu:useActionCallback((()=>(e,t)=>{(null==t||t(e))&&e.preventDefault()})),longPress:useActionCallback((({set:e})=>(t,n,a,i)=>{if(null==a||a(t)){const a=b.create(t.touches[0].clientX,t.touches[0].clientY);e(cn,a),e(dn,t.target),e(ln,n),i?.(t,a)}})),setContextMenuItem:useActionCallback((({snapshot:e,set:t,reset:n})=>async a=>{const i=await e.getPromise(mn);t(un,a),i.forEach((e=>e(a))),n(mn)})),clearActiveContextMenu:useActionCallback((({reset:e,set:t})=>n=>{t(jt,!!n),e(ln),e(mn),e(cn)})),clearDismissedState:useActionCallback((({reset:e})=>()=>e(jt)))}}function targetWithinMenu(e){return e.target instanceof Element&&isChildOf("vertex-menu",e.target)}function targetShouldSkipNextHit(e){return e.target instanceof Element&&isChildOf("vertex-viewer",e.target)}function isChildOf(e,t){return null!=t.closest(e)}var hn=Object.freeze({__proto__:null,contextMenuActions:mn,contextMenuActive:ln,contextMenuActivePosition:pn,contextMenuItem:un,contextMenuItemIsElement:contextMenuItemIsElement,contextMenuItemIsRow:contextMenuItemIsRow,contextMenuPosition:cn,contextMenuTarget:dn,targetShouldSkipNextHit:targetShouldSkipNextHit,targetWithinMenu:targetWithinMenu,useContextMenuActions:useContextMenuActions});const fn=o({key:"boxSelectionEnabled",default:!1}),gn=o({key:"boxSelectionOperationType",default:"clearAndSelect"}),useBoxSelectionActions=()=>({enable:useActionCallback((({set:e})=>()=>{e(fn,!0)})),disable:useActionCallback((({reset:e})=>async()=>{e(fn),e(gn)})),setOperationType:useActionCallback((({set:e})=>t=>{e(gn,t)}))});var yn=Object.freeze({__proto__:null,boxSelectionEnabled:fn,boxSelectionOperationType:gn,useBoxSelectionActions:useBoxSelectionActions});async function whenComponentReady(e,t,n=customElements,a=requestAnimationFrame,i=setTimeout){return null!=e&&null!=e.nodeName&&await n.whenDefined(e.nodeName.toLowerCase()),"function"==typeof e?.componentOnReady?(await(e?.componentOnReady()),t()):(await new Promise((e=>"function"==typeof a?a(e):i(e))),t())}const vn=o({key:"isEditingPointToPointMeasurement",default:!1}),bn=o({key:"pointToPointMeasurementOutcome",default:void 0}),wn=o({key:"editedPointToPointMeasurement",default:void 0});function usePointToPointMeasurement(e){const t=c(bn);T((()=>{let n;return whenComponentReady(e,(()=>{n=e?.measurementModel.onOutcomeChanged(t)})),()=>n?.dispose()}),[e,t])}const Cn=2,Sn=o({key:"isEditingPreciseMeasurement",default:!1}),xn=o({key:"preciseMeasurementOutcome",default:void 0}),kn=o({key:"preciseMeasurementController",dangerouslyAllowMutability:!0,default:void 0}),An=o({key:"preciseMeasurementOverlays",dangerouslyAllowMutability:!0,default:void 0}),Tn=o({key:"preciseMeasurementEntities",dangerouslyAllowMutability:!0,default:[]}),Pn=r({key:"preciseMeasurementMessage",get:({get:e})=>{const t=undefined;return 0===e(Tn).length?"Select a surface":void 0}});function usePreciseMeasurementModel(e,t,n){const a=c(Tn),i=c(xn),o=c(kn),r=c(An),l=s(kn);T((()=>{let n;return whenComponentReady(e,(()=>{n=e?.measurementModel.onEntitiesChanged((e=>{a(e),t?.(e)}))})),()=>n?.dispose()}),[e,a]),T((()=>{let t;return whenComponentReady(e,(()=>{t=e?.measurementModel.onOutcomeChanged((e=>{i(e),n?.(e)}))})),()=>t?.dispose()}),[e,i]),T((()=>{let t;return whenComponentReady(e,(()=>{t=e?.measurementModel.onEntitiesChanged((e=>{if(e.length>2){const t=e[2];l?.setEntities(new Set([t]))}}))})),()=>t?.dispose()}),[e,l]),T((()=>{whenComponentReady(e,(()=>{o(e?.measurementController)}))}),[e,o]),T((()=>{whenComponentReady(e,(()=>{r(e?.measurementOverlays)}))}),[e,r])}function useMeasurementActions(){const e=useBoxSelectionActions(),t=useEnablePointToPointMeasurement(),n=useDisablePointToPointMeasurement(),a=useDisablePreciseMeasurement(),i=useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(kn);t?.clearEntities()})),o=useActionCallback((()=>async(e={})=>{await i(),n(e),a()})),r=useActionCallback((({set:e,reset:n})=>async a=>{await o(),"point-to-point"===a?t():(n(xn),n(Tn),e(Sn,!0))}));return{disableEditMeasurement:useActionCallback((()=>async e=>{await o(e)})),enableEditMeasurement:useActionCallback((()=>async e=>{await r(e)})),resetMeasurement:useActionCallback((({snapshot:e,reset:t})=>async()=>{const n=await e.getPromise(Sn),a=await e.getPromise(vn);n?await i():a&&(t(bn),t(wn))})),clearEditedPointToPointMeasurement:useActionCallback((({reset:e})=>()=>{e(wn)})),setEditedPointToPointMeasurement:useActionCallback((({set:e})=>t=>{e(wn,t)})),toggleEditPointToPointMeasurement:useActionCallback((({snapshot:t})=>async()=>{const n=undefined;await t.getPromise(vn)?await o():await r("point-to-point"),e.disable()})),toggleEditPreciseMeasurement:useActionCallback((({snapshot:t})=>async()=>{const n=undefined;await t.getPromise(Sn)?await o():await r("precise"),e.disable()}))}}function useEnablePointToPointMeasurement(){return useActionCallback((({reset:e,set:t})=>(n={})=>{t(vn,!0),n.keepExistingMeasurement||e(bn)}))}function useDisablePointToPointMeasurement(){return useActionCallback((({reset:e})=>(t={})=>{e(vn),t.keepExistingMeasurement||(e(wn),e(bn))}))}function useDisablePreciseMeasurement(){return useActionCallback((({reset:e})=>async()=>{e(Sn),e(xn),e(Tn)}))}const Mn=r({key:"isEditingMeasurement",get:({get:e})=>e(vn)||e(Sn)}),En=r({key:"measurementPanelModel",get:({get:e})=>e(bn)||e(xn)}),In=r({key:"measurementPanelOverlays",dangerouslyAllowMutability:!0,get:({get:e})=>e(An)}),Nn=r({key:"measurementPanelMessage",get:({get:e})=>{const t=undefined;return e(Sn)?e(Pn):void 0}}),On=r({key:"measurementPanelIsResettable",get:({get:e})=>e(Mn)&&null!=e(En)});var Vn=Object.freeze({__proto__:null,editedPointToPointMeasurement:wn,isEditingMeasurement:Mn,isEditingPointToPointMeasurement:vn,isEditingPreciseMeasurement:Sn,measurementPanelIsResettable:On,measurementPanelMessage:Nn,measurementPanelOutcome:En,measurementPanelOverlays:In,pointToPointMeasurementOutcome:bn,preciseMeasurementController:kn,preciseMeasurementEntities:Tn,preciseMeasurementMessage:Pn,preciseMeasurementOutcome:xn,preciseMeasurementOverlays:An,useDisablePointToPointMeasurement:useDisablePointToPointMeasurement,useDisablePreciseMeasurement:useDisablePreciseMeasurement,useEnablePointToPointMeasurement:useEnablePointToPointMeasurement,useMeasurementActions:useMeasurementActions,usePointToPointMeasurement:usePointToPointMeasurement,usePreciseMeasurementModel:usePreciseMeasurementModel});const useHitActions=()=>{const e=useCrossSectioningActions(),t=useMeasurementActions(),n=useTransformActions(),a=useActionCallback(retainSnapshot((({snapshot:e})=>async()=>{const n=await e.tryGetPromise(Ht).then((e=>e.value)),a=await e.getPromise(wn);null==n&&null!=a?.start&&null!=a.end&&await t.resetMeasurement()}))),i=useActionCallback(retainSnapshot((({snapshot:e})=>async()=>{const t=await e.tryGetPromise(Ht).then((e=>e.value));await n.orientToHitResult(t)}))),o=useActionCallback(retainSnapshot((({set:e,snapshot:t})=>async()=>{const n=await t.tryGetPromise(Ht).then((e=>e.value));e(un,n)}))),r=useActionCallback(retainSnapshot((({snapshot:e,set:t})=>async()=>{t(Bt,await e.tryGetPromise(Ht).then((e=>e.value)))})));return{tap:useActionCallback(retainSnapshot((({snapshot:t,set:n})=>async({detail:s},...l)=>{const c=await t.getPromise(Mn),d=await t.getPromise(kt),u=2!==s?.buttons&&!s?.altKey;s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;const m=u&&!d.hitPending&&!c,p=await t.tryGetPromise(Ht).then((e=>e.value));n(zt,p),n(Rt,s),await a(),m&&(l.forEach((e=>e())),await i()),await o(),await e.sectionCurrentHit(),await r()}))),longPress:useActionCallback(retainSnapshot((({snapshot:e,set:t,reset:n})=>async a=>{n(Rt),t(Dt,a.detail),await e.tryGetPromise(Ht),await o(),await r()})))}},Ln=r({key:"viewerToolkitHitState",get:({get:e})=>{const t=undefined,n=undefined,a=undefined,i=undefined,o=undefined;return{tapDetails:e(Rt),longPressDetails:e(Dt),previousHitResult:e(zt),currentHitResult:e(Bt)}}});var _n=Object.freeze({__proto__:null,currentHitResult:Bt,hitResult:Ht,hitResultsLongPressDetails:Dt,hitResultsSkipNextTap:jt,hitResultsTapDetails:Rt,hitState:Ln,previousHitResult:zt,useHitActions:useHitActions});function useSceneAnnotationsOperations(){const e=A.useCallback((async(e,t,n)=>{const a=await(t?.scene());null==n?await(a?.elements((t=>e(t.annotations.where((e=>e.all()))))).execute()):n.length>0&&await(a?.elements((t=>e(t.annotations.where((e=>e.withAnnotationIds(n)))))).execute())}),[]),t=A.useCallback((async(e,t)=>{const n=await(e?.scene());n?.elements((e=>[e.annotations.where((e=>e.all())).deselect(),e.annotations.where((e=>e.withAnnotationIds([t]))).select()])).execute()}),[]),n=A.useCallback((async e=>{const t=await(e?.scene());t?.elements((e=>[e.annotations.where((e=>e.all())).deselect()])).execute()}),[]);return{sceneAnnotationsOperation:e,selectOnlyAnnotation:t,clearAnnotationSelection:n}}function usePmiAnnotationActions(){const e=useSceneAnnotationsOperations(),t=useActionCallback((({snapshot:e,set:t})=>async n=>{const a=await e.getPromise(Aa(n));if(null!=a){t(va(n),(e=>[...e,a])),t(ba(n),(e=>[...e,...a.annotations]));const e=a?.paging?.next;t(ga(n),null!=e?()=>e:()=>{})}})),n=useActionCallback((({snapshot:e})=>async a=>{const i=document.getElementById(`annotation-entry-${a}`);if(null!=i)i.scrollIntoView();else{const i=await e.getPromise(Ca),o=i?.modelView.id;if(null==o)return;const r=undefined;await e.getPromise(Pa(o))&&(await t(o),await n(a))}}));return{fetchInitialPmiAnnotations:useActionCallback((({snapshot:e})=>async n=>{const a=undefined;0===(await e.getPromise(Ta(n))).length&&await t(n)})),fetchNextPmiAnnotations:useActionCallback((()=>async e=>{await t(e)})),selectPmiAnnotation:useActionCallback((({set:t,snapshot:a})=>async(i,o)=>{t(Ma,i);const r=await a.getPromise(et);null!=r&&await(e?.selectOnlyAnnotation(r,i)),o&&await n(i)})),clearPmiAnnotationSelection:useActionCallback((({reset:t,snapshot:n})=>async()=>{const a=await n.getPromise(Ma),i=await n.getPromise(et);null!=a&&null!=i&&(t(Ma),await(e?.clearAnnotationSelection(i)))})),scrollToSelectedPmiAnnotation:n}}const Rn=o({key:"sceneTreeLoaderVisible",default:!1}),Dn=o({key:"sceneTreeElement",default:void 0}),zn=o({key:"sceneTreeController",default:void 0,dangerouslyAllowMutability:!0}),Bn=o({key:"sceneTreeOpenPopover",default:void 0}),Hn=d({key:"sceneTreePopoverIsOpen",get:e=>({get:t})=>t(Bn)===e});function useSceneTreeActions(){const e=useSelectionActions(),t=useViewerCameraActions();return{toggleSelection:useActionCallback((({snapshot:t})=>async(n,a,i)=>{if(!n.defaultPrevented&&0===n.button&&(n.altKey||((n.ctrlKey||n.metaKey)&&a.selected?await i.deselectItem(a):a.selected?await i.selectItem(a,{recurseParent:!0}):a.selected||await i.selectItem(a,{append:n.ctrlKey||n.metaKey,range:n.shiftKey})),null!=a.id)){const i=await t.getPromise($t);e.syncSelection({id:a.id?.hex,ancestors:i?.ancestors??[]},{selected:!n.metaKey&&!n.ctrlKey||!a.selected,multiSelect:n.shiftKey||n.metaKey||n.ctrlKey})}})),toggleExpansion:useActionCallback((()=>(e,t,n)=>{n.toggleExpandItem(t)})),toggleVisibility:useActionCallback((()=>(e,t,n)=>{n.toggleItemVisibility(t)})),flyToRow:useActionCallback((({snapshot:e})=>async n=>{const a=await e.getPromise(Dn),i=await(a?.getRowAtClientY(n));null!=i?.node.id?.hex&&await t.flyToById(i.node.id.hex)})),flyToFirstSelectedItem:useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(Dn),n=await e.getPromise(Jt);null!=n&&t?.scrollToItem(n)})),setContextMenuItem:useActionCallback((({set:e,snapshot:t})=>async n=>{const a=await t.getPromise(Dn),i=await(a?.getRowAtClientY(n));e(un,i)})),openSceneTreePopover:useActionCallback((({set:e})=>t=>{e(Bn,t)})),closeSceneTreePopover:useActionCallback((({set:e})=>()=>{e(Bn,void 0)}))}}var jn=Object.freeze({__proto__:null,sceneTreeController:zn,sceneTreeElement:Dn,sceneTreeLoaderVisible:Rn,sceneTreeOpenPopover:Bn,sceneTreePopoverIsOpen:Hn,useSceneTreeActions:useSceneTreeActions});function useSelectionActions(){const e=usePmiAnnotationActions(),t=useSceneViewItemActions(),n=useTransformActions(),a=useViewerSceneActions(),i=useActionCallback((({snapshot:e,reset:t})=>async()=>{const n=undefined;(await e.getPromise(Kt)).forEach((e=>t(Gt(e))))})),o=useActionCallback((({snapshot:e,reset:t,set:n})=>async(i,o)=>{const r=await e.getPromise(Gt(i.id)),s=await e.getPromise(Kt),l=[...i.ancestors??[]]?.reverse().find((e=>!s.includes(e)));null!=r&&null!=l?(n(Gt(l),{id:l}),n(Kt,(e=>[...e,l])),n(Zt,!0),await a.execute(Wt.SELECTING_ANCESTOR,a.selectItemsTransform(l)),await m({id:l})):o?.clear?(n(Gt(i.id),i),n(Kt,[i.id]),await a.execute(Wt.SELECTING_ONLY_ITEM,a.clearSelectionTransform,a.selectItemsTransform(i.id)),await m(i)):(n(Gt(i.id),i),n(Kt,(e=>[...e,i.id])),await a.execute(Wt.SELECTING_ITEMS,a.selectItemsTransform(i.id)),await m(i)),n($t,i),n(qt,!0),t(Yt);try{const t=await e.getPromise(Dn);await(t?.scrollToItem(i.id))}catch(e){logger_debug(`The scene item was not found in the tree. [itemId={${i.id}}]`)}})),r=useActionCallback((({reset:e,set:t})=>async n=>{e(Gt(n)),e(Yt),e(Zt),t(Kt,(e=>e.filter((e=>e!==n)))),await a.execute(Wt.DESELECTING_ITEMS,a.deselectItemsTransform(n))})),s=useActionCallback((({snapshot:e})=>async t=>{const n=await e.getPromise(Gt(t.id));null!=n?await r(n.id):await o(t)})),l=useActionCallback((({snapshot:a,reset:i,set:r})=>async(s,l={})=>{const c=await a.getPromise(Gt(s.id)),d=await a.getPromise(Kt);if(d.filter((e=>e!==s.id&&!s.ancestors?.includes(e))).forEach((e=>i(Gt(e)))),i(Yt),i(Zt),c)if(l.ignoreAncestorSelection)i(Kt),i(Gt(c.id));else{const e=d.filter((e=>e===s.id||s.ancestors?.includes(e)));r(Kt,e)}else i(Kt);t.invalidateCachedItems(),n.clearTransformWidgetOrientation(),await e.clearPmiAnnotationSelection(),await o(s,{clear:!0})})),c=useActionCallback((({reset:t})=>async()=>{await i(),t(Kt),t($t),t(qt),t(Yt),t(Zt),n.clearTransformWidgetPosition(),n.clearTransformWidgetOrientation(),await e.clearPmiAnnotationSelection()})),d=useActionCallback((()=>async()=>{await c(),await a.execute(Wt.CLEAR_SELECTION,a.clearSelectionTransform)})),u=useActionCallback((({set:e})=>async t=>{e(Yt,t)})),m=useActionCallback((({set:e,snapshot:t})=>async n=>{const a=await t.getPromise(sn);a?.id!==n?.id&&e(sn,n)}));return{select:o,toggleSelection:s,clearAndSelect:l,selectCurrentHit:useActionCallback(retainSnapshot((({snapshot:t})=>async()=>{const n=await t.tryGetPromise(Ht).then((e=>e.value)),a=await t.getPromise(Rt),i=a?.metaKey||a?.ctrlKey||a?.shiftKey;null!=n?.annotationId?await e.selectPmiAnnotation(n.annotationId,!0):null==n||i?null!=n&&i?await s(n):await d():await l(n)}))),syncSelection:useActionCallback((({set:e,snapshot:t,reset:n})=>async(a,o)=>{if(o.selected){const n=await t.getPromise(Gt(a.id)),r=await t.getPromise(zn);if(null!=n&&null!=r){const n=undefined,i=(await(r?.fetchNodeAncestors(a.id))).map((e=>e.id?.hex)).filter((e=>null!=e)),s=await t.getPromise(Kt),l=[...i??[]]?.findLastIndex((e=>s.includes(e)));if(i.length>0&&l<i.length-1){const t=i[l+1];return e(Zt,!0),e($t,{id:t}),e(Gt(t),{id:t}),e(Kt,(e=>[...e.filter((e=>e!==t)),t])),e(qt,!1),e(Yt,!!o.multiSelect),void await m({id:t})}}await i(),e(Gt(a.id),a),o.multiSelect?e(Kt,(e=>[...e.filter((e=>e!==a.id)),a.id])):e(Kt,[a.id]),await m(a),e($t,a),e(qt,!1),e(Yt,!!o.multiSelect)}else n(Gt(a.id)),n(Yt),e(Kt,(e=>e.filter((e=>e!==a.id))))})),deselect:r,clearSelection:d,resetSelectionState:c,toggleLastSelectWasMultiSelect:u,selectForModelViewsPanel:m}}const Fn=r({key:"viewerToolkitSelectionState",get:({get:e})=>{const t=undefined,n=undefined,a=undefined,i=undefined;return{selectedItemIds:e(Kt),lastSelected:e($t),highestSelectedAncestorId:e(Qt)}}});var Wn=Object.freeze({__proto__:null,fetchedAndSelectedItems:rn,selectionBoundingBoxCenter:an,selectionFirstSelectedItemInTreeId:Jt,selectionHasMultipleSelected:Xt,selectionHighestSelectedAncestor:Qt,selectionIsActive:on,selectionIsAncestorSelection:Zt,selectionLastSelectWasMultiSelect:Yt,selectionLastSelected:$t,selectionLastSelectionFromViewer:qt,selectionModelViewsSelected:sn,selectionPreviousVisibleSummary:en,selectionSelectedItemIds:Kt,selectionSelectedItems:Gt,selectionState:Fn,selectionVisibleCount:nn,selectionVisibleSummary:tn,useSelectionActions:useSelectionActions});const Un=o({key:"lengthUnit",default:"cm"}),Gn=o({key:"decimalPlace",default:"2"});var Kn=Object.freeze({__proto__:null,decimalPlace:Gn,lengthUnit:Un}),$n,qn;!function(e){e.mm="millimeters",e.cm="centimeters",e.m="meters",e.in="inches",e.ft="feet"}($n||($n={})),function(e){e[e.mm=1]="mm",e[e.cm=.1]="cm",e[e.m=.001]="m",e[e.in=.03937007874015748]="in",e[e.ft=.0032808398950131233]="ft"}(qn||(qn={}));const convertFrom=(e,t)=>{const n=undefined;return e/qn[t]},convertTo=(e,t)=>{const n=undefined;return e*qn[t]},formatWithUnit=(e,t,n)=>`${e.toFixed(n)} ${t}`,formatDistance=(e,t,n)=>formatWithUnit(convertTo(e,t),t,n),createDistanceFormatter=(e,t)=>n=>formatDistance(n,e,t);function toUnitType(e){switch(e){case"cm":return"centimeters";case"m":return"meters";case"in":return"inches";case"ft":return"feet";default:return"millimeters"}}function pickLocalOrWorldTransform(e,t){return"local"===t?e.local:e.world}function mapItemTransforms(e,t){return{local:t(e.local),world:t(e.world)}}function makeItemTransforms(e,t,n){return"local"===n?{local:e,world:N(e,t)}:{world:e,local:O(e,t)}}function convertTransformToUnits(e,t){const{position:n,rotation:a,scale:i}=e;return{position:v.create(convertTo(n.x,t),convertTo(n.y,t),convertTo(n.z,t)),rotation:a,scale:i}}function convertTransformFromUnits(e,t){const{position:n,rotation:a,scale:i}=e;return{position:v.create(convertFrom(n.x,t),convertFrom(n.y,t),convertFrom(n.z,t)),rotation:a,scale:i}}function toValidTransform(e){const{position:t,rotation:n,scale:a}=e;return{position:{x:t.x||0,y:t.y||0,z:t.z||0},rotation:{x:n.x||0,y:n.y||0,z:n.z||0},scale:a||1}}function scale(e){const t=parseFloat(Math.sqrt(e[0]**2+e[4]**2+e[8]**2).toFixed(2)),n=parseFloat(Math.sqrt(e[1]**2+e[5]**2+e[9]**2).toFixed(2)),a=parseFloat(Math.sqrt(e[2]**2+e[6]**2+e[10]**2).toFixed(2));return t===n&&n===a?t:NaN}function translation(e){return{x:e[12],y:e[13],z:e[14]}}function rotation(e){const t=e.map((t=>t*(1/scale(e))));return t[8]<1?t[8]>-1?{x:Math.atan2(-t[9],t[10])*(180/Math.PI),y:Math.asin(t[8])*(180/Math.PI),z:Math.atan2(-t[4],t[0])*(180/Math.PI)}:{x:-Math.atan2(-t[1],t[5])*(180/Math.PI),y:-90,z:0}:{x:Math.atan2(t[1],t[5])*(180/Math.PI),y:90,z:0}}function toTransformFromApiMatrix(e){return null!=e?{position:translation(e),rotation:rotation(e),scale:scale(e)}:void 0}const Yn={position:v.create(0,0,0),rotation:v.create(0,0,0),scale:1},Xn=o({key:"transformWidgetEnabled",default:!1}),Zn=o({key:"transformWidgetPosition",default:void 0}),Jn=o({key:"transformWidgetOrientationOverride",default:void 0}),Qn=r({key:"transformWidgetOrientation",get:({get:e})=>{const t=e(Jn),n=e($t);if(null!=t)return t;if(null!=n){const t=e(la(n.id));return w.fromDegrees({x:t?.world.rotation.x,y:t?.world.rotation.y,z:t?.world.rotation.z})}}}),ea=o({key:"transformWidgetCachedOrientation",default:void 0}),ta=o({key:"transformWidgetSyncToSelection",default:!1}),na=o({key:"transformWidgetIsInteracting",default:!1}),aa=l({key:"appliedItemTransform",default:void 0}),ia=o({key:"appliedItemTransformIds",default:[]}),oa=o({key:"selectedCoordinateSpace",default:"world"}),ra=l({key:"editedItemTransform",default:void 0}),sa=d({key:"displayedItemTransform",get:e=>({get:t})=>{if(null!=e){const n=t(oa),a=t(Un),i=t(la(e)),o=t(ra(e));if(null!=o)return o.transform;if(null!=i)return pickLocalOrWorldTransform(mapItemTransforms(i,(e=>convertTransformToUnits(e,a))),n)}},set:e=>({get:t,set:n},a)=>{if(null!=e){const i=t(oa),o=t(da(e)),r=t(la(e)),s=t(Un);if(null!=r&&!(a instanceof u)&&null!=a&&null!=o){n(ra(e),{coordinateSpace:i,units:s,transform:a});const r=makeItemTransforms(convertTransformFromUnits(toValidTransform(a),s),o,i),l=t(ia);n(aa(e),r),n(ia,[...l,e])}}}}),la=d({key:"fetchedItemTransforms",get:e=>({get:t})=>{const n=t(pa(e));if(null!=n){const e=n.override?.transform?toTransformFromApiMatrix(n.override?.transform):void 0,t=n.worldTransform?toTransformFromApiMatrix(n.worldTransform):void 0;return{local:e??Yn,world:t??Yn}}}}),ca=o({key:"transformInvalidator",default:0}),da=d({key:"parentItemWorldMatrix",get:e=>({get:t})=>{const n=t(ot);if(null!=e&&null!=n){const n=t(pa(e));if(null!=n?.parentId){const e=t(la(n.parentId)),a=t(aa(n.parentId));if(null==e)throw new Error("Invalid state. Parent item state should be populated, but is undefined.");return V(L(null!=a?a.world:e.world))}}return logger_debug(`Unable to find the world matrix for the parent of ${e}. Returning the identity matrix.`),C.makeIdentity()}});function useUpdateEditedTransformWhenSettingsChange(e){const t=s(Un),n=s(oa),a=s(aa(e??"")),[i,o]=h(ra(e??""));T((()=>{if(null!=a&&(i?.coordinateSpace!==n||i?.units!==t)){const e=undefined,i=convertTransformToUnits(pickLocalOrWorldTransform(a,n),t);o({units:t,coordinateSpace:n,transform:i})}}),[t,n])}function useEditItemTransform(e){const t=useTransformActions();useUpdateEditedTransformWhenSettingsChange(e);const n=m(da(e)),[a,i]=p(sa(e));return{transform:"hasValue"===a.state?a.contents:void 0,loading:"loading"===a.state||"loading"===n.state,error:"hasError"===a.state?a.contents:void 0,async update(n){t.enableSelectionSync(),i(n),null!=e&&await t.applyTransformToItem(e)}}}const useTransformActions=()=>{const e=useApplicationMessageActions(),t=useViewerSceneActions(),n=useActionCallback((({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(an);e(Zn,n)})),a=useActionCallback((({set:e,snapshot:t})=>async()=>{const a=await t.getPromise(Zn),i=await t.getPromise(Yt),o=await t.getPromise(Kt),r=await t.getPromise(nn);null==a&&(o.length>0||i||r>0)&&await n(),e(ta,!0)})),i=useActionCallback((({set:e})=>async t=>{e(Zn,t??void 0)})),o=useActionCallback(retainSnapshot((({snapshot:e,set:t,reset:n})=>async()=>{const a=await e.getPromise(Qn),i=undefined;(await e.getPromise(ia)).forEach((e=>{n(aa(e)),n(ra(e))})),n(ia),null!=a&&t(ea,a),t(ca,(e=>e+1))}))),r=useActionCallback((({set:e,reset:t})=>n=>{t(ea),e(Jn,n)})),s=useActionCallback((({set:e})=>()=>{e(Zn,void 0),e(Xn,!1)}));return{enableTransformWidget:useActionCallback((({set:t})=>async(o,r)=>{e.setToastMessage({message:"Transform manipulator enabled! Select parts to interact.",duration:Ke}),t(Xn,!0),r?await n():null==o?await a():await i(o)})),disableTransformWidget:useActionCallback((({reset:e})=>()=>{e(Xn),e(Jn)})),setTransformWidgetOrientation:r,clearTransformWidgetOrientation:useActionCallback((({reset:e})=>()=>{e(ea),e(Jn)})),setTransformWidgetPosition:i,clearTransformWidgetPosition:useActionCallback((({reset:e})=>()=>e(Zn))),invalidateTransforms:o,setIsInteractivelyTransforming:useActionCallback((({set:e})=>t=>{e(na,t)})),setDefaultWidgetPosition:a,setDefaultWidgetPositionToSelection:n,enableSelectionSync:useActionCallback((({set:e})=>()=>e(ta,!0))),disableSelectionSync:useActionCallback((({reset:e})=>()=>e(ta))),syncToSelection:useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(en),n=await e.getPromise(tn),a=undefined;if(await e.getPromise(ta)){const e=n?.boundingBox,a=null!=e&&null!=t?.boundingBox&&equals(e,t.boundingBox);null==e||a||await i(g.center(e))}})),orientToHitResult:useActionCallback((({reset:e})=>async t=>{e(ta),null==t?.annotationId&&(null!=t?await i(t?.position):(e(Zn),r(void 0)))})),clearSelectedTransforms:useActionCallback((()=>async()=>{await t.execute(Wt.CLEAR_SELECTED_TRANSFORMS,(e=>e.where((e=>e.withSelected())).clearTransforms())),await o(),s()})),clearAllTransforms:useActionCallback((()=>async()=>{await t.execute(Wt.CLEAR_SELECTED_TRANSFORMS,(e=>e.where((e=>e.all())).clearTransforms())),await o(),s()})),applyTransformToItem:useActionCallback((({snapshot:e})=>async t=>{const n=await e.getPromise(et),a=await(n?.scene()),i=await e.getPromise(aa(t));if(null==i)return void logger_warn(`There is no transform to apply to item ${t}.`);const o=C.transpose(V(L(i?.local)));return a?.items((e=>e.where((e=>e.withItemId(t))).transform(o))).execute()}))}};var ua=Object.freeze({__proto__:null,appliedItemTransformIds:ia,appliedItemTransforms:aa,convertTransformFromUnits:convertTransformFromUnits,convertTransformToUnits:convertTransformToUnits,displayedItemTransform:sa,editedItemTransform:ra,fetchedItemTransforms:la,identityTransform:Yn,makeItemTransforms:makeItemTransforms,mapItemTransforms:mapItemTransforms,parentItemWorldMatrix:da,pickLocalOrWorldTransform:pickLocalOrWorldTransform,selectedCoordinateSpace:oa,toValidTransform:toValidTransform,transformInvalidator:ca,transformWidgetCachedOrientation:ea,transformWidgetEnabled:Xn,transformWidgetIsInteracting:na,transformWidgetOrientation:Qn,transformWidgetOrientationOverride:Jn,transformWidgetPosition:Zn,transformWidgetSyncToSelection:ta,useEditItemTransform:useEditItemTransform,useTransformActions:useTransformActions});const ma=o({key:"fetchedItemInvalidator",default:0}),pa=d({key:"fetchedItems",get:e=>async({get:t})=>{const n=t(et),a=t(ot);if(t(ma),t(ca),null!=a)try{return await(n?.sceneItems?.getSceneViewItem(e,a,{includeOverride:!0,includeWorldTransform:!0}))}catch(t){return void logger_debug(`Error encountered get scene view item. [itemId={${e}}]`,t)}}});function useSceneViewItemActions(){return{invalidateCachedItems:useActionCallback((({set:e})=>()=>{e(ma,(e=>e+1))}))}}var ha=Object.freeze({__proto__:null,fetchedItem:pa,fetchedItemInvalidator:ma,useSceneViewItemActions:useSceneViewItemActions});const fa=l({key:"modelViewsCursor",default:void 0}),ga=l({key:"pmiAnnotationsCursor",default:void 0}),ya=l({key:"loadedModelViews",default:[]}),va=l({key:"loadedPmiAnnotations",default:[]}),ba=l({key:"visiblePmiAnnotations",default:[]}),wa=r({key:"modelViewsSceneItemName",get:async({get:e})=>{const t=e(sn);if(null!=t){const n=e(pa(t.id));return n?.name??void 0}}}),Ca=o({key:"loadedItemModelView",default:void 0}),Sa=d({key:"nextModelViews",get:e=>async({get:t})=>{const n=t(et),a=t(fa(e));return await(n?.modelViews?.listByItem(e,{cursor:a,size:100,hasAnnotations:!0}))}}),xa=d({key:"modelViews",get:e=>({get:t})=>{const n=t(ya(e)),a=t(Sa(e));return n.flatMap((e=>e.modelViews)).concat(a?.modelViews??[])}}),ka=d({key:"hasMoreModelViews",get:e=>({get:t})=>{const n=t(Sa(e));return null!=n?.paging.next}}),Aa=d({key:"nextPmiAnnotations",get:e=>async({get:t})=>{const n=t(et),a=t(ga(e));return n?.pmi?.listAnnotations({modelViewId:e,cursor:a,size:100})}}),Ta=d({key:"pmiAnnotations",get:e=>({get:t})=>{const n=undefined;return t(va(e)).flatMap((e=>e.annotations))}}),Pa=d({key:"hasMorePmiAnnotations",get:e=>({get:t})=>{const n=undefined;return null!=t(ga(e))}}),Ma=o({key:"selectedPmiAnnotationId",default:void 0}),Ea=1e3;function useModelViewActions(){const e=useCrossSectioningActions(),t=usePmiAnnotationActions(),n=useSelectionActions(),a=useActionCallback((({snapshot:e})=>async()=>{const a=undefined;if(null!=await e.getPromise(Ca)){const a=await e.getPromiseRequired(et),i=await e.getPromiseRequired(Kt);await t.clearPmiAnnotationSelection(),0!==i.length&&await n.clearSelection(),await(a?.modelViews?.unload())}}));return{fetchNextModelViews:useActionCallback((({snapshot:e,set:t})=>async n=>{const a=await e.getPromise(Sa(n));if(null!=a){const e=a?.paging?.next;null!=e&&(t(ya(n),(e=>[...e,a])),t(fa(n),(()=>e)))}})),loadModelView:useActionCallback((({set:n,snapshot:i})=>async(o,r)=>{const s=await i.getPromiseRequired(et);try{const i=await s.scene();await e.setHighlightColorAndLineWidth(),await e.disable(),await a(),null!=i&&await(i?.camera().flyTo({camera:r.camera}).render({animation:{milliseconds:Ea}})),await(s?.modelViews?.load(o,r.id)),n(Ca,{itemId:o,modelView:r}),await t.fetchInitialPmiAnnotations(r.id)}catch(e){logger_error("Failed to load model view",e)}})),clearModelView:useActionCallback((({reset:e,snapshot:t})=>async()=>{const n=undefined;if(null!=await t.getPromise(Ca))try{await a(),e(Ca)}catch(e){logger_error("Failed to remove model view",e)}}))}}var Ia=Object.freeze({__proto__:null,MODEL_VIEW_ANIMATION_DURATION:Ea,hasMoreModelViews:ka,hasMorePmiAnnotations:Pa,loadedItemModelView:Ca,loadedModelViews:ya,loadedPmiAnnotations:va,modelViews:xa,modelViewsCursor:fa,modelViewsSceneItemName:wa,nextModelViews:Sa,nextPmiAnnotations:Aa,pmiAnnotations:Ta,pmiAnnotationsCursor:ga,selectedPmiAnnotationId:Ma,useModelViewActions:useModelViewActions,visiblePmiAnnotations:ba});const alignToNormal=(e,t,n)=>{if(e.toFrameCamera().isPerspective()){const n=v.dot(v.normalize(e.up),t),a=Math.abs(n)>.98?v.normalize(v.scale(-n,e.viewVector)):e.up,i=v.add(v.scale(v.distance(e.position,e.lookAt),v.multiply(t,v.create(-1,-1,-1))),e.lookAt);return e.update({up:a,position:i})}{const a=v.angleTo(v.normalize(e.viewVector),t),i=null!=n?g.center(n):e.lookAt,o=v.normalize(v.cross(v.normalize(e.viewVector),t));return e.rotateAroundAxisAtPoint(a,i,o)}};function isParallelTo(e,t){const n=S.toDegrees(v.angleTo(e,t));return 0===n||180===n}const Na=500;function useCrossSectioningActions(){const e=useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(vt),n=await e.getPromise(yt),a=await e.getPromise(xt),i=await e.getPromise(et),o=await(i?.scene());await(o?.crossSectioning().update({sectionPlanes:a,highlightColor:n?Pe.fromHexString(n):void 0,lineWidth:t}))})),t=useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(yt),n=await e.getPromise(vt),a=await e.getPromise(et),i=await(a?.scene()),o=i?.crossSectioning().current();await(i?.crossSectioning().update({sectionPlanes:o?.sectionPlanes??[],highlightColor:t?Pe.fromHexString(t):void 0,lineWidth:n}))})),n=useActionCallback((({set:t,reset:n,snapshot:a})=>async()=>{const i=await a.getPromise(et),o=await(i?.scene());if(null!=o){const a=o.camera().viewAll();n(Mt),t(xt,[towardsCamera(o.camera(),x(a.lookAt.x))]),await e()}})),a=useActionCallback(retainSnapshot((({snapshot:t,set:n})=>async()=>{const a=await t.tryGetPromise(Ht).then((e=>e.value)),i=await t.getPromise(et),o=await(i?.scene());if(null!=a&&null!=o){const t=fromHit(a,o.camera());n(xt,null!=t?[t]:[]),n(Mt,null!=t?{x:t.normal}:dt),await e()}}))),i=useActionCallback((({set:e,snapshot:t})=>async()=>{const a=await t.getPromise(xt),i=undefined;await t.getPromise(gt)||(e(gt,!0),0===a.length&&await n())})),o=useActionCallback((({reset:t,snapshot:n})=>async()=>{const a=undefined;await n.getPromise(gt)&&(t(gt),t(Ot),t(Vt),t(Lt),t(xt),t(kt),t(Pt),await e())}));return{enable:i,disable:o,reapply:useActionCallback((({snapshot:n})=>async()=>{const a=await n.getPromise(gt),i=undefined,o=null!=await n.getPromise(Ca);a?await e():o&&await t()})),setHighlightColorAndLineWidth:t,openAdditionalTools:useActionCallback((({set:e,snapshot:t})=>async()=>{const n=undefined;await t.getPromise(gt)||await i(),e(Ot,!0)})),closeAdditionalTools:useActionCallback((({reset:e})=>()=>{e(Ot)})),openAlignmentTools:useActionCallback((({set:e,reset:t})=>()=>{t(Lt),e(Vt,!0)})),closeAlignmentTools:useActionCallback((({reset:e})=>()=>{e(Vt)})),openAxisTools:useActionCallback((({set:e,reset:t})=>()=>{t(Vt),e(Lt,!0)})),closeAxisTools:useActionCallback((({reset:e})=>()=>{e(Lt)})),beginInteraction:useActionCallback((({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(_t);e(Tt,!0),await n.beginInteraction()})),endInteraction:useActionCallback((({reset:e,snapshot:t})=>async()=>{const n=await t.getPromise(_t);e(Tt),await n.endInteraction()})),updatePlanes:useActionCallback(retainSnapshot((({set:t,snapshot:n})=>async a=>{const i=await n.getPromise(xt);if(i.length>0){const o=await n.getPromise(Et),r=await n.getPromise(It),s=o<0?-1*r.max:r.min,l=o<0?-1*r.min:r.max,c=i.map((e=>({...e,offset:Math.min(Math.max(a*o,s),l)})));t(xt,c),await e()}}))),flipPlanes:useActionCallback((({set:t,snapshot:n})=>async()=>{const a=await n.getPromise(xt);t(xt,a.map((e=>invert(e)))),await e()})),alignViewToPlane:useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(xt),n=await e.getPromise(et),a=await(n?.scene());t.length>0&&null!=a&&await alignToNormal(a.camera(),t[0].normal,a.boundingBox()).render({animation:{milliseconds:Na}})})),updateAxis:useActionCallback(retainSnapshot((({set:t,reset:n,snapshot:a})=>async i=>{const o=await a.getPromise(xt),r=await a.getPromise(Mt),s=await a.getPromise(At),l=await a.getPromise(kt),c=await a.getPromise(et),d=await(c?.scene()),u=r[i],m=null!=u&&o.length>0&&isParallelTo(o[0].normal,u)&&!isNaN(v.angleTo(o[0].normal,u));if(null!=d&&!m){const e=await a.tryGetPromise(Ht).then((e=>e.value));t(Pt,i),t(xt,[toAxis(i,r,d.camera(),s,"global"!==l.mode?e?.position:void 0)])}n(Lt),await e()}))),updateAlignment:useActionCallback((({set:e,reset:t})=>async(o,r)=>{t(Vt),e(kt,{mode:o,hitPending:"global"!==o&&null==r}),"global"===o?(t(Pt),t(Mt),await n()):"surface"===o&&null!=r&&(await i(),await a())})),sectionCurrentHit:useActionCallback((({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(kt);n.hitPending&&(e(kt,{...n,hitPending:!1}),"surface"===n.mode&&await a())})),cancelCurrentHit:useActionCallback((({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(kt);n.hitPending&&e(kt,{...n,hitPending:!1})}))}}var Oa=Object.freeze({__proto__:null,DEFAULT_ALIGN_TO_PLANE_ANIMATION_DURATION_MS:Na,DEFAULT_CROSS_SECTION_HIGHLIGHT_COLOR:mt,DEFAULT_CROSS_SECTION_LINE_THICKNESS_VALUE:1,DEFAULT_END_CAPPING_COLOR:ht,DEFAULT_SLIDER_RANGE:ft,get EndCapColorType(){return ut},crossSectioningActiveAxis:Pt,crossSectioningAdditionalToolsOpen:Ot,crossSectioningAlignment:kt,crossSectioningAlignmentToolsOpen:Vt,crossSectioningAvailableAxes:Mt,crossSectioningAxisToolsOpen:Lt,crossSectioningBorderWidth:vt,crossSectioningEnabled:gt,crossSectioningHighlightColor:yt,crossSectioningInteractionHandler:_t,crossSectioningIsInteractive:Tt,crossSectioningOffsetScalar:Et,crossSectioningPlaneDisplayOffset:Nt,crossSectioningPlanes:xt,crossSectioningSliderRange:It,crossSectioningTargetBoundingBox:At,endCapColorType:Ct,endCapCustomColor:St,endCapEnabled:wt,endCapEnabledDefault:bt,useCrossSectioning:useCrossSectioning,useCrossSectioningActions:useCrossSectioningActions});function useDebouncedCallback(e,t){const[n,a]=A.useState();return A.useEffect((()=>()=>{null!=n&&clearTimeout(n)}),[e,t,n]),A.useCallback((i=>{const handler=()=>{e(i)};null!=n&&clearTimeout(n),a(setTimeout(handler,t))}),[e,t,n])}const VertexColorPicker=({onInput:t,...n})=>{const a=useDebouncedCallback((e=>{t?.(e)}),500),i=A.useCallback((e=>{const t=e.target;a(t.value)}),[a]);return e(R,{onInput:i,...n})},VertexCrossSectionAppearanceColorPicker=({onUpdate:t})=>{const n=useCrossSectioningActions(),[a,i]=h(yt);return e(VertexColorPicker,{"data-testid":"cross-section-highlight-color-picker",value:a,onValueChanged:e=>{t?.(e.detail)},onInput:async e=>{i(e),await n.reapply()}})};var Va={exports:{}},La;
|
|
13
|
+
*/function isObjectObject(e){return!0===isObject(e)&&"[object Object]"===Object.prototype.toString.call(e)}function isPlainObject$1(e){var t,n;return!1!==isObjectObject(e)&&("function"==typeof(t=e.constructor)&&(!1!==isObjectObject(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}function defaults(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=__read(e),a=n[0],i=n.slice(1),o=__assign({},a);if(0===i.length)return o;if(1===i.length){var r=i[0];for(var s in r)null==o[s]?o[s]=r[s]:isPlainObject(o[s])&&(o[s]=defaults(o[s],r[s]));return o}return i.reduce(function(e,t){return defaults(e,t)},a)}function isPlainObject(e){return isPlainObject$1(e)}function isEqual$1(e,t){return Me(e,t)}function toPairs(e){return null!=e?Object.keys(e).map(function(t){return[t,e[t]]}):[]}function fromPairs(e){return Array.isArray(e)?e.reduce(function(e,t){var n;return null!=t?__assign(__assign({},e),((n={})[t[0]]=t[1],n)):e},{}):{}}var Ee=Object.freeze({__proto__:null,defaults:defaults,isPlainObject:isPlainObject,isEqual:isEqual$1,toPairs:toPairs,fromPairs:fromPairs}),Ie,Ne=new Uint8Array(16);function rng(){if(!Ie&&!(Ie="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Ie(Ne)}var Oe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(e){return"string"==typeof e&&Oe.test(e)}for(var Ve=[],Le=0;Le<256;++Le)Ve.push((Le+256).toString(16).substr(1));function stringify(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(Ve[e[t+0]]+Ve[e[t+1]]+Ve[e[t+2]]+Ve[e[t+3]]+"-"+Ve[e[t+4]]+Ve[e[t+5]]+"-"+Ve[e[t+6]]+Ve[e[t+7]]+"-"+Ve[e[t+8]]+Ve[e[t+9]]+"-"+Ve[e[t+10]]+Ve[e[t+11]]+Ve[e[t+12]]+Ve[e[t+13]]+Ve[e[t+14]]+Ve[e[t+15]]).toLowerCase();if(!validate(n))throw TypeError("Stringified UUID is invalid");return n}function v4(e,t,n){var a=(e=e||{}).random||(e.rng||rng)();return a[6]=15&a[6]|64,a[8]=63&a[8]|128,stringify(a)}function create$1(){return v4()}function fromMsbLsb(e,t){function digits(e,t){var n=BigInt(1)<<t*BigInt(4);return(n|e&n-BigInt(1)).toString(16).substring(1)}var n="string"==typeof e?BigInt(e):e,a="string"==typeof t?BigInt(t):t,i=digits(n>>BigInt(32),BigInt(8)),o=digits(n>>BigInt(16),BigInt(4)),r=digits(n,BigInt(4)),s=digits(a>>BigInt(48),BigInt(4)),l=digits(a,BigInt(12));return"".concat(i,"-").concat(o,"-").concat(r,"-").concat(s,"-").concat(l)}function toMsbLsb(e){var t=__read(e.split("-"),5),n=t[0],a=t[1],i=t[2],o=t[3],r=t[4];if(null==n||null==a||null==i||null==o||null==r)throw new Error("Invalid UUID string ".concat(e));var s=BigInt.asIntN(64,BigInt("0x".concat(n+a+i))),l=BigInt.asIntN(64,BigInt("0x".concat(o+r)));return{msb:s.toString(),lsb:l.toString()}}var _e=Object.freeze({__proto__:null,create:create$1,fromMsbLsb:fromMsbLsb,toMsbLsb:toMsbLsb});function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Re={exports:{}},De,ze,Be;function requireBrowser(){if(De)return Re.exports;De=1;const e=a;Re.exports=pino;const t=pfGlobalThisOrFallback().console||{},n={mapHttpRequest:mock,mapHttpResponse:mock,wrapRequestSerializer:passthrough,wrapResponseSerializer:passthrough,wrapErrorSerializer:passthrough,req:mock,res:mock,err:asErrValue,errWithCause:asErrValue};function levelToValue(e,t){return"silent"===e?1/0:t.levels.values[e]}const i=Symbol("pino.logFuncs"),o=Symbol("pino.hierarchy"),r={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function appendChildLogger(e,t){const n={logger:t,parent:e[o]};t[o]=n}function setupBaseLogFunctions(e,n,a){const o={};n.forEach(e=>{o[e]=a[e]?a[e]:t[e]||t[r[e]||"log"]||noop}),e[i]=o}function shouldSerialize(e,t){if(Array.isArray(e)){const t=void 0;return e.filter(function(e){return"!stdSerializers.err"!==e})}return!0===e&&Object.keys(t)}function pino(e){(e=e||{}).browser=e.browser||{};const n=e.browser.transmit;if(n&&"function"!=typeof n.send)throw Error("pino: transmit option must have a send function");const a=e.browser.write||t;e.browser.write&&(e.browser.asObject=!0);const i=e.serializers||{},o=shouldSerialize(e.browser.serialize,i);let r=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(r=!1);const s=Object.keys(e.customLevels||{}),l=["error","fatal","warn","info","debug","trace"].concat(s);"function"==typeof a&&l.forEach(function(e){a[e]=a}),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");const c=e.level||"info",d=Object.create(a);d.log||(d.log=noop),setupBaseLogFunctions(d,l,a),appendChildLogger({},d),Object.defineProperty(d,"levelVal",{get:getLevelVal}),Object.defineProperty(d,"level",{get:getLevel,set:setLevel});const u={transmit:n,serialize:o,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,levels:l,timestamp:getTimeFunction(e),messageKey:e.messageKey||"msg",onChild:e.onChild||noop};function getLevelVal(){return levelToValue(this.level,this)}function getLevel(){return this._level}function setLevel(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,set(this,u,d,"error"),set(this,u,d,"fatal"),set(this,u,d,"warn"),set(this,u,d,"info"),set(this,u,d,"debug"),set(this,u,d,"trace"),s.forEach(e=>{set(this,u,d,e)})}function child(t,a,r){if(!a)throw new Error("missing bindings for child Pino");r=r||{},o&&a.serializers&&(r.serializers=a.serializers);const s=r.serializers;if(o&&s){var l=Object.assign({},i,s),c=!0===e.browser.serialize?Object.keys(l):o;delete a.serializers,applySerializers([a],c,l,this._stdErrSerialize)}function Child(e){this._childLevel=1+(0|e._childLevel),this.bindings=a,l&&(this.serializers=l,this._serialize=c),n&&(this._logEvent=createLogEventShape([].concat(e._logEvent.bindings,a)))}Child.prototype=this;const d=new Child(this);return appendChildLogger(this,d),d.child=function(...e){return child.call(this,t,...e)},d.level=r.level||this.level,t.onChild(d),d}return d.levels=getLevels(e),d.level=c,d.isLevelEnabled=function(e){return!!this.levels.values[e]&&this.levels.values[e]>=this.levels.values[this.level]},d.setMaxListeners=d.getMaxListeners=d.emit=d.addListener=d.on=d.prependListener=d.once=d.prependOnceListener=d.removeListener=d.removeAllListeners=d.listeners=d.listenerCount=d.eventNames=d.write=d.flush=noop,d.serializers=i,d._serialize=o,d._stdErrSerialize=r,d.child=function(...e){return child.call(this,u,...e)},n&&(d._logEvent=createLogEventShape()),d}function getLevels(e){const t=e.customLevels||{},n=void 0,a=void 0;return{values:Object.assign({},pino.levels.values,t),labels:Object.assign({},pino.levels.labels,invertObject(t))}}function invertObject(e){const t={};return Object.keys(e).forEach(function(n){t[e[n]]=n}),t}function getBindingChain(e){const t=[];e.bindings&&t.push(e.bindings);let n=e[o];for(;n.parent;)n=n.parent,n.logger.bindings&&t.push(n.logger.bindings);return t.reverse()}function set(e,t,n,a){if(Object.defineProperty(e,a,{value:levelToValue(e.level,n)>levelToValue(a,n)?noop:n[i][a],writable:!0,enumerable:!0,configurable:!0}),e[a]===noop){if(!t.transmit)return;const i=void 0,o=levelToValue(t.transmit.level||e.level,n),r=void 0;if(levelToValue(a,n)<o)return}e[a]=createWrap(e,t,n,a);const o=getBindingChain(e);0!==o.length&&(e[a]=prependBindingsInArguments(o,e[a]))}function prependBindingsInArguments(e,t){return function(){return t.apply(this,[...e,...arguments])}}function createWrap(e,n,a,o){return r=e[i][o],function LOG(){const i=n.timestamp(),s=new Array(arguments.length),l=Object.getPrototypeOf&&Object.getPrototypeOf(this)===t?t:this;for(var c=0;c<s.length;c++)s[c]=arguments[c];var d=!1;if(n.serialize&&(applySerializers(s,this._serialize,this.serializers,this._stdErrSerialize),d=!0),n.asObject||n.formatters?r.call(l,...asObject(this,o,s,i,n)):r.apply(l,s),n.transmit){const t=void 0,r=levelToValue(n.transmit.level||e._level,a),l=levelToValue(o,a);if(l<r)return;transmit(this,{ts:i,methodLevel:o,methodValue:l,transmitValue:a.levels.values[n.transmit.level||e._level],send:n.transmit.send,val:levelToValue(e._level,a)},s,d)}};var r}function asObject(t,n,a,i,o){const{level:r,log:s=e=>e}=o.formatters||{},l=a.slice();let c=l[0];const d={};let u=1+(0|t._childLevel);if(u<1&&(u=1),i&&(d.time=i),r){const e=r(n,t.levels.values[n]);Object.assign(d,e)}else d.level=t.levels.values[n];if(o.asObjectBindingsOnly){if(null!==c&&"object"==typeof c)for(;u--&&"object"==typeof l[0];)Object.assign(d,l.shift());const e=void 0;return[s(d),...l]}{if(null!==c&&"object"==typeof c){for(;u--&&"object"==typeof l[0];)Object.assign(d,l.shift());c=l.length?e(l.shift(),l):void 0}else"string"==typeof c&&(c=e(l.shift(),l));void 0!==c&&(d[o.messageKey]=c);const t=void 0;return[s(d)]}}function applySerializers(e,t,n,a){for(const i in e)if(a&&e[i]instanceof Error)e[i]=pino.stdSerializers.err(e[i]);else if("object"==typeof e[i]&&!Array.isArray(e[i])&&t)for(const a in e[i])t.indexOf(a)>-1&&a in n&&(e[i][a]=n[a](e[i][a]))}function transmit(e,t,n,a=!1){const i=t.send,o=t.ts,r=t.methodLevel,s=t.methodValue,l=t.val,c=e._logEvent.bindings;a||applySerializers(n,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=o,e._logEvent.messages=n.filter(function(e){return-1===c.indexOf(e)}),e._logEvent.level.label=r,e._logEvent.level.value=s,i(r,e._logEvent,l),e._logEvent=createLogEventShape(c)}function createLogEventShape(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function asErrValue(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const n in e)void 0===t[n]&&(t[n]=e[n]);return t}function getTimeFunction(e){return"function"==typeof e.timestamp?e.timestamp:!1===e.timestamp?nullTime:epochTime}function mock(){return{}}function passthrough(e){return e}function noop(){}function nullTime(){return!1}function epochTime(){return Date.now()}function unixTime(){return Math.round(Date.now()/1e3)}function isoTime(){return new Date(Date.now()).toISOString()}function pfGlobalThisOrFallback(){function defd(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(e){return defd(self)||defd(window)||defd(this)||{}}}return pino.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},pino.stdSerializers=n,pino.stdTimeFunctions=Object.assign({},{nullTime:nullTime,epochTime:epochTime,unixTime:unixTime,isoTime:isoTime}),Re.exports.default=pino,Re.exports.pino=pino,Re.exports}const je=getDefaultExportFromCjs(requireBrowser())({formatters:{level:e=>({level:e})}}),logger_error=(e,t)=>{null!=t?je.error(t,e):je.error(e)},logger_info=(e,t)=>{null!=t?je.info(t,e):je.info(e)},logger_warn=(e,t)=>{null!=t?je.warn(t,e):je.warn(e)},logger_debug=(e,t)=>{null!=t?je.debug(t,e):je.debug(e)};class He{}function useActionCallback(e,t=[]){const n=void 0;return i(t=>e({...t,snapshot:Object.defineProperties(t.snapshot,{getPromiseRequired:{configurable:!0,value:createGetPromiseRequiredWrapper(t.snapshot)},tryGetPromise:{configurable:!0,value:createTryGetPromiseWrapper(t.snapshot)}})}),t instanceof He?void 0:t)}function retainSnapshot(e){return({snapshot:t,...n})=>async(...a)=>{const i=t.retain();try{const i=void 0;return await e({...n,snapshot:t})(...a)}finally{i()}}}function createGetPromiseRequiredWrapper(e){return async(t,n)=>{const a=await e.getPromise(t);if(null==a)throw n??new Error(`No value present for required value ${t.key}`);return a}}function createTryGetPromiseWrapper(e){return async t=>{try{return{value:await e.getPromise(t)}}catch(e){return logger_debug(`Error encountered retrieving Recoil value. [key={${t.key}}]`,e),{error:e}}}}const Fe=3e3,We=5e3,Ue=8e3,Ge=o({key:"applicationMessageToast",default:void 0}),Ke=o({key:"applicationMessageBanner",default:void 0}),useApplicationMessageActions=()=>({setBannerMessage:useActionCallback(({set:e})=>t=>{e(Ke,null!=t?{...t,id:_e.create()}:void 0)}),setToastMessage:useActionCallback(({set:e})=>t=>{e(Ge,null!=t?{...t,id:_e.create()}:void 0)})});var $e=Object.freeze({__proto__:null,LOW_SEVERITY_BANNER_MESSAGE_DURATION_MS:We,LOW_SEVERITY_TOAST_MESSAGE_DURATION_MS:Fe,MEDIUM_SEVERITY_TOAST_MESSAGE_DURATION_MS:Ue,applicationMessageBanner:Ke,applicationMessageToast:Ge,useApplicationMessageActions:useApplicationMessageActions});const qe=500;function useViewerCameraActions(){const e=useApplicationMessageActions();return{flyToById:useActionCallback(({snapshot:e})=>async(t,n)=>{const a=await e.getPromise(Xe),i=await(a?.scene());await(i?.camera().flyTo({itemId:t}).render({animation:{milliseconds:n??qe}}))}),flyToByBoundingBox:useActionCallback(({snapshot:e})=>async(t,n)=>{const a=await e.getPromise(Xe),i=await(a?.scene());await(i?.camera().flyTo({boundingBox:t}).render({animation:{milliseconds:n??qe}}))}),updateCameraType:useActionCallback(({set:t,snapshot:n})=>async(a,i)=>{const o=await n.getPromise(at),r=void 0;null!=o&&g.isValid(o)||!i?t(Ye,a):e.setToastMessage({type:"error",message:"Cannot change the camera type when no geometry is visible.",duration:Ue})})}}const Ye=o({key:"viewerCameraType",default:"perspective"}),Xe=o({key:"viewerToolkitViewerElement",default:void 0,dangerouslyAllowMutability:!0}),Ze=o({key:"viewerElementId",default:"vertex-viewer"}),Je=o({key:"viewerInitialSceneReady",default:!1}),Qe=o({key:"viewerBaseInteractionHandlerProvider",default:Promise.resolve(void 0),dangerouslyAllowMutability:!0}),et=o({key:"viewerPrimaryInteractionType",default:"rotate"}),tt=o({key:"viewerSceneViewId",default:void 0});function useViewerSceneActions(){const e=useActionCallback(({snapshot:e})=>async(t,n,...a)=>{const i=await e.getPromise(Xe),o=await(i?.scene());a.length>0&&await(o?.items(e=>a.map(t=>t(e))).execute({suppliedCorrelationId:n}))}),t=A.useCallback((...e)=>t=>t.where(t=>t.withItemIds(e)).select(),[]),n=A.useCallback((...e)=>t=>t.where(t=>t.withItemIds(e)).deselect(),[]),a=A.useCallback(e=>e.where(e=>e.all()).deselect(),[]);return{executeWithCorrelationId:e,execute:useActionCallback(()=>async(t,...n)=>{const a=_e.create();await e(t,a,...n)}),selectItemsTransform:t,deselectItemsTransform:n,clearSelectionTransform:a,reset:useActionCallback(({snapshot:e})=>async t=>{const n=await e.getPromise(Xe),a=await(n?.scene()),i=await e.getPromiseRequired(Ye);a?.reset({includeCamera:!0,suppliedCorrelationId:t,cameraTypeOverride:i})})}}const nt=o({key:"viewerFrameScene",default:void 0,dangerouslyAllowMutability:!0}),at=r({key:"viewerSceneVisibleBoundingBox",get:({get:e})=>e(nt)?.boundingBox});var it=Object.freeze({__proto__:null,DEFAULT_CAMERA_ANIMATION_DURATION:qe,useViewerCameraActions:useViewerCameraActions,useViewerSceneActions:useViewerSceneActions,viewerBaseInteractionHandlerProvider:Qe,viewerCameraType:Ye,viewerElement:Xe,viewerElementId:Ze,viewerFrameScene:nt,viewerInitialSceneReady:Je,viewerPrimaryInteractionType:et,viewerSceneViewId:tt,viewerSceneVisibleBoundingBox:at});class ot{api;interactionStarted=!1;initialize(e,t){this.api=t}dispose(){this.endInteraction()}async beginInteraction(){this.interactionStarted||(await(this.api?.beginInteraction()),this.interactionStarted=!0)}async endInteraction(){await(this.api?.endInteraction()),this.interactionStarted=!1}}const create=(e,t=0)=>({normal:e,offset:t}),forAxis=(e,t)=>{switch(e){case"x":return x(t);case"y":return y(t);case"z":return z(t)}},x=e=>create(v.left(),-e),y=e=>create(v.down(),-e),z=e=>create(v.forward(),-e),getAxis=(e,t)=>{switch(e){case"x":return xAxis(t);case"y":return yAxis(t);case"z":return zAxis(t)}},rt={x:v.left(),y:v.down(),z:v.forward()},xAxis=e=>e.x,yAxis=e=>e.y||v.create(e.x.z,e.x.x,e.x.y),zAxis=e=>e.z||v.create(e.x.y,e.x.z,e.x.x),axis=(e,t,n,a)=>e&&e.normal&&[["x",t],["y",n],["z",a]].filter(t=>0===v.magnitude(v.cross(e.normal,t[1]))).map(e=>e[0]).pop(),isNegativeNormal=e=>v.dot(v.create(-1,-1,-1),e.normal)>0,towardsVector=(e,t)=>{const n=void 0;return v.dot(e,t.normal)<0?invert(t):t},towardsCamera=(e,t)=>towardsVector(e.viewVector,t),invert=e=>({...e,normal:v.multiply(e.normal,v.create(-1,-1,-1)),offset:-e.offset}),fromHit=(e,t)=>{const n=v.normalize(e.normal),a=v.dot(n,e.position);return towardsCamera(t,create(n,a))},toAxis=(e,t,n,a,i)=>{const o=n.viewAll(),r=getAxis(e,t),s=null!=a&&null!=r?create(r,v.dot(r,i||g.center(a))):forAxis(e,o.lookAt[e]);return towardsCamera(n,s)};function corners(e){return[v.create(e.min.x,e.min.y,e.min.z),v.create(e.min.x,e.min.y,e.max.z),v.create(e.min.x,e.max.y,e.min.z),v.create(e.min.x,e.max.y,e.max.z),v.create(e.max.x,e.max.y,e.max.z),v.create(e.max.x,e.max.y,e.min.z),v.create(e.max.x,e.min.y,e.max.z),v.create(e.max.x,e.min.y,e.min.z)]}function equals(e,t){return e.min.x===t.min.x&&e.min.y===t.min.y&&e.min.z===t.min.z&&e.max.x===t.max.x&&e.max.y===t.max.y&&e.max.z===t.max.z}var st;!function(e){e.PART="PART",e.SINGLE="SINGLE"}(st||(st={}));const lt="#616161",ct=1,dt="#BDBDBD",ut={default:5,min:0,max:10},mt=o({key:"crossSectioningEnabled",default:!1}),pt=o({key:"crossSectioningHighlightColor",default:lt}),ht=o({key:"crossSectioningBorderWidth",default:1}),ft=o({key:"endCapEnabledDefault",default:!0}),gt=o({key:"endCapEnabled",default:!0}),vt=o({key:"endCapColorType",default:st.PART}),yt=o({key:"endCapCustomColor",default:dt}),bt=o({key:"crossSectioningPlanes",default:[]}),wt=o({key:"crossSectioningAlignment",default:{mode:"global",hitPending:!1}}),Ct=r({key:"crossSectioningTargetBoundingBox",get:async({get:e})=>{const t=void 0;return e(at)}}),St=o({key:"crossSectioningIsInteractive",default:!1}),xt=o({key:"crossSectioningActiveAxis",default:"x"}),kt=o({key:"crossSectioningAvailableAxes",default:rt}),At=r({key:"crossSectioningOffsetScalar",get:({get:e})=>{const t=e(bt);return t.length>0&&isNegativeNormal(t[0])?-1:1}}),Tt=r({key:"crossSectioningSliderRange",get:({get:e})=>{const t=e(bt),n=e(Ct),a=null!=n?corners(n):[];if(t.length>0){const e=a.map(e=>v.dot(e,isNegativeNormal(t[0])?v.multiply(t[0].normal,v.create(-1,-1,-1)):t[0].normal));return{default:t[0].offset,min:Math.min(...e)-2,max:Math.max(...e)+2}}return ut}}),Pt=r({key:"crossSectioningPlaneDisplayOffset",get:({get:e})=>{const t=e(bt),n=e(At),a=e(Tt);return t.length>0?t[0].offset*n:a.default}}),Mt=o({key:"crossSectioningAdditionalToolsOpen",default:!1}),Et=o({key:"crossSectioningAlignmentToolsOpen",default:!1}),It=o({key:"crossSectioningAxisToolsOpen",default:!1}),Nt=o({key:"crossSectioningInteractionHandler",default:new ot,dangerouslyAllowMutability:!0});function useCrossSectioning(e,t){const n=s(Nt);A.useEffect(()=>{t&&e?.registerInteractionHandler(n)},[e,t,n])}const Ot=o({key:"hitResultsTapDetails",default:void 0}),Vt=o({key:"hitResultsLongPressDetails",default:void 0}),Lt=o({key:"previousHitResult",default:void 0}),_t=o({key:"currentHitResult",default:void 0}),Rt=r({key:"hitResult",get:async({get:e})=>{const t=e(Ot),n=e(Vt),a=t??n,i=e(Xe),o=await(i?.scene()),r=o?.sceneViewId,s=o?.raycaster();if(null!=a&&null!=s&&null!=r){const e=await s.hitItems(a.position),t=(e?.hits||[])[0];if(null!=t)return{id:t.itemId?.hex,normal:v.create(t?.hitNormal?.x||0,t?.hitNormal?.y||0,t?.hitNormal?.z||0),position:v.create(t?.hitPoint?.x||0,t?.hitPoint?.y||0,t?.hitPoint?.z||0),meta:a.metaKey||a.ctrlKey||!1,metadata:[],ancestors:t?.ancestors?.filter(e=>null!=e.itemId?.hex).map(e=>e.itemId?.hex)||[],annotationId:t?.annotationId?.hex}}}}),Dt=o({key:"hitResultsSkipNextTap",default:!1}),zt="Scene Alteration Performance";var Bt;!function(e){e.HIDE_ITEM="Hide Item",e.SHOW_ONLY_SELECTED="Show Only Selected",e.HIDE_SELECTED="Hide Selected",e.SHOW_ONLY_ITEM="Show Only Item",e.SHOW_ALL="Show All",e.HIDE_ALL="Hide All",e.SELECT_FILTERED_ITEMS="Select Filtered Items",e.INVERT_SELECTION="Invert Selection",e.CLEAR_ALL_TRANSFORMS="Clear All Transforms",e.CLEAR_SELECTED_TRANSFORMS="Clear Selected Transforms",e.CLEAR_SELECTION="Clear Selection",e.DESELECTING_ITEMS="Deselecting Items",e.SELECTING_ITEMS="Selecting Items",e.SELECTING_ONLY_ITEM="Selecting Only Item",e.SELECTING_ANCESTOR="Selecting Ancestor",e.APPLY_MATERIAL_OVERRIDE_TO_ALL="Apply Material Override To All",e.APPLY_MATERIAL_OVERRIDE_TO_SELECTION="Apply Material Override To Selection",e.CLEAR_ALL_MATERIAL_OVERRIDES="Clear All Material Overrides",e.CLEAR_SELECTED_MATERIAL_OVERRIDES="Clear Selected Material Overrides",e.SET_PHANTOM_ALL="Set Phantom All",e.SET_PHANTOM_SELECTED_ITEMS="Set Phantom Selected Items",e.CLEAR_PHANTOM_ALL="Clear Phantom All",e.CLEAR_PHANTOM_SELECTED_ITEMS="Clear Phantom Selected Items",e.SET_PHANTOM_NON_SELECTED_ITEMS="Set Phantom Non Selected Items",e.RESTORE_PHANTOM_OVERRIDES="Restore Phantom Overrides",e.SET_ITEM_AS_END_ITEM="Set Item as End Item",e.UNSET_ITEM_AS_END_ITEM="Unset Item as End Item",e.SHOW_ANNOTATION="Show Annotation",e.HIDE_ANNOTATION="Hide Annotation"}(Bt||(Bt={}));var jt=Object.freeze({__proto__:null,SCENE_ALTERATION_PERFORMANCE:zt,get SceneAlterationPerformanceType(){return Bt}});const Ht=l({key:"selectionSelectedItems",default:void 0}),Ft=o({key:"selectionSelectedItemIds",default:[]}),Wt=o({key:"selectionLastSelected",default:void 0}),Ut=o({key:"selectionLastSelectionFromViewer",default:!1}),Gt=o({key:"selectionLastSelectWasMultiSelect",default:!1}),Kt=r({key:"selectionHasMultipleSelected",get:({get:e})=>{const t=e(Wt),n=void 0;return e(Ft).filter(e=>e!==t?.id&&!t?.ancestors?.includes(e)).length>0}}),$t=o({key:"selectionIsAncestorSelection",default:!1}),qt=o({key:"selectionFirstSelectedItemInTreeId",default:void 0}),Yt=r({key:"selectionHighestSelectedAncestor",get:({get:e})=>{const t=e(Wt),n=e(Ft);return t?.ancestors?.find(e=>n.includes(e))??t?.id}}),Xt=o({key:"selectionPreviousVisibleSummary",default:void 0}),Zt=o({key:"selectionVisibleSummary",default:void 0}),Jt=r({key:"selectionVisibleCount",get:({get:e})=>e(Zt)?.count??0}),Qt=r({key:"selectionBoundingBoxCenter",get:({get:e})=>{const t=e(Zt);return null!=t?.boundingBox?g.center(t.boundingBox):v.origin()}}),en=r({key:"selectionIsActive",get:({get:e})=>{const t=e(Ft),n=void 0;return e(Jt)>0||t.length>0}}),tn=r({key:"fetchedAndSelectedItems",get:async({get:e})=>{const t=e(Ft),n=void 0;return null!=e(tt)?t.map(t=>e(la(t))):[]}}),nn=o({key:"selectionModelViewsSelected",default:void 0});function contextMenuItemIsRow(e){return null!=e&&null!=e?.node?.id}function contextMenuItemIsElement(e){return null!=e&&e instanceof HTMLElement}const an=o({key:"contextMenuActive",default:void 0}),on=o({key:"contextMenuPosition",default:void 0}),rn=o({key:"contextMenuTarget",default:void 0}),sn=o({key:"contextMenuItem",default:void 0}),ln=o({key:"contextMenuActions",default:[]}),cn=r({key:"contextMenuActivePosition",get:({get:e})=>null!=e(an)?e(on):void 0});function useContextMenuActions(){return{pointerDown:useActionCallback(({set:e})=>async t=>{if(2===t.button){const n=t.clientX,a=t?.clientY;e(on,b.create(n,a)),e(rn,t.target)}}),pointerUp:useActionCallback(({snapshot:e,set:t})=>async(n,a,i,o)=>{const r=await e.getPromise(on),s=await e.getPromise(an);if(null!=r&&null==s){const e=n.clientX,s=n?.clientY,l=b.create(e,s),c=null!=r?b.distance(r,l):0,d=null==i||i(n);c<2&&d&&(o?.(n,r??l),t(an,a))}}),contextMenu:useActionCallback(()=>(e,t)=>{(null==t||t(e))&&e.preventDefault()}),longPress:useActionCallback(({set:e})=>(t,n,a,i)=>{if(null==a||a(t)){const a=b.create(t.touches[0].clientX,t.touches[0].clientY);e(on,a),e(rn,t.target),e(an,n),i?.(t,a)}}),setContextMenuItem:useActionCallback(({snapshot:e,set:t,reset:n})=>async a=>{const i=await e.getPromise(ln);t(sn,a),i.forEach(e=>e(a)),n(ln)}),clearActiveContextMenu:useActionCallback(({reset:e,set:t})=>n=>{t(Dt,!!n),e(an),e(ln),e(on)}),clearDismissedState:useActionCallback(({reset:e})=>()=>e(Dt))}}function targetWithinMenu(e){return e.target instanceof Element&&isChildOf("vertex-menu",e.target)}function targetShouldSkipNextHit(e){return e.target instanceof Element&&isChildOf("vertex-viewer",e.target)}function isChildOf(e,t){return null!=t.closest(e)}var dn=Object.freeze({__proto__:null,contextMenuActions:ln,contextMenuActive:an,contextMenuActivePosition:cn,contextMenuItem:sn,contextMenuItemIsElement:contextMenuItemIsElement,contextMenuItemIsRow:contextMenuItemIsRow,contextMenuPosition:on,contextMenuTarget:rn,targetShouldSkipNextHit:targetShouldSkipNextHit,targetWithinMenu:targetWithinMenu,useContextMenuActions:useContextMenuActions});const un=o({key:"boxSelectionEnabled",default:!1}),mn=o({key:"boxSelectionOperationType",default:"clearAndSelect"}),useBoxSelectionActions=()=>({enable:useActionCallback(({set:e})=>()=>{e(un,!0)}),disable:useActionCallback(({reset:e})=>async()=>{e(un),e(mn)}),setOperationType:useActionCallback(({set:e})=>t=>{e(mn,t)})});var pn=Object.freeze({__proto__:null,boxSelectionEnabled:un,boxSelectionOperationType:mn,useBoxSelectionActions:useBoxSelectionActions});async function whenComponentReady(e,t,n=customElements,a=requestAnimationFrame,i=setTimeout){return null!=e&&null!=e.nodeName&&await n.whenDefined(e.nodeName.toLowerCase()),"function"==typeof e?.componentOnReady?(await(e?.componentOnReady()),t()):(await new Promise(e=>"function"==typeof a?a(e):i(e)),t())}const hn=o({key:"isEditingPointToPointMeasurement",default:!1}),fn=o({key:"pointToPointMeasurementOutcome",default:void 0}),gn=o({key:"editedPointToPointMeasurement",default:void 0});function usePointToPointMeasurement(e){const t=c(fn);T(()=>{let n;return whenComponentReady(e,()=>{n=e?.measurementModel.onOutcomeChanged(t)}),()=>n?.dispose()},[e,t])}const vn=2,yn=o({key:"isEditingPreciseMeasurement",default:!1}),bn=o({key:"preciseMeasurementOutcome",default:void 0}),wn=o({key:"preciseMeasurementController",dangerouslyAllowMutability:!0,default:void 0}),Cn=o({key:"preciseMeasurementOverlays",dangerouslyAllowMutability:!0,default:void 0}),Sn=o({key:"preciseMeasurementEntities",dangerouslyAllowMutability:!0,default:[]}),xn=r({key:"preciseMeasurementMessage",get:({get:e})=>{const t=void 0;return 0===e(Sn).length?"Select a surface":void 0}});function usePreciseMeasurementModel(e,t,n){const a=c(Sn),i=c(bn),o=c(wn),r=c(Cn),l=s(wn);T(()=>{let n;return whenComponentReady(e,()=>{n=e?.measurementModel.onEntitiesChanged(e=>{a(e),t?.(e)})}),()=>n?.dispose()},[e,a]),T(()=>{let t;return whenComponentReady(e,()=>{t=e?.measurementModel.onOutcomeChanged(e=>{i(e),n?.(e)})}),()=>t?.dispose()},[e,i]),T(()=>{let t;return whenComponentReady(e,()=>{t=e?.measurementModel.onEntitiesChanged(e=>{if(e.length>2){const t=e[2];l?.setEntities(new Set([t]))}})}),()=>t?.dispose()},[e,l]),T(()=>{whenComponentReady(e,()=>{o(e?.measurementController)})},[e,o]),T(()=>{whenComponentReady(e,()=>{r(e?.measurementOverlays)})},[e,r])}function useMeasurementActions(){const e=useBoxSelectionActions(),t=useEnablePointToPointMeasurement(),n=useDisablePointToPointMeasurement(),a=useDisablePreciseMeasurement(),i=useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(wn);t?.clearEntities()}),o=useActionCallback(()=>async(e={})=>{await i(),n(e),a()}),r=useActionCallback(({set:e,reset:n})=>async a=>{await o(),"point-to-point"===a?t():(n(bn),n(Sn),e(yn,!0))});return{disableEditMeasurement:useActionCallback(()=>async e=>{await o(e)}),enableEditMeasurement:useActionCallback(()=>async e=>{await r(e)}),resetMeasurement:useActionCallback(({snapshot:e,reset:t})=>async()=>{const n=await e.getPromise(yn),a=await e.getPromise(hn);n?await i():a&&(t(fn),t(gn))}),clearEditedPointToPointMeasurement:useActionCallback(({reset:e})=>()=>{e(gn)}),setEditedPointToPointMeasurement:useActionCallback(({set:e})=>t=>{e(gn,t)}),toggleEditPointToPointMeasurement:useActionCallback(({snapshot:t})=>async()=>{const n=void 0;await t.getPromise(hn)?await o():await r("point-to-point"),e.disable()}),toggleEditPreciseMeasurement:useActionCallback(({snapshot:t})=>async()=>{const n=void 0;await t.getPromise(yn)?await o():await r("precise"),e.disable()})}}function useEnablePointToPointMeasurement(){return useActionCallback(({reset:e,set:t})=>(n={})=>{t(hn,!0),n.keepExistingMeasurement||e(fn)})}function useDisablePointToPointMeasurement(){return useActionCallback(({reset:e})=>(t={})=>{e(hn),t.keepExistingMeasurement||(e(gn),e(fn))})}function useDisablePreciseMeasurement(){return useActionCallback(({reset:e})=>async()=>{e(yn),e(bn),e(Sn)})}const kn=r({key:"isEditingMeasurement",get:({get:e})=>e(hn)||e(yn)}),An=r({key:"measurementPanelModel",get:({get:e})=>e(fn)||e(bn)}),Tn=r({key:"measurementPanelOverlays",dangerouslyAllowMutability:!0,get:({get:e})=>e(Cn)}),Pn=r({key:"measurementPanelMessage",get:({get:e})=>{const t=void 0;return e(yn)?e(xn):void 0}}),Mn=r({key:"measurementPanelIsResettable",get:({get:e})=>e(kn)&&null!=e(An)});var En=Object.freeze({__proto__:null,editedPointToPointMeasurement:gn,isEditingMeasurement:kn,isEditingPointToPointMeasurement:hn,isEditingPreciseMeasurement:yn,measurementPanelIsResettable:Mn,measurementPanelMessage:Pn,measurementPanelOutcome:An,measurementPanelOverlays:Tn,pointToPointMeasurementOutcome:fn,preciseMeasurementController:wn,preciseMeasurementEntities:Sn,preciseMeasurementMessage:xn,preciseMeasurementOutcome:bn,preciseMeasurementOverlays:Cn,useDisablePointToPointMeasurement:useDisablePointToPointMeasurement,useDisablePreciseMeasurement:useDisablePreciseMeasurement,useEnablePointToPointMeasurement:useEnablePointToPointMeasurement,useMeasurementActions:useMeasurementActions,usePointToPointMeasurement:usePointToPointMeasurement,usePreciseMeasurementModel:usePreciseMeasurementModel});const useHitActions=()=>{const e=useCrossSectioningActions(),t=useMeasurementActions(),n=useTransformActions(),a=useActionCallback(retainSnapshot(({snapshot:e})=>async()=>{const n=await e.tryGetPromise(Rt).then(e=>e.value),a=await e.getPromise(gn);null==n&&null!=a?.start&&null!=a.end&&await t.resetMeasurement()})),i=useActionCallback(retainSnapshot(({snapshot:e})=>async()=>{const t=await e.tryGetPromise(Rt).then(e=>e.value);await n.orientToHitResult(t)})),o=useActionCallback(retainSnapshot(({set:e,snapshot:t})=>async()=>{const n=await t.tryGetPromise(Rt).then(e=>e.value);e(sn,n)})),r=useActionCallback(retainSnapshot(({snapshot:e,set:t})=>async()=>{t(_t,await e.tryGetPromise(Rt).then(e=>e.value))}));return{tap:useActionCallback(retainSnapshot(({snapshot:t,set:n})=>async({detail:s},...l)=>{const c=await t.getPromise(kn),d=await t.getPromise(wt),u=2!==s?.buttons&&!s?.altKey;s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;const m=u&&!d.hitPending&&!c,p=await t.tryGetPromise(Rt).then(e=>e.value);n(Lt,p),n(Ot,s),await a(),m&&(l.forEach(e=>e()),await i()),await o(),await e.sectionCurrentHit(),await r()})),longPress:useActionCallback(retainSnapshot(({snapshot:e,set:t,reset:n})=>async a=>{n(Ot),t(Vt,a.detail),await e.tryGetPromise(Rt),await o(),await r()}))}},In=r({key:"viewerToolkitHitState",get:({get:e})=>{const t=void 0,n=void 0,a=void 0,i=void 0,o=void 0;return{tapDetails:e(Ot),longPressDetails:e(Vt),previousHitResult:e(Lt),currentHitResult:e(_t)}}});var Nn=Object.freeze({__proto__:null,currentHitResult:_t,hitResult:Rt,hitResultsLongPressDetails:Vt,hitResultsSkipNextTap:Dt,hitResultsTapDetails:Ot,hitState:In,previousHitResult:Lt,useHitActions:useHitActions});function useSceneAnnotationsOperations(){const e=A.useCallback(async(e,t,n)=>{const a=await(t?.scene());null==n?await(a?.elements(t=>e(t.annotations.where(e=>e.all()))).execute()):n.length>0&&await(a?.elements(t=>e(t.annotations.where(e=>e.withAnnotationIds(n)))).execute())},[]),t=A.useCallback(async(e,t)=>{const n=await(e?.scene());n?.elements(e=>[e.annotations.where(e=>e.all()).deselect(),e.annotations.where(e=>e.withAnnotationIds([t])).select()]).execute()},[]),n=A.useCallback(async e=>{const t=await(e?.scene());t?.elements(e=>[e.annotations.where(e=>e.all()).deselect()]).execute()},[]);return{sceneAnnotationsOperation:e,selectOnlyAnnotation:t,clearAnnotationSelection:n}}function usePmiAnnotationActions(){const e=useSceneAnnotationsOperations(),t=useActionCallback(({snapshot:e,set:t})=>async n=>{const a=await e.getPromise(wa(n));if(null!=a){t(pa(n),e=>[...e,a]),t(ha(n),e=>[...e,...a.annotations]);const e=a?.paging?.next;t(ua(n),null!=e?()=>e:()=>{})}}),n=useActionCallback(({snapshot:e})=>async a=>{const i=document.getElementById(`annotation-entry-${a}`);if(null!=i)i.scrollIntoView();else{const i=await e.getPromise(ga),o=i?.modelView.id;if(null==o)return;const r=void 0;await e.getPromise(Sa(o))&&(await t(o),await n(a))}});return{fetchInitialPmiAnnotations:useActionCallback(({snapshot:e})=>async n=>{const a=void 0;0===(await e.getPromise(Ca(n))).length&&await t(n)}),fetchNextPmiAnnotations:useActionCallback(()=>async e=>{await t(e)}),selectPmiAnnotation:useActionCallback(({set:t,snapshot:a})=>async(i,o)=>{t(xa,i);const r=await a.getPromise(Xe);null!=r&&await(e?.selectOnlyAnnotation(r,i)),o&&await n(i)}),clearPmiAnnotationSelection:useActionCallback(({reset:t,snapshot:n})=>async()=>{const a=await n.getPromise(xa),i=await n.getPromise(Xe);null!=a&&null!=i&&(t(xa),await(e?.clearAnnotationSelection(i)))}),scrollToSelectedPmiAnnotation:n}}const On=o({key:"sceneTreeLoaderVisible",default:!1}),Vn=o({key:"sceneTreeElement",default:void 0}),Ln=o({key:"sceneTreeController",default:void 0,dangerouslyAllowMutability:!0}),_n=o({key:"sceneTreeOpenPopover",default:void 0}),Rn=d({key:"sceneTreePopoverIsOpen",get:e=>({get:t})=>t(_n)===e});function useSceneTreeActions(){const e=useSelectionActions(),t=useViewerCameraActions();return{toggleSelection:useActionCallback(({snapshot:t})=>async(n,a,i)=>{if(!n.defaultPrevented&&0===n.button&&(n.altKey||((n.ctrlKey||n.metaKey)&&a.selected?await i.deselectItem(a):a.selected?await i.selectItem(a,{recurseParent:!0}):a.selected||await i.selectItem(a,{append:n.ctrlKey||n.metaKey,range:n.shiftKey})),null!=a.id)){const i=await t.getPromise(Wt);e.syncSelection({id:a.id?.hex,ancestors:i?.ancestors??[]},{selected:!n.metaKey&&!n.ctrlKey||!a.selected,multiSelect:n.shiftKey||n.metaKey||n.ctrlKey})}}),toggleExpansion:useActionCallback(()=>(e,t,n)=>{n.toggleExpandItem(t)}),toggleVisibility:useActionCallback(()=>(e,t,n)=>{n.toggleItemVisibility(t)}),flyToRow:useActionCallback(({snapshot:e})=>async n=>{const a=await e.getPromise(Vn),i=await(a?.getRowAtClientY(n));null!=i?.node.id?.hex&&await t.flyToById(i.node.id.hex)}),flyToFirstSelectedItem:useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(Vn),n=await e.getPromise(qt);null!=n&&t?.scrollToItem(n)}),setContextMenuItem:useActionCallback(({set:e,snapshot:t})=>async n=>{const a=await t.getPromise(Vn),i=await(a?.getRowAtClientY(n));e(sn,i)}),openSceneTreePopover:useActionCallback(({set:e})=>t=>{e(_n,t)}),closeSceneTreePopover:useActionCallback(({set:e})=>()=>{e(_n,void 0)})}}var Dn=Object.freeze({__proto__:null,sceneTreeController:Ln,sceneTreeElement:Vn,sceneTreeLoaderVisible:On,sceneTreeOpenPopover:_n,sceneTreePopoverIsOpen:Rn,useSceneTreeActions:useSceneTreeActions});function useSelectionActions(){const e=usePmiAnnotationActions(),t=useSceneViewItemActions(),n=useTransformActions(),a=useViewerSceneActions(),i=useActionCallback(({snapshot:e,reset:t})=>async()=>{const n=void 0;(await e.getPromise(Ft)).forEach(e=>t(Ht(e)))}),o=useActionCallback(({snapshot:e,reset:t,set:n})=>async(i,o)=>{const r=await e.getPromise(Ht(i.id)),s=await e.getPromise(Ft),l=[...i.ancestors??[]]?.reverse().find(e=>!s.includes(e));null!=r&&null!=l?(n(Ht(l),{id:l}),n(Ft,e=>[...e,l]),n($t,!0),await a.execute(Bt.SELECTING_ANCESTOR,a.selectItemsTransform(l)),await m({id:l})):o?.clear?(n(Ht(i.id),i),n(Ft,[i.id]),await a.execute(Bt.SELECTING_ONLY_ITEM,a.clearSelectionTransform,a.selectItemsTransform(i.id)),await m(i)):(n(Ht(i.id),i),n(Ft,e=>[...e,i.id]),await a.execute(Bt.SELECTING_ITEMS,a.selectItemsTransform(i.id)),await m(i)),n(Wt,i),n(Ut,!0),t(Gt);try{const t=await e.getPromise(Vn);await(t?.scrollToItem(i.id))}catch(e){logger_debug(`The scene item was not found in the tree. [itemId={${i.id}}]`)}}),r=useActionCallback(({reset:e,set:t})=>async n=>{e(Ht(n)),e(Gt),e($t),t(Ft,e=>e.filter(e=>e!==n)),await a.execute(Bt.DESELECTING_ITEMS,a.deselectItemsTransform(n))}),s=useActionCallback(({snapshot:e})=>async t=>{const n=await e.getPromise(Ht(t.id));null!=n?await r(n.id):await o(t)}),l=useActionCallback(({snapshot:a,reset:i,set:r})=>async(s,l={})=>{const c=await a.getPromise(Ht(s.id)),d=await a.getPromise(Ft);if(d.filter(e=>e!==s.id&&!s.ancestors?.includes(e)).forEach(e=>i(Ht(e))),i(Gt),i($t),c)if(l.ignoreAncestorSelection)i(Ft),i(Ht(c.id));else{const e=d.filter(e=>e===s.id||s.ancestors?.includes(e));r(Ft,e)}else i(Ft);t.invalidateCachedItems(),n.clearTransformWidgetOrientation(),await e.clearPmiAnnotationSelection(),await o(s,{clear:!0})}),c=useActionCallback(({reset:t})=>async()=>{await i(),t(Ft),t(Wt),t(Ut),t(Gt),t($t),n.clearTransformWidgetPosition(),n.clearTransformWidgetOrientation(),await e.clearPmiAnnotationSelection()}),d=useActionCallback(()=>async()=>{await c(),await a.execute(Bt.CLEAR_SELECTION,a.clearSelectionTransform)}),u=useActionCallback(({set:e})=>async t=>{e(Gt,t)}),m=useActionCallback(({set:e,snapshot:t})=>async n=>{const a=await t.getPromise(nn);a?.id!==n?.id&&e(nn,n)});return{select:o,toggleSelection:s,clearAndSelect:l,selectCurrentHit:useActionCallback(retainSnapshot(({snapshot:t})=>async()=>{const n=await t.tryGetPromise(Rt).then(e=>e.value),a=await t.getPromise(Ot),i=a?.metaKey||a?.ctrlKey||a?.shiftKey;null!=n?.annotationId?await e.selectPmiAnnotation(n.annotationId,!0):null==n||i?null!=n&&i?await s(n):await d():await l(n)})),syncSelection:useActionCallback(({set:e,snapshot:t,reset:n})=>async(a,o)=>{if(o.selected){const n=await t.getPromise(Ht(a.id)),r=await t.getPromise(Ln);if(null!=n&&null!=r){const n=void 0,i=(await(r?.fetchNodeAncestors(a.id))).map(e=>e.id?.hex).filter(e=>null!=e),s=await t.getPromise(Ft),l=[...i??[]]?.findLastIndex(e=>s.includes(e));if(i.length>0&&l<i.length-1){const t=i[l+1];return e($t,!0),e(Wt,{id:t}),e(Ht(t),{id:t}),e(Ft,e=>[...e.filter(e=>e!==t),t]),e(Ut,!1),e(Gt,!!o.multiSelect),void await m({id:t})}}await i(),e(Ht(a.id),a),o.multiSelect?e(Ft,e=>[...e.filter(e=>e!==a.id),a.id]):e(Ft,[a.id]),await m(a),e(Wt,a),e(Ut,!1),e(Gt,!!o.multiSelect)}else n(Ht(a.id)),n(Gt),e(Ft,e=>e.filter(e=>e!==a.id))}),deselect:r,clearSelection:d,resetSelectionState:c,toggleLastSelectWasMultiSelect:u,selectForModelViewsPanel:m}}const zn=r({key:"viewerToolkitSelectionState",get:({get:e})=>{const t=void 0,n=void 0,a=void 0,i=void 0;return{selectedItemIds:e(Ft),lastSelected:e(Wt),highestSelectedAncestorId:e(Yt)}}});var Bn=Object.freeze({__proto__:null,fetchedAndSelectedItems:tn,selectionBoundingBoxCenter:Qt,selectionFirstSelectedItemInTreeId:qt,selectionHasMultipleSelected:Kt,selectionHighestSelectedAncestor:Yt,selectionIsActive:en,selectionIsAncestorSelection:$t,selectionLastSelectWasMultiSelect:Gt,selectionLastSelected:Wt,selectionLastSelectionFromViewer:Ut,selectionModelViewsSelected:nn,selectionPreviousVisibleSummary:Xt,selectionSelectedItemIds:Ft,selectionSelectedItems:Ht,selectionState:zn,selectionVisibleCount:Jt,selectionVisibleSummary:Zt,useSelectionActions:useSelectionActions});const jn=o({key:"lengthUnit",default:"cm"}),Hn=o({key:"decimalPlace",default:"2"});var Fn=Object.freeze({__proto__:null,decimalPlace:Hn,lengthUnit:jn}),Wn;!function(e){e[e.mm=1]="mm",e[e.cm=.1]="cm",e[e.m=.001]="m",e[e.in=.03937007874015748]="in",e[e.ft=.0032808398950131233]="ft"}(Wn||(Wn={}));const convertFrom=(e,t)=>{const n=void 0;return e/Wn[t]},convertTo=(e,t)=>{const n=void 0;return e*Wn[t]},formatWithUnit=(e,t,n)=>`${e.toFixed(n)} ${t}`,formatDistance=(e,t,n)=>formatWithUnit(convertTo(e,t),t,n),createDistanceFormatter=(e,t)=>n=>formatDistance(n,e,t);function toUnitType(e){switch(e){case"cm":return"centimeters";case"m":return"meters";case"in":return"inches";case"ft":return"feet";default:return"millimeters"}}function pickLocalOrWorldTransform(e,t){return"local"===t?e.local:e.world}function mapItemTransforms(e,t){return{local:t(e.local),world:t(e.world)}}function makeItemTransforms(e,t,n){return"local"===n?{local:e,world:N(e,t)}:{world:e,local:O(e,t)}}function convertTransformToUnits(e,t){const{position:n,rotation:a,scale:i}=e;return{position:v.create(convertTo(n.x,t),convertTo(n.y,t),convertTo(n.z,t)),rotation:a,scale:i}}function convertTransformFromUnits(e,t){const{position:n,rotation:a,scale:i}=e;return{position:v.create(convertFrom(n.x,t),convertFrom(n.y,t),convertFrom(n.z,t)),rotation:a,scale:i}}function toValidTransform(e){const{position:t,rotation:n,scale:a}=e;return{position:{x:t.x||0,y:t.y||0,z:t.z||0},rotation:{x:n.x||0,y:n.y||0,z:n.z||0},scale:a||1}}function scale(e){const t=parseFloat(Math.sqrt(e[0]**2+e[4]**2+e[8]**2).toFixed(2)),n=parseFloat(Math.sqrt(e[1]**2+e[5]**2+e[9]**2).toFixed(2)),a=parseFloat(Math.sqrt(e[2]**2+e[6]**2+e[10]**2).toFixed(2));return t===n&&n===a?t:NaN}function translation(e){return{x:e[12],y:e[13],z:e[14]}}function rotation(e){const t=e.map(t=>t*(1/scale(e)));return t[8]<1?t[8]>-1?{x:Math.atan2(-t[9],t[10])*(180/Math.PI),y:Math.asin(t[8])*(180/Math.PI),z:Math.atan2(-t[4],t[0])*(180/Math.PI)}:{x:-Math.atan2(-t[1],t[5])*(180/Math.PI),y:-90,z:0}:{x:Math.atan2(t[1],t[5])*(180/Math.PI),y:90,z:0}}function toTransformFromApiMatrix(e){return null!=e?{position:translation(e),rotation:rotation(e),scale:scale(e)}:void 0}const Un={position:v.create(0,0,0),rotation:v.create(0,0,0),scale:1},Gn=o({key:"transformWidgetEnabled",default:!1}),Kn=o({key:"transformWidgetPosition",default:void 0}),$n=o({key:"transformWidgetOrientationOverride",default:void 0}),qn=r({key:"transformWidgetOrientation",get:({get:e})=>{const t=e($n),n=e(Wt);if(null!=t)return t;if(null!=n){const t=e(aa(n.id));return w.fromDegrees({x:t?.world.rotation.x,y:t?.world.rotation.y,z:t?.world.rotation.z})}}}),Yn=o({key:"transformWidgetCachedOrientation",default:void 0}),Xn=o({key:"transformWidgetSyncToSelection",default:!1}),Zn=o({key:"transformWidgetIsInteracting",default:!1}),Jn=l({key:"appliedItemTransform",default:void 0}),Qn=o({key:"appliedItemTransformIds",default:[]}),ea=o({key:"selectedCoordinateSpace",default:"world"}),ta=l({key:"editedItemTransform",default:void 0}),na=d({key:"displayedItemTransform",get:e=>({get:t})=>{if(null!=e){const n=t(ea),a=t(jn),i=t(aa(e)),o=t(ta(e));if(null!=o)return o.transform;if(null!=i)return pickLocalOrWorldTransform(mapItemTransforms(i,e=>convertTransformToUnits(e,a)),n)}},set:e=>({get:t,set:n},a)=>{if(null!=e){const i=t(ea),o=t(oa(e)),r=t(aa(e)),s=t(jn);if(null!=r&&!(a instanceof u)&&null!=a&&null!=o){n(ta(e),{coordinateSpace:i,units:s,transform:a});const r=makeItemTransforms(convertTransformFromUnits(toValidTransform(a),s),o,i),l=t(Qn);n(Jn(e),r),n(Qn,[...l,e])}}}}),aa=d({key:"fetchedItemTransforms",get:e=>({get:t})=>{const n=t(la(e));if(null!=n){const e=n.override?.transform?toTransformFromApiMatrix(n.override?.transform):void 0,t=n.worldTransform?toTransformFromApiMatrix(n.worldTransform):void 0;return{local:e??Un,world:t??Un}}}}),ia=o({key:"transformInvalidator",default:0}),oa=d({key:"parentItemWorldMatrix",get:e=>({get:t})=>{const n=t(tt);if(null!=e&&null!=n){const n=t(la(e));if(null!=n?.parentId){const e=t(aa(n.parentId)),a=t(Jn(n.parentId));if(null==e)throw new Error("Invalid state. Parent item state should be populated, but is undefined.");return V(L(null!=a?a.world:e.world))}}return logger_debug(`Unable to find the world matrix for the parent of ${e}. Returning the identity matrix.`),C.makeIdentity()}});function useUpdateEditedTransformWhenSettingsChange(e){const t=s(jn),n=s(ea),a=s(Jn(e??"")),[i,o]=h(ta(e??""));T(()=>{if(null!=a&&(i?.coordinateSpace!==n||i?.units!==t)){const e=void 0,i=convertTransformToUnits(pickLocalOrWorldTransform(a,n),t);o({units:t,coordinateSpace:n,transform:i})}},[t,n])}function useEditItemTransform(e){const t=useTransformActions();useUpdateEditedTransformWhenSettingsChange(e);const n=m(oa(e)),[a,i]=p(na(e));return{transform:"hasValue"===a.state?a.contents:void 0,loading:"loading"===a.state||"loading"===n.state,error:"hasError"===a.state?a.contents:void 0,async update(n){t.enableSelectionSync(),i(n),null!=e&&await t.applyTransformToItem(e)}}}const useTransformActions=()=>{const e=useApplicationMessageActions(),t=useViewerSceneActions(),n=useActionCallback(({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(Qt);e(Kn,n)}),a=useActionCallback(({set:e,snapshot:t})=>async()=>{const a=await t.getPromise(Kn),i=await t.getPromise(Gt),o=await t.getPromise(Ft),r=await t.getPromise(Jt);null==a&&(o.length>0||i||r>0)&&await n(),e(Xn,!0)}),i=useActionCallback(({set:e})=>async t=>{e(Kn,t??void 0)}),o=useActionCallback(retainSnapshot(({snapshot:e,set:t,reset:n})=>async()=>{const a=await e.getPromise(qn),i=void 0;(await e.getPromise(Qn)).forEach(e=>{n(Jn(e)),n(ta(e))}),n(Qn),null!=a&&t(Yn,a),t(ia,e=>e+1)})),r=useActionCallback(({set:e,reset:t})=>n=>{t(Yn),e($n,n)}),s=useActionCallback(({set:e})=>()=>{e(Kn,void 0),e(Gn,!1)});return{enableTransformWidget:useActionCallback(({set:t})=>async(o,r)=>{e.setToastMessage({message:"Transform manipulator enabled! Select parts to interact.",duration:Fe}),t(Gn,!0),r?await n():null==o?await a():await i(o)}),disableTransformWidget:useActionCallback(({reset:e})=>()=>{e(Gn),e($n)}),setTransformWidgetOrientation:r,clearTransformWidgetOrientation:useActionCallback(({reset:e})=>()=>{e(Yn),e($n)}),setTransformWidgetPosition:i,clearTransformWidgetPosition:useActionCallback(({reset:e})=>()=>e(Kn)),invalidateTransforms:o,setIsInteractivelyTransforming:useActionCallback(({set:e})=>t=>{e(Zn,t)}),setDefaultWidgetPosition:a,setDefaultWidgetPositionToSelection:n,enableSelectionSync:useActionCallback(({set:e})=>()=>e(Xn,!0)),disableSelectionSync:useActionCallback(({reset:e})=>()=>e(Xn)),syncToSelection:useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(Xt),n=await e.getPromise(Zt),a=void 0;if(await e.getPromise(Xn)){const e=n?.boundingBox,a=null!=e&&null!=t?.boundingBox&&equals(e,t.boundingBox);null==e||a||await i(g.center(e))}}),orientToHitResult:useActionCallback(({reset:e})=>async t=>{e(Xn),null==t?.annotationId&&(null!=t?await i(t?.position):(e(Kn),r(void 0)))}),clearSelectedTransforms:useActionCallback(()=>async()=>{await t.execute(Bt.CLEAR_SELECTED_TRANSFORMS,e=>e.where(e=>e.withSelected()).clearTransforms()),await o(),s()}),clearAllTransforms:useActionCallback(()=>async()=>{await t.execute(Bt.CLEAR_SELECTED_TRANSFORMS,e=>e.where(e=>e.all()).clearTransforms()),await o(),s()}),applyTransformToItem:useActionCallback(({snapshot:e})=>async t=>{const n=await e.getPromise(Xe),a=await(n?.scene()),i=await e.getPromise(Jn(t));if(null==i)return void logger_warn(`There is no transform to apply to item ${t}.`);const o=C.transpose(V(L(i?.local)));return a?.items(e=>e.where(e=>e.withItemId(t)).transform(o)).execute()})}};var ra=Object.freeze({__proto__:null,appliedItemTransformIds:Qn,appliedItemTransforms:Jn,convertTransformFromUnits:convertTransformFromUnits,convertTransformToUnits:convertTransformToUnits,displayedItemTransform:na,editedItemTransform:ta,fetchedItemTransforms:aa,identityTransform:Un,makeItemTransforms:makeItemTransforms,mapItemTransforms:mapItemTransforms,parentItemWorldMatrix:oa,pickLocalOrWorldTransform:pickLocalOrWorldTransform,selectedCoordinateSpace:ea,toValidTransform:toValidTransform,transformInvalidator:ia,transformWidgetCachedOrientation:Yn,transformWidgetEnabled:Gn,transformWidgetIsInteracting:Zn,transformWidgetOrientation:qn,transformWidgetOrientationOverride:$n,transformWidgetPosition:Kn,transformWidgetSyncToSelection:Xn,useEditItemTransform:useEditItemTransform,useTransformActions:useTransformActions});const sa=o({key:"fetchedItemInvalidator",default:0}),la=d({key:"fetchedItems",get:e=>async({get:t})=>{const n=t(Xe),a=t(tt);if(t(sa),t(ia),null!=a)try{return await(n?.sceneItems?.getSceneViewItem(e,a,{includeOverride:!0,includeWorldTransform:!0}))}catch(t){return void logger_debug(`Error encountered get scene view item. [itemId={${e}}]`,t)}}});function useSceneViewItemActions(){return{invalidateCachedItems:useActionCallback(({set:e})=>()=>{e(sa,e=>e+1)})}}var ca=Object.freeze({__proto__:null,fetchedItem:la,fetchedItemInvalidator:sa,useSceneViewItemActions:useSceneViewItemActions});const da=l({key:"modelViewsCursor",default:void 0}),ua=l({key:"pmiAnnotationsCursor",default:void 0}),ma=l({key:"loadedModelViews",default:[]}),pa=l({key:"loadedPmiAnnotations",default:[]}),ha=l({key:"visiblePmiAnnotations",default:[]}),fa=r({key:"modelViewsSceneItemName",get:async({get:e})=>{const t=e(nn);if(null!=t){const n=e(la(t.id));return n?.name??void 0}}}),ga=o({key:"loadedItemModelView",default:void 0}),va=d({key:"nextModelViews",get:e=>async({get:t})=>{const n=t(Xe),a=t(da(e));return await(n?.modelViews?.listByItem(e,{cursor:a,size:100,hasAnnotations:!0}))}}),ya=d({key:"modelViews",get:e=>({get:t})=>{const n=t(ma(e)),a=t(va(e));return n.flatMap(e=>e.modelViews).concat(a?.modelViews??[])}}),ba=d({key:"hasMoreModelViews",get:e=>({get:t})=>{const n=t(va(e));return null!=n?.paging.next}}),wa=d({key:"nextPmiAnnotations",get:e=>async({get:t})=>{const n=t(Xe),a=t(ua(e));return n?.pmi?.listAnnotations({modelViewId:e,cursor:a,size:100})}}),Ca=d({key:"pmiAnnotations",get:e=>({get:t})=>{const n=void 0;return t(pa(e)).flatMap(e=>e.annotations)}}),Sa=d({key:"hasMorePmiAnnotations",get:e=>({get:t})=>{const n=void 0;return null!=t(ua(e))}}),xa=o({key:"selectedPmiAnnotationId",default:void 0}),ka=1e3;function useModelViewActions(){const e=useCrossSectioningActions(),t=usePmiAnnotationActions(),n=useSelectionActions(),a=useActionCallback(({snapshot:e})=>async()=>{const a=void 0;if(null!=await e.getPromise(ga)){const a=await e.getPromiseRequired(Xe),i=await e.getPromiseRequired(Ft);await t.clearPmiAnnotationSelection(),0!==i.length&&await n.clearSelection(),await(a?.modelViews?.unload())}});return{fetchNextModelViews:useActionCallback(({snapshot:e,set:t})=>async n=>{const a=await e.getPromise(va(n));if(null!=a){const e=a?.paging?.next;null!=e&&(t(ma(n),e=>[...e,a]),t(da(n),()=>e))}}),loadModelView:useActionCallback(({set:n,snapshot:i})=>async(o,r)=>{const s=await i.getPromiseRequired(Xe);try{const i=await s.scene();await e.setHighlightColorAndLineWidth(),await e.disable(),await a(),null!=i&&await(i?.camera().flyTo({camera:r.camera}).render({animation:{milliseconds:ka}})),await(s?.modelViews?.load(o,r.id)),n(ga,{itemId:o,modelView:r}),await t.fetchInitialPmiAnnotations(r.id)}catch(e){logger_error("Failed to load model view",e)}}),clearModelView:useActionCallback(({reset:e,snapshot:t})=>async()=>{const n=void 0;if(null!=await t.getPromise(ga))try{await a(),e(ga)}catch(e){logger_error("Failed to remove model view",e)}})}}var Aa=Object.freeze({__proto__:null,MODEL_VIEW_ANIMATION_DURATION:ka,hasMoreModelViews:ba,hasMorePmiAnnotations:Sa,loadedItemModelView:ga,loadedModelViews:ma,loadedPmiAnnotations:pa,modelViews:ya,modelViewsCursor:da,modelViewsSceneItemName:fa,nextModelViews:va,nextPmiAnnotations:wa,pmiAnnotations:Ca,pmiAnnotationsCursor:ua,selectedPmiAnnotationId:xa,useModelViewActions:useModelViewActions,visiblePmiAnnotations:ha});const alignToNormal=(e,t,n)=>{if(e.toFrameCamera().isPerspective()){const n=v.dot(v.normalize(e.up),t),a=Math.abs(n)>.98?v.normalize(v.scale(-n,e.viewVector)):e.up,i=v.add(v.scale(v.distance(e.position,e.lookAt),v.multiply(t,v.create(-1,-1,-1))),e.lookAt);return e.update({up:a,position:i})}{const a=v.angleTo(v.normalize(e.viewVector),t),i=null!=n?g.center(n):e.lookAt,o=v.normalize(v.cross(v.normalize(e.viewVector),t));return e.rotateAroundAxisAtPoint(a,i,o)}};function isParallelTo(e,t){const n=S.toDegrees(v.angleTo(e,t));return 0===n||180===n}const Ta=500;function useCrossSectioningActions(){const e=useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(ht),n=await e.getPromise(pt),a=await e.getPromise(bt),i=await e.getPromise(Xe),o=await(i?.scene());await(o?.crossSectioning().update({sectionPlanes:a,highlightColor:n?Pe.fromHexString(n):void 0,lineWidth:t}))}),t=useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(pt),n=await e.getPromise(ht),a=await e.getPromise(Xe),i=await(a?.scene()),o=i?.crossSectioning().current();await(i?.crossSectioning().update({sectionPlanes:o?.sectionPlanes??[],highlightColor:t?Pe.fromHexString(t):void 0,lineWidth:n}))}),n=useActionCallback(({set:t,reset:n,snapshot:a})=>async()=>{const i=await a.getPromise(Xe),o=await(i?.scene());if(null!=o){const a=o.camera().viewAll();n(kt),t(bt,[towardsCamera(o.camera(),x(a.lookAt.x))]),await e()}}),a=useActionCallback(retainSnapshot(({snapshot:t,set:n})=>async()=>{const a=await t.tryGetPromise(Rt).then(e=>e.value),i=await t.getPromise(Xe),o=await(i?.scene());if(null!=a&&null!=o){const t=fromHit(a,o.camera());n(bt,null!=t?[t]:[]),n(kt,null!=t?{x:t.normal}:rt),await e()}})),i=useActionCallback(({set:e,snapshot:t})=>async()=>{const a=await t.getPromise(bt),i=void 0;await t.getPromise(mt)||(e(mt,!0),0===a.length&&await n())}),o=useActionCallback(({reset:t,snapshot:n})=>async()=>{const a=void 0;await n.getPromise(mt)&&(t(mt),t(Mt),t(Et),t(It),t(bt),t(wt),t(xt),await e())});return{enable:i,disable:o,reapply:useActionCallback(({snapshot:n})=>async()=>{const a=await n.getPromise(mt),i=void 0,o=null!=await n.getPromise(ga);a?await e():o&&await t()}),setHighlightColorAndLineWidth:t,openAdditionalTools:useActionCallback(({set:e,snapshot:t})=>async()=>{const n=void 0;await t.getPromise(mt)||await i(),e(Mt,!0)}),closeAdditionalTools:useActionCallback(({reset:e})=>()=>{e(Mt)}),openAlignmentTools:useActionCallback(({set:e,reset:t})=>()=>{t(It),e(Et,!0)}),closeAlignmentTools:useActionCallback(({reset:e})=>()=>{e(Et)}),openAxisTools:useActionCallback(({set:e,reset:t})=>()=>{t(Et),e(It,!0)}),closeAxisTools:useActionCallback(({reset:e})=>()=>{e(It)}),beginInteraction:useActionCallback(({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(Nt);e(St,!0),await n.beginInteraction()}),endInteraction:useActionCallback(({reset:e,snapshot:t})=>async()=>{const n=await t.getPromise(Nt);e(St),await n.endInteraction()}),updatePlanes:useActionCallback(retainSnapshot(({set:t,snapshot:n})=>async a=>{const i=await n.getPromise(bt);if(i.length>0){const o=await n.getPromise(At),r=await n.getPromise(Tt),s=o<0?-1*r.max:r.min,l=o<0?-1*r.min:r.max,c=i.map(e=>({...e,offset:Math.min(Math.max(a*o,s),l)}));t(bt,c),await e()}})),flipPlanes:useActionCallback(({set:t,snapshot:n})=>async()=>{const a=await n.getPromise(bt);t(bt,a.map(e=>invert(e))),await e()}),alignViewToPlane:useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(bt),n=await e.getPromise(Xe),a=await(n?.scene());t.length>0&&null!=a&&await alignToNormal(a.camera(),t[0].normal,a.boundingBox()).render({animation:{milliseconds:Ta}})}),updateAxis:useActionCallback(retainSnapshot(({set:t,reset:n,snapshot:a})=>async i=>{const o=await a.getPromise(bt),r=await a.getPromise(kt),s=await a.getPromise(Ct),l=await a.getPromise(wt),c=await a.getPromise(Xe),d=await(c?.scene()),u=r[i],m=null!=u&&o.length>0&&isParallelTo(o[0].normal,u)&&!isNaN(v.angleTo(o[0].normal,u));if(null!=d&&!m){const e=await a.tryGetPromise(Rt).then(e=>e.value);t(xt,i),t(bt,[toAxis(i,r,d.camera(),s,"global"!==l.mode?e?.position:void 0)])}n(It),await e()})),updateAlignment:useActionCallback(({set:e,reset:t})=>async(o,r)=>{t(Et),e(wt,{mode:o,hitPending:"global"!==o&&null==r}),"global"===o?(t(xt),t(kt),await n()):"surface"===o&&null!=r&&(await i(),await a())}),sectionCurrentHit:useActionCallback(({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(wt);n.hitPending&&(e(wt,{...n,hitPending:!1}),"surface"===n.mode&&await a())}),cancelCurrentHit:useActionCallback(({set:e,snapshot:t})=>async()=>{const n=await t.getPromise(wt);n.hitPending&&e(wt,{...n,hitPending:!1})})}}var Pa=Object.freeze({__proto__:null,DEFAULT_ALIGN_TO_PLANE_ANIMATION_DURATION_MS:Ta,DEFAULT_CROSS_SECTION_HIGHLIGHT_COLOR:lt,DEFAULT_CROSS_SECTION_LINE_THICKNESS_VALUE:1,DEFAULT_END_CAPPING_COLOR:dt,DEFAULT_SLIDER_RANGE:ut,get EndCapColorType(){return st},crossSectioningActiveAxis:xt,crossSectioningAdditionalToolsOpen:Mt,crossSectioningAlignment:wt,crossSectioningAlignmentToolsOpen:Et,crossSectioningAvailableAxes:kt,crossSectioningAxisToolsOpen:It,crossSectioningBorderWidth:ht,crossSectioningEnabled:mt,crossSectioningHighlightColor:pt,crossSectioningInteractionHandler:Nt,crossSectioningIsInteractive:St,crossSectioningOffsetScalar:At,crossSectioningPlaneDisplayOffset:Pt,crossSectioningPlanes:bt,crossSectioningSliderRange:Tt,crossSectioningTargetBoundingBox:Ct,endCapColorType:vt,endCapCustomColor:yt,endCapEnabled:gt,endCapEnabledDefault:ft,useCrossSectioning:useCrossSectioning,useCrossSectioningActions:useCrossSectioningActions});function useDebouncedCallback(e,t){const[n,a]=A.useState();return A.useEffect(()=>()=>{null!=n&&clearTimeout(n)},[e,t,n]),A.useCallback(i=>{const handler=()=>{e(i)};null!=n&&clearTimeout(n),a(setTimeout(handler,t))},[e,t,n])}const VertexColorPicker=({onInput:t,...n})=>{const a=useDebouncedCallback(e=>{t?.(e)},500),i=A.useCallback(e=>{const t=e.target;a(t.value)},[a]);return e(R,{onInput:i,...n})},VertexCrossSectionAppearanceColorPicker=({onUpdate:t})=>{const n=useCrossSectioningActions(),[a,i]=h(pt);return e(VertexColorPicker,{"data-testid":"cross-section-highlight-color-picker",value:a,onValueChanged:e=>{t?.(e.detail)},onInput:async e=>{i(e),await n.reapply()}})};var Ma={exports:{}},Ea;
|
|
14
14
|
/*!
|
|
15
15
|
Copyright (c) 2018 Jed Watson.
|
|
16
16
|
Licensed under the MIT License (MIT), see
|
|
17
17
|
http://jedwatson.github.io/classnames
|
|
18
|
-
*/La=Va,function(){var e={}.hasOwnProperty;function classNames(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=appendClass(e,parseValue(n)))}return e}function parseValue(t){if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return classNames.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var n="";for(var a in t)e.call(t,a)&&t[a]&&(n=appendClass(n,a));return n}function appendClass(e,t){return t?e?e+" "+t:e+t:e}La.exports?(classNames.default=classNames,La.exports=classNames):window.classNames=classNames}();var _a=Va.exports;const VertexSlider=({value:n,defaultValue:a,leftLabel:i,rightLabel:o,onChange:r,onValueChange:s,onValueInput:l,...c})=>{const[d,u]=A.useState(a);return t("div",{className:"flex w-full items-center gap-2",children:[i&&e("div",{className:"pl-0.5 text-xs text-center",children:i}),e(D,{className:_a("w-full",{"mt-0.5":null!=i||null!=o}),value:n??d,onValueChange:e=>{u(e.detail.value),r?.(e.detail.value),s?.(e)},onValueInput:e=>{u(e.detail.value),r?.(e.detail.value),l?.(e)},...c}),o&&e("div",{className:"text-xs pr-2 flex-shrink-0 text-right",children:o})]})},VertexCrossSectionAppearanceLineThicknessSlider=({onUpdate:t})=>{const n=useCrossSectioningActions(),[a,i]=h(vt);return e(VertexSlider,{id:"cross-section-line-thickness","data-testid":"cross-section-line-thickness-slider",leftLabel:"Off",rightLabel:"Thick",min:0,max:3,step:.5,value:a,valueLabelDisplay:"auto",onValueInput:async e=>{i(e.detail.value),await n.reapply()},onValueChange:e=>{t?.(e.detail.value)}})},VertexEndCapColorOptions=({onUpdateColorType:n})=>{const[a,i]=h(Ct);return e("div",{className:"pl-2 text-sm text-neutral-700",children:t(B,{value:a,"data-testid":"end-capping-color-type-radio-group",name:"end-capping-color-type",onValueChanged:e=>{i(e.detail.toUpperCase()===ut.PART?ut.PART:ut.SINGLE),n?.(e.detail)},children:[e(H,{"data-testid":"end-capping-color-part-color",label:"Part Color",value:ut.PART}),e(H,{"data-testid":"end-capping-color-single-color",label:"Single Color",value:ut.SINGLE})]})})},VertexEndCapColorPicker=({onUpdateCustomColor:t})=>{const[n,a]=h(St);return e(VertexColorPicker,{"data-testid":"end-capping-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})},VertexEndCapToggle=({onEnabledChange:t})=>{const[n,a]=h(wt);return e(j,{className:"flex items-center","data-testid":"end-capping-enabled-toggle",variant:"switch",checked:n,onValueChanged:async e=>{a(e.detail),t?.(e.detail)}})};function VertexCrossSectionAppearanceControls({onUpdateCrossSectionColor:a,onUpdateCrossSectionLineThickness:i,onEndCapEnabledChange:o,onUpdateEndCapColorType:r,onUpdateEndCapCustomColor:l}){const c=s(Ct);return t(n,{children:[t("div",{className:"flex items-center pt-2 pb-2",children:[e(VertexEndCapToggle,{onEnabledChange:o}),e("span",{className:"pl-4 text-sm text-neutral-700",children:"Show End Cap"})]}),e("div",{className:"pt-2 pb-2 text-sm text-neutral-700",children:"Line Color"}),e(VertexCrossSectionAppearanceColorPicker,{onUpdate:a}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Line Thickness"}),e(VertexCrossSectionAppearanceLineThicknessSlider,{onUpdate:i}),t("div",{children:[e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Cap Color"}),e(VertexEndCapColorOptions,{onUpdateColorType:r}),c===ut.SINGLE&&e("div",{className:"mt-2",children:e(VertexEndCapColorPicker,{onUpdateCustomColor:l})})]})]})}function PanelSection({header:n,children:a}){return t("div",{className:"py-3 px-4 border-neutral-300 border-b",children:[e("div",{className:"my-2 text-base text-neutral-700",children:n}),a]})}const VertexCrossSectionAppearanceReset=({onReset:t})=>{const n=useCrossSectioningActions(),[a,i]=h(yt),[o,r]=h(vt),l=s(bt),[c,d]=h(wt),[u,m]=h(Ct),[p,f]=h(St),g=a!==mt||1!==o||c!==l||u!==ut.PART||p!==ht;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Cross Sectioning Appearance",children:e(W,{"data-testid":"cross-section-appearance-reset",iconName:"reset",iconSize:"sm",onClick:async()=>{i(mt),r(1),d(l),m(ut.PART),f(ht),t?.(),await n.reapply()},disabled:!g})})})};function VertexCrossSectionAppearancePanelSection({onResetCrossSectionAppearance:n,onUpdateCrossSectionColor:a,onUpdateCrossSectionLineThickness:i,onEndCapEnabledChange:o,onUpdateEndCapColorType:r,onUpdateEndCapCustomColor:s}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Cross Sectioning",e(VertexCrossSectionAppearanceReset,{onReset:n})]}),children:e(VertexCrossSectionAppearanceControls,{onUpdateCrossSectionColor:a,onUpdateCrossSectionLineThickness:i,onEndCapEnabledChange:o,onUpdateEndCapColorType:r,onUpdateEndCapCustomColor:s})})}const Ra=.5,Da="#444444",za=o({key:"featureEdgesSelectedColor",default:Da}),Ba=o({key:"featureEdgesLineThickness",default:Ra}),VertexFeatureEdgesColorPicker=({onUpdate:t})=>{const[n,a]=h(za);return e(VertexColorPicker,{"data-testid":"feature-edges-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})},VertexFeatureEdgesThicknessSlider=({onUpdate:t})=>{const[n,a]=h(Ba);return e(VertexSlider,{id:"feature-edges-thickness","data-testid":"feature-edges-thickness-slider",leftLabel:"Off",rightLabel:"Thick",min:0,max:3,step:.5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})};function VertexFeatureEdgesControls({onUpdateFeatureEdgesColor:a,onUpdateFeatureEdgesThickness:i}){return t(n,{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),e(VertexFeatureEdgesColorPicker,{onUpdate:a}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Line Thickness"}),e(VertexFeatureEdgesThicknessSlider,{onUpdate:i})]})}const VertexFeatureEdgesReset=({onReset:t})=>{const[n,a]=h(za),[i,o]=h(Ba),r=undefined;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Feature Edges",children:e(W,{"data-testid":"feature-edges-reset",iconName:"reset",iconSize:"sm",onClick:()=>{a(Da),o(Ra),t?.()},disabled:!(i!==Ra||n!==Da)})})})};function VertexFeatureEdgesPanelSection({onResetFeatureEdges:n,onUpdateFeatureEdgesColor:a,onUpdateFeatureEdgesThickness:i}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Feature Edges",e(VertexFeatureEdgesReset,{onReset:n})]}),children:e(VertexFeatureEdgesControls,{onUpdateFeatureEdgesColor:a,onUpdateFeatureEdgesThickness:i})})}function createColorMaterialWithId(e,t=_e.create()){return{id:t,..._.fromHex(e)}}const Ha=255,ja=18,Fa=o({key:"sceneItemAdjustmentsSelectedColor",default:void 0}),Wa=o({key:"sceneItemAdjustmentsRecentColors",default:[]}),Ua=o({key:"sceneItemAdjustmentsCustomColors",default:[createColorMaterialWithId("#ffffff"),createColorMaterialWithId("#616161")]}),Ga=o({key:"sceneItemAdjustmentsSelectedOpacity",default:void 0}),Ka=l({key:"appliedItemMaterialOverride",default:void 0}),$a=o({key:"appliedItemMaterialOverrideIds",default:[]}),qa=r({key:"sceneItemAdjustmentsLastSelectedOverride",get:({get:e})=>{const t=e($t);if(null!=t)return e(Ka(t.id))}}),Ya=o({key:"applyMaterialToAllUserAction",default:void 0}),Xa=o({key:"showConfirmDialogWhenApplyingMaterialToAll",default:!0}),Za=o({key:"confirmApplyMaterialToAllDialogOpen",default:!1}),useSceneItemMaterialActions=()=>{const e=useViewerSceneActions(),t=useActionCallback((({snapshot:e,reset:t})=>async()=>{const n=await e.getPromise($a);t(Fa),n.forEach((e=>t(Ka(e)))),t($a)}));return{updateColor:useActionCallback((({set:e})=>t=>{e(Fa,t)})),saveRecentColor:useActionCallback((({set:e,snapshot:t})=>async n=>{const a=await t.getPromise(Wa),i=[n,...a.filter((e=>e!==n))],o=i.length>ja?i.slice(0,-(i.length-ja)):i;e(Fa,n),e(Wa,o)})),removeRecentColor:useActionCallback((({set:e,snapshot:t})=>async n=>{const a=undefined,i=(await t.getPromise(Wa)).filter((e=>e.id!==n));e(Wa,i)})),setCustomColors:useActionCallback((({set:e})=>async t=>{e(Ua,t)})),saveCustomColor:useActionCallback((({set:e,snapshot:t})=>async n=>{const a=undefined,i=[...await t.getPromise(Ua),n],o=i.length>ja?i.slice(i.length-ja):i;e(Fa,n),e(Ua,o)})),removeCustomColor:useActionCallback((({set:e,snapshot:t})=>async n=>{const a=undefined,i=(await t.getPromise(Ua)).filter((e=>e.id!==n));e(Ua,i)})),clearCurrentColor:useActionCallback((({reset:e})=>()=>{e(Fa)})),clearCurrentOpacity:useActionCallback((({reset:e})=>()=>{e(Ga)})),clear:useActionCallback((({snapshot:t,set:n,reset:a})=>async()=>{const i=await t.getPromise(Kt);a(Fa),i.forEach((e=>a(Ka(e)))),n($a,(e=>e.filter((e=>!i.includes(e))))),await e.execute(Wt.CLEAR_SELECTED_MATERIAL_OVERRIDES,(e=>e.where((e=>e.withSelected())).clearMaterialOverrides().select()))})),clearAll:useActionCallback((()=>async()=>{await t(),await e.execute(Wt.CLEAR_ALL_MATERIAL_OVERRIDES,(e=>e.where((e=>e.all())).clearMaterialOverrides()),(e=>e.where((e=>e.withSelected())).select()))})),clearState:t,updateOpacity:useActionCallback((({set:e})=>t=>{e(Ga,t)})),apply:useActionCallback((({snapshot:t,set:n})=>async()=>{const a=await t.getPromise(Fa),i=await t.getPromise(Ga),o=await t.getPromise(Kt),r=await t.getPromise(qa),s=a??r,l=i??r?.opacity;if(null!=s){const t={...s,opacity:l??s.opacity};await e.execute(Wt.APPLY_MATERIAL_OVERRIDE_TO_SELECTION,(e=>e.where((e=>e.withSelected())).materialOverride(t))),o.forEach((e=>n(Ka(e),t))),n($a,(e=>[...e,...o]))}})),confirmApplyAll:useActionCallback((({set:e})=>t=>{e(Za,!0),e(Ya,(()=>t))})),cancelApplyAll:useActionCallback((({reset:e})=>()=>{e(Za),e(Ya)})),applyAll:useActionCallback((({snapshot:t,reset:n})=>async()=>{const a=await t.getPromise(Fa),i=await t.getPromise(Ga);if(null!=a){const o=await t.getPromise($a),r={...a,opacity:i??a.opacity};await e.execute(Wt.APPLY_MATERIAL_OVERRIDE_TO_ALL,(e=>e.where((e=>e.all())).materialOverride(r))),o.forEach((e=>n(Ka(e))));const s=await t.getPromise(Ya);s?.(r),n(Za),n(Ya)}})),hideConfirmApplyAllDialog:useActionCallback((({set:e})=>()=>{e(Xa,!1)}))}},Ja="#ffff00",Qa=35,ei=1,ti=o({key:"selectionHighlightingSelectedColor",default:Ja}),ni=o({key:"selectionHighlightingSelectedOpacity",default:Qa}),ai=o({key:"selectionHighlightingSelectedLineThickness",default:1});function elementIsColorSwatch(e){return e instanceof Element&&"VERTEX-COLOR-SWATCH"===e.nodeName}function elementHasColorAttribute(e){return"true"===e.getAttribute("data-custom-color")||"true"===e.getAttribute("data-recent-color")}const ii="#FFFFFF",oi=o({key:"viewerBackgroundSelectedColor",default:ii});var ri=Object.freeze({__proto__:null,DEFAULT_FEATURE_EDGE_COLOR:Da,DEFAULT_FEATURE_EDGE_THICKNESS_VALUE:Ra,DEFAULT_SELECTION_HIGHLIGHTING_COLOR:Ja,DEFAULT_SELECTION_HIGHLIGHTING_LINE_THICKNESS:1,DEFAULT_SELECTION_HIGHLIGHTING_OPACITY:Qa,DEFAULT_VIEWER_BACKGROUND_COLOR:ii,MAXIMUM_MATERIAL_OVERRIDE_OPACITY:Ha,MAX_STORED_COLOR_ARRAY_LENGTH:ja,appliedItemMaterialOverride:Ka,appliedItemMaterialOverrideIds:$a,applyMaterialToAllUserAction:Ya,confirmApplyMaterialToAllDialogOpen:Za,elementHasColorAttribute:elementHasColorAttribute,elementIsColorSwatch:elementIsColorSwatch,featureEdgesLineThickness:Ba,featureEdgesSelectedColor:za,sceneItemAdjustmentsCustomColors:Ua,sceneItemAdjustmentsLastSelectedOverride:qa,sceneItemAdjustmentsRecentColors:Wa,sceneItemAdjustmentsSelectedColor:Fa,sceneItemAdjustmentsSelectedOpacity:Ga,selectionHighlightingSelectedColor:ti,selectionHighlightingSelectedLineThickness:ai,selectionHighlightingSelectedOpacity:ni,showConfirmDialogWhenApplyingMaterialToAll:Xa,useSceneItemMaterialActions:useSceneItemMaterialActions,viewerBackgroundSelectedColor:oi});const VertexSceneItemMaterialApplyAll=({onApplyAll:t})=>{const n=useSceneItemMaterialActions(),a=m(qa),i=s(Fa),o=s(Xa),r=k.useMemo((()=>"hasValue"===a.state?i??a.contents:i),[a,i]);return e(F,{content:"Apply to All",children:e(W,{iconName:"square-dot-outline",iconSize:"sm",color:"secondary",disabled:null==r,onClick:async()=>{o?n.confirmApplyAll(t):(await n.applyAll(),t?.(r))}})})};function SceneItemMaterialApplyAllConfirmationDialog(){const a=useSceneItemMaterialActions(),i=s(Za),[o,r]=A.useState(!1),onCloseDialog=()=>{a.cancelApplyAll(),r(!1)};return i?t(U,{open:!0,className:"text-sm",onClosed:onCloseDialog,onBackdropClick:onCloseDialog,children:[e("div",{slot:"heading",children:"Apply to All Parts"}),e("div",{className:"max-w-lg break-words pr-2",children:"This will apply the same material to all parts in the model. Any previous material changes will be lost."}),t("div",{className:"flex mt-8 gap-2 items-center",children:[t("div",{className:"flex gap-2",children:[e(j,{"data-testid":"hide-confirmation-dialog-in-future-checkbox",variant:"check",className:"pt-0.5",checked:o,onValueChanged:e=>{r(e.detail)}}),"Don't show again this session"]}),t("div",{className:"flex ml-auto gap-2",children:[e(G,{"data-testid":"cancel-apply-material-to-all",onClick:onCloseDialog,children:"Cancel"}),e(G,{color:"primary","data-testid":"confirm-apply-material-to-all",onClick:async()=>{await a.applyAll(),o&&a.hideConfirmApplyAllDialog()},children:"Apply"})]})]})]}):e(n,{})}const VertexSceneItemMaterialColorPicker=({onApply:t})=>{const n=useSceneItemMaterialActions(),a=m(qa),i=s(Fa),o=k.useMemo((()=>"hasValue"===a.state?i??a.contents:i),[a,i]);return e(VertexColorPicker,{"data-testid":"selected-item-color-picker",value:null!=o?Pe.toHexString(o.diffuse):void 0,onValueChanged:async()=>{null!=o&&(await n.apply(),t?.(o),await n.saveRecentColor(createColorMaterialWithId(Pe.toHexString(o.diffuse))))},onInput:async e=>{n.updateColor(createColorMaterialWithId(e)),await n.apply()}})},ColorSwatch=({color:t,hideTooltip:n,onClick:a,...i})=>{const o="string"==typeof t?t:Pe.toHexString(t.diffuse);return e(F,{className:"flex-grow-0",content:o,disabled:!!n,children:e("button",{onClick:()=>a?.(t),children:e(K,{"data-testid":`color-swatch-${o}`,variant:"square",color:o,...i})})})},VertexSceneItemMaterialColorSwatches=({onAddCustomColor:a,onApplyCustomColor:i,onApplyRecentColor:o})=>{const r=useSceneItemMaterialActions(),l=s(Ua),c=s(Wa),d=l.length===ja;return t(n,{children:[t("div",{"data-testid":"appearance-custom-colors",className:"flex flex-wrap gap-2 mt-1 mb-4",children:[l.map((t=>e(ColorSwatch,{color:t,onClick:async()=>{r.updateColor(t),await r.apply(),i?.(t)},"data-custom-color":!0,"data-color-id":t.id},t.id))),!d&&e(R,{"data-testid":"appearance-custom-colors-add",variant:"swatch",size:"md",onValueChanged:async e=>{const t=createColorMaterialWithId(e.detail);await r.saveCustomColor(t),await r.apply(),a?.(t)},children:e("div",{slot:"overlay",className:"flex items-center justify-center w-full h-full",children:e($,{className:"bg-white p-2",name:"plus",size:"sm"})})})]}),!!c.length&&e("div",{"data-testid":"appearance-recent-colors",className:"flex flex-wrap gap-2",children:c.map((t=>e(ColorSwatch,{color:t,onClick:async()=>{r.updateColor(t),await r.apply(),o?.(t)},"data-recent-color":!0,"data-color-id":t.id},t.id)))})]})},VertexSceneItemMaterialOpacitySlider=({onApply:t})=>{const n=useSceneItemMaterialActions(),a=s(Ga),i=m(qa),o=k.useMemo((()=>"hasValue"===i.state?a??i.contents?.opacity??Ha:a??Ha),[a,i]),r=useDebouncedCallback((()=>{n.apply()}),500),l=k.useCallback((e=>{n.updateOpacity(e.detail.value),r(e.detail.value)}),[r,n]),c=k.useMemo((()=>"hasValue"!==i.state||null==i.contents),[i]);return e(F,{className:"flex w-full",content:c?"Select a part and apply a color to enable opacity":`${Math.floor(o/Ha*100)}%`,placement:"top",children:e(VertexSlider,{"data-testid":"scene-item-adjustments-opacity-slider",leftLabel:"0%",rightLabel:"100%",disabled:c,value:o??Ha,step:5,min:0,max:Ha,onValueChange:e=>{n.updateOpacity(e.detail.value),n.apply(),t?.(e.detail.value)},onValueInput:l})})};function VertexMaterialControls({customColors:a,onApplyMaterial:i,onApplyMaterialToAll:o,onAddCustomColor:r,onApplyCustomColor:l,onApplyRecentColor:c,onApplyOpacity:d}){const u=useSceneItemMaterialActions(),m=s($t);return A.useEffect((()=>{u.clearCurrentColor(),u.clearCurrentOpacity()}),[m?.id]),A.useEffect((()=>{if(null!=a){const e=a.map((e=>({...e,id:_e.create()})));u.setCustomColors(e)}}),[a]),t(n,{children:[t("div",{className:"flex flex-col",children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),t("div",{className:"flex items-center gap-2",children:[e(VertexSceneItemMaterialColorPicker,{onApply:i}),e(VertexSceneItemMaterialApplyAll,{onApplyAll:o})]})]}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Color Swatches"}),e(VertexSceneItemMaterialColorSwatches,{onAddCustomColor:r,onApplyCustomColor:l,onApplyRecentColor:c}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Opacity"}),e(VertexSceneItemMaterialOpacitySlider,{onApply:d}),e(SceneItemMaterialApplyAllConfirmationDialog,{})]})}const ResetButton=({id:n,tooltip:a,children:i})=>{const[o,r]=A.useState(!1);return e("div",{className:"ml-auto",children:t(q,{className:"flex items-stretch h-full","data-testid":`reset-button-dropdown-menu-${n}`,placement:"bottom-end",onMenuOpened:()=>r(!0),onMenuClosed:()=>r(!1),children:[e("div",{slot:"anchor",className:"flex items-center h-full",children:e(F,{content:a,disabled:o,placement:"bottom",children:t(G,{className:_a("p-1.5 rounded-md select-none hover:bg-neutral-300 active:bg-neutral-400 cursor-pointer",{"bg-neutral-300":o}),"data-testid":`reset-button-${n}`,variant:"plaintext",children:[e($,{className:"px-0.5",name:"reset",size:"sm"}),e($,{name:"chevron-down",size:"sm"})]})})}),e("div",{className:"whitespace-nowrap",children:i})]})})},VertexSceneItemMaterialClear=({onClear:n,onClearAll:a})=>{const i=useSceneItemMaterialActions(),o=s(on);return e("div",{className:"ml-auto",children:t(ResetButton,{id:"materials",tooltip:"Clear Materials",children:[e("div",{className:"pt-1"}),e(Y,{"data-testid":"clear-selected-materials",onClick:()=>{i.clear(),n?.()},disabled:!o,children:"Clear selected materials"}),e(Y,{"data-testid":"clear-all-materials",onClick:()=>{i.clearAll(),a?.()},children:"Clear all materials"})]})})};function VertexMaterialPanelSection({customColors:n,onClearMaterial:a,onClearAllMaterials:i,onApplyMaterial:o,onApplyMaterialToAll:r,onAddCustomColor:s,onApplyCustomColor:l,onApplyRecentColor:c,onApplyOpacity:d}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Material",e(VertexSceneItemMaterialClear,{onClear:a,onClearAll:i})]}),children:e(VertexMaterialControls,{customColors:n,onApplyMaterial:o,onApplyMaterialToAll:r,onAddCustomColor:s,onApplyCustomColor:l,onApplyRecentColor:c,onApplyOpacity:d})})}const VertexSelectionHighlightingColorPicker=({onUpdate:t})=>{const[n,a]=h(ti);return e(VertexColorPicker,{"data-testid":"selection-highlighting-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})},VertexSelectionHighlightingLineThicknessSlider=({onUpdate:t})=>{const[n,a]=h(ai);return e(VertexSlider,{id:"selection-highlighting-line-thickness","data-testid":"selection-highlighting-line-thickness-slider",leftLabel:"Off",rightLabel:"Thick",min:0,max:3,step:.5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})},VertexSelectionHighlightingOpacitySlider=({onUpdate:t})=>{const[n,a]=h(ni);return e(VertexSlider,{id:"selection-highlighting-opacity","data-testid":"selection-highlighting-opacity-slider",leftLabel:"0%",rightLabel:"100%",min:0,max:100,step:5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})};function VertexSelectionHighlightingControls({onUpdateSelectionHighlightColor:a,onUpdateSelectionHighlightOpacity:i,onUpdateSelectionHighlightLineThickness:o}){return t(n,{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),e(VertexSelectionHighlightingColorPicker,{onUpdate:a}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Opacity"}),e(VertexSelectionHighlightingOpacitySlider,{onUpdate:i}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Line Thickness"}),e(VertexSelectionHighlightingLineThicknessSlider,{onUpdate:o})]})}const VertexSelectionHighlightingReset=({onReset:t})=>{const[n,a]=h(ti),[i,o]=h(ni),[r,s]=h(ai),l=undefined;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Selection Highlighting",children:e(W,{"data-testid":"selection-highlighting-reset",iconName:"reset",iconSize:"sm",onClick:()=>{a(Ja),o(Qa),s(1),t?.()},disabled:!(n!==Ja||i!==Qa||1!==r)})})})};function VertexSelectionHighlightingPanelSection({onResetSelectionHighlighting:n,onUpdateSelectionHighlightColor:a,onUpdateSelectionHighlightOpacity:i,onUpdateSelectionHighlightLineThickness:o}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Selection Highlighting",e(VertexSelectionHighlightingReset,{onReset:n})]}),children:e(VertexSelectionHighlightingControls,{onUpdateSelectionHighlightColor:a,onUpdateSelectionHighlightOpacity:i,onUpdateSelectionHighlightLineThickness:o})})}const VertexViewerBackgroundColorPicker=({onUpdate:t})=>{const[n,a]=h(oi);return e(VertexColorPicker,{"data-testid":"viewer-background-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})};function VertexViewerBackgroundControls({onUpdateViewerBackgroundColor:a}){return t(n,{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),e(VertexViewerBackgroundColorPicker,{onUpdate:a})]})}const VertexViewerBackgroundReset=({onReset:t})=>{const[n,a]=h(oi),i=undefined;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Background Color",children:e(W,{"data-testid":"viewer-background-reset",iconName:"reset",iconSize:"sm",onClick:()=>{a(ii),t?.()},disabled:!(n!==ii)})})})};function VertexViewerBackgroundPanelSection({onResetViewerBackgroundColor:n,onUpdateViewerBackgroundColor:a}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Viewer Background",e(VertexViewerBackgroundReset,{onReset:n})]}),children:e(VertexViewerBackgroundControls,{onUpdateViewerBackgroundColor:a})})}const isInputElement=e=>{const t=e instanceof HTMLElement&&"VERTEX-AUTO-RESIZE-TEXTAREA"===e.tagName,n=e instanceof HTMLElement&&"VERTEX-TEXTFIELD"===e.tagName,a=e instanceof HTMLElement&&"true"===e.contentEditable,i=e instanceof HTMLElement&&"VERTEX-SCENE-TREE-SEARCH"===e.tagName,o=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement,r=e instanceof HTMLElement&&"VERTEX-VIEWER-PIN-TOOL"===e.tagName,s=e instanceof HTMLElement&&"VERTEX-VIEWER-TRANSFORM-WIDGET"===e.tagName;return t||n||a||i||o||r||s},useRecoilReducer=({reducer:e,atom:t})=>{const n=undefined,a=undefined;return[s(t),useRecoilReducerDispatch({reducer:e,atom:t})]},useRecoilReducerDispatch=({reducer:e,atom:t})=>{const n=i((({set:n})=>async a=>{n(t,(t=>e(t,a)))}),[]);return n},si=o({key:"keyBindings",default:{applyBindings:[],bindings:{},pressed:{}}});function reducer(e,t){switch(t.type){case"push-key-binding":const n=e.bindings[t.binding.keyBind]?.find((e=>e.id===t.binding.id));return null!=n?e:{...e,bindings:{...e.bindings,[t.binding.keyBind]:[...e.bindings[t.binding.keyBind]??[],t.binding]}};case"remove-key-binding":const a=e.bindings[t.binding.keyBind]?.find((e=>e.id===t.binding.id));return null==a?e:{...e,bindings:{...e.bindings,[t.binding.keyBind]:(e.bindings[t.binding.keyBind]??[]).filter((e=>e.id!==t.binding.id))}};case"add-apply-key-binding":return{...e,applyBindings:[...e.applyBindings,t.binding]};case"remove-apply-key-binding":return{...e,applyBindings:e.applyBindings.filter((e=>e.id!==t.id))};case"set-key-pressed":return{...e,applyBindings:e.applyBindings.map((t=>({...t,active:null!=t.keyBind&&allPressed(t.keyBind,e.pressed)}))),pressed:{...e.pressed,[t.key]:t.pressed},lastPressed:t.pressed?t.key:void 0}}}const useKeyBindingState=()=>useRecoilReducer({reducer:reducer,atom:si}),useKeyBindingReadonlyState=()=>s(si);function pressedValue(e,t){return e.includes("!")?!t[e.replace("!","")]&&!t[e.replace("!","").toLowerCase()]:t[e]||t[e.toLowerCase()]}function isPressed(e,t){const n=e.split("||");return n.length>1?n.some((e=>pressedValue(e,t))):pressedValue(n[0],t)}function allPressed(e,t){const n=undefined;return e.split("+").every((e=>isPressed(e,t)))}function matchingSingleFnBindings(e,t,n){return e.filter((e=>!e.repeat)).filter((e=>null!=e.keyBind&&null!=n&&e.keyBind?.includes(n)&&allPressed(e.keyBind,t))).map((e=>e.fn))}function matchingOffBindings(e,t,n){return e.filter((e=>e.off&&e.active&&null!=e.keyBind&&null==n&&!allPressed(e.keyBind,t))).map((e=>e.off))}const useApplyKeyBinding=e=>{const[t,n]=useKeyBindingState();A.useEffect((()=>{const a=_e.create();return n({type:"add-apply-key-binding",binding:{...e,id:a,active:null!=e.keyBind&&allPressed(e.keyBind,t.pressed)}}),()=>{n({type:"remove-apply-key-binding",id:a})}}),[e.fn,e.off,e.keyBind,e.repeat])},useStackKeyBinding=(e,t=[])=>{const[,n]=useKeyBindingState();A.useEffect((()=>{const t=null==e.addPredicate||e.addPredicate(),a=null!=e.cancelPredicate&&e.cancelPredicate();t&&n({type:"push-key-binding",binding:e}),a&&n({type:"remove-key-binding",binding:e})}),t)},useKeyBindings=({keydownRepeatInterval:e=25,keydownIgnorePredicate:t=isInputElement}={})=>{const[n,a]=useKeyBindingState(),i=A.useCallback((e=>{Object.keys(n.bindings).filter((t=>t.includes(e)&&allPressed(t,{...n.pressed,[e]:!0}))).forEach((e=>{const t=n.bindings[e],i=t.length>0?t[t.length-1]:void 0;null!=i&&(i.fn(),a({type:"remove-key-binding",binding:i}))}))}),[n]);A.useEffect((()=>{const handleKeyDown=e=>{if(!e.repeat&&!t(e.target)){a({type:"set-key-pressed",key:e.key,pressed:!0}),i(e.key);const t={...n.pressed,[e.key]:!0},o=matchingSingleFnBindings(n.applyBindings,t,e.key),r=matchingOffBindings(n.applyBindings,t,e.key);(o.length>0||r.length>0)&&e.preventDefault()}},handleKeyUp=e=>{a({type:"set-key-pressed",key:e.key,pressed:!1})};return window.addEventListener("keydown",handleKeyDown),window.addEventListener("keyup",handleKeyUp),()=>{window.removeEventListener("keydown",handleKeyDown),window.removeEventListener("keyup",handleKeyUp)}}),[i,n.applyBindings,n.pressed]),A.useEffect((()=>{const e=matchingSingleFnBindings(n.applyBindings,n.pressed,n.lastPressed),t=matchingOffBindings(n.applyBindings,n.pressed,n.lastPressed);e.forEach((e=>e())),t.forEach((e=>e()))}),[n.pressed,n.lastPressed]),A.useEffect((()=>{const t=n.applyBindings.filter((e=>e.repeat&&null!=e.keyBind&&allPressed(e.keyBind,n.pressed))).map((e=>e.fn));if(t.length>0){const n=setInterval((()=>{t.forEach((e=>e()))}),e);return()=>{clearInterval(n)}}return()=>{}}),[n.applyBindings,n.lastPressed])},VertexBoxSelectionButton=()=>{const t=useBoxSelectionActions(),n=s(fn);return useStackKeyBinding({id:"ExitBoxSelection",keyBind:"Escape",fn:t.disable,addPredicate:()=>n,cancelPredicate:()=>!n},[n]),e(F,{content:"Box Selection",children:e(W,{iconName:"box-cursor",iconColor:n?"primary":"secondary","data-testid":"viewer-toolbar-enable-box-selection-button",onClick:n?t.disable:t.enable})})},li=1,VertexResizableContent=({className:n,style:a,displayShadow:i,heading:o,id:r,initialScale:s,placement:l="left",children:c,onResize:d,...u})=>{const m="left"===l||"right"===l,p="top"===l;function getHorizontalResizeDirection(){switch(l){case"left":return"right";case"right":return"left";default:return"none"}}function getVerticalResizeDirection(){return"top"===l?"top":"none"}const h=null!=s?s:1;return e(X,{id:r,"data-testid":`resizable-content-position-${l}`,className:_a(n,"pointer-events-auto z-popover md:z-overlay bg-white bg-opacity-95 flex-grow-0 flex-shrink-0 border-neutral-300",{"border-r min-w-75 max-w-half":"left"===l,"sidebar-shadow-right":"left"===l&&i,"border-l min-w-75 max-w-half":"right"===l,"sidebar-shadow-left":"right"===l&&i,"border-t bottom-0 fixed":"top"===l,"min-h-12 sheet":p}),style:{maxHeight:"top"===l?window.innerHeight:void 0,...a},initialHorizontalScale:m?s:void 0,initialVerticalScale:p?h:void 0,horizontalDirection:getHorizontalResizeDirection(),verticalDirection:getVerticalResizeDirection(),position:"right"===l||"top"===l?"absolute":"relative",onResizeEnd:()=>d?.(),...u,children:t("div",{className:"flex flex-col h-full w-full",children:["top"===l&&e("div",{className:"flex justify-center w-full",children:e("div",{className:"block md:hidden w-20 h-0.5 mt-0.5 bg-neutral-600 rounded"})}),o,e("div",{className:_a("w-full flex flex-col h-0 flex-grow",{"right-0":"right"===l}),children:c})]})})};function useDefaultKeybindings(){useApplyKeyBinding({fn:useActionCallback((({snapshot:e})=>async()=>{const t=await e.getPromise(et),n=await(t?.scene()),a={milliseconds:500};await(n?.camera().viewAll().render({animation:a}))})),keyBind:"f"})}function useLongPress({target:e,callback:t,delay:n=500,onMovement:a}){const[i,o]=k.useState(),[r,s]=k.useState();k.useEffect((()=>{const handleTouchStart=e=>{const a=e;null!=a.touches&&1===a.touches.length&&(null!=i&&clearTimeout(i),s(b.create(a.touches[0].clientX,a.touches[0].clientY)),o(setTimeout((()=>t?.(a)),n)))},handleTouchMove=e=>{const t=e;null!=t.touches&&t.touches.length>0&&null!=i&&null!=r&&b.distance(r,b.create(t.touches[0].clientX,t.touches[0].clientY))>=2&&(clearTimeout(i),a?.())},handleTouchEnd=()=>{null!=i&&clearTimeout(i)};return e?.addEventListener("touchstart",handleTouchStart),e?.addEventListener("touchmove",handleTouchMove),e?.addEventListener("touchend",handleTouchEnd),()=>{e?.removeEventListener("touchstart",handleTouchStart),e?.removeEventListener("touchmove",handleTouchMove),e?.removeEventListener("touchend",handleTouchEnd)}}),[e,i,r])}var ci=Object.freeze({__proto__:null,isInputElement:isInputElement,keyBindings:si,reducer:reducer,useApplyKeyBinding:useApplyKeyBinding,useDefaultKeybindings:useDefaultKeybindings,useKeyBindingReadonlyState:useKeyBindingReadonlyState,useKeyBindings:useKeyBindings,useLongPress:useLongPress,useStackKeyBinding:useStackKeyBinding});function asBooleanAttribute(e){return!!e||void 0}const VertexContextMenu=({targetElement:t,menuType:n,disableBackdrop:a,openPredicate:i,onOpen:o,onClose:r,children:l})=>{const c=useContextMenuActions(),d=s(ln),u=s(pn),m=A.useMemo((()=>["bottom-end","top-start","top-end","right","left"]),[]),p=d===n;useStackKeyBinding({id:"ContextMenu",keyBind:"Escape",fn:c.clearActiveContextMenu,addPredicate:()=>null!=d&&d===n,cancelPredicate:()=>null==d},[d]);const h=A.useMemo((()=>null!=t?t:null!=i?window:void 0),[t,i]);return useLongPress({target:h,callback:e=>c.longPress(e,n,i,o),onMovement:()=>c.clearActiveContextMenu()}),A.useEffect((()=>{const handleWindowPointerDown=e=>{const t=undefined;if(!targetWithinMenu(e)&&2!==e.buttons&&d===n){const t=targetShouldSkipNextHit(e);c.clearActiveContextMenu(t)}};if(a)return window.addEventListener("pointerdown",handleWindowPointerDown),()=>{window.removeEventListener("pointerdown",handleWindowPointerDown)}}),[a,n,d]),A.useEffect((()=>{const handlePointerDown=e=>{c.pointerDown(e)},handlePointerUp=e=>{c.pointerUp(e,n,i,o)},handleContextMenu=e=>c.contextMenu(e,i);return h?.addEventListener("pointerdown",handlePointerDown),h?.addEventListener("pointerup",handlePointerUp),h?.addEventListener("contextmenu",handleContextMenu),()=>{h?.removeEventListener("pointerdown",handlePointerDown),h?.removeEventListener("pointerup",handlePointerUp),h?.removeEventListener("contextmenu",handleContextMenu)}}),[t,n,i]),e("div",{className:_a({hidden:!p}),children:e(Z,{"data-testid":`${n}-context-menu`,open:asBooleanAttribute(p),position:u,fallbackPlacements:m,backdrop:!a,onMenuClosed:()=>{c.clearActiveContextMenu(),r?.()},children:e("div",{className:"pt-1",children:l})})})},VertexFitSelectedMenuItem=()=>{const n=s(Kt),a=s(tn),i=useViewerCameraActions();return e(Y,{"data-testid":"fit-selected-menu-option",onClick:async()=>{null!=a?.boundingBox&&await i.flyToByBoundingBox(a.boundingBox)},disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"fit-selected",size:"sm"}),"Fit Selected"]})})},VertexFlyToMenuItem=()=>{const n=useViewerCameraActions(),a=s(un);return e(Y,{"data-testid":"fly-to-part-menu-option",onClick:async()=>{const e=undefined,t=contextMenuItemIsRow(a)?a?.node.id?.hex:a?.id;null!=t&&await n.flyToById(t)},disabled:asBooleanAttribute(null==a),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"paper-airplane",size:"sm"}),"Fly To"]})})};function useSceneItemsOperations(){const e=s(et),t=undefined,n=undefined,a=undefined,i=undefined,o=undefined,r=undefined;return{sceneItemsOperation:A.useCallback((async(t,n)=>{const a=await(e?.scene());null==n?await(a?.items((e=>t(e.where((e=>e.all()))))).execute()):n.length>0&&await(a?.items((e=>t(e.where((e=>e.withItemIds(n)))))).execute())}),[e]),showOnlySelected:A.useCallback((async()=>{const t=await(e?.scene());t?.items((e=>[e.where((e=>e.all())).hide(),e.where((e=>e.withSelected())).show()])).execute()}),[e]),hideSelected:A.useCallback((async()=>{const t=await(e?.scene());t?.items((e=>[e.where((e=>e.withSelected())).hide()])).execute()}),[e]),showOnlyItem:A.useCallback((async t=>{const n=await(e?.scene());n?.items((e=>[e.where((e=>e.all())).hide(),e.where((e=>e.withItemIds([t]))).show()])).execute()}),[e]),ghostSelected:A.useCallback((async()=>{const t=await(e?.scene());t?.items((e=>[e.where((e=>e.withSelected())).setPhantom(!0)])).execute()}),[e]),unGhostSelected:A.useCallback((async()=>{const t=await(e?.scene());t?.items((e=>[e.where((e=>e.withSelected())).setPhantom(!1)])).execute()}),[e])}}const VertexHideAllMenuItem=()=>{const n=useSceneItemsOperations();return e(Y,{"data-testid":"hide-all-menu-option",onClick:async()=>{await n.sceneItemsOperation((e=>e.hide()))},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-hidden",size:"sm"}),"Hide All Parts"]})})},VertexHidePartMenuItem=()=>{const n=s(un),a=useSceneItemsOperations();return e(Y,{"data-testid":"hide-menu-option",onClick:async()=>{const e=undefined,t=contextMenuItemIsRow(n)?n?.node.id?.hex:n.id;null!=t&&await a.sceneItemsOperation((e=>e.hide()),[t])},disabled:asBooleanAttribute(null==n),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-hidden",size:"sm"}),"Hide Part"]})})},VertexHideSelectedMenuItem=()=>{const n=s(Kt),a=useSceneItemsOperations();return e(Y,{"data-testid":"hide-selected-menu-option",onClick:()=>a.hideSelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-hidden",size:"sm"}),"Hide Selected"]})})},VertexShowAllMenuItem=()=>{const n=useSceneItemsOperations();return e(Y,{"data-testid":"show-all-menu-option",onClick:async()=>{await n.sceneItemsOperation((e=>e.show()))},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Show All Parts"]})})},VertexShowOnlyMenuItem=()=>{const n=s(un),a=useSceneItemsOperations();return e(Y,{"data-testid":"show-only-menu-option",onClick:async()=>{const e=undefined,t=contextMenuItemIsRow(n)?n?.node.id?.hex:n?.id;null!=t&&await a.showOnlyItem(t)},disabled:asBooleanAttribute(null==n),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Show Only Part"]})})},VertexShowOnlySelectedMenuItem=()=>{const n=s(Kt),a=useSceneItemsOperations();return e(Y,{"data-testid":"show-only-selected-menu-option",onClick:()=>a.showOnlySelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Show Only Selected"]})})},di=o({key:"openedPanelActivePrimaryLeft",default:void 0}),ui=o({key:"openedPanelActivePrimaryRight",default:void 0}),mi=o({key:"openedPanelActiveSceneTreeSecondary",default:void 0});function usePanelActions(){return{openPrimary:useActionCallback((({set:e})=>(t,n)=>{e("left"===n?di:ui,t)})),closePrimary:useActionCallback((({set:e})=>t=>{e("left"===t?di:ui,void 0)})),openSecondary:useActionCallback((({set:e})=>t=>e(mi,t))),closeSecondary:useActionCallback((({reset:e})=>()=>e(mi)))}}var pi=Object.freeze({__proto__:null,openedPanelActivePrimaryLeft:di,openedPanelActivePrimaryRight:ui,openedPanelActiveSceneTreeSecondary:mi,usePanelActions:usePanelActions});const VertexShowPropertiesMenuItem=()=>{const n=usePanelActions(),a=useSelectionActions(),i=s(un);return e(Y,{"data-testid":"show-properties-menu-option",disabled:asBooleanAttribute(null==i),onClick:()=>{const e=undefined,t=contextMenuItemIsRow(i)?i?.node.id?.hex:i?.id;null!=t&&(a.clearAndSelect({id:t}),n.openSecondary("Properties"))},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"info",size:"sm"}),"Show Properties"]})})};function fromApiProperty(e){return{key:e.key?.name??"",value:apiMetadataPropertyDisplayValue(e.value)}}function apiMetadataPropertyDisplayValue(e){let t="";switch(e?.type){case"string":t=e.value??t;break;case"long":case"double":t=e.value.toString()??t;break;case"timestamp":t=e.value.seconds.toLocaleString()??t}return t}const hi=o({key:"showMetadataSceneItemProperties",default:!0}),fi=d({key:"nextMetadataSceneItemProperties",get:e=>async({get:t})=>{const n=t(et),a=t(yi(e));try{const t=await(n?.sceneItems?.listSceneItemMetadata(e,{cursor:a,size:20})),i=t?.entries?.map((e=>fromApiProperty(e))),o=undefined;return{metadata:null!=i?[...i]?.sort(((e,t)=>e.key>t.key?1:-1)):void 0,cursor:t?.paging.next}}catch(t){return void logger_debug(`Error encountered get metadata for scene item. [itemId={${e}}]`,t)}}}),gi=l({key:"loadedMetadataSceneItemProperties",default:[]}),yi=l({key:"metadataSceneItemPropertiesCursor",default:void 0}),vi=d({key:"hasMoreMetadataSceneItemProperties",get:e=>({get:t})=>{const n=undefined;return null!=t(yi(e))}}),bi=l({key:"isFetchingMetadataSceneItemProperties",default:!1}),wi=r({key:"metadataSceneItemName",get:async({get:e})=>{const t=e($t);if(null!=t){const n=e(pa(t.id));return n?.name??void 0}}});var Ci=Object.freeze({__proto__:null,apiMetadataPropertyDisplayValue:apiMetadataPropertyDisplayValue,fromApiProperty:fromApiProperty,hasMoreMetadataSceneItemProperties:vi,isFetchingMetadataSceneItemProperties:bi,loadedMetadataSceneItemProperties:gi,metadataSceneItemName:wi,metadataSceneItemPropertiesCursor:yi,nextMetadataSceneItemProperties:fi,showMetadataSceneItemProperties:hi});const VertexGhostSelectedMenuItem=()=>{const n=s(Kt),a=useSceneItemsOperations();return e(Y,{"data-testid":"ghost-selected-menu-option",onClick:()=>a.ghostSelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-partial",size:"sm"}),"Ghost Selected"]})})};function BetaLabel({children:n,label:a="Beta",placement:i="end",borderColor:o="border-purple-400",textColor:r="text-purple-500"}){return t("div",{className:"flex items-center",children:[n,e("div",{className:_a(`flex border ${o} rounded-md px-1.5 text-xs ${r} uppercase items-center justify-center ml-2 select-none max-h-5`,{"ml-auto":"end"===i}),style:{height:"fit-content"},children:a})]})}const VertexShowModelViewsMenuItem=()=>{const n=usePanelActions(),a=useSelectionActions(),i=s(un);return e(Y,{"data-testid":"viewer-show-model-views",disabled:asBooleanAttribute(null==i),onClick:async()=>{const e=undefined,t=contextMenuItemIsRow(i)?i?.node.id?.hex:i?.id;null!=t&&(n.openPrimary("model-views","right"),a.selectForModelViewsPanel({id:t}))},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"views",size:"sm"}),t("div",{className:"flex gap-2",children:["Show Model Views ",e(BetaLabel,{})]})]})})},VertexUnghostSelectedMenuItem=()=>{const n=s(Kt),a=useSceneItemsOperations();return e(Y,{"data-testid":"unghost-selected-menu-option",onClick:()=>a.unGhostSelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Unghost Selected"]})})},DefaultSceneTreeContextMenu=()=>{const n=s(hi);return t("div",{className:"w-56",children:[e(VertexHideSelectedMenuItem,{}),e(VertexHideAllMenuItem,{}),e(VertexShowOnlyMenuItem,{}),e(VertexShowOnlySelectedMenuItem,{}),e(VertexShowAllMenuItem,{}),e(VertexGhostSelectedMenuItem,{}),e(VertexUnghostSelectedMenuItem,{}),e(J,{}),e(VertexFitSelectedMenuItem,{}),e(VertexFlyToMenuItem,{}),e(J,{}),n&&e(VertexShowPropertiesMenuItem,{}),e(VertexShowModelViewsMenuItem,{})]})},VertexSceneTreeContextMenu=({children:t})=>{const n=useSceneTreeActions(),a=s(Dn),i=undefined;return e(VertexContextMenu,{menuType:"scene-tree",targetElement:a,onOpen:async(e,t)=>{const a=e;await n.setContextMenuItem(a.clientY)},disableBackdrop:!0,children:null!=t&&!1!==t?t:e(DefaultSceneTreeContextMenu,{})})},DefaultViewerContextMenu=()=>{const n=s(hi);return t("div",{className:"w-56",children:[e(VertexHidePartMenuItem,{}),e(VertexHideSelectedMenuItem,{}),e(VertexHideAllMenuItem,{}),e(VertexShowOnlyMenuItem,{}),e(VertexShowOnlySelectedMenuItem,{}),e(VertexShowAllMenuItem,{}),e(VertexGhostSelectedMenuItem,{}),e(VertexUnghostSelectedMenuItem,{}),e(J,{}),e(VertexFitSelectedMenuItem,{}),e(VertexFlyToMenuItem,{}),e(J,{}),n&&e(VertexShowPropertiesMenuItem,{}),e(VertexShowModelViewsMenuItem,{})]})},VertexViewerContextMenu=({children:t})=>{const n=null!=t&&!1!==t,a=A.useCallback((e=>e.target instanceof HTMLElement&&"vertex-viewer"===e.target.id),[]);return e(VertexContextMenu,{menuType:"viewer",disableBackdrop:!0,openPredicate:a,children:n?t:e(DefaultViewerContextMenu,{})})},Si=35,xi=o({key:"sceneItemGhostingSelectedOpacity",default:Si}),ki=l({key:"appliedItemPhantomState",default:void 0}),Ai=o({key:"appliedItemPhantomStateIds",default:[]}),Ti=r({key:"sceneItemGhostingLastSelectedPhantom",get:({get:e})=>{const t=e($t);return null!=t&&(e(ki(t.id))??!1)}}),VertexSceneItemGhostingOpacitySlider=({onApply:t})=>{const[n,a]=h(xi);return e(VertexSlider,{id:"phantom-opacity","data-testid":"phantom-opacity-slider",leftLabel:"0%",rightLabel:"100%",min:0,max:100,step:5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})},useSceneItemPhantomActions=()=>{const e=useViewerSceneActions(),t=useActionCallback((({snapshot:e,reset:t})=>async()=>{const n=undefined;(await e.getPromise(Ai)).forEach((e=>t(ki(e)))),t(Ai)}));return{setPhantomState:useActionCallback((({snapshot:t,set:n})=>async a=>{const i=await t.getPromise(Kt);i.forEach((e=>n(ki(e),a))),n(Ai,(e=>[...e,...i])),await e.execute(Wt.SET_PHANTOM_SELECTED_ITEMS,(e=>e.where((e=>e.withSelected())).setPhantom(a)))})),clearPhantomState:useActionCallback((({snapshot:t,set:n,reset:a})=>async()=>{const i=await t.getPromise(Kt);i.forEach((e=>a(ki(e)))),n(Ai,(e=>e.filter((e=>!i.includes(e))))),await e.execute(Wt.CLEAR_PHANTOM_SELECTED_ITEMS,(e=>e.where((e=>e.withSelected())).clearPhantom()),(e=>e.where((e=>e.withSelected())).select()))})),clearAllPhantomState:useActionCallback((()=>async()=>{await t(),await e.execute(Wt.CLEAR_PHANTOM_ALL,(e=>e.where((e=>e.all())).clearPhantom()),(e=>e.where((e=>e.withSelected())).select()))})),resetAllPhantomState:t}};var Pi=Object.freeze({__proto__:null,DEFAULT_GHOSTING_OPACITY:Si,appliedItemPhantomState:ki,appliedItemPhantomStateIds:Ai,sceneItemGhostingLastSelectedPhantom:Ti,sceneItemGhostingSelectedOpacity:xi,useSceneItemPhantomActions:useSceneItemPhantomActions});const VertexSceneItemGhostingToggle=({onApply:t})=>{const n=useSceneItemPhantomActions(),a=s(on),i=m(Ti);return e(F,{content:"Select a part to display as ghost",disabled:a,children:e(j,{className:"flex items-center","data-testid":"phantom-state-toggle",variant:"switch",disabled:!a,checked:"hasValue"===i.state&&i.contents,onValueChanged:async e=>{await n.setPhantomState(e.detail),t?.(e.detail)}})})};function VertexGhostingControls({onApplyGhostingChange:a,onApplyOpacity:i}){return t(n,{children:[t("div",{className:"flex items-center py-3",children:[e(VertexSceneItemGhostingToggle,{onApply:a}),e("span",{className:"pl-4 text-sm text-neutral-700",children:"Display as Ghost"})]}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Global Ghost Opacity"}),e(VertexSceneItemGhostingOpacitySlider,{onApply:i})]})}const VertexSceneItemGhostingClear=({onClear:n,onClearAll:a})=>{const i=useSceneItemPhantomActions(),o=s(Ti);return e("div",{className:"ml-auto",children:t(ResetButton,{id:"phantom",tooltip:"Clear Ghosting",children:[e("div",{className:"pt-1"}),e(Y,{"data-testid":"reset-selected-phantom",onClick:async()=>{await i.clearPhantomState(),n?.()},disabled:!o,children:"Clear ghosting for selected"}),e(Y,{"data-testid":"reset-all-phantom",onClick:async()=>{await i.clearAllPhantomState(),a?.()},children:"Clear ghosting for all"})]})})};function VertexGhostingPanelSection({onClearGhostState:n,onClearAllGhostState:a,onApplyGhostingChange:i,onApplyOpacity:o}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Ghosting",e(VertexSceneItemGhostingClear,{onClear:n,onClearAll:a})]}),children:e(VertexGhostingControls,{onApplyGhostingChange:i,onApplyOpacity:o})})}function VertexMeasurementContextMenu({onDelete:n}){const a=s(dn);return e(VertexContextMenu,{menuType:"measurement",openPredicate:e=>e.target instanceof HTMLElement&&"VERTEX-VIEWER-MEASUREMENT-DISTANCE"===e.target.tagName,children:t(Y,{"data-testid":"measurement-delete",onClick:()=>null!=a&&n(a.id),children:[e($,{slot:"icon",name:"delete",size:"sm"}),e("div",{className:"pl-2",children:"Delete"})]})})}function useDockedPlacement(e,t){const[n,a]=k.useState(b.create(0,0));return k.useLayoutEffect((()=>{if(null!=e){const n=e.getBoundingClientRect(),i=b.create(n.left,n.bottom),o=b.create(n.right,n.bottom);a("left"===t?i:o)}}),[e,t]),n}function VertexMeasurementDetails({placement:n,size:a}){const i=useMeasurementActions(),o=s(et),r=s(tt),l=useDockedPlacement(o??null,n),c=s(En),d=s(In),u=s(Nn),m=s(On),p=s(Un),h=s(Gn);return e(Q,{className:"z-popover",boundaryPadding:16,boundarySelector:`#${r}`,position:l,children:t("div",{className:_a("flex flex-col min-w-40",{"text-xs leading-2":"sm"===a,"text-sm leading-4":"md"===a,"text-base leading-5":"lg"===a,"text-lg leading-5":"xl"===a}),children:[t("div",{className:"pb-2 flex justify-between items-center",children:[e("div",{className:_a("w-full",{"text-sm leading-5":"sm"===a,"text-base leading-5":"md"===a,"text-lg leading-6":"lg"===a,"text-xl leading-7 mr-6":"xl"===a}),children:"Measurement"}),e("div",{className:_a("mr-0.5",{hidden:!m}),children:e(F,{content:"Reset",placement:"left-start",children:e(W,{"data-testid":"measurement-details-reset",iconName:"reset",iconSize:"sm",onClick:i.resetMeasurement})})})]}),e(re,{"data-testid":"measurement-details-viewer-measurement-details",className:_a("gap-y-1.5",{hidden:null==c}),measurementOutcome:c,measurementOverlays:d,distanceUnits:toUnitType(p),fractionalDigits:parseInt(h,10)}),e("div",{"data-testid":"measurement-details-message",className:_a({hidden:null==u}),children:u})]})})}function useCallbackRef(e){const[t,n]=A.useState(e?.override??null),a=undefined;return{element:t,callback:A.useCallback((t=>n(e?.override??t)),[])}}function VertexPointToPointMeasurement({detailsPlacement:a,detailsSize:i,onPointToPointMeasurementChange:o}){const r=useMeasurementActions(),l=s(et),c=s(vn),d=s(wn),u=s(Un),m=s(Gn),{callback:p,element:h}=useCallbackRef();usePointToPointMeasurement(h);const f=P((e=>{const t={start:e.detail.start,end:e.detail.end,invalid:!e.detail.valid};r.setEditedPointToPointMeasurement(t),o?.(t)}),[r]);return c?t(n,{children:[e(se,{"data-testid":"point-to-point-measurement",ref:p,viewer:l??void 0,mode:"replace",start:d?.start,end:d?.end,invalid:d?.invalid,units:toUnitType(u),fractionalDigits:parseInt(m,10),showAxisReferenceLines:!0,onEditEnd:f}),e(VertexMeasurementDetails,{placement:a,size:i}),e(VertexMeasurementContextMenu,{onDelete:r.resetMeasurement})]}):e(n,{})}function VertexPointToPointMeasurementTool(){const t=useMeasurementActions(),n=s(vn);return useStackKeyBinding({id:"ExitMeasurement",keyBind:"Escape",fn:t.disableEditMeasurement,addPredicate:()=>n,cancelPredicate:()=>!n},[n,t]),e(F,{content:"Point to Point Measurement",children:e(W,{iconName:"tape-measure","data-testid":"viewer-toolbar-point-to-point-measurement-button",iconColor:n?"primary":"secondary",onClick:t.toggleEditPointToPointMeasurement})})}const Mi=o({key:"viewerToolkitSdkConfig",default:void 0});var Ei=Object.freeze({__proto__:null,sdkConfig:Mi});const VertexPreciseMeasurement=({detailsPlacement:a,detailsSize:i,onEntitiesChanged:o,onOutcomeChanged:r})=>{const l=s(et),c=s(Mi),d=s(Sn),{callback:u,element:m}=useCallbackRef();return usePreciseMeasurementModel(m,o,r),d?t(n,{children:[e(le,{"data-testid":"precise-measurement-viewer-tool",ref:u,viewer:l??void 0,config:JSON.stringify({network:{apiHost:c?.network?.apiHost,renderingHost:c?.network?.renderingHost,sceneTreeHost:c?.network?.sceneTreeHost,sceneViewHost:c?.network?.sceneViewHost}})}),e(VertexMeasurementDetails,{placement:a,size:i})]}):e(n,{})};function VertexPreciseMeasurementTool(){const t=useMeasurementActions(),n=s(Sn);return e(F,{content:"Precise Measurement",children:e(W,{iconName:"ruler","data-testid":"viewer-toolbar-precise-measurement-button",iconColor:n?"primary":"secondary",onClick:t.toggleEditPreciseMeasurement})})}function VertexApplicationMessages(){const a=s(Xe),i=s(Ye);return t(n,{children:[null!=a&&e(ee,{className:"z-[16000]",duration:a.duration,open:!0,content:a.message,type:a.type},a.id),null!=i&&e(te,{placement:"bottom-left",className:"z-[16000]",duration:i.duration,open:!0,content:i.message,type:i.type},i.id)]})}const Ii={binding:"{{row.node.name}}",label:"Name",metadataKeyName:"VERTEX_SCENE_ITEM_NAME"};function mapToColumn(e,t){return{label:"name"===e.toLowerCase()?"Name (Property)":e,binding:`{{row.metadata.${e}}}`,initialWidth:t,minWidth:t/2}}const Ni=o({key:"sceneTreeColumnsRefreshTrigger",default:0}),Oi=o({key:"sceneTreeColumnsWhitelistedColumns",default:[]}),Vi=r({key:"sceneTreeColumnsAvailableColumns",get:async({get:e})=>{const t=e(zn);return e(Ni),null!=t?await t.fetchMetadataKeys():[]}}),Li=r({key:"sceneTreeColumnsAvailableSortedColumns",get:({get:e})=>e(Vi).filter((e=>e!==Ii.metadataKeyName)).sort(((e,t)=>e.localeCompare(t)))}),_i=o({key:"sceneTreeColumnsVisibleMetadataColumnNames",default:[]}),Ri=r({key:"sceneTreeColumnsActiveColumns",get:({get:e})=>{const t=e(_i),n=e(Dn),a=n?.clientWidth;if(null!=a&&a>0){const e=1/(t.length+1)*a,n=(a-e)/t.length;return t.reduce(((e,t)=>{const a=mapToColumn(t,n);return{...e,[a.label]:a}}),{Name:{...Ii,initialWidth:e,minWidth:n}})}return{Name:Ii}}}),Di=r({key:"sceneTreeColumnsActiveColumnNames",get:({get:e})=>Object.keys(e(Ri))});function useSceneTreeColumnActions(){return{setActive:useActionCallback((({set:e})=>async t=>{e(_i,t)})),refreshKeyList:useActionCallback((({set:e})=>()=>{e(Ni,(e=>e+1))}))}}const zi=16,Bi=-8;var Hi;function useOpenPositionedPopover({open:e,buttonElement:t,horizontalOffset:n,verticalOffset:a}){const[i,o]=k.useState(),[r,s]=k.useState(),l=undefined;return{position:i,direction:r,handleOpen:k.useCallback((()=>{if(!e){const e=t?.getBoundingClientRect();if(null!=e){const t=n??zi,i=a??Bi,r=e.x>window.innerWidth/2?Hi.LEFT:Hi.RIGHT;o({x:r===Hi.LEFT?e.left-t:e.right+t,y:e.top+i}),s(r)}}}),[e,t])}}!function(e){e.LEFT="left",e.RIGHT="right"}(Hi||(Hi={}));var ji=Object.freeze({__proto__:null,DEFAULT_HORIZONTAL_POSITION_OFFSET:zi,DEFAULT_NAME_COLUMN:Ii,DEFAULT_VERTICAL_POSITION_OFFSET:Bi,get PlacementDirection(){return Hi},mapToColumn:mapToColumn,sceneTreeColumnsActiveColumnNames:Di,sceneTreeColumnsActiveColumns:Ri,sceneTreeColumnsAvailableColumns:Vi,sceneTreeColumnsAvailableSortedColumns:Li,sceneTreeColumnsRefreshTrigger:Ni,sceneTreeColumnsVisibleMetadataColumnNames:_i,sceneTreeColumnsWhitelistedColumns:Oi,useOpenPositionedPopover:useOpenPositionedPopover,useSceneTreeColumnActions:useSceneTreeColumnActions});const Fi=o({key:"sceneTreeSearchActive",default:!1}),Wi=o({key:"sceneTreeColumnsPartial",default:!1}),Ui=o({key:"sceneTreeSearchValue",default:void 0}),Gi=o({key:"sceneTreeSearchExactMatch",default:!1}),Ki=o({key:"sceneTreeSearchRemoveHiddenItems",default:!1}),$i=o({key:"sceneTreeSearchResultCount",default:0}),qi=o({key:"sceneTreeSearchActiveColumns",default:[]}),Yi=r({key:"sceneTreeSearchNameColumnActive",get:({get:e})=>{const t=e(qi);return 0===t.length||t.includes(Ii.metadataKeyName)}});function useSceneTreeSearch({sceneTreeElement:e}){const t=useSceneTreeActions(),n=s(Fi),a=c($i),i=c(Jt);A.useEffect((()=>{let t;return whenComponentReady(e,(()=>{t=e?.controller?.stateChanged((e=>{void 0!==e?.totalFilteredRows&&a(e?.totalFilteredRows)}))})),()=>{t?.dispose()}}),[e]),A.useEffect((()=>{if(null!=e){let a;return whenComponentReady(e,(()=>{a=e?.controller?.stateChanged((e=>{if(null!=e?.filterTerm){const t=e?.rows.find((e=>e?.node?.selected));i(t?.node.id?.hex)}else n&&t.flyToFirstSelectedItem()}))})),()=>{a?.dispose()}}}),[e,e?.controller,open])}function useSceneTreePartialResults({sceneTreeElement:e}){const t=c(Wi);A.useEffect((()=>{let n;return whenComponentReady(e,(()=>{n=e?.controller?.stateChanged((e=>{t(!!e?.isPartialKeysResponse)}))})),()=>{n?.dispose()}}),[e])}const useSceneTreeSearchActions=()=>{const e=useActionCallback((({set:e})=>t=>{e(qi,t)})),t=useActionCallback((({snapshot:t})=>async(n,a,i,o)=>{const r=await t.getPromise(Dn),s=await t.getPromise(Gi),l=await t.getPromise(Ki),c=await t.getPromise(qi),d=c.length>0?a?[...c,n]:c.filter((e=>e!==n)):[...i,Ii.metadataKeyName].filter((e=>e!==n));e(d),o&&r?.filterItems(o,{columns:d,exactMatch:s,removeHiddenItems:l})})),n=useActionCallback((({snapshot:e,set:t})=>async(n,a,i)=>{const o=await e.getPromise(Dn),r=await e.getPromise(Gi),s=await e.getPromise(Ki),l=await e.getPromise(qi),c=n.filter((e=>!a.includes(e))),d=a.filter((e=>!n.includes(e))),u=l.length>0?[...l.filter((e=>!c.includes(e))),...d]:[...a,Ii.metadataKeyName],m=u.length>0?u:[...a,Ii.metadataKeyName];t(qi,m),i&&o?.filterItems(i,{columns:m,exactMatch:r,removeHiddenItems:s})})),a=useActionCallback((({set:e})=>t=>{e(Gi,t)})),i=useActionCallback((({set:e})=>t=>{e(Ki,t)}));return{setMetadataSearchKeys:e,updateMetadataSearchAfterSearchKeysChange:t,updateMetadataSearchAfterColumnVisibilityChange:n,setMetadataSearchExactMatch:a,setMetadataSearchRemoveHiddenItems:i}};var Xi=Object.freeze({__proto__:null,sceneTreeColumnsPartial:Wi,sceneTreeSearchActive:Fi,sceneTreeSearchActiveColumns:qi,sceneTreeSearchExactMatch:Gi,sceneTreeSearchNameColumnActive:Yi,sceneTreeSearchRemoveHiddenItems:Ki,sceneTreeSearchResultCount:$i,sceneTreeSearchValue:Ui,useSceneTreePartialResults:useSceneTreePartialResults,useSceneTreeSearch:useSceneTreeSearch,useSceneTreeSearchActions:useSceneTreeSearchActions});const targetIsElement=(e,t)=>e instanceof Element&&e.tagName===t;function useRecoilRef({state:e}){const t=i((({set:t})=>n=>{t(e,n)}),[]);return t}var Zi;function styleFromOptionalFont(e){return null!=e?{"--scene-tree-default-font-family":styleFromFontFace(e.fontFace),"--scene-tree-default-font-color":e.color}:{}}function styleFromOptionalBackgroundColors(e){const t=e?.depthColors,n=null!=t?Object.keys(t).reduce(((e,n)=>({...e,[`--scene-tree-row-background-color-depth-${n}`]:t[parseInt(n)]})),{}):{};return null!=e?{...n,"--scene-tree-hovered-row-background-color":e.hovered,"--scene-tree-selected-row-background-color":e.selected,"--scene-tree-row-background-color":e.defaultColor}:{}}function styleFromFontFace(e){return e===Zi.ROBOTO_MONO?"var(--vertex-ui-font-family-monospace)":"var(--vertex-ui-font-family)"}!function(e){e.ROBOTO="ROBOTO",e.ROBOTO_MONO="ROBOTO_MONO"}(Zi||(Zi={}));const Ji=o({key:"sceneTreeAdditionalMetadataKeys",default:[]}),Qi=r({key:"sceneTreeActiveMetadataKeys",get:({get:e})=>{const t=e(Ji),n=e(_i),a=e(Oi),i=new Set([...t,...n]),o=new Set(a);return 0===a.length?Array.from(i):Array.from(i.intersection(o))}});var eo=Object.freeze({__proto__:null,sceneTreeActiveMetadataKeys:Qi,sceneTreeAdditionalMetadataKeys:Ji});function childrenAsArray(e){return Array.isArray(e)?e:[e]}function filterChildElements(e,t){return childrenAsArray(e).filter((e=>A.isValidElement(e)&&e.type===t))}function findChildElement(e,t){return filterChildElements(e,t)[0]}function cloneChildNodeOrFunction(e,t){return"object"==typeof e?A.cloneElement(e,t):e(t)}function useStateSyncedValue(e,t,{transform:n}={}){const[a,i]=h(e);return A.useEffect((()=>{null!=t&&i(null!=n?n(t):t)}),[t]),a}const VertexEnterSceneTreeSearchModeButton=({onEnterSearchMode:t})=>{const n=c(Fi);return e(F,{className:"flex ml-auto",content:"Scene Tree Search",children:e(W,{"data-testid":"enter-scene-tree-search-mode-button",iconName:"search",iconSize:"sm",onPointerDown:e=>{e.preventDefault()},onClick:()=>{n(!0),t?.()}})})},VertexSceneTreeMetadataCheck=({checked:n,disabled:a,onChange:i,children:o})=>{const r="string"==typeof o?o.replace(" ","-"):"";return t("div",{className:"flex items-center",children:[e(j,{"data-testid":`scene-tree-metadata-check-${r}`,variant:"check",checked:n,disabled:a,onValueChanged:e=>i?.(e.detail)}),e("div",{className:"pl-2 py-1 text-[0.875rem] w-full","data-testid":`scene-tree-metadata-name-${r}`,onClick:()=>{a||i?.(!n)},children:o})]})},VertexSceneTreeSearchOptionsPopover=({onSearchedSceneTreeColumnsChange:a,onSearchForExactMatchChange:i})=>{const o=useSceneTreeActions(),r=useSceneTreeSearchActions(),l=s(Dn),c=s(Yi),d=s(qi),u=s(Ui),m=s(Gi),p=s(Ki),h=s(_i),{element:f,callback:g}=useCallbackRef(),v="scene-tree-search",b=s(Hn(v)),{position:w,direction:C,handleOpen:S}=useOpenPositionedPopover({open:b,buttonElement:f,horizontalOffset:20}),A=k.useCallback((()=>{o.closeSceneTreePopover()}),[]),T=C===Hi.LEFT?"left-end":"right-start",updateSearch=async(e,t)=>{if(u){const n=d.length>0?d:[...h,Ii.metadataKeyName];await(l?.filterItems(u,{columns:n,exactMatch:e,removeHiddenItems:t}))}};return t(n,{children:[e(F,{content:"Search Options",placement:"top",children:e(W,{"data-testid":"scene-tree-search-options-popover-button",className:"text-neutral-700",ref:g,iconName:"gear",iconSize:"sm",onClick:()=>{b?A():(S(),o.openSceneTreePopover(v))}})}),b&&e(ne,{"data-testid":"scene-tree-search-options-popover",open:b,backdrop:!1,position:w,resizeBehavior:"fixed",placement:T,className:"z-popover",children:t("div",{className:_a("flex flex-col bg-white border border-neutral-300 rounded",{hidden:!b}),children:[t("div",{className:"flex items-center text-[0.875rem] p-3 border-b border-neutral-300 pb-2",children:[e("div",{className:"pr-2 text-[0.875rem] whitespace-nowrap",children:"Column Properties Search"}),e(W,{className:"ml-auto",iconName:"close",iconSize:"sm",onClick:()=>{A()}})]}),t("div",{className:"max-h-64 p-3 overflow-y-auto",children:[e("div",{className:"text-[0.875rem] pb-2 pr-2",children:"Select properties to perform the search on:"}),e(VertexSceneTreeMetadataCheck,{checked:c,disabled:0===d.length||d.every((e=>e===Ii.metadataKeyName)),onChange:async e=>{await r.updateMetadataSearchAfterSearchKeysChange(Ii.metadataKeyName,e,h,u),a?.()},children:Ii.label},Ii.metadataKeyName),h.map((t=>e(VertexSceneTreeMetadataCheck,{checked:d.includes(t),disabled:d.length>0&&d.every((e=>e===t)),onChange:async e=>{await r.updateMetadataSearchAfterSearchKeysChange(t,e,h,u),a?.()},children:t},t)))]}),t("div",{className:"flex p-3 border-t border-neutral-300",children:[e(j,{className:"flex items-center","data-testid":"filter-exact-match-toggle",variant:"switch",checked:m,onValueChanged:async e=>{r.setMetadataSearchExactMatch(e.detail),i?.(),await updateSearch(e.detail,p)}}),e("span",{className:"pl-4 text-[0.875rem] text-neutral-800",children:"Return only exact matches"})]}),t("div",{className:"flex px-3 pb-3",children:[e(j,{className:"flex items-center","data-testid":"filter-remove-hidden-items-toggle",variant:"switch",checked:p,onValueChanged:async e=>{r.setMetadataSearchRemoveHiddenItems(e.detail),await updateSearch(m,e.detail)}}),e("span",{className:"pl-4 text-[0.875rem] text-neutral-800",children:"Search only visible items"})]})]})})]})},VertexSceneTreeSearchBar=({onSearch:n,onClearSearch:a,onExitSearchMode:i,onSearchedSceneTreeColumnsChange:o,onSearchForExactMatchChange:r,sceneTreeSearchElement:l,children:c})=>{const d=useSceneTreeActions(),u=s(Dn),[m,p]=h(Fi),[f,g]=h(Ui),v=s(Hn("scene-tree-search"));useSceneTreeSearch({sceneTreeElement:u??null});const{element:b,callback:w}=useCallbackRef({override:l}),C=null==f||""===f;return k.useEffect((()=>{m&&b?.setFocus()}),[b,m]),t("div",{className:"flex w-full py-3 px-2",children:[e(F,{className:"self-center mr-1",content:"Exit Search",children:e(W,{"data-testid":"scene-tree-search-close-button",iconName:"caret-left",iconSize:"sm",onPointerDown:e=>{e.preventDefault()},onClick:async()=>{p(!1),g(void 0),await(b?.clear()),await(u?.filterItems("")),v&&d.closeSceneTreePopover(),await d.flyToFirstSelectedItem(),i?.()}})}),t(ce,{"data-testid":"scene-tree-search-bar",ref:w,controller:u?.controller,onBlur:()=>{C&&(p(!1),i?.(),v&&d.closeSceneTreePopover())},onSearch:()=>{g(b?.value),n?.(b?.value)},children:[c,e($,{slot:"clear-icon",name:"close-circle-fill",size:"sm",onPointerDown:async()=>{await d.flyToFirstSelectedItem(),a?.()}})]}),e("div",{className:"self-center pl-1",onPointerDown:e=>{e.preventDefault()},children:e(VertexSceneTreeSearchOptionsPopover,{onSearchedSceneTreeColumnsChange:o,onSearchForExactMatchChange:r})})]})},VertexSceneTreeSearch=({onEnterSearchMode:n,onExitSearchMode:a,onSearch:i,onClearSearch:o,onSearchedSceneTreeColumnsChange:r,onSearchForExactMatchChange:l,children:c})=>{const d=s(Fi);return t(de,{className:"h-11 p-0 border-b border-neutral-300 box-content",slot:"header",children:[d&&e(VertexSceneTreeSearchBar,{onSearch:i,onClearSearch:o,onExitSearchMode:a,onSearchedSceneTreeColumnsChange:r,onSearchForExactMatchChange:l,children:c}),!d&&e("div",{className:"ml-auto mr-2",children:e(VertexEnterSceneTreeSearchModeButton,{onEnterSearchMode:n})})]})};function useCacheableLoadable(e,t){const n=M(),[a,i]=E(0),o=m(e);T((()=>{"hasValue"===o.state&&(n.current=o.contents)}),[t,o]);const[r,s]=I((()=>"hasValue"!==o.state&&null!=n.current?[n.current,!0]:"hasValue"===o.state?[o.contents,!1]:[void 0,!1]),[o.state,o.contents,a]),l=P((()=>{n.current=void 0,i(a+1)}),[a]),c=undefined;return I((()=>({data:r,state:o.state,cached:s,invalidate:l})),[l,r,s,o.state])}const VertexSceneTreeColumnPopover=({onVisibleSceneTreeColumnsChange:a})=>{const i=useSceneTreeActions(),o=useSceneTreeColumnActions(),r=useSceneTreeSearchActions(),l=undefined;useSceneTreePartialResults({sceneTreeElement:s(Dn)??null});const c=s(Ui),d=s(Oi),u=useCacheableLoadable(Li),m=d.length>0?d:u.data,p=s(_i),h=s(Wi),[f,g]=k.useState(p),[v,b]=k.useState(""),{element:w,callback:C}=useCallbackRef(),S="scene-tree-columns",A=s(Hn(S)),{position:T,direction:P,handleOpen:M}=useOpenPositionedPopover({open:A,buttonElement:w}),E=k.useCallback((()=>{i.closeSceneTreePopover()}),[]),I=P===Hi.LEFT?"left-end":"right-start",N=k.useMemo((()=>{if(null!=m){const e=m.filter((e=>f.indexOf(e)<0)),t=undefined;return[...[...f].sort(((e,t)=>e.localeCompare(t))),...e]}return[]}),[f,m]),O=k.useMemo((()=>N),[A,m]);return t(n,{children:[e(F,{content:"Configure Columns",placement:"top",children:e(W,{"data-testid":"scene-tree-column-popover-button",ref:C,iconName:"columns-add",iconSize:"sm",onClick:()=>{A?E():(M(),i.openSceneTreePopover(S))}})}),A&&e(ne,{"data-testid":"scene-tree-column-popover",open:A,backdrop:!1,position:T,resizeBehavior:"fixed",placement:I,className:"z-popover",children:t("div",{className:_a("flex flex-col bg-white border border-neutral-300 rounded",{hidden:!A}),children:[t("div",{className:"flex items-center text-[0.875rem] p-3",children:[t("div",{className:"pr-2",children:[e("div",{className:"text-[0.875rem]",children:"Assembly Properties"}),e("div",{className:"text-[0.75rem] text-neutral-700 mt-1.5",children:"Select up to six properties to appear in the Assembly panel."})]}),e(W,{"data-testid":"scene-tree-columns-popover-close-button",className:"ml-auto",iconName:"close",iconSize:"sm",onClick:()=>{b(""),E()}})]}),e(ae,{className:"flex w-full px-2 overflow-hidden border-b border-neutral-300 pb-2",id:"scene-tree-available-columns-search-bar","data-testid":"scene-tree-available-columns-search-bar",multiline:!1,placeholder:"Filter properties",type:"text",onInputInput:e=>{const t=e.detail.value;null!=t&&b(t.toLowerCase())}}),h&&e(ue,{"data-testid":"partial-key-list-notification-banner",message:"loading"===u.state?"Refreshing results...":"Data loading, refresh for more.",actionLabel:"Refresh",onAction:()=>o.refreshKeyList()}),t("div",{className:"max-h-64 p-3 overflow-y-auto",children:[e(VertexSceneTreeMetadataCheck,{checked:!0,disabled:!0,children:Ii.label}),O.filter((e=>""===v||e.toLowerCase().includes(v))).map((t=>e(VertexSceneTreeMetadataCheck,{checked:f.includes(t),disabled:f.length>=6&&!f.includes(t),onChange:e=>{g(e?[...f,t]:f.filter((e=>e!==t)))},children:t},t)))]}),t("div",{className:"flex items-center p-3 border-t border-neutral-300 space-x-4",children:[e("div",{className:"text-[0.75rem] text-[var(--vertex-ui-blue-700)] cursor-pointer","data-testid":"scene-tree-column-clear-selection",onClick:()=>g([]),children:"Clear selection"}),e("div",{className:"flex-grow"}),t("div",{className:"flex space-x-2",children:[e(G,{"data-testid":"scene-tree-column-popover-cancel",color:"secondary",onClick:()=>{b(""),E()},children:"Cancel"}),e(G,{"data-testid":"scene-tree-column-popover-apply",color:"primary",onClick:async()=>{await r.updateMetadataSearchAfterColumnVisibilityChange(p,f,c),await o.setActive(f),a?.(f),b(""),E()},children:"Apply"})]})]})]})})]})};function VertexToolbarDivider(){return e("div",{"data-testid":"toolbar-divider",className:"h-6 w-px bg-neutral-300 mx-1"})}const VertexSceneTreeSearchInformationForToolbar=()=>{const a=useSelectionActions(),i=s(Dn),o=s(Ui),r=s($i),l=undefined,c=`${r} ${1===r?"result":"results"}`;return t(n,{children:[e(VertexToolbarDivider,{}),t("div",{className:"flex flex-row items-center overflow-hidden",children:[e("div",{className:"px-2 text-[0.8125rem] leading-4 text-neutral-900 truncate","data-testid":"search-result-info",children:`${c}`}),e(F,{className:"w-auto",content:"Select Results",placement:"top",children:e(G,{className:"h-6 rounded cursor-pointer","data-testid":"select-search-results-button",color:"secondary",variant:"text",size:"sm",onClick:async()=>{null!=i&&null!=o&&(await i.selectFilteredItems(o),a.toggleLastSelectWasMultiSelect(!0))},children:t("div",{className:"flex h-6 items-center gap-1",children:[e($,{size:"sm",name:"check-circle"}),e("span",{className:"whitespace-nowrap",children:"Select Results"})]})})})]})]})},VertexSceneTreeCollapseAll=()=>{const t=s(Dn);return e(F,{className:"w-auto",content:"Collapse All",placement:"top",children:e($,{size:"sm",className:"h-6 w-6 hover:bg-neutral-300 rounded cursor-pointer","data-testid":"collapse-all-icon",name:"collapse-all",onClick:()=>{t?.collapseAll()}})})},VertexSceneTreeExpandAll=()=>{const t=s(Dn);return e(F,{className:"w-auto",content:"Expand All",placement:"top",children:e($,{size:"sm","data-testid":"expand-all-icon",className:"h-6 w-6 hover:bg-neutral-300 rounded cursor-pointer",name:"expand-all",onClick:()=>{t?.expandAll()}})})},VertexSceneTreeToolbar=({onVisibleSceneTreeColumnsChange:n})=>{const a=s(Ui),i=null==a||""===a;return e(de,{className:"h-10 border-b border-neutral-300 box-border",children:t("div",{className:"flex w-full text-neutral-700 items-center gap mx-2",children:[e(VertexSceneTreeExpandAll,{}),e(VertexSceneTreeCollapseAll,{}),!i&&e(VertexSceneTreeSearchInformationForToolbar,{}),e("div",{className:"ml-auto",children:e(VertexSceneTreeColumnPopover,{onVisibleSceneTreeColumnsChange:n})})]})})},VertexSceneTreeHeader=({onEnterSearchMode:a,onExitSearchMode:i,onSearch:o,onClearSearch:r,onVisibleSceneTreeColumnsChange:s,children:l})=>{const c=undefined;return e("div",{slot:"header",className:"flex flex-col",children:null!=l&&!1!==l?l:t(n,{children:[e(VertexSceneTreeSearch,{onEnterSearchMode:a,onExitSearchMode:i,onSearch:o,onClearSearch:r,children:e("div",{slot:"clear-icon"})}),e(VertexSceneTreeToolbar,{onVisibleSceneTreeColumnsChange:s})]})})};function useMetadataActions(){const e=useActionCallback((({snapshot:e,set:t})=>async n=>{const a=undefined;if(await e.getPromise(bi(n)))return;t(bi(n),!0);const i=await e.getPromise(fi(n));if(null!=i?.metadata){const e=[...i.metadata];t(gi(n),(t=>[...t,...e]))}const o=i?.cursor;t(yi(n),o),t(bi(n),!1)}));return{fetchInitialMetadata:useActionCallback((({snapshot:t})=>async n=>{const a=undefined;0===(await t.getPromise(gi(n))).length&&await e(n)})),fetchNextMetadata:useActionCallback((()=>async t=>{await e(t)}))}}var to={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function defineProperties(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,t,n){return t&&defineProperties(e.prototype,t),n&&defineProperties(e,n),e}}(),a=A,i=_interopRequireDefault(a),o,r=_interopRequireDefault(Ce);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(e){function InfiniteScroll(e){_classCallCheck(this,InfiniteScroll);var t=_possibleConstructorReturn(this,(InfiniteScroll.__proto__||Object.getPrototypeOf(InfiniteScroll)).call(this,e));return t.scrollListener=t.scrollListener.bind(t),t.eventListenerOptions=t.eventListenerOptions.bind(t),t.mousewheelListener=t.mousewheelListener.bind(t),t}return _inherits(InfiniteScroll,e),n(InfiniteScroll,[{key:"componentDidMount",value:function componentDidMount(){this.pageLoaded=this.props.pageStart,this.options=this.eventListenerOptions(),this.attachScrollListener()}},{key:"componentDidUpdate",value:function componentDidUpdate(){if(this.props.isReverse&&this.loadMore){var e=this.getParentElement(this.scrollComponent);e.scrollTop=e.scrollHeight-this.beforeScrollHeight+this.beforeScrollTop,this.loadMore=!1}this.attachScrollListener()}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.detachScrollListener(),this.detachMousewheelListener()}},{key:"isPassiveSupported",value:function isPassiveSupported(){var e=!1,t={get passive(){e=!0}};try{document.addEventListener("test",null,t),document.removeEventListener("test",null,t)}catch(e){}return e}},{key:"eventListenerOptions",value:function eventListenerOptions(){var e=this.props.useCapture;return e=this.isPassiveSupported()?{useCapture:this.props.useCapture,passive:!0}:{passive:!1}}},{key:"setDefaultLoader",value:function setDefaultLoader(e){this.defaultLoader=e}},{key:"detachMousewheelListener",value:function detachMousewheelListener(){var e=window;!1===this.props.useWindow&&(e=this.scrollComponent.parentNode),e.removeEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture)}},{key:"detachScrollListener",value:function detachScrollListener(){var e=window;!1===this.props.useWindow&&(e=this.getParentElement(this.scrollComponent)),e.removeEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),e.removeEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture)}},{key:"getParentElement",value:function getParentElement(e){var t=this.props.getScrollParent&&this.props.getScrollParent();return null!=t?t:e&&e.parentNode}},{key:"filterProps",value:function filterProps(e){return e}},{key:"attachScrollListener",value:function attachScrollListener(){var e=this.getParentElement(this.scrollComponent);if(this.props.hasMore&&e){var t=window;!1===this.props.useWindow&&(t=e),t.addEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture),t.addEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),t.addEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture),this.props.initialLoad&&this.scrollListener()}}},{key:"mousewheelListener",value:function mousewheelListener(e){1!==e.deltaY||this.isPassiveSupported()||e.preventDefault()}},{key:"scrollListener",value:function scrollListener(){var e=this.scrollComponent,t=window,n=this.getParentElement(e),a=void 0;if(this.props.useWindow){var i=document.documentElement||document.body.parentNode||document.body,o=void 0!==t.pageYOffset?t.pageYOffset:i.scrollTop;a=this.props.isReverse?o:this.calculateOffset(e,o)}else a=this.props.isReverse?n.scrollTop:e.scrollHeight-n.scrollTop-n.clientHeight;a<Number(this.props.threshold)&&e&&null!==e.offsetParent&&(this.detachScrollListener(),this.beforeScrollHeight=n.scrollHeight,this.beforeScrollTop=n.scrollTop,"function"==typeof this.props.loadMore&&(this.props.loadMore(this.pageLoaded+=1),this.loadMore=!0))}},{key:"calculateOffset",value:function calculateOffset(e,t){return e?this.calculateTopPosition(e)+(e.offsetHeight-t-window.innerHeight):0}},{key:"calculateTopPosition",value:function calculateTopPosition(e){return e?e.offsetTop+this.calculateTopPosition(e.offsetParent):0}},{key:"render",value:function render(){var e=this,t=this.filterProps(this.props),n=t.children,a=t.element,o=t.hasMore;t.initialLoad;var r=t.isReverse,s=t.loader;t.loadMore,t.pageStart;var l=t.ref;t.threshold,t.useCapture,t.useWindow,t.getScrollParent;var c=_objectWithoutProperties(t,["children","element","hasMore","initialLoad","isReverse","loader","loadMore","pageStart","ref","threshold","useCapture","useWindow","getScrollParent"]);c.ref=function(t){e.scrollComponent=t,l&&l(t)};var d=[n];return o&&(s?r?d.unshift(s):d.push(s):this.defaultLoader&&(r?d.unshift(this.defaultLoader):d.push(this.defaultLoader))),i.default.createElement(a,c,d)}}]),InfiniteScroll}(a.Component);s.propTypes={children:r.default.node.isRequired,element:r.default.node,hasMore:r.default.bool,initialLoad:r.default.bool,isReverse:r.default.bool,loader:r.default.node,loadMore:r.default.func.isRequired,pageStart:r.default.number,ref:r.default.func,getScrollParent:r.default.func,threshold:r.default.number,useCapture:r.default.bool,useWindow:r.default.bool},s.defaultProps={element:"div",hasMore:!1,initialLoad:!0,pageStart:0,ref:null,threshold:250,useWindow:!0,isReverse:!1,useCapture:!1,loader:null,getScrollParent:null},t.default=s,e.exports=t.default}(to,to.exports);var no=to.exports;const CopyButton=({id:t,textToCopy:n,iconSize:a,disableTooltip:i,onCopyValue:o})=>{const[r,s]=A.useState(!1),l=undefined,c=useDebouncedCallback((()=>{s(!1)}),2e3);return e(F,{className:"h-fit self-center z-[16000]",content:r?"Copied to Clipboard":"Copy",placement:"bottom",disabled:i,children:e("div",{className:_a({"text-green-700":r}),children:e(W,{className:"ml-auto","data-testid":`${t}-copy-button`,iconName:r?"check":"copy",iconSize:a??"xs",onClick:e=>{e.stopPropagation(),e.preventDefault(),null!=n&&(navigator.clipboard.writeText(n),o?.(n)),s(!0),c(!0)},style:{"--hover-box-shadow":"none"}})})})};function MetadataPropertyValue({value:n,onCopyMetadataValue:a}){const[i,o]=A.useState(!1),r=""!==n.replace(/^\s*$/,"").trim();return r?t("div",{className:"flex w-full border-b border-neutral-300 pl-1 pr-3","data-testid":`${n}-metadata-property`,onMouseEnter:()=>{o(!0)},onMouseLeave:()=>o(!1),children:[e(F,{className:"w-full shrink truncate pr-2 py-1.5",content:n,placement:"bottom-start",children:e("div",{className:"truncate",children:n})}),i&&e(CopyButton,{id:n,textToCopy:n,onCopyValue:a})]}):e("div",{className:_a("overflow-visible border-b border-neutral-300 pl-1 pr-4 py-1.5",{"text-neutral-500":!r}),children:"--"})}const MetadataPanelContents=({sceneItemId:a,onCopyMetadataValue:i})=>{const o=useMetadataActions(),r=m(wi),l=s(gi(a)),c=s(vi(a)),d=s(bi(a)),u=l?.length>0;function getMessage(){if(!d&&0===l?.length&&"hasValue"===r.state)return"This part does not contain properties"}return A.useEffect((()=>{null!=a&&o.fetchInitialMetadata(a)}),[a]),t(n,{children:[e(no,{initialLoad:!1,hasMore:c,loadMore:async()=>{c&&await o.fetchNextMetadata(a)},useWindow:!1,children:t("div",{className:"flex w-full text-xs leading-5 grow-0",children:[e(X,{className:"w-1/2 min-w-24 max-w-full shrink-0",horizontalDirection:"right",verticalDirection:"none",initialHorizontalScale:.5,parentSelector:"#metadata-panel-wrapper",horizontalSiblingSelector:"#metadata-value-column",children:e("div",{className:"flex flex-col w-full overflow-hidden whitespace-nowrap",children:l.map(((t,n)=>e(F,{className:"border-b border-neutral-300 pl-4 pr-1 py-1.5",content:t.key,placement:"bottom-start",children:e("div",{className:"truncate",children:t.key})},n)))})}),e("div",{id:"metadata-value-column",className:"flex flex-col w-full min-w-24",children:l.map(((t,n)=>e(MetadataPropertyValue,{value:t.value,onCopyMetadataValue:i},n)))})]})}),!u&&e("div",{className:"w-full h-full flex items-center justify-center px-4 text-center text-sm",children:getMessage()})]})},MetadataPanel=({onCopyMetadataValue:n})=>{const a=usePanelActions(),i=s($t),o=m(wi);return t("div",{id:"metadata-panel-wrapper","data-testid":"metadata-panel-wrapper",className:"w-full h-full flex flex-col mt-auto text-neutral-800",children:[t("div",{className:"flex h-10 border-b border-neutral-300 p-3 pl-4 text-[0.875rem] items-center",children:["hasValue"===o.state&&e("span",{className:"flex flex-col w-full",children:e(F,{content:o.contents,children:e("div",{className:"truncate",children:o.contents||""})})}),"loading"===o.state&&e("div",{className:"flex items-center w-full h-full",children:e("div",{className:"w-1/2 h-1/2 bg-neutral-300 animate-pulse rounded"})}),e($,{className:"ml-auto cursor-pointer",onClick:a.closeSecondary,name:"close",size:"sm"})]}),t("div",{className:"w-full h-full overflow-y-auto overflow-x-hidden",children:[null!=i&&e(MetadataPanelContents,{sceneItemId:i.id,onCopyMetadataValue:n}),null==i&&e("div",{className:"w-full h-full flex items-center justify-center px-4 text-center text-sm",children:"Please select a single part or assembly to view its metadata"})]})]})},SceneTreeSecondaryPanel=({panelId:t,onCopyMetadataValue:n})=>e(X,{"data-testid":"scene-tree-secondary-panel",className:"min-h-20 max-h-full flex-shrink-0 border-t border-neutral-300",horizontalDirection:"none",verticalDirection:"top",initializeWithOffset:!0,initialVerticalScale:.6,parentSelector:`#${t}`,verticalSiblingSelector:"#scene-tree-container",children:e(MetadataPanel,{onCopyMetadataValue:n})}),VertexSceneTreeCustomColumn=({label:n,rowDataBinding:a,expandToggle:i,visibilityToggle:o,isolateButton:r,modelViewsButton:l,initialWidth:c,minWidth:d})=>{const u=s(Dn);return A.useEffect((()=>{u?.invalidateRows()}),[a]),t(me,{"data-testid":`scene-tree-table-column-${n}`,initialWidth:c,minWidth:d,children:[e("template",{slot:"header",dangerouslySetInnerHTML:{__html:`\n <div class="text-sm text-neutral-800 my-2">\n <div class="${_a("truncate",{"pl-2":i,"pr-2":o})}">\n ${n}\n </div>\n </div>\n `}}),e("template",{dangerouslySetInnerHTML:{__html:`\n <vertex-scene-tree-table-cell\n prop:value="${a}"\n prop:selection-handler="{{row.data.handleSelection}}"\n prop:expansion-handler="{{row.data.handleExpansion}}"\n prop:visibility-handler="{{row.data.handleVisibility}}"\n ${i?"expand-toggle":""}\n ${o?"visibility-toggle":""}\n ${r?"isolate-button":""}\n >\n <div class="flex items-center gap-2">\n <vertex-tooltip \n class="truncate" \n prop:content="${null!=a?a:"--"}" \n placement="${o?"right":"top"}">\n <div class="flex items-center w-full">\n <div class="truncate">${a}</div>\n </div>\n </vertex-tooltip>\n\n ${l?'<div attr:style={{row.data.modelViewIndicatorStyle}}> \n <vertex-tooltip class="block w-full truncate" content="Listing Model Views" placement="bottom">\n <vertex-icon-button\n class="ml-auto mr-0.5 text-neutral-800"\n event:pointerup="{{row.data.handleShowModelViews}}"\n icon-name="views"\n icon-size="sm"\n variant="plain"\n >\n </vertex-icon-button>\n </vertex-tooltip>\n </div>':""}\n </div>\n\n <div slot="placeholder" class="flex items-center w-full truncate">\n <div> -- </div>\n </div>\n </vertex-scene-tree-table-cell>\n `}})]},n)},VertexSceneTreeMetadataColumns=({children:t})=>{const a=s(Ri),i=s(Di),o=[],r=i.filter((e=>e!==Ii.label)).map((e=>a[e]));return e(n,null!=t?{children:t({columns:r.map((e=>({key:e.label,initialWidth:e.initialWidth,minWidth:e.minWidth})))})}:{children:r.map(((t,n)=>{const a=o[n]??t.initialWidth;return e(VertexSceneTreeCustomColumn,{label:t.label,visibilityToggle:n===r.length-1,isolateButton:n===r.length-1,rowDataBinding:t.binding,initialWidth:a,minWidth:t.minWidth},t.label)}))})},VertexSceneTreeTableLayout=n=>{const{children:a,...i}=n,o=s(Ri),r=s(Di),l=A.useMemo((()=>findChildElement(a,NameColumn)),[a]),c=A.useMemo((()=>findChildElement(a,MetadataColumns)),[a]),d=o[Ii.label]??Ii,u=r.filter((e=>e!==Ii.label)).map((e=>o[e]));return t(pe,{"data-testid":"scene-tree-table-layout",...i,children:[l?cloneChildNodeOrFunction(l.props.children,{columnCount:r.length,initialWidth:d.initialWidth,minWidth:d.minWidth}):e(VertexSceneTreeCustomColumn,{expandToggle:!0,visibilityToggle:1===r.length,isolateButton:1===r.length,rowDataBinding:d.binding,label:d.label,initialWidth:d.initialWidth,minWidth:d.minWidth}),null!=c?cloneChildNodeOrFunction(c.props.children,{columns:u.map((e=>({key:e.label,initialWidth:e.initialWidth,minWidth:e.minWidth})))}):e(VertexSceneTreeMetadataColumns,{})]})},NameColumn=({children:t})=>e(n,{children:t}),MetadataColumns=({children:t})=>e(n,{children:t});VertexSceneTreeTableLayout.NameColumn=NameColumn,VertexSceneTreeTableLayout.MetadataColumns=MetadataColumns;const VertexSceneTree=({id:n,font:a,backgroundColors:i,additionalLoadedMetadataProperties:o,whitelistedMetadataProperties:r,allowViewingMetadataPropertiesPanel:l,children:d,style:u,onPointerDown:m,onClick:p,onToggleSelection:h,onToggleExpansion:f,onToggleVisibility:g,onCopyMetadataValue:v,className:b,rowData:w,...C})=>{const S=usePanelActions(),k=useSceneTreeActions(),T=useSelectionActions(),P=s(Mi),M=s(et),E=s(mi),I=s(Qi),N=s(qi),O=s(Gi),V=s(Ki),L=s(Ui),_=null==L||""===L,R=useRecoilRef({state:Dn}),D=A.useMemo((()=>findChildElement(d,Header)),[d]),B=A.useMemo((()=>findChildElement(d,TableLayout)),[d]),H=A.useMemo((()=>findChildElement(d,ContextMenu)),[d]),wrappedExpansionHandler=(e,t,n)=>{k.toggleExpansion(e,t,n),f?.(e,t,n)},wrappedSelectionHandler=(e,t,n)=>{k.toggleSelection(e,t,n),h?.(e,t,n)},wrappedVisibilityHandler=(e,t,n)=>{k.toggleVisibility(e,t,n),g?.(e,t,n)},handleClick=async e=>{e.altKey&&await k.flyToRow(e.clientY),p?.(e)},handlePointerDown=async e=>{targetIsElement(e.target,"VERTEX-SCENE-TREE-TABLE-COLUMN")&&await T.clearSelection(),m?.(e)},j=c(zn),handleFirstRowRendered=e=>{j(e.target.controller),C?.onFirstRowRendered?.(e)},F=A.useMemo((()=>({metadataSearchKeys:N,exactMatch:O,removeHiddenItems:V})),[N,O,V]);useStateSyncedValue(Oi,r,{transform:e=>e.sort(((e,t)=>e.localeCompare(t)))}),useStateSyncedValue(hi,l),useStateSyncedValue(Ji,o);const W=s(sn),U=A.useCallback((e=>{e.preventDefault(),e.stopPropagation(),S.openPrimary("model-views","right")}),[S]);return t("div",{id:"scene-tree-panel",className:"flex flex-col w-full h-full grow-0",children:[e("div",{id:"scene-tree-container",className:"flex group h-full min-h-32 overflow-auto",children:t(he,{id:n??"vertex-scene-tree","data-testid":"vertex-scene-tree",config:P,ref:R,className:_a("flex-1",{filtered:!_}),style:{...styleFromOptionalFont(a),...styleFromOptionalBackgroundColors(i),...u},onConnectionError:e=>{logger_error("Scene Tree Connection Error: ",e.detail)},viewer:M,onPointerDown:handlePointerDown,onClick:handleClick,rowData:e=>{const t=w?.(e)??{};return{handleExpansion:wrappedExpansionHandler,handleSelection:wrappedSelectionHandler,handleVisibility:wrappedVisibilityHandler,handleShowModelViews:U,modelViewIndicatorStyle:e?.node.id?.hex===W?.id?"display: flex;":"display: none;",...t}},searchOptions:F,metadataKeys:I,...C,onFirstRowRendered:handleFirstRowRendered,children:[D??e(VertexSceneTreeHeader,{}),B??e(VertexSceneTreeTableLayout,{}),H??e(VertexSceneTreeContextMenu,{})]})}),void 0!==E&&e(SceneTreeSecondaryPanel,{panelId:"scene-tree-panel",onCopyMetadataValue:v})]})},Header=({children:t})=>e(n,{children:t}),TableLayout=({children:t})=>e(n,{children:t}),ContextMenu=({children:t})=>e(n,{children:t});VertexSceneTree.Header=Header,VertexSceneTree.TableLayout=TableLayout,VertexSceneTree.ContextMenu=ContextMenu;const VertexDecimalPlaceSelector=({onApply:n})=>{const[a,i]=h(Gn);return t(ie,{"data-testid":"decimal-place-select",className:"w-24",value:a,onOptionChanged:e=>{i(e.detail),n?.(e.detail)},children:[e("div",{className:"py-1.5 px-3",children:"0"}),e("div",{className:"py-1.5 px-3",children:"1"}),e("div",{className:"py-1.5 px-3",children:"2"}),e("div",{className:"py-1.5 px-3",children:"3"})]})},VertexLengthUnitSelector=({onApply:n})=>{const[a,i]=h(Un);return t(ie,{"data-testid":"length-unit-select",className:"w-40",value:a,onOptionChanged:e=>{i(e.detail),n?.(e.detail)},children:[e("div",{"data-value":"cm",className:"py-1.5 px-3",children:"centimeters"}),e("div",{"data-value":"mm",className:"py-1.5 px-3",children:"millimeters"}),e("div",{"data-value":"m",className:"py-1.5 px-3",children:"meters"}),e("div",{"data-value":"in",className:"py-1.5 px-3",children:"inches"}),e("div",{"data-value":"ft",className:"py-1.5 px-3",children:"feet"})]})};function VertexUnitsControls({onUnitChange:a,onDecimalPlaceChange:i}){return t(n,{children:[t("div",{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Length Unit"}),e(VertexLengthUnitSelector,{onApply:a})]}),t("div",{children:[e("div",{className:"pt-2 pb-2 text-sm text-neutral-700",children:"Decimals"}),e(VertexDecimalPlaceSelector,{onApply:i})]})]})}function VertexUnitsPanelSection({onUnitChange:t,onDecimalPlaceChange:n}){return e(PanelSection,{header:e("div",{className:"flex items-center text-base",children:"Units"}),children:e(VertexUnitsControls,{onUnitChange:t,onDecimalPlaceChange:n})})}function FileWithMagnifyingGlassImage(){return e("div",{children:t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"160",height:"160",viewBox:"0 0 220 220",children:[e("path",{fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":".75",d:"M38.84 186.31h143.29m-155.07 5.14h176.49M1 196.58h218m-205.11 5.14h185.22m-162.74 5.13h141.84"}),e("path",{fill:"#f7fcfd",d:"m150.94 50.25 20.43 19.51a3.42 3.42 0 0 1 1 2.46v121.2a5.23 5.23 0 0 1-5.23 5.23H52.78a5.23 5.23 0 0 1-5.23-5.23V54.56a5.24 5.24 0 0 1 5.23-5.24h95.81a3.44 3.44 0 0 1 2.35.93"}),e("path",{fill:"none",stroke:"#006bad","stroke-dasharray":"3 3","stroke-linecap":"round","stroke-linejoin":"round",d:"m150.94 50.25 20.43 19.51a3.42 3.42 0 0 1 1 2.46v121.2a5.23 5.23 0 0 1-5.23 5.23H52.78a5.23 5.23 0 0 1-5.23-5.23V54.56a5.24 5.24 0 0 1 5.23-5.24h95.81a3.44 3.44 0 0 1 2.35.93"}),e("path",{d:"M79.12 123.99H110v30.88H79.12z",fill:"#e0f3f9"}),e("path",{d:"M110 153.37v1.5h-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M105.4 154.87H82.17",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M80.62 154.87h-1.5v-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M79.12 150.27v-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M79.12 125.49v-1.5h1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M83.72 123.99h23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M108.5 123.99h1.5v1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M110 128.59v23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 123.99h30.88v30.88H110z",fill:"#e0f3f9"}),e("path",{d:"M140.88 153.37v1.5h-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M136.28 154.87h-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M111.5 154.87H110v-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M110 150.27v-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 125.49v-1.5h1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M114.6 123.99h23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M139.38 123.99h1.5v1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M140.88 128.59v23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 93.11h30.88v30.88H110z",fill:"#e0f3f9"}),e("path",{d:"M140.88 122.49v1.5h-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M136.28 123.99h-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M111.5 123.99H110v-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M110 119.39V96.15",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 94.61v-1.5h1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M114.6 93.11h23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M139.38 93.11h1.5v1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M140.88 97.7v23.24",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M150.91 50.28a3.6 3.6 0 0 1 .86 1.22",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{fill:"none",stroke:"#006bad","stroke-dasharray":"2.87 2.87","stroke-linecap":"round","stroke-linejoin":"round",d:"M152.05 54.34v9.14a5.24 5.24 0 0 0 5.24 5.23h9.94"}),e("path",{d:"M168.67 68.71h.2a3.5 3.5 0 0 1 1.27.23M19.8 78.25l1.93 14.68-14.67 1.93",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M21.73 92.93S-2.15 82.45 4.05 54.82",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{fill:"none",stroke:"#b43296","stroke-linecap":"round","stroke-linejoin":"round",d:"M14.89 132.63h5.88v5.88h-5.88z"}),e("path",{fill:"none",stroke:"#f90","stroke-linecap":"round","stroke-linejoin":"round",d:"M174.49 36v5.88m-2.94-2.94h5.88"}),e("circle",{cx:"199.1",cy:"164.76",r:"2.45",fill:"none",stroke:"#0c0","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M109.68 25.74V11.9M87.12 29.74l-6.02-9.4m53.21 9.4 6.01-9.4",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{fill:"#eff9fc",stroke:"#006bad","stroke-linejoin":"round",d:"m140.43 139.69 7.22 5.8-8.28 10.31-7.22-5.8"}),e("circle",{cx:"110.2",cy:"124.35",r:"27.74",fill:"#e0f3f9",opacity:".7"}),e("path",{fill:"#fff",stroke:"#006bad","stroke-linejoin":"round",d:"M131.2 98.19a33.55 33.55 0 1 0 5.16 47.16 33.56 33.56 0 0 0-5.16-47.16Zm.63 43.52a27.73 27.73 0 1 1-4.26-39 27.73 27.73 0 0 1 4.26 39ZM187 173.84a29.8 29.8 0 0 1-4.19 7.52 29.3 29.3 0 0 1-7.24 6.71l-37.77-30.31a29.3 29.3 0 0 1 5-8.56 29.6 29.6 0 0 1 6.4-5.67Z"}),e("path",{fill:"none",stroke:"#fff","stroke-linecap":"round","stroke-miterlimit":"10",d:"m118.82 138.09 12.51-15.58m-38.56-3.68 6.94-8.65m-5.32 1.9 6.95-8.66m16.23 42.44 12.5-15.58"}),e("path",{fill:"#fff",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round",d:"M139.92 153.31a28.4 28.4 0 0 0-2.12 4.45m7.07-.49a38 38 0 0 0-2.35 4.28m7.3-.32c-.93 1.34-1.79 2.72-2.58 4.11m7.53-.15q-1.47 2-2.81 3.94m7.75.01-3 3.78m7.95.18c-1.07 1.24-2.16 2.45-3.26 3.61m8.21.35a54 54 0 0 1-3.49 3.44m8.44.5a37 37 0 0 1-3.72 3.26m8.67.74a29 29 0 0 1-3.95 3.09"}),e("path",{d:"m196.69 115.8-2.18 14.64 14.64 2.18",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M194.51 130.44s23.76-12 21.9-35.66",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"})]})})}function ModelViewsEmptyState({itemSelected:n}){const a=n?"There are no model views associated with this part.":"Select a part to access model views.";return t("div",{"data-testid":"pmi-views-empty-state",className:"h-full w-full px-4 flex flex-col gap-2 justify-center items-center overflow-y-auto",children:[e(FileWithMagnifyingGlassImage,{}),e("div",{className:"text-base text-neutral-700 text-center px-3 pt-2.5 pb-1.5",children:"No Model Views"}),e("div",{className:"text-[0.8125rem] text-neutral-600 text-center px-3 pb-2.5",children:a})]})}const VertexModelViewsViewRow=({view:n,currentlyViewing:a,itemId:i,onLoadModelView:o,onClearModelView:r})=>{const s=useModelViewActions();return e("div",{"data-testid":`model-view-${n.id}`,onClick:async()=>{a?(await s.clearModelView(),r?.()):(await s.loadModelView(i,n),o?.(i,n.id))},className:_a("flex flex-col w-full h-8 p-1 pl-4 cursor-pointer text-neutral-700 text-[0.8125rem] hover:text-[var(--vertex-ui-blue-600)]",{"bg-[var(--vertex-ui-blue-200)]":a,"hover:bg-[var(--vertex-ui-blue-100)]":!a}),children:t("div",{className:_a("flex w-full h-full items-center",{"text-neutral-900 font-extrabold":a}),children:[t(F,{className:"flex w-20 grow","data-testid":`model-view-${n.id}-tooltip`,placement:"bottom-start",content:n.displayName,children:[e($,{name:"views",size:"sm"}),e("div",{className:"truncate mx-2",children:n.displayName}),e("span",{className:"font-normal text-neutral-700 ml-auto pr-1",children:a&&"(Viewing)"})]}),a&&e("div",{className:"ml-auto pr-1",children:e(W,{"data-testid":"model-views-clear-selection",iconSize:"sm",iconName:"close",onClick:async()=>await s.clearModelView()})})]})},n.id)};function VertexModelViewsList({itemId:n,onLoadModelView:a,onClearModelView:i}){const o=useModelViewActions(),r=s(Ca),l=s(xa(n)),c=s(ka(n)),d=m(wa),u=0===l.length;return t("div",{className:"w-full h-full flex flex-col",children:[("hasValue"!==d.state||null!=d.contents)&&t("div",{className:"flex flex-row h-11 w-full border-b border-neutral-300 p-3 pl-4 mr-2 text-sm items-center",children:["hasValue"===d.state&&e("div",{className:"truncate items-center",children:e(F,{content:d.contents,children:e("div",{className:"truncate",children:d.contents||""})})}),"loading"===d.state&&e("div",{className:"flex items-center h-11 w-full",children:e("div",{className:"w-3/4 h-3 bg-neutral-300 animate-pulse rounded"})})]}),u&&e(ModelViewsEmptyState,{itemSelected:!0}),!u&&e("div",{className:"h-full overflow-y-auto",children:e(no,{hasMore:c,loadMore:()=>{o.fetchNextModelViews(n)},useWindow:!1,children:l.map((t=>{const o=r?.modelView?.id.toString(),s=undefined;return e(VertexModelViewsViewRow,{view:t,currentlyViewing:o===t?.id,itemId:n,onLoadModelView:a,onClearModelView:i},t.id)}))})})]})}const VertexPMIAnnotationRow=({annotation:n,checked:a,onCheckedChange:i,selected:o,onSelectedChange:r})=>t("div",{id:`annotation-entry-${n.id}`,"data-testid":`annotation-entry-${n.displayName}`,className:_a("flex items-center w-full h-7 gap-2.5 pl-4 pr-2 cursor-default hover:text-[var(--vertex-ui-blue-600)]",{"bg-[var(--vertex-ui-blue-200)]":o,"hover:bg-[var(--vertex-ui-blue-100)]":!o}),onClick:()=>r(!o),children:[e(j,{"data-testid":`annotation-entry-${n.displayName}-check`,variant:"check",checked:a,onClick:e=>e.stopPropagation(),onValueChanged:e=>{i(e.detail)}}),e("div",{className:"w-1/2 flex-grow",children:e(F,{content:n.displayName,placement:"bottom-start",children:e("div",{className:"truncate",children:n.displayName})})})]}),VertexPMIAnnotationsSecondaryPanel=({modelViewId:n,parentPanelId:a,verticalSiblingId:i,sceneAnnotationOperations:o,onToggleSelectionOfPMIAnnotation:r,onToggleVisibilityOfPMIAnnotation:l})=>{const c=usePmiAnnotationActions(),d=s(et),u=s(Ta(n)),m=s(Pa(n)),p=s(Ma),[f,g]=h(ba(n)),[v,b]=k.useState("");k.useEffect((()=>{n!==v&&(g(u),b(n))}),[u,v,n,g,b]);const toggleVisibilityOfAllAnnotations=e=>{e?(g(u),o?.sceneAnnotationsOperation((e=>e.show()),d)):(g([]),o?.sceneAnnotationsOperation((e=>e.hide()),d))};return e(X,{"data-testid":"pmi-annotation-secondary-panel",className:"min-h-28 max-h-3/4 flex-shrink-0 border-t text-sm text-neutral-700",horizontalDirection:"none",verticalDirection:"top",initializeWithOffset:!0,initialVerticalScale:.6,parentSelector:`#${a}`,verticalSiblingSelector:`#${i}`,children:t("div",{className:"flex flex-col h-full overflow-hidden",children:[e("div",{className:"flex items-center w-full h-9 border-b border-[var(--vertex-ui-neutral-300)] px-4 shrink-0",children:"3D PMI"}),t("div",{"data-testid":"display-all-annotations",className:"flex items-center w-full h-8 gap-2.5 px-4 py-1.5 cursor-default border-b border-[var(--vertex-ui-neutral-300)]",onClick:()=>{const e=u.length!==f.length;toggleVisibilityOfAllAnnotations(e)},children:[e(j,{"data-testid":"display-all-annotations-check",variant:"check",checked:u.length===f.length,onClick:e=>e.stopPropagation(),onValueChanged:e=>{toggleVisibilityOfAllAnnotations(e.detail)}}),"Display All"]}),e("div",{className:"h-full overflow-y-auto text-[0.8125rem] py-1",children:e(no,{hasMore:m,loadMore:async()=>{m&&await c.fetchNextPmiAnnotations(n)},useWindow:!1,children:u.map(((t,a)=>e(VertexPMIAnnotationRow,{annotation:t,checked:f.includes(t),onCheckedChange:e=>{e?(g([...f,t]),o?.sceneAnnotationsOperation((e=>e.show()),d,[t.id])):(g(f.filter((e=>e!==t))),o?.sceneAnnotationsOperation((e=>e.hide()),d,[t.id])),l?.(n,t.id,e)},selected:t.id===p,onSelectedChange:async e=>{e?await c.selectPmiAnnotation(t.id,!1):await c.clearPmiAnnotationSelection(),r?.(n,t.id,e)}},a)))})})]})})},VertexModelViewsPanelSection=({onLoadModelView:n,onClearModelView:a,onToggleSelectionOfPMIAnnotation:i,onToggleVisibilityOfPMIAnnotation:o})=>{const r=useSceneAnnotationsOperations(),l=s(sn),c=null!=l?.id,d=s(Ca),u=d?.itemId===l?.id;return t("div",{id:"model-views-panel-wrapper",className:"w-full h-full flex flex-col text-neutral-800",children:[t("div",{"data-testid":"model-views-container",className:"group h-full flex overflow-auto min-h-29 relative",children:[c&&e(k.Suspense,{fallback:e(ModelViewsItemListLoading,{}),children:e(VertexModelViewsList,{itemId:l.id,onLoadModelView:n,onClearModelView:a})}),!c&&e(ModelViewsEmptyState,{itemSelected:!1})]}),null!=d&&u&&e(k.Suspense,{fallback:e(ModelViewsItemListLoading,{}),children:e(VertexPMIAnnotationsSecondaryPanel,{modelViewId:d.modelView.id,parentPanelId:"model-views-panel-wrapper",verticalSiblingId:"model-views-container",sceneAnnotationOperations:r,onToggleSelectionOfPMIAnnotation:i,onToggleVisibilityOfPMIAnnotation:o})})]})};function ModelViewsItemListLoading(){return t("div",{className:"flex flex-col w-full h-full items-center justify-center text-[0.8125rem] overflow-y-auto",children:[e(oe,{"data-testid":"model-views-panel-spinner",size:"lg",color:"grey"}),e("div",{className:"pt-3 px-10 text-center",children:"Loading model views for the selected part..."})]})}function VertexModelViewsPanel(){return e("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:e(VertexModelViewsPanelSection,{})})}function ColorSwatchContextMenu({onRemoveCustomColor:n}){const a=useContextMenuActions(),i=useSceneItemMaterialActions(),o=s(un);return e(VertexContextMenu,{menuType:"color-swatch",onOpen:e=>{elementIsColorSwatch(e.target)&&a.setContextMenuItem(e.target)},openPredicate:e=>elementIsColorSwatch(e.target)&&elementHasColorAttribute(e.target),disableBackdrop:!0,children:e(Y,{"data-testid":"color-swatch-delete",onClick:async()=>{if(contextMenuItemIsElement(o)&&elementIsColorSwatch(o)){const e=o?.getAttribute("data-color-id");null!=e&&"true"===o.getAttribute("data-custom-color")?(await i.removeCustomColor(e),n?.(e)):null!=e&&"true"===o.getAttribute("data-recent-color")&&await i.removeRecentColor(e)}},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"delete",size:"sm"}),"Delete"]})})})}function DefaultAppearancePanel(){return t("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:[e(VertexMaterialPanelSection,{}),e(VertexGhostingPanelSection,{}),e(VertexFeatureEdgesPanelSection,{}),e(VertexViewerBackgroundPanelSection,{}),e(VertexSelectionHighlightingPanelSection,{}),e(VertexCrossSectionAppearancePanelSection,{}),e(ColorSwatchContextMenu,{})]})}function DefaultSettingsPanel(){return e("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:e(VertexUnitsPanelSection,{})})}const VertexTransformClear=({onClear:n,onClearAll:a})=>{const i=useTransformActions(),o=useCacheableLoadable(rn),r=s(Qt),l=useCacheableLoadable(aa(r??"")),c=A.useMemo((()=>{const e=o.data?.some((e=>null!=e?.override?.transform)),t=null!=l.data;return e||t}),[o,l]);return e("div",{className:"ml-auto",children:t(ResetButton,{id:"transforms",tooltip:"Clear Transforms",children:[e("div",{className:"pt-1"}),e(Y,{"data-testid":"clear-selected-transforms",onClick:async()=>{await i.clearSelectedTransforms(),n?.()},disabled:!c,children:"Clear selected transforms"}),e(Y,{"data-testid":"clear-all-transforms",onClick:async()=>{await i.clearAllTransforms(),a?.()},children:"Clear all transforms"})]})})},VertexTransformNumericField=({bottomLabel:n,value:a,step:i,min:o,max:r,disabled:l,testId:c,onBlur:d,onInput:u,onChange:m})=>{const p=A.useRef(null),h=s(Gn),[f,g]=A.useState(!0);A.useEffect((()=>{const e=null!=p.current&&Number.isNaN(p.current.valueAsNumber),t=f||e;null!=p.current&&t?p.current.value=a?.toFixed(Number(h))??"":g(!0)}),[a]);const v=A.useCallback((e=>{g(!1),m?.(e)}),[g,m]),b=A.useCallback((e=>{g(!0),d?.(e),null!=p.current&&null!=a&&(p.current.value=a.toFixed(Number(h)))}),[d,a,g]);return t("div",{children:[e("div",{className:"truncate rounded-md w-full",children:e("input",{ref:p,className:"w-full truncate border border-neutral-400 rounded-md px-2 py-1.5 hover:border-neutral-500 focus:border-neutral-500 focus:outline-none",type:"number",step:i,min:o,max:r,"data-testid":c,disabled:l,defaultValue:Number.isNaN(a)?"":a?.toFixed(Number(h)),onBlur:b,onInput:u,onChange:v})}),null!=n&&e("div",{className:"flex justify-center items-center pointer-events-none text-neutral-500",children:e("span",{children:n})})]})},VertexTransformInputs=({onUpdateTransform:n})=>{const a=s(Un),i=s(Xt),o=s(Yt),r=i||o,l=s(Qt),{transform:c,error:d,update:u}=useEditItemTransform(l),m=r?void 0:c,p=useDebouncedCallback((async e=>{await u(e),n?.(e)}),50);function updateTransform(e){return t=>{if(null!=m){const n=parseFloat(t.currentTarget.value);Number.isNaN(n)||p?.({...m,...e(n,m)})}}}function updatePosition(e){return updateTransform(((t,n)=>({position:{...n.position,...e(t)}})))}function updateRotation(e){return updateTransform(((t,n)=>({rotation:{...n.rotation,...e(t)}})))}function updateScale(){return updateTransform((e=>e>0?{scale:e}:{}))}function updateToDefaultValueIfInvalid(e,t){return n=>{const a=parseFloat(n.currentTarget.value),i=undefined;(isNaN(a)||!!t?.(a))&&null!=m&&p(Ee.defaults(e,m))}}return t("div",{children:[t("div",{className:"mb-2 text-[0.8125rem]",children:[e("span",{className:"flex w-full items-center mt-3 mb-1",children:"Position"}),t("div",{className:"flex flex-wrap w-full gap-2",children:[t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"X"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"position-x",value:null!=m?m.position.x:void 0,bottomLabel:a,disabled:null==m,onChange:updatePosition((e=>({x:e}))),onBlur:updateToDefaultValueIfInvalid({position:{x:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Y"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"position-y",value:m?.position.y,bottomLabel:a,disabled:null==m,onChange:updatePosition((e=>({y:e}))),onBlur:updateToDefaultValueIfInvalid({position:{y:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Z"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"position-z",value:m?.position.z,bottomLabel:a,disabled:null==m,onChange:updatePosition((e=>({z:e}))),onBlur:updateToDefaultValueIfInvalid({position:{z:0}})})})]})]})]}),t("div",{className:"mb-2 text-[0.8125rem]",children:[e("span",{className:"flex w-full items-center mt-3 mb-1",children:"Rotation"}),t("div",{className:"flex flex-wrap w-full gap-2",children:[t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"X"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"rotation-x",value:m?.rotation.x,bottomLabel:"deg",disabled:null==m,onChange:updateRotation((e=>({x:e}))),onBlur:updateToDefaultValueIfInvalid({rotation:{x:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Y"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"rotation-y",value:m?.rotation.y,bottomLabel:"deg",disabled:null==m,onChange:updateRotation((e=>({y:e}))),onBlur:updateToDefaultValueIfInvalid({rotation:{y:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Z"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"rotation-z",value:m?.rotation.z,bottomLabel:"deg",disabled:null==m,onChange:updateRotation((e=>({z:e}))),onBlur:updateToDefaultValueIfInvalid({rotation:{z:0}})})})]})]})]}),t("div",{className:"mb-2 text-[0.8125rem]",children:[e("span",{className:"flex w-full items-center mt-3 mb-1",children:"Scale"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"scale",value:m?.scale,step:.1,min:.1,disabled:null==m,onChange:updateScale(),onBlur:updateToDefaultValueIfInvalid({scale:1},(e=>e<=0))})}),r&&e("div",{className:"bg-orange-100 rounded px-3 py-2 mt-6 mb-2",children:"Input based part transformation is not yet supported for multiple parts."}),null!=d&&e("div",{className:"bg-red-100 rounded px-3 py-2 mt-6 mb-2",children:"There was a problem retrieving data. Try selecting a different part."})]})]})},VertexTransformManipulatorToggle=({onToggleTransformsManipulator:t})=>{const n=useTransformActions(),a=s(Xn),i=c(oa);return e(j,{className:"flex items-center","data-testid":"transform-widget-toggle",variant:"switch",checked:a,onValueChanged:async()=>{a?(n.disableTransformWidget(),t?.(!1)):(i("world"),await n.enableTransformWidget(),t?.(!0))}})};function VertexTransformControls({onToggleTransformsManipulator:a,onUpdateTransform:i}){return t(n,{children:[t("div",{className:"flex items-center py-3",children:[e(VertexTransformManipulatorToggle,{onToggleTransformsManipulator:a}),e("span",{className:"pl-4 text-[0.8125rem] text-neutral-700",children:"Enable manipulator"})]}),e(VertexTransformInputs,{onUpdateTransform:i})]})}function VertexTransformPanelSection({onClearTransforms:n,onClearAllTransforms:a,onToggleTransformsManipulator:i,onUpdateTransform:o}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Manual Part Transforms",e(VertexTransformClear,{onClear:n,onClearAll:a})]}),children:e(VertexTransformControls,{onToggleTransformsManipulator:i,onUpdateTransform:o})})}function DefaultTransformsPanel(){return e("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:e(VertexTransformPanelSection,{})})}const ao="Appearance",io="Model Views",oo="Settings",ro="Transforms",ViewerRightPanelHeader=({additionalHeaderMap:n})=>{const a=s(ui),i=getHeading(a,n),o=undefined;return e("div",{className:"flex flex-col w-full items-center z-overlay pointer-events-none md:pointer-events-auto py-3 px-4 border-b border-neutral-300",children:t("div",{className:"flex items-center w-full leading-6 text-md align-center font-medium text-neutral-800 gap-2",children:[i,"model-views"===a&&e(BetaLabel,{})]})})};function getHeading(e,t={}){switch(e){case"appearance":return ao;case"model-views":return io;case"settings":return oo;case"transforms":return ro;default:const n=undefined;return(null!=e?t[e]:void 0)??"None"}}function VertexViewerRightOpenedPanel({children:a}){const i=s(ui),o=A.useMemo((()=>filterChildElements(a,CustomPanelContent)),[a]),r=A.useMemo((()=>o.reduce(((e,t)=>({...e,[t.props.panelName]:t.props.panelTitle})),{})),[o]),l=A.useMemo((()=>["appearance","model-views","settings","transforms",...o.map((e=>e.props.panelName))]),[o]);return e(n,{children:null!=i&&l.includes(i)&&t(VertexResizableContent,{displayShadow:!0,heading:e(ViewerRightPanelHeader,{additionalHeaderMap:r}),placement:"right",children:["appearance"===i&&e(DefaultAppearancePanel,{}),"transforms"===i&&e(DefaultTransformsPanel,{}),"settings"===i&&e(DefaultSettingsPanel,{}),"model-views"===i&&e(VertexModelViewsPanel,{}),a]})})}function CustomPanelContent({panelName:t,children:a}){const i=s(ui);return e(n,{children:i===t&&a})}function Sidebar({children:t}){return e("div",{className:"pointer-events-auto flex flex-col items-center w-full border-neutral-300 py-2",children:t})}function SidebarIcon({name:n,iconName:a,active:i,responsive:o,disabled:r,content:s,tooltipPlacement:l,children:c,onSelect:d,onDeselect:u}){return e("div",{className:_a({"text-[var(--vertex-ui-blue-700)]":i===n&&!r,"text-neutral-700 hover:text-neutral-800":i!==n&&!r,"cursor-pointer hover:bg-neutral-200":!r,"text-neutral-400":r,"rounded-full md:p-3":o,"p-3":!o&&null==c,"px-3 py-1":null!=c}),"data-testid":`${n}-sidebar-panel`,onClick:()=>{r||(i===n?u():d())},children:t(F,{placement:l??void 0,content:A.isValidElement(s)?void 0:s,children:[e("div",{slot:"content",children:s}),e("div",{className:"flex flex-col",children:c??e($,{name:a})})]})})}function VertexViewerRightSidebar({children:n}){const a=usePanelActions(),i=useTransformActions(),o=s(ui);return e("div",{className:"flex flex-col flex-shrink-0 items-center relative border-neutral-300 border-l bg-white h-full top-0 min-w-12 w-12",children:t(Sidebar,{children:[n,e(SidebarIcon,{name:"appearance",active:o,iconName:"adjustments",tooltipPlacement:"right",content:"Appearance",onSelect:()=>{a.openPrimary("appearance","right")},onDeselect:()=>a.closePrimary("right")}),e(SidebarIcon,{name:"transforms",active:o,iconName:"show-only-nearby",tooltipPlacement:"right",content:"Transforms",onSelect:async()=>{a.openPrimary("transforms","right"),await i.enableTransformWidget(void 0,!0)},onDeselect:()=>a.closePrimary("right")}),e(SidebarIcon,{name:"model-views",active:o,iconName:"views",tooltipPlacement:"right",content:"Model Views",onSelect:async()=>{a.openPrimary("model-views","right")},onDeselect:()=>a.closePrimary("right")}),e(SidebarIcon,{name:"settings",active:o,iconName:"gear",tooltipPlacement:"right",content:"Settings",onSelect:()=>{a.openPrimary("settings","right")},onDeselect:()=>a.closePrimary("right")})]})})}function CustomPanelIcon(t){const n=usePanelActions(),a=s(ui),{panelName:i,tooltipContent:o,iconName:r,...l}=t;if(null==r&&null==l.children)throw new Error('CustomPanelIcon must contain either a Vertex "iconName" or custom "children"');return e(SidebarIcon,{...l,name:i,iconName:r??"help",active:a,content:o,onSelect:()=>{n.openPrimary(t.panelName,"right")},onDeselect:()=>{n.closePrimary("right")}})}VertexViewerRightOpenedPanel.CustomPanelContent=CustomPanelContent,VertexViewerRightSidebar.CustomPanelIcon=CustomPanelIcon;const VertexPopupButton=({open:a,children:i,...o})=>{const r=i.find((e=>e.type===Anchor)),s=i.filter((e=>e.type!==Anchor));return null==r?e(n,{}):t(ne,{className:"flex",placement:"top",backdrop:!1,open:asBooleanAttribute(a),...o,children:[r,e("div",{className:_a("flex mb-1.5",{hidden:!a}),"data-testid":"align-plane-popover-menu",children:s})]})},Anchor=({tooltipContent:t,children:n})=>e("div",{slot:"anchor",children:e(F,{className:"cursor-pointer",content:t,children:n})});function VertexViewerCrossSectionAlignmentPopoverMenu({disabled:n}){const a=useCrossSectioningActions(),i=s(Vt),o=s(kt),getBaseIcon=()=>`align-to-${o?.mode}`;return useStackKeyBinding({id:"CrossSectionAlignment",keyBind:"Escape",fn:a.cancelCurrentHit,addPredicate:()=>o?.hitPending??!1,cancelPredicate:()=>!o?.hitPending},[o?.hitPending]),t(VertexPopupButton,{"data-testid":"section-alignment-popover",placement:"top",backdrop:!1,open:asBooleanAttribute(i),onDismissed:a.closeAlignmentTools,children:[e(VertexPopupButton.Anchor,{tooltipContent:"Section Alignment",children:e(W,{"data-testid":"section-alignment-icon-button",iconName:getBaseIcon(),iconColor:"secondary",onClick:i?a.closeAlignmentTools:a.openAlignmentTools,disabled:n,children:e($,{"data-testid":"section-alignment-icon-chevron",name:"chevron-up",size:"sm"})})}),t(fe,{direction:"vertical",className:"flex justify-evenly items-center py-1 my-1 ring-1 ring-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(W,{iconColor:"secondary",onClick:()=>a.updateAlignment("global"),className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2","data-testid":"section-alignment-align-global",iconName:"align-to-global",variant:"plain",children:e("div",{className:"text-base ml-2",children:"Align to Global"})}),e(W,{iconColor:"secondary",onClick:()=>a.updateAlignment("surface"),className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2","data-testid":"section-alignment-align-surface",iconName:"align-to-surface",variant:"plain",children:e("div",{className:"text-base ml-2",children:"Align to Surface"})})]})]})}function VertexViewerCrossSectionAxisPopoverMenu({disabled:n}){const a=useCrossSectioningActions(),i=s(Lt),o=s(xt),r=m(Mt),l=A.useMemo((()=>{const e=o.length>0&&"hasValue"===r.state?axis(o[0],xAxis(r.contents),yAxis(r.contents),zAxis(r.contents)):"x";return null!=e?`axis-${e}`:"axis-x"}),[r.state,r.contents,o]);return t(VertexPopupButton,{"data-testid":"align-plane-popover",placement:"top",backdrop:!1,open:asBooleanAttribute(i),onDismissed:a.closeAxisTools,children:[e(VertexPopupButton.Anchor,{tooltipContent:"Align Plane",children:e(W,{onClick:i?a.closeAxisTools:a.openAxisTools,iconName:l,"data-testid":"align-plane-icon",iconColor:"secondary",disabled:n,children:e($,{"data-testid":"align-plane-icon-chevron",name:"chevron-up",size:"sm"})})}),t(fe,{direction:"vertical",className:"flex justify-evenly items-center py-1 my-1 ring-1 ring-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(W,{"data-testid":"align-plane-x-axis-button",className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2",onClick:()=>a.updateAxis("x"),variant:"plain",iconColor:"secondary",iconName:"axis-x",children:e("div",{className:"text-base ml-2",children:"X-axis Plane"})}),e(W,{className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2",variant:"plain",iconColor:"secondary",iconName:"axis-y","data-testid":"align-plane-y-axis-button",onClick:()=>a.updateAxis("y"),children:e("div",{className:"text-base ml-2",children:"Y-axis Plane"})}),e(W,{"data-testid":"align-plane-z-axis-button",className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2",onClick:()=>a.updateAxis("z"),variant:"plain",iconColor:"secondary",iconName:"axis-z",children:e("div",{className:"text-base ml-2",children:"Z-axis Plane"})})]})]})}function VertexViewerCrossSectionOffsetStepper({offset:n,disabled:a,onOffsetChange:i}){const o=s(Un),r=s(Gn),[l,c]=A.useState(convertTo(n,o));A.useEffect((()=>{c(convertTo(n,o))}),[o,n]);const d=createDistanceFormatter(o,parseInt(r,10)),handleIncrementalUpdate=e=>{const t=convertFrom(l+e,o);i(t)},u=undefined,handleBlur=()=>{i(convertFrom(l,o))};return e(F,{content:"Plane Offset",children:e("form",{"data-testid":"cross-section-stepper-form",onSubmit:e=>{e.preventDefault(),i(convertFrom(l,o))},children:t(ae,{"data-testid":"cross-section-stepper-input",className:"viewer-toolbar-input w-32 border-none ring-0 bg-white",type:"text",value:d(parseFloat(n.toFixed(3))),onInputInput:e=>{c(null!=e.detail.value?parseFloat(e.detail.value):n)},onBlur:handleBlur,disabled:a,children:[e("div",{"data-testid":"cross-section-stepper-decrement",className:"py-1 cursor-pointer",slot:"left",onClick:()=>{a||handleIncrementalUpdate(-1)},children:e($,{name:"chevron-left",size:"sm"})}),e("div",{"data-testid":"cross-section-stepper-increment",className:"py-1 cursor-pointer",slot:"right",onClick:()=>{a||handleIncrementalUpdate(1)},children:e($,{name:"chevron-right",size:"sm"})})]})})})}VertexPopupButton.Anchor=Anchor;const so=400;function VertexViewerCrossSectionPopupMenu(){const n=useCrossSectioningActions(),a=s(Ot),i=m(It),o=m(Nt),r=A.useRef(),l=A.useMemo((()=>"hasValue"===i.state&&Number.isFinite(i.contents.max)&&Number.isFinite(i.contents.min)),[i.state,i.contents]),c=A.useMemo((()=>"hasValue"===i.state?i.contents:ft),[i.state,i.contents]),d=A.useMemo((()=>"hasValue"===o.state&&Number.isFinite(o.contents)?o.contents:0),[o.state,o.contents]),handleCrossSectionValueChange=e=>{clearTimeout(r.current),r.current=window.setTimeout((()=>{n.endInteraction()}),so),n.beginInteraction(),n.updatePlanes(e)};return t(VertexPopupButton,{"data-testid":"cross-section-popover",placement:"top",backdrop:!1,open:asBooleanAttribute(a),onDismissed:n.closeAdditionalTools,children:[e(VertexPopupButton.Anchor,{tooltipContent:"Section Tools",children:e("div",{className:"-ml-px py-1.5",children:e($,{"data-testid":"cross-section-popover-icon",name:"chevron-up",size:"sm",onClick:a?n.closeAdditionalTools:n.openAdditionalTools})})}),t(fe,{className:"relative bottom-3 flex justify-evenly items-center p-1 ring-1 ring-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(VertexViewerCrossSectionAlignmentPopoverMenu,{disabled:!l}),e(F,{className:"w-auto",content:"Reverse",children:e(W,{iconName:"flip","data-testid":"viewer-toolbar-flip-button",onClick:n.flipPlanes,iconColor:"secondary",disabled:!l})}),e(F,{className:"w-auto",content:"Align View to Plane",children:e(W,{"data-testid":"viewer-toolbar-align-view-to-plane-button",iconName:"align-view-to-plane",onClick:n.alignViewToPlane,iconColor:"secondary",disabled:!l})}),e(VertexToolbarDivider,{}),e(VertexViewerCrossSectionAxisPopoverMenu,{disabled:!l}),e("div",{className:"w-52 mx-2",children:e(VertexSlider,{value:d,defaultValue:c.default,disabled:asBooleanAttribute("hasValue"!==i.state)||!l,min:c.min,max:c.max,step:.01,onChange:handleCrossSectionValueChange})}),e("div",{className:"px-4",children:e(VertexViewerCrossSectionOffsetStepper,{offset:"hasValue"===o.state&&l?o.contents:0,disabled:!l,onOffsetChange:handleCrossSectionValueChange})})]})]})}const VertexViewerCrossSectionButton=()=>{const a=useCrossSectioningActions(),i=s(gt);return t(n,{children:[e(F,{content:i?"Hide Section":"Show Section",children:e(W,{"data-testid":"viewer-toolbar-cross-section-button",iconName:"cross-section",iconColor:i?"primary":"secondary",onClick:()=>i?a.disable():a.enable()})}),e(VertexViewerCrossSectionPopupMenu,{})]})},VertexFitAllButton=()=>{const t=s(et);return e(F,{content:"Fit All",children:e(W,{iconName:"fit-all",iconColor:"secondary","data-testid":"viewer-toolbar-fit-all-button",onClick:async()=>{const e=await(t?.scene());await(e?.camera().viewAll().render({animation:{milliseconds:500}}))}})})},VertexPanButton=()=>{const t=s(et),n=s(nt),[a,i]=h(it),[o,r]=h(at);return A.useEffect((()=>{null!=t&&n&&r(t.getBaseInteractionHandler())}),[t,n,r]),e(F,{content:"Pan",children:e(W,{iconName:"pan",iconColor:"pan"===a?"primary":"secondary","data-testid":"viewer-toolbar-pan-button",onClick:async()=>{if(i("pan"),null!=o){const e=await o;e?.setPrimaryInteractionType("pan")}}})})},VertexRotateButton=()=>{const t=s(et),n=s(nt),[a,i]=h(it),[o,r]=h(at);return A.useEffect((()=>{null!=t&&n&&r(t.getBaseInteractionHandler())}),[t,n,r]),e(F,{content:"Rotate",children:e(W,{iconName:"rotate",iconColor:"rotate"===a?"primary":"secondary","data-testid":"viewer-toolbar-rotate-button",onClick:async()=>{if(i("rotate"),null!=o){const e=await o;e?.setPrimaryInteractionType("rotate")}}})})},VertexZoomButton=()=>{const t=s(et),n=s(nt),[a,i]=h(it),[o,r]=h(at);return A.useEffect((()=>{null!=t&&n&&r(t.getBaseInteractionHandler())}),[t,n,r]),e(F,{content:"Zoom",children:e(W,{iconName:"zoom",iconColor:"zoom"===a?"primary":"secondary","data-testid":"viewer-toolbar-zoom-button",onClick:async()=>{if(i("zoom"),null!=o){const e=await o;e?.setPrimaryInteractionType("zoom")}}})})},DefaultToolbar=()=>e(ge,{placement:"bottom-center",children:t(fe,{className:"p-1 border border-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(VertexRotateButton,{}),e(VertexPanButton,{}),e(VertexZoomButton,{}),e(VertexFitAllButton,{}),e(VertexToolbarDivider,{}),e(VertexBoxSelectionButton,{}),e(VertexToolbarDivider,{}),e(VertexViewerCrossSectionButton,{}),e(VertexToolbarDivider,{}),e(VertexPointToPointMeasurementTool,{}),e(VertexPreciseMeasurementTool,{})]})}),VertexToolbar=({endCapEnabledByDefault:t,children:n})=>{const a=c(wt),i=c(bt);A.useEffect((()=>{null!=t&&(a(t),i(t))}),[t]);const o=undefined;return e(ge,{placement:"bottom-center",children:null!=n&&!1!==n?e(fe,{className:"p-1 border border-neutral-200 rounded bg-neutral-100 opacity-95",children:n}):e(DefaultToolbar,{})})};function VertexTransformWidget({transformWidgetElement:t,supportUndo:a,onPositionChange:i,onRotationChange:o}){const r=useTransformActions(),l=s(ta),c=s(Xn),d=s(Zn),u=s(ea),p=m(Qn),h=s(Un),f=s(Gn),g=A.useMemo((()=>"hasValue"===p.state?p.contents:u),[p,u]),v=A.useMemo((()=>{const e=undefined;return c&&(null!=g||l)}),[c,g,l]);return e(n,{children:v&&e(ye,{id:"transform-widget","data-testid":"viewer-transform-widget",ref:t,position:d,rotation:null!=d?g:void 0,decimalPlaces:parseInt(f,10),distanceUnit:toUnitType(h),EXPERIMENTAL_undoKeybindings:a??!0,onInteractionStarted:()=>{r.disableSelectionSync(),r.setIsInteractivelyTransforming(!0)},onInteractionEnded:()=>{r.invalidateTransforms(),r.setIsInteractivelyTransforming(!1)},onPositionChanged:async e=>{await r.setTransformWidgetPosition(e.detail),i?.(e.detail)},onRotationChanged:e=>{r.setTransformWidgetOrientation(e.detail),o?.(e.detail)}})})}const VertexViewerSceneReset=({onReset:t})=>{const n=useCrossSectioningActions(),a=useModelViewActions(),i=useSelectionActions(),o=useTransformActions(),r=useViewerSceneActions(),s=c(sn),l=undefined;return e(F,{content:"Reset View",children:e(W,{iconName:"reset",className:"flex bg-white opacity-70 hover:opacity-100 text-neutral-900 hover:text-neutral-700 hover:bg-neutral-200 rounded p-1 cursor-pointer","data-testid":"viewer-reset-tool-button",onClick:async()=>{await n.disable(),await i.resetSelectionState(),o.clearTransformWidgetPosition(),await o.invalidateTransforms(),s(void 0),await a.clearModelView(),t?.(),await r.reset()},variant:"plain"})})};function useViewerFrameActions(){const e=useTransformActions();return{frameDrawn:useActionCallback((({set:t,snapshot:n})=>async a=>{const i=await n.getPromise(tn);t(rt,a.detail.scene),t(tn,a.detail.scene.sceneViewSummary.selectedVisibleSummary),t(en,i);const o=undefined;await n.getPromise(Xn)&&await e.syncToSelection()}))}}const VertexBoxSelectionTool=()=>{const{element:t,callback:n}=useCallbackRef(),a=useBoxSelectionActions(),i=useTransformActions(),o=s(gn);return k.useEffect((()=>{const e=whenComponentReady(t,(()=>[t?.model?.onDragComplete((()=>{"clearAndSelect"===o&&(i.clearTransformWidgetOrientation(),i.clearTransformWidgetPosition(),i.enableSelectionSync())}))]));return()=>{e?.then((e=>{e?.forEach((e=>e?.dispose()))}))}}),[t,o]),useApplyKeyBinding({keyBind:"Shift",fn:k.useCallback((()=>a.setOperationType("select")),[]),off:k.useCallback((()=>a.setOperationType("clearAndSelect")),[])}),e(ve,{ref:n,"data-testid":"viewer-box-query-tool",operationType:o})};function VertexViewerCameraTypeMenu({open:n,onOpen:a,onDismiss:i,onCameraTypeChange:o}){const r=useViewerCameraActions(),l=s(Qe);return t(Z,{"data-testid":"camera-types-popover",className:"flex",placement:"bottom-end",open:asBooleanAttribute(n),onMenuClosed:i,children:[e("div",{slot:"anchor",children:e("div",{className:_a("flex bg-white hover:opacity-100 hover:text-neutral-700 hover:bg-neutral-200 rounded",{"opacity-70 text-neutral-900":!n,"opacity-100 text-neutral-700 bg-neutral-200":n}),children:e(F,{content:"Change View",children:e(W,{"data-testid":"set-camera-mode-option",className:"p-1 cursor-pointer",variant:"plain",onClick:a,iconName:"orthographic"===l?"cube-orthographic":"cube-perspective",children:e($,{"data-testid":"change-camera-type-icon-button",name:"chevron-down",size:"sm"})})})})}),t("div",{className:"w-36",children:[e("div",{className:"pt-1"}),t(Y,{"data-testid":"set-perspective-view",onClick:()=>{r.updateCameraType("perspective",!0),o?.("perspective")},children:[e($,{slot:"icon","data-testid":"set-perspective-view-icon",name:"cube-perspective",size:"sm",className:_a({"text-[var(--vertex-ui-blue-700)]":"perspective"===l})}),e("div",{className:_a("ml-2 items-center",{"text-[var(--vertex-ui-blue-700)]":"perspective"===l}),children:"Perspective"})]}),t(Y,{"data-testid":"set-orthographic-view",onClick:()=>{r.updateCameraType("orthographic",!0),o?.("orthographic")},children:[e($,{slot:"icon","data-testid":"set-orthographic-view-icon",name:"cube-orthographic",size:"sm",className:_a({"text-[var(--vertex-ui-blue-700)]":"orthographic"===l})}),e("div",{className:_a("ml-2 items-center",{"text-[var(--vertex-ui-blue-700)]":"orthographic"===l}),children:"Orthographic"})]})]})]})}const VertexViewerViewCube=({placement:n,children:a,...i})=>{const o=Array.isArray(a)?a:[a],r=o.filter((e=>!A.isValidElement(e)||e.type!==be)).filter((e=>null!=e&&!1!==e)),s=o.find((e=>A.isValidElement(e)&&e.type===be)),[l,c]=A.useState(!1);return t(ge,{direction:"vertical","data-testid":"view-cube-toolbar",placement:n??"top-right",children:[s??e(be,{className:"m-7",...i}),0===r.length?t("div",{className:"flex items-center justify-center mt-3 gap-1",children:[e(VertexViewerSceneReset,{}),e(VertexViewerCameraTypeMenu,{open:l,onDismiss:()=>c(!1),onOpen:()=>c(!0)})]}):e("div",{className:"mt-3",children:r})]})},VertexViewer=({id:a,src:i,className:o,disableSelection:r,onTap:l,onLongpress:d,onFrameDrawn:u,onSceneReady:m,viewerRefCallback:p,children:f,...g})=>{const v=s(Mi),b=useRecoilRef({state:et}),w=useViewerCameraActions(),C=useCrossSectioningActions(),S=useHitActions(),k=useSelectionActions(),T=useViewerFrameActions(),P=s(Qe),M=s(kt),E=s(fn),I=c(ot),[N,O]=h(nt);A.useEffect((()=>{N&&(O(!1),C.disable())}),[i]);const[V,L]=h(tt);A.useEffect((()=>{null!=a&&L(a)}),[a]);const _=s(xi),R=A.useMemo((()=>({opacity:_/100})),[_]),D=s(za),B=s(Ba),H=A.useMemo((()=>({color:D,width:B})),[D,B]),j=s(wt),F=s(Ct),W=s(St),U=A.useMemo((()=>({endCapEnabled:j,endCapUsePartColor:F===ut.PART,...j&&F===ut.SINGLE&&{endCapColor:W}})),[j,F,W]),G=s(oi),K=s(ti),$=s(ni),q=s(ai),Y=A.useMemo((()=>({color:K,opacity:$/100,lineWidth:q})),[K,$,q]),X=s(Sn),Z=null!=f&&!1!==f;return useKeyBindings(),useDefaultKeybindings(),t(we,{id:V,"data-testid":"vertex-viewer",src:i,ref:e=>{p?.(e),b(e)},className:_a("flex w-full h-full",o,{"cursor-crosshair":M.hitPending}),style:{"--viewer-background":G},config:v,cameraType:N?P:void 0,onCameraTypeChanged:e=>{N&&w.updateCameraType(e.detail,!1)},phantom:R,featureLines:H,selectionHighlighting:Y,crossSectioning:U,featureMaps:X?"final":void 0,onTap:e=>{const t=[...r?[]:[k.selectCurrentHit]];S.tap(e,...t),l?.(e)},onLongpress:e=>{S.longPress(e),d?.(e)},onFrameDrawn:e=>{T.frameDrawn(e),u?.(e)},onSceneReady:async e=>{if(!N){O(!0);const t=await(e?.target?.scene());I(t?.sceneViewId)}m?.(e)},...g,children:[E&&e(VertexBoxSelectionTool,{}),Z?f:t(n,{children:[e(VertexViewerViewCube,{}),e(VertexToolbar,{}),e(VertexViewerContextMenu,{})]})]})};function toSdkConfig(e){return isOnlyNetworkConfig(e)?{network:e}:e}function isOnlyNetworkConfig(e){const t=undefined;return null!=e.renderingHost}const VertexViewerToolkitEventListener=({onHitStateChange:t,onSelectionStateChange:a})=>{const i=s(Ln),o=s(Fn);return A.useEffect((()=>{t?.(i)}),[i,t]),A.useEffect((()=>{a?.(o)}),[o,a]),e(n,{})},VertexViewerToolkitRoot=({override:a,autoDefineCustomElements:i,children:o,config:r,...s})=>(A.useEffect((()=>{(null==i||i)&&(xe(),Se())}),[i]),e(f,{override:a,children:t(n,{children:[e(VertexViewerToolkitEventListener,{...s}),e(VertexViewerToolkitRootConfig,{config:r,children:o})]})})),VertexViewerToolkitRootConfig=({config:t,children:a})=>{const i=c(Mi);return A.useEffect((()=>{const e=null!=t?toSdkConfig(t):void 0;i(e)}),[t,i]),e(n,{children:a})};var lo=Object.freeze({__proto__:null,get AssemblyFontFace(){return Zi},Columns:ji,Core:jn,Metadata:eo,Search:Xi});export{ri as Appearance,yn as BoxSelection,Ei as Config,hn as ContextMenu,Oa as CrossSection,Pi as Ghosting,_n as Hits,ci as Keybinding,Vn as Measurement,Ze as Messages,Ci as Metadata,Ia as ModelViews,pi as Panel,Ut as Performance,lo as SceneTree,ha as SceneViewItem,Wn as Selection,Kn as Settings,ua as Transforms,VertexApplicationMessages,VertexBoxSelectionButton,VertexContextMenu,VertexCrossSectionAppearanceColorPicker,VertexCrossSectionAppearanceControls,VertexCrossSectionAppearanceLineThicknessSlider,VertexCrossSectionAppearancePanelSection,VertexCrossSectionAppearanceReset,VertexDecimalPlaceSelector,VertexFeatureEdgesColorPicker,VertexFeatureEdgesControls,VertexFeatureEdgesPanelSection,VertexFeatureEdgesReset,VertexFeatureEdgesThicknessSlider,VertexFitAllButton,VertexFitSelectedMenuItem,VertexFlyToMenuItem,VertexGhostingControls,VertexGhostingPanelSection,VertexHideAllMenuItem,VertexHidePartMenuItem,VertexHideSelectedMenuItem,VertexLengthUnitSelector,VertexMaterialControls,VertexMaterialPanelSection,VertexMeasurementContextMenu,VertexMeasurementDetails,VertexModelViewsPanel,VertexPanButton,VertexPointToPointMeasurement,VertexPointToPointMeasurementTool,VertexPreciseMeasurement,VertexPreciseMeasurementTool,VertexResizableContent,VertexRotateButton,VertexSceneItemGhostingClear,VertexSceneItemGhostingOpacitySlider,VertexSceneItemGhostingToggle,VertexSceneItemMaterialClear,VertexSceneItemMaterialColorPicker,VertexSceneItemMaterialColorSwatches,VertexSceneItemMaterialOpacitySlider,VertexSceneTree,VertexSceneTreeColumnPopover,VertexSceneTreeContextMenu,VertexSceneTreeCustomColumn,VertexSceneTreeHeader,VertexSceneTreeMetadataColumns,VertexSceneTreeSearchBar,VertexSceneTreeSearchInformationForToolbar,VertexSceneTreeSearchOptionsPopover,VertexSceneTreeTableLayout,VertexSelectionHighlightingColorPicker,VertexSelectionHighlightingControls,VertexSelectionHighlightingLineThicknessSlider,VertexSelectionHighlightingOpacitySlider,VertexSelectionHighlightingPanelSection,VertexSelectionHighlightingReset,VertexShowAllMenuItem,VertexShowOnlyMenuItem,VertexShowOnlySelectedMenuItem,VertexShowPropertiesMenuItem,VertexToolbar,VertexToolbarDivider,VertexTransformClear,VertexTransformControls,VertexTransformInputs,VertexTransformManipulatorToggle,VertexTransformPanelSection,VertexTransformWidget,VertexUnitsControls,VertexUnitsPanelSection,VertexViewer,VertexViewerBackgroundColorPicker,VertexViewerBackgroundControls,VertexViewerBackgroundPanelSection,VertexViewerBackgroundReset,VertexViewerContextMenu,VertexViewerCrossSectionButton,VertexViewerRightOpenedPanel,VertexViewerRightSidebar,VertexViewerSceneReset,VertexViewerToolkitRoot,VertexViewerViewCube,VertexZoomButton,lt as Viewer};
|
|
18
|
+
*/function requireClassnames(){return Ea||(Ea=1,e=Ma,function(){var t={}.hasOwnProperty;function classNames(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=appendClass(e,parseValue(n)))}return e}function parseValue(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return classNames.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var n="";for(var a in e)t.call(e,a)&&e[a]&&(n=appendClass(n,a));return n}function appendClass(e,t){return t?e?e+" "+t:e+t:e}e.exports?(classNames.default=classNames,e.exports=classNames):window.classNames=classNames}()),Ma.exports;var e}var Ia,Na=getDefaultExportFromCjs(requireClassnames());const VertexSlider=({value:n,defaultValue:a,leftLabel:i,rightLabel:o,onChange:r,onValueChange:s,onValueInput:l,...c})=>{const[d,u]=A.useState(a);return t("div",{className:"flex w-full items-center gap-2",children:[i&&e("div",{className:"pl-0.5 text-xs text-center",children:i}),e(D,{className:Na("w-full",{"mt-0.5":null!=i||null!=o}),value:n??d,onValueChange:e=>{u(e.detail.value),r?.(e.detail.value),s?.(e)},onValueInput:e=>{u(e.detail.value),r?.(e.detail.value),l?.(e)},...c}),o&&e("div",{className:"text-xs pr-2 flex-shrink-0 text-right",children:o})]})},VertexCrossSectionAppearanceLineThicknessSlider=({onUpdate:t})=>{const n=useCrossSectioningActions(),[a,i]=h(ht);return e(VertexSlider,{id:"cross-section-line-thickness","data-testid":"cross-section-line-thickness-slider",leftLabel:"Off",rightLabel:"Thick",min:0,max:3,step:.5,value:a,valueLabelDisplay:"auto",onValueInput:async e=>{i(e.detail.value),await n.reapply()},onValueChange:e=>{t?.(e.detail.value)}})},VertexEndCapColorOptions=({onUpdateColorType:n})=>{const[a,i]=h(vt);return e("div",{className:"pl-2 text-sm text-neutral-700",children:t(B,{value:a,"data-testid":"end-capping-color-type-radio-group",name:"end-capping-color-type",onValueChanged:e=>{i(e.detail.toUpperCase()===st.PART?st.PART:st.SINGLE),n?.(e.detail)},children:[e(j,{"data-testid":"end-capping-color-part-color",label:"Part Color",value:st.PART}),e(j,{"data-testid":"end-capping-color-single-color",label:"Single Color",value:st.SINGLE})]})})},VertexEndCapColorPicker=({onUpdateCustomColor:t})=>{const[n,a]=h(yt);return e(VertexColorPicker,{"data-testid":"end-capping-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})},VertexEndCapToggle=({onEnabledChange:t})=>{const[n,a]=h(gt);return e(H,{className:"flex items-center","data-testid":"end-capping-enabled-toggle",variant:"switch",checked:n,onValueChanged:async e=>{a(e.detail),t?.(e.detail)}})};function VertexCrossSectionAppearanceControls({onUpdateCrossSectionColor:a,onUpdateCrossSectionLineThickness:i,onEndCapEnabledChange:o,onUpdateEndCapColorType:r,onUpdateEndCapCustomColor:l}){const c=s(vt);return t(n,{children:[t("div",{className:"flex items-center pt-2 pb-2",children:[e(VertexEndCapToggle,{onEnabledChange:o}),e("span",{className:"pl-4 text-sm text-neutral-700",children:"Show End Cap"})]}),e("div",{className:"pt-2 pb-2 text-sm text-neutral-700",children:"Line Color"}),e(VertexCrossSectionAppearanceColorPicker,{onUpdate:a}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Line Thickness"}),e(VertexCrossSectionAppearanceLineThicknessSlider,{onUpdate:i}),t("div",{children:[e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Cap Color"}),e(VertexEndCapColorOptions,{onUpdateColorType:r}),c===st.SINGLE&&e("div",{className:"mt-2",children:e(VertexEndCapColorPicker,{onUpdateCustomColor:l})})]})]})}function PanelSection({header:n,children:a}){return t("div",{className:"py-3 px-4 border-neutral-300 border-b",children:[e("div",{className:"my-2 text-base text-neutral-700",children:n}),a]})}const VertexCrossSectionAppearanceReset=({onReset:t})=>{const n=useCrossSectioningActions(),[a,i]=h(pt),[o,r]=h(ht),l=s(ft),[c,d]=h(gt),[u,m]=h(vt),[p,f]=h(yt),g=a!==lt||1!==o||c!==l||u!==st.PART||p!==dt;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Cross Sectioning Appearance",children:e(W,{"data-testid":"cross-section-appearance-reset",iconName:"reset",iconSize:"sm",onClick:async()=>{i(lt),r(1),d(l),m(st.PART),f(dt),t?.(),await n.reapply()},disabled:!g})})})};function VertexCrossSectionAppearancePanelSection({onResetCrossSectionAppearance:n,onUpdateCrossSectionColor:a,onUpdateCrossSectionLineThickness:i,onEndCapEnabledChange:o,onUpdateEndCapColorType:r,onUpdateEndCapCustomColor:s}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Cross Sectioning",e(VertexCrossSectionAppearanceReset,{onReset:n})]}),children:e(VertexCrossSectionAppearanceControls,{onUpdateCrossSectionColor:a,onUpdateCrossSectionLineThickness:i,onEndCapEnabledChange:o,onUpdateEndCapColorType:r,onUpdateEndCapCustomColor:s})})}const Oa=.5,Va="#444444",La=o({key:"featureEdgesSelectedColor",default:Va}),_a=o({key:"featureEdgesLineThickness",default:Oa}),VertexFeatureEdgesColorPicker=({onUpdate:t})=>{const[n,a]=h(La);return e(VertexColorPicker,{"data-testid":"feature-edges-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})},VertexFeatureEdgesThicknessSlider=({onUpdate:t})=>{const[n,a]=h(_a);return e(VertexSlider,{id:"feature-edges-thickness","data-testid":"feature-edges-thickness-slider",leftLabel:"Off",rightLabel:"Thick",min:0,max:3,step:.5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})};function VertexFeatureEdgesControls({onUpdateFeatureEdgesColor:a,onUpdateFeatureEdgesThickness:i}){return t(n,{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),e(VertexFeatureEdgesColorPicker,{onUpdate:a}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Line Thickness"}),e(VertexFeatureEdgesThicknessSlider,{onUpdate:i})]})}const VertexFeatureEdgesReset=({onReset:t})=>{const[n,a]=h(La),[i,o]=h(_a),r=void 0;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Feature Edges",children:e(W,{"data-testid":"feature-edges-reset",iconName:"reset",iconSize:"sm",onClick:()=>{a(Va),o(Oa),t?.()},disabled:!(i!==Oa||n!==Va)})})})};function VertexFeatureEdgesPanelSection({onResetFeatureEdges:n,onUpdateFeatureEdgesColor:a,onUpdateFeatureEdgesThickness:i}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Feature Edges",e(VertexFeatureEdgesReset,{onReset:n})]}),children:e(VertexFeatureEdgesControls,{onUpdateFeatureEdgesColor:a,onUpdateFeatureEdgesThickness:i})})}function createColorMaterialWithId(e,t=_e.create()){return{id:t,..._.fromHex(e)}}const Ra=255,Da=18,za=o({key:"sceneItemAdjustmentsSelectedColor",default:void 0}),Ba=o({key:"sceneItemAdjustmentsRecentColors",default:[]}),ja=o({key:"sceneItemAdjustmentsCustomColors",default:[createColorMaterialWithId("#ffffff"),createColorMaterialWithId("#616161")]}),Ha=o({key:"sceneItemAdjustmentsSelectedOpacity",default:void 0}),Fa=l({key:"appliedItemMaterialOverride",default:void 0}),Wa=o({key:"appliedItemMaterialOverrideIds",default:[]}),Ua=r({key:"sceneItemAdjustmentsLastSelectedOverride",get:({get:e})=>{const t=e(Wt);if(null!=t)return e(Fa(t.id))}}),Ga=o({key:"applyMaterialToAllUserAction",default:void 0}),Ka=o({key:"showConfirmDialogWhenApplyingMaterialToAll",default:!0}),$a=o({key:"confirmApplyMaterialToAllDialogOpen",default:!1}),useSceneItemMaterialActions=()=>{const e=useViewerSceneActions(),t=useActionCallback(({snapshot:e,reset:t})=>async()=>{const n=await e.getPromise(Wa);t(za),n.forEach(e=>t(Fa(e))),t(Wa)});return{updateColor:useActionCallback(({set:e})=>t=>{e(za,t)}),saveRecentColor:useActionCallback(({set:e,snapshot:t})=>async n=>{const a=await t.getPromise(Ba),i=[n,...a.filter(e=>e!==n)],o=i.length>Da?i.slice(0,-(i.length-Da)):i;e(za,n),e(Ba,o)}),removeRecentColor:useActionCallback(({set:e,snapshot:t})=>async n=>{const a=void 0,i=(await t.getPromise(Ba)).filter(e=>e.id!==n);e(Ba,i)}),setCustomColors:useActionCallback(({set:e})=>async t=>{e(ja,t)}),saveCustomColor:useActionCallback(({set:e,snapshot:t})=>async n=>{const a=void 0,i=[...await t.getPromise(ja),n],o=i.length>Da?i.slice(i.length-Da):i;e(za,n),e(ja,o)}),removeCustomColor:useActionCallback(({set:e,snapshot:t})=>async n=>{const a=void 0,i=(await t.getPromise(ja)).filter(e=>e.id!==n);e(ja,i)}),clearCurrentColor:useActionCallback(({reset:e})=>()=>{e(za)}),clearCurrentOpacity:useActionCallback(({reset:e})=>()=>{e(Ha)}),clear:useActionCallback(({snapshot:t,set:n,reset:a})=>async()=>{const i=await t.getPromise(Ft);a(za),i.forEach(e=>a(Fa(e))),n(Wa,e=>e.filter(e=>!i.includes(e))),await e.execute(Bt.CLEAR_SELECTED_MATERIAL_OVERRIDES,e=>e.where(e=>e.withSelected()).clearMaterialOverrides().select())}),clearAll:useActionCallback(()=>async()=>{await t(),await e.execute(Bt.CLEAR_ALL_MATERIAL_OVERRIDES,e=>e.where(e=>e.all()).clearMaterialOverrides(),e=>e.where(e=>e.withSelected()).select())}),clearState:t,updateOpacity:useActionCallback(({set:e})=>t=>{e(Ha,t)}),apply:useActionCallback(({snapshot:t,set:n})=>async()=>{const a=await t.getPromise(za),i=await t.getPromise(Ha),o=await t.getPromise(Ft),r=await t.getPromise(Ua),s=a??r,l=i??r?.opacity;if(null!=s){const t={...s,opacity:l??s.opacity};await e.execute(Bt.APPLY_MATERIAL_OVERRIDE_TO_SELECTION,e=>e.where(e=>e.withSelected()).materialOverride(t)),o.forEach(e=>n(Fa(e),t)),n(Wa,e=>[...e,...o])}}),confirmApplyAll:useActionCallback(({set:e})=>t=>{e($a,!0),e(Ga,()=>t)}),cancelApplyAll:useActionCallback(({reset:e})=>()=>{e($a),e(Ga)}),applyAll:useActionCallback(({snapshot:t,reset:n})=>async()=>{const a=await t.getPromise(za),i=await t.getPromise(Ha);if(null!=a){const o=await t.getPromise(Wa),r={...a,opacity:i??a.opacity};await e.execute(Bt.APPLY_MATERIAL_OVERRIDE_TO_ALL,e=>e.where(e=>e.all()).materialOverride(r)),o.forEach(e=>n(Fa(e)));const s=await t.getPromise(Ga);s?.(r),n($a),n(Ga)}}),hideConfirmApplyAllDialog:useActionCallback(({set:e})=>()=>{e(Ka,!1)})}},qa="#ffff00",Ya=35,Xa=1,Za=o({key:"selectionHighlightingSelectedColor",default:qa}),Ja=o({key:"selectionHighlightingSelectedOpacity",default:Ya}),Qa=o({key:"selectionHighlightingSelectedLineThickness",default:1});function elementIsColorSwatch(e){return e instanceof Element&&"VERTEX-COLOR-SWATCH"===e.nodeName}function elementHasColorAttribute(e){return"true"===e.getAttribute("data-custom-color")||"true"===e.getAttribute("data-recent-color")}const ei="#FFFFFF",ti=o({key:"viewerBackgroundSelectedColor",default:ei});var ni=Object.freeze({__proto__:null,DEFAULT_FEATURE_EDGE_COLOR:Va,DEFAULT_FEATURE_EDGE_THICKNESS_VALUE:Oa,DEFAULT_SELECTION_HIGHLIGHTING_COLOR:qa,DEFAULT_SELECTION_HIGHLIGHTING_LINE_THICKNESS:1,DEFAULT_SELECTION_HIGHLIGHTING_OPACITY:Ya,DEFAULT_VIEWER_BACKGROUND_COLOR:ei,MAXIMUM_MATERIAL_OVERRIDE_OPACITY:Ra,MAX_STORED_COLOR_ARRAY_LENGTH:Da,appliedItemMaterialOverride:Fa,appliedItemMaterialOverrideIds:Wa,applyMaterialToAllUserAction:Ga,confirmApplyMaterialToAllDialogOpen:$a,elementHasColorAttribute:elementHasColorAttribute,elementIsColorSwatch:elementIsColorSwatch,featureEdgesLineThickness:_a,featureEdgesSelectedColor:La,sceneItemAdjustmentsCustomColors:ja,sceneItemAdjustmentsLastSelectedOverride:Ua,sceneItemAdjustmentsRecentColors:Ba,sceneItemAdjustmentsSelectedColor:za,sceneItemAdjustmentsSelectedOpacity:Ha,selectionHighlightingSelectedColor:Za,selectionHighlightingSelectedLineThickness:Qa,selectionHighlightingSelectedOpacity:Ja,showConfirmDialogWhenApplyingMaterialToAll:Ka,useSceneItemMaterialActions:useSceneItemMaterialActions,viewerBackgroundSelectedColor:ti});const VertexSceneItemMaterialApplyAll=({onApplyAll:t})=>{const n=useSceneItemMaterialActions(),a=m(Ua),i=s(za),o=s(Ka),r=k.useMemo(()=>"hasValue"===a.state?i??a.contents:i,[a,i]);return e(F,{content:"Apply to All",children:e(W,{iconName:"square-dot-outline",iconSize:"sm",color:"secondary",disabled:null==r,onClick:async()=>{o?n.confirmApplyAll(t):(await n.applyAll(),t?.(r))}})})};function SceneItemMaterialApplyAllConfirmationDialog(){const a=useSceneItemMaterialActions(),i=s($a),[o,r]=A.useState(!1),onCloseDialog=()=>{a.cancelApplyAll(),r(!1)};return i?t(U,{open:!0,className:"text-sm",onClosed:onCloseDialog,onBackdropClick:onCloseDialog,children:[e("div",{slot:"heading",children:"Apply to All Parts"}),e("div",{className:"max-w-lg break-words pr-2",children:"This will apply the same material to all parts in the model. Any previous material changes will be lost."}),t("div",{className:"flex mt-8 gap-2 items-center",children:[t("div",{className:"flex gap-2",children:[e(H,{"data-testid":"hide-confirmation-dialog-in-future-checkbox",variant:"check",className:"pt-0.5",checked:o,onValueChanged:e=>{r(e.detail)}}),"Don't show again this session"]}),t("div",{className:"flex ml-auto gap-2",children:[e(G,{"data-testid":"cancel-apply-material-to-all",onClick:onCloseDialog,children:"Cancel"}),e(G,{color:"primary","data-testid":"confirm-apply-material-to-all",onClick:async()=>{await a.applyAll(),o&&a.hideConfirmApplyAllDialog()},children:"Apply"})]})]})]}):e(n,{})}const VertexSceneItemMaterialColorPicker=({onApply:t})=>{const n=useSceneItemMaterialActions(),a=m(Ua),i=s(za),o=k.useMemo(()=>"hasValue"===a.state?i??a.contents:i,[a,i]);return e(VertexColorPicker,{"data-testid":"selected-item-color-picker",value:null!=o?Pe.toHexString(o.diffuse):void 0,onValueChanged:async()=>{null!=o&&(await n.apply(),t?.(o),await n.saveRecentColor(createColorMaterialWithId(Pe.toHexString(o.diffuse))))},onInput:async e=>{n.updateColor(createColorMaterialWithId(e)),await n.apply()}})},ColorSwatch=({color:t,hideTooltip:n,onClick:a,...i})=>{const o="string"==typeof t?t:Pe.toHexString(t.diffuse);return e(F,{className:"flex-grow-0",content:o,disabled:!!n,children:e("button",{onClick:()=>a?.(t),children:e(K,{"data-testid":`color-swatch-${o}`,variant:"square",color:o,...i})})})},VertexSceneItemMaterialColorSwatches=({onAddCustomColor:a,onApplyCustomColor:i,onApplyRecentColor:o})=>{const r=useSceneItemMaterialActions(),l=s(ja),c=s(Ba),d=l.length===Da;return t(n,{children:[t("div",{"data-testid":"appearance-custom-colors",className:"flex flex-wrap gap-2 mt-1 mb-4",children:[l.map(t=>e(ColorSwatch,{color:t,onClick:async()=>{r.updateColor(t),await r.apply(),i?.(t)},"data-custom-color":!0,"data-color-id":t.id},t.id)),!d&&e(R,{"data-testid":"appearance-custom-colors-add",variant:"swatch",size:"md",onValueChanged:async e=>{const t=createColorMaterialWithId(e.detail);await r.saveCustomColor(t),await r.apply(),a?.(t)},children:e("div",{slot:"overlay",className:"flex items-center justify-center w-full h-full",children:e($,{className:"bg-white p-2",name:"plus",size:"sm"})})})]}),!!c.length&&e("div",{"data-testid":"appearance-recent-colors",className:"flex flex-wrap gap-2",children:c.map(t=>e(ColorSwatch,{color:t,onClick:async()=>{r.updateColor(t),await r.apply(),o?.(t)},"data-recent-color":!0,"data-color-id":t.id},t.id))})]})},VertexSceneItemMaterialOpacitySlider=({onApply:t})=>{const n=useSceneItemMaterialActions(),a=s(Ha),i=m(Ua),o=k.useMemo(()=>"hasValue"===i.state?a??i.contents?.opacity??Ra:a??Ra,[a,i]),r=useDebouncedCallback(()=>{n.apply()},500),l=k.useCallback(e=>{n.updateOpacity(e.detail.value),r(e.detail.value)},[r,n]),c=k.useMemo(()=>"hasValue"!==i.state||null==i.contents,[i]);return e(F,{className:"flex w-full",content:c?"Select a part and apply a color to enable opacity":`${Math.floor(o/Ra*100)}%`,placement:"top",children:e(VertexSlider,{"data-testid":"scene-item-adjustments-opacity-slider",leftLabel:"0%",rightLabel:"100%",disabled:c,value:o??Ra,step:5,min:0,max:Ra,onValueChange:e=>{n.updateOpacity(e.detail.value),n.apply(),t?.(e.detail.value)},onValueInput:l})})};function VertexMaterialControls({customColors:a,onApplyMaterial:i,onApplyMaterialToAll:o,onAddCustomColor:r,onApplyCustomColor:l,onApplyRecentColor:c,onApplyOpacity:d}){const u=useSceneItemMaterialActions(),m=s(Wt);return A.useEffect(()=>{u.clearCurrentColor(),u.clearCurrentOpacity()},[m?.id]),A.useEffect(()=>{if(null!=a){const e=a.map(e=>({...e,id:_e.create()}));u.setCustomColors(e)}},[a]),t(n,{children:[t("div",{className:"flex flex-col",children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),t("div",{className:"flex items-center gap-2",children:[e(VertexSceneItemMaterialColorPicker,{onApply:i}),e(VertexSceneItemMaterialApplyAll,{onApplyAll:o})]})]}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Color Swatches"}),e(VertexSceneItemMaterialColorSwatches,{onAddCustomColor:r,onApplyCustomColor:l,onApplyRecentColor:c}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Opacity"}),e(VertexSceneItemMaterialOpacitySlider,{onApply:d}),e(SceneItemMaterialApplyAllConfirmationDialog,{})]})}const ResetButton=({id:n,tooltip:a,children:i})=>{const[o,r]=A.useState(!1);return e("div",{className:"ml-auto",children:t(q,{className:"flex items-stretch h-full","data-testid":`reset-button-dropdown-menu-${n}`,placement:"bottom-end",onMenuOpened:()=>r(!0),onMenuClosed:()=>r(!1),children:[e("div",{slot:"anchor",className:"flex items-center h-full",children:e(F,{content:a,disabled:o,placement:"bottom",children:t(G,{className:Na("p-1.5 rounded-md select-none hover:bg-neutral-300 active:bg-neutral-400 cursor-pointer",{"bg-neutral-300":o}),"data-testid":`reset-button-${n}`,variant:"plaintext",children:[e($,{className:"px-0.5",name:"reset",size:"sm"}),e($,{name:"chevron-down",size:"sm"})]})})}),e("div",{className:"whitespace-nowrap",children:i})]})})},VertexSceneItemMaterialClear=({onClear:n,onClearAll:a})=>{const i=useSceneItemMaterialActions(),o=s(en);return e("div",{className:"ml-auto",children:t(ResetButton,{id:"materials",tooltip:"Clear Materials",children:[e("div",{className:"pt-1"}),e(Y,{"data-testid":"clear-selected-materials",onClick:()=>{i.clear(),n?.()},disabled:!o,children:"Clear selected materials"}),e(Y,{"data-testid":"clear-all-materials",onClick:()=>{i.clearAll(),a?.()},children:"Clear all materials"})]})})};function VertexMaterialPanelSection({customColors:n,onClearMaterial:a,onClearAllMaterials:i,onApplyMaterial:o,onApplyMaterialToAll:r,onAddCustomColor:s,onApplyCustomColor:l,onApplyRecentColor:c,onApplyOpacity:d}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Material",e(VertexSceneItemMaterialClear,{onClear:a,onClearAll:i})]}),children:e(VertexMaterialControls,{customColors:n,onApplyMaterial:o,onApplyMaterialToAll:r,onAddCustomColor:s,onApplyCustomColor:l,onApplyRecentColor:c,onApplyOpacity:d})})}const VertexSelectionHighlightingColorPicker=({onUpdate:t})=>{const[n,a]=h(Za);return e(VertexColorPicker,{"data-testid":"selection-highlighting-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})},VertexSelectionHighlightingLineThicknessSlider=({onUpdate:t})=>{const[n,a]=h(Qa);return e(VertexSlider,{id:"selection-highlighting-line-thickness","data-testid":"selection-highlighting-line-thickness-slider",leftLabel:"Off",rightLabel:"Thick",min:0,max:3,step:.5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})},VertexSelectionHighlightingOpacitySlider=({onUpdate:t})=>{const[n,a]=h(Ja);return e(VertexSlider,{id:"selection-highlighting-opacity","data-testid":"selection-highlighting-opacity-slider",leftLabel:"0%",rightLabel:"100%",min:0,max:100,step:5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})};function VertexSelectionHighlightingControls({onUpdateSelectionHighlightColor:a,onUpdateSelectionHighlightOpacity:i,onUpdateSelectionHighlightLineThickness:o}){return t(n,{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),e(VertexSelectionHighlightingColorPicker,{onUpdate:a}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Opacity"}),e(VertexSelectionHighlightingOpacitySlider,{onUpdate:i}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Line Thickness"}),e(VertexSelectionHighlightingLineThicknessSlider,{onUpdate:o})]})}const VertexSelectionHighlightingReset=({onReset:t})=>{const[n,a]=h(Za),[i,o]=h(Ja),[r,s]=h(Qa),l=void 0;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Selection Highlighting",children:e(W,{"data-testid":"selection-highlighting-reset",iconName:"reset",iconSize:"sm",onClick:()=>{a(qa),o(Ya),s(1),t?.()},disabled:!(n!==qa||i!==Ya||1!==r)})})})};function VertexSelectionHighlightingPanelSection({onResetSelectionHighlighting:n,onUpdateSelectionHighlightColor:a,onUpdateSelectionHighlightOpacity:i,onUpdateSelectionHighlightLineThickness:o}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Selection Highlighting",e(VertexSelectionHighlightingReset,{onReset:n})]}),children:e(VertexSelectionHighlightingControls,{onUpdateSelectionHighlightColor:a,onUpdateSelectionHighlightOpacity:i,onUpdateSelectionHighlightLineThickness:o})})}const VertexViewerBackgroundColorPicker=({onUpdate:t})=>{const[n,a]=h(ti);return e(VertexColorPicker,{"data-testid":"viewer-background-color-picker",value:n,onValueChanged:e=>{t?.(e.detail)},onInput:e=>a(e)})};function VertexViewerBackgroundControls({onUpdateViewerBackgroundColor:a}){return t(n,{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Color"}),e(VertexViewerBackgroundColorPicker,{onUpdate:a})]})}const VertexViewerBackgroundReset=({onReset:t})=>{const[n,a]=h(ti),i=void 0;return e("div",{className:"ml-auto",children:e(F,{content:"Reset Background Color",children:e(W,{"data-testid":"viewer-background-reset",iconName:"reset",iconSize:"sm",onClick:()=>{a(ei),t?.()},disabled:!(n!==ei)})})})};function VertexViewerBackgroundPanelSection({onResetViewerBackgroundColor:n,onUpdateViewerBackgroundColor:a}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Viewer Background",e(VertexViewerBackgroundReset,{onReset:n})]}),children:e(VertexViewerBackgroundControls,{onUpdateViewerBackgroundColor:a})})}const isInputElement=e=>{const t=e instanceof HTMLElement&&"VERTEX-AUTO-RESIZE-TEXTAREA"===e.tagName,n=e instanceof HTMLElement&&"VERTEX-TEXTFIELD"===e.tagName,a=e instanceof HTMLElement&&"true"===e.contentEditable,i=e instanceof HTMLElement&&"VERTEX-SCENE-TREE-SEARCH"===e.tagName,o=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement,r=e instanceof HTMLElement&&"VERTEX-VIEWER-PIN-TOOL"===e.tagName,s=e instanceof HTMLElement&&"VERTEX-VIEWER-TRANSFORM-WIDGET"===e.tagName;return t||n||a||i||o||r||s},useRecoilReducer=({reducer:e,atom:t})=>{const n=void 0,a=void 0;return[s(t),useRecoilReducerDispatch({reducer:e,atom:t})]},useRecoilReducerDispatch=({reducer:e,atom:t})=>{const n=void 0;return i(({set:n})=>async a=>{n(t,t=>e(t,a))},[])},ai=o({key:"keyBindings",default:{applyBindings:[],bindings:{},pressed:{}}});function reducer(e,t){switch(t.type){case"push-key-binding":const n=e.bindings[t.binding.keyBind]?.find(e=>e.id===t.binding.id);return null!=n?e:{...e,bindings:{...e.bindings,[t.binding.keyBind]:[...e.bindings[t.binding.keyBind]??[],t.binding]}};case"remove-key-binding":const a=e.bindings[t.binding.keyBind]?.find(e=>e.id===t.binding.id);return null==a?e:{...e,bindings:{...e.bindings,[t.binding.keyBind]:(e.bindings[t.binding.keyBind]??[]).filter(e=>e.id!==t.binding.id)}};case"add-apply-key-binding":return{...e,applyBindings:[...e.applyBindings,t.binding]};case"remove-apply-key-binding":return{...e,applyBindings:e.applyBindings.filter(e=>e.id!==t.id)};case"set-key-pressed":return{...e,applyBindings:e.applyBindings.map(t=>({...t,active:null!=t.keyBind&&allPressed(t.keyBind,e.pressed)})),pressed:{...e.pressed,[t.key]:t.pressed},lastPressed:t.pressed?t.key:void 0}}}const useKeyBindingState=()=>useRecoilReducer({reducer:reducer,atom:ai}),useKeyBindingReadonlyState=()=>s(ai);function pressedValue(e,t){return e.includes("!")?!t[e.replace("!","")]&&!t[e.replace("!","").toLowerCase()]:t[e]||t[e.toLowerCase()]}function isPressed(e,t){const n=e.split("||");return n.length>1?n.some(e=>pressedValue(e,t)):pressedValue(n[0],t)}function allPressed(e,t){const n=void 0;return e.split("+").every(e=>isPressed(e,t))}function matchingSingleFnBindings(e,t,n){return e.filter(e=>!e.repeat).filter(e=>null!=e.keyBind&&null!=n&&e.keyBind?.includes(n)&&allPressed(e.keyBind,t)).map(e=>e.fn)}function matchingOffBindings(e,t,n){return e.filter(e=>e.off&&e.active&&null!=e.keyBind&&null==n&&!allPressed(e.keyBind,t)).map(e=>e.off)}const useApplyKeyBinding=e=>{const[t,n]=useKeyBindingState();A.useEffect(()=>{const a=_e.create();return n({type:"add-apply-key-binding",binding:{...e,id:a,active:null!=e.keyBind&&allPressed(e.keyBind,t.pressed)}}),()=>{n({type:"remove-apply-key-binding",id:a})}},[e.fn,e.off,e.keyBind,e.repeat])},useStackKeyBinding=(e,t=[])=>{const[,n]=useKeyBindingState();A.useEffect(()=>{const t=null==e.addPredicate||e.addPredicate(),a=null!=e.cancelPredicate&&e.cancelPredicate();t&&n({type:"push-key-binding",binding:e}),a&&n({type:"remove-key-binding",binding:e})},t)},useKeyBindings=({keydownRepeatInterval:e=25,keydownIgnorePredicate:t=isInputElement}={})=>{const[n,a]=useKeyBindingState(),i=A.useCallback(e=>{Object.keys(n.bindings).filter(t=>t.includes(e)&&allPressed(t,{...n.pressed,[e]:!0})).forEach(e=>{const t=n.bindings[e],i=t.length>0?t[t.length-1]:void 0;null!=i&&(i.fn(),a({type:"remove-key-binding",binding:i}))})},[n]);A.useEffect(()=>{const handleKeyDown=e=>{if(!e.repeat&&!t(e.target)){a({type:"set-key-pressed",key:e.key,pressed:!0}),i(e.key);const t={...n.pressed,[e.key]:!0},o=matchingSingleFnBindings(n.applyBindings,t,e.key),r=matchingOffBindings(n.applyBindings,t,e.key);(o.length>0||r.length>0)&&e.preventDefault()}},handleKeyUp=e=>{a({type:"set-key-pressed",key:e.key,pressed:!1})};return window.addEventListener("keydown",handleKeyDown),window.addEventListener("keyup",handleKeyUp),()=>{window.removeEventListener("keydown",handleKeyDown),window.removeEventListener("keyup",handleKeyUp)}},[i,n.applyBindings,n.pressed]),A.useEffect(()=>{const e=matchingSingleFnBindings(n.applyBindings,n.pressed,n.lastPressed),t=matchingOffBindings(n.applyBindings,n.pressed,n.lastPressed);e.forEach(e=>e()),t.forEach(e=>e())},[n.pressed,n.lastPressed]),A.useEffect(()=>{const t=n.applyBindings.filter(e=>e.repeat&&null!=e.keyBind&&allPressed(e.keyBind,n.pressed)).map(e=>e.fn);if(t.length>0){const n=setInterval(()=>{t.forEach(e=>e())},e);return()=>{clearInterval(n)}}return()=>{}},[n.applyBindings,n.lastPressed])},VertexBoxSelectionButton=()=>{const t=useBoxSelectionActions(),n=s(un);return useStackKeyBinding({id:"ExitBoxSelection",keyBind:"Escape",fn:t.disable,addPredicate:()=>n,cancelPredicate:()=>!n},[n]),e(F,{content:"Box Selection",children:e(W,{iconName:"box-cursor",iconColor:n?"primary":"secondary","data-testid":"viewer-toolbar-enable-box-selection-button",onClick:n?t.disable:t.enable})})},ii=1,VertexResizableContent=({className:n,style:a,displayShadow:i,heading:o,id:r,initialScale:s,placement:l="left",children:c,onResize:d,...u})=>{const m="left"===l||"right"===l,p="top"===l;function getHorizontalResizeDirection(){switch(l){case"left":return"right";case"right":return"left";default:return"none"}}function getVerticalResizeDirection(){return"top"===l?"top":"none"}const h=null!=s?s:1;return e(X,{id:r,"data-testid":`resizable-content-position-${l}`,className:Na(n,"pointer-events-auto z-popover md:z-overlay bg-white bg-opacity-95 flex-grow-0 flex-shrink-0 border-neutral-300",{"border-r min-w-75 max-w-half":"left"===l,"sidebar-shadow-right":"left"===l&&i,"border-l min-w-75 max-w-half":"right"===l,"sidebar-shadow-left":"right"===l&&i,"border-t bottom-0 fixed":"top"===l,"min-h-12 sheet":p}),style:{maxHeight:"top"===l?window.innerHeight:void 0,...a},initialHorizontalScale:m?s:void 0,initialVerticalScale:p?h:void 0,horizontalDirection:getHorizontalResizeDirection(),verticalDirection:getVerticalResizeDirection(),position:"right"===l||"top"===l?"absolute":"relative",onResizeEnd:()=>d?.(),...u,children:t("div",{className:"flex flex-col h-full w-full",children:["top"===l&&e("div",{className:"flex justify-center w-full",children:e("div",{className:"block md:hidden w-20 h-0.5 mt-0.5 bg-neutral-600 rounded"})}),o,e("div",{className:Na("w-full flex flex-col h-0 flex-grow",{"right-0":"right"===l}),children:c})]})})};function useDefaultKeybindings(){useApplyKeyBinding({fn:useActionCallback(({snapshot:e})=>async()=>{const t=await e.getPromise(Xe),n=await(t?.scene()),a={milliseconds:500};await(n?.camera().viewAll().render({animation:a}))}),keyBind:"f"})}function useLongPress({target:e,callback:t,delay:n=500,onMovement:a}){const[i,o]=k.useState(),[r,s]=k.useState();k.useEffect(()=>{const handleTouchStart=e=>{const a=e;null!=a.touches&&1===a.touches.length&&(null!=i&&clearTimeout(i),s(b.create(a.touches[0].clientX,a.touches[0].clientY)),o(setTimeout(()=>t?.(a),n)))},handleTouchMove=e=>{const t=e;null!=t.touches&&t.touches.length>0&&null!=i&&null!=r&&b.distance(r,b.create(t.touches[0].clientX,t.touches[0].clientY))>=2&&(clearTimeout(i),a?.())},handleTouchEnd=()=>{null!=i&&clearTimeout(i)};return e?.addEventListener("touchstart",handleTouchStart),e?.addEventListener("touchmove",handleTouchMove),e?.addEventListener("touchend",handleTouchEnd),()=>{e?.removeEventListener("touchstart",handleTouchStart),e?.removeEventListener("touchmove",handleTouchMove),e?.removeEventListener("touchend",handleTouchEnd)}},[e,i,r])}var oi=Object.freeze({__proto__:null,isInputElement:isInputElement,keyBindings:ai,reducer:reducer,useApplyKeyBinding:useApplyKeyBinding,useDefaultKeybindings:useDefaultKeybindings,useKeyBindingReadonlyState:useKeyBindingReadonlyState,useKeyBindings:useKeyBindings,useLongPress:useLongPress,useStackKeyBinding:useStackKeyBinding});function asBooleanAttribute(e){return!!e||void 0}const VertexContextMenu=({targetElement:t,menuType:n,disableBackdrop:a,openPredicate:i,onOpen:o,onClose:r,children:l})=>{const c=useContextMenuActions(),d=s(an),u=s(cn),m=A.useMemo(()=>["bottom-end","top-start","top-end","right","left"],[]),p=d===n;useStackKeyBinding({id:"ContextMenu",keyBind:"Escape",fn:c.clearActiveContextMenu,addPredicate:()=>null!=d&&d===n,cancelPredicate:()=>null==d},[d]);const h=A.useMemo(()=>null!=t?t:null!=i?window:void 0,[t,i]);return useLongPress({target:h,callback:e=>c.longPress(e,n,i,o),onMovement:()=>c.clearActiveContextMenu()}),A.useEffect(()=>{const handleWindowPointerDown=e=>{const t=void 0;if(!targetWithinMenu(e)&&2!==e.buttons&&d===n){const t=targetShouldSkipNextHit(e);c.clearActiveContextMenu(t)}};if(a)return window.addEventListener("pointerdown",handleWindowPointerDown),()=>{window.removeEventListener("pointerdown",handleWindowPointerDown)}},[a,n,d]),A.useEffect(()=>{const handlePointerDown=e=>{c.pointerDown(e)},handlePointerUp=e=>{c.pointerUp(e,n,i,o)},handleContextMenu=e=>c.contextMenu(e,i);return h?.addEventListener("pointerdown",handlePointerDown),h?.addEventListener("pointerup",handlePointerUp),h?.addEventListener("contextmenu",handleContextMenu),()=>{h?.removeEventListener("pointerdown",handlePointerDown),h?.removeEventListener("pointerup",handlePointerUp),h?.removeEventListener("contextmenu",handleContextMenu)}},[t,n,i]),e("div",{className:Na({hidden:!p}),children:e(Z,{"data-testid":`${n}-context-menu`,open:asBooleanAttribute(p),position:u,fallbackPlacements:m,backdrop:!a,onMenuClosed:()=>{c.clearActiveContextMenu(),r?.()},children:e("div",{className:"pt-1",children:l})})})},VertexFitSelectedMenuItem=()=>{const n=s(Ft),a=s(Zt),i=useViewerCameraActions();return e(Y,{"data-testid":"fit-selected-menu-option",onClick:async()=>{null!=a?.boundingBox&&await i.flyToByBoundingBox(a.boundingBox)},disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"fit-selected",size:"sm"}),"Fit Selected"]})})},VertexFlyToMenuItem=()=>{const n=useViewerCameraActions(),a=s(sn);return e(Y,{"data-testid":"fly-to-part-menu-option",onClick:async()=>{const e=void 0,t=contextMenuItemIsRow(a)?a?.node.id?.hex:a?.id;null!=t&&await n.flyToById(t)},disabled:asBooleanAttribute(null==a),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"paper-airplane",size:"sm"}),"Fly To"]})})};function useSceneItemsOperations(){const e=s(Xe),t=void 0,n=void 0,a=void 0,i=void 0,o=void 0,r=void 0;return{sceneItemsOperation:A.useCallback(async(t,n)=>{const a=await(e?.scene());null==n?await(a?.items(e=>t(e.where(e=>e.all()))).execute()):n.length>0&&await(a?.items(e=>t(e.where(e=>e.withItemIds(n)))).execute())},[e]),showOnlySelected:A.useCallback(async()=>{const t=await(e?.scene());t?.items(e=>[e.where(e=>e.all()).hide(),e.where(e=>e.withSelected()).show()]).execute()},[e]),hideSelected:A.useCallback(async()=>{const t=await(e?.scene());t?.items(e=>[e.where(e=>e.withSelected()).hide()]).execute()},[e]),showOnlyItem:A.useCallback(async t=>{const n=await(e?.scene());n?.items(e=>[e.where(e=>e.all()).hide(),e.where(e=>e.withItemIds([t])).show()]).execute()},[e]),ghostSelected:A.useCallback(async()=>{const t=await(e?.scene());t?.items(e=>[e.where(e=>e.withSelected()).setPhantom(!0)]).execute()},[e]),unGhostSelected:A.useCallback(async()=>{const t=await(e?.scene());t?.items(e=>[e.where(e=>e.withSelected()).setPhantom(!1)]).execute()},[e])}}const VertexHideAllMenuItem=()=>{const n=useSceneItemsOperations();return e(Y,{"data-testid":"hide-all-menu-option",onClick:async()=>{await n.sceneItemsOperation(e=>e.hide())},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-hidden",size:"sm"}),"Hide All Parts"]})})},VertexHidePartMenuItem=()=>{const n=s(sn),a=useSceneItemsOperations();return e(Y,{"data-testid":"hide-menu-option",onClick:async()=>{const e=void 0,t=contextMenuItemIsRow(n)?n?.node.id?.hex:n.id;null!=t&&await a.sceneItemsOperation(e=>e.hide(),[t])},disabled:asBooleanAttribute(null==n),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-hidden",size:"sm"}),"Hide Part"]})})},VertexHideSelectedMenuItem=()=>{const n=s(Ft),a=useSceneItemsOperations();return e(Y,{"data-testid":"hide-selected-menu-option",onClick:()=>a.hideSelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-hidden",size:"sm"}),"Hide Selected"]})})},VertexShowAllMenuItem=()=>{const n=useSceneItemsOperations();return e(Y,{"data-testid":"show-all-menu-option",onClick:async()=>{await n.sceneItemsOperation(e=>e.show())},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Show All Parts"]})})},VertexShowOnlyMenuItem=()=>{const n=s(sn),a=useSceneItemsOperations();return e(Y,{"data-testid":"show-only-menu-option",onClick:async()=>{const e=void 0,t=contextMenuItemIsRow(n)?n?.node.id?.hex:n?.id;null!=t&&await a.showOnlyItem(t)},disabled:asBooleanAttribute(null==n),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Show Only Part"]})})},VertexShowOnlySelectedMenuItem=()=>{const n=s(Ft),a=useSceneItemsOperations();return e(Y,{"data-testid":"show-only-selected-menu-option",onClick:()=>a.showOnlySelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Show Only Selected"]})})},ri=o({key:"openedPanelActivePrimaryLeft",default:void 0}),si=o({key:"openedPanelActivePrimaryRight",default:void 0}),li=o({key:"openedPanelActiveSceneTreeSecondary",default:void 0});function usePanelActions(){return{openPrimary:useActionCallback(({set:e})=>(t,n)=>{e("left"===n?ri:si,t)}),closePrimary:useActionCallback(({set:e})=>t=>{e("left"===t?ri:si,void 0)}),openSecondary:useActionCallback(({set:e})=>t=>e(li,t)),closeSecondary:useActionCallback(({reset:e})=>()=>e(li))}}var ci=Object.freeze({__proto__:null,openedPanelActivePrimaryLeft:ri,openedPanelActivePrimaryRight:si,openedPanelActiveSceneTreeSecondary:li,usePanelActions:usePanelActions});const VertexShowPropertiesMenuItem=()=>{const n=usePanelActions(),a=useSelectionActions(),i=s(sn);return e(Y,{"data-testid":"show-properties-menu-option",disabled:asBooleanAttribute(null==i),onClick:()=>{const e=void 0,t=contextMenuItemIsRow(i)?i?.node.id?.hex:i?.id;null!=t&&(a.clearAndSelect({id:t}),n.openSecondary("Properties"))},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"info",size:"sm"}),"Show Properties"]})})};function fromApiProperty(e){return{key:e.key?.name??"",value:apiMetadataPropertyDisplayValue(e.value)}}function apiMetadataPropertyDisplayValue(e){let t="";switch(e?.type){case"string":t=e.value??t;break;case"long":case"double":t=e.value.toString()??t;break;case"timestamp":t=e.value.seconds.toLocaleString()??t}return t}const di=o({key:"showMetadataSceneItemProperties",default:!0}),ui=d({key:"nextMetadataSceneItemProperties",get:e=>async({get:t})=>{const n=t(Xe),a=t(pi(e));try{const t=await(n?.sceneItems?.listSceneItemMetadata(e,{cursor:a,size:20})),i=t?.entries?.map(e=>fromApiProperty(e)),o=void 0;return{metadata:null!=i?[...i]?.sort((e,t)=>e.key>t.key?1:-1):void 0,cursor:t?.paging.next}}catch(t){return void logger_debug(`Error encountered get metadata for scene item. [itemId={${e}}]`,t)}}}),mi=l({key:"loadedMetadataSceneItemProperties",default:[]}),pi=l({key:"metadataSceneItemPropertiesCursor",default:void 0}),hi=d({key:"hasMoreMetadataSceneItemProperties",get:e=>({get:t})=>{const n=void 0;return null!=t(pi(e))}}),fi=l({key:"isFetchingMetadataSceneItemProperties",default:!1}),gi=r({key:"metadataSceneItemName",get:async({get:e})=>{const t=e(Wt);if(null!=t){const n=e(la(t.id));return n?.name??void 0}}});var vi=Object.freeze({__proto__:null,apiMetadataPropertyDisplayValue:apiMetadataPropertyDisplayValue,fromApiProperty:fromApiProperty,hasMoreMetadataSceneItemProperties:hi,isFetchingMetadataSceneItemProperties:fi,loadedMetadataSceneItemProperties:mi,metadataSceneItemName:gi,metadataSceneItemPropertiesCursor:pi,nextMetadataSceneItemProperties:ui,showMetadataSceneItemProperties:di});const VertexGhostSelectedMenuItem=()=>{const n=s(Ft),a=useSceneItemsOperations();return e(Y,{"data-testid":"ghost-selected-menu-option",onClick:()=>a.ghostSelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-partial",size:"sm"}),"Ghost Selected"]})})};function BetaLabel({children:n,label:a="Beta",placement:i="end",borderColor:o="border-purple-400",textColor:r="text-purple-500"}){return t("div",{className:"flex items-center",children:[n,e("div",{className:Na(`flex border ${o} rounded-md px-1.5 text-xs ${r} uppercase items-center justify-center ml-2 select-none max-h-5`,{"ml-auto":"end"===i}),style:{height:"fit-content"},children:a})]})}const VertexShowModelViewsMenuItem=()=>{const n=usePanelActions(),a=useSelectionActions(),i=s(sn);return e(Y,{"data-testid":"viewer-show-model-views",disabled:asBooleanAttribute(null==i),onClick:async()=>{const e=void 0,t=contextMenuItemIsRow(i)?i?.node.id?.hex:i?.id;null!=t&&(n.openPrimary("model-views","right"),a.selectForModelViewsPanel({id:t}))},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"views",size:"sm"}),t("div",{className:"flex gap-2",children:["Show Model Views ",e(BetaLabel,{})]})]})})},VertexUnghostSelectedMenuItem=()=>{const n=s(Ft),a=useSceneItemsOperations();return e(Y,{"data-testid":"unghost-selected-menu-option",onClick:()=>a.unGhostSelected(),disabled:asBooleanAttribute(0===n.length),children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"visibility-visible",size:"sm"}),"Unghost Selected"]})})},DefaultSceneTreeContextMenu=()=>{const n=s(di);return t("div",{className:"w-56",children:[e(VertexHideSelectedMenuItem,{}),e(VertexHideAllMenuItem,{}),e(VertexShowOnlyMenuItem,{}),e(VertexShowOnlySelectedMenuItem,{}),e(VertexShowAllMenuItem,{}),e(VertexGhostSelectedMenuItem,{}),e(VertexUnghostSelectedMenuItem,{}),e(J,{}),e(VertexFitSelectedMenuItem,{}),e(VertexFlyToMenuItem,{}),e(J,{}),n&&e(VertexShowPropertiesMenuItem,{}),e(VertexShowModelViewsMenuItem,{})]})},VertexSceneTreeContextMenu=({children:t})=>{const n=useSceneTreeActions(),a=s(Vn),i=void 0;return e(VertexContextMenu,{menuType:"scene-tree",targetElement:a,onOpen:async(e,t)=>{const a=e;await n.setContextMenuItem(a.clientY)},disableBackdrop:!0,children:null!=t&&!1!==t?t:e(DefaultSceneTreeContextMenu,{})})},DefaultViewerContextMenu=()=>{const n=s(di);return t("div",{className:"w-56",children:[e(VertexHidePartMenuItem,{}),e(VertexHideSelectedMenuItem,{}),e(VertexHideAllMenuItem,{}),e(VertexShowOnlyMenuItem,{}),e(VertexShowOnlySelectedMenuItem,{}),e(VertexShowAllMenuItem,{}),e(VertexGhostSelectedMenuItem,{}),e(VertexUnghostSelectedMenuItem,{}),e(J,{}),e(VertexFitSelectedMenuItem,{}),e(VertexFlyToMenuItem,{}),e(J,{}),n&&e(VertexShowPropertiesMenuItem,{}),e(VertexShowModelViewsMenuItem,{})]})},VertexViewerContextMenu=({children:t})=>{const n=null!=t&&!1!==t,a=A.useCallback(e=>e.target instanceof HTMLElement&&"vertex-viewer"===e.target.id,[]);return e(VertexContextMenu,{menuType:"viewer",disableBackdrop:!0,openPredicate:a,children:n?t:e(DefaultViewerContextMenu,{})})},yi=35,bi=o({key:"sceneItemGhostingSelectedOpacity",default:yi}),wi=l({key:"appliedItemPhantomState",default:void 0}),Ci=o({key:"appliedItemPhantomStateIds",default:[]}),Si=r({key:"sceneItemGhostingLastSelectedPhantom",get:({get:e})=>{const t=e(Wt);return null!=t&&(e(wi(t.id))??!1)}}),VertexSceneItemGhostingOpacitySlider=({onApply:t})=>{const[n,a]=h(bi);return e(VertexSlider,{id:"phantom-opacity","data-testid":"phantom-opacity-slider",leftLabel:"0%",rightLabel:"100%",min:0,max:100,step:5,value:n,valueLabelDisplay:"auto",onValueInput:e=>{a(e.detail.value)},onValueChange:e=>{t?.(e.detail.value)}})},useSceneItemPhantomActions=()=>{const e=useViewerSceneActions(),t=useActionCallback(({snapshot:e,reset:t})=>async()=>{const n=void 0;(await e.getPromise(Ci)).forEach(e=>t(wi(e))),t(Ci)});return{setPhantomState:useActionCallback(({snapshot:t,set:n})=>async a=>{const i=await t.getPromise(Ft);i.forEach(e=>n(wi(e),a)),n(Ci,e=>[...e,...i]),await e.execute(Bt.SET_PHANTOM_SELECTED_ITEMS,e=>e.where(e=>e.withSelected()).setPhantom(a))}),clearPhantomState:useActionCallback(({snapshot:t,set:n,reset:a})=>async()=>{const i=await t.getPromise(Ft);i.forEach(e=>a(wi(e))),n(Ci,e=>e.filter(e=>!i.includes(e))),await e.execute(Bt.CLEAR_PHANTOM_SELECTED_ITEMS,e=>e.where(e=>e.withSelected()).clearPhantom(),e=>e.where(e=>e.withSelected()).select())}),clearAllPhantomState:useActionCallback(()=>async()=>{await t(),await e.execute(Bt.CLEAR_PHANTOM_ALL,e=>e.where(e=>e.all()).clearPhantom(),e=>e.where(e=>e.withSelected()).select())}),resetAllPhantomState:t}};var xi=Object.freeze({__proto__:null,DEFAULT_GHOSTING_OPACITY:yi,appliedItemPhantomState:wi,appliedItemPhantomStateIds:Ci,sceneItemGhostingLastSelectedPhantom:Si,sceneItemGhostingSelectedOpacity:bi,useSceneItemPhantomActions:useSceneItemPhantomActions});const VertexSceneItemGhostingToggle=({onApply:t})=>{const n=useSceneItemPhantomActions(),a=s(en),i=m(Si);return e(F,{content:"Select a part to display as ghost",disabled:a,children:e(H,{className:"flex items-center","data-testid":"phantom-state-toggle",variant:"switch",disabled:!a,checked:"hasValue"===i.state&&i.contents,onValueChanged:async e=>{await n.setPhantomState(e.detail),t?.(e.detail)}})})};function VertexGhostingControls({onApplyGhostingChange:a,onApplyOpacity:i}){return t(n,{children:[t("div",{className:"flex items-center py-3",children:[e(VertexSceneItemGhostingToggle,{onApply:a}),e("span",{className:"pl-4 text-sm text-neutral-700",children:"Display as Ghost"})]}),e("div",{className:"pt-4 pb-2 text-sm text-neutral-700",children:"Global Ghost Opacity"}),e(VertexSceneItemGhostingOpacitySlider,{onApply:i})]})}const VertexSceneItemGhostingClear=({onClear:n,onClearAll:a})=>{const i=useSceneItemPhantomActions(),o=s(Si);return e("div",{className:"ml-auto",children:t(ResetButton,{id:"phantom",tooltip:"Clear Ghosting",children:[e("div",{className:"pt-1"}),e(Y,{"data-testid":"reset-selected-phantom",onClick:async()=>{await i.clearPhantomState(),n?.()},disabled:!o,children:"Clear ghosting for selected"}),e(Y,{"data-testid":"reset-all-phantom",onClick:async()=>{await i.clearAllPhantomState(),a?.()},children:"Clear ghosting for all"})]})})};function VertexGhostingPanelSection({onClearGhostState:n,onClearAllGhostState:a,onApplyGhostingChange:i,onApplyOpacity:o}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Ghosting",e(VertexSceneItemGhostingClear,{onClear:n,onClearAll:a})]}),children:e(VertexGhostingControls,{onApplyGhostingChange:i,onApplyOpacity:o})})}function VertexMeasurementContextMenu({onDelete:n}){const a=s(rn);return e(VertexContextMenu,{menuType:"measurement",openPredicate:e=>e.target instanceof HTMLElement&&"VERTEX-VIEWER-MEASUREMENT-DISTANCE"===e.target.tagName,children:t(Y,{"data-testid":"measurement-delete",onClick:()=>null!=a&&n(a.id),children:[e($,{slot:"icon",name:"delete",size:"sm"}),e("div",{className:"pl-2",children:"Delete"})]})})}function useDockedPlacement(e,t){const[n,a]=k.useState(b.create(0,0));return k.useLayoutEffect(()=>{if(null!=e){const n=e.getBoundingClientRect(),i=b.create(n.left,n.bottom),o=b.create(n.right,n.bottom);a("left"===t?i:o)}},[e,t]),n}function VertexMeasurementDetails({placement:n,size:a}){const i=useMeasurementActions(),o=s(Xe),r=s(Ze),l=useDockedPlacement(o??null,n),c=s(An),d=s(Tn),u=s(Pn),m=s(Mn),p=s(jn),h=s(Hn);return e(Q,{className:"z-popover",boundaryPadding:16,boundarySelector:`#${r}`,position:l,children:t("div",{className:Na("flex flex-col min-w-40",{"text-xs leading-2":"sm"===a,"text-sm leading-4":"md"===a,"text-base leading-5":"lg"===a,"text-lg leading-5":"xl"===a}),children:[t("div",{className:"pb-2 flex justify-between items-center",children:[e("div",{className:Na("w-full",{"text-sm leading-5":"sm"===a,"text-base leading-5":"md"===a,"text-lg leading-6":"lg"===a,"text-xl leading-7 mr-6":"xl"===a}),children:"Measurement"}),e("div",{className:Na("mr-0.5",{hidden:!m}),children:e(F,{content:"Reset",placement:"left-start",children:e(W,{"data-testid":"measurement-details-reset",iconName:"reset",iconSize:"sm",onClick:i.resetMeasurement})})})]}),e(re,{"data-testid":"measurement-details-viewer-measurement-details",className:Na("gap-y-1.5",{hidden:null==c}),measurementOutcome:c,measurementOverlays:d,distanceUnits:toUnitType(p),fractionalDigits:parseInt(h,10)}),e("div",{"data-testid":"measurement-details-message",className:Na({hidden:null==u}),children:u})]})})}function useCallbackRef(e){const[t,n]=A.useState(e?.override??null),a=void 0;return{element:t,callback:A.useCallback(t=>n(e?.override??t),[])}}function VertexPointToPointMeasurement({detailsPlacement:a,detailsSize:i,onPointToPointMeasurementChange:o}){const r=useMeasurementActions(),l=s(Xe),c=s(hn),d=s(gn),u=s(jn),m=s(Hn),{callback:p,element:h}=useCallbackRef();usePointToPointMeasurement(h);const f=P(e=>{const t={start:e.detail.start,end:e.detail.end,invalid:!e.detail.valid};r.setEditedPointToPointMeasurement(t),o?.(t)},[r]);return c?t(n,{children:[e(se,{"data-testid":"point-to-point-measurement",ref:p,viewer:l??void 0,mode:"replace",start:d?.start,end:d?.end,invalid:d?.invalid,units:toUnitType(u),fractionalDigits:parseInt(m,10),showAxisReferenceLines:!0,onEditEnd:f}),e(VertexMeasurementDetails,{placement:a,size:i}),e(VertexMeasurementContextMenu,{onDelete:r.resetMeasurement})]}):e(n,{})}function VertexPointToPointMeasurementTool(){const t=useMeasurementActions(),n=s(hn);return useStackKeyBinding({id:"ExitMeasurement",keyBind:"Escape",fn:t.disableEditMeasurement,addPredicate:()=>n,cancelPredicate:()=>!n},[n,t]),e(F,{content:"Point to Point Measurement",children:e(W,{iconName:"tape-measure","data-testid":"viewer-toolbar-point-to-point-measurement-button",iconColor:n?"primary":"secondary",onClick:t.toggleEditPointToPointMeasurement})})}const ki=o({key:"viewerToolkitSdkConfig",default:void 0});var Ai=Object.freeze({__proto__:null,sdkConfig:ki});const VertexPreciseMeasurement=({detailsPlacement:a,detailsSize:i,onEntitiesChanged:o,onOutcomeChanged:r})=>{const l=s(Xe),c=s(ki),d=s(yn),{callback:u,element:m}=useCallbackRef();return usePreciseMeasurementModel(m,o,r),d?t(n,{children:[e(le,{"data-testid":"precise-measurement-viewer-tool",ref:u,viewer:l??void 0,config:JSON.stringify({network:{apiHost:c?.network?.apiHost,renderingHost:c?.network?.renderingHost,sceneTreeHost:c?.network?.sceneTreeHost,sceneViewHost:c?.network?.sceneViewHost}})}),e(VertexMeasurementDetails,{placement:a,size:i})]}):e(n,{})};function VertexPreciseMeasurementTool(){const t=useMeasurementActions(),n=s(yn);return e(F,{content:"Precise Measurement",children:e(W,{iconName:"ruler","data-testid":"viewer-toolbar-precise-measurement-button",iconColor:n?"primary":"secondary",onClick:t.toggleEditPreciseMeasurement})})}function VertexApplicationMessages(){const a=s(Ke),i=s(Ge);return t(n,{children:[null!=a&&e(ee,{className:"z-[16000]",duration:a.duration,open:!0,content:a.message,type:a.type},a.id),null!=i&&e(te,{placement:"bottom-left",className:"z-[16000]",duration:i.duration,open:!0,content:i.message,type:i.type},i.id)]})}const Ti={binding:"{{row.node.name}}",label:"Name",metadataKeyName:"VERTEX_SCENE_ITEM_NAME"};function mapToColumn(e,t){return{label:"name"===e.toLowerCase()?"Name (Property)":e,binding:`{{row.metadata.${e}}}`,initialWidth:t,minWidth:t/2}}const Pi=o({key:"sceneTreeColumnsRefreshTrigger",default:0}),Mi=o({key:"sceneTreeColumnsWhitelistedColumns",default:[]}),Ei=r({key:"sceneTreeColumnsAvailableColumns",get:async({get:e})=>{const t=e(Ln);return e(Pi),null!=t?await t.fetchMetadataKeys():[]}}),Ii=r({key:"sceneTreeColumnsAvailableSortedColumns",get:({get:e})=>e(Ei).filter(e=>e!==Ti.metadataKeyName).sort((e,t)=>e.localeCompare(t))}),Ni=o({key:"sceneTreeColumnsVisibleMetadataColumnNames",default:[]}),Oi=r({key:"sceneTreeColumnsActiveColumns",get:({get:e})=>{const t=e(Ni),n=e(Vn),a=n?.clientWidth;if(null!=a&&a>0){const e=1/(t.length+1)*a,n=(a-e)/t.length;return t.reduce((e,t)=>{const a=mapToColumn(t,n);return{...e,[a.label]:a}},{Name:{...Ti,initialWidth:e,minWidth:n}})}return{Name:Ti}}}),Vi=r({key:"sceneTreeColumnsActiveColumnNames",get:({get:e})=>Object.keys(e(Oi))});function useSceneTreeColumnActions(){return{setActive:useActionCallback(({set:e})=>async t=>{e(Ni,t)}),refreshKeyList:useActionCallback(({set:e})=>()=>{e(Pi,e=>e+1)})}}const Li=16,_i=-8;var Ri;function useOpenPositionedPopover({open:e,buttonElement:t,horizontalOffset:n,verticalOffset:a}){const[i,o]=k.useState(),[r,s]=k.useState(),l=void 0;return{position:i,direction:r,handleOpen:k.useCallback(()=>{if(!e){const e=t?.getBoundingClientRect();if(null!=e){const t=n??Li,i=a??_i,r=e.x>window.innerWidth/2?Ri.LEFT:Ri.RIGHT;o({x:r===Ri.LEFT?e.left-t:e.right+t,y:e.top+i}),s(r)}}},[e,t])}}!function(e){e.LEFT="left",e.RIGHT="right"}(Ri||(Ri={}));var Di=Object.freeze({__proto__:null,DEFAULT_HORIZONTAL_POSITION_OFFSET:Li,DEFAULT_NAME_COLUMN:Ti,DEFAULT_VERTICAL_POSITION_OFFSET:_i,get PlacementDirection(){return Ri},mapToColumn:mapToColumn,sceneTreeColumnsActiveColumnNames:Vi,sceneTreeColumnsActiveColumns:Oi,sceneTreeColumnsAvailableColumns:Ei,sceneTreeColumnsAvailableSortedColumns:Ii,sceneTreeColumnsRefreshTrigger:Pi,sceneTreeColumnsVisibleMetadataColumnNames:Ni,sceneTreeColumnsWhitelistedColumns:Mi,useOpenPositionedPopover:useOpenPositionedPopover,useSceneTreeColumnActions:useSceneTreeColumnActions});const zi=o({key:"sceneTreeSearchActive",default:!1}),Bi=o({key:"sceneTreeColumnsPartial",default:!1}),ji=o({key:"sceneTreeSearchValue",default:void 0}),Hi=o({key:"sceneTreeSearchExactMatch",default:!1}),Fi=o({key:"sceneTreeSearchRemoveHiddenItems",default:!1}),Wi=o({key:"sceneTreeSearchResultCount",default:0}),Ui=o({key:"sceneTreeSearchActiveColumns",default:[]}),Gi=r({key:"sceneTreeSearchNameColumnActive",get:({get:e})=>{const t=e(Ui);return 0===t.length||t.includes(Ti.metadataKeyName)}});function useSceneTreeSearch({sceneTreeElement:e}){const t=useSceneTreeActions(),n=s(zi),a=c(Wi),i=c(qt);A.useEffect(()=>{let t;return whenComponentReady(e,()=>{t=e?.controller?.stateChanged(e=>{void 0!==e?.totalFilteredRows&&a(e?.totalFilteredRows)})}),()=>{t?.dispose()}},[e]),A.useEffect(()=>{if(null!=e){let a;return whenComponentReady(e,()=>{a=e?.controller?.stateChanged(e=>{if(null!=e?.filterTerm){const t=e?.rows.find(e=>e?.node?.selected);i(t?.node.id?.hex)}else n&&t.flyToFirstSelectedItem()})}),()=>{a?.dispose()}}},[e,e?.controller,open])}function useSceneTreePartialResults({sceneTreeElement:e}){const t=c(Bi);A.useEffect(()=>{let n;return whenComponentReady(e,()=>{n=e?.controller?.stateChanged(e=>{t(!!e?.isPartialKeysResponse)})}),()=>{n?.dispose()}},[e])}const useSceneTreeSearchActions=()=>{const e=useActionCallback(({set:e})=>t=>{e(Ui,t)}),t=useActionCallback(({snapshot:t})=>async(n,a,i,o)=>{const r=await t.getPromise(Vn),s=await t.getPromise(Hi),l=await t.getPromise(Fi),c=await t.getPromise(Ui),d=c.length>0?a?[...c,n]:c.filter(e=>e!==n):[...i,Ti.metadataKeyName].filter(e=>e!==n);e(d),o&&r?.filterItems(o,{columns:d,exactMatch:s,removeHiddenItems:l})}),n=useActionCallback(({snapshot:e,set:t})=>async(n,a,i)=>{const o=await e.getPromise(Vn),r=await e.getPromise(Hi),s=await e.getPromise(Fi),l=await e.getPromise(Ui),c=n.filter(e=>!a.includes(e)),d=a.filter(e=>!n.includes(e)),u=l.length>0?[...l.filter(e=>!c.includes(e)),...d]:[...a,Ti.metadataKeyName],m=u.length>0?u:[...a,Ti.metadataKeyName];t(Ui,m),i&&o?.filterItems(i,{columns:m,exactMatch:r,removeHiddenItems:s})}),a=useActionCallback(({set:e})=>t=>{e(Hi,t)}),i=useActionCallback(({set:e})=>t=>{e(Fi,t)});return{setMetadataSearchKeys:e,updateMetadataSearchAfterSearchKeysChange:t,updateMetadataSearchAfterColumnVisibilityChange:n,setMetadataSearchExactMatch:a,setMetadataSearchRemoveHiddenItems:i}};var Ki=Object.freeze({__proto__:null,sceneTreeColumnsPartial:Bi,sceneTreeSearchActive:zi,sceneTreeSearchActiveColumns:Ui,sceneTreeSearchExactMatch:Hi,sceneTreeSearchNameColumnActive:Gi,sceneTreeSearchRemoveHiddenItems:Fi,sceneTreeSearchResultCount:Wi,sceneTreeSearchValue:ji,useSceneTreePartialResults:useSceneTreePartialResults,useSceneTreeSearch:useSceneTreeSearch,useSceneTreeSearchActions:useSceneTreeSearchActions});const targetIsElement=(e,t)=>e instanceof Element&&e.tagName===t;function useRecoilRef({state:e}){const t=void 0;return i(({set:t})=>n=>{t(e,n)},[])}var $i;function styleFromOptionalFont(e){return null!=e?{"--scene-tree-default-font-family":styleFromFontFace(e.fontFace),"--scene-tree-default-font-color":e.color}:{}}function styleFromOptionalBackgroundColors(e){const t=e?.depthColors,n=null!=t?Object.keys(t).reduce((e,n)=>({...e,[`--scene-tree-row-background-color-depth-${n}`]:t[parseInt(n)]}),{}):{};return null!=e?{...n,"--scene-tree-hovered-row-background-color":e.hovered,"--scene-tree-selected-row-background-color":e.selected,"--scene-tree-row-background-color":e.defaultColor}:{}}function styleFromFontFace(e){return e===$i.ROBOTO_MONO?"var(--vertex-ui-font-family-monospace)":"var(--vertex-ui-font-family)"}!function(e){e.ROBOTO="ROBOTO",e.ROBOTO_MONO="ROBOTO_MONO"}($i||($i={}));const qi=o({key:"sceneTreeAdditionalMetadataKeys",default:[]}),Yi=r({key:"sceneTreeActiveMetadataKeys",get:({get:e})=>{const t=e(qi),n=e(Ni),a=e(Mi),i=new Set([...t,...n]),o=new Set(a);return 0===a.length?Array.from(i):Array.from(i.intersection(o))}});var Xi=Object.freeze({__proto__:null,sceneTreeActiveMetadataKeys:Yi,sceneTreeAdditionalMetadataKeys:qi});function childrenAsArray(e){return Array.isArray(e)?e:[e]}function filterChildElements(e,t){return childrenAsArray(e).filter(e=>A.isValidElement(e)&&e.type===t)}function findChildElement(e,t){return filterChildElements(e,t)[0]}function cloneChildNodeOrFunction(e,t){return"object"==typeof e?A.cloneElement(e,t):e(t)}function useStateSyncedValue(e,t,{transform:n}={}){const[a,i]=h(e);return A.useEffect(()=>{null!=t&&i(null!=n?n(t):t)},[t]),a}const VertexEnterSceneTreeSearchModeButton=({onEnterSearchMode:t})=>{const n=c(zi);return e(F,{className:"flex ml-auto",content:"Scene Tree Search",children:e(W,{"data-testid":"enter-scene-tree-search-mode-button",iconName:"search",iconSize:"sm",onPointerDown:e=>{e.preventDefault()},onClick:()=>{n(!0),t?.()}})})},VertexSceneTreeMetadataCheck=({checked:n,disabled:a,onChange:i,children:o})=>{const r="string"==typeof o?o.replace(" ","-"):"";return t("div",{className:"flex items-center",children:[e(H,{"data-testid":`scene-tree-metadata-check-${r}`,variant:"check",checked:n,disabled:a,onValueChanged:e=>i?.(e.detail)}),e("div",{className:"pl-2 py-1 text-[0.875rem] w-full","data-testid":`scene-tree-metadata-name-${r}`,onClick:()=>{a||i?.(!n)},children:o})]})},VertexSceneTreeSearchOptionsPopover=({onSearchedSceneTreeColumnsChange:a,onSearchForExactMatchChange:i})=>{const o=useSceneTreeActions(),r=useSceneTreeSearchActions(),l=s(Vn),c=s(Gi),d=s(Ui),u=s(ji),m=s(Hi),p=s(Fi),h=s(Ni),{element:f,callback:g}=useCallbackRef(),v="scene-tree-search",b=s(Rn(v)),{position:w,direction:C,handleOpen:S}=useOpenPositionedPopover({open:b,buttonElement:f,horizontalOffset:20}),A=k.useCallback(()=>{o.closeSceneTreePopover()},[]),T=C===Ri.LEFT?"left-end":"right-start",updateSearch=async(e,t)=>{if(u){const n=d.length>0?d:[...h,Ti.metadataKeyName];await(l?.filterItems(u,{columns:n,exactMatch:e,removeHiddenItems:t}))}};return t(n,{children:[e(F,{content:"Search Options",placement:"top",children:e(W,{"data-testid":"scene-tree-search-options-popover-button",className:"text-neutral-700",ref:g,iconName:"gear",iconSize:"sm",onClick:()=>{b?A():(S(),o.openSceneTreePopover(v))}})}),b&&e(ne,{"data-testid":"scene-tree-search-options-popover",open:b,backdrop:!1,position:w,resizeBehavior:"fixed",placement:T,className:"z-popover",children:t("div",{className:Na("flex flex-col bg-white border border-neutral-300 rounded",{hidden:!b}),children:[t("div",{className:"flex items-center text-[0.875rem] p-3 border-b border-neutral-300 pb-2",children:[e("div",{className:"pr-2 text-[0.875rem] whitespace-nowrap",children:"Column Properties Search"}),e(W,{className:"ml-auto",iconName:"close",iconSize:"sm",onClick:()=>{A()}})]}),t("div",{className:"max-h-64 p-3 overflow-y-auto",children:[e("div",{className:"text-[0.875rem] pb-2 pr-2",children:"Select properties to perform the search on:"}),e(VertexSceneTreeMetadataCheck,{checked:c,disabled:0===d.length||d.every(e=>e===Ti.metadataKeyName),onChange:async e=>{await r.updateMetadataSearchAfterSearchKeysChange(Ti.metadataKeyName,e,h,u),a?.()},children:Ti.label},Ti.metadataKeyName),h.map(t=>e(VertexSceneTreeMetadataCheck,{checked:d.includes(t),disabled:d.length>0&&d.every(e=>e===t),onChange:async e=>{await r.updateMetadataSearchAfterSearchKeysChange(t,e,h,u),a?.()},children:t},t))]}),t("div",{className:"flex p-3 border-t border-neutral-300",children:[e(H,{className:"flex items-center","data-testid":"filter-exact-match-toggle",variant:"switch",checked:m,onValueChanged:async e=>{r.setMetadataSearchExactMatch(e.detail),i?.(),await updateSearch(e.detail,p)}}),e("span",{className:"pl-4 text-[0.875rem] text-neutral-800",children:"Return only exact matches"})]}),t("div",{className:"flex px-3 pb-3",children:[e(H,{className:"flex items-center","data-testid":"filter-remove-hidden-items-toggle",variant:"switch",checked:p,onValueChanged:async e=>{r.setMetadataSearchRemoveHiddenItems(e.detail),await updateSearch(m,e.detail)}}),e("span",{className:"pl-4 text-[0.875rem] text-neutral-800",children:"Search only visible items"})]})]})})]})},VertexSceneTreeSearchBar=({onSearch:n,onClearSearch:a,onExitSearchMode:i,onSearchedSceneTreeColumnsChange:o,onSearchForExactMatchChange:r,sceneTreeSearchElement:l,children:c})=>{const d=useSceneTreeActions(),u=s(Vn),[m,p]=h(zi),[f,g]=h(ji),v=s(Rn("scene-tree-search"));useSceneTreeSearch({sceneTreeElement:u??null});const{element:b,callback:w}=useCallbackRef({override:l}),C=null==f||""===f;return k.useEffect(()=>{m&&b?.setFocus()},[b,m]),t("div",{className:"flex w-full py-3 px-2",children:[e(F,{className:"self-center mr-1",content:"Exit Search",children:e(W,{"data-testid":"scene-tree-search-close-button",iconName:"caret-left",iconSize:"sm",onPointerDown:e=>{e.preventDefault()},onClick:async()=>{p(!1),g(void 0),await(b?.clear()),await(u?.filterItems("")),v&&d.closeSceneTreePopover(),await d.flyToFirstSelectedItem(),i?.()}})}),t(ce,{"data-testid":"scene-tree-search-bar",ref:w,controller:u?.controller,onBlur:()=>{C&&(p(!1),i?.(),v&&d.closeSceneTreePopover())},onSearch:()=>{g(b?.value),n?.(b?.value)},children:[c,e($,{slot:"clear-icon",name:"close-circle-fill",size:"sm",onPointerDown:async()=>{await d.flyToFirstSelectedItem(),a?.()}})]}),e("div",{className:"self-center pl-1",onPointerDown:e=>{e.preventDefault()},children:e(VertexSceneTreeSearchOptionsPopover,{onSearchedSceneTreeColumnsChange:o,onSearchForExactMatchChange:r})})]})},VertexSceneTreeSearch=({onEnterSearchMode:n,onExitSearchMode:a,onSearch:i,onClearSearch:o,onSearchedSceneTreeColumnsChange:r,onSearchForExactMatchChange:l,children:c})=>{const d=s(zi);return t(de,{className:"h-11 p-0 border-b border-neutral-300 box-content",slot:"header",children:[d&&e(VertexSceneTreeSearchBar,{onSearch:i,onClearSearch:o,onExitSearchMode:a,onSearchedSceneTreeColumnsChange:r,onSearchForExactMatchChange:l,children:c}),!d&&e("div",{className:"ml-auto mr-2",children:e(VertexEnterSceneTreeSearchModeButton,{onEnterSearchMode:n})})]})};function useCacheableLoadable(e,t){const n=M(),[a,i]=E(0),o=m(e);T(()=>{"hasValue"===o.state&&(n.current=o.contents)},[t,o]);const[r,s]=I(()=>"hasValue"!==o.state&&null!=n.current?[n.current,!0]:"hasValue"===o.state?[o.contents,!1]:[void 0,!1],[o.state,o.contents,a]),l=P(()=>{n.current=void 0,i(a+1)},[a]),c=void 0;return I(()=>({data:r,state:o.state,cached:s,invalidate:l}),[l,r,s,o.state])}const VertexSceneTreeColumnPopover=({onVisibleSceneTreeColumnsChange:a})=>{const i=useSceneTreeActions(),o=useSceneTreeColumnActions(),r=useSceneTreeSearchActions(),l=void 0;useSceneTreePartialResults({sceneTreeElement:s(Vn)??null});const c=s(ji),d=s(Mi),u=useCacheableLoadable(Ii),m=d.length>0?d:u.data,p=s(Ni),h=s(Bi),[f,g]=k.useState(p),[v,b]=k.useState(""),{element:w,callback:C}=useCallbackRef(),S="scene-tree-columns",A=s(Rn(S)),{position:T,direction:P,handleOpen:M}=useOpenPositionedPopover({open:A,buttonElement:w}),E=k.useCallback(()=>{i.closeSceneTreePopover()},[]),I=P===Ri.LEFT?"left-end":"right-start",N=k.useMemo(()=>{if(null!=m){const e=m.filter(e=>f.indexOf(e)<0),t=void 0;return[...[...f].sort((e,t)=>e.localeCompare(t)),...e]}return[]},[f,m]),O=k.useMemo(()=>N,[A,m]);return t(n,{children:[e(F,{content:"Configure Columns",placement:"top",children:e(W,{"data-testid":"scene-tree-column-popover-button",ref:C,iconName:"columns-add",iconSize:"sm",onClick:()=>{A?E():(M(),i.openSceneTreePopover(S))}})}),A&&e(ne,{"data-testid":"scene-tree-column-popover",open:A,backdrop:!1,position:T,resizeBehavior:"fixed",placement:I,className:"z-popover",children:t("div",{className:Na("flex flex-col bg-white border border-neutral-300 rounded",{hidden:!A}),children:[t("div",{className:"flex items-center text-[0.875rem] p-3",children:[t("div",{className:"pr-2",children:[e("div",{className:"text-[0.875rem]",children:"Assembly Properties"}),e("div",{className:"text-[0.75rem] text-neutral-700 mt-1.5",children:"Select up to six properties to appear in the Assembly panel."})]}),e(W,{"data-testid":"scene-tree-columns-popover-close-button",className:"ml-auto",iconName:"close",iconSize:"sm",onClick:()=>{b(""),E()}})]}),e(ae,{className:"flex w-full px-2 overflow-hidden border-b border-neutral-300 pb-2",id:"scene-tree-available-columns-search-bar","data-testid":"scene-tree-available-columns-search-bar",multiline:!1,placeholder:"Filter properties",type:"text",onInputInput:e=>{const t=e.detail.value;null!=t&&b(t.toLowerCase())}}),h&&e(ue,{"data-testid":"partial-key-list-notification-banner",message:"loading"===u.state?"Refreshing results...":"Data loading, refresh for more.",actionLabel:"Refresh",onAction:()=>o.refreshKeyList()}),t("div",{className:"max-h-64 p-3 overflow-y-auto",children:[e(VertexSceneTreeMetadataCheck,{checked:!0,disabled:!0,children:Ti.label}),O.filter(e=>""===v||e.toLowerCase().includes(v)).map(t=>e(VertexSceneTreeMetadataCheck,{checked:f.includes(t),disabled:f.length>=6&&!f.includes(t),onChange:e=>{g(e?[...f,t]:f.filter(e=>e!==t))},children:t},t))]}),t("div",{className:"flex items-center p-3 border-t border-neutral-300 space-x-4",children:[e("div",{className:"text-[0.75rem] text-[var(--vertex-ui-blue-700)] cursor-pointer","data-testid":"scene-tree-column-clear-selection",onClick:()=>g([]),children:"Clear selection"}),e("div",{className:"flex-grow"}),t("div",{className:"flex space-x-2",children:[e(G,{"data-testid":"scene-tree-column-popover-cancel",color:"secondary",onClick:()=>{b(""),E()},children:"Cancel"}),e(G,{"data-testid":"scene-tree-column-popover-apply",color:"primary",onClick:async()=>{await r.updateMetadataSearchAfterColumnVisibilityChange(p,f,c),await o.setActive(f),a?.(f),b(""),E()},children:"Apply"})]})]})]})})]})};function VertexToolbarDivider(){return e("div",{"data-testid":"toolbar-divider",className:"h-6 w-px bg-neutral-300 mx-1"})}const VertexSceneTreeSearchInformationForToolbar=()=>{const a=useSelectionActions(),i=s(Vn),o=s(ji),r=s(Wi),l=void 0,c=`${r} ${1===r?"result":"results"}`;return t(n,{children:[e(VertexToolbarDivider,{}),t("div",{className:"flex flex-row items-center overflow-hidden",children:[e("div",{className:"px-2 text-[0.8125rem] leading-4 text-neutral-900 truncate","data-testid":"search-result-info",children:`${c}`}),e(F,{className:"w-auto",content:"Select Results",placement:"top",children:e(G,{className:"h-6 rounded cursor-pointer","data-testid":"select-search-results-button",color:"secondary",variant:"text",size:"sm",onClick:async()=>{null!=i&&null!=o&&(await i.selectFilteredItems(o),a.toggleLastSelectWasMultiSelect(!0))},children:t("div",{className:"flex h-6 items-center gap-1",children:[e($,{size:"sm",name:"check-circle"}),e("span",{className:"whitespace-nowrap",children:"Select Results"})]})})})]})]})},VertexSceneTreeCollapseAll=()=>{const t=s(Vn);return e(F,{className:"w-auto",content:"Collapse All",placement:"top",children:e($,{size:"sm",className:"h-6 w-6 hover:bg-neutral-300 rounded cursor-pointer","data-testid":"collapse-all-icon",name:"collapse-all",onClick:()=>{t?.collapseAll()}})})},VertexSceneTreeExpandAll=()=>{const t=s(Vn);return e(F,{className:"w-auto",content:"Expand All",placement:"top",children:e($,{size:"sm","data-testid":"expand-all-icon",className:"h-6 w-6 hover:bg-neutral-300 rounded cursor-pointer",name:"expand-all",onClick:()=>{t?.expandAll()}})})},VertexSceneTreeToolbar=({onVisibleSceneTreeColumnsChange:n})=>{const a=s(ji),i=null==a||""===a;return e(de,{className:"h-10 border-b border-neutral-300 box-border",children:t("div",{className:"flex w-full text-neutral-700 items-center gap mx-2",children:[e(VertexSceneTreeExpandAll,{}),e(VertexSceneTreeCollapseAll,{}),!i&&e(VertexSceneTreeSearchInformationForToolbar,{}),e("div",{className:"ml-auto",children:e(VertexSceneTreeColumnPopover,{onVisibleSceneTreeColumnsChange:n})})]})})},VertexSceneTreeHeader=({onEnterSearchMode:a,onExitSearchMode:i,onSearch:o,onClearSearch:r,onVisibleSceneTreeColumnsChange:s,children:l})=>{const c=void 0;return e("div",{slot:"header",className:"flex flex-col",children:null!=l&&!1!==l?l:t(n,{children:[e(VertexSceneTreeSearch,{onEnterSearchMode:a,onExitSearchMode:i,onSearch:o,onClearSearch:r,children:e("div",{slot:"clear-icon"})}),e(VertexSceneTreeToolbar,{onVisibleSceneTreeColumnsChange:s})]})})};function useMetadataActions(){const e=useActionCallback(({snapshot:e,set:t})=>async n=>{const a=void 0;if(await e.getPromise(fi(n)))return;t(fi(n),!0);const i=await e.getPromise(ui(n));if(null!=i?.metadata){const e=[...i.metadata];t(mi(n),t=>[...t,...e])}const o=i?.cursor;t(pi(n),o),t(fi(n),!1)});return{fetchInitialMetadata:useActionCallback(({snapshot:t})=>async n=>{const a=void 0;0===(await t.getPromise(mi(n))).length&&await e(n)}),fetchNextMetadata:useActionCallback(()=>async t=>{await e(t)})}}var Zi={exports:{}},Ji,Qi,eo;function requireInfiniteScroll(){return Ji||(Ji=1,function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function defineProperties(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,t,n){return t&&defineProperties(e.prototype,t),n&&defineProperties(e,n),e}}(),a=A,i=_interopRequireDefault(a),o,r=_interopRequireDefault(Ce);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(e){function InfiniteScroll(e){_classCallCheck(this,InfiniteScroll);var t=_possibleConstructorReturn(this,(InfiniteScroll.__proto__||Object.getPrototypeOf(InfiniteScroll)).call(this,e));return t.scrollListener=t.scrollListener.bind(t),t.eventListenerOptions=t.eventListenerOptions.bind(t),t.mousewheelListener=t.mousewheelListener.bind(t),t}return _inherits(InfiniteScroll,e),n(InfiniteScroll,[{key:"componentDidMount",value:function componentDidMount(){this.pageLoaded=this.props.pageStart,this.options=this.eventListenerOptions(),this.attachScrollListener()}},{key:"componentDidUpdate",value:function componentDidUpdate(){if(this.props.isReverse&&this.loadMore){var e=this.getParentElement(this.scrollComponent);e.scrollTop=e.scrollHeight-this.beforeScrollHeight+this.beforeScrollTop,this.loadMore=!1}this.attachScrollListener()}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.detachScrollListener(),this.detachMousewheelListener()}},{key:"isPassiveSupported",value:function isPassiveSupported(){var e=!1,t={get passive(){e=!0}};try{document.addEventListener("test",null,t),document.removeEventListener("test",null,t)}catch(e){}return e}},{key:"eventListenerOptions",value:function eventListenerOptions(){var e=this.props.useCapture;return e=this.isPassiveSupported()?{useCapture:this.props.useCapture,passive:!0}:{passive:!1}}},{key:"setDefaultLoader",value:function setDefaultLoader(e){this.defaultLoader=e}},{key:"detachMousewheelListener",value:function detachMousewheelListener(){var e=window;!1===this.props.useWindow&&(e=this.scrollComponent.parentNode),e.removeEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture)}},{key:"detachScrollListener",value:function detachScrollListener(){var e=window;!1===this.props.useWindow&&(e=this.getParentElement(this.scrollComponent)),e.removeEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),e.removeEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture)}},{key:"getParentElement",value:function getParentElement(e){var t=this.props.getScrollParent&&this.props.getScrollParent();return null!=t?t:e&&e.parentNode}},{key:"filterProps",value:function filterProps(e){return e}},{key:"attachScrollListener",value:function attachScrollListener(){var e=this.getParentElement(this.scrollComponent);if(this.props.hasMore&&e){var t=window;!1===this.props.useWindow&&(t=e),t.addEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture),t.addEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),t.addEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture),this.props.initialLoad&&this.scrollListener()}}},{key:"mousewheelListener",value:function mousewheelListener(e){1!==e.deltaY||this.isPassiveSupported()||e.preventDefault()}},{key:"scrollListener",value:function scrollListener(){var e=this.scrollComponent,t=window,n=this.getParentElement(e),a=void 0;if(this.props.useWindow){var i=document.documentElement||document.body.parentNode||document.body,o=void 0!==t.pageYOffset?t.pageYOffset:i.scrollTop;a=this.props.isReverse?o:this.calculateOffset(e,o)}else a=this.props.isReverse?n.scrollTop:e.scrollHeight-n.scrollTop-n.clientHeight;a<Number(this.props.threshold)&&e&&null!==e.offsetParent&&(this.detachScrollListener(),this.beforeScrollHeight=n.scrollHeight,this.beforeScrollTop=n.scrollTop,"function"==typeof this.props.loadMore&&(this.props.loadMore(this.pageLoaded+=1),this.loadMore=!0))}},{key:"calculateOffset",value:function calculateOffset(e,t){return e?this.calculateTopPosition(e)+(e.offsetHeight-t-window.innerHeight):0}},{key:"calculateTopPosition",value:function calculateTopPosition(e){return e?e.offsetTop+this.calculateTopPosition(e.offsetParent):0}},{key:"render",value:function render(){var e=this,t=this.filterProps(this.props),n=t.children,a=t.element,o=t.hasMore;t.initialLoad;var r=t.isReverse,s=t.loader;t.loadMore,t.pageStart;var l=t.ref;t.threshold,t.useCapture,t.useWindow,t.getScrollParent;var c=_objectWithoutProperties(t,["children","element","hasMore","initialLoad","isReverse","loader","loadMore","pageStart","ref","threshold","useCapture","useWindow","getScrollParent"]);c.ref=function(t){e.scrollComponent=t,l&&l(t)};var d=[n];return o&&(s?r?d.unshift(s):d.push(s):this.defaultLoader&&(r?d.unshift(this.defaultLoader):d.push(this.defaultLoader))),i.default.createElement(a,c,d)}}]),InfiniteScroll}(a.Component);s.propTypes={children:r.default.node.isRequired,element:r.default.node,hasMore:r.default.bool,initialLoad:r.default.bool,isReverse:r.default.bool,loader:r.default.node,loadMore:r.default.func.isRequired,pageStart:r.default.number,ref:r.default.func,getScrollParent:r.default.func,threshold:r.default.number,useCapture:r.default.bool,useWindow:r.default.bool},s.defaultProps={element:"div",hasMore:!1,initialLoad:!0,pageStart:0,ref:null,threshold:250,useWindow:!0,isReverse:!1,useCapture:!1,loader:null,getScrollParent:null},t.default=s,e.exports=t.default}(Zi,Zi.exports)),Zi.exports}function requireReactInfiniteScroller(){return eo?Qi:(eo=1,Qi=requireInfiniteScroll())}var to,no=getDefaultExportFromCjs(requireReactInfiniteScroller());const CopyButton=({id:t,textToCopy:n,iconSize:a,disableTooltip:i,onCopyValue:o})=>{const[r,s]=A.useState(!1),l=void 0,c=useDebouncedCallback(()=>{s(!1)},2e3);return e(F,{className:"h-fit self-center z-[16000]",content:r?"Copied to Clipboard":"Copy",placement:"bottom",disabled:i,children:e("div",{className:Na({"text-green-700":r}),children:e(W,{className:"ml-auto","data-testid":`${t}-copy-button`,iconName:r?"check":"copy",iconSize:a??"xs",onClick:e=>{e.stopPropagation(),e.preventDefault(),null!=n&&(navigator.clipboard.writeText(n),o?.(n)),s(!0),c(!0)},style:{"--hover-box-shadow":"none"}})})})};function MetadataPropertyValue({value:n,onCopyMetadataValue:a}){const[i,o]=A.useState(!1),r=""!==n.replace(/^\s*$/,"").trim();return r?t("div",{className:"flex w-full border-b border-neutral-300 pl-1 pr-3","data-testid":`${n}-metadata-property`,onMouseEnter:()=>{o(!0)},onMouseLeave:()=>o(!1),children:[e(F,{className:"w-full shrink truncate pr-2 py-1.5",content:n,placement:"bottom-start",children:e("div",{className:"truncate",children:n})}),i&&e(CopyButton,{id:n,textToCopy:n,onCopyValue:a})]}):e("div",{className:Na("overflow-visible border-b border-neutral-300 pl-1 pr-4 py-1.5",{"text-neutral-500":!r}),children:"--"})}const MetadataPanelContents=({sceneItemId:a,onCopyMetadataValue:i})=>{const o=useMetadataActions(),r=m(gi),l=s(mi(a)),c=s(hi(a)),d=s(fi(a)),u=l?.length>0;function getMessage(){if(!d&&0===l?.length&&"hasValue"===r.state)return"This part does not contain properties"}return A.useEffect(()=>{null!=a&&o.fetchInitialMetadata(a)},[a]),t(n,{children:[e(no,{initialLoad:!1,hasMore:c,loadMore:async()=>{c&&await o.fetchNextMetadata(a)},useWindow:!1,children:t("div",{className:"flex w-full text-xs leading-5 grow-0",children:[e(X,{className:"w-1/2 min-w-24 max-w-full shrink-0",horizontalDirection:"right",verticalDirection:"none",initialHorizontalScale:.5,parentSelector:"#metadata-panel-wrapper",horizontalSiblingSelector:"#metadata-value-column",children:e("div",{className:"flex flex-col w-full overflow-hidden whitespace-nowrap",children:l.map((t,n)=>e(F,{className:"border-b border-neutral-300 pl-4 pr-1 py-1.5",content:t.key,placement:"bottom-start",children:e("div",{className:"truncate",children:t.key})},n))})}),e("div",{id:"metadata-value-column",className:"flex flex-col w-full min-w-24",children:l.map((t,n)=>e(MetadataPropertyValue,{value:t.value,onCopyMetadataValue:i},n))})]})}),!u&&e("div",{className:"w-full h-full flex items-center justify-center px-4 text-center text-sm",children:getMessage()})]})},MetadataPanel=({onCopyMetadataValue:n})=>{const a=usePanelActions(),i=s(Wt),o=m(gi);return t("div",{id:"metadata-panel-wrapper","data-testid":"metadata-panel-wrapper",className:"w-full h-full flex flex-col mt-auto text-neutral-800",children:[t("div",{className:"flex h-10 border-b border-neutral-300 p-3 pl-4 text-[0.875rem] items-center",children:["hasValue"===o.state&&e("span",{className:"flex flex-col w-full",children:e(F,{content:o.contents,children:e("div",{className:"truncate",children:o.contents||""})})}),"loading"===o.state&&e("div",{className:"flex items-center w-full h-full",children:e("div",{className:"w-1/2 h-1/2 bg-neutral-300 animate-pulse rounded"})}),e($,{className:"ml-auto cursor-pointer",onClick:a.closeSecondary,name:"close",size:"sm"})]}),t("div",{className:"w-full h-full overflow-y-auto overflow-x-hidden",children:[null!=i&&e(MetadataPanelContents,{sceneItemId:i.id,onCopyMetadataValue:n}),null==i&&e("div",{className:"w-full h-full flex items-center justify-center px-4 text-center text-sm",children:"Please select a single part or assembly to view its metadata"})]})]})},SceneTreeSecondaryPanel=({panelId:t,onCopyMetadataValue:n})=>e(X,{"data-testid":"scene-tree-secondary-panel",className:"min-h-20 max-h-full flex-shrink-0 border-t border-neutral-300",horizontalDirection:"none",verticalDirection:"top",initializeWithOffset:!0,initialVerticalScale:.6,parentSelector:`#${t}`,verticalSiblingSelector:"#scene-tree-container",children:e(MetadataPanel,{onCopyMetadataValue:n})}),VertexSceneTreeCustomColumn=({label:n,rowDataBinding:a,expandToggle:i,visibilityToggle:o,isolateButton:r,modelViewsButton:l,initialWidth:c,minWidth:d})=>{const u=s(Vn);return A.useEffect(()=>{u?.invalidateRows()},[a]),t(me,{"data-testid":`scene-tree-table-column-${n}`,initialWidth:c,minWidth:d,children:[e("template",{slot:"header",dangerouslySetInnerHTML:{__html:`\n <div class="text-sm text-neutral-800 my-2">\n <div class="${Na("truncate",{"pl-2":i,"pr-2":o})}">\n ${n}\n </div>\n </div>\n `}}),e("template",{dangerouslySetInnerHTML:{__html:`\n <vertex-scene-tree-table-cell\n prop:value="${a}"\n prop:selection-handler="{{row.data.handleSelection}}"\n prop:expansion-handler="{{row.data.handleExpansion}}"\n prop:visibility-handler="{{row.data.handleVisibility}}"\n ${i?"expand-toggle":""}\n ${o?"visibility-toggle":""}\n ${r?"isolate-button":""}\n >\n <div class="flex items-center gap-2">\n <vertex-tooltip \n class="truncate" \n prop:content="${null!=a?a:"--"}" \n placement="${o?"right":"top"}">\n <div class="flex items-center w-full">\n <div class="truncate">${a}</div>\n </div>\n </vertex-tooltip>\n\n ${l?'<div attr:style={{row.data.modelViewIndicatorStyle}}> \n <vertex-tooltip class="block w-full truncate" content="Listing Model Views" placement="bottom">\n <vertex-icon-button\n class="ml-auto mr-0.5 text-neutral-800"\n event:pointerup="{{row.data.handleShowModelViews}}"\n icon-name="views"\n icon-size="sm"\n variant="plain"\n >\n </vertex-icon-button>\n </vertex-tooltip>\n </div>':""}\n </div>\n\n <div slot="placeholder" class="flex items-center w-full truncate">\n <div> -- </div>\n </div>\n </vertex-scene-tree-table-cell>\n `}})]},n)},VertexSceneTreeMetadataColumns=({children:t})=>{const a=s(Oi),i=s(Vi),o=[],r=i.filter(e=>e!==Ti.label).map(e=>a[e]);return e(n,null!=t?{children:t({columns:r.map(e=>({key:e.label,initialWidth:e.initialWidth,minWidth:e.minWidth}))})}:{children:r.map((t,n)=>{const a=o[n]??t.initialWidth;return e(VertexSceneTreeCustomColumn,{label:t.label,visibilityToggle:n===r.length-1,isolateButton:n===r.length-1,rowDataBinding:t.binding,initialWidth:a,minWidth:t.minWidth},t.label)})})},VertexSceneTreeTableLayout=n=>{const{children:a,...i}=n,o=s(Oi),r=s(Vi),l=A.useMemo(()=>findChildElement(a,NameColumn),[a]),c=A.useMemo(()=>findChildElement(a,MetadataColumns),[a]),d=o[Ti.label]??Ti,u=r.filter(e=>e!==Ti.label).map(e=>o[e]);return t(pe,{"data-testid":"scene-tree-table-layout",...i,children:[l?cloneChildNodeOrFunction(l.props.children,{columnCount:r.length,initialWidth:d.initialWidth,minWidth:d.minWidth}):e(VertexSceneTreeCustomColumn,{expandToggle:!0,visibilityToggle:1===r.length,isolateButton:1===r.length,rowDataBinding:d.binding,label:d.label,initialWidth:d.initialWidth,minWidth:d.minWidth}),null!=c?cloneChildNodeOrFunction(c.props.children,{columns:u.map(e=>({key:e.label,initialWidth:e.initialWidth,minWidth:e.minWidth}))}):e(VertexSceneTreeMetadataColumns,{})]})},NameColumn=({children:t})=>e(n,{children:t}),MetadataColumns=({children:t})=>e(n,{children:t});VertexSceneTreeTableLayout.NameColumn=NameColumn,VertexSceneTreeTableLayout.MetadataColumns=MetadataColumns;const VertexSceneTree=({id:n,font:a,backgroundColors:i,additionalLoadedMetadataProperties:o,whitelistedMetadataProperties:r,allowViewingMetadataPropertiesPanel:l,children:d,style:u,onPointerDown:m,onClick:p,onToggleSelection:h,onToggleExpansion:f,onToggleVisibility:g,onCopyMetadataValue:v,className:b,rowData:w,...C})=>{const S=usePanelActions(),k=useSceneTreeActions(),T=useSelectionActions(),P=s(ki),M=s(Xe),E=s(li),I=s(Yi),N=s(Ui),O=s(Hi),V=s(Fi),L=s(ji),_=null==L||""===L,R=useRecoilRef({state:Vn}),D=A.useMemo(()=>findChildElement(d,Header),[d]),B=A.useMemo(()=>findChildElement(d,TableLayout),[d]),j=A.useMemo(()=>findChildElement(d,ContextMenu),[d]),wrappedExpansionHandler=(e,t,n)=>{k.toggleExpansion(e,t,n),f?.(e,t,n)},wrappedSelectionHandler=(e,t,n)=>{k.toggleSelection(e,t,n),h?.(e,t,n)},wrappedVisibilityHandler=(e,t,n)=>{k.toggleVisibility(e,t,n),g?.(e,t,n)},handleClick=async e=>{e.altKey&&await k.flyToRow(e.clientY),p?.(e)},handlePointerDown=async e=>{targetIsElement(e.target,"VERTEX-SCENE-TREE-TABLE-COLUMN")&&await T.clearSelection(),m?.(e)},H=c(Ln),handleFirstRowRendered=e=>{H(e.target.controller),C?.onFirstRowRendered?.(e)},F=A.useMemo(()=>({metadataSearchKeys:N,exactMatch:O,removeHiddenItems:V}),[N,O,V]);useStateSyncedValue(Mi,r,{transform:e=>e.sort((e,t)=>e.localeCompare(t))}),useStateSyncedValue(di,l),useStateSyncedValue(qi,o);const W=s(nn),U=A.useCallback(e=>{e.preventDefault(),e.stopPropagation(),S.openPrimary("model-views","right")},[S]);return t("div",{id:"scene-tree-panel",className:"flex flex-col w-full h-full grow-0",children:[e("div",{id:"scene-tree-container",className:"flex group h-full min-h-32 overflow-auto",children:t(he,{id:n??"vertex-scene-tree","data-testid":"vertex-scene-tree",config:P,ref:R,className:Na("flex-1",{filtered:!_}),style:{...styleFromOptionalFont(a),...styleFromOptionalBackgroundColors(i),...u},onConnectionError:e=>{logger_error("Scene Tree Connection Error: ",e.detail)},viewer:M,onPointerDown:handlePointerDown,onClick:handleClick,rowData:e=>{const t=w?.(e)??{};return{handleExpansion:wrappedExpansionHandler,handleSelection:wrappedSelectionHandler,handleVisibility:wrappedVisibilityHandler,handleShowModelViews:U,modelViewIndicatorStyle:e?.node.id?.hex===W?.id?"display: flex;":"display: none;",...t}},searchOptions:F,metadataKeys:I,...C,onFirstRowRendered:handleFirstRowRendered,children:[D??e(VertexSceneTreeHeader,{}),B??e(VertexSceneTreeTableLayout,{}),j??e(VertexSceneTreeContextMenu,{})]})}),void 0!==E&&e(SceneTreeSecondaryPanel,{panelId:"scene-tree-panel",onCopyMetadataValue:v})]})},Header=({children:t})=>e(n,{children:t}),TableLayout=({children:t})=>e(n,{children:t}),ContextMenu=({children:t})=>e(n,{children:t});VertexSceneTree.Header=Header,VertexSceneTree.TableLayout=TableLayout,VertexSceneTree.ContextMenu=ContextMenu;const VertexDecimalPlaceSelector=({onApply:n})=>{const[a,i]=h(Hn);return t(ie,{"data-testid":"decimal-place-select",className:"w-24",value:a,onOptionChanged:e=>{i(e.detail),n?.(e.detail)},children:[e("div",{className:"py-1.5 px-3",children:"0"}),e("div",{className:"py-1.5 px-3",children:"1"}),e("div",{className:"py-1.5 px-3",children:"2"}),e("div",{className:"py-1.5 px-3",children:"3"})]})},VertexLengthUnitSelector=({onApply:n})=>{const[a,i]=h(jn);return t(ie,{"data-testid":"length-unit-select",className:"w-40",value:a,onOptionChanged:e=>{i(e.detail),n?.(e.detail)},children:[e("div",{"data-value":"cm",className:"py-1.5 px-3",children:"centimeters"}),e("div",{"data-value":"mm",className:"py-1.5 px-3",children:"millimeters"}),e("div",{"data-value":"m",className:"py-1.5 px-3",children:"meters"}),e("div",{"data-value":"in",className:"py-1.5 px-3",children:"inches"}),e("div",{"data-value":"ft",className:"py-1.5 px-3",children:"feet"})]})};function VertexUnitsControls({onUnitChange:a,onDecimalPlaceChange:i}){return t(n,{children:[t("div",{children:[e("div",{className:"pt-1 pb-2 text-sm text-neutral-700",children:"Length Unit"}),e(VertexLengthUnitSelector,{onApply:a})]}),t("div",{children:[e("div",{className:"pt-2 pb-2 text-sm text-neutral-700",children:"Decimals"}),e(VertexDecimalPlaceSelector,{onApply:i})]})]})}function VertexUnitsPanelSection({onUnitChange:t,onDecimalPlaceChange:n}){return e(PanelSection,{header:e("div",{className:"flex items-center text-base",children:"Units"}),children:e(VertexUnitsControls,{onUnitChange:t,onDecimalPlaceChange:n})})}function FileWithMagnifyingGlassImage(){return e("div",{children:t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"160",height:"160",viewBox:"0 0 220 220",children:[e("path",{fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":".75",d:"M38.84 186.31h143.29m-155.07 5.14h176.49M1 196.58h218m-205.11 5.14h185.22m-162.74 5.13h141.84"}),e("path",{fill:"#f7fcfd",d:"m150.94 50.25 20.43 19.51a3.42 3.42 0 0 1 1 2.46v121.2a5.23 5.23 0 0 1-5.23 5.23H52.78a5.23 5.23 0 0 1-5.23-5.23V54.56a5.24 5.24 0 0 1 5.23-5.24h95.81a3.44 3.44 0 0 1 2.35.93"}),e("path",{fill:"none",stroke:"#006bad","stroke-dasharray":"3 3","stroke-linecap":"round","stroke-linejoin":"round",d:"m150.94 50.25 20.43 19.51a3.42 3.42 0 0 1 1 2.46v121.2a5.23 5.23 0 0 1-5.23 5.23H52.78a5.23 5.23 0 0 1-5.23-5.23V54.56a5.24 5.24 0 0 1 5.23-5.24h95.81a3.44 3.44 0 0 1 2.35.93"}),e("path",{d:"M79.12 123.99H110v30.88H79.12z",fill:"#e0f3f9"}),e("path",{d:"M110 153.37v1.5h-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M105.4 154.87H82.17",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M80.62 154.87h-1.5v-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M79.12 150.27v-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M79.12 125.49v-1.5h1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M83.72 123.99h23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M108.5 123.99h1.5v1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M110 128.59v23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 123.99h30.88v30.88H110z",fill:"#e0f3f9"}),e("path",{d:"M140.88 153.37v1.5h-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M136.28 154.87h-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M111.5 154.87H110v-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M110 150.27v-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 125.49v-1.5h1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M114.6 123.99h23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M139.38 123.99h1.5v1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M140.88 128.59v23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 93.11h30.88v30.88H110z",fill:"#e0f3f9"}),e("path",{d:"M140.88 122.49v1.5h-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M136.28 123.99h-23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M111.5 123.99H110v-1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M110 119.39V96.15",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M110 94.61v-1.5h1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M114.6 93.11h23.23",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M139.38 93.11h1.5v1.5",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M140.88 97.7v23.24",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":"3.1 3.1"}),e("path",{d:"M150.91 50.28a3.6 3.6 0 0 1 .86 1.22",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{fill:"none",stroke:"#006bad","stroke-dasharray":"2.87 2.87","stroke-linecap":"round","stroke-linejoin":"round",d:"M152.05 54.34v9.14a5.24 5.24 0 0 0 5.24 5.23h9.94"}),e("path",{d:"M168.67 68.71h.2a3.5 3.5 0 0 1 1.27.23M19.8 78.25l1.93 14.68-14.67 1.93",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M21.73 92.93S-2.15 82.45 4.05 54.82",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{fill:"none",stroke:"#b43296","stroke-linecap":"round","stroke-linejoin":"round",d:"M14.89 132.63h5.88v5.88h-5.88z"}),e("path",{fill:"none",stroke:"#f90","stroke-linecap":"round","stroke-linejoin":"round",d:"M174.49 36v5.88m-2.94-2.94h5.88"}),e("circle",{cx:"199.1",cy:"164.76",r:"2.45",fill:"none",stroke:"#0c0","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M109.68 25.74V11.9M87.12 29.74l-6.02-9.4m53.21 9.4 6.01-9.4",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{fill:"#eff9fc",stroke:"#006bad","stroke-linejoin":"round",d:"m140.43 139.69 7.22 5.8-8.28 10.31-7.22-5.8"}),e("circle",{cx:"110.2",cy:"124.35",r:"27.74",fill:"#e0f3f9",opacity:".7"}),e("path",{fill:"#fff",stroke:"#006bad","stroke-linejoin":"round",d:"M131.2 98.19a33.55 33.55 0 1 0 5.16 47.16 33.56 33.56 0 0 0-5.16-47.16Zm.63 43.52a27.73 27.73 0 1 1-4.26-39 27.73 27.73 0 0 1 4.26 39ZM187 173.84a29.8 29.8 0 0 1-4.19 7.52 29.3 29.3 0 0 1-7.24 6.71l-37.77-30.31a29.3 29.3 0 0 1 5-8.56 29.6 29.6 0 0 1 6.4-5.67Z"}),e("path",{fill:"none",stroke:"#fff","stroke-linecap":"round","stroke-miterlimit":"10",d:"m118.82 138.09 12.51-15.58m-38.56-3.68 6.94-8.65m-5.32 1.9 6.95-8.66m16.23 42.44 12.5-15.58"}),e("path",{fill:"#fff",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round",d:"M139.92 153.31a28.4 28.4 0 0 0-2.12 4.45m7.07-.49a38 38 0 0 0-2.35 4.28m7.3-.32c-.93 1.34-1.79 2.72-2.58 4.11m7.53-.15q-1.47 2-2.81 3.94m7.75.01-3 3.78m7.95.18c-1.07 1.24-2.16 2.45-3.26 3.61m8.21.35a54 54 0 0 1-3.49 3.44m8.44.5a37 37 0 0 1-3.72 3.26m8.67.74a29 29 0 0 1-3.95 3.09"}),e("path",{d:"m196.69 115.8-2.18 14.64 14.64 2.18",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"}),e("path",{d:"M194.51 130.44s23.76-12 21.9-35.66",fill:"none",stroke:"#006bad","stroke-linecap":"round","stroke-linejoin":"round"})]})})}function ModelViewsEmptyState({itemSelected:n}){const a=n?"There are no model views associated with this part.":"Select a part to access model views.";return t("div",{"data-testid":"pmi-views-empty-state",className:"h-full w-full px-4 flex flex-col gap-2 justify-center items-center overflow-y-auto",children:[e(FileWithMagnifyingGlassImage,{}),e("div",{className:"text-base text-neutral-700 text-center px-3 pt-2.5 pb-1.5",children:"No Model Views"}),e("div",{className:"text-[0.8125rem] text-neutral-600 text-center px-3 pb-2.5",children:a})]})}const VertexModelViewsViewRow=({view:n,currentlyViewing:a,itemId:i,onLoadModelView:o,onClearModelView:r})=>{const s=useModelViewActions();return e("div",{"data-testid":`model-view-${n.id}`,onClick:async()=>{a?(await s.clearModelView(),r?.()):(await s.loadModelView(i,n),o?.(i,n.id))},className:Na("flex flex-col w-full h-8 p-1 pl-4 cursor-pointer text-neutral-700 text-[0.8125rem] hover:text-[var(--vertex-ui-blue-600)]",{"bg-[var(--vertex-ui-blue-200)]":a,"hover:bg-[var(--vertex-ui-blue-100)]":!a}),children:t("div",{className:Na("flex w-full h-full items-center",{"text-neutral-900 font-extrabold":a}),children:[t(F,{className:"flex w-20 grow","data-testid":`model-view-${n.id}-tooltip`,placement:"bottom-start",content:n.displayName,children:[e($,{name:"views",size:"sm"}),e("div",{className:"truncate mx-2",children:n.displayName}),e("span",{className:"font-normal text-neutral-700 ml-auto pr-1",children:a&&"(Viewing)"})]}),a&&e("div",{className:"ml-auto pr-1",children:e(W,{"data-testid":"model-views-clear-selection",iconSize:"sm",iconName:"close",onClick:async()=>await s.clearModelView()})})]})},n.id)};function VertexModelViewsList({itemId:n,onLoadModelView:a,onClearModelView:i}){const o=useModelViewActions(),r=s(ga),l=s(ya(n)),c=s(ba(n)),d=m(fa),u=0===l.length;return t("div",{className:"w-full h-full flex flex-col",children:[("hasValue"!==d.state||null!=d.contents)&&t("div",{className:"flex flex-row h-11 w-full border-b border-neutral-300 p-3 pl-4 mr-2 text-sm items-center",children:["hasValue"===d.state&&e("div",{className:"truncate items-center",children:e(F,{content:d.contents,children:e("div",{className:"truncate",children:d.contents||""})})}),"loading"===d.state&&e("div",{className:"flex items-center h-11 w-full",children:e("div",{className:"w-3/4 h-3 bg-neutral-300 animate-pulse rounded"})})]}),u&&e(ModelViewsEmptyState,{itemSelected:!0}),!u&&e("div",{className:"h-full overflow-y-auto",children:e(no,{hasMore:c,loadMore:()=>{o.fetchNextModelViews(n)},useWindow:!1,children:l.map(t=>{const o=r?.modelView?.id.toString(),s=void 0;return e(VertexModelViewsViewRow,{view:t,currentlyViewing:o===t?.id,itemId:n,onLoadModelView:a,onClearModelView:i},t.id)})})})]})}const VertexPMIAnnotationRow=({annotation:n,checked:a,onCheckedChange:i,selected:o,onSelectedChange:r})=>t("div",{id:`annotation-entry-${n.id}`,"data-testid":`annotation-entry-${n.displayName}`,className:Na("flex items-center w-full h-7 gap-2.5 pl-4 pr-2 cursor-default hover:text-[var(--vertex-ui-blue-600)]",{"bg-[var(--vertex-ui-blue-200)]":o,"hover:bg-[var(--vertex-ui-blue-100)]":!o}),onClick:()=>r(!o),children:[e(H,{"data-testid":`annotation-entry-${n.displayName}-check`,variant:"check",checked:a,onClick:e=>e.stopPropagation(),onValueChanged:e=>{i(e.detail)}}),e("div",{className:"w-1/2 flex-grow",children:e(F,{content:n.displayName,placement:"bottom-start",children:e("div",{className:"truncate",children:n.displayName})})})]}),VertexPMIAnnotationsSecondaryPanel=({modelViewId:n,parentPanelId:a,verticalSiblingId:i,sceneAnnotationOperations:o,onToggleSelectionOfPMIAnnotation:r,onToggleVisibilityOfPMIAnnotation:l})=>{const c=usePmiAnnotationActions(),d=s(Xe),u=s(Ca(n)),m=s(Sa(n)),p=s(xa),[f,g]=h(ha(n)),[v,b]=k.useState("");k.useEffect(()=>{n!==v&&(g(u),b(n))},[u,v,n,g,b]);const toggleVisibilityOfAllAnnotations=e=>{e?(g(u),o?.sceneAnnotationsOperation(e=>e.show(),d)):(g([]),o?.sceneAnnotationsOperation(e=>e.hide(),d))};return e(X,{"data-testid":"pmi-annotation-secondary-panel",className:"min-h-28 max-h-3/4 flex-shrink-0 border-t text-sm text-neutral-700",horizontalDirection:"none",verticalDirection:"top",initializeWithOffset:!0,initialVerticalScale:.6,parentSelector:`#${a}`,verticalSiblingSelector:`#${i}`,children:t("div",{className:"flex flex-col h-full overflow-hidden",children:[e("div",{className:"flex items-center w-full h-9 border-b border-[var(--vertex-ui-neutral-300)] px-4 shrink-0",children:"3D PMI"}),t("div",{"data-testid":"display-all-annotations",className:"flex items-center w-full h-8 gap-2.5 px-4 py-1.5 cursor-default border-b border-[var(--vertex-ui-neutral-300)]",onClick:()=>{const e=u.length!==f.length;toggleVisibilityOfAllAnnotations(e)},children:[e(H,{"data-testid":"display-all-annotations-check",variant:"check",checked:u.length===f.length,onClick:e=>e.stopPropagation(),onValueChanged:e=>{toggleVisibilityOfAllAnnotations(e.detail)}}),"Display All"]}),e("div",{className:"h-full overflow-y-auto text-[0.8125rem] py-1",children:e(no,{hasMore:m,loadMore:async()=>{m&&await c.fetchNextPmiAnnotations(n)},useWindow:!1,children:u.map((t,a)=>e(VertexPMIAnnotationRow,{annotation:t,checked:f.includes(t),onCheckedChange:e=>{e?(g([...f,t]),o?.sceneAnnotationsOperation(e=>e.show(),d,[t.id])):(g(f.filter(e=>e!==t)),o?.sceneAnnotationsOperation(e=>e.hide(),d,[t.id])),l?.(n,t.id,e)},selected:t.id===p,onSelectedChange:async e=>{e?await c.selectPmiAnnotation(t.id,!1):await c.clearPmiAnnotationSelection(),r?.(n,t.id,e)}},a))})})]})})},VertexModelViewsPanelSection=({onLoadModelView:n,onClearModelView:a,onToggleSelectionOfPMIAnnotation:i,onToggleVisibilityOfPMIAnnotation:o})=>{const r=useSceneAnnotationsOperations(),l=s(nn),c=null!=l?.id,d=s(ga),u=d?.itemId===l?.id;return t("div",{id:"model-views-panel-wrapper",className:"w-full h-full flex flex-col text-neutral-800",children:[t("div",{"data-testid":"model-views-container",className:"group h-full flex overflow-auto min-h-29 relative",children:[c&&e(k.Suspense,{fallback:e(ModelViewsItemListLoading,{}),children:e(VertexModelViewsList,{itemId:l.id,onLoadModelView:n,onClearModelView:a})}),!c&&e(ModelViewsEmptyState,{itemSelected:!1})]}),null!=d&&u&&e(k.Suspense,{fallback:e(ModelViewsItemListLoading,{}),children:e(VertexPMIAnnotationsSecondaryPanel,{modelViewId:d.modelView.id,parentPanelId:"model-views-panel-wrapper",verticalSiblingId:"model-views-container",sceneAnnotationOperations:r,onToggleSelectionOfPMIAnnotation:i,onToggleVisibilityOfPMIAnnotation:o})})]})};function ModelViewsItemListLoading(){return t("div",{className:"flex flex-col w-full h-full items-center justify-center text-[0.8125rem] overflow-y-auto",children:[e(oe,{"data-testid":"model-views-panel-spinner",size:"lg",color:"grey"}),e("div",{className:"pt-3 px-10 text-center",children:"Loading model views for the selected part..."})]})}function VertexModelViewsPanel(){return e("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:e(VertexModelViewsPanelSection,{})})}function ColorSwatchContextMenu({onRemoveCustomColor:n}){const a=useContextMenuActions(),i=useSceneItemMaterialActions(),o=s(sn);return e(VertexContextMenu,{menuType:"color-swatch",onOpen:e=>{elementIsColorSwatch(e.target)&&a.setContextMenuItem(e.target)},openPredicate:e=>elementIsColorSwatch(e.target)&&elementHasColorAttribute(e.target),disableBackdrop:!0,children:e(Y,{"data-testid":"color-swatch-delete",onClick:async()=>{if(contextMenuItemIsElement(o)&&elementIsColorSwatch(o)){const e=o?.getAttribute("data-color-id");null!=e&&"true"===o.getAttribute("data-custom-color")?(await i.removeCustomColor(e),n?.(e)):null!=e&&"true"===o.getAttribute("data-recent-color")&&await i.removeRecentColor(e)}},children:t("div",{className:"flex align-middle gap-2.5",children:[e($,{slot:"icon",name:"delete",size:"sm"}),"Delete"]})})})}function DefaultAppearancePanel(){return t("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:[e(VertexMaterialPanelSection,{}),e(VertexGhostingPanelSection,{}),e(VertexFeatureEdgesPanelSection,{}),e(VertexViewerBackgroundPanelSection,{}),e(VertexSelectionHighlightingPanelSection,{}),e(VertexCrossSectionAppearancePanelSection,{}),e(ColorSwatchContextMenu,{})]})}function DefaultSettingsPanel(){return e("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:e(VertexUnitsPanelSection,{})})}const VertexTransformClear=({onClear:n,onClearAll:a})=>{const i=useTransformActions(),o=useCacheableLoadable(tn),r=s(Yt),l=useCacheableLoadable(Jn(r??"")),c=A.useMemo(()=>{const e=o.data?.some(e=>null!=e?.override?.transform),t=null!=l.data;return e||t},[o,l]);return e("div",{className:"ml-auto",children:t(ResetButton,{id:"transforms",tooltip:"Clear Transforms",children:[e("div",{className:"pt-1"}),e(Y,{"data-testid":"clear-selected-transforms",onClick:async()=>{await i.clearSelectedTransforms(),n?.()},disabled:!c,children:"Clear selected transforms"}),e(Y,{"data-testid":"clear-all-transforms",onClick:async()=>{await i.clearAllTransforms(),a?.()},children:"Clear all transforms"})]})})},VertexTransformNumericField=({bottomLabel:n,value:a,step:i,min:o,max:r,disabled:l,testId:c,onBlur:d,onInput:u,onChange:m})=>{const p=A.useRef(null),h=s(Hn),[f,g]=A.useState(!0);A.useEffect(()=>{const e=null!=p.current&&Number.isNaN(p.current.valueAsNumber),t=f||e;null!=p.current&&t?p.current.value=a?.toFixed(Number(h))??"":g(!0)},[a]);const v=A.useCallback(e=>{g(!1),m?.(e)},[g,m]),b=A.useCallback(e=>{g(!0),d?.(e),null!=p.current&&null!=a&&(p.current.value=a.toFixed(Number(h)))},[d,a,g]);return t("div",{children:[e("div",{className:"truncate rounded-md w-full",children:e("input",{ref:p,className:"w-full truncate border border-neutral-400 rounded-md px-2 py-1.5 hover:border-neutral-500 focus:border-neutral-500 focus:outline-none",type:"number",step:i,min:o,max:r,"data-testid":c,disabled:l,defaultValue:Number.isNaN(a)?"":a?.toFixed(Number(h)),onBlur:b,onInput:u,onChange:v})}),null!=n&&e("div",{className:"flex justify-center items-center pointer-events-none text-neutral-500",children:e("span",{children:n})})]})},VertexTransformInputs=({onUpdateTransform:n})=>{const a=s(jn),i=s(Kt),o=s(Gt),r=i||o,l=s(Yt),{transform:c,error:d,update:u}=useEditItemTransform(l),m=r?void 0:c,p=useDebouncedCallback(async e=>{await u(e),n?.(e)},50);function updateTransform(e){return t=>{if(null!=m){const n=parseFloat(t.currentTarget.value);Number.isNaN(n)||p?.({...m,...e(n,m)})}}}function updatePosition(e){return updateTransform((t,n)=>({position:{...n.position,...e(t)}}))}function updateRotation(e){return updateTransform((t,n)=>({rotation:{...n.rotation,...e(t)}}))}function updateScale(){return updateTransform(e=>e>0?{scale:e}:{})}function updateToDefaultValueIfInvalid(e,t){return n=>{const a=parseFloat(n.currentTarget.value),i=void 0;(isNaN(a)||!!t?.(a))&&null!=m&&p(Ee.defaults(e,m))}}return t("div",{children:[t("div",{className:"mb-2 text-[0.8125rem]",children:[e("span",{className:"flex w-full items-center mt-3 mb-1",children:"Position"}),t("div",{className:"flex flex-wrap w-full gap-2",children:[t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"X"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"position-x",value:null!=m?m.position.x:void 0,bottomLabel:a,disabled:null==m,onChange:updatePosition(e=>({x:e})),onBlur:updateToDefaultValueIfInvalid({position:{x:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Y"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"position-y",value:m?.position.y,bottomLabel:a,disabled:null==m,onChange:updatePosition(e=>({y:e})),onBlur:updateToDefaultValueIfInvalid({position:{y:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Z"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"position-z",value:m?.position.z,bottomLabel:a,disabled:null==m,onChange:updatePosition(e=>({z:e})),onBlur:updateToDefaultValueIfInvalid({position:{z:0}})})})]})]})]}),t("div",{className:"mb-2 text-[0.8125rem]",children:[e("span",{className:"flex w-full items-center mt-3 mb-1",children:"Rotation"}),t("div",{className:"flex flex-wrap w-full gap-2",children:[t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"X"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"rotation-x",value:m?.rotation.x,bottomLabel:"deg",disabled:null==m,onChange:updateRotation(e=>({x:e})),onBlur:updateToDefaultValueIfInvalid({rotation:{x:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Y"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"rotation-y",value:m?.rotation.y,bottomLabel:"deg",disabled:null==m,onChange:updateRotation(e=>({y:e})),onBlur:updateToDefaultValueIfInvalid({rotation:{y:0}})})})]}),t("div",{className:"flex gap-2",children:[e("span",{className:"pt-2",children:"Z"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"rotation-z",value:m?.rotation.z,bottomLabel:"deg",disabled:null==m,onChange:updateRotation(e=>({z:e})),onBlur:updateToDefaultValueIfInvalid({rotation:{z:0}})})})]})]})]}),t("div",{className:"mb-2 text-[0.8125rem]",children:[e("span",{className:"flex w-full items-center mt-3 mb-1",children:"Scale"}),e("div",{className:"w-26",children:e(VertexTransformNumericField,{testId:"scale",value:m?.scale,step:.1,min:.1,disabled:null==m,onChange:updateScale(),onBlur:updateToDefaultValueIfInvalid({scale:1},e=>e<=0)})}),r&&e("div",{className:"bg-orange-100 rounded px-3 py-2 mt-6 mb-2",children:"Input based part transformation is not yet supported for multiple parts."}),null!=d&&e("div",{className:"bg-red-100 rounded px-3 py-2 mt-6 mb-2",children:"There was a problem retrieving data. Try selecting a different part."})]})]})},VertexTransformManipulatorToggle=({onToggleTransformsManipulator:t})=>{const n=useTransformActions(),a=s(Gn),i=c(ea);return e(H,{className:"flex items-center","data-testid":"transform-widget-toggle",variant:"switch",checked:a,onValueChanged:async()=>{a?(n.disableTransformWidget(),t?.(!1)):(i("world"),await n.enableTransformWidget(),t?.(!0))}})};function VertexTransformControls({onToggleTransformsManipulator:a,onUpdateTransform:i}){return t(n,{children:[t("div",{className:"flex items-center py-3",children:[e(VertexTransformManipulatorToggle,{onToggleTransformsManipulator:a}),e("span",{className:"pl-4 text-[0.8125rem] text-neutral-700",children:"Enable manipulator"})]}),e(VertexTransformInputs,{onUpdateTransform:i})]})}function VertexTransformPanelSection({onClearTransforms:n,onClearAllTransforms:a,onToggleTransformsManipulator:i,onUpdateTransform:o}){return e(PanelSection,{header:t("div",{className:"flex items-center text-base",children:["Manual Part Transforms",e(VertexTransformClear,{onClear:n,onClearAll:a})]}),children:e(VertexTransformControls,{onToggleTransformsManipulator:i,onUpdateTransform:o})})}function DefaultTransformsPanel(){return e("div",{className:"flex flex-col text-neutral-700 h-full overflow-y-auto",children:e(VertexTransformPanelSection,{})})}const ao="Appearance",io="Model Views",oo="Settings",ro="Transforms",ViewerRightPanelHeader=({additionalHeaderMap:n})=>{const a=s(si),i=getHeading(a,n),o=void 0;return e("div",{className:"flex flex-col w-full items-center z-overlay pointer-events-none md:pointer-events-auto py-3 px-4 border-b border-neutral-300",children:t("div",{className:"flex items-center w-full leading-6 text-md align-center font-medium text-neutral-800 gap-2",children:[i,"model-views"===a&&e(BetaLabel,{})]})})};function getHeading(e,t={}){switch(e){case"appearance":return ao;case"model-views":return io;case"settings":return oo;case"transforms":return ro;default:const n=void 0;return(null!=e?t[e]:void 0)??"None"}}function VertexViewerRightOpenedPanel({children:a}){const i=s(si),o=A.useMemo(()=>filterChildElements(a,CustomPanelContent),[a]),r=A.useMemo(()=>o.reduce((e,t)=>({...e,[t.props.panelName]:t.props.panelTitle}),{}),[o]),l=A.useMemo(()=>["appearance","model-views","settings","transforms",...o.map(e=>e.props.panelName)],[o]);return e(n,{children:null!=i&&l.includes(i)&&t(VertexResizableContent,{displayShadow:!0,heading:e(ViewerRightPanelHeader,{additionalHeaderMap:r}),placement:"right",children:["appearance"===i&&e(DefaultAppearancePanel,{}),"transforms"===i&&e(DefaultTransformsPanel,{}),"settings"===i&&e(DefaultSettingsPanel,{}),"model-views"===i&&e(VertexModelViewsPanel,{}),a]})})}function CustomPanelContent({panelName:t,children:a}){const i=s(si);return e(n,{children:i===t&&a})}function Sidebar({children:t}){return e("div",{className:"pointer-events-auto flex flex-col items-center w-full border-neutral-300 py-2",children:t})}function SidebarIcon({name:n,iconName:a,active:i,responsive:o,disabled:r,content:s,tooltipPlacement:l,children:c,onSelect:d,onDeselect:u}){return e("div",{className:Na({"text-[var(--vertex-ui-blue-700)]":i===n&&!r,"text-neutral-700 hover:text-neutral-800":i!==n&&!r,"cursor-pointer hover:bg-neutral-200":!r,"text-neutral-400":r,"rounded-full md:p-3":o,"p-3":!o&&null==c,"px-3 py-1":null!=c}),"data-testid":`${n}-sidebar-panel`,onClick:()=>{r||(i===n?u():d())},children:t(F,{placement:l??void 0,content:A.isValidElement(s)?void 0:s,children:[e("div",{slot:"content",children:s}),e("div",{className:"flex flex-col",children:c??e($,{name:a})})]})})}function VertexViewerRightSidebar({children:n}){const a=usePanelActions(),i=useTransformActions(),o=s(si);return e("div",{className:"flex flex-col flex-shrink-0 items-center relative border-neutral-300 border-l bg-white h-full top-0 min-w-12 w-12",children:t(Sidebar,{children:[n,e(SidebarIcon,{name:"appearance",active:o,iconName:"adjustments",tooltipPlacement:"right",content:"Appearance",onSelect:()=>{a.openPrimary("appearance","right")},onDeselect:()=>a.closePrimary("right")}),e(SidebarIcon,{name:"transforms",active:o,iconName:"show-only-nearby",tooltipPlacement:"right",content:"Transforms",onSelect:async()=>{a.openPrimary("transforms","right"),await i.enableTransformWidget(void 0,!0)},onDeselect:()=>a.closePrimary("right")}),e(SidebarIcon,{name:"model-views",active:o,iconName:"views",tooltipPlacement:"right",content:"Model Views",onSelect:async()=>{a.openPrimary("model-views","right")},onDeselect:()=>a.closePrimary("right")}),e(SidebarIcon,{name:"settings",active:o,iconName:"gear",tooltipPlacement:"right",content:"Settings",onSelect:()=>{a.openPrimary("settings","right")},onDeselect:()=>a.closePrimary("right")})]})})}function CustomPanelIcon(t){const n=usePanelActions(),a=s(si),{panelName:i,tooltipContent:o,iconName:r,...l}=t;if(null==r&&null==l.children)throw new Error('CustomPanelIcon must contain either a Vertex "iconName" or custom "children"');return e(SidebarIcon,{...l,name:i,iconName:r??"help",active:a,content:o,onSelect:()=>{n.openPrimary(t.panelName,"right")},onDeselect:()=>{n.closePrimary("right")}})}VertexViewerRightOpenedPanel.CustomPanelContent=CustomPanelContent,VertexViewerRightSidebar.CustomPanelIcon=CustomPanelIcon;const VertexPopupButton=({open:a,children:i,...o})=>{const r=i.find(e=>e.type===Anchor),s=i.filter(e=>e.type!==Anchor);return null==r?e(n,{}):t(ne,{className:"flex",placement:"top",backdrop:!1,open:asBooleanAttribute(a),...o,children:[r,e("div",{className:Na("flex mb-1.5",{hidden:!a}),"data-testid":"align-plane-popover-menu",children:s})]})},Anchor=({tooltipContent:t,children:n})=>e("div",{slot:"anchor",children:e(F,{className:"cursor-pointer",content:t,children:n})});function VertexViewerCrossSectionAlignmentPopoverMenu({disabled:n}){const a=useCrossSectioningActions(),i=s(Et),o=s(wt),getBaseIcon=()=>`align-to-${o?.mode}`;return useStackKeyBinding({id:"CrossSectionAlignment",keyBind:"Escape",fn:a.cancelCurrentHit,addPredicate:()=>o?.hitPending??!1,cancelPredicate:()=>!o?.hitPending},[o?.hitPending]),t(VertexPopupButton,{"data-testid":"section-alignment-popover",placement:"top",backdrop:!1,open:asBooleanAttribute(i),onDismissed:a.closeAlignmentTools,children:[e(VertexPopupButton.Anchor,{tooltipContent:"Section Alignment",children:e(W,{"data-testid":"section-alignment-icon-button",iconName:getBaseIcon(),iconColor:"secondary",onClick:i?a.closeAlignmentTools:a.openAlignmentTools,disabled:n,children:e($,{"data-testid":"section-alignment-icon-chevron",name:"chevron-up",size:"sm"})})}),t(fe,{direction:"vertical",className:"flex justify-evenly items-center py-1 my-1 ring-1 ring-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(W,{iconColor:"secondary",onClick:()=>a.updateAlignment("global"),className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2","data-testid":"section-alignment-align-global",iconName:"align-to-global",variant:"plain",children:e("div",{className:"text-base ml-2",children:"Align to Global"})}),e(W,{iconColor:"secondary",onClick:()=>a.updateAlignment("surface"),className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2","data-testid":"section-alignment-align-surface",iconName:"align-to-surface",variant:"plain",children:e("div",{className:"text-base ml-2",children:"Align to Surface"})})]})]})}function VertexViewerCrossSectionAxisPopoverMenu({disabled:n}){const a=useCrossSectioningActions(),i=s(It),o=s(bt),r=m(kt),l=A.useMemo(()=>{const e=o.length>0&&"hasValue"===r.state?axis(o[0],xAxis(r.contents),yAxis(r.contents),zAxis(r.contents)):"x";return null!=e?`axis-${e}`:"axis-x"},[r.state,r.contents,o]);return t(VertexPopupButton,{"data-testid":"align-plane-popover",placement:"top",backdrop:!1,open:asBooleanAttribute(i),onDismissed:a.closeAxisTools,children:[e(VertexPopupButton.Anchor,{tooltipContent:"Align Plane",children:e(W,{onClick:i?a.closeAxisTools:a.openAxisTools,iconName:l,"data-testid":"align-plane-icon",iconColor:"secondary",disabled:n,children:e($,{"data-testid":"align-plane-icon-chevron",name:"chevron-up",size:"sm"})})}),t(fe,{direction:"vertical",className:"flex justify-evenly items-center py-1 my-1 ring-1 ring-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(W,{"data-testid":"align-plane-x-axis-button",className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2",onClick:()=>a.updateAxis("x"),variant:"plain",iconColor:"secondary",iconName:"axis-x",children:e("div",{className:"text-base ml-2",children:"X-axis Plane"})}),e(W,{className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2",variant:"plain",iconColor:"secondary",iconName:"axis-y","data-testid":"align-plane-y-axis-button",onClick:()=>a.updateAxis("y"),children:e("div",{className:"text-base ml-2",children:"Y-axis Plane"})}),e(W,{"data-testid":"align-plane-z-axis-button",className:"w-full text-neutral-800 hover:bg-neutral-300 rounded cursor-pointer mx-0.5 py-1 px-2",onClick:()=>a.updateAxis("z"),variant:"plain",iconColor:"secondary",iconName:"axis-z",children:e("div",{className:"text-base ml-2",children:"Z-axis Plane"})})]})]})}function VertexViewerCrossSectionOffsetStepper({offset:n,disabled:a,onOffsetChange:i}){const o=s(jn),r=s(Hn),[l,c]=A.useState(convertTo(n,o));A.useEffect(()=>{c(convertTo(n,o))},[o,n]);const d=createDistanceFormatter(o,parseInt(r,10)),handleIncrementalUpdate=e=>{const t=convertFrom(l+e,o);i(t)},u=void 0,handleBlur=()=>{i(convertFrom(l,o))};return e(F,{content:"Plane Offset",children:e("form",{"data-testid":"cross-section-stepper-form",onSubmit:e=>{e.preventDefault(),i(convertFrom(l,o))},children:t(ae,{"data-testid":"cross-section-stepper-input",className:"viewer-toolbar-input w-32 border-none ring-0 bg-white",type:"text",value:d(parseFloat(n.toFixed(3))),onInputInput:e=>{c(null!=e.detail.value?parseFloat(e.detail.value):n)},onBlur:handleBlur,disabled:a,children:[e("div",{"data-testid":"cross-section-stepper-decrement",className:"py-1 cursor-pointer",slot:"left",onClick:()=>{a||handleIncrementalUpdate(-1)},children:e($,{name:"chevron-left",size:"sm"})}),e("div",{"data-testid":"cross-section-stepper-increment",className:"py-1 cursor-pointer",slot:"right",onClick:()=>{a||handleIncrementalUpdate(1)},children:e($,{name:"chevron-right",size:"sm"})})]})})})}VertexPopupButton.Anchor=Anchor;const so=400;function VertexViewerCrossSectionPopupMenu(){const n=useCrossSectioningActions(),a=s(Mt),i=m(Tt),o=m(Pt),r=A.useRef(),l=A.useMemo(()=>"hasValue"===i.state&&Number.isFinite(i.contents.max)&&Number.isFinite(i.contents.min),[i.state,i.contents]),c=A.useMemo(()=>"hasValue"===i.state?i.contents:ut,[i.state,i.contents]),d=A.useMemo(()=>"hasValue"===o.state&&Number.isFinite(o.contents)?o.contents:0,[o.state,o.contents]),handleCrossSectionValueChange=e=>{clearTimeout(r.current),r.current=window.setTimeout(()=>{n.endInteraction()},so),n.beginInteraction(),n.updatePlanes(e)};return t(VertexPopupButton,{"data-testid":"cross-section-popover",placement:"top",backdrop:!1,open:asBooleanAttribute(a),onDismissed:n.closeAdditionalTools,children:[e(VertexPopupButton.Anchor,{tooltipContent:"Section Tools",children:e("div",{className:"-ml-px py-1.5",children:e($,{"data-testid":"cross-section-popover-icon",name:"chevron-up",size:"sm",onClick:a?n.closeAdditionalTools:n.openAdditionalTools})})}),t(fe,{className:"relative bottom-3 flex justify-evenly items-center p-1 ring-1 ring-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(VertexViewerCrossSectionAlignmentPopoverMenu,{disabled:!l}),e(F,{className:"w-auto",content:"Reverse",children:e(W,{iconName:"flip","data-testid":"viewer-toolbar-flip-button",onClick:n.flipPlanes,iconColor:"secondary",disabled:!l})}),e(F,{className:"w-auto",content:"Align View to Plane",children:e(W,{"data-testid":"viewer-toolbar-align-view-to-plane-button",iconName:"align-view-to-plane",onClick:n.alignViewToPlane,iconColor:"secondary",disabled:!l})}),e(VertexToolbarDivider,{}),e(VertexViewerCrossSectionAxisPopoverMenu,{disabled:!l}),e("div",{className:"w-52 mx-2",children:e(VertexSlider,{value:d,defaultValue:c.default,disabled:asBooleanAttribute("hasValue"!==i.state)||!l,min:c.min,max:c.max,step:.01,onChange:handleCrossSectionValueChange})}),e("div",{className:"px-4",children:e(VertexViewerCrossSectionOffsetStepper,{offset:"hasValue"===o.state&&l?o.contents:0,disabled:!l,onOffsetChange:handleCrossSectionValueChange})})]})]})}const VertexViewerCrossSectionButton=()=>{const a=useCrossSectioningActions(),i=s(mt);return t(n,{children:[e(F,{content:i?"Hide Section":"Show Section",children:e(W,{"data-testid":"viewer-toolbar-cross-section-button",iconName:"cross-section",iconColor:i?"primary":"secondary",onClick:()=>i?a.disable():a.enable()})}),e(VertexViewerCrossSectionPopupMenu,{})]})},VertexFitAllButton=()=>{const t=s(Xe);return e(F,{content:"Fit All",children:e(W,{iconName:"fit-all",iconColor:"secondary","data-testid":"viewer-toolbar-fit-all-button",onClick:async()=>{const e=await(t?.scene());await(e?.camera().viewAll().render({animation:{milliseconds:500}}))}})})},VertexPanButton=()=>{const t=s(Xe),n=s(Je),[a,i]=h(et),[o,r]=h(Qe);return A.useEffect(()=>{null!=t&&n&&r(t.getBaseInteractionHandler())},[t,n,r]),e(F,{content:"Pan",children:e(W,{iconName:"pan",iconColor:"pan"===a?"primary":"secondary","data-testid":"viewer-toolbar-pan-button",onClick:async()=>{if(i("pan"),null!=o){const e=await o;e?.setPrimaryInteractionType("pan")}}})})},VertexRotateButton=()=>{const t=s(Xe),n=s(Je),[a,i]=h(et),[o,r]=h(Qe);return A.useEffect(()=>{null!=t&&n&&r(t.getBaseInteractionHandler())},[t,n,r]),e(F,{content:"Rotate",children:e(W,{iconName:"rotate",iconColor:"rotate"===a?"primary":"secondary","data-testid":"viewer-toolbar-rotate-button",onClick:async()=>{if(i("rotate"),null!=o){const e=await o;e?.setPrimaryInteractionType("rotate")}}})})},VertexZoomButton=()=>{const t=s(Xe),n=s(Je),[a,i]=h(et),[o,r]=h(Qe);return A.useEffect(()=>{null!=t&&n&&r(t.getBaseInteractionHandler())},[t,n,r]),e(F,{content:"Zoom",children:e(W,{iconName:"zoom",iconColor:"zoom"===a?"primary":"secondary","data-testid":"viewer-toolbar-zoom-button",onClick:async()=>{if(i("zoom"),null!=o){const e=await o;e?.setPrimaryInteractionType("zoom")}}})})},DefaultToolbar=()=>e(ge,{placement:"bottom-center",children:t(fe,{className:"p-1 border border-neutral-200 rounded bg-neutral-100 opacity-95",children:[e(VertexRotateButton,{}),e(VertexPanButton,{}),e(VertexZoomButton,{}),e(VertexFitAllButton,{}),e(VertexToolbarDivider,{}),e(VertexBoxSelectionButton,{}),e(VertexToolbarDivider,{}),e(VertexViewerCrossSectionButton,{}),e(VertexToolbarDivider,{}),e(VertexPointToPointMeasurementTool,{}),e(VertexPreciseMeasurementTool,{})]})}),VertexToolbar=({endCapEnabledByDefault:t,children:n})=>{const a=c(gt),i=c(ft);A.useEffect(()=>{null!=t&&(a(t),i(t))},[t]);const o=void 0;return e(ge,{placement:"bottom-center",children:null!=n&&!1!==n?e(fe,{className:"p-1 border border-neutral-200 rounded bg-neutral-100 opacity-95",children:n}):e(DefaultToolbar,{})})};function VertexTransformWidget({transformWidgetElement:t,supportUndo:a,onPositionChange:i,onRotationChange:o}){const r=useTransformActions(),l=s(Xn),c=s(Gn),d=s(Kn),u=s(Yn),p=m(qn),h=s(jn),f=s(Hn),g=A.useMemo(()=>"hasValue"===p.state?p.contents:u,[p,u]),v=A.useMemo(()=>{const e=void 0;return c&&(null!=g||l)},[c,g,l]);return e(n,{children:v&&e(ve,{id:"transform-widget","data-testid":"viewer-transform-widget",ref:t,position:d,rotation:null!=d?g:void 0,decimalPlaces:parseInt(f,10),distanceUnit:toUnitType(h),EXPERIMENTAL_undoKeybindings:a??!0,onInteractionStarted:()=>{r.disableSelectionSync(),r.setIsInteractivelyTransforming(!0)},onInteractionEnded:()=>{r.invalidateTransforms(),r.setIsInteractivelyTransforming(!1)},onPositionChanged:async e=>{await r.setTransformWidgetPosition(e.detail),i?.(e.detail)},onRotationChanged:e=>{r.setTransformWidgetOrientation(e.detail),o?.(e.detail)}})})}const VertexViewerSceneReset=({onReset:t})=>{const n=useCrossSectioningActions(),a=useModelViewActions(),i=useSelectionActions(),o=useTransformActions(),r=useViewerSceneActions(),s=c(nn),l=void 0;return e(F,{content:"Reset View",children:e(W,{iconName:"reset",className:"flex bg-white opacity-70 hover:opacity-100 text-neutral-900 hover:text-neutral-700 hover:bg-neutral-200 rounded p-1 cursor-pointer","data-testid":"viewer-reset-tool-button",onClick:async()=>{await n.disable(),await i.resetSelectionState(),o.clearTransformWidgetPosition(),await o.invalidateTransforms(),s(void 0),await a.clearModelView(),t?.(),await r.reset()},variant:"plain"})})};function useViewerFrameActions(){const e=useTransformActions();return{frameDrawn:useActionCallback(({set:t,snapshot:n})=>async a=>{const i=await n.getPromise(Zt);t(nt,a.detail.scene),t(Zt,a.detail.scene.sceneViewSummary.selectedVisibleSummary),t(Xt,i);const o=void 0;await n.getPromise(Gn)&&await e.syncToSelection()})}}const VertexBoxSelectionTool=()=>{const{element:t,callback:n}=useCallbackRef(),a=useBoxSelectionActions(),i=useTransformActions(),o=s(mn);return k.useEffect(()=>{const e=whenComponentReady(t,()=>[t?.model?.onDragComplete(()=>{"clearAndSelect"===o&&(i.clearTransformWidgetOrientation(),i.clearTransformWidgetPosition(),i.enableSelectionSync())})]);return()=>{e?.then(e=>{e?.forEach(e=>e?.dispose())})}},[t,o]),useApplyKeyBinding({keyBind:"Shift",fn:k.useCallback(()=>a.setOperationType("select"),[]),off:k.useCallback(()=>a.setOperationType("clearAndSelect"),[])}),e(ye,{ref:n,"data-testid":"viewer-box-query-tool",operationType:o})};function VertexViewerCameraTypeMenu({open:n,onOpen:a,onDismiss:i,onCameraTypeChange:o}){const r=useViewerCameraActions(),l=s(Ye);return t(Z,{"data-testid":"camera-types-popover",className:"flex",placement:"bottom-end",open:asBooleanAttribute(n),onMenuClosed:i,children:[e("div",{slot:"anchor",children:e("div",{className:Na("flex bg-white hover:opacity-100 hover:text-neutral-700 hover:bg-neutral-200 rounded",{"opacity-70 text-neutral-900":!n,"opacity-100 text-neutral-700 bg-neutral-200":n}),children:e(F,{content:"Change View",children:e(W,{"data-testid":"set-camera-mode-option",className:"p-1 cursor-pointer",variant:"plain",onClick:a,iconName:"orthographic"===l?"cube-orthographic":"cube-perspective",children:e($,{"data-testid":"change-camera-type-icon-button",name:"chevron-down",size:"sm"})})})})}),t("div",{className:"w-36",children:[e("div",{className:"pt-1"}),t(Y,{"data-testid":"set-perspective-view",onClick:()=>{r.updateCameraType("perspective",!0),o?.("perspective")},children:[e($,{slot:"icon","data-testid":"set-perspective-view-icon",name:"cube-perspective",size:"sm",className:Na({"text-[var(--vertex-ui-blue-700)]":"perspective"===l})}),e("div",{className:Na("ml-2 items-center",{"text-[var(--vertex-ui-blue-700)]":"perspective"===l}),children:"Perspective"})]}),t(Y,{"data-testid":"set-orthographic-view",onClick:()=>{r.updateCameraType("orthographic",!0),o?.("orthographic")},children:[e($,{slot:"icon","data-testid":"set-orthographic-view-icon",name:"cube-orthographic",size:"sm",className:Na({"text-[var(--vertex-ui-blue-700)]":"orthographic"===l})}),e("div",{className:Na("ml-2 items-center",{"text-[var(--vertex-ui-blue-700)]":"orthographic"===l}),children:"Orthographic"})]})]})]})}const VertexViewerViewCube=({placement:n,children:a,...i})=>{const o=Array.isArray(a)?a:[a],r=o.filter(e=>!A.isValidElement(e)||e.type!==be).filter(e=>null!=e&&!1!==e),s=o.find(e=>A.isValidElement(e)&&e.type===be),[l,c]=A.useState(!1);return t(ge,{direction:"vertical","data-testid":"view-cube-toolbar",placement:n??"top-right",children:[s??e(be,{className:"m-7",...i}),0===r.length?t("div",{className:"flex items-center justify-center mt-3 gap-1",children:[e(VertexViewerSceneReset,{}),e(VertexViewerCameraTypeMenu,{open:l,onDismiss:()=>c(!1),onOpen:()=>c(!0)})]}):e("div",{className:"mt-3",children:r})]})},VertexViewer=({id:a,src:i,className:o,disableSelection:r,onTap:l,onLongpress:d,onFrameDrawn:u,onSceneReady:m,viewerRefCallback:p,children:f,...g})=>{const v=s(ki),b=useRecoilRef({state:Xe}),w=useViewerCameraActions(),C=useCrossSectioningActions(),S=useHitActions(),k=useSelectionActions(),T=useViewerFrameActions(),P=s(Ye),M=s(wt),E=s(un),I=c(tt),[N,O]=h(Je);A.useEffect(()=>{N&&(O(!1),C.disable())},[i]);const[V,L]=h(Ze);A.useEffect(()=>{null!=a&&L(a)},[a]);const _=s(bi),R=A.useMemo(()=>({opacity:_/100}),[_]),D=s(La),B=s(_a),j=A.useMemo(()=>({color:D,width:B}),[D,B]),H=s(gt),F=s(vt),W=s(yt),U=A.useMemo(()=>({endCapEnabled:H,endCapUsePartColor:F===st.PART,...H&&F===st.SINGLE&&{endCapColor:W}}),[H,F,W]),G=s(ti),K=s(Za),$=s(Ja),q=s(Qa),Y=A.useMemo(()=>({color:K,opacity:$/100,lineWidth:q}),[K,$,q]),X=s(yn),Z=null!=f&&!1!==f;return useKeyBindings(),useDefaultKeybindings(),t(we,{id:V,"data-testid":"vertex-viewer",src:i,ref:e=>{p?.(e),b(e)},className:Na("flex w-full h-full",o,{"cursor-crosshair":M.hitPending}),style:{"--viewer-background":G},config:v,cameraType:N?P:void 0,onCameraTypeChanged:e=>{N&&w.updateCameraType(e.detail,!1)},phantom:R,featureLines:j,selectionHighlighting:Y,crossSectioning:U,featureMaps:X?"final":void 0,onTap:e=>{const t=[...r?[]:[k.selectCurrentHit]];S.tap(e,...t),l?.(e)},onLongpress:e=>{S.longPress(e),d?.(e)},onFrameDrawn:e=>{T.frameDrawn(e),u?.(e)},onSceneReady:async e=>{if(!N){O(!0);const t=await(e?.target?.scene());I(t?.sceneViewId)}m?.(e)},...g,children:[E&&e(VertexBoxSelectionTool,{}),Z?f:t(n,{children:[e(VertexViewerViewCube,{}),e(VertexToolbar,{}),e(VertexViewerContextMenu,{})]})]})};function toSdkConfig(e){return isOnlyNetworkConfig(e)?{network:e}:e}function isOnlyNetworkConfig(e){const t=void 0;return null!=e.renderingHost}const VertexViewerToolkitEventListener=({onHitStateChange:t,onSelectionStateChange:a})=>{const i=s(In),o=s(zn);return A.useEffect(()=>{t?.(i)},[i,t]),A.useEffect(()=>{a?.(o)},[o,a]),e(n,{})},VertexViewerToolkitRoot=({override:a,autoDefineCustomElements:i,children:o,config:r,...s})=>(A.useEffect(()=>{(null==i||i)&&(xe(),Se())},[i]),e(f,{override:a,children:t(n,{children:[e(VertexViewerToolkitEventListener,{...s}),e(VertexViewerToolkitRootConfig,{config:r,children:o})]})})),VertexViewerToolkitRootConfig=({config:t,children:a})=>{const i=c(ki);return A.useEffect(()=>{const e=null!=t?toSdkConfig(t):void 0;i(e)},[t,i]),e(n,{children:a})};var lo=Object.freeze({__proto__:null,get AssemblyFontFace(){return $i},Columns:Di,Core:Dn,Metadata:Xi,Search:Ki});export{ni as Appearance,pn as BoxSelection,Ai as Config,dn as ContextMenu,Pa as CrossSection,xi as Ghosting,Nn as Hits,oi as Keybinding,En as Measurement,$e as Messages,vi as Metadata,Aa as ModelViews,ci as Panel,jt as Performance,lo as SceneTree,ca as SceneViewItem,Bn as Selection,Fn as Settings,ra as Transforms,VertexApplicationMessages,VertexBoxSelectionButton,VertexContextMenu,VertexCrossSectionAppearanceColorPicker,VertexCrossSectionAppearanceControls,VertexCrossSectionAppearanceLineThicknessSlider,VertexCrossSectionAppearancePanelSection,VertexCrossSectionAppearanceReset,VertexDecimalPlaceSelector,VertexFeatureEdgesColorPicker,VertexFeatureEdgesControls,VertexFeatureEdgesPanelSection,VertexFeatureEdgesReset,VertexFeatureEdgesThicknessSlider,VertexFitAllButton,VertexFitSelectedMenuItem,VertexFlyToMenuItem,VertexGhostingControls,VertexGhostingPanelSection,VertexHideAllMenuItem,VertexHidePartMenuItem,VertexHideSelectedMenuItem,VertexLengthUnitSelector,VertexMaterialControls,VertexMaterialPanelSection,VertexMeasurementContextMenu,VertexMeasurementDetails,VertexModelViewsPanel,VertexPanButton,VertexPointToPointMeasurement,VertexPointToPointMeasurementTool,VertexPreciseMeasurement,VertexPreciseMeasurementTool,VertexResizableContent,VertexRotateButton,VertexSceneItemGhostingClear,VertexSceneItemGhostingOpacitySlider,VertexSceneItemGhostingToggle,VertexSceneItemMaterialClear,VertexSceneItemMaterialColorPicker,VertexSceneItemMaterialColorSwatches,VertexSceneItemMaterialOpacitySlider,VertexSceneTree,VertexSceneTreeColumnPopover,VertexSceneTreeContextMenu,VertexSceneTreeCustomColumn,VertexSceneTreeHeader,VertexSceneTreeMetadataColumns,VertexSceneTreeSearchBar,VertexSceneTreeSearchInformationForToolbar,VertexSceneTreeSearchOptionsPopover,VertexSceneTreeTableLayout,VertexSelectionHighlightingColorPicker,VertexSelectionHighlightingControls,VertexSelectionHighlightingLineThicknessSlider,VertexSelectionHighlightingOpacitySlider,VertexSelectionHighlightingPanelSection,VertexSelectionHighlightingReset,VertexShowAllMenuItem,VertexShowOnlyMenuItem,VertexShowOnlySelectedMenuItem,VertexShowPropertiesMenuItem,VertexToolbar,VertexToolbarDivider,VertexTransformClear,VertexTransformControls,VertexTransformInputs,VertexTransformManipulatorToggle,VertexTransformPanelSection,VertexTransformWidget,VertexUnitsControls,VertexUnitsPanelSection,VertexViewer,VertexViewerBackgroundColorPicker,VertexViewerBackgroundControls,VertexViewerBackgroundPanelSection,VertexViewerBackgroundReset,VertexViewerContextMenu,VertexViewerCrossSectionButton,VertexViewerRightOpenedPanel,VertexViewerRightSidebar,VertexViewerSceneReset,VertexViewerToolkitRoot,VertexViewerViewCube,VertexZoomButton,it as Viewer};
|
|
19
19
|
//# sourceMappingURL=bundle.esm.js.map
|