@geode/opengeodeweb-front 10.2.1-rc.2 → 10.2.1-rc.3
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/Carousel.vue +20 -20
- package/app/components/CrsSelector.vue +25 -25
- package/app/components/DragAndDrop.vue +31 -31
- package/app/components/ExtensionSelector.vue +56 -56
- package/app/components/FeedBack/ErrorBanner.vue +9 -9
- package/app/components/FeedBack/Snackers.vue +11 -11
- package/app/components/FileSelector.vue +9 -9
- package/app/components/FileUploader.vue +54 -54
- package/app/components/HybridRenderingView.vue +16 -16
- package/app/components/InfraConnected.vue +4 -4
- package/app/components/Inspector/InspectionButton.vue +16 -16
- package/app/components/Inspector/ResultPanel.vue +15 -15
- package/app/components/Launcher.vue +18 -18
- package/app/components/Loading.vue +26 -26
- package/app/components/MissingFilesSelector.vue +44 -44
- package/app/components/ObjectSelector.vue +50 -50
- package/app/components/PackagesVersions.vue +20 -20
- package/app/components/Recaptcha.vue +40 -40
- package/app/components/RemoteRenderingView.vue +22 -22
- package/app/components/Step.vue +46 -46
- package/app/components/Stepper.vue +8 -8
- package/app/components/VeaseViewToolbar.vue +28 -28
- package/app/components/ViewToolbar.vue +22 -22
- package/app/components/Viewer/BreadCrumb.vue +20 -20
- package/app/components/Viewer/ContextMenu.vue +34 -34
- package/app/components/Viewer/EdgedCurve/PointsOptions.vue +7 -7
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +42 -42
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +22 -22
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +40 -40
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +41 -41
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +20 -20
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +19 -19
- package/app/components/Viewer/Generic/Model/EdgesOptions.vue +12 -12
- package/app/components/Viewer/Generic/Model/PointsOptions.vue +31 -31
- package/app/components/Viewer/Grid/2D/CellsOptions.vue +8 -8
- package/app/components/Viewer/Grid/2D/EdgesOptions.vue +7 -7
- package/app/components/Viewer/Grid/2D/PointsOptions.vue +7 -7
- package/app/components/Viewer/Grid/3D/CellsOptions.vue +8 -8
- package/app/components/Viewer/Grid/3D/EdgesOptions.vue +7 -7
- package/app/components/Viewer/Grid/3D/FacetsOptions.vue +8 -8
- package/app/components/Viewer/Grid/3D/PointsOptions.vue +7 -7
- package/app/components/Viewer/HybridSolid/EdgesOptions.vue +7 -7
- package/app/components/Viewer/HybridSolid/PointsOptions.vue +7 -7
- package/app/components/Viewer/HybridSolid/PolygonsOptions.vue +7 -7
- package/app/components/Viewer/HybridSolid/PolyhedraOptions.vue +7 -7
- package/app/components/Viewer/Options/CellAttributeSelector.vue +9 -9
- package/app/components/Viewer/Options/ColorPicker.vue +12 -12
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +66 -66
- package/app/components/Viewer/Options/EdgeAttributeSelector.vue +21 -21
- package/app/components/Viewer/Options/PolygonAttributeSelector.vue +9 -9
- package/app/components/Viewer/Options/PolyhedronAttributeSelector.vue +9 -9
- package/app/components/Viewer/Options/TextureItem.vue +37 -37
- package/app/components/Viewer/Options/TexturesSelector.vue +30 -30
- package/app/components/Viewer/Options/VertexAttributeSelector.vue +9 -9
- package/app/components/Viewer/Options/VisibilitySwitch.vue +4 -4
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +41 -41
- package/app/components/Viewer/PolygonalSurface/EdgesOptions.vue +7 -7
- package/app/components/Viewer/PolygonalSurface/PointsOptions.vue +7 -7
- package/app/components/Viewer/PolygonalSurface/SpecificPolygonsOptions.vue +22 -22
- package/app/components/Viewer/Solid/EdgesOptions.vue +7 -7
- package/app/components/Viewer/Solid/PointsOptions.vue +7 -7
- package/app/components/Viewer/Solid/PolygonsOptions.vue +7 -7
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +21 -21
- package/app/components/Viewer/TetrahedralSolid/TetrahedraOptions.vue +8 -8
- package/app/components/Viewer/TetrahedralSolid/TrianglesOptions.vue +8 -8
- package/app/components/Viewer/Tree/ObjectTree.vue +39 -39
- package/app/components/Viewer/TreeComponent.vue +21 -21
- package/app/components/Viewer/TreeObject.vue +37 -37
- package/app/components/Viewer/TriangulatedSurface/EdgesOptions.vue +7 -7
- package/app/components/Viewer/TriangulatedSurface/PointsOptions.vue +7 -7
- package/app/components/Viewer/TriangulatedSurface/TrianglesOptions.vue +8 -8
- package/app/components/Wrapper.vue +15 -15
- package/package.json +1 -1
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<v-row justify="center">
|
|
3
|
-
<v-col cols="12" class="ma-3">
|
|
4
|
-
<v-card loading>
|
|
5
|
-
<v-card-title class="text-center">
|
|
6
|
-
Microservices are starting...
|
|
7
|
-
</v-card-title>
|
|
8
|
-
<v-card-subtitle class="text-center">
|
|
9
|
-
Why do you have to wait?
|
|
10
|
-
</v-card-subtitle>
|
|
11
|
-
<v-card-text class="text-center">
|
|
12
|
-
We start our microservices only on demand... and this takes a few
|
|
13
|
-
minutes before you can use our free app.
|
|
14
|
-
<br />
|
|
15
|
-
This is aligned with our energy sobriety policy. So be patient
|
|
16
|
-
<v-icon color="primary" size="20">
|
|
17
|
-
mdi-emoticon-excited-outline
|
|
18
|
-
</v-icon>
|
|
19
|
-
<br />
|
|
20
|
-
<Carousel :items="users_list" />
|
|
21
|
-
</v-card-text>
|
|
22
|
-
</v-card>
|
|
23
|
-
</v-col>
|
|
24
|
-
</v-row>
|
|
25
|
-
</template>
|
|
26
|
-
|
|
27
1
|
<script setup>
|
|
28
2
|
import ying_yang from "@ogw_front/assets/img/energy_sobriety/ying_yang.png"
|
|
29
3
|
import chemin from "@ogw_front/assets/img/energy_sobriety/chemin.png"
|
|
@@ -86,3 +60,29 @@
|
|
|
86
60
|
},
|
|
87
61
|
]
|
|
88
62
|
</script>
|
|
63
|
+
|
|
64
|
+
<template>
|
|
65
|
+
<v-row justify="center">
|
|
66
|
+
<v-col cols="12" class="ma-3">
|
|
67
|
+
<v-card loading>
|
|
68
|
+
<v-card-title class="text-center">
|
|
69
|
+
Microservices are starting...
|
|
70
|
+
</v-card-title>
|
|
71
|
+
<v-card-subtitle class="text-center">
|
|
72
|
+
Why do you have to wait?
|
|
73
|
+
</v-card-subtitle>
|
|
74
|
+
<v-card-text class="text-center">
|
|
75
|
+
We start our microservices only on demand... and this takes a few
|
|
76
|
+
minutes before you can use our free app.
|
|
77
|
+
<br />
|
|
78
|
+
This is aligned with our energy sobriety policy. So be patient
|
|
79
|
+
<v-icon color="primary" size="20">
|
|
80
|
+
mdi-emoticon-excited-outline
|
|
81
|
+
</v-icon>
|
|
82
|
+
<br />
|
|
83
|
+
<Carousel :items="users_list" />
|
|
84
|
+
</v-card-text>
|
|
85
|
+
</v-card>
|
|
86
|
+
</v-col>
|
|
87
|
+
</v-row>
|
|
88
|
+
</template>
|
|
@@ -1,47 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<FetchingData v-if="loading" />
|
|
3
|
-
<v-container v-else-if="has_missing_files">
|
|
4
|
-
<v-row v-if="mandatory_files.length" align="center">
|
|
5
|
-
<v-col cols="auto" class="pa-0">
|
|
6
|
-
<v-icon color="warning" icon="mdi-file-document-alert-outline" />
|
|
7
|
-
</v-col>
|
|
8
|
-
<p class="pa-1">Mandatory files:</p>
|
|
9
|
-
<v-col v-for="mandatory_file in mandatory_files" cols="auto" class="pa-0">
|
|
10
|
-
<v-chip>{{ mandatory_file }}</v-chip>
|
|
11
|
-
</v-col>
|
|
12
|
-
</v-row>
|
|
13
|
-
<v-row v-if="additional_files.length" align="center">
|
|
14
|
-
<v-col cols="auto" class="pa-0">
|
|
15
|
-
<v-icon color="accent" icon="mdi-file-document-plus-outline" />
|
|
16
|
-
</v-col>
|
|
17
|
-
<p class="pa-1">Additional files:</p>
|
|
18
|
-
<v-col
|
|
19
|
-
v-for="additional_file in additional_files"
|
|
20
|
-
cols="auto"
|
|
21
|
-
class="pa-0"
|
|
22
|
-
>
|
|
23
|
-
<v-chip>{{ additional_file }}</v-chip>
|
|
24
|
-
</v-col>
|
|
25
|
-
</v-row>
|
|
26
|
-
<v-row>
|
|
27
|
-
<v-col cols="12">
|
|
28
|
-
<FileUploader
|
|
29
|
-
v-bind="{ multiple, accept }"
|
|
30
|
-
@files_uploaded="files_uploaded_event"
|
|
31
|
-
/>
|
|
32
|
-
</v-col>
|
|
33
|
-
</v-row>
|
|
34
|
-
<v-row>
|
|
35
|
-
<v-col
|
|
36
|
-
v-if="!mandatory_files.length && additional_files.length"
|
|
37
|
-
cols="auto"
|
|
38
|
-
>
|
|
39
|
-
<v-btn @click="emit('increment_step')" color="warning">Skip step</v-btn>
|
|
40
|
-
</v-col>
|
|
41
|
-
</v-row>
|
|
42
|
-
</v-container>
|
|
43
|
-
</template>
|
|
44
|
-
|
|
45
1
|
<script setup>
|
|
46
2
|
import schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json"
|
|
47
3
|
|
|
@@ -121,3 +77,47 @@
|
|
|
121
77
|
|
|
122
78
|
await missing_files()
|
|
123
79
|
</script>
|
|
80
|
+
|
|
81
|
+
<template>
|
|
82
|
+
<FetchingData v-if="loading" />
|
|
83
|
+
<v-container v-else-if="has_missing_files">
|
|
84
|
+
<v-row v-if="mandatory_files.length" align="center">
|
|
85
|
+
<v-col cols="auto" class="pa-0">
|
|
86
|
+
<v-icon color="warning" icon="mdi-file-document-alert-outline" />
|
|
87
|
+
</v-col>
|
|
88
|
+
<p class="pa-1">Mandatory files:</p>
|
|
89
|
+
<v-col v-for="mandatory_file in mandatory_files" cols="auto" class="pa-0">
|
|
90
|
+
<v-chip>{{ mandatory_file }}</v-chip>
|
|
91
|
+
</v-col>
|
|
92
|
+
</v-row>
|
|
93
|
+
<v-row v-if="additional_files.length" align="center">
|
|
94
|
+
<v-col cols="auto" class="pa-0">
|
|
95
|
+
<v-icon color="accent" icon="mdi-file-document-plus-outline" />
|
|
96
|
+
</v-col>
|
|
97
|
+
<p class="pa-1">Additional files:</p>
|
|
98
|
+
<v-col
|
|
99
|
+
v-for="additional_file in additional_files"
|
|
100
|
+
cols="auto"
|
|
101
|
+
class="pa-0"
|
|
102
|
+
>
|
|
103
|
+
<v-chip>{{ additional_file }}</v-chip>
|
|
104
|
+
</v-col>
|
|
105
|
+
</v-row>
|
|
106
|
+
<v-row>
|
|
107
|
+
<v-col cols="12">
|
|
108
|
+
<FileUploader
|
|
109
|
+
v-bind="{ multiple, accept }"
|
|
110
|
+
@files_uploaded="files_uploaded_event"
|
|
111
|
+
/>
|
|
112
|
+
</v-col>
|
|
113
|
+
</v-row>
|
|
114
|
+
<v-row>
|
|
115
|
+
<v-col
|
|
116
|
+
v-if="!mandatory_files.length && additional_files.length"
|
|
117
|
+
cols="auto"
|
|
118
|
+
>
|
|
119
|
+
<v-btn @click="emit('increment_step')" color="warning">Skip step</v-btn>
|
|
120
|
+
</v-col>
|
|
121
|
+
</v-row>
|
|
122
|
+
</v-container>
|
|
123
|
+
</template>
|
|
@@ -1,53 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<FetchingData v-if="loading" />
|
|
3
|
-
<v-row v-else-if="Object.keys(allowed_objects).length" class="justify-left">
|
|
4
|
-
<v-col v-for="(value, key) in allowed_objects" :key="key" cols="3" md="4">
|
|
5
|
-
<v-tooltip
|
|
6
|
-
:text="
|
|
7
|
-
value['is_loadable']
|
|
8
|
-
? geode_objects[key].tooltip
|
|
9
|
-
: `Data not loadable with this class (${key})`
|
|
10
|
-
"
|
|
11
|
-
location="bottom"
|
|
12
|
-
>
|
|
13
|
-
<template v-slot:activator="{ props }">
|
|
14
|
-
<span v-bind="props">
|
|
15
|
-
<v-card
|
|
16
|
-
v-ripple
|
|
17
|
-
class="card ma-2"
|
|
18
|
-
hover
|
|
19
|
-
rounded
|
|
20
|
-
@click="set_geode_object(key)"
|
|
21
|
-
:disabled="!value['is_loadable']"
|
|
22
|
-
:elevation="value['is_loadable'] ? 5 : 3"
|
|
23
|
-
>
|
|
24
|
-
<v-img
|
|
25
|
-
:src="geode_objects[key].image"
|
|
26
|
-
cover
|
|
27
|
-
:class="!value['is_loadable'] ? 'disabled' : undefined"
|
|
28
|
-
/>
|
|
29
|
-
</v-card>
|
|
30
|
-
</span>
|
|
31
|
-
</template>
|
|
32
|
-
</v-tooltip>
|
|
33
|
-
</v-col>
|
|
34
|
-
</v-row>
|
|
35
|
-
<v-row v-else class="pa-5">
|
|
36
|
-
<v-card class="card" variant="tonal" rounded>
|
|
37
|
-
<v-card-text>
|
|
38
|
-
This file format isn't supported! Please check the
|
|
39
|
-
<a
|
|
40
|
-
href="https://docs.geode-solutions.com/guides/formats/"
|
|
41
|
-
target="_blank"
|
|
42
|
-
>
|
|
43
|
-
supported file formats documentation</a
|
|
44
|
-
>
|
|
45
|
-
for more information
|
|
46
|
-
</v-card-text>
|
|
47
|
-
</v-card>
|
|
48
|
-
</v-row>
|
|
49
|
-
</template>
|
|
50
|
-
|
|
51
1
|
<script setup>
|
|
52
2
|
import schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json"
|
|
53
3
|
|
|
@@ -151,6 +101,56 @@
|
|
|
151
101
|
await get_allowed_objects()
|
|
152
102
|
</script>
|
|
153
103
|
|
|
104
|
+
<template>
|
|
105
|
+
<FetchingData v-if="loading" />
|
|
106
|
+
<v-row v-else-if="Object.keys(allowed_objects).length" class="justify-left">
|
|
107
|
+
<v-col v-for="(value, key) in allowed_objects" :key="key" cols="3" md="4">
|
|
108
|
+
<v-tooltip
|
|
109
|
+
:text="
|
|
110
|
+
value['is_loadable']
|
|
111
|
+
? geode_objects[key].tooltip
|
|
112
|
+
: `Data not loadable with this class (${key})`
|
|
113
|
+
"
|
|
114
|
+
location="bottom"
|
|
115
|
+
>
|
|
116
|
+
<template v-slot:activator="{ props }">
|
|
117
|
+
<span v-bind="props">
|
|
118
|
+
<v-card
|
|
119
|
+
v-ripple
|
|
120
|
+
class="card ma-2"
|
|
121
|
+
hover
|
|
122
|
+
rounded
|
|
123
|
+
@click="set_geode_object(key)"
|
|
124
|
+
:disabled="!value['is_loadable']"
|
|
125
|
+
:elevation="value['is_loadable'] ? 5 : 3"
|
|
126
|
+
>
|
|
127
|
+
<v-img
|
|
128
|
+
:src="geode_objects[key].image"
|
|
129
|
+
cover
|
|
130
|
+
:class="!value['is_loadable'] ? 'disabled' : undefined"
|
|
131
|
+
/>
|
|
132
|
+
</v-card>
|
|
133
|
+
</span>
|
|
134
|
+
</template>
|
|
135
|
+
</v-tooltip>
|
|
136
|
+
</v-col>
|
|
137
|
+
</v-row>
|
|
138
|
+
<v-row v-else class="pa-5">
|
|
139
|
+
<v-card class="card" variant="tonal" rounded>
|
|
140
|
+
<v-card-text>
|
|
141
|
+
This file format isn't supported! Please check the
|
|
142
|
+
<a
|
|
143
|
+
href="https://docs.geode-solutions.com/guides/formats/"
|
|
144
|
+
target="_blank"
|
|
145
|
+
>
|
|
146
|
+
supported file formats documentation</a
|
|
147
|
+
>
|
|
148
|
+
for more information
|
|
149
|
+
</v-card-text>
|
|
150
|
+
</v-card>
|
|
151
|
+
</v-row>
|
|
152
|
+
</template>
|
|
153
|
+
|
|
154
154
|
<style scoped>
|
|
155
155
|
.disabled {
|
|
156
156
|
filter: opacity(0.7);
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<v-container>
|
|
3
|
-
This tool uses our Open-Source codes
|
|
4
|
-
<v-tooltip location="end">
|
|
5
|
-
<span
|
|
6
|
-
v-for="package_version in packages_versions"
|
|
7
|
-
:key="package_version.package"
|
|
8
|
-
>
|
|
9
|
-
{{ package_version.package }} v{{ package_version.version }}
|
|
10
|
-
<br />
|
|
11
|
-
</span>
|
|
12
|
-
<template #activator="{ props }">
|
|
13
|
-
<v-icon v-bind="props" color="primary" class="justify-right">
|
|
14
|
-
mdi-information-outline
|
|
15
|
-
</v-icon>
|
|
16
|
-
</template>
|
|
17
|
-
</v-tooltip>
|
|
18
|
-
</v-container>
|
|
19
|
-
</template>
|
|
20
|
-
|
|
21
1
|
<script setup>
|
|
22
2
|
import Status from "@ogw_front/utils/status"
|
|
23
3
|
import { useGeodeStore } from "@ogw_front/stores/geode"
|
|
@@ -50,3 +30,23 @@
|
|
|
50
30
|
|
|
51
31
|
await get_packages_versions()
|
|
52
32
|
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<v-container>
|
|
36
|
+
This tool uses our Open-Source codes
|
|
37
|
+
<v-tooltip location="end">
|
|
38
|
+
<span
|
|
39
|
+
v-for="package_version in packages_versions"
|
|
40
|
+
:key="package_version.package"
|
|
41
|
+
>
|
|
42
|
+
{{ package_version.package }} v{{ package_version.version }}
|
|
43
|
+
<br />
|
|
44
|
+
</span>
|
|
45
|
+
<template #activator="{ props }">
|
|
46
|
+
<v-icon v-bind="props" color="primary" class="justify-right">
|
|
47
|
+
mdi-information-outline
|
|
48
|
+
</v-icon>
|
|
49
|
+
</template>
|
|
50
|
+
</v-tooltip>
|
|
51
|
+
</v-container>
|
|
52
|
+
</template>
|
|
@@ -1,43 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<VRow align="center" justify="center" style="display: none">
|
|
3
|
-
<VCol cols="4">
|
|
4
|
-
<VForm v-model="valid">
|
|
5
|
-
<VContainer>
|
|
6
|
-
<VRow>
|
|
7
|
-
<VCol>
|
|
8
|
-
<VTextField v-model="name" label="Name" required />
|
|
9
|
-
</VCol>
|
|
10
|
-
</VRow>
|
|
11
|
-
<VRow>
|
|
12
|
-
<VCol>
|
|
13
|
-
<VTextField
|
|
14
|
-
v-model="email"
|
|
15
|
-
:rules="emailRules"
|
|
16
|
-
label="E-mail"
|
|
17
|
-
required
|
|
18
|
-
/>
|
|
19
|
-
</VCol>
|
|
20
|
-
</VRow>
|
|
21
|
-
<VRow>
|
|
22
|
-
<VCol>
|
|
23
|
-
<VCheckbox label="Launch the app" v-model="launch" />
|
|
24
|
-
</VCol>
|
|
25
|
-
</VRow>
|
|
26
|
-
</VContainer>
|
|
27
|
-
</VForm>
|
|
28
|
-
</VCol>
|
|
29
|
-
</VRow>
|
|
30
|
-
<VRow align="center" justify="center">
|
|
31
|
-
<VCol cols="4" class="d-flex justify-center align-center">
|
|
32
|
-
<VBtn
|
|
33
|
-
:text="props.button_label"
|
|
34
|
-
:color="props.color || props.button_color"
|
|
35
|
-
@click="submit_recaptcha"
|
|
36
|
-
/>
|
|
37
|
-
</VCol>
|
|
38
|
-
</VRow>
|
|
39
|
-
</template>
|
|
40
|
-
|
|
41
1
|
<script setup>
|
|
42
2
|
import { appMode } from "@ogw_front/utils/app_mode"
|
|
43
3
|
import { useInfraStore } from "@ogw_front/stores/infra"
|
|
@@ -102,3 +62,43 @@
|
|
|
102
62
|
})
|
|
103
63
|
}
|
|
104
64
|
</script>
|
|
65
|
+
|
|
66
|
+
<template>
|
|
67
|
+
<VRow align="center" justify="center" style="display: none">
|
|
68
|
+
<VCol cols="4">
|
|
69
|
+
<VForm v-model="valid">
|
|
70
|
+
<VContainer>
|
|
71
|
+
<VRow>
|
|
72
|
+
<VCol>
|
|
73
|
+
<VTextField v-model="name" label="Name" required />
|
|
74
|
+
</VCol>
|
|
75
|
+
</VRow>
|
|
76
|
+
<VRow>
|
|
77
|
+
<VCol>
|
|
78
|
+
<VTextField
|
|
79
|
+
v-model="email"
|
|
80
|
+
:rules="emailRules"
|
|
81
|
+
label="E-mail"
|
|
82
|
+
required
|
|
83
|
+
/>
|
|
84
|
+
</VCol>
|
|
85
|
+
</VRow>
|
|
86
|
+
<VRow>
|
|
87
|
+
<VCol>
|
|
88
|
+
<VCheckbox label="Launch the app" v-model="launch" />
|
|
89
|
+
</VCol>
|
|
90
|
+
</VRow>
|
|
91
|
+
</VContainer>
|
|
92
|
+
</VForm>
|
|
93
|
+
</VCol>
|
|
94
|
+
</VRow>
|
|
95
|
+
<VRow align="center" justify="center">
|
|
96
|
+
<VCol cols="4" class="d-flex justify-center align-center">
|
|
97
|
+
<VBtn
|
|
98
|
+
:text="props.button_label"
|
|
99
|
+
:color="props.color || props.button_color"
|
|
100
|
+
@click="submit_recaptcha"
|
|
101
|
+
/>
|
|
102
|
+
</VCol>
|
|
103
|
+
</VRow>
|
|
104
|
+
</template>
|
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<ClientOnly>
|
|
3
|
-
<div style="position: relative; width: 100%; height: calc(100vh - 80px)">
|
|
4
|
-
<ViewToolbar />
|
|
5
|
-
<slot name="ui"></slot>
|
|
6
|
-
<v-col
|
|
7
|
-
ref="viewer"
|
|
8
|
-
style="
|
|
9
|
-
overflow: hidden;
|
|
10
|
-
position: relative;
|
|
11
|
-
z-index: 0;
|
|
12
|
-
height: 100%;
|
|
13
|
-
width: 100%;
|
|
14
|
-
"
|
|
15
|
-
class="pa-0"
|
|
16
|
-
@click="get_x_y"
|
|
17
|
-
@keydown.esc="viewerStore.toggle_picking_mode(false)"
|
|
18
|
-
/>
|
|
19
|
-
</div>
|
|
20
|
-
</ClientOnly>
|
|
21
|
-
</template>
|
|
22
|
-
|
|
23
1
|
<script setup>
|
|
24
2
|
import vtkRemoteView from "@kitware/vtk.js/Rendering/Misc/RemoteView"
|
|
25
3
|
import { useElementSize, useWindowSize } from "@vueuse/core"
|
|
@@ -120,6 +98,28 @@
|
|
|
120
98
|
})
|
|
121
99
|
</script>
|
|
122
100
|
|
|
101
|
+
<template>
|
|
102
|
+
<ClientOnly>
|
|
103
|
+
<div style="position: relative; width: 100%; height: calc(100vh - 80px)">
|
|
104
|
+
<ViewToolbar />
|
|
105
|
+
<slot name="ui"></slot>
|
|
106
|
+
<v-col
|
|
107
|
+
ref="viewer"
|
|
108
|
+
style="
|
|
109
|
+
overflow: hidden;
|
|
110
|
+
position: relative;
|
|
111
|
+
z-index: 0;
|
|
112
|
+
height: 100%;
|
|
113
|
+
width: 100%;
|
|
114
|
+
"
|
|
115
|
+
class="pa-0"
|
|
116
|
+
@click="get_x_y"
|
|
117
|
+
@keydown.esc="viewerStore.toggle_picking_mode(false)"
|
|
118
|
+
/>
|
|
119
|
+
</div>
|
|
120
|
+
</ClientOnly>
|
|
121
|
+
</template>
|
|
122
|
+
|
|
123
123
|
<style scoped>
|
|
124
124
|
.list {
|
|
125
125
|
position: absolute;
|
package/app/components/Step.vue
CHANGED
|
@@ -1,3 +1,49 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
function truncate(text, maxLength) {
|
|
3
|
+
if (text.length > maxLength) {
|
|
4
|
+
return text.slice(0, maxLength) + "..."
|
|
5
|
+
}
|
|
6
|
+
return text
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
step_index: { type: Number, required: true },
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
const stepper_tree = inject("stepper_tree")
|
|
14
|
+
const { current_step_index, steps } = toRefs(stepper_tree)
|
|
15
|
+
|
|
16
|
+
watch(current_step_index, (newVal, oldVal) => {
|
|
17
|
+
if (newVal < oldVal) {
|
|
18
|
+
stepper_tree.navigating_back = true
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
function update_values_event(keys_values_object) {
|
|
23
|
+
for (const [key, value] of Object.entries(keys_values_object)) {
|
|
24
|
+
stepper_tree[key] = value
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function increment_step() {
|
|
29
|
+
stepper_tree.current_step_index++
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function decrement_step() {
|
|
33
|
+
stepper_tree.current_step_index--
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const sortedChips = computed(() => {
|
|
37
|
+
const chips = steps.value[props.step_index]?.chips || []
|
|
38
|
+
return [...chips].sort((a, b) =>
|
|
39
|
+
a.localeCompare(b, undefined, {
|
|
40
|
+
numeric: true,
|
|
41
|
+
sensitivity: "base",
|
|
42
|
+
}),
|
|
43
|
+
)
|
|
44
|
+
})
|
|
45
|
+
</script>
|
|
46
|
+
|
|
1
47
|
<template>
|
|
2
48
|
<v-stepper-vertical-item
|
|
3
49
|
:value="step_index + 1"
|
|
@@ -57,49 +103,3 @@
|
|
|
57
103
|
</v-card-text>
|
|
58
104
|
</v-stepper-vertical-item>
|
|
59
105
|
</template>
|
|
60
|
-
|
|
61
|
-
<script setup>
|
|
62
|
-
function truncate(text, maxLength) {
|
|
63
|
-
if (text.length > maxLength) {
|
|
64
|
-
return text.slice(0, maxLength) + "..."
|
|
65
|
-
}
|
|
66
|
-
return text
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const props = defineProps({
|
|
70
|
-
step_index: { type: Number, required: true },
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
const stepper_tree = inject("stepper_tree")
|
|
74
|
-
const { current_step_index, steps } = toRefs(stepper_tree)
|
|
75
|
-
|
|
76
|
-
watch(current_step_index, (newVal, oldVal) => {
|
|
77
|
-
if (newVal < oldVal) {
|
|
78
|
-
stepper_tree.navigating_back = true
|
|
79
|
-
}
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
function update_values_event(keys_values_object) {
|
|
83
|
-
for (const [key, value] of Object.entries(keys_values_object)) {
|
|
84
|
-
stepper_tree[key] = value
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function increment_step() {
|
|
89
|
-
stepper_tree.current_step_index++
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function decrement_step() {
|
|
93
|
-
stepper_tree.current_step_index--
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const sortedChips = computed(() => {
|
|
97
|
-
const chips = steps.value[props.step_index]?.chips || []
|
|
98
|
-
return [...chips].sort((a, b) =>
|
|
99
|
-
a.localeCompare(b, undefined, {
|
|
100
|
-
numeric: true,
|
|
101
|
-
sensitivity: "base",
|
|
102
|
-
}),
|
|
103
|
-
)
|
|
104
|
-
})
|
|
105
|
-
</script>
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import Step from "@ogw_front/components/Step"
|
|
3
|
+
|
|
4
|
+
const emit = defineEmits(["reset_values"])
|
|
5
|
+
const stepper_tree = inject("stepper_tree")
|
|
6
|
+
const { steps, current_step_index } = toRefs(stepper_tree)
|
|
7
|
+
</script>
|
|
8
|
+
|
|
1
9
|
<template>
|
|
2
10
|
<v-card-item class="flex-shrink-0 pa-0">
|
|
3
11
|
<v-card-title
|
|
@@ -27,11 +35,3 @@
|
|
|
27
35
|
/>
|
|
28
36
|
</v-stepper-vertical>
|
|
29
37
|
</template>
|
|
30
|
-
|
|
31
|
-
<script setup>
|
|
32
|
-
import Step from "@ogw_front/components/Step"
|
|
33
|
-
|
|
34
|
-
const emit = defineEmits(["reset_values"])
|
|
35
|
-
const stepper_tree = inject("stepper_tree")
|
|
36
|
-
const { steps, current_step_index } = toRefs(stepper_tree)
|
|
37
|
-
</script>
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<v-container :class="[$style.floatToolbar, 'pa-0']" width="auto">
|
|
3
|
-
<v-row
|
|
4
|
-
v-for="camera_option in camera_options"
|
|
5
|
-
:key="camera_option.icon"
|
|
6
|
-
dense
|
|
7
|
-
>
|
|
8
|
-
<v-col>
|
|
9
|
-
<v-btn
|
|
10
|
-
density="comfortable"
|
|
11
|
-
icon
|
|
12
|
-
@click.stop="camera_option.action"
|
|
13
|
-
v-tooltip:left="camera_option.tooltip"
|
|
14
|
-
>
|
|
15
|
-
<v-icon :icon="camera_option.icon" size="32" />
|
|
16
|
-
</v-btn>
|
|
17
|
-
</v-col>
|
|
18
|
-
</v-row>
|
|
19
|
-
</v-container>
|
|
20
|
-
<Screenshot :show_dialog="take_screenshot" @close="take_screenshot = false" />
|
|
21
|
-
<ZScaling
|
|
22
|
-
v-if="showZScaling"
|
|
23
|
-
v-model="zScale"
|
|
24
|
-
:width="400"
|
|
25
|
-
@close="handleZScalingClose"
|
|
26
|
-
/>
|
|
27
|
-
</template>
|
|
28
|
-
|
|
29
1
|
<script setup>
|
|
30
2
|
import schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json"
|
|
31
3
|
|
|
@@ -100,6 +72,34 @@
|
|
|
100
72
|
]
|
|
101
73
|
</script>
|
|
102
74
|
|
|
75
|
+
<template>
|
|
76
|
+
<v-container :class="[$style.floatToolbar, 'pa-0']" width="auto">
|
|
77
|
+
<v-row
|
|
78
|
+
v-for="camera_option in camera_options"
|
|
79
|
+
:key="camera_option.icon"
|
|
80
|
+
dense
|
|
81
|
+
>
|
|
82
|
+
<v-col>
|
|
83
|
+
<v-btn
|
|
84
|
+
density="comfortable"
|
|
85
|
+
icon
|
|
86
|
+
@click.stop="camera_option.action"
|
|
87
|
+
v-tooltip:left="camera_option.tooltip"
|
|
88
|
+
>
|
|
89
|
+
<v-icon :icon="camera_option.icon" size="32" />
|
|
90
|
+
</v-btn>
|
|
91
|
+
</v-col>
|
|
92
|
+
</v-row>
|
|
93
|
+
</v-container>
|
|
94
|
+
<Screenshot :show_dialog="take_screenshot" @close="take_screenshot = false" />
|
|
95
|
+
<ZScaling
|
|
96
|
+
v-if="showZScaling"
|
|
97
|
+
v-model="zScale"
|
|
98
|
+
:width="400"
|
|
99
|
+
@close="handleZScalingClose"
|
|
100
|
+
/>
|
|
101
|
+
</template>
|
|
102
|
+
|
|
103
103
|
<style module>
|
|
104
104
|
.floatToolbar {
|
|
105
105
|
position: absolute;
|
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<v-container :class="[$style.floatToolbar, 'pa-0']" width="auto">
|
|
3
|
-
<v-row
|
|
4
|
-
v-for="camera_option in camera_options"
|
|
5
|
-
:key="camera_option.icon"
|
|
6
|
-
dense
|
|
7
|
-
>
|
|
8
|
-
<v-col>
|
|
9
|
-
<v-btn
|
|
10
|
-
density="comfortable"
|
|
11
|
-
icon
|
|
12
|
-
@click.stop="camera_option.action"
|
|
13
|
-
v-tooltip:left="camera_option.tooltip"
|
|
14
|
-
>
|
|
15
|
-
<v-icon :icon="camera_option.icon" size="32" />
|
|
16
|
-
</v-btn>
|
|
17
|
-
</v-col>
|
|
18
|
-
</v-row>
|
|
19
|
-
</v-container>
|
|
20
|
-
<Screenshot :show_dialog="take_screenshot" @close="take_screenshot = false" />
|
|
21
|
-
</template>
|
|
22
|
-
|
|
23
1
|
<script setup>
|
|
24
2
|
import schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json"
|
|
25
3
|
|
|
@@ -64,6 +42,28 @@
|
|
|
64
42
|
]
|
|
65
43
|
</script>
|
|
66
44
|
|
|
45
|
+
<template>
|
|
46
|
+
<v-container :class="[$style.floatToolbar, 'pa-0']" width="auto">
|
|
47
|
+
<v-row
|
|
48
|
+
v-for="camera_option in camera_options"
|
|
49
|
+
:key="camera_option.icon"
|
|
50
|
+
dense
|
|
51
|
+
>
|
|
52
|
+
<v-col>
|
|
53
|
+
<v-btn
|
|
54
|
+
density="comfortable"
|
|
55
|
+
icon
|
|
56
|
+
@click.stop="camera_option.action"
|
|
57
|
+
v-tooltip:left="camera_option.tooltip"
|
|
58
|
+
>
|
|
59
|
+
<v-icon :icon="camera_option.icon" size="32" />
|
|
60
|
+
</v-btn>
|
|
61
|
+
</v-col>
|
|
62
|
+
</v-row>
|
|
63
|
+
</v-container>
|
|
64
|
+
<Screenshot :show_dialog="take_screenshot" @close="take_screenshot = false" />
|
|
65
|
+
</template>
|
|
66
|
+
|
|
67
67
|
<style module>
|
|
68
68
|
.floatToolbar {
|
|
69
69
|
position: absolute;
|