@geode/opengeodeweb-front 9.11.0-rc.7 → 9.11.0-rc.9
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/.github/workflows/test.yml +23 -0
- package/.oxlintrc.json +1 -1
- package/components/FeedBack/ErrorBanner.vue +1 -1
- package/components/FeedBack/Snackers.vue +1 -1
- package/components/HybridRenderingView.vue +38 -12
- package/components/Launcher.vue +1 -1
- package/components/PackagesVersions.vue +1 -1
- package/components/Recaptcha.vue +1 -1
- package/components/RemoteRenderingView.vue +1 -1
- package/components/Viewer/BreadCrumb.vue +1 -1
- package/components/Viewer/Tree/ObjectTree.vue +1 -1
- package/components/Viewer/TreeObject.vue +1 -1
- package/components/Wrapper.vue +1 -1
- package/composables/api_fetch.js +2 -2
- package/composables/run_function_when_microservices_connected.js +1 -1
- package/composables/upload_file.js +2 -2
- package/composables/viewer_call.js +38 -38
- package/geode-opengeodeweb-back-5.10.0-rc.8.tgz +0 -0
- package/geode-opengeodeweb-viewer-1.11.0-rc.4.tgz +0 -0
- package/internal_stores/mesh/edges.js +49 -52
- package/internal_stores/mesh/index.js +20 -14
- package/internal_stores/mesh/points.js +9 -7
- package/internal_stores/mesh/polygons.js +9 -7
- package/internal_stores/mesh/polyhedra.js +8 -6
- package/internal_stores/model/blocks.js +1 -1
- package/internal_stores/model/corners.js +1 -1
- package/internal_stores/model/edges.js +1 -8
- package/internal_stores/model/index.js +1 -1
- package/internal_stores/model/lines.js +2 -2
- package/internal_stores/model/points.js +2 -2
- package/internal_stores/model/surfaces.js +1 -1
- package/package.json +13 -6
- package/stores/data_base.js +9 -1
- package/stores/data_style.js +7 -6
- package/stores/feedback.js +1 -1
- package/stores/geode.js +5 -5
- package/stores/hybrid_viewer.js +1 -1
- package/stores/infra.js +10 -10
- package/stores/menu.js +3 -3
- package/stores/treeview.js +1 -1
- package/stores/viewer.js +5 -6
- package/tests/integration/data/fake_id/edged_curve.vtp +20 -0
- package/tests/integration/microservices/back/requirements.in +1 -0
- package/tests/integration/microservices/back/requirements.txt +75 -0
- package/tests/integration/microservices/viewer/requirements.in +1 -0
- package/tests/integration/microservices/viewer/requirements.txt +87 -0
- package/tests/integration/stores/DataStyle/mesh/Edges.nuxt.test.js +138 -0
- package/{test → tests/unit}/components/CrsSelector.nuxt.test.js +6 -3
- package/{test → tests/unit}/components/ExtensionSelector.nuxt.test.js +6 -3
- package/{test → tests/unit}/components/FeedBack/ErrorsBanner.nuxt.test.js +10 -3
- package/{test → tests/unit}/components/FeedBack/Snackers.nuxt.test.js +24 -21
- package/{test → tests/unit}/components/FileSelector.nuxt.test.js +5 -2
- package/{test → tests/unit}/components/FileUploader.nuxt.test.js +6 -3
- package/{test → tests/unit}/components/Inspector/InspectionButton.nuxt.test.js +6 -3
- package/{test → tests/unit}/components/Launcher.nuxt.test.js +9 -2
- package/{test → tests/unit}/components/MissingFilesSelector.nuxt.test.js +6 -3
- package/{test → tests/unit}/components/ObjectSelector.nuxt.test.js +6 -3
- package/{test → tests/unit}/components/PackagesVersions.nuxt.test.js +5 -3
- package/{test → tests/unit}/components/Stepper.nuxt.test.js +1 -0
- package/{test → tests/unit}/components/Wrapper.nuxt.test.js +1 -1
- package/{test → tests/unit}/composables/api_fetch.nuxt.test.js +3 -2
- package/{test/composables/run_function_when_microservices_connected.test.js → tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js} +18 -5
- package/{test → tests/unit}/composables/upload_file.nuxt.test.js +7 -8
- package/{test → tests/unit}/stores/Feedback.nuxt.test.js +12 -8
- package/{test → tests/unit}/stores/Geode.nuxt.test.js +33 -10
- package/{test → tests/unit}/stores/Infra.nuxt.test.js +58 -25
- package/{test → tests/unit}/stores/Viewer.nuxt.test.js +101 -20
- package/{test → tests/unit}/utils/validate_schema.nuxt.test.js +3 -0
- package/tests/vitest.config.js +33 -0
- package/utils/default_styles.js +246 -0
- package/utils/local.js +180 -0
- package/geode-opengeodeweb-back-5.10.0-rc.5.tgz +0 -0
- package/geode-opengeodeweb-viewer-1.11.0-rc.3.tgz +0 -0
- package/vitest.config.js +0 -13
- /package/{test → tests/unit}/components/Inspector/ResultPanel.nuxt.test.js +0 -0
- /package/{test → tests/unit}/components/Step.nuxt.test.js +0 -0
|
@@ -27,7 +27,7 @@ export function useMeshPolyhedraStyle() {
|
|
|
27
27
|
|
|
28
28
|
/** Actions **/
|
|
29
29
|
function setPolyhedraVisibility(id, visibility) {
|
|
30
|
-
viewer_call(
|
|
30
|
+
return viewer_call(
|
|
31
31
|
{
|
|
32
32
|
schema: mesh_polyhedra_schemas.visibility,
|
|
33
33
|
params: { id, visibility },
|
|
@@ -60,7 +60,7 @@ export function useMeshPolyhedraStyle() {
|
|
|
60
60
|
)
|
|
61
61
|
}
|
|
62
62
|
function setPolyhedraColor(id, color) {
|
|
63
|
-
viewer_call(
|
|
63
|
+
return viewer_call(
|
|
64
64
|
{
|
|
65
65
|
schema: mesh_polyhedra_schemas.color,
|
|
66
66
|
params: { id, color },
|
|
@@ -78,7 +78,7 @@ export function useMeshPolyhedraStyle() {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
function setPolyhedraVertexAttribute(id, vertex_attribute) {
|
|
81
|
-
viewer_call(
|
|
81
|
+
return viewer_call(
|
|
82
82
|
{
|
|
83
83
|
schema: mesh_polyhedra_schemas.vertex_attribute,
|
|
84
84
|
params: { id, ...vertex_attribute },
|
|
@@ -96,7 +96,7 @@ export function useMeshPolyhedraStyle() {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
function setPolyhedraPolyhedronAttribute(id, polyhedron_attribute) {
|
|
99
|
-
viewer_call(
|
|
99
|
+
return viewer_call(
|
|
100
100
|
{
|
|
101
101
|
schema: mesh_polyhedra_schemas.polyhedron_attribute,
|
|
102
102
|
params: { id, ...polyhedron_attribute },
|
|
@@ -115,8 +115,10 @@ export function useMeshPolyhedraStyle() {
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
function applyPolyhedraStyle(id, style) {
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
return Promise.all([
|
|
119
|
+
setPolyhedraVisibility(id, style.visibility),
|
|
120
|
+
setPolyhedraActiveColoring(id, style.coloring.active),
|
|
121
|
+
])
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
return {
|
|
@@ -15,7 +15,7 @@ export function useBlocksStyle() {
|
|
|
15
15
|
/** Actions **/
|
|
16
16
|
function setBlockVisibility(id, block_ids, visibility) {
|
|
17
17
|
const block_flat_indexes = dataBaseStore.getFlatIndexes(id, block_ids)
|
|
18
|
-
viewer_call(
|
|
18
|
+
return viewer_call(
|
|
19
19
|
{
|
|
20
20
|
schema: blocks_schemas.visibility,
|
|
21
21
|
params: { id, block_ids: block_flat_indexes, visibility },
|
|
@@ -14,7 +14,7 @@ export function useCornersStyle() {
|
|
|
14
14
|
/** Actions **/
|
|
15
15
|
function setCornerVisibility(id, corner_ids, visibility) {
|
|
16
16
|
const corner_flat_indexes = dataBaseStore.getFlatIndexes(id, corner_ids)
|
|
17
|
-
viewer_call(
|
|
17
|
+
return viewer_call(
|
|
18
18
|
{
|
|
19
19
|
schema: corners_schemas.visibility,
|
|
20
20
|
params: { id, block_ids: corner_flat_indexes, visibility },
|
|
@@ -9,14 +9,7 @@ export function useModelEdgesStyle() {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
function setModelEdgesVisibility(id, visibility) {
|
|
12
|
-
|
|
13
|
-
dataStyleStore.styles[id] = {}
|
|
14
|
-
}
|
|
15
|
-
if (!dataStyleStore.styles[id].edges) {
|
|
16
|
-
dataStyleStore.styles[id].edges = {}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
viewer_call(
|
|
12
|
+
return viewer_call(
|
|
20
13
|
{
|
|
21
14
|
schema: model_edges_schemas.visibility,
|
|
22
15
|
params: { id, visibility },
|
|
@@ -18,7 +18,7 @@ export function useLinesStyle() {
|
|
|
18
18
|
/** Actions **/
|
|
19
19
|
function setLineVisibility(id, line_ids, visibility) {
|
|
20
20
|
const line_flat_indexes = dataBaseStore.getFlatIndexes(id, line_ids)
|
|
21
|
-
viewer_call(
|
|
21
|
+
return viewer_call(
|
|
22
22
|
{
|
|
23
23
|
schema: lines_schemas.visibility,
|
|
24
24
|
params: { id, block_ids: line_flat_indexes, visibility },
|
|
@@ -38,7 +38,7 @@ export function useLinesStyle() {
|
|
|
38
38
|
|
|
39
39
|
function setLineColor(id, line_ids, color) {
|
|
40
40
|
const line_flat_indexes = dataBaseStore.getFlatIndexes(id, line_ids)
|
|
41
|
-
viewer_call(
|
|
41
|
+
return viewer_call(
|
|
42
42
|
{
|
|
43
43
|
schema: lines_schemas.color,
|
|
44
44
|
params: { id, block_ids: line_flat_indexes, color },
|
|
@@ -12,7 +12,7 @@ export function useModelPointsStyle() {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
function setModelPointsVisibility(id, visibility) {
|
|
15
|
-
viewer_call(
|
|
15
|
+
return viewer_call(
|
|
16
16
|
{
|
|
17
17
|
schema: model_points_schemas.visibility,
|
|
18
18
|
params: { id, visibility },
|
|
@@ -27,7 +27,7 @@ export function useModelPointsStyle() {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
function setModelPointsSize(id, size) {
|
|
30
|
-
viewer_call(
|
|
30
|
+
return viewer_call(
|
|
31
31
|
{
|
|
32
32
|
schema: model_points_schemas.size,
|
|
33
33
|
params: { id, size },
|
|
@@ -14,7 +14,7 @@ export function useSurfacesStyle() {
|
|
|
14
14
|
/** Actions **/
|
|
15
15
|
function setSurfaceVisibility(id, surface_ids, visibility) {
|
|
16
16
|
const surface_flat_indexes = dataBaseStore.getFlatIndexes(id, surface_ids)
|
|
17
|
-
viewer_call(
|
|
17
|
+
return viewer_call(
|
|
18
18
|
{
|
|
19
19
|
schema: surfaces_schemas.visibility,
|
|
20
20
|
params: { id, block_ids: surface_flat_indexes, visibility },
|
package/package.json
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
"name": "@geode/opengeodeweb-front",
|
|
3
3
|
"scripts": {
|
|
4
4
|
"lint": "eslint --fix --ext .js,.vue --ignore-path .gitignore .",
|
|
5
|
-
"test": "
|
|
6
|
-
"
|
|
5
|
+
"test": "npm run test:unit",
|
|
6
|
+
"tests": "vitest --config ./tests/vitest.config.js",
|
|
7
|
+
"test:unit": "npm run tests --project unit",
|
|
8
|
+
"test:integration": "npm run tests --project integration",
|
|
7
9
|
"geode_objects": "node scripts/generate_geode_objects.js && prettier ./assets/geode_objects.js --write",
|
|
8
10
|
"build": ""
|
|
9
11
|
},
|
|
10
12
|
"devDependencies": {
|
|
11
|
-
"@nuxt/test-utils": "3.
|
|
13
|
+
"@nuxt/test-utils": "3.19.2",
|
|
12
14
|
"@pinia/testing": "0.1.7",
|
|
13
15
|
"@vitejs/plugin-vue": "5.2.3",
|
|
14
16
|
"@vue/test-utils": "2.4.6",
|
|
17
|
+
"electron": "36.4.0",
|
|
15
18
|
"eslint": "9.26.0",
|
|
16
19
|
"eslint-plugin-import": "2.31.0",
|
|
17
20
|
"eslint-plugin-nuxt": "4.0.0",
|
|
@@ -21,13 +24,15 @@
|
|
|
21
24
|
"eslint-plugin-vuetify": "2.5.2",
|
|
22
25
|
"happy-dom": "17.4.6",
|
|
23
26
|
"jsdom": "26.1.0",
|
|
27
|
+
"msw": "2.11.1",
|
|
24
28
|
"nuxt": "3.13.2",
|
|
25
29
|
"playwright-core": "1.52.0",
|
|
26
30
|
"prettier": "3.3.3",
|
|
27
31
|
"resize-observer-polyfill": "1.5.1",
|
|
32
|
+
"unplugin-auto-import": "^20.0.0",
|
|
28
33
|
"vite": "6.3.5",
|
|
29
34
|
"vite-plugin-vuetify": "2.1.1",
|
|
30
|
-
"vitest": "3.
|
|
35
|
+
"vitest": "3.2.4",
|
|
31
36
|
"vitest-environment-nuxt": "1.0.1"
|
|
32
37
|
},
|
|
33
38
|
"overrides": {
|
|
@@ -35,7 +40,7 @@
|
|
|
35
40
|
},
|
|
36
41
|
"description": "OpenSource Vue/Vuetify framework for web applications",
|
|
37
42
|
"type": "module",
|
|
38
|
-
"version": "9.11.0-rc.
|
|
43
|
+
"version": "9.11.0-rc.9",
|
|
39
44
|
"main": "./nuxt.config.js",
|
|
40
45
|
"dependencies": {
|
|
41
46
|
"@geode/opengeodeweb-back": "latest",
|
|
@@ -47,10 +52,12 @@
|
|
|
47
52
|
"@vueuse/components": "13.1.0",
|
|
48
53
|
"@vueuse/nuxt": "13.1.0",
|
|
49
54
|
"ajv": "8.17.1",
|
|
55
|
+
"get-port-please": "3.2.0",
|
|
50
56
|
"is-electron": "2.2.2",
|
|
51
57
|
"js-file-download": "0.4.12",
|
|
52
58
|
"nuxt": "3.13.2",
|
|
53
|
-
"
|
|
59
|
+
"pidtree": "0.6.0",
|
|
60
|
+
"pinia": "3.0.3",
|
|
54
61
|
"sass": "1.87.0",
|
|
55
62
|
"semver": "7.7.1",
|
|
56
63
|
"uuid": "11.1.0",
|
package/stores/data_base.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json"
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json"
|
|
2
3
|
|
|
3
4
|
export const useDataBaseStore = defineStore("dataBase", () => {
|
|
4
|
-
const treeview_store =
|
|
5
|
+
const treeview_store = useTreeviewStore()
|
|
5
6
|
const hybridViewerStore = useHybridViewerStore()
|
|
6
7
|
|
|
7
8
|
/** State **/
|
|
@@ -41,6 +42,12 @@ export const useDataBaseStore = defineStore("dataBase", () => {
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
/** Actions **/
|
|
45
|
+
async function registerObject(id, file_name, viewer_object) {
|
|
46
|
+
return viewer_call({
|
|
47
|
+
schema: viewer_schemas.opengeodeweb_viewer.generic.register,
|
|
48
|
+
params: { id, file_name, viewer_object },
|
|
49
|
+
})
|
|
50
|
+
}
|
|
44
51
|
async function addItem(
|
|
45
52
|
id,
|
|
46
53
|
value = {
|
|
@@ -137,6 +144,7 @@ export const useDataBaseStore = defineStore("dataBase", () => {
|
|
|
137
144
|
itemMetaDatas,
|
|
138
145
|
meshComponentType,
|
|
139
146
|
formatedMeshComponents,
|
|
147
|
+
registerObject,
|
|
140
148
|
addItem,
|
|
141
149
|
fetchUuidToFlatIndexDict,
|
|
142
150
|
fetchMeshComponents,
|
package/stores/data_style.js
CHANGED
|
@@ -12,21 +12,22 @@ export const useDataStyleStore = defineStore("dataStyle", () => {
|
|
|
12
12
|
/** Actions **/
|
|
13
13
|
function addDataStyle(id, geode_object, object_type) {
|
|
14
14
|
dataStyleState.styles[id] = getDefaultStyle(geode_object)
|
|
15
|
-
|
|
16
15
|
if (object_type === "mesh") {
|
|
17
|
-
meshStyleStore.applyMeshDefaultStyle(id)
|
|
16
|
+
return Promise.all([meshStyleStore.applyMeshDefaultStyle(id)])
|
|
18
17
|
} else if (object_type === "model") {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
return Promise.all([
|
|
19
|
+
modelStyleStore.setMeshComponentsDefaultStyle(id),
|
|
20
|
+
modelStyleStore.applyModelDefaultStyle(id),
|
|
21
|
+
])
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
function setVisibility(id, visibility) {
|
|
25
26
|
const object_type = dataBaseStore.itemMetaDatas(id).object_type
|
|
26
27
|
if (object_type === "mesh") {
|
|
27
|
-
meshStyleStore.setMeshVisibility(id, visibility)
|
|
28
|
+
return Promise.all([meshStyleStore.setMeshVisibility(id, visibility)])
|
|
28
29
|
} else if (object_type === "model") {
|
|
29
|
-
modelStyleStore.setModelVisibility(id, visibility)
|
|
30
|
+
return Promise.all([modelStyleStore.setModelVisibility(id, visibility)])
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
|
package/stores/feedback.js
CHANGED
package/stores/geode.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json"
|
|
2
2
|
import Status from "@ogw_f/utils/status.js"
|
|
3
3
|
|
|
4
|
-
export const
|
|
4
|
+
export const useGeodeStore = defineStore("geode", {
|
|
5
5
|
state: () => ({
|
|
6
6
|
default_local_port: "5000",
|
|
7
7
|
request_counter: 0,
|
|
@@ -9,13 +9,13 @@ export const use_geode_store = defineStore("geode", {
|
|
|
9
9
|
}),
|
|
10
10
|
getters: {
|
|
11
11
|
protocol() {
|
|
12
|
-
if (
|
|
12
|
+
if (useInfraStore().app_mode == appMode.appMode.CLOUD) {
|
|
13
13
|
return "https"
|
|
14
14
|
}
|
|
15
15
|
return "http"
|
|
16
16
|
},
|
|
17
17
|
port() {
|
|
18
|
-
if (
|
|
18
|
+
if (useInfraStore().app_mode == appMode.appMode.CLOUD) {
|
|
19
19
|
return "443"
|
|
20
20
|
}
|
|
21
21
|
const GEODE_PORT = useRuntimeConfig().public.GEODE_PORT
|
|
@@ -25,7 +25,7 @@ export const use_geode_store = defineStore("geode", {
|
|
|
25
25
|
return this.default_local_port
|
|
26
26
|
},
|
|
27
27
|
base_url() {
|
|
28
|
-
const infra_store =
|
|
28
|
+
const infra_store = useInfraStore()
|
|
29
29
|
let geode_url = `${this.protocol}://${infra_store.domain_name}:${this.port}`
|
|
30
30
|
if (infra_store.app_mode == appMode.appMode.CLOUD) {
|
|
31
31
|
if (infra_store.ID == "") {
|
|
@@ -49,7 +49,7 @@ export const use_geode_store = defineStore("geode", {
|
|
|
49
49
|
},
|
|
50
50
|
do_ping() {
|
|
51
51
|
const geode_store = this
|
|
52
|
-
const feedback_store =
|
|
52
|
+
const feedback_store = useFeedbackStore()
|
|
53
53
|
return useFetch(back_schemas.opengeodeweb_back.ping.$id, {
|
|
54
54
|
baseURL: this.base_url,
|
|
55
55
|
method: back_schemas.opengeodeweb_back.ping.methods[0],
|
package/stores/hybrid_viewer.js
CHANGED
|
@@ -8,7 +8,7 @@ import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schem
|
|
|
8
8
|
import Status from "@ogw_f/utils/status.js"
|
|
9
9
|
|
|
10
10
|
export const useHybridViewerStore = defineStore("hybridViewer", () => {
|
|
11
|
-
const viewer_store =
|
|
11
|
+
const viewer_store = useViewerStore()
|
|
12
12
|
const db = reactive({})
|
|
13
13
|
const status = ref(Status.NOT_CREATED)
|
|
14
14
|
const camera_options = reactive({})
|
package/stores/infra.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useStorage } from "@vueuse/core"
|
|
2
2
|
import Status from "@ogw_f/utils/status.js"
|
|
3
3
|
|
|
4
|
-
export const
|
|
4
|
+
export const useInfraStore = defineStore("infra", {
|
|
5
5
|
state: () => ({
|
|
6
6
|
app_mode: getAppMode(),
|
|
7
7
|
ID: useStorage("ID", ""),
|
|
@@ -16,7 +16,7 @@ export const use_infra_store = defineStore("infra", {
|
|
|
16
16
|
return "localhost"
|
|
17
17
|
},
|
|
18
18
|
lambda_url() {
|
|
19
|
-
const geode_store =
|
|
19
|
+
const geode_store = useGeodeStore()
|
|
20
20
|
const public_runtime_config = useRuntimeConfig().public
|
|
21
21
|
const url =
|
|
22
22
|
geode_store.protocol +
|
|
@@ -31,12 +31,12 @@ export const use_infra_store = defineStore("infra", {
|
|
|
31
31
|
},
|
|
32
32
|
microservices_connected() {
|
|
33
33
|
return (
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
useGeodeStore().status == Status.CONNECTED &&
|
|
35
|
+
useViewerStore().status == Status.CONNECTED
|
|
36
36
|
)
|
|
37
37
|
},
|
|
38
38
|
microservices_busy() {
|
|
39
|
-
return
|
|
39
|
+
return useGeodeStore().is_busy || useViewerStore().is_busy
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
42
|
actions: {
|
|
@@ -48,8 +48,8 @@ export const use_infra_store = defineStore("infra", {
|
|
|
48
48
|
if (this.status === Status.CREATED) return
|
|
49
49
|
console.log("LOCK GRANTED !", lock)
|
|
50
50
|
if (this.app_mode == appMode.appMode.DESKTOP) {
|
|
51
|
-
const viewer_store =
|
|
52
|
-
const geode_store =
|
|
51
|
+
const viewer_store = useViewerStore()
|
|
52
|
+
const geode_store = useGeodeStore()
|
|
53
53
|
const back_port = await window.electronAPI.run_back(
|
|
54
54
|
geode_store.default_local_port,
|
|
55
55
|
)
|
|
@@ -64,7 +64,7 @@ export const use_infra_store = defineStore("infra", {
|
|
|
64
64
|
})
|
|
65
65
|
if (error.value || !data.value) {
|
|
66
66
|
this.status = Status.NOT_CREATED
|
|
67
|
-
const feedback_store =
|
|
67
|
+
const feedback_store = useFeedbackStore()
|
|
68
68
|
feedback_store.server_error = true
|
|
69
69
|
return
|
|
70
70
|
}
|
|
@@ -77,8 +77,8 @@ export const use_infra_store = defineStore("infra", {
|
|
|
77
77
|
},
|
|
78
78
|
async create_connection() {
|
|
79
79
|
console.log("create_connection")
|
|
80
|
-
await
|
|
81
|
-
await
|
|
80
|
+
await useViewerStore().ws_connect()
|
|
81
|
+
await useGeodeStore().do_ping()
|
|
82
82
|
return
|
|
83
83
|
},
|
|
84
84
|
},
|
package/stores/menu.js
CHANGED
|
@@ -142,7 +142,7 @@ export const useMenuStore = defineStore("menu", () => {
|
|
|
142
142
|
current_id.value = null
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
async function openMenu(id, x, y,
|
|
145
|
+
async function openMenu(id, x, y, width, height) {
|
|
146
146
|
await closeMenu()
|
|
147
147
|
current_id.value = id
|
|
148
148
|
|
|
@@ -151,8 +151,8 @@ export const useMenuStore = defineStore("menu", () => {
|
|
|
151
151
|
menuY.value = y
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
if (containerWidth) containerWidth.value =
|
|
155
|
-
if (containerHeight) containerHeight.value =
|
|
154
|
+
if (containerWidth) containerWidth.value = width
|
|
155
|
+
if (containerHeight) containerHeight.value = height
|
|
156
156
|
|
|
157
157
|
display_menu.value = true
|
|
158
158
|
}
|
package/stores/treeview.js
CHANGED
package/stores/viewer.js
CHANGED
|
@@ -4,7 +4,7 @@ import "@kitware/vtk.js/Rendering/OpenGL/Profiles/Geometry"
|
|
|
4
4
|
import schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json"
|
|
5
5
|
import Status from "@ogw_f/utils/status.js"
|
|
6
6
|
|
|
7
|
-
export const
|
|
7
|
+
export const useViewerStore = defineStore("viewer", {
|
|
8
8
|
state: () => ({
|
|
9
9
|
default_local_port: "1234",
|
|
10
10
|
client: {},
|
|
@@ -16,14 +16,14 @@ export const use_viewer_store = defineStore("viewer", {
|
|
|
16
16
|
}),
|
|
17
17
|
getters: {
|
|
18
18
|
protocol() {
|
|
19
|
-
if (
|
|
19
|
+
if (useInfraStore().app_mode == appMode.appMode.CLOUD) {
|
|
20
20
|
return "wss"
|
|
21
21
|
} else {
|
|
22
22
|
return "ws"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
port() {
|
|
26
|
-
if (
|
|
26
|
+
if (useInfraStore().app_mode == appMode.appMode.CLOUD) {
|
|
27
27
|
return "443"
|
|
28
28
|
}
|
|
29
29
|
const VIEWER_PORT = useRuntimeConfig().public.VIEWER_PORT
|
|
@@ -33,7 +33,7 @@ export const use_viewer_store = defineStore("viewer", {
|
|
|
33
33
|
return this.default_local_port
|
|
34
34
|
},
|
|
35
35
|
base_url() {
|
|
36
|
-
const infra_store =
|
|
36
|
+
const infra_store = useInfraStore()
|
|
37
37
|
let viewer_url = `${this.protocol}://${infra_store.domain_name}:${this.port}`
|
|
38
38
|
if (infra_store.app_mode == appMode.appMode.CLOUD) {
|
|
39
39
|
if (infra_store.ID == "") {
|
|
@@ -60,7 +60,6 @@ export const use_viewer_store = defineStore("viewer", {
|
|
|
60
60
|
this.picking_mode = false
|
|
61
61
|
},
|
|
62
62
|
async ws_connect() {
|
|
63
|
-
if (process.env.NODE_ENV == "test") return
|
|
64
63
|
if (this.status === Status.CONNECTED) return
|
|
65
64
|
return navigator.locks.request("viewer.ws_connect", async (lock) => {
|
|
66
65
|
if (this.status === Status.CONNECTED) return
|
|
@@ -125,7 +124,7 @@ export const use_viewer_store = defineStore("viewer", {
|
|
|
125
124
|
resolve()
|
|
126
125
|
})
|
|
127
126
|
.catch((error) => {
|
|
128
|
-
console.error(error)
|
|
127
|
+
console.error("error", error)
|
|
129
128
|
viewer_store.status = Status.NOT_CONNECTED
|
|
130
129
|
reject(error)
|
|
131
130
|
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<VTKFile type="PolyData" version="1.0" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
|
|
3
|
+
<PolyData>
|
|
4
|
+
<Piece NumberOfPoints="4" NumberOfLines="4">
|
|
5
|
+
<PointData>
|
|
6
|
+
<DataArray type="Float64" Name="points" format="ascii" NumberOfComponents="3" RangeMin="0.100000001" RangeMax="9.39999962">0.1 0.2 0.3 2.1 9.4 6.7 7.5 5.2 6.3 8.7 1.4 4.7 </DataArray>
|
|
7
|
+
</PointData>
|
|
8
|
+
<Points>
|
|
9
|
+
<DataArray type="Float64" Name="Points" format="ascii" NumberOfComponents="3" RangeMin="0.10000000000000001" RangeMax="9.4000000000000004">0.1 0.2 0.3 2.1 9.4 6.7 7.5 5.2 6.3 8.7 1.4 4.7 </DataArray>
|
|
10
|
+
</Points>
|
|
11
|
+
<CellData>
|
|
12
|
+
<DataArray type="Float64" Name="edges" format="ascii" NumberOfComponents="2" RangeMin="0" RangeMax="3">0 1 0 2 3 2 1 2 </DataArray>
|
|
13
|
+
</CellData>
|
|
14
|
+
<Lines>
|
|
15
|
+
<DataArray type="Int64" Name="connectivity" format="ascii" RangeMin="0" RangeMax="3">0 1 0 2 3 2 1 2 </DataArray>
|
|
16
|
+
<DataArray type="Int64" Name="offsets" format="ascii" RangeMin="0" RangeMax="4">2 4 6 8 </DataArray>
|
|
17
|
+
</Lines>
|
|
18
|
+
</Piece>
|
|
19
|
+
</PolyData>
|
|
20
|
+
</VTKFile>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
OpenGeodeWeb-Back
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
|
+
# by the following command:
|
|
4
|
+
#
|
|
5
|
+
# pip-compile requirements.in
|
|
6
|
+
#
|
|
7
|
+
asgiref==3.9.1
|
|
8
|
+
# via
|
|
9
|
+
# flask
|
|
10
|
+
# opengeodeweb-back
|
|
11
|
+
blinker==1.9.0
|
|
12
|
+
# via
|
|
13
|
+
# flask
|
|
14
|
+
# opengeodeweb-back
|
|
15
|
+
click==8.2.1
|
|
16
|
+
# via
|
|
17
|
+
# flask
|
|
18
|
+
# opengeodeweb-back
|
|
19
|
+
fastjsonschema==2.16.2
|
|
20
|
+
# via opengeodeweb-back
|
|
21
|
+
flask[async]==3.0.3
|
|
22
|
+
# via
|
|
23
|
+
# flask-cors
|
|
24
|
+
# opengeodeweb-back
|
|
25
|
+
flask-cors==6.0.1
|
|
26
|
+
# via opengeodeweb-back
|
|
27
|
+
geode-common==33.9.0
|
|
28
|
+
# via
|
|
29
|
+
# geode-viewables
|
|
30
|
+
# opengeodeweb-back
|
|
31
|
+
geode-viewables==3.2.0
|
|
32
|
+
# via opengeodeweb-back
|
|
33
|
+
itsdangerous==2.2.0
|
|
34
|
+
# via
|
|
35
|
+
# flask
|
|
36
|
+
# opengeodeweb-back
|
|
37
|
+
jinja2==3.1.6
|
|
38
|
+
# via
|
|
39
|
+
# flask
|
|
40
|
+
# opengeodeweb-back
|
|
41
|
+
markupsafe==3.0.2
|
|
42
|
+
# via
|
|
43
|
+
# jinja2
|
|
44
|
+
# opengeodeweb-back
|
|
45
|
+
# werkzeug
|
|
46
|
+
opengeode-core==15.24.2
|
|
47
|
+
# via
|
|
48
|
+
# geode-common
|
|
49
|
+
# geode-viewables
|
|
50
|
+
# opengeode-geosciences
|
|
51
|
+
# opengeode-geosciencesio
|
|
52
|
+
# opengeode-inspector
|
|
53
|
+
# opengeode-io
|
|
54
|
+
# opengeodeweb-back
|
|
55
|
+
opengeode-geosciences==9.2.2
|
|
56
|
+
# via
|
|
57
|
+
# geode-viewables
|
|
58
|
+
# opengeode-geosciencesio
|
|
59
|
+
# opengeodeweb-back
|
|
60
|
+
opengeode-geosciencesio==5.7.2
|
|
61
|
+
# via opengeodeweb-back
|
|
62
|
+
opengeode-inspector==6.7.0
|
|
63
|
+
# via opengeodeweb-back
|
|
64
|
+
opengeode-io==7.3.2
|
|
65
|
+
# via
|
|
66
|
+
# geode-viewables
|
|
67
|
+
# opengeode-geosciencesio
|
|
68
|
+
# opengeodeweb-back
|
|
69
|
+
opengeodeweb-back==5.9.1
|
|
70
|
+
# via -r requirements.in
|
|
71
|
+
werkzeug==3.0.3
|
|
72
|
+
# via
|
|
73
|
+
# flask
|
|
74
|
+
# flask-cors
|
|
75
|
+
# opengeodeweb-back
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
OpenGeodeWeb-Viewer[cpu]
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
|
+
# by the following command:
|
|
4
|
+
#
|
|
5
|
+
# pip-compile --extra-index-url=https://wheels.vtk.org --pre requirements.in
|
|
6
|
+
#
|
|
7
|
+
--extra-index-url https://wheels.vtk.org
|
|
8
|
+
|
|
9
|
+
aiohappyeyeballs==2.6.1
|
|
10
|
+
# via
|
|
11
|
+
# aiohttp
|
|
12
|
+
# opengeodeweb-viewer
|
|
13
|
+
aiohttp==3.12.15
|
|
14
|
+
# via
|
|
15
|
+
# opengeodeweb-viewer
|
|
16
|
+
# wslink
|
|
17
|
+
aiosignal==1.4.0
|
|
18
|
+
# via
|
|
19
|
+
# aiohttp
|
|
20
|
+
# opengeodeweb-viewer
|
|
21
|
+
attrs==25.3.0
|
|
22
|
+
# via
|
|
23
|
+
# aiohttp
|
|
24
|
+
# opengeodeweb-viewer
|
|
25
|
+
contourpy==1.3.3
|
|
26
|
+
# via matplotlib
|
|
27
|
+
cycler==0.12.1
|
|
28
|
+
# via matplotlib
|
|
29
|
+
fastjsonschema==2.21.1
|
|
30
|
+
# via opengeodeweb-viewer
|
|
31
|
+
fonttools==4.59.2
|
|
32
|
+
# via matplotlib
|
|
33
|
+
frozenlist==1.7.0
|
|
34
|
+
# via
|
|
35
|
+
# aiohttp
|
|
36
|
+
# aiosignal
|
|
37
|
+
# opengeodeweb-viewer
|
|
38
|
+
idna==3.10
|
|
39
|
+
# via
|
|
40
|
+
# opengeodeweb-viewer
|
|
41
|
+
# yarl
|
|
42
|
+
kiwisolver==1.4.10rc0
|
|
43
|
+
# via matplotlib
|
|
44
|
+
matplotlib==3.10.6
|
|
45
|
+
# via vtk-osmesa
|
|
46
|
+
multidict==6.6.3
|
|
47
|
+
# via
|
|
48
|
+
# aiohttp
|
|
49
|
+
# opengeodeweb-viewer
|
|
50
|
+
# yarl
|
|
51
|
+
numpy==2.3.2
|
|
52
|
+
# via
|
|
53
|
+
# contourpy
|
|
54
|
+
# matplotlib
|
|
55
|
+
opengeodeweb-viewer[cpu]==1.11.0rc3
|
|
56
|
+
# via
|
|
57
|
+
# -r requirements.in
|
|
58
|
+
# opengeodeweb-viewer
|
|
59
|
+
packaging==25.0
|
|
60
|
+
# via matplotlib
|
|
61
|
+
pillow==11.3.0
|
|
62
|
+
# via matplotlib
|
|
63
|
+
propcache==0.3.2
|
|
64
|
+
# via
|
|
65
|
+
# aiohttp
|
|
66
|
+
# opengeodeweb-viewer
|
|
67
|
+
# yarl
|
|
68
|
+
pyparsing==3.2.3
|
|
69
|
+
# via matplotlib
|
|
70
|
+
python-dateutil==2.9.0.post0
|
|
71
|
+
# via matplotlib
|
|
72
|
+
six==1.17.0
|
|
73
|
+
# via python-dateutil
|
|
74
|
+
typing-extensions==4.14.1
|
|
75
|
+
# via
|
|
76
|
+
# aiosignal
|
|
77
|
+
# opengeodeweb-viewer
|
|
78
|
+
vtk-osmesa==9.3.1
|
|
79
|
+
# via opengeodeweb-viewer
|
|
80
|
+
websocket-client==1.8.0
|
|
81
|
+
# via opengeodeweb-viewer
|
|
82
|
+
wslink==1.12.4
|
|
83
|
+
# via opengeodeweb-viewer
|
|
84
|
+
yarl==1.20.1
|
|
85
|
+
# via
|
|
86
|
+
# aiohttp
|
|
87
|
+
# opengeodeweb-viewer
|