@geode/opengeodeweb-front 0.0.23 → 1.0.0-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.
@@ -8,16 +8,9 @@ jobs:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
10
  - uses: actions/checkout@v3
11
- # Setup .npmrc file to publish to npm
12
- - uses: actions/setup-node@v3
13
- with:
14
- node-version: '16.x'
15
- registry-url: 'https://registry.npmjs.org'
16
- - run: npm ci
17
- - run: |
18
- git config --global user.email "contact@geode-solutions.com"
19
- git config --global user.name "Geode-solutions"
20
- - run: npm version patch
21
- - run: npm publish --access public
11
+ - name: Semantic Release
12
+ uses: cycjimmy/semantic-release-action@v3
13
+ id: semantic
22
14
  env:
23
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
15
+ GITHUB_TOKEN: ${{ github.token }}
16
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
package/.releaserc ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ branches: [
3
+ { name: "master" },
4
+ { name: "next", channel: "next", prerelease: "rc" }
5
+ ],
6
+ plugins: [
7
+ '@semantic-release/commit-analyzer',
8
+ '@semantic-release/release-notes-generator',
9
+ '@semantic-release/github',
10
+ '@semantic-release/npm'
11
+ ]
12
+ }
@@ -29,12 +29,12 @@ watch(selected_crs, (new_value) => {
29
29
  set_crs(crs)
30
30
  })
31
31
 
