@geode/opengeodeweb-front 10.34.0-rc.8 → 10.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{server → .build/server}/utils/app_config.js +10 -9
- package/{server → .build/server}/utils/cleanup.js +31 -17
- package/{server → .build/server}/utils/cloud.js +1 -4
- package/{server → .build/server}/utils/microservices.js +21 -9
- package/{server → .build/server}/utils/path.js +4 -4
- package/{server → .build/server}/utils/scripts.js +9 -9
- package/.build/server/utils/server_config.js +51 -0
- package/.build/server/utils/stream.js +6 -0
- package/{server → .build/server}/utils/ws_client.js +18 -3
- package/{shared → .build/shared}/scripts.js +10 -10
- package/.build/shared/utils/call_raw.js +31 -0
- package/{shared → .build/shared}/utils/call_schema.js +2 -2
- package/.build/shared/utils/fetch_raw.js +52 -0
- package/{shared → .build/shared}/utils/fetch_schema.js +2 -2
- package/{shared → .build/shared}/utils/file.js +3 -1
- package/{shared → .build/shared}/utils/response_handlers/load.js +10 -7
- package/{shared → .build/shared}/utils/validate_schema.js +1 -1
- package/app/components/ActionButton.vue +6 -6
- package/app/components/CameraManager/List.vue +5 -5
- package/app/components/CameraManager/Saver.vue +3 -5
- package/app/components/CameraManager.vue +6 -4
- package/app/components/CameraOrientation.vue +12 -12
- package/app/components/ClippingPlaneCard.vue +4 -2
- package/app/components/ClippingPlanes.vue +8 -8
- package/app/components/CrsSelector.vue +9 -10
- package/app/components/DeleteDialog.vue +4 -2
- package/app/components/DragAndDrop.vue +10 -12
- package/app/components/DragAndDropInternal/DragAndDropInline.vue +4 -2
- package/app/components/ExtensionSelector.vue +4 -4
- package/app/components/FeedBack/ErrorBanner.vue +3 -1
- package/app/components/FeedBack/Snackers.vue +4 -3
- package/app/components/FileSelector.vue +10 -8
- package/app/components/FileUploader.vue +11 -11
- package/app/components/GlassCard.vue +1 -1
- package/app/components/HybridRenderingView.vue +7 -5
- package/app/components/HybridViewerTooltip.vue +7 -7
- package/app/components/Launcher.vue +1 -1
- package/app/components/Loading/EcoMessages.vue +9 -3
- package/app/components/Loading.vue +2 -2
- package/app/components/MissingFilesSelector.vue +12 -10
- package/app/components/ObjectSelector.vue +10 -9
- package/app/components/PackagesVersions.vue +6 -5
- package/app/components/Recaptcha.vue +3 -3
- package/app/components/RemoteRenderingView.vue +6 -7
- package/app/components/Ruler.vue +3 -3
- package/app/components/Screenshot.vue +6 -6
- package/app/components/SearchBar.vue +4 -2
- package/app/components/ShrinkFilter.vue +7 -7
- package/app/components/Step.vue +6 -5
- package/app/components/Stepper.vue +4 -3
- package/app/components/ToolPanel.vue +6 -3
- package/app/components/ViewToolbar.vue +25 -28
- package/app/components/Viewer/ContextMenu/CenterButton.vue +7 -5
- package/app/components/Viewer/ContextMenu/CircularItems.vue +3 -3
- package/app/components/Viewer/ContextMenu/ContextMenu.vue +22 -19
- package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +10 -8
- package/app/components/Viewer/ContextMenu/InfoCard.vue +11 -12
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +13 -17
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +11 -15
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +12 -16
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +8 -12
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +11 -15
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +11 -15
- package/app/components/Viewer/Generic/Model/BlocksOptions.vue +67 -38
- package/app/components/Viewer/Generic/Model/CornersOptions.vue +53 -23
- package/app/components/Viewer/Generic/Model/EdgesOptions.vue +1 -3
- package/app/components/Viewer/Generic/Model/LinesOptions.vue +67 -38
- package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +31 -15
- package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +2 -3
- package/app/components/Viewer/Generic/Model/PointsOptions.vue +6 -6
- package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +69 -38
- package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +64 -46
- package/app/components/Viewer/ObjectTree/Base/Controls.vue +5 -5
- package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +13 -9
- package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +5 -5
- package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +10 -10
- package/app/components/Viewer/ObjectTree/Box.vue +6 -4
- package/app/components/Viewer/ObjectTree/Layout.vue +23 -21
- package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +14 -14
- package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +59 -24
- package/app/components/Viewer/Options/AttributeColorBar.vue +4 -2
- package/app/components/Viewer/Options/AttributeRangeSelector.vue +4 -2
- package/app/components/Viewer/Options/AttributeSelector.vue +7 -9
- package/app/components/Viewer/Options/ColorMapList.vue +15 -13
- package/app/components/Viewer/Options/ColorMapPicker.vue +4 -4
- package/app/components/Viewer/Options/ColorPicker.vue +223 -41
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +16 -16
- package/app/components/Viewer/Options/ColormapQuickPicker.vue +7 -5
- package/app/components/Viewer/Options/OptionsSection.vue +1 -1
- package/app/components/Viewer/Options/TextureItem.vue +8 -6
- package/app/components/Viewer/Options/TexturesSelector.vue +1 -1
- package/app/components/Viewer/OverlappingObjectsPicker.vue +8 -9
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +2 -6
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +12 -16
- package/app/components/Viewer/Surface/PolygonsOptions.vue +12 -16
- package/app/components/Viewer/Ui.vue +2 -2
- package/app/components/Wrapper.vue +1 -4
- package/app/components/ZScaling.vue +5 -3
- package/app/components/csv-preview/CsvPreviewer.vue +38 -37
- package/app/components/csv-preview/CsvSettings.vue +6 -4
- package/app/components/csv-preview/CsvTable.vue +1 -1
- package/app/composables/batch_style.ts +5 -6
- package/app/composables/clipping_planes_widget.ts +73 -181
- package/app/composables/clipping_planes_widget_entries.ts +189 -0
- package/app/composables/copy_to_clipboard.ts +7 -0
- package/app/composables/global_attribute_style.ts +163 -83
- package/app/composables/hover_highlight.ts +46 -14
- package/app/composables/model_collections.ts +26 -13
- package/app/composables/model_components.ts +26 -13
- package/app/composables/project_manager.ts +76 -19
- package/app/composables/responsive_middle_truncate.ts +13 -13
- package/app/composables/stepper_tree.ts +34 -11
- package/app/composables/tree_filter.ts +66 -44
- package/app/composables/tree_keyboard_nav.ts +25 -11
- package/app/composables/tree_scroll.ts +44 -14
- package/app/composables/use_adaptive_styles.ts +66 -23
- package/app/composables/use_overlapping_picker.ts +66 -16
- package/app/composables/use_quick_colormap.ts +16 -5
- package/app/composables/virtual_tree.ts +75 -43
- package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
- package/app/plugins/auto_store_register.ts +2 -7
- package/app/plugins/click_outside_ignore_snackbars.client.ts +39 -0
- package/app/stores/app.ts +57 -192
- package/app/stores/app_helpers/extension.ts +179 -0
- package/app/stores/back.ts +37 -21
- package/app/stores/camera_manager.ts +22 -20
- package/app/stores/cloud.ts +17 -13
- package/app/stores/data.ts +88 -47
- package/app/stores/data_helpers/collections.ts +36 -38
- package/app/stores/data_helpers/mesh.ts +45 -36
- package/app/stores/data_style.ts +50 -28
- package/app/stores/feedback.ts +6 -6
- package/app/stores/hybrid_viewer.ts +41 -52
- package/app/stores/infra.ts +39 -37
- package/app/stores/menu.ts +23 -14
- package/app/stores/treeview.ts +72 -42
- package/app/stores/viewer.ts +39 -27
- package/app/utils/attributes.ts +3 -3
- package/app/utils/clipping_planes.ts +111 -14
- package/app/utils/color_picker.ts +57 -0
- package/app/utils/colormap.ts +58 -35
- package/app/utils/default_styles/index.ts +2 -2
- package/app/utils/default_styles/meshes.ts +107 -13
- package/app/utils/default_styles/models.ts +83 -14
- package/app/utils/extension.ts +47 -20
- package/app/utils/import_workflow.ts +21 -13
- package/app/utils/name_cleaner.ts +1 -1
- package/app/utils/string.ts +1 -1
- package/app/utils/treeview.ts +2 -2
- package/internal/database/base_database.ts +7 -3
- package/internal/database/database.ts +36 -26
- package/internal/database/extended_database.ts +1 -1
- package/internal/stores/data_style/mesh/cells/cell.ts +70 -34
- package/internal/stores/data_style/mesh/cells/color.ts +12 -6
- package/internal/stores/data_style/mesh/cells/common.ts +18 -8
- package/internal/stores/data_style/mesh/cells/index.ts +122 -42
- package/internal/stores/data_style/mesh/cells/textures.ts +12 -6
- package/internal/stores/data_style/mesh/cells/vertex.ts +75 -34
- package/internal/stores/data_style/mesh/cells/visibility.ts +15 -4
- package/internal/stores/data_style/mesh/edges/color.ts +12 -6
- package/internal/stores/data_style/mesh/edges/common.ts +14 -6
- package/internal/stores/data_style/mesh/edges/edge.ts +71 -39
- package/internal/stores/data_style/mesh/edges/index.ts +117 -42
- package/internal/stores/data_style/mesh/edges/vertex.ts +76 -39
- package/internal/stores/data_style/mesh/edges/visibility.ts +15 -4
- package/internal/stores/data_style/mesh/edges/width.ts +12 -4
- package/internal/stores/data_style/mesh/index.ts +30 -11
- package/internal/stores/data_style/mesh/points/color.ts +12 -6
- package/internal/stores/data_style/mesh/points/common.ts +21 -8
- package/internal/stores/data_style/mesh/points/index.ts +101 -50
- package/internal/stores/data_style/mesh/points/size.ts +12 -4
- package/internal/stores/data_style/mesh/points/vertex.ts +75 -34
- package/internal/stores/data_style/mesh/points/visibility.ts +17 -7
- package/internal/stores/data_style/mesh/polygons/color.ts +12 -6
- package/internal/stores/data_style/mesh/polygons/common.ts +23 -6
- package/internal/stores/data_style/mesh/polygons/index.ts +130 -70
- package/internal/stores/data_style/mesh/polygons/polygon.ts +77 -43
- package/internal/stores/data_style/mesh/polygons/textures.ts +12 -6
- package/internal/stores/data_style/mesh/polygons/vertex.ts +79 -39
- package/internal/stores/data_style/mesh/polygons/visibility.ts +16 -6
- package/internal/stores/data_style/mesh/polyhedra/color.ts +12 -6
- package/internal/stores/data_style/mesh/polyhedra/common.ts +14 -6
- package/internal/stores/data_style/mesh/polyhedra/index.ts +115 -56
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +80 -39
- package/internal/stores/data_style/mesh/polyhedra/vertex.ts +79 -39
- package/internal/stores/data_style/mesh/polyhedra/visibility.ts +16 -6
- package/internal/stores/data_style/model/blocks/color.ts +43 -13
- package/internal/stores/data_style/model/blocks/common.ts +21 -6
- package/internal/stores/data_style/model/blocks/index.ts +89 -59
- package/internal/stores/data_style/model/blocks/polyhedron.ts +101 -44
- package/internal/stores/data_style/model/blocks/vertex.ts +107 -42
- package/internal/stores/data_style/model/blocks/visibility.ts +17 -4
- package/internal/stores/data_style/model/color.ts +171 -83
- package/internal/stores/data_style/model/common.ts +70 -21
- package/internal/stores/data_style/model/corners/color.ts +43 -11
- package/internal/stores/data_style/model/corners/common.ts +25 -6
- package/internal/stores/data_style/model/corners/index.ts +66 -41
- package/internal/stores/data_style/model/corners/vertex.ts +105 -74
- package/internal/stores/data_style/model/corners/visibility.ts +19 -4
- package/internal/stores/data_style/model/edges/common.ts +12 -4
- package/internal/stores/data_style/model/edges/index.ts +2 -1
- package/internal/stores/data_style/model/edges/visibility.ts +24 -7
- package/internal/stores/data_style/model/index.ts +24 -11
- package/internal/stores/data_style/model/lines/color.ts +41 -11
- package/internal/stores/data_style/model/lines/common.ts +17 -6
- package/internal/stores/data_style/model/lines/edge.ts +105 -42
- package/internal/stores/data_style/model/lines/index.ts +86 -59
- package/internal/stores/data_style/model/lines/vertex.ts +105 -42
- package/internal/stores/data_style/model/lines/visibility.ts +17 -4
- package/internal/stores/data_style/model/points/common.ts +8 -4
- package/internal/stores/data_style/model/points/index.ts +10 -3
- package/internal/stores/data_style/model/points/size.ts +12 -4
- package/internal/stores/data_style/model/points/visibility.ts +16 -6
- package/internal/stores/data_style/model/selection.ts +80 -58
- package/internal/stores/data_style/model/surfaces/color.ts +41 -11
- package/internal/stores/data_style/model/surfaces/common.ts +23 -6
- package/internal/stores/data_style/model/surfaces/index.ts +89 -59
- package/internal/stores/data_style/model/surfaces/polygon.ts +107 -67
- package/internal/stores/data_style/model/surfaces/vertex.ts +111 -67
- package/internal/stores/data_style/model/surfaces/visibility.ts +18 -5
- package/internal/stores/data_style/model/visibility.ts +82 -20
- package/internal/stores/data_style/state.ts +77 -65
- package/internal/stores/hybrid_viewer/brightness.ts +49 -31
- package/internal/stores/hybrid_viewer/camera.ts +191 -177
- package/internal/stores/hybrid_viewer/camera_animation.ts +11 -10
- package/internal/stores/hybrid_viewer/core.ts +64 -0
- package/internal/stores/hybrid_viewer/filters.ts +10 -16
- package/internal/stores/hybrid_viewer/highlight.ts +91 -130
- package/internal/stores/hybrid_viewer/ruler.ts +24 -15
- package/internal/stores/hybrid_viewer/scene.ts +96 -117
- package/internal/stores/hybrid_viewer/viewport.ts +74 -65
- package/internal/stores/hybrid_viewer/vtk_types.ts +13 -29
- package/internal/utils/api_fetch.ts +54 -23
- package/internal/utils/upload_file.ts +74 -53
- package/internal/utils/viewer_call.ts +22 -13
- package/internal/utils/ws_client.ts +24 -13
- package/nuxt.config.ts +58 -1
- package/package.json +20 -8
- package/server/api/cloud/extensions/run.post.ts +6 -10
- package/server/api/local/app/project_folder_path.post.ts +4 -4
- package/server/api/local/app/run_back.post.ts +5 -7
- package/server/api/local/app/run_viewer.post.ts +5 -7
- package/server/api/local/extensions/kill.post.ts +4 -3
- package/server/api/local/extensions/run.post.ts +7 -10
- package/server/api/local/extensions/upload.put.ts +44 -54
- package/server/api/microservice/app/get_is_app_ready.get.ts +4 -5
- package/server/api/microservice/app/set_app_base_url.post.ts +5 -6
- package/server/api/microservice/app/set_back_base_url.post.ts +5 -6
- package/server/api/microservice/app/set_is_app_ready.post.ts +5 -6
- package/server/api/microservice/app/set_viewer_base_url.post.ts +5 -6
- package/server/api/microservice/extensions/download.post.ts +5 -4
- package/server/api/serverless/run_cloud.post.ts +53 -11
- package/server/utils/app_config.ts +29 -22
- package/server/utils/cleanup.ts +60 -30
- package/server/utils/cloud.ts +9 -8
- package/server/utils/extension.ts +23 -9
- package/server/utils/microservices.ts +33 -24
- package/server/utils/path.ts +4 -4
- package/server/utils/scripts.ts +26 -23
- package/server/utils/server.ts +2 -2
- package/server/utils/server_config.ts +41 -27
- package/server/utils/stream.ts +6 -0
- package/server/utils/ws_client.ts +42 -8
- package/shared/scripts.ts +15 -10
- package/shared/utils/call_raw.ts +23 -16
- package/shared/utils/call_schema.ts +5 -8
- package/shared/utils/fetch_raw.ts +87 -47
- package/shared/utils/fetch_schema.ts +6 -9
- package/shared/utils/file.ts +8 -2
- package/shared/utils/response_handlers/load.ts +26 -11
- package/shared/utils/types.ts +9 -9
- package/shared/utils/validate_schema.ts +1 -1
- package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -276
- package/server/types/vendor.d.ts +0 -64
- package/server/utils/server_config.js +0 -43
- package/shared/utils/call_raw.js +0 -30
- package/shared/utils/fetch_raw.js +0 -40
- /package/{opengeodeweb_front_schemas.js → .build/opengeodeweb_front_schemas.js} +0 -0
- /package/{server → .build/server}/utils/server.js +0 -0
- /package/{shared → .build/shared}/app_mode.js +0 -0
- /package/{shared → .build/shared}/utils/parse_boolean.js +0 -0
- /package/{shared → .build/shared}/utils/types.js +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// oxlint-disable eslint/max-lines
|
|
1
2
|
import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
|
|
2
3
|
// Third party imports
|
|
3
4
|
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
@@ -50,12 +51,61 @@ function isModelBlocksPolyhedronAttributeValid({
|
|
|
50
51
|
);
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
interface UseModelBlocksPolyhedronAttributeReturn {
|
|
55
|
+
modelBlocksPolyhedronAttributeName: (modelId: string, blockId?: string) => string | undefined;
|
|
56
|
+
modelBlocksPolyhedronAttributeItem: (modelId: string, blockId?: string) => number;
|
|
57
|
+
modelBlocksPolyhedronAttributeRange: (
|
|
58
|
+
modelId: string,
|
|
59
|
+
blockId?: string,
|
|
60
|
+
) => [number | undefined, number | undefined];
|
|
61
|
+
modelBlocksPolyhedronAttributeColorMap: (modelId: string, blockId?: string) => string | undefined;
|
|
62
|
+
modelBlocksPolyhedronAttributeStoredConfig: (
|
|
63
|
+
modelId: string,
|
|
64
|
+
blockId: string | undefined,
|
|
65
|
+
name: string | undefined,
|
|
66
|
+
item: number | undefined,
|
|
67
|
+
) => AttributeStoredConfig;
|
|
68
|
+
setModelBlocksPolyhedronAttribute: (
|
|
69
|
+
modelId: string,
|
|
70
|
+
blockIds: string[],
|
|
71
|
+
input: AttributeInput,
|
|
72
|
+
) => Promise<unknown>;
|
|
73
|
+
setModelBlocksPolyhedronAttributeName: (
|
|
74
|
+
modelId: string,
|
|
75
|
+
blockIds: string[],
|
|
76
|
+
name: string,
|
|
77
|
+
) => Promise<unknown>;
|
|
78
|
+
setModelBlocksPolyhedronAttributeItem: (
|
|
79
|
+
modelId: string,
|
|
80
|
+
blockIds: string[],
|
|
81
|
+
item: number,
|
|
82
|
+
) => Promise<unknown>;
|
|
83
|
+
setModelBlocksPolyhedronAttributeRange: (
|
|
84
|
+
modelId: string,
|
|
85
|
+
blockIds: string[],
|
|
86
|
+
minimum: number,
|
|
87
|
+
maximum: number,
|
|
88
|
+
) => Promise<unknown>;
|
|
89
|
+
setModelBlocksPolyhedronAttributeColorMap: (
|
|
90
|
+
modelId: string,
|
|
91
|
+
blockIds: string[],
|
|
92
|
+
colorMap: string | undefined,
|
|
93
|
+
) => Promise<unknown>;
|
|
94
|
+
modelBlocksPolyhedronAttributeNoDataColor: (modelId: string, blockId?: string) => unknown;
|
|
95
|
+
setModelBlocksPolyhedronAttributeNoDataColor: (
|
|
96
|
+
modelId: string,
|
|
97
|
+
blockIds: string[],
|
|
98
|
+
no_data_color: unknown,
|
|
99
|
+
) => Promise<unknown>;
|
|
100
|
+
}
|
|
101
|
+
|
|
53
102
|
// oxlint-disable-next-line max-lines-per-function
|
|
54
|
-
function useModelBlocksPolyhedronAttribute() {
|
|
103
|
+
function useModelBlocksPolyhedronAttribute(): UseModelBlocksPolyhedronAttributeReturn {
|
|
55
104
|
const dataStore = useDataStore();
|
|
56
105
|
const modelBlocksCommonStyle = useModelBlocksCommonStyle();
|
|
57
106
|
const viewerStore = useViewerStore();
|
|
58
107
|
function modelBlocksPolyhedronAttribute(modelId: string, blockId?: string): AttributeState {
|
|
108
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.polyhedron shape is defined by the data style schema.
|
|
59
109
|
return modelBlocksCommonStyle.modelBlockColoring(modelId, blockId).polyhedron as AttributeState;
|
|
60
110
|
}
|
|
61
111
|
function modelBlocksPolyhedronAttributeStoredConfig(
|
|
@@ -65,14 +115,10 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
65
115
|
item: number | undefined,
|
|
66
116
|
): AttributeStoredConfig {
|
|
67
117
|
const { storedConfigs } = modelBlocksPolyhedronAttribute(modelId, blockId);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
item !== undefined &&
|
|
73
|
-
item in storedConfigs[name]!
|
|
74
|
-
) {
|
|
75
|
-
return storedConfigs[name]![item]!;
|
|
118
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
119
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
120
|
+
if (itemConfig !== undefined) {
|
|
121
|
+
return itemConfig;
|
|
76
122
|
}
|
|
77
123
|
return {
|
|
78
124
|
minimum: undefined,
|
|
@@ -81,32 +127,41 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
81
127
|
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
82
128
|
};
|
|
83
129
|
}
|
|
84
|
-
function mutateModelBlocksPolyhedronStyle(
|
|
130
|
+
async function mutateModelBlocksPolyhedronStyle(
|
|
85
131
|
modelId: string,
|
|
86
132
|
blockIds: string[],
|
|
87
133
|
values: Record<string, unknown>,
|
|
88
|
-
) {
|
|
89
|
-
|
|
90
|
-
modelBlocksCommonStyle.
|
|
134
|
+
): Promise<void> {
|
|
135
|
+
const tasks: Promise<void>[] = [
|
|
136
|
+
modelBlocksCommonStyle.mutateModelBlocksColoring(modelId, blockIds, {
|
|
91
137
|
polyhedron: values,
|
|
92
|
-
})
|
|
138
|
+
}),
|
|
139
|
+
];
|
|
140
|
+
const totalBlockIds = await dataStore.getBlocksGeodeIds(modelId);
|
|
141
|
+
if (blockIds.length === totalBlockIds.length) {
|
|
142
|
+
tasks.push(
|
|
143
|
+
modelBlocksCommonStyle.mutateModelBlocksTypeColoring(modelId, {
|
|
144
|
+
polyhedron: values,
|
|
145
|
+
}),
|
|
146
|
+
);
|
|
93
147
|
}
|
|
94
|
-
|
|
95
|
-
polyhedron: values,
|
|
96
|
-
});
|
|
148
|
+
await Promise.all(tasks);
|
|
97
149
|
}
|
|
98
|
-
function setModelBlocksPolyhedronAttributeStoredConfig(
|
|
150
|
+
async function setModelBlocksPolyhedronAttributeStoredConfig(
|
|
99
151
|
modelId: string,
|
|
100
152
|
blockIds: string[],
|
|
101
153
|
name: string | undefined,
|
|
102
154
|
item: number | undefined,
|
|
103
155
|
config: Partial<AttributeStoredConfig>,
|
|
104
|
-
) {
|
|
105
|
-
|
|
156
|
+
): Promise<void> {
|
|
157
|
+
if (name === undefined || item === undefined) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
await mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
106
161
|
storedConfigs: {
|
|
107
|
-
[name
|
|
162
|
+
[name]: {
|
|
108
163
|
lastItem: item,
|
|
109
|
-
[item
|
|
164
|
+
[item]: config,
|
|
110
165
|
},
|
|
111
166
|
},
|
|
112
167
|
});
|
|
@@ -123,8 +178,9 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
123
178
|
name: string | undefined,
|
|
124
179
|
): number {
|
|
125
180
|
const { storedConfigs } = modelBlocksPolyhedronAttribute(modelId, blockId);
|
|
126
|
-
|
|
127
|
-
|
|
181
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
182
|
+
if (nameConfig !== undefined) {
|
|
183
|
+
return nameConfig.lastItem;
|
|
128
184
|
}
|
|
129
185
|
return 0;
|
|
130
186
|
}
|
|
@@ -165,18 +221,18 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
165
221
|
colorMap,
|
|
166
222
|
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
167
223
|
}: AttributeInput,
|
|
168
|
-
) {
|
|
169
|
-
mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
224
|
+
): Promise<unknown> {
|
|
225
|
+
await mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
170
226
|
name,
|
|
171
227
|
item,
|
|
172
228
|
});
|
|
173
|
-
setModelBlocksPolyhedronAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
229
|
+
await setModelBlocksPolyhedronAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
174
230
|
minimum,
|
|
175
231
|
maximum,
|
|
176
232
|
colorMap,
|
|
177
233
|
no_data_color,
|
|
178
234
|
});
|
|
179
|
-
const points = getRGBPointsFromPreset(colorMap
|
|
235
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
180
236
|
const viewer_ids = await dataStore.getMeshComponentsViewerIds(modelId, blockIds);
|
|
181
237
|
const params = {
|
|
182
238
|
id: modelId,
|
|
@@ -193,7 +249,7 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
193
249
|
params,
|
|
194
250
|
});
|
|
195
251
|
}
|
|
196
|
-
function applyPolyhedronAttribute(modelId: string, blockIds: string[]) {
|
|
252
|
+
async function applyPolyhedronAttribute(modelId: string, blockIds: string[]): Promise<unknown> {
|
|
197
253
|
const name = modelBlocksPolyhedronAttributeName(modelId, blockIds[0]);
|
|
198
254
|
const item = modelBlocksPolyhedronAttributeItem(modelId, blockIds[0]);
|
|
199
255
|
const storedConfig = modelBlocksPolyhedronAttributeStoredConfig(
|
|
@@ -211,54 +267,55 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
211
267
|
no_data_color: storedConfig.no_data_color,
|
|
212
268
|
};
|
|
213
269
|
if (isModelBlocksPolyhedronAttributeValid(attribute)) {
|
|
214
|
-
|
|
270
|
+
const result = await setModelBlocksPolyhedronAttribute(modelId, blockIds, attribute);
|
|
271
|
+
return result;
|
|
215
272
|
}
|
|
216
|
-
return
|
|
273
|
+
return undefined;
|
|
217
274
|
}
|
|
218
|
-
function setModelBlocksPolyhedronAttributeName(
|
|
275
|
+
async function setModelBlocksPolyhedronAttributeName(
|
|
219
276
|
modelId: string,
|
|
220
277
|
blockIds: string[],
|
|
221
278
|
name: string,
|
|
222
|
-
) {
|
|
279
|
+
): Promise<unknown> {
|
|
223
280
|
const item = modelBlocksPolyhedronAttributeLastItem(modelId, blockIds[0], name);
|
|
224
|
-
mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
281
|
+
await mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
225
282
|
name,
|
|
226
283
|
item,
|
|
227
284
|
});
|
|
228
285
|
return applyPolyhedronAttribute(modelId, blockIds);
|
|
229
286
|
}
|
|
230
|
-
function setModelBlocksPolyhedronAttributeItem(
|
|
287
|
+
async function setModelBlocksPolyhedronAttributeItem(
|
|
231
288
|
modelId: string,
|
|
232
289
|
blockIds: string[],
|
|
233
290
|
item: number,
|
|
234
|
-
) {
|
|
235
|
-
mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
291
|
+
): Promise<unknown> {
|
|
292
|
+
await mutateModelBlocksPolyhedronStyle(modelId, blockIds, {
|
|
236
293
|
item,
|
|
237
294
|
});
|
|
238
295
|
return applyPolyhedronAttribute(modelId, blockIds);
|
|
239
296
|
}
|
|
240
|
-
function setModelBlocksPolyhedronAttributeRange(
|
|
297
|
+
async function setModelBlocksPolyhedronAttributeRange(
|
|
241
298
|
modelId: string,
|
|
242
299
|
blockIds: string[],
|
|
243
300
|
minimum: number,
|
|
244
301
|
maximum: number,
|
|
245
|
-
) {
|
|
302
|
+
): Promise<unknown> {
|
|
246
303
|
const name = modelBlocksPolyhedronAttributeName(modelId, blockIds[0]);
|
|
247
304
|
const item = modelBlocksPolyhedronAttributeItem(modelId, blockIds[0]);
|
|
248
|
-
setModelBlocksPolyhedronAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
305
|
+
await setModelBlocksPolyhedronAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
249
306
|
minimum,
|
|
250
307
|
maximum,
|
|
251
308
|
});
|
|
252
309
|
return applyPolyhedronAttribute(modelId, blockIds);
|
|
253
310
|
}
|
|
254
|
-
function setModelBlocksPolyhedronAttributeColorMap(
|
|
311
|
+
async function setModelBlocksPolyhedronAttributeColorMap(
|
|
255
312
|
modelId: string,
|
|
256
313
|
blockIds: string[],
|
|
257
314
|
colorMap: string | undefined,
|
|
258
|
-
) {
|
|
315
|
+
): Promise<unknown> {
|
|
259
316
|
const name = modelBlocksPolyhedronAttributeName(modelId, blockIds[0]);
|
|
260
317
|
const item = modelBlocksPolyhedronAttributeItem(modelId, blockIds[0]);
|
|
261
|
-
setModelBlocksPolyhedronAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
318
|
+
await setModelBlocksPolyhedronAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
262
319
|
colorMap,
|
|
263
320
|
});
|
|
264
321
|
return applyPolyhedronAttribute(modelId, blockIds);
|
|
@@ -273,7 +330,7 @@ function useModelBlocksPolyhedronAttribute() {
|
|
|
273
330
|
modelId: string,
|
|
274
331
|
blockIds: string[],
|
|
275
332
|
no_data_color: unknown,
|
|
276
|
-
) {
|
|
333
|
+
): Promise<unknown> {
|
|
277
334
|
const name = modelBlocksPolyhedronAttributeName(modelId, blockIds[0]);
|
|
278
335
|
const item = modelBlocksPolyhedronAttributeItem(modelId, blockIds[0]);
|
|
279
336
|
const storedConfig = modelBlocksPolyhedronAttributeStoredConfig(
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// oxlint-disable eslint/max-lines
|
|
1
2
|
import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
|
|
2
3
|
// Third party imports
|
|
3
4
|
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
@@ -49,12 +50,61 @@ function isModelBlocksVertexAttributeValid({
|
|
|
49
50
|
);
|
|
50
51
|
}
|
|
51
52
|
|
|
53
|
+
interface UseModelBlocksVertexAttributeReturn {
|
|
54
|
+
modelBlocksVertexAttributeName: (modelId: string, blockId?: string) => string | undefined;
|
|
55
|
+
modelBlocksVertexAttributeItem: (modelId: string, blockId?: string) => number;
|
|
56
|
+
modelBlocksVertexAttributeRange: (
|
|
57
|
+
modelId: string,
|
|
58
|
+
blockId?: string,
|
|
59
|
+
) => [number | undefined, number | undefined];
|
|
60
|
+
modelBlocksVertexAttributeColorMap: (modelId: string, blockId?: string) => string | undefined;
|
|
61
|
+
modelBlocksVertexAttributeStoredConfig: (
|
|
62
|
+
modelId: string,
|
|
63
|
+
blockId: string | undefined,
|
|
64
|
+
name: string | undefined,
|
|
65
|
+
item: number | undefined,
|
|
66
|
+
) => AttributeStoredConfig;
|
|
67
|
+
setModelBlocksVertexAttribute: (
|
|
68
|
+
modelId: string,
|
|
69
|
+
blockIds: string[],
|
|
70
|
+
input: AttributeInput,
|
|
71
|
+
) => Promise<unknown>;
|
|
72
|
+
setModelBlocksVertexAttributeName: (
|
|
73
|
+
modelId: string,
|
|
74
|
+
blockIds: string[],
|
|
75
|
+
name: string,
|
|
76
|
+
) => Promise<unknown>;
|
|
77
|
+
setModelBlocksVertexAttributeItem: (
|
|
78
|
+
modelId: string,
|
|
79
|
+
blockIds: string[],
|
|
80
|
+
item: number,
|
|
81
|
+
) => Promise<unknown>;
|
|
82
|
+
setModelBlocksVertexAttributeRange: (
|
|
83
|
+
modelId: string,
|
|
84
|
+
blockIds: string[],
|
|
85
|
+
minimum: number,
|
|
86
|
+
maximum: number,
|
|
87
|
+
) => Promise<unknown>;
|
|
88
|
+
setModelBlocksVertexAttributeColorMap: (
|
|
89
|
+
modelId: string,
|
|
90
|
+
blockIds: string[],
|
|
91
|
+
colorMap: string | undefined,
|
|
92
|
+
) => Promise<unknown>;
|
|
93
|
+
modelBlocksVertexAttributeNoDataColor: (modelId: string, blockId?: string) => unknown;
|
|
94
|
+
setModelBlocksVertexAttributeNoDataColor: (
|
|
95
|
+
modelId: string,
|
|
96
|
+
blockIds: string[],
|
|
97
|
+
no_data_color: unknown,
|
|
98
|
+
) => Promise<unknown>;
|
|
99
|
+
}
|
|
100
|
+
|
|
52
101
|
// oxlint-disable-next-line max-lines-per-function
|
|
53
|
-
function useModelBlocksVertexAttribute() {
|
|
102
|
+
function useModelBlocksVertexAttribute(): UseModelBlocksVertexAttributeReturn {
|
|
54
103
|
const dataStore = useDataStore();
|
|
55
104
|
const modelBlocksCommonStyle = useModelBlocksCommonStyle();
|
|
56
105
|
const viewerStore = useViewerStore();
|
|
57
106
|
function modelBlocksVertexAttribute(modelId: string, blockId?: string): AttributeState {
|
|
107
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
|
|
58
108
|
return modelBlocksCommonStyle.modelBlockColoring(modelId, blockId).vertex as AttributeState;
|
|
59
109
|
}
|
|
60
110
|
function modelBlocksVertexAttributeStoredConfig(
|
|
@@ -64,14 +114,10 @@ function useModelBlocksVertexAttribute() {
|
|
|
64
114
|
item: number | undefined,
|
|
65
115
|
): AttributeStoredConfig {
|
|
66
116
|
const { storedConfigs } = modelBlocksVertexAttribute(modelId, blockId);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
item !== undefined &&
|
|
72
|
-
item in storedConfigs[name]!
|
|
73
|
-
) {
|
|
74
|
-
return storedConfigs[name]![item]!;
|
|
117
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
118
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
119
|
+
if (itemConfig !== undefined) {
|
|
120
|
+
return itemConfig;
|
|
75
121
|
}
|
|
76
122
|
return {
|
|
77
123
|
minimum: undefined,
|
|
@@ -80,32 +126,41 @@ function useModelBlocksVertexAttribute() {
|
|
|
80
126
|
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
81
127
|
};
|
|
82
128
|
}
|
|
83
|
-
function mutateModelBlocksVertexStyle(
|
|
129
|
+
async function mutateModelBlocksVertexStyle(
|
|
84
130
|
modelId: string,
|
|
85
131
|
blockIds: string[],
|
|
86
132
|
values: Record<string, unknown>,
|
|
87
|
-
) {
|
|
88
|
-
|
|
89
|
-
modelBlocksCommonStyle.
|
|
133
|
+
): Promise<void> {
|
|
134
|
+
const tasks: Promise<void>[] = [
|
|
135
|
+
modelBlocksCommonStyle.mutateModelBlocksColoring(modelId, blockIds, {
|
|
90
136
|
vertex: values,
|
|
91
|
-
})
|
|
137
|
+
}),
|
|
138
|
+
];
|
|
139
|
+
const totalBlockIds = await dataStore.getBlocksGeodeIds(modelId);
|
|
140
|
+
if (blockIds.length === totalBlockIds.length) {
|
|
141
|
+
tasks.push(
|
|
142
|
+
modelBlocksCommonStyle.mutateModelBlocksTypeColoring(modelId, {
|
|
143
|
+
vertex: values,
|
|
144
|
+
}),
|
|
145
|
+
);
|
|
92
146
|
}
|
|
93
|
-
|
|
94
|
-
vertex: values,
|
|
95
|
-
});
|
|
147
|
+
await Promise.all(tasks);
|
|
96
148
|
}
|
|
97
|
-
function setModelBlocksVertexAttributeStoredConfig(
|
|
149
|
+
async function setModelBlocksVertexAttributeStoredConfig(
|
|
98
150
|
modelId: string,
|
|
99
151
|
blockIds: string[],
|
|
100
152
|
name: string | undefined,
|
|
101
153
|
item: number | undefined,
|
|
102
154
|
config: Partial<AttributeStoredConfig>,
|
|
103
|
-
) {
|
|
104
|
-
|
|
155
|
+
): Promise<void> {
|
|
156
|
+
if (name === undefined || item === undefined) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
await mutateModelBlocksVertexStyle(modelId, blockIds, {
|
|
105
160
|
storedConfigs: {
|
|
106
|
-
[name
|
|
161
|
+
[name]: {
|
|
107
162
|
lastItem: item,
|
|
108
|
-
[item
|
|
163
|
+
[item]: config,
|
|
109
164
|
},
|
|
110
165
|
},
|
|
111
166
|
});
|
|
@@ -119,8 +174,9 @@ function useModelBlocksVertexAttribute() {
|
|
|
119
174
|
name: string | undefined,
|
|
120
175
|
): number {
|
|
121
176
|
const { storedConfigs } = modelBlocksVertexAttribute(modelId, blockId);
|
|
122
|
-
|
|
123
|
-
|
|
177
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
178
|
+
if (nameConfig !== undefined) {
|
|
179
|
+
return nameConfig.lastItem;
|
|
124
180
|
}
|
|
125
181
|
return 0;
|
|
126
182
|
}
|
|
@@ -161,18 +217,18 @@ function useModelBlocksVertexAttribute() {
|
|
|
161
217
|
colorMap,
|
|
162
218
|
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
163
219
|
}: AttributeInput,
|
|
164
|
-
) {
|
|
165
|
-
mutateModelBlocksVertexStyle(modelId, blockIds, {
|
|
220
|
+
): Promise<unknown> {
|
|
221
|
+
await mutateModelBlocksVertexStyle(modelId, blockIds, {
|
|
166
222
|
name,
|
|
167
223
|
item,
|
|
168
224
|
});
|
|
169
|
-
setModelBlocksVertexAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
225
|
+
await setModelBlocksVertexAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
170
226
|
minimum,
|
|
171
227
|
maximum,
|
|
172
228
|
colorMap,
|
|
173
229
|
no_data_color,
|
|
174
230
|
});
|
|
175
|
-
const points = getRGBPointsFromPreset(colorMap
|
|
231
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
176
232
|
const block_viewer_ids = await dataStore.getMeshComponentsViewerIds(modelId, blockIds);
|
|
177
233
|
const params = {
|
|
178
234
|
id: modelId,
|
|
@@ -189,7 +245,7 @@ function useModelBlocksVertexAttribute() {
|
|
|
189
245
|
params,
|
|
190
246
|
});
|
|
191
247
|
}
|
|
192
|
-
function applyVertexAttribute(modelId: string, blockIds: string[]) {
|
|
248
|
+
async function applyVertexAttribute(modelId: string, blockIds: string[]): Promise<unknown> {
|
|
193
249
|
const name = modelBlocksVertexAttributeName(modelId, blockIds[0]);
|
|
194
250
|
const item = modelBlocksVertexAttributeItem(modelId, blockIds[0]);
|
|
195
251
|
const storedConfig = modelBlocksVertexAttributeStoredConfig(modelId, blockIds[0], name, item);
|
|
@@ -202,46 +258,55 @@ function useModelBlocksVertexAttribute() {
|
|
|
202
258
|
no_data_color: storedConfig.no_data_color,
|
|
203
259
|
};
|
|
204
260
|
if (isModelBlocksVertexAttributeValid(attribute)) {
|
|
205
|
-
|
|
261
|
+
const result = await setModelBlocksVertexAttribute(modelId, blockIds, attribute);
|
|
262
|
+
return result;
|
|
206
263
|
}
|
|
207
|
-
return
|
|
264
|
+
return undefined;
|
|
208
265
|
}
|
|
209
|
-
function setModelBlocksVertexAttributeName(
|
|
266
|
+
async function setModelBlocksVertexAttributeName(
|
|
267
|
+
modelId: string,
|
|
268
|
+
blockIds: string[],
|
|
269
|
+
name: string,
|
|
270
|
+
): Promise<unknown> {
|
|
210
271
|
const item = modelBlocksVertexAttributeLastItem(modelId, blockIds[0], name);
|
|
211
|
-
mutateModelBlocksVertexStyle(modelId, blockIds, {
|
|
272
|
+
await mutateModelBlocksVertexStyle(modelId, blockIds, {
|
|
212
273
|
name,
|
|
213
274
|
item,
|
|
214
275
|
});
|
|
215
276
|
return applyVertexAttribute(modelId, blockIds);
|
|
216
277
|
}
|
|
217
|
-
function setModelBlocksVertexAttributeItem(
|
|
218
|
-
|
|
278
|
+
async function setModelBlocksVertexAttributeItem(
|
|
279
|
+
modelId: string,
|
|
280
|
+
blockIds: string[],
|
|
281
|
+
item: number,
|
|
282
|
+
): Promise<unknown> {
|
|
283
|
+
await mutateModelBlocksVertexStyle(modelId, blockIds, {
|
|
219
284
|
item,
|
|
220
285
|
});
|
|
221
286
|
return applyVertexAttribute(modelId, blockIds);
|
|
222
287
|
}
|
|
223
|
-
function setModelBlocksVertexAttributeRange(
|
|
288
|
+
async function setModelBlocksVertexAttributeRange(
|
|
224
289
|
modelId: string,
|
|
225
290
|
blockIds: string[],
|
|
226
291
|
minimum: number,
|
|
227
292
|
maximum: number,
|
|
228
|
-
) {
|
|
293
|
+
): Promise<unknown> {
|
|
229
294
|
const name = modelBlocksVertexAttributeName(modelId, blockIds[0]);
|
|
230
295
|
const item = modelBlocksVertexAttributeItem(modelId, blockIds[0]);
|
|
231
|
-
setModelBlocksVertexAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
296
|
+
await setModelBlocksVertexAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
232
297
|
minimum,
|
|
233
298
|
maximum,
|
|
234
299
|
});
|
|
235
300
|
return applyVertexAttribute(modelId, blockIds);
|
|
236
301
|
}
|
|
237
|
-
function setModelBlocksVertexAttributeColorMap(
|
|
302
|
+
async function setModelBlocksVertexAttributeColorMap(
|
|
238
303
|
modelId: string,
|
|
239
304
|
blockIds: string[],
|
|
240
305
|
colorMap: string | undefined,
|
|
241
|
-
) {
|
|
306
|
+
): Promise<unknown> {
|
|
242
307
|
const name = modelBlocksVertexAttributeName(modelId, blockIds[0]);
|
|
243
308
|
const item = modelBlocksVertexAttributeItem(modelId, blockIds[0]);
|
|
244
|
-
setModelBlocksVertexAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
309
|
+
await setModelBlocksVertexAttributeStoredConfig(modelId, blockIds, name, item, {
|
|
245
310
|
colorMap,
|
|
246
311
|
});
|
|
247
312
|
return applyVertexAttribute(modelId, blockIds);
|
|
@@ -256,7 +321,7 @@ function useModelBlocksVertexAttribute() {
|
|
|
256
321
|
modelId: string,
|
|
257
322
|
blockIds: string[],
|
|
258
323
|
no_data_color: unknown,
|
|
259
|
-
) {
|
|
324
|
+
): Promise<unknown> {
|
|
260
325
|
const name = modelBlocksVertexAttributeName(modelId, blockIds[0]);
|
|
261
326
|
const item = modelBlocksVertexAttributeItem(modelId, blockIds[0]);
|
|
262
327
|
const storedConfig = modelBlocksVertexAttributeStoredConfig(modelId, blockIds[0], name, item);
|
|
@@ -4,7 +4,14 @@ import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schem
|
|
|
4
4
|
|
|
5
5
|
const schema = viewer_schemas.opengeodeweb_viewer.model.blocks.visibility;
|
|
6
6
|
|
|
7
|
-
export function useModelBlocksVisibility() {
|
|
7
|
+
export function useModelBlocksVisibility(): {
|
|
8
|
+
setModelBlocksVisibility: (
|
|
9
|
+
modelId: string,
|
|
10
|
+
blocks_ids: string[],
|
|
11
|
+
visibility: boolean | undefined,
|
|
12
|
+
) => Promise<unknown>;
|
|
13
|
+
modelBlockVisibility: (id: string, block_id?: string) => unknown;
|
|
14
|
+
} {
|
|
8
15
|
const modelCommonStyle = useModelCommonStyle();
|
|
9
16
|
const modelBlocksCommonStyle = useModelBlocksCommonStyle();
|
|
10
17
|
|
|
@@ -12,12 +19,18 @@ export function useModelBlocksVisibility() {
|
|
|
12
19
|
return modelBlocksCommonStyle.modelBlockStyle(id, block_id).visibility;
|
|
13
20
|
}
|
|
14
21
|
|
|
15
|
-
function setModelBlocksVisibility(
|
|
22
|
+
async function setModelBlocksVisibility(
|
|
16
23
|
modelId: string,
|
|
17
24
|
blocks_ids: string[],
|
|
18
25
|
visibility: boolean | undefined,
|
|
19
|
-
) {
|
|
20
|
-
|
|
26
|
+
): Promise<unknown> {
|
|
27
|
+
const result = await modelCommonStyle.setModelTypeVisibility(
|
|
28
|
+
modelId,
|
|
29
|
+
blocks_ids,
|
|
30
|
+
visibility,
|
|
31
|
+
schema,
|
|
32
|
+
);
|
|
33
|
+
return result;
|
|
21
34
|
}
|
|
22
35
|
|
|
23
36
|
return { setModelBlocksVisibility, modelBlockVisibility };
|