@geode/opengeodeweb-front 10.20.0 → 10.20.1-rc.2
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/app/components/CameraManager/List.vue +18 -14
- package/app/components/CameraManager/Saver.vue +5 -3
- package/app/components/CameraManager.vue +18 -3
- package/app/components/CameraOrientation.vue +11 -9
- package/app/components/Screenshot.vue +52 -15
- package/app/components/ToolPanel.vue +15 -3
- package/app/components/ViewToolbar.vue +1 -1
- package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +57 -6
- package/app/components/ZScaling.vue +20 -9
- package/package.json +3 -3
|
@@ -39,11 +39,11 @@ async function saveRename() {
|
|
|
39
39
|
</script>
|
|
40
40
|
|
|
41
41
|
<template>
|
|
42
|
-
<v-list v-if="savedPositions.length > 0" class="bg-transparent pa-
|
|
42
|
+
<v-list v-if="savedPositions.length > 0" class="bg-transparent pa-1">
|
|
43
43
|
<v-list-item
|
|
44
44
|
v-for="position in savedPositions"
|
|
45
45
|
:key="position.id"
|
|
46
|
-
class="rounded-lg mb-1"
|
|
46
|
+
class="rounded-lg mb-1 px-2"
|
|
47
47
|
:active="editingId === position.id"
|
|
48
48
|
active-color="primary"
|
|
49
49
|
>
|
|
@@ -52,16 +52,16 @@ async function saveRename() {
|
|
|
52
52
|
icon
|
|
53
53
|
variant="tonal"
|
|
54
54
|
color="success"
|
|
55
|
-
size="small"
|
|
56
|
-
class="mr-
|
|
55
|
+
size="x-small"
|
|
56
|
+
class="mr-1"
|
|
57
57
|
@click="restorePosition(position.id)"
|
|
58
58
|
>
|
|
59
|
-
<v-icon size="
|
|
59
|
+
<v-icon size="14">mdi-play</v-icon>
|
|
60
60
|
<v-tooltip activator="parent" location="top">Restore</v-tooltip>
|
|
61
61
|
</v-btn>
|
|
62
62
|
</template>
|
|
63
63
|
|
|
64
|
-
<v-list-item-title class="font-weight-
|
|
64
|
+
<v-list-item-title class="font-weight-semibold text-caption">
|
|
65
65
|
<v-text-field
|
|
66
66
|
v-if="editingId === position.id"
|
|
67
67
|
v-model="editingName"
|
|
@@ -69,6 +69,7 @@ async function saveRename() {
|
|
|
69
69
|
variant="underlined"
|
|
70
70
|
hide-details
|
|
71
71
|
autofocus
|
|
72
|
+
class="text-caption"
|
|
72
73
|
@keyup.enter="saveRename"
|
|
73
74
|
@blur="saveRename"
|
|
74
75
|
></v-text-field>
|
|
@@ -76,39 +77,42 @@ async function saveRename() {
|
|
|
76
77
|
</v-list-item-title>
|
|
77
78
|
|
|
78
79
|
<template #append>
|
|
79
|
-
<div class="d-flex
|
|
80
|
+
<div class="d-flex ga-1">
|
|
80
81
|
<v-btn
|
|
81
82
|
icon
|
|
82
83
|
variant="text"
|
|
83
|
-
size="small"
|
|
84
|
+
size="x-small"
|
|
84
85
|
color="grey-darken-1"
|
|
85
86
|
@click="startEditing(position)"
|
|
86
87
|
>
|
|
87
|
-
<v-icon size="
|
|
88
|
+
<v-icon size="14">mdi-pencil</v-icon>
|
|
88
89
|
<v-tooltip activator="parent" location="top">Rename</v-tooltip>
|
|
89
90
|
</v-btn>
|
|
90
91
|
<v-btn
|
|
91
92
|
icon
|
|
92
93
|
variant="text"
|
|
93
|
-
size="small"
|
|
94
|
+
size="x-small"
|
|
94
95
|
color="error"
|
|
95
96
|
@click="deletePosition(position.id)"
|
|
96
97
|
>
|
|
97
|
-
<v-icon size="
|
|
98
|
+
<v-icon size="14">mdi-delete</v-icon>
|
|
98
99
|
<v-tooltip activator="parent" location="top">Delete</v-tooltip>
|
|
99
100
|
</v-btn>
|
|
100
101
|
</div>
|
|
101
102
|
</template>
|
|
102
103
|
</v-list-item>
|
|
103
104
|
</v-list>
|
|
104
|
-
<div v-else class="text-center text-grey-lighten-1 py-
|
|
105
|
-
<v-icon size="
|
|
105
|
+
<div v-else class="text-center text-grey-lighten-1 py-4 italic text-caption">
|
|
106
|
+
<v-icon size="32" class="mb-1 d-block mx-auto opacity-20">mdi-camera-off</v-icon>
|
|
106
107
|
No saved positions yet.
|
|
107
108
|
</div>
|
|
108
109
|
</template>
|
|
109
110
|
|
|
110
111
|
<style scoped>
|
|
111
112
|
:deep(.v-list-item__prepend) {
|
|
112
|
-
margin-inline-end:
|
|
113
|
+
margin-inline-end: 6px !important;
|
|
114
|
+
}
|
|
115
|
+
:deep(.v-list-item__append) {
|
|
116
|
+
margin-inline-start: 6px !important;
|
|
113
117
|
}
|
|
114
118
|
</style>
|
|
@@ -20,7 +20,7 @@ async function saveCurrentPosition() {
|
|
|
20
20
|
</script>
|
|
21
21
|
|
|
22
22
|
<template>
|
|
23
|
-
<v-container class="pa-
|
|
23
|
+
<v-container class="pa-3 pb-1 bg-surface-variant-lighten-5">
|
|
24
24
|
<v-row dense>
|
|
25
25
|
<v-col cols="12">
|
|
26
26
|
<v-text-field
|
|
@@ -30,7 +30,7 @@ async function saveCurrentPosition() {
|
|
|
30
30
|
density="compact"
|
|
31
31
|
variant="outlined"
|
|
32
32
|
hide-details
|
|
33
|
-
class="mb-
|
|
33
|
+
class="mb-2 text-caption"
|
|
34
34
|
></v-text-field>
|
|
35
35
|
</v-col>
|
|
36
36
|
<v-col cols="12" class="d-flex align-center">
|
|
@@ -38,9 +38,11 @@ async function saveCurrentPosition() {
|
|
|
38
38
|
color="primary"
|
|
39
39
|
variant="elevated"
|
|
40
40
|
block
|
|
41
|
+
size="small"
|
|
41
42
|
:disabled="!newPositionName"
|
|
42
43
|
@click="saveCurrentPosition"
|
|
43
|
-
height="
|
|
44
|
+
height="32"
|
|
45
|
+
class="text-caption font-weight-bold"
|
|
44
46
|
>
|
|
45
47
|
Save
|
|
46
48
|
</v-btn>
|
|
@@ -7,7 +7,7 @@ const emit = defineEmits(["close"]);
|
|
|
7
7
|
|
|
8
8
|
const { show_dialog, width } = defineProps({
|
|
9
9
|
show_dialog: { type: Boolean, required: true },
|
|
10
|
-
width: { type: Number, required: false, default:
|
|
10
|
+
width: { type: Number, required: false, default: 260 },
|
|
11
11
|
});
|
|
12
12
|
</script>
|
|
13
13
|
|
|
@@ -31,9 +31,24 @@ const { show_dialog, width } = defineProps({
|
|
|
31
31
|
|
|
32
32
|
<v-divider></v-divider>
|
|
33
33
|
|
|
34
|
-
<v-card-actions class="pa-
|
|
34
|
+
<v-card-actions class="pa-2">
|
|
35
35
|
<v-spacer></v-spacer>
|
|
36
|
-
<v-btn
|
|
36
|
+
<v-btn
|
|
37
|
+
variant="text"
|
|
38
|
+
size="small"
|
|
39
|
+
color="white"
|
|
40
|
+
class="text-caption text-none"
|
|
41
|
+
@click="emit('close')"
|
|
42
|
+
>Close</v-btn
|
|
43
|
+
>
|
|
37
44
|
</v-card-actions>
|
|
38
45
|
</GlassCard>
|
|
39
46
|
</template>
|
|
47
|
+
|
|
48
|
+
<style scoped>
|
|
49
|
+
:deep(.v-card-title) {
|
|
50
|
+
font-size: 0.95rem !important;
|
|
51
|
+
font-weight: bold !important;
|
|
52
|
+
padding: 10px 14px 6px 14px !important;
|
|
53
|
+
}
|
|
54
|
+
</style>
|
|
@@ -7,7 +7,7 @@ import { newInstance as vtkGenericRenderWindow } from "@kitware/vtk.js/Rendering
|
|
|
7
7
|
|
|
8
8
|
const { panel, width } = defineProps({
|
|
9
9
|
panel: { type: Boolean, default: false },
|
|
10
|
-
width: { type: Number, default:
|
|
10
|
+
width: { type: Number, default: 260 },
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
const show = defineModel("show", { type: Boolean, default: false });
|
|
@@ -36,7 +36,7 @@ const orientations = [
|
|
|
36
36
|
face: "front",
|
|
37
37
|
vtkKey: "YPlus",
|
|
38
38
|
rotation: 180,
|
|
39
|
-
position: { top: "35%", left: "
|
|
39
|
+
position: { top: "35%", left: "22%" },
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
label: "Y-",
|
|
@@ -44,7 +44,7 @@ const orientations = [
|
|
|
44
44
|
face: "back",
|
|
45
45
|
vtkKey: "YMinus",
|
|
46
46
|
rotation: 0,
|
|
47
|
-
position: { top: "65%", left: "
|
|
47
|
+
position: { top: "65%", left: "78%" },
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
label: "X+",
|
|
@@ -52,7 +52,7 @@ const orientations = [
|
|
|
52
52
|
face: "right",
|
|
53
53
|
vtkKey: "XPlus",
|
|
54
54
|
rotation: 90,
|
|
55
|
-
position: { top: "35%", left: "
|
|
55
|
+
position: { top: "35%", left: "78%" },
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
label: "X-",
|
|
@@ -60,7 +60,7 @@ const orientations = [
|
|
|
60
60
|
face: "left",
|
|
61
61
|
vtkKey: "XMinus",
|
|
62
62
|
rotation: -90,
|
|
63
|
-
position: { top: "65%", left: "
|
|
63
|
+
position: { top: "65%", left: "22%" },
|
|
64
64
|
},
|
|
65
65
|
];
|
|
66
66
|
|
|
@@ -177,7 +177,7 @@ watch(hoveredFace, (newFace, oldFace) => {
|
|
|
177
177
|
<div
|
|
178
178
|
class="pa-0 overflow-hidden position-relative"
|
|
179
179
|
style="
|
|
180
|
-
height:
|
|
180
|
+
height: 220px;
|
|
181
181
|
background: radial-gradient(circle at center, rgba(255, 255, 255, 0.05), transparent 70%);
|
|
182
182
|
"
|
|
183
183
|
>
|
|
@@ -200,7 +200,7 @@ watch(hoveredFace, (newFace, oldFace) => {
|
|
|
200
200
|
class="position-absolute d-flex align-center justify-center"
|
|
201
201
|
style="top: 50%; left: 50%; transform: translate(-50%, -50%)"
|
|
202
202
|
>
|
|
203
|
-
<div ref="cubeContainer" style="width:
|
|
203
|
+
<div ref="cubeContainer" style="width: 70px; height: 70px; pointer-events: none" />
|
|
204
204
|
</div>
|
|
205
205
|
|
|
206
206
|
<v-btn
|
|
@@ -208,7 +208,7 @@ watch(hoveredFace, (newFace, oldFace) => {
|
|
|
208
208
|
:key="orientation.value"
|
|
209
209
|
icon
|
|
210
210
|
variant="tonal"
|
|
211
|
-
size="
|
|
211
|
+
size="32"
|
|
212
212
|
class="satellite-node position-absolute"
|
|
213
213
|
:style="orientation.position"
|
|
214
214
|
@mouseenter="hoveredFace = orientation.face"
|
|
@@ -216,7 +216,9 @@ watch(hoveredFace, (newFace, oldFace) => {
|
|
|
216
216
|
@click.stop="emit('select', orientation.value)"
|
|
217
217
|
>
|
|
218
218
|
<v-tooltip activator="parent" location="top">{{ orientation.value }} View</v-tooltip>
|
|
219
|
-
<span class="text-caption font-weight-black"
|
|
219
|
+
<span class="text-caption font-weight-black" style="font-size: 0.7rem !important">{{
|
|
220
|
+
orientation.label
|
|
221
|
+
}}</span>
|
|
220
222
|
</v-btn>
|
|
221
223
|
</div>
|
|
222
224
|
</ToolPanel>
|
|
@@ -9,7 +9,7 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
|
9
9
|
const show = defineModel({ type: Boolean, default: false });
|
|
10
10
|
|
|
11
11
|
const { width } = defineProps({
|
|
12
|
-
width: { type: Number, default:
|
|
12
|
+
width: { type: Number, default: 260 },
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
const output_extensions =
|
|
@@ -77,55 +77,92 @@ watch(screenshot_type, (value) => {
|
|
|
77
77
|
action-label="Screenshot"
|
|
78
78
|
@action="takeScreenshot"
|
|
79
79
|
>
|
|
80
|
-
<v-container class="pa-
|
|
81
|
-
<v-row justify="center">
|
|
80
|
+
<v-container class="pa-3 py-1">
|
|
81
|
+
<v-row justify="center" dense>
|
|
82
82
|
<v-col cols="12" class="py-0 d-flex justify-center">
|
|
83
83
|
<v-btn-toggle
|
|
84
84
|
v-model="screenshot_type"
|
|
85
85
|
mandatory
|
|
86
86
|
color="primary"
|
|
87
87
|
variant="outlined"
|
|
88
|
-
class="mb-
|
|
89
|
-
density="
|
|
88
|
+
class="mb-2"
|
|
89
|
+
density="compact"
|
|
90
90
|
>
|
|
91
|
-
<v-btn
|
|
92
|
-
|
|
91
|
+
<v-btn
|
|
92
|
+
value="file"
|
|
93
|
+
prepend-icon="mdi-file-download-outline"
|
|
94
|
+
size="small"
|
|
95
|
+
class="text-caption text-none"
|
|
96
|
+
>
|
|
97
|
+
File
|
|
98
|
+
</v-btn>
|
|
99
|
+
<v-btn
|
|
100
|
+
value="clipboard"
|
|
101
|
+
prepend-icon="mdi-content-copy"
|
|
102
|
+
size="small"
|
|
103
|
+
class="text-caption text-none"
|
|
104
|
+
>
|
|
105
|
+
Clipboard
|
|
106
|
+
</v-btn>
|
|
93
107
|
</v-btn-toggle>
|
|
94
108
|
</v-col>
|
|
95
109
|
</v-row>
|
|
96
110
|
|
|
97
|
-
<v-row v-if="screenshot_type === 'file'">
|
|
98
|
-
<v-col cols="
|
|
99
|
-
<v-text-field
|
|
111
|
+
<v-row dense v-if="screenshot_type === 'file'">
|
|
112
|
+
<v-col cols="12" class="py-1">
|
|
113
|
+
<v-text-field
|
|
114
|
+
v-model="filename"
|
|
115
|
+
label="File name"
|
|
116
|
+
variant="outlined"
|
|
117
|
+
density="compact"
|
|
118
|
+
hide-details
|
|
119
|
+
class="text-caption"
|
|
120
|
+
></v-text-field>
|
|
100
121
|
</v-col>
|
|
101
|
-
<v-col cols="
|
|
122
|
+
<v-col cols="12" class="py-1">
|
|
102
123
|
<v-select
|
|
103
124
|
v-model="output_extension"
|
|
104
125
|
:items="output_extensions"
|
|
105
126
|
label="Extension"
|
|
127
|
+
variant="outlined"
|
|
128
|
+
density="compact"
|
|
129
|
+
hide-details
|
|
106
130
|
required
|
|
131
|
+
class="text-caption"
|
|
107
132
|
/>
|
|
108
133
|
</v-col>
|
|
109
134
|
</v-row>
|
|
110
135
|
|
|
111
|
-
<v-row>
|
|
112
|
-
<v-col cols="12" class="py-
|
|
136
|
+
<v-row dense>
|
|
137
|
+
<v-col cols="12" class="py-1">
|
|
113
138
|
<v-switch
|
|
114
139
|
v-model="include_background"
|
|
115
140
|
:disabled="screenshot_type === 'file' && output_extension !== 'png'"
|
|
116
141
|
label="Include background"
|
|
142
|
+
density="compact"
|
|
143
|
+
hide-details
|
|
117
144
|
inset
|
|
145
|
+
class="text-caption"
|
|
118
146
|
></v-switch>
|
|
119
147
|
</v-col>
|
|
120
148
|
</v-row>
|
|
121
149
|
</v-container>
|
|
122
150
|
|
|
123
151
|
<template #actions>
|
|
124
|
-
<v-card-actions class="justify-center pb-
|
|
125
|
-
<v-btn
|
|
152
|
+
<v-card-actions class="justify-center pb-3 pt-0" style="gap: 8px">
|
|
153
|
+
<v-btn
|
|
154
|
+
variant="text"
|
|
155
|
+
size="small"
|
|
156
|
+
color="white"
|
|
157
|
+
class="text-caption text-none"
|
|
158
|
+
@click="show = false"
|
|
159
|
+
>
|
|
160
|
+
Cancel
|
|
161
|
+
</v-btn>
|
|
126
162
|
<v-btn
|
|
127
163
|
variant="outlined"
|
|
128
164
|
size="small"
|
|
165
|
+
class="text-caption text-none"
|
|
129
166
|
:disabled="(screenshot_type === 'file' && !filename) || !output_extension"
|
|
130
167
|
color="white"
|
|
131
168
|
@click="takeScreenshot()"
|
|
@@ -3,7 +3,7 @@ import GlassCard from "@ogw_front/components/GlassCard";
|
|
|
3
3
|
|
|
4
4
|
const { title, width, closeLabel, actionLabel } = defineProps({
|
|
5
5
|
title: { type: String, default: "" },
|
|
6
|
-
width: { type: Number, default:
|
|
6
|
+
width: { type: Number, default: 260 },
|
|
7
7
|
closeLabel: { type: String, default: "Close" },
|
|
8
8
|
actionLabel: { type: String, default: undefined },
|
|
9
9
|
});
|
|
@@ -34,8 +34,14 @@ function close() {
|
|
|
34
34
|
|
|
35
35
|
<template #actions>
|
|
36
36
|
<slot name="actions">
|
|
37
|
-
<v-card-actions class="justify-center pb-
|
|
38
|
-
<v-btn
|
|
37
|
+
<v-card-actions class="justify-center pb-3 pt-0" style="gap: 8px">
|
|
38
|
+
<v-btn
|
|
39
|
+
variant="text"
|
|
40
|
+
size="small"
|
|
41
|
+
color="white"
|
|
42
|
+
class="text-caption text-none"
|
|
43
|
+
@click="close"
|
|
44
|
+
>
|
|
39
45
|
{{ closeLabel }}
|
|
40
46
|
</v-btn>
|
|
41
47
|
<v-btn
|
|
@@ -43,6 +49,7 @@ function close() {
|
|
|
43
49
|
variant="outlined"
|
|
44
50
|
size="small"
|
|
45
51
|
color="white"
|
|
52
|
+
class="text-caption text-none"
|
|
46
53
|
@click="emit('action')"
|
|
47
54
|
>
|
|
48
55
|
{{ actionLabel }}
|
|
@@ -59,4 +66,9 @@ function close() {
|
|
|
59
66
|
top: 90px;
|
|
60
67
|
right: 55px;
|
|
61
68
|
}
|
|
69
|
+
:deep(.v-card-title) {
|
|
70
|
+
font-size: 0.9rem !important;
|
|
71
|
+
font-weight: bold !important;
|
|
72
|
+
padding: 8px 12px 4px 12px !important;
|
|
73
|
+
}
|
|
62
74
|
</style>
|
|
@@ -119,17 +119,68 @@ const colorModes = [
|
|
|
119
119
|
const modelComponentTypeLabel = computed(() =>
|
|
120
120
|
componentType.value ? `${componentType.value}s Options` : "",
|
|
121
121
|
);
|
|
122
|
+
|
|
123
|
+
const modelComponentsColorMode = ref("constant");
|
|
124
|
+
|
|
125
|
+
const modelComponentsColor = computed({
|
|
126
|
+
get: () => {
|
|
127
|
+
if (selection.value.length > 0) {
|
|
128
|
+
return dataStyleStore.getModelComponentColor(modelId.value, selection.value[0]);
|
|
129
|
+
}
|
|
130
|
+
return { red: 255, green: 255, blue: 255 };
|
|
131
|
+
},
|
|
132
|
+
set: async (color) => {
|
|
133
|
+
if (selection.value.length > 0) {
|
|
134
|
+
await dataStyleStore.setModelComponentsColor(
|
|
135
|
+
modelId.value,
|
|
136
|
+
selection.value,
|
|
137
|
+
color,
|
|
138
|
+
modelComponentsColorMode.value,
|
|
139
|
+
);
|
|
140
|
+
hybridViewerStore.remoteRender();
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
watch(modelComponentsColorMode, async (colorMode) => {
|
|
146
|
+
if (colorMode === "random" && selection.value.length > 0) {
|
|
147
|
+
await dataStyleStore.setModelComponentsColor(
|
|
148
|
+
modelId.value,
|
|
149
|
+
selection.value,
|
|
150
|
+
undefined,
|
|
151
|
+
colorMode,
|
|
152
|
+
);
|
|
153
|
+
hybridViewerStore.remoteRender();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
122
156
|
</script>
|
|
123
157
|
|
|
124
158
|
<template>
|
|
125
|
-
<
|
|
159
|
+
<v-sheet class="model-style-card" color="transparent">
|
|
126
160
|
<OptionsSection title="Model Options">
|
|
127
161
|
<VisibilitySwitch v-model="modelVisibility" />
|
|
128
162
|
</OptionsSection>
|
|
129
163
|
|
|
164
|
+
<OptionsSection v-if="!componentType && !componentId" title="Components Options" class="mt-6">
|
|
165
|
+
<v-label class="text-caption mb-1 mt-2">Color Mode</v-label>
|
|
166
|
+
<v-select
|
|
167
|
+
v-model="modelComponentsColorMode"
|
|
168
|
+
:items="colorModes"
|
|
169
|
+
density="compact"
|
|
170
|
+
hide-details
|
|
171
|
+
class="mb-3"
|
|
172
|
+
variant="outlined"
|
|
173
|
+
/>
|
|
174
|
+
|
|
175
|
+
<template v-if="modelComponentsColorMode === 'constant'">
|
|
176
|
+
<v-label class="text-caption mb-1">Color</v-label>
|
|
177
|
+
<ViewerOptionsColorPicker v-model="modelComponentsColor" />
|
|
178
|
+
</template>
|
|
179
|
+
</OptionsSection>
|
|
180
|
+
|
|
130
181
|
<OptionsSection v-if="componentType" :title="modelComponentTypeLabel" class="mt-6">
|
|
131
182
|
<VisibilitySwitch v-model="modelComponentTypeVisibility" />
|
|
132
|
-
<
|
|
183
|
+
<v-label class="text-caption mb-1 mt-2">Color Mode</v-label>
|
|
133
184
|
<v-select
|
|
134
185
|
v-model="modelComponentTypeColorMode"
|
|
135
186
|
:items="colorModes"
|
|
@@ -140,14 +191,14 @@ const modelComponentTypeLabel = computed(() =>
|
|
|
140
191
|
/>
|
|
141
192
|
|
|
142
193
|
<template v-if="modelComponentTypeColorMode === 'constant'">
|
|
143
|
-
<
|
|
194
|
+
<v-label class="text-caption mb-1">Color</v-label>
|
|
144
195
|
<ViewerOptionsColorPicker v-model="modelComponentTypeColor" />
|
|
145
196
|
</template>
|
|
146
197
|
</OptionsSection>
|
|
147
198
|
|
|
148
199
|
<OptionsSection v-if="componentId" title="Component Options" class="mt-6">
|
|
149
200
|
<VisibilitySwitch v-model="componentVisibility" />
|
|
150
|
-
<
|
|
201
|
+
<v-label class="text-caption mb-1 mt-2">Color Mode</v-label>
|
|
151
202
|
<v-select
|
|
152
203
|
v-model="componentColorMode"
|
|
153
204
|
:items="colorModes"
|
|
@@ -158,11 +209,11 @@ const modelComponentTypeLabel = computed(() =>
|
|
|
158
209
|
/>
|
|
159
210
|
|
|
160
211
|
<template v-if="componentColorMode === 'constant'">
|
|
161
|
-
<
|
|
212
|
+
<v-label class="text-caption mb-1">Color</v-label>
|
|
162
213
|
<ViewerOptionsColorPicker v-model="componentColor" />
|
|
163
214
|
</template>
|
|
164
215
|
</OptionsSection>
|
|
165
|
-
</
|
|
216
|
+
</v-sheet>
|
|
166
217
|
</template>
|
|
167
218
|
|
|
168
219
|
<style scoped>
|
|
@@ -5,7 +5,7 @@ const zScale = defineModel({ type: Number, default: 1 });
|
|
|
5
5
|
const show = defineModel("show", { type: Boolean, default: false });
|
|
6
6
|
|
|
7
7
|
const { width } = defineProps({
|
|
8
|
-
width: { type: Number, default:
|
|
8
|
+
width: { type: Number, default: 260 },
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
const emit = defineEmits(["apply"]);
|
|
@@ -24,23 +24,34 @@ function apply() {
|
|
|
24
24
|
action-label="Apply"
|
|
25
25
|
@action="apply"
|
|
26
26
|
>
|
|
27
|
-
<v-container class="pa-
|
|
28
|
-
<v-row>
|
|
29
|
-
<v-col cols="12" class="py-
|
|
30
|
-
<v-slider
|
|
27
|
+
<v-container class="pa-3 py-1">
|
|
28
|
+
<v-row dense>
|
|
29
|
+
<v-col cols="12" class="py-1">
|
|
30
|
+
<v-slider
|
|
31
|
+
v-model="zScale"
|
|
32
|
+
:min="1"
|
|
33
|
+
:max="10"
|
|
34
|
+
:step="0.2"
|
|
35
|
+
label="Z Scale"
|
|
36
|
+
density="compact"
|
|
37
|
+
hide-details
|
|
38
|
+
thumb-label
|
|
39
|
+
class="text-caption"
|
|
40
|
+
/>
|
|
31
41
|
</v-col>
|
|
32
42
|
</v-row>
|
|
33
|
-
<v-row>
|
|
34
|
-
<v-col cols="12" class="py-
|
|
43
|
+
<v-row dense>
|
|
44
|
+
<v-col cols="12" class="py-1">
|
|
35
45
|
<v-text-field
|
|
36
46
|
v-model.number="zScale"
|
|
37
47
|
type="number"
|
|
38
48
|
label="Z Scale Value"
|
|
39
|
-
outlined
|
|
40
|
-
|
|
49
|
+
variant="outlined"
|
|
50
|
+
density="compact"
|
|
41
51
|
hide-details
|
|
42
52
|
step="0.1"
|
|
43
53
|
:min="1"
|
|
54
|
+
class="text-caption"
|
|
44
55
|
/>
|
|
45
56
|
</v-col>
|
|
46
57
|
</v-row>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geode/opengeodeweb-front",
|
|
3
|
-
"version": "10.20.
|
|
3
|
+
"version": "10.20.1-rc.2",
|
|
4
4
|
"description": "OpenSource Vue/Nuxt/Pinia/Vuetify framework for web applications",
|
|
5
5
|
"homepage": "https://github.com/Geode-solutions/OpenGeodeWeb-Front",
|
|
6
6
|
"bugs": {
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"build": ""
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@geode/opengeodeweb-back": "
|
|
38
|
-
"@geode/opengeodeweb-viewer": "
|
|
37
|
+
"@geode/opengeodeweb-back": "next",
|
|
38
|
+
"@geode/opengeodeweb-viewer": "next",
|
|
39
39
|
"@google-cloud/run": "3.2.0",
|
|
40
40
|
"@kitware/vtk.js": "33.3.0",
|
|
41
41
|
"@mdi/font": "7.4.47",
|