32
- function set_crs (crs_value) {
32
+ function set_crs(crs_value) {
33
33
  stepper_tree[variable_to_update] = crs_value
34
34
  stepper_tree[variable_to_increment]++
35
35
  }
36
36
 
37
- function get_selected_crs (crs_code) {
37
+ function get_selected_crs(crs_code) {
38
38
  for (let i = 0; i <= crs_list.value.length; i++) {
39
39
  if (crs_list.value[i]['code'] == crs_code) {
40
40
  return crs_list.value[i]
@@ -42,7 +42,7 @@ function get_selected_crs (crs_code) {
42
42
  }
43
43
  }
44
44
 
45
- async function get_crs_table () {
45
+ async function get_crs_table() {
46
46
  let params = new FormData()
47
47
  params.append('geode_object', geode_object)
48
48
  toggle_loading()
@@ -1,7 +1,10 @@
1
1
  <template>
2
- <v-col v-element-size="resize" style="overflow: hidden; position: relative; z-index: 1; height: 100%; width: 100%"
3
- ref="viewer" class="viewer" @click="get_x_y" @keydown.esc="app_store.toggle_picking_mode(false)">
4
- </v-col>
2
+ <div style="position: relative;">
3
+ <view-toolbar />
4
+ <v-col v-element-size="resize" style="overflow: hidden; position: relative; z-index: 0; height: 100%; width: 100%"
5
+ ref="viewer" @click="get_x_y" @keydown.esc="app_store.toggle_picking_mode(false)">
6
+ </v-col>
7
+ </div>
5
8
  </template>
6
9
 
7
10
  <script setup>
@@ -10,8 +13,10 @@ import { useElementSize } from '@vueuse/core'
10
13
 
11
14
  const viewer_store = use_viewer_store()
12
15
  const { picking_mode } = storeToRefs(viewer_store)
16
+ const websocket_store = use_websocket_store()
17
+ const { client, is_client_created } = storeToRefs(websocket_store)
13
18
 
14
- function get_x_y (event) {
19
+ function get_x_y(event) {
15
20
  if (picking_mode.value === true) {
16
21
  const { offsetX, offsetY } = event
17
22
  viewer_store.set_picked_point(offsetX, offsetY)
@@ -19,14 +24,13 @@ function get_x_y (event) {
19
24
  }
20
25
 
21
26
  const props = defineProps({
22
- viewId: { type: String, default: '-1' },
23
- client: { type: Object, required: true }
27
+ viewId: { type: String, default: '-1' }
24
28
  })
25
29
 
26
30
  const viewer = ref(null)
27
31
  const { width, height } = useElementSize(viewer)
28
32
 
29
- function resize () {
33
+ function resize() {
30
34
  view.getCanvasView().setSize(1, 1)
31
35
  view.resize();
32
36
  }
@@ -41,7 +45,7 @@ watch(width, value => {
41
45
  watch(height, value => {
42
46
  resize()
43
47
  })
44
- const { client, viewId } = toRefs(props)
48
+ const { viewId } = toRefs(props)
45
49
  const connected = ref(false)
46
50
 
47
51
  const view = vtkRemoteView.newInstance({ rpcWheelEvent: 'viewport.mouse.zoom.wheel' })
@@ -72,16 +76,13 @@ onMounted(async () => {
72
76
  }
73
77
  })
74
78
 
75
- function connect () {
79
+ function connect() {
80
+ if (!is_client_created.value) { return }
81
+ console.log('connecting', client.value)
76
82
  const session = client.value.getConnection().getSession()
77
83
  view.setSession(session)
78
84
  view.setViewId(viewId.value)
79
85
  connected.value = true
80
86
  view.render()
81
87
  }
82
- function handleClick (event) {
83
- onClick(event)
84
- }
85
-
86
-
87
88
  </script>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <v-row dense :class="[$style.floatToolbar, 'flex-column']">
3
+ <v-col>
4
+ <v-tooltip location="left">
5
+ Reset camera
6
+ <template #activator="{ props }">
7
+ <v-btn @click.stop=reset_camera icon="mdi-crop-free" density="comfortable" v-bind="props" />
8
+ </template>
9
+ </v-tooltip>
10
+ </v-col>
11
+ </v-row>
12
+ </template>
13
+
14
+ <script setup>
15
+ const viewer_store = use_viewer_store()
16
+ function reset_camera() {
17
+ viewer_store.reset_camera()
18
+ }
19
+ </script>
20
+
21
+ <style module>
22
+ .floatToolbar {
23
+ position: absolute;
24
+ z-index: 2;
25
+ right: 20px;
26
+ top: 20px;
27
+ background-color: rgba(0, 0, 0, 0.4);
28
+ border-radius: 16px;
29
+ }
30
+ </style>
package/package.json CHANGED
@@ -1,29 +1,24 @@
1
1
  {
2
2
  "name": "@geode/opengeodeweb-front",
3
- "private": false,
4
3
  "scripts": {
5
- "release:major": "npm version $(semver $npm_package_version -i major) && npm publish --tag latest",
6
- "release:minor": "npm version $(semver $npm_package_version -i minor) && npm publish --tag latest",
7
- "release:patch": "npm version $(semver $npm_package_version -i patch) && npm publish --tag latest",
8
- "release:beta": "npm version $(semver $npm_package_version -i prerelease --preid $(npm whoami) ) && npm publish --tag rc",
9
4
  "lint": "eslint --fix --ext .js,.vue --ignore-path .gitignore ."
10
5
  },
11
6
  "devDependencies": {
12
- "nuxt": "^3.6.5",
13
7
  "eslint": "^8.47.0",
14
8
  "eslint-plugin-import": "^2.28.1",
15
9
  "eslint-plugin-nuxt": "^4.0.0",
16
10
  "eslint-plugin-prettier": "^5.0.0",
17
11
  "eslint-plugin-prettier-vue": "^4.2.0",
18
12
  "eslint-plugin-vue": "^9.17.0",
19
- "eslint-plugin-vuetify": "^2.0.5"
13
+ "eslint-plugin-vuetify": "^2.0.5",
14
+ "nuxt": "^3.6.5"
20
15
  },
21
16
  "overrides": {
22
17
  "vue": "latest"
23
18
  },
24
19
  "description": "OpenSource Vue/Vuetify framework for web applications",
25
20
  "type": "module",
26
- "version": "0.0.23",
21
+ "version": "1.0.0-rc.2",
27
22
  "main": "./nuxt.config.js",
28
23
  "dependencies": {
29
24
  "@kitware/vtk.js": "^28.8.0",
@@ -44,14 +39,17 @@
44
39
  "type": "git",
45
40
  "url": "git+https://github.com/Geode-solutions/OpenGeodeWeb-Front.git"
46
41
  },
47
- "keywords": [
48
- "vue",
49
- "vuetify"
50
- ],
51
- "author": "@geode",
42
+ "author": {
43
+ "name": "Geode-solutions",
44
+ "email": "contact@geode-solutions.com",
45
+ "url": "https://geode-solutions.com/"
46
+ },
52
47
  "license": "MIT",
53
48
  "bugs": {
54
49
  "url": "https://github.com/Geode-solutions/OpenGeodeWeb-Front/issues"
55
50
  },
56
- "homepage": "https://github.com/Geode-solutions/OpenGeodeWeb-Front#readme"
51
+ "homepage": "https://github.com/Geode-solutions/OpenGeodeWeb-Front",
52
+ "publishConfig": {
53
+ "access": "public"
54
+ }
57
55
  }
package/protocols/vtk.js CHANGED
@@ -1,13 +1,20 @@
1
1
  /* eslint-disable arrow-body-style */
2
- export default function createMethods (session) {
2
+ function createMethods (session) {
3
3
  return {
4
4
  create_object_pipeline: (params) => session.call('create_object_pipeline', [params]),
5
5
  create_visualization: () => session.call('create_visualization', []),
6
6
  reset: () => session.call('reset'),
7
7
  reset_camera: () => session.call('reset_camera', []),
8
8
  toggle_object_visibility: (params) => session.call('toggle_object_visibility', [params]),
9
+ toggle_edge_visibility: (params) => session.call('toggle_edge_visibility', [params]),
10
+ toggle_point_visibility: (params) => session.call('toggle_point_visibility', [params]),
11
+ set_color: (params) => session.call('set_color', [params]),
12
+ set_vertex_attribute: (params) => session.call('set_vertex_attribute', [params]),
13
+ point_size: (params) => session.call('point_size', [params]),
9
14
  apply_textures: (params) => session.call('apply_textures', [params]),
10
15
  get_point_position: (params) => session.call('get_point_position', [params]),
11
16
  update_data: (params) => session.call('update_data', [params])
12
17
  };
13
18
  }
19
+
20
+ export default createMethods
package/stores/cloud.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { defineStore } from 'pinia'
2
- import { use_errors_store } from './errors'
3
2
 
4
3
  export const use_cloud_store = defineStore('cloud', {
5
4
  state: () => ({
@@ -52,7 +51,7 @@ export const use_cloud_store = defineStore('cloud', {
52
51
  const errors_store = use_errors_store()
53
52
  const config = useRuntimeConfig()
54
53
  const public_runtime_config = config.public
55
- const { data, error } = await useFetch(`${public_runtime_config.GEODE_PROTOCOL}://${public_runtime_config.API_URL}:${public_runtime_config.GEODE_PORT}/${public_runtime_config.SITE_BRANCH}/tools/createbackend`, { method: 'POST' })
54
+ const { data, error } = await useFetch(`${public_runtime_config.GEODE_PROTOCOL}://${public_runtime_config.API_URL}:${public_runtime_config.GEODE_PORT}${public_runtime_config.SITE_BRANCH}/tools/createbackend`, { method: 'POST' })
56
55
  if (data.value !== null) {
57
56
  this.ID = data.value.ID
58
57
  localStorage.setItem('ID', data.value.ID)
package/stores/viewer.js CHANGED
@@ -6,17 +6,17 @@ export const use_viewer_store = defineStore('viewer', {
6
6
  picked_point: { x: null, y: null }
7
7
  }),
8
8
  actions: {
9
- toggle_picking_mode (value) {
9
+ toggle_picking_mode(value) {
10
10
  this.picking_mode = value
11
11
  },
12
- async set_picked_point (x, y) {
12
+ async set_picked_point(x, y) {
13
13
  const response = await get_point_position({ x, y })
14
14
  const { x: world_x, y: world_y } = response
15
15
  this.picked_point.x = world_x
16
16
  this.picked_point.y = world_y
17
17
  this.picking_mode = false
18
18
  },
19
- async create_object_pipeline (params) {
19
+ async create_object_pipeline(params) {
20
20
  const websocket_store = use_websocket_store()
21
21
  if (websocket_store.client) {
22
22
  use_websocket_store().client
@@ -25,7 +25,16 @@ export const use_viewer_store = defineStore('viewer', {
25
25
  .catch(console.error);
26
26
  }
27
27
  },
28
- async toggle_object_visibility (params) {
28
+ async reset_camera() {
29
+ const websocket_store = use_websocket_store()
30
+ if (websocket_store.client) {
31
+ use_websocket_store().client
32
+ .getRemote()
33
+ .vtk.reset_camera()
34
+ .catch(console.error);
35
+ }
36
+ },
37
+ async toggle_object_visibility(params) {
29
38
  const websocket_store = use_websocket_store()
30
39
  if (websocket_store.client) {
31
40
  use_websocket_store().client
@@ -34,7 +43,52 @@ export const use_viewer_store = defineStore('viewer', {
34
43
  .catch(console.error);
35
44
  }
36
45
  },
37
- async apply_textures (params) {
46
+ async toggle_edge_visibility(params) {
47
+ const websocket_store = use_websocket_store()
48
+ if (websocket_store.client) {
49
+ use_websocket_store().client
50
+ .getRemote()
51
+ .vtk.toggle_edge_visibility(params)
52
+ .catch(console.error);
53
+ }
54
+ },
55
+ async toggle_point_visibility(params) {
56
+ const websocket_store = use_websocket_store()
57
+ if (websocket_store.client) {
58
+ use_websocket_store().client
59
+ .getRemote()
60
+ .vtk.toggle_point_visibility(params)
61
+ .catch(console.error);
62
+ }
63
+ },
64
+ async point_size(params) {
65
+ const websocket_store = use_websocket_store()
66
+ if (websocket_store.client) {
67
+ use_websocket_store().client
68
+ .getRemote()
69
+ .vtk.point_size(params)
70
+ .catch(console.error);
71
+ }
72
+ },
73
+ async set_color(params) {
74
+ const websocket_store = use_websocket_store()
75
+ if (websocket_store.client) {
76
+ use_websocket_store().client
77
+ .getRemote()
78
+ .vtk.set_color(params)
79
+ .catch(console.error);
80
+ }
81
+ },
82
+ async set_vertex_attribute(params) {
83
+ const websocket_store = use_websocket_store()
84
+ if (websocket_store.client) {
85
+ use_websocket_store().client
86
+ .getRemote()
87
+ .vtk.set_vertex_attribute(params)
88
+ .catch(console.error);
89
+ }
90
+ },
91
+ async apply_textures(params) {
38
92
  const websocket_store = use_websocket_store()
39
93
  if (websocket_store.client) {
40
94
  websocket_store.$patch({ busy: true })
@@ -42,11 +96,10 @@ export const use_viewer_store = defineStore('viewer', {
42
96
  .getRemote()
43
97
  .vtk.apply_textures(params)
44
98
  .catch(console.error);
45
-
46
99
  websocket_store.$patch({ busy: false })
47
100
  }
48
101
  },
49
- async get_point_position (params) {
102
+ async get_point_position(params) {
50
103
  const websocket_store = use_websocket_store()
51
104
  if (websocket_store.client) {
52
105
  websocket_store.$patch({ busy: true })
@@ -54,12 +107,11 @@ export const use_viewer_store = defineStore('viewer', {
54
107
  .getRemote()
55
108
  .vtk.get_point_position(params)
56
109
  .catch(console.error);
57
- console.log('response', response)
58
110
  websocket_store.$patch({ busy: false })
59
111
  return response
60
112
  }
61
113
  },
62
- async update_data (params) {
114
+ async update_data(params) {
63
115
  const websocket_store = use_websocket_store()
64
116
  if (websocket_store.client) {
65
117
  websocket_store.$patch({ busy: true })
@@ -67,12 +119,11 @@ export const use_viewer_store = defineStore('viewer', {
67
119
  .getRemote()
68
120
  .vtk.update_data(params)
69
121
  .catch(console.error);
70
- console.log('response', response)
71
122
  websocket_store.$patch({ busy: false })
72
123
  return response
73
124
  }
74
125
  },
75
- async reset () {
126
+ async reset() {
76
127
  const websocket_store = use_websocket_store()
77
128
  if (websocket_store.client) {
78
129
  websocket_store.$patch({ busy: true })
@@ -80,7 +131,6 @@ export const use_viewer_store = defineStore('viewer', {
80
131
  .getRemote()
81
132
  .vtk.reset()
82
133
  .catch(console.error);
83
- console.log('response', response)
84
134
  websocket_store.$patch({ busy: false })
85
135
  return response
86
136
  }