@geode/opengeodeweb-front 10.23.0-rc.2 → 10.23.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/app/components/Basic/Slider.vue +1 -1
  2. package/app/components/Basic/Switch.vue +9 -1
  3. package/app/components/HybridRenderingView.vue +23 -1
  4. package/app/components/RemoteRenderingView.vue +23 -5
  5. package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +41 -3
  6. package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +13 -19
  7. package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +7 -13
  8. package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +11 -17
  9. package/app/components/Viewer/Generic/Model/BlocksOptions.vue +37 -47
  10. package/app/components/Viewer/Generic/Model/CornersOptions.vue +31 -41
  11. package/app/components/Viewer/Generic/Model/LinesOptions.vue +37 -47
  12. package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +38 -2
  13. package/app/components/Viewer/Generic/Model/PointsOptions.vue +2 -4
  14. package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +37 -47
  15. package/app/components/Viewer/Options/AttributeColorBar.vue +3 -3
  16. package/app/components/Viewer/Options/AttributeSelector.vue +1 -0
  17. package/app/components/Viewer/Options/ColorMapList.vue +5 -57
  18. package/app/components/Viewer/Options/ColorMapPicker.vue +9 -72
  19. package/app/components/Viewer/Options/ColorPicker.vue +18 -2
  20. package/app/components/Viewer/Options/ColoringTypeSelector.vue +72 -78
  21. package/app/components/Viewer/Options/ColormapQuickPicker.vue +120 -0
  22. package/app/components/Viewer/Options/OptionsSection.vue +7 -7
  23. package/app/components/Viewer/Options/Sliders/Slider.vue +8 -6
  24. package/app/components/Viewer/Options/TextureItem.vue +2 -1
  25. package/app/components/Viewer/Options/VisibilitySwitch.vue +4 -4
  26. package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +11 -22
  27. package/app/composables/use_quick_colormap.js +32 -0
  28. package/app/stores/data.js +2 -2
  29. package/app/utils/colormap.js +62 -5
  30. package/app/utils/import_workflow.js +1 -1
  31. package/internal/stores/data_style/mesh/edges/vertex.js +1 -0
  32. package/package.json +1 -1
  33. package/tests/unit/composables/project_manager.nuxt.test.js +1 -1
@@ -3,5 +3,5 @@ const model = defineModel();
3
3
  </script>
4
4
 
5
5
  <template>
6
- <v-slider v-model="model" hide-details min="0" max="20" step="2" />
6
+ <v-slider v-model="model" hide-details min="0" max="20" step="2" density="compact" />
7
7
  </template>
@@ -3,5 +3,13 @@ const model = defineModel();
3
3
  </script>
4
4
 
5
5
  <template>
6
- <v-switch v-model="model" inset hide-details />
6
+ <v-switch v-model="model" inset hide-details density="compact" class="compact-switch" />
7
7
  </template>
8
+
9
+ <style scoped>
10
+ .compact-switch {
11
+ transform: scale(0.75);
12
+ transform-origin: left center;
13
+ width: 40px;
14
+ }
15
+ </style>
@@ -1,7 +1,12 @@
1
1
  <script setup>
2
+ import ColormapQuickPicker from "@ogw_front/components/Viewer/Options/ColormapQuickPicker.vue";
2
3
  import HybridViewerTooltip from "@ogw_front/components/HybridViewerTooltip";
3
4
  import ViewToolbar from "@ogw_front/components/ViewToolbar";
5
+
6
+ import { useDataStore } from "@ogw_front/stores/data";
4
7
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
8
+ import { useMenuStore } from "@ogw_front/stores/menu";
9
+ import { useQuickColormap } from "@ogw_front/composables/use_quick_colormap";
5
10
  import { useViewerStore } from "@ogw_front/stores/viewer";
6
11
 
7
12
  const DEFAULT_ELEMENT_HEIGHT = 100;
@@ -11,6 +16,8 @@ const emit = defineEmits(["click"]);
11
16
  const container = useTemplateRef("viewer");
12
17
  const hybridViewerStore = useHybridViewerStore();
13
18
  const viewerStore = useViewerStore();
19
+ const menuStore = useMenuStore();
20
+ const dataStore = useDataStore();
14
21
 
15
22
  const { width: elementWidth, height: elementHeight } = useElementSize(container);
16
23
  const { width: windowWidth, height: windowHeight } = useWindowSize();
@@ -32,6 +39,8 @@ onMounted(async () => {
32
39
  }
33
40
  });
34
41
 
42
+ const { pickColormap, quickColormap } = useQuickColormap();
43
+
35
44
  function debounce(func, wait) {
36
45
  let timeout = undefined;
37
46
  return function executedFunction(...args) {
@@ -45,6 +54,7 @@ function debounce(func, wait) {
45
54
  }
46
55
 
47
56
  async function handleClick(event) {
57
+ const { offsetX, offsetY, clientX, clientY } = event;
48
58
  if (viewerStore.picking_mode) {
49
59
  const rect = container.value.$el.getBoundingClientRect();
50
60
  const x = event.clientX - rect.left;
@@ -52,6 +62,12 @@ async function handleClick(event) {
52
62
  await viewerStore.set_picked_point(x, y);
53
63
  return;
54
64
  }
65
+
66
+ const picked = await pickColormap(offsetX, offsetY, clientX, clientY);
67
+ if (picked) {
68
+ return;
69
+ }
70
+
55
71
  emit("click", event);
56
72
  }
57
73
  </script>
@@ -59,6 +75,12 @@ async function handleClick(event) {
59
75
  <template>
60
76
  <ClientOnly>
61
77
  <div data-testid="hybridViewer" class="fill-height" style="position: relative; height: 100%">
78
+ <ColormapQuickPicker
79
+ v-model:show="quickColormap.show"
80
+ :x="quickColormap.x"
81
+ :y="quickColormap.y"
82
+ :data-id="quickColormap.data_id"
83
+ />
62
84
  <ViewToolbar />
63
85
  <slot name="ui"></slot>
64
86
  <HybridViewerTooltip :container-width="elementWidth" :container-height="elementHeight" />
@@ -67,7 +89,7 @@ async function handleClick(event) {
67
89
  ref="viewer"
68
90
  :class="{ 'picking-cursor': viewerStore.picking_mode }"
69
91
  style="height: 100%; overflow: hidden; position: relative; z-index: 0"
70
- @click="handleClick"
92
+ @pointerup.capture="handleClick"
71
93
  />
72
94
  </div>
73
95
  </ClientOnly>
@@ -1,8 +1,14 @@
1
1
  <script setup>
2
2
  import { useElementSize, useWindowSize } from "@vueuse/core";
3
+
3
4
  import { Status } from "@ogw_front/utils/status";
4
- import ViewToolbar from "@ogw_front/components/ViewToolbar";
5
+ import { useDataStore } from "@ogw_front/stores/data";
6
+ import { useMenuStore } from "@ogw_front/stores/menu";
7
+ import { useQuickColormap } from "@ogw_front/composables/use_quick_colormap";
5
8
  import { useViewerStore } from "@ogw_front/stores/viewer";
9
+
10
+ import ColormapQuickPicker from "@ogw_front/components/Viewer/Options/ColormapQuickPicker.vue";
11
+ import ViewToolbar from "@ogw_front/components/ViewToolbar";
6
12
  import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
7
13
  import vtkRemoteView from "@kitware/vtk.js/Rendering/Misc/RemoteView";
8
14
 
@@ -11,18 +17,24 @@ const { viewId } = defineProps({
11
17
  });
12
18
 
13
19
  const viewerStore = useViewerStore();
20
+ const menuStore = useMenuStore();
21
+ const dataStore = useDataStore();
14
22
  const viewer = useTemplateRef("viewer");
15
23
  const { width, height } = useElementSize(viewer);
16
24
 
17
25
  const { width: windowWidth, height: windowHeight } = useWindowSize();
18
26
 
19
- function get_x_y(event) {
20
- if (viewerStore.picking_mode.value === true) {
21
- const { offsetX, offsetY } = event;
27
+ const { pickColormap, quickColormap } = useQuickColormap();
28
+
29
+ async function get_x_y(event) {
30
+ const { offsetX, offsetY, clientX, clientY } = event;
31
+ if (viewerStore.picking_mode === true) {
22
32
  viewerStore.set_picked_point(offsetX, offsetY);
23
33
  const schema = viewer_schemas.opengeodeweb_viewer.viewer.get_point_position;
24
34
  const params = { x: offsetX, y: offsetY };
25
35
  viewerStore.request({ schema, params });
36
+ } else {
37
+ await pickColormap(offsetX, offsetY, clientX, clientY);
26
38
  }
27
39
  }
28
40
 
@@ -101,13 +113,19 @@ onMounted(async () => {
101
113
  <template>
102
114
  <ClientOnly>
103
115
  <div style="position: relative; width: 100%; height: 100%">
116
+ <ColormapQuickPicker
117
+ v-model:show="quickColormap.show"
118
+ :x="quickColormap.x"
119
+ :y="quickColormap.y"
120
+ :data-id="quickColormap.data_id"
121
+ />
104
122
  <ViewToolbar />
105
123
  <slot name="ui"></slot>
106
124
  <v-col
107
125
  ref="viewer"
108
126
  style="overflow: hidden; position: relative; z-index: 0; height: 100%; width: 100%"
109
127
  class="pa-0"
110
- @click="get_x_y"
128
+ @pointerup.capture="get_x_y"
111
129
  @keydown.esc="viewerStore.toggle_picking_mode(false)"
112
130
  />
113
131
  </div>
@@ -5,7 +5,7 @@ import { useMenuStore } from "@ogw_front/stores/menu";
5
5
  import { useTheme } from "vuetify";
6
6
  import { useTreeviewStore } from "@ogw_front/stores/treeview";
7
7
 
8
- const CARD_WIDTH = 320;
8
+ const CARD_WIDTH = 300;
9
9
  const CARD_HEIGHT = 500;
10
10
  const MARGIN = 60;
11
11
  const RADIUS = 80;
@@ -170,8 +170,10 @@ function toggleOptions() {
170
170
  class="elevation-24"
171
171
  style="overflow: hidden; display: flex; flex-direction: column"
172
172
  >
173
- <v-card-title>{{ tooltip }}</v-card-title>
174
- <v-card-text class="pa-5" style="overflow-y: auto; flex: 1; min-height: 0">
173
+ <v-card-title class="text-subtitle-1 pt-3 pb-0 px-3 font-weight-bold">{{
174
+ tooltip
175
+ }}</v-card-title>
176
+ <v-card-text class="px-3 pb-3 pt-1" style="overflow-y: auto; flex: 1; min-height: 0">
175
177
  <slot name="options" />
176
178
  </v-card-text>
177
179
  </GlassCard>
@@ -252,4 +254,40 @@ function toggleOptions() {
252
254
  .options-left {
253
255
  right: 60px;
254
256
  }
257
+
258
+ :deep(.v-field) {
259
+ min-height: 30px !important;
260
+ height: 30px !important;
261
+ border-radius: 6px !important;
262
+ }
263
+
264
+ :deep(.v-field__input) {
265
+ padding-top: 0 !important;
266
+ padding-bottom: 0 !important;
267
+ min-height: 30px !important;
268
+ height: 30px !important;
269
+ font-size: 0.95rem !important;
270
+ align-items: center;
271
+ }
272
+
273
+ :deep(.v-field__append-inner) {
274
+ align-items: center;
275
+ padding-top: 0 !important;
276
+ padding-bottom: 0 !important;
277
+ height: 30px !important;
278
+ }
279
+
280
+ :deep(.v-field__append-inner .v-icon) {
281
+ font-size: 16px !important;
282
+ }
283
+
284
+ :deep(.v-field-label) {
285
+ font-size: 0.75rem !important;
286
+ top: 6px !important;
287
+ }
288
+
289
+ :deep(.v-field-label--floating) {
290
+ top: -8px !important;
291
+ font-size: 0.7rem !important;
292
+ }
255
293
  </style>
@@ -119,25 +119,19 @@ const edge_attribute_color_map = computed({
119
119
  <template #options>
120
120
  <ViewerOptionsVisibilitySwitch data-testid="meshEdgesVisibilitySwitch" v-model="visibility" />
121
121
  <template v-if="visibility">
122
- <v-row class="pa-0" align="center">
123
- <v-divider />
124
- <ViewerOptionsWidthSlider v-model="width" />
125
- </v-row>
126
- <v-row>
127
- <v-col>
128
- <ViewerOptionsColoringTypeSelector
129
- :id="id"
130
- v-model:coloring_style_key="coloring_style_key"
131
- v-model:color="color"
132
- v-model:vertex_attribute_name="vertex_attribute_name"
133
- v-model:vertex_attribute_range="vertex_attribute_range"
134
- v-model:vertex_attribute_color_map="vertex_attribute_color_map"
135
- v-model:edge_attribute_name="edge_attribute_name"
136
- v-model:edge_attribute_range="edge_attribute_range"
137
- v-model:edge_attribute_color_map="edge_attribute_color_map"
138
- />
139
- </v-col>
140
- </v-row>
122
+ <v-divider class="my-2" />
123
+ <ViewerOptionsWidthSlider v-model="width" />
124
+ <ViewerOptionsColoringTypeSelector
125
+ :id="id"
126
+ v-model:coloring_style_key="coloring_style_key"
127
+ v-model:color="color"
128
+ v-model:vertex_attribute_name="vertex_attribute_name"
129
+ v-model:vertex_attribute_range="vertex_attribute_range"
130
+ v-model:vertex_attribute_color_map="vertex_attribute_color_map"
131
+ v-model:edge_attribute_name="edge_attribute_name"
132
+ v-model:edge_attribute_range="edge_attribute_range"
133
+ v-model:edge_attribute_color_map="edge_attribute_color_map"
134
+ />
141
135
  </template>
142
136
  </template>
143
137
  </ViewerContextMenuItem>
@@ -68,19 +68,13 @@ const color = computed({
68
68
  <template #options>
69
69
  <ViewerOptionsVisibilitySwitch data-testid="meshEdgesVisibilitySwitch" v-model="visibility" />
70
70
  <template v-if="visibility">
71
- <v-row class="pa-0" align="center">
72
- <v-divider />
73
- <ViewerOptionsWidthSlider data-testid="meshEdgesWidthSlider" v-model="size" />
74
- </v-row>
75
- <v-row>
76
- <v-col>
77
- <ViewerOptionsColoringTypeSelector
78
- :id="id"
79
- v-model:coloring_style_key="coloring_style_key"
80
- v-model:color="color"
81
- />
82
- </v-col>
83
- </v-row>
71
+ <v-divider class="my-2" />
72
+ <ViewerOptionsWidthSlider data-testid="meshEdgesWidthSlider" v-model="size" />
73
+ <ViewerOptionsColoringTypeSelector
74
+ :id="id"
75
+ v-model:coloring_style_key="coloring_style_key"
76
+ v-model:color="color"
77
+ />
84
78
  </template>
85
79
  </template>
86
80
  </ViewerContextMenuItem>
@@ -98,23 +98,17 @@ const vertex_attribute_color_map = computed({
98
98
  v-model="visibility"
99
99
  />
100
100
  <template v-if="visibility">
101
- <v-row class="pa-0" align="center">
102
- <v-divider />
103
- <ViewerOptionsSizeSlider data-testid="meshPointsSizeSlider" v-model="size" />
104
- </v-row>
105
- <v-row>
106
- <v-col>
107
- <ViewerOptionsColoringTypeSelector
108
- :id="id"
109
- v-model:coloring_style_key="coloring_style_key"
110
- v-model:color="color"
111
- v-model:vertex_attribute_name="vertex_attribute_name"
112
- v-model:vertex_attribute_range="vertex_attribute_range"
113
- v-model:vertex_attribute_color_map="vertex_attribute_color_map"
114
- :capabilities="{ vertex: { available: false } }"
115
- />
116
- </v-col>
117
- </v-row>
101
+ <v-divider class="my-2" />
102
+ <ViewerOptionsSizeSlider data-testid="meshPointsSizeSlider" v-model="size" />
103
+ <ViewerOptionsColoringTypeSelector
104
+ :id="id"
105
+ v-model:coloring_style_key="coloring_style_key"
106
+ v-model:color="color"
107
+ v-model:vertex_attribute_name="vertex_attribute_name"
108
+ v-model:vertex_attribute_range="vertex_attribute_range"
109
+ v-model:vertex_attribute_color_map="vertex_attribute_color_map"
110
+ :capabilities="{ vertex: { available: false } }"
111
+ />
118
112
  </template>
119
113
  </template>
120
114
  </ViewerContextMenuItem>
@@ -206,51 +206,41 @@ const polyhedronSchema = back_schemas.opengeodeweb_back.model_component_polyhedr
206
206
  </script>
207
207
 
208
208
  <template>
209
- <div>
210
- <OptionsSection title="Blocks Options" class="mt-6">
211
- <VisibilitySwitch v-model="blocksVisibility" />
212
- <v-row class="mt-2 pa-0">
213
- <v-col class="pa-0">
214
- <ViewerOptionsColoringTypeSelector
215
- :id="modelId"
216
- :componentId="targetBlockIds[0]"
217
- v-model:coloring_style_key="blocksColorMode"
218
- v-model:color="blocksColor"
219
- v-model:vertex_attribute_name="blocksVertexAttributeName"
220
- v-model:vertex_attribute_range="blocksVertexAttributeRange"
221
- v-model:vertex_attribute_color_map="blocksVertexAttributeColorMap"
222
- v-model:polyhedron_attribute_name="blocksPolyhedronAttributeName"
223
- v-model:polyhedron_attribute_range="blocksPolyhedronAttributeRange"
224
- v-model:polyhedron_attribute_color_map="blocksPolyhedronAttributeColorMap"
225
- :capabilities="capabilities"
226
- :schemas="{ vertex: vertexSchema, polyhedron: polyhedronSchema }"
227
- :allowRandom="true"
228
- />
229
- </v-col>
230
- </v-row>
231
- </OptionsSection>
232
-
233
- <OptionsSection v-if="blockId" title="Component Options" class="mt-6">
234
- <VisibilitySwitch v-model="blockVisibility" />
235
- <v-row class="mt-2 pa-0">
236
- <v-col class="pa-0">
237
- <ViewerOptionsColoringTypeSelector
238
- :id="modelId"
239
- :componentId="blockId"
240
- v-model:coloring_style_key="blockColorMode"
241
- v-model:color="blockColor"
242
- v-model:vertex_attribute_name="vertexAttributeName"
243
- v-model:vertex_attribute_range="vertexAttributeRange"
244
- v-model:vertex_attribute_color_map="vertexAttributeColorMap"
245
- v-model:polyhedron_attribute_name="polyhedronAttributeName"
246
- v-model:polyhedron_attribute_range="polyhedronAttributeRange"
247
- v-model:polyhedron_attribute_color_map="polyhedronAttributeColorMap"
248
- :capabilities="capabilities"
249
- :schemas="{ vertex: vertexSchema, polyhedron: polyhedronSchema }"
250
- :allowRandom="true"
251
- />
252
- </v-col>
253
- </v-row>
254
- </OptionsSection>
255
- </div>
209
+ <OptionsSection title="Blocks Options" class="mt-4">
210
+ <VisibilitySwitch v-model="blocksVisibility" />
211
+ <ViewerOptionsColoringTypeSelector
212
+ :id="modelId"
213
+ :componentId="targetBlockIds[0]"
214
+ v-model:coloring_style_key="blocksColorMode"
215
+ v-model:color="blocksColor"
216
+ v-model:vertex_attribute_name="blocksVertexAttributeName"
217
+ v-model:vertex_attribute_range="blocksVertexAttributeRange"
218
+ v-model:vertex_attribute_color_map="blocksVertexAttributeColorMap"
219
+ v-model:polyhedron_attribute_name="blocksPolyhedronAttributeName"
220
+ v-model:polyhedron_attribute_range="blocksPolyhedronAttributeRange"
221
+ v-model:polyhedron_attribute_color_map="blocksPolyhedronAttributeColorMap"
222
+ :capabilities="capabilities"
223
+ :schemas="{ vertex: vertexSchema, polyhedron: polyhedronSchema }"
224
+ :allowRandom="true"
225
+ />
226
+ </OptionsSection>
227
+
228
+ <OptionsSection v-if="blockId" title="Component Options" class="mt-4">
229
+ <VisibilitySwitch v-model="blockVisibility" />
230
+ <ViewerOptionsColoringTypeSelector
231
+ :id="modelId"
232
+ :componentId="blockId"
233
+ v-model:coloring_style_key="blockColorMode"
234
+ v-model:color="blockColor"
235
+ v-model:vertex_attribute_name="vertexAttributeName"
236
+ v-model:vertex_attribute_range="vertexAttributeRange"
237
+ v-model:vertex_attribute_color_map="vertexAttributeColorMap"
238
+ v-model:polyhedron_attribute_name="polyhedronAttributeName"
239
+ v-model:polyhedron_attribute_range="polyhedronAttributeRange"
240
+ v-model:polyhedron_attribute_color_map="polyhedronAttributeColorMap"
241
+ :capabilities="capabilities"
242
+ :schemas="{ vertex: vertexSchema, polyhedron: polyhedronSchema }"
243
+ :allowRandom="true"
244
+ />
245
+ </OptionsSection>
256
246
  </template>
@@ -143,45 +143,35 @@ const vertexSchema = back_schemas.opengeodeweb_back.model_component_vertex_attri
143
143
  </script>
144
144
 
145
145
  <template>
146
- <div>
147
- <OptionsSection title="Corners Options" class="mt-6">
148
- <VisibilitySwitch v-model="cornersVisibility" />
149
- <v-row class="mt-2 pa-0">
150
- <v-col class="pa-0">
151
- <ViewerOptionsColoringTypeSelector
152
- :id="modelId"
153
- :componentId="targetCornerIds[0]"
154
- v-model:coloring_style_key="cornersColorMode"
155
- v-model:color="cornersColor"
156
- v-model:vertex_attribute_name="cornersVertexAttributeName"
157
- v-model:vertex_attribute_range="cornersVertexAttributeRange"
158
- v-model:vertex_attribute_color_map="cornersVertexAttributeColorMap"
159
- :capabilities="capabilities"
160
- :schemas="{ vertex: vertexSchema }"
161
- :allowRandom="true"
162
- />
163
- </v-col>
164
- </v-row>
165
- </OptionsSection>
166
-
167
- <OptionsSection v-if="cornerId" title="Component Options" class="mt-6">
168
- <VisibilitySwitch v-model="cornerVisibility" />
169
- <v-row class="mt-2 pa-0">
170
- <v-col class="pa-0">
171
- <ViewerOptionsColoringTypeSelector
172
- :id="modelId"
173
- :componentId="cornerId"
174
- v-model:coloring_style_key="cornerColorMode"
175
- v-model:color="cornerColor"
176
- v-model:vertex_attribute_name="vertexAttributeName"
177
- v-model:vertex_attribute_range="vertexAttributeRange"
178
- v-model:vertex_attribute_color_map="vertexAttributeColorMap"
179
- :capabilities="capabilities"
180
- :schemas="{ vertex: vertexSchema }"
181
- :allowRandom="true"
182
- />
183
- </v-col>
184
- </v-row>
185
- </OptionsSection>
186
- </div>
146
+ <OptionsSection title="Corners Options" class="mt-4">
147
+ <VisibilitySwitch v-model="cornersVisibility" />
148
+ <ViewerOptionsColoringTypeSelector
149
+ :id="modelId"
150
+ :componentId="targetCornerIds[0]"
151
+ v-model:coloring_style_key="cornersColorMode"
152
+ v-model:color="cornersColor"
153
+ v-model:vertex_attribute_name="cornersVertexAttributeName"
154
+ v-model:vertex_attribute_range="cornersVertexAttributeRange"
155
+ v-model:vertex_attribute_color_map="cornersVertexAttributeColorMap"
156
+ :capabilities="capabilities"
157
+ :schemas="{ vertex: vertexSchema }"
158
+ :allowRandom="true"
159
+ />
160
+ </OptionsSection>
161
+
162
+ <OptionsSection v-if="cornerId" title="Component Options" class="mt-4">
163
+ <VisibilitySwitch v-model="cornerVisibility" />
164
+ <ViewerOptionsColoringTypeSelector
165
+ :id="modelId"
166
+ :componentId="cornerId"
167
+ v-model:coloring_style_key="cornerColorMode"
168
+ v-model:color="cornerColor"
169
+ v-model:vertex_attribute_name="vertexAttributeName"
170
+ v-model:vertex_attribute_range="vertexAttributeRange"
171
+ v-model:vertex_attribute_color_map="vertexAttributeColorMap"
172
+ :capabilities="capabilities"
173
+ :schemas="{ vertex: vertexSchema }"
174
+ :allowRandom="true"
175
+ />
176
+ </OptionsSection>
187
177
  </template>
@@ -202,51 +202,41 @@ const edgeSchema = back_schemas.opengeodeweb_back.model_component_edge_attribute
202
202
  </script>
203
203
 
204
204
  <template>
205
- <div>
206
- <OptionsSection title="Lines Options" class="mt-6">
207
- <VisibilitySwitch v-model="linesVisibility" />
208
- <v-row class="mt-2 pa-0">
209
- <v-col class="pa-0">
210
- <ViewerOptionsColoringTypeSelector
211
- :id="modelId"
212
- :componentId="targetLineIds[0]"
213
- v-model:coloring_style_key="linesColorMode"
214
- v-model:color="linesColor"
215
- v-model:vertex_attribute_name="linesVertexAttributeName"
216
- v-model:vertex_attribute_range="linesVertexAttributeRange"
217
- v-model:vertex_attribute_color_map="linesVertexAttributeColorMap"
218
- v-model:edge_attribute_name="linesEdgeAttributeName"
219
- v-model:edge_attribute_range="linesEdgeAttributeRange"
220
- v-model:edge_attribute_color_map="linesEdgeAttributeColorMap"
221
- :capabilities="capabilities"
222
- :schemas="{ vertex: vertexSchema, edge: edgeSchema }"
223
- :allowRandom="true"
224
- />
225
- </v-col>
226
- </v-row>
227
- </OptionsSection>
228
-
229
- <OptionsSection v-if="lineId" title="Component Options" class="mt-6">
230
- <VisibilitySwitch v-model="lineVisibility" />
231
- <v-row class="mt-2 pa-0">
232
- <v-col class="pa-0">
233
- <ViewerOptionsColoringTypeSelector
234
- :id="modelId"
235
- :componentId="lineId"
236
- v-model:coloring_style_key="lineColorMode"
237
- v-model:color="lineColor"
238
- v-model:vertex_attribute_name="vertexAttributeName"
239
- v-model:vertex_attribute_range="vertexAttributeRange"
240
- v-model:vertex_attribute_color_map="vertexAttributeColorMap"
241
- v-model:edge_attribute_name="edgeAttributeName"
242
- v-model:edge_attribute_range="edgeAttributeRange"
243
- v-model:edge_attribute_color_map="edgeAttributeColorMap"
244
- :capabilities="capabilities"
245
- :schemas="{ vertex: vertexSchema, edge: edgeSchema }"
246
- :allowRandom="true"
247
- />
248
- </v-col>
249
- </v-row>
250
- </OptionsSection>
251
- </div>
205
+ <OptionsSection title="Lines Options" class="mt-4">
206
+ <VisibilitySwitch v-model="linesVisibility" />
207
+ <ViewerOptionsColoringTypeSelector
208
+ :id="modelId"
209
+ :componentId="targetLineIds[0]"
210
+ v-model:coloring_style_key="linesColorMode"
211
+ v-model:color="linesColor"
212
+ v-model:vertex_attribute_name="linesVertexAttributeName"
213
+ v-model:vertex_attribute_range="linesVertexAttributeRange"
214
+ v-model:vertex_attribute_color_map="linesVertexAttributeColorMap"
215
+ v-model:edge_attribute_name="linesEdgeAttributeName"
216
+ v-model:edge_attribute_range="linesEdgeAttributeRange"
217
+ v-model:edge_attribute_color_map="linesEdgeAttributeColorMap"
218
+ :capabilities="capabilities"
219
+ :schemas="{ vertex: vertexSchema, edge: edgeSchema }"
220
+ :allowRandom="true"
221
+ />
222
+ </OptionsSection>
223
+
224
+ <OptionsSection v-if="lineId" title="Component Options" class="mt-4">
225
+ <VisibilitySwitch v-model="lineVisibility" />
226
+ <ViewerOptionsColoringTypeSelector
227
+ :id="modelId"
228
+ :componentId="lineId"
229
+ v-model:coloring_style_key="lineColorMode"
230
+ v-model:color="lineColor"
231
+ v-model:vertex_attribute_name="vertexAttributeName"
232
+ v-model:vertex_attribute_range="vertexAttributeRange"
233
+ v-model:vertex_attribute_color_map="vertexAttributeColorMap"
234
+ v-model:edge_attribute_name="edgeAttributeName"
235
+ v-model:edge_attribute_range="edgeAttributeRange"
236
+ v-model:edge_attribute_color_map="edgeAttributeColorMap"
237
+ :capabilities="capabilities"
238
+ :schemas="{ vertex: vertexSchema, edge: edgeSchema }"
239
+ :allowRandom="true"
240
+ />
241
+ </OptionsSection>
252
242
  </template>
@@ -132,7 +132,7 @@ watch(modelComponentsColorMode, async (colorMode) => {
132
132
  <VisibilitySwitch v-model="modelVisibility" />
133
133
  </OptionsSection>
134
134
 
135
- <OptionsSection v-if="!componentType && !componentId" title="Components Options" class="mt-6">
135
+ <OptionsSection v-if="!componentType && !componentId" title="Components Options" class="mt-4">
136
136
  <v-label class="text-caption mb-1 mt-2">Color Mode</v-label>
137
137
  <v-select
138
138
  v-model="modelComponentsColorMode"
@@ -178,7 +178,43 @@ watch(modelComponentsColorMode, async (colorMode) => {
178
178
 
179
179
  <style scoped>
180
180
  .model-style-card {
181
- padding-top: 20px;
181
+ padding-top: 12px;
182
182
  overflow-x: hidden;
183
183
  }
184
+
185
+ :deep(.v-field) {
186
+ min-height: 30px !important;
187
+ height: 30px !important;
188
+ border-radius: 6px !important;
189
+ }
190
+
191
+ :deep(.v-field__input) {
192
+ padding-top: 0 !important;
193
+ padding-bottom: 0 !important;
194
+ min-height: 30px !important;
195
+ height: 30px !important;
196
+ font-size: 0.95rem !important;
197
+ align-items: center;
198
+ }
199
+
200
+ :deep(.v-field__append-inner) {
201
+ align-items: center;
202
+ padding-top: 0 !important;
203
+ padding-bottom: 0 !important;
204
+ height: 30px !important;
205
+ }
206
+
207
+ :deep(.v-field__append-inner .v-icon) {
208
+ font-size: 16px !important;
209
+ }
210
+
211
+ :deep(.v-field-label) {
212
+ font-size: 0.75rem !important;
213
+ top: 6px !important;
214
+ }
215
+
216
+ :deep(.v-field-label--floating) {
217
+ top: -8px !important;
218
+ font-size: 0.7rem !important;
219
+ }
184
220
  </style>