@geode/opengeodeweb-front 4.0.0 → 5.0.0

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.
@@ -24,18 +24,19 @@
24
24
  </template>
25
25
 
26
26
  <script setup>
27
- import { useToggle } from "@vueuse/core"
28
-
29
- const stepper_tree = inject("stepper_tree")
30
- const { geode_object } = stepper_tree
27
+ const emit = defineEmits([
28
+ "update_values",
29
+ "increment_step",
30
+ "decrement_step",
31
+ ])
31
32
 
32
33
  const props = defineProps({
33
- variable_to_update: { type: String, required: true },
34
- variable_to_increment: { type: String, required: true },
34
+ input_geode_object: { type: String, required: true },
35
+ key_to_update: { type: String, required: true },
35
36
  schema: { type: Object, required: true },
36
37
  })
37
38
 
38
- const { variable_to_update, variable_to_increment, schema } = props
39
+ const { input_geode_object, key_to_update, schema } = props
39
40
 
40
41
  const search = ref("")
41
42
  const data_table_loading = ref(false)
@@ -45,14 +46,13 @@
45
46
 
46
47
  watch(selected_crs, (new_value) => {
47
48
  const crs = get_selected_crs(new_value[0])
48
- set_crs(crs)
49
+ const keys_values_object = {
50
+ [key_to_update]: crs,
51
+ }
52
+ emit("update_values", keys_values_object)
53
+ emit("increment_step")
49
54
  })
50
55
 
51
- function set_crs(crs_value) {
52
- stepper_tree[variable_to_update] = crs_value
53
- stepper_tree[variable_to_increment]++
54
- }
55
-
56
56
  function get_selected_crs(crs_code) {
57
57
  for (let i = 0; i <= crs_list.value.length; i++) {
58
58
  if (crs_list.value[i]["code"] == crs_code) {
@@ -62,7 +62,7 @@
62
62
  }
63
63
 
64
64
  async function get_crs_table() {
65
- const params = { geode_object: geode_object }
65
+ const params = { input_geode_object }
66
66
  toggle_loading()
67
67
  await api_fetch(
68
68
  { schema, params },
@@ -50,9 +50,3 @@
50
50
  window.location.reload()
51
51
  }
52
52
  </script>
53
-
54
- <style scoped>
55
- .v-btn {
56
- text-transform: unset !important;
57
- }
58
- </style>
@@ -1,61 +1,88 @@
1
1
  <template>
2
- <v-row class="justify-left">
3
- <v-col
4
- v-for="file_extension in file_extensions"
5
- :key="file_extension"
6
- cols="2"
7
- >
8
- <v-card
9
- class="card ma-2"
10
- hover
11
- elevation="5"
12
- @click="set_output_extension(file_extension)"
13
- >
14
- <v-card-title align="center">
15
- {{ file_extension }}
16
- </v-card-title>
17
- </v-card>
18
- </v-col>
2
+ <FetchingData v-if="loading" />
3
+ <v-row
4
+ v-for="item in geode_objects_and_output_extensions"
5
+ :key="item.geode_object"
6
+ class="justify-left"
7
+ >
8
+ <v-card class="card ma-2 pa-2" width="100%">
9
+ <v-tooltip :text="`Export as a ${item.geode_object}`" location="bottom">
10
+ <template v-slot:activator="{ props }">
11
+ <v-card-title v-bind="props">
12
+ {{ item.geode_object }}
13
+ </v-card-title>
14
+ </template>
15
+ </v-tooltip>
16
+ <v-card-text>
17
+ <v-row>
18
+ <v-col
19
+ v-for="output_extension in item.output_extensions"
20
+ :key="output_extension"
21
+ cols="auto"
22
+ class="pa-0"
23
+ >
24
+ <v-card
25
+ class="card ma-2"
26
+ color="primary"
27
+ hover
28
+ @click="set_variables(item.geode_object, output_extension)"
29
+ >
30
+ <v-card-title align="center">
31
+ {{ output_extension }}
32
+ </v-card-title>
33
+ </v-card>
34
+ </v-col>
35
+ </v-row>
36
+ </v-card-text>
37
+ </v-card>
19
38
  </v-row>
20
39
  </template>
21
40
 
22
41
  <script setup>
23
- const stepper_tree = inject("stepper_tree")
24
- const { geode_object } = stepper_tree
42
+ const emit = defineEmits([
43
+ "update_values",
44
+ "increment_step",
45
+ "decrement_step",
46
+ ])
25
47
 
26
48
  const props = defineProps({
27
- variable_to_update: { type: String, required: true },
28
- variable_to_increment: { type: String, required: true },
49
+ input_geode_object: { type: String, required: true },
29
50
  schema: { type: Object, required: true },
30
51
  })
31
- const { variable_to_update, variable_to_increment, schema } = props
52
+ const { input_geode_object, schema } = props
32
53
 
33
- const file_extensions = ref([])
54
+ const geode_objects_and_output_extensions = ref([])
55
+ const loading = ref(false)
56
+
57
+ const toggle_loading = useToggle(loading)
34
58
 
35
59
  async function get_output_file_extensions() {
36
- const params = { geode_object: geode_object }
60
+ toggle_loading()
61
+ const params = { input_geode_object }
37
62
  await api_fetch(
38
63
  { schema, params },
39
64
  {
40
65
  response_function: (response) => {
41
- file_extensions.value = response._data.output_file_extensions
66
+ geode_objects_and_output_extensions.value =
67
+ response._data.geode_objects_and_output_extensions
42
68
  },
43
69
  },
44
70
  )
71
+ toggle_loading()
45
72
  }
46
73
 
47
- function set_output_extension(extension) {
48
- stepper_tree[variable_to_update] = extension
49
- stepper_tree[variable_to_increment]++
74
+ function set_variables(geode_object, output_extension) {
75
+ if (geode_object != "" && output_extension != "") {
76
+ const keys_values_object = {
77
+ output_geode_object: geode_object,
78
+ output_extension,
79
+ }
80
+ emit("update_values", keys_values_object)
81
+ emit("increment_step")
82
+ }
50
83
  }
51
84
 
52
85
  onMounted(() => {
53
86
  get_output_file_extensions()
54
87
  })
55
88
  </script>
56
-
57
- <style scoped>
58
- .card {
59
- border-radius: 15px;
60
- }
61
- </style>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <Transition name="slide-fade" class="pa-0">
3
+ <v-row align="center" class="pa-0">
4
+ <v-col cols="auto" class="pa-0">
5
+ <v-progress-circular
6
+ :size="22"
7
+ :width="3"
8
+ color="primary"
9
+ indeterminate
10
+ />
11
+ </v-col>
12
+ <v-col cols="auto">
13
+ <p>Fetching data...</p>
14
+ </v-col>
15
+ </v-row>
16
+ </Transition>
17
+ </template>
@@ -1,58 +1,56 @@
1
1
  <template>
2
- <v-file-input
3
- v-model="files"
4
- :multiple="multiple"
5
- :label="label"
6
- :accept="accept"
7
- :rules="[(value) => !!value || 'The file is mandatory']"
8
- color="primary"
9
- chips
10
- counter
11
- show-size
12
- @click:clear="stepper_tree.files = []"
2
+ <FetchingData v-if="loading" />
3
+ <FileUploader
4
+ v-else
5
+ v-bind="{ multiple, accept, route }"
6
+ @files_uploaded="files_uploaded_event"
13
7
  />
14
8
  </template>
15
9
 
16
10
  <script setup>
17
- const stepper_tree = inject("stepper_tree")
11
+ const emit = defineEmits([
12
+ "update_values",
13
+ "increment_step",
14
+ "decrement_step",
15
+ ])
18
16
 
19
17
  const props = defineProps({
20
18
  multiple: { type: Boolean, required: true },
21
- label: { type: String, required: true },
22
- variable_to_update: { type: String, required: true },
23
- variable_to_increment: { type: String, required: true },
19
+ key: { type: String, required: false, default: "" },
20
+ route: { type: String, required: false, default: "" },
24
21
  schema: { type: Object, required: true },
25
22
  })
26
- const { multiple, label, variable_to_update, variable_to_increment, schema } =
27
- props
23
+
24
+ const { multiple, key, route, schema } = props
28
25
 
29
26
  const accept = ref("")
30
- const files = ref([])
27
+ const loading = ref(false)
31
28
 
32
- watch(files, (value) => {
33
- stepper_tree[variable_to_update] = value
34
- stepper_tree[variable_to_increment]++
35
- })
29
+ const toggle_loading = useToggle(loading)
36
30
 
37
- function fill_extensions(response) {
38
- const extensions = response._data.extensions
39
- .map((extension) => "." + extension)
40
- .join(",")
41
- accept.value = extensions
31
+ function files_uploaded_event(value) {
32
+ if (value.length) {
33
+ emit("update_values", { files: value })
34
+ emit("increment_step")
35
+ }
42
36
  }
43
37
 
44
38
  async function get_allowed_files() {
39
+ toggle_loading()
40
+ const params = { key }
45
41
  await api_fetch(
46
- { schema },
42
+ { schema, params },
47
43
  {
48
44
  response_function: (response) => {
49
- fill_extensions(response)
45
+ accept.value = response._data.extensions
46
+ .map((extension) => "." + extension)
47
+ .join(",")
50
48
  },
51
49
  },
52
50
  )
51
+ toggle_loading()
53
52
  }
54
-
55
- onMounted(async () => {
56
- await get_allowed_files()
53
+ onMounted(() => {
54
+ get_allowed_files()
57
55
  })
58
56
  </script>
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <v-row>
3
+ <v-col class="pa-0">
4
+ <v-file-input
5
+ v-model="files"
6
+ :multiple="multiple"
7
+ :label="label"
8
+ :accept="accept"
9
+ :rules="[(value) => !!value || 'The file is mandatory']"
10
+ color="primary"
11
+ chips
12
+ counter
13
+ show-size
14
+ @click:clear="clear()"
15
+ />
16
+ </v-col>
17
+ </v-row>
18
+ <v-row>
19
+ <v-col cols="auto">
20
+ <v-btn
21
+ @click="upload_files()"
22
+ color="primary"
23
+ :disabled="!files.length && !files_uploaded"
24
+ :loading="loading"
25
+ class="pa-2"
26
+ >
27
+ Upload file(s)</v-btn
28
+ >
29
+ </v-col>
30
+ </v-row>
31
+ </template>
32
+
33
+ <script setup>
34
+ const emit = defineEmits(["files_uploaded", "decrement_step"])
35
+
36
+ const props = defineProps({
37
+ multiple: { type: Boolean, required: true },
38
+ accept: { type: String, required: true },
39
+ route: { type: String, required: true },
40
+ })
41
+ const { multiple, accept, route } = toRefs(props)
42
+
43
+ const label = multiple ? "Please select file(s)" : "Please select a file"
44
+ const files = ref([])
45
+ const loading = ref(false)
46
+ const files_uploaded = ref(false)
47
+
48
+ const toggle_loading = useToggle(loading)
49
+
50
+ async function upload_files() {
51
+ toggle_loading()
52
+ await upload_file(
53
+ { route, files: multiple ? files.value : [files.value[0]] },
54
+ {
55
+ response_function: () => {
56
+ files_uploaded.value = true
57
+ emit("files_uploaded", files.value)
58
+ },
59
+ },
60
+ )
61
+ toggle_loading()
62
+ }
63
+
64
+ function clear() {
65
+ files.value = []
66
+ emit("files_uploaded", files.value)
67
+ }
68
+
69
+ watch(files, () => {
70
+ files_uploaded.value = false
71
+ })
72
+ </script>
@@ -6,14 +6,7 @@
6
6
  <v-col>
7
7
  <v-row class="justify-center">
8
8
  <v-col v-for="(card, i) in cards_list" :key="i" cols="11" md="5">
9
- <v-card
10
- class="card"
11
- hover
12
- elevation="5"
13
- :href="card.href"
14
- rounded
15
- target="_blank"
16
- >
9
+ <v-card class="card" hover :href="card.href" rounded target="_blank">
17
10
  <v-card-title
18
11
  primary-title
19
12
  class="justify-center text-h6"
@@ -10,9 +10,7 @@
10
10
  <h4 class="pb-3">Please complete the recaptcha to launch the app</h4>
11
11
  <Recaptcha :site_key="site_key" />
12
12
  </v-col>
13
- <v-col
14
- v-else-if="!cloud_store.is_running && cloud_store.is_connexion_launched"
15
- >
13
+ <v-col v-else-if="!is_running && is_connexion_launched">
16
14
  <Loading />
17
15
  </v-col>
18
16
  </v-row>
@@ -22,7 +20,8 @@
22
20
  <script setup>
23
21
  const websocket_store = use_websocket_store()
24
22
  const cloud_store = use_cloud_store()
25
- const { is_captcha_validated } = storeToRefs(cloud_store)
23
+ const { is_captcha_validated, is_connexion_launched, is_running } =
24
+ storeToRefs(cloud_store)
26
25
 
27
26
  const site_key = useRuntimeConfig().public.RECAPTCHA_SITE_KEY
28
27
 
@@ -32,8 +31,4 @@
32
31
  await websocket_store.ws_connect()
33
32
  }
34
33
  })
35
-
36
- onMounted(() => {
37
- console.log("onMounted", useRuntimeConfig())
38
- })
39
34
  </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row justify="center">
3
3
  <v-col cols="12" class="ma-3">
4
- <v-card class="card" loading elevation="5">
4
+ <v-card loading>
5
5
  <v-card-title class="text-center">
6
6
  Cloud instance is starting...
7
7
  </v-card-title>
@@ -0,0 +1,115 @@
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, route }"
30
+ @files_uploaded="files_uploaded"
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="skip_step()" color="warning"> Skip step </v-btn>
40
+ </v-col>
41
+ </v-row>
42
+ </v-container>
43
+ </template>
44
+
45
+ <script setup>
46
+ const emit = defineEmits([
47
+ "update_values",
48
+ "increment_step",
49
+ "decrement_step",
50
+ ])
51
+
52
+ const props = defineProps({
53
+ multiple: { type: Boolean, required: true },
54
+ input_geode_object: { type: String, required: true },
55
+ files: { type: Array, required: true },
56
+ route: { type: String, required: true },
57
+ schema: { type: Object, required: true },
58
+ })
59
+
60
+ const { multiple, input_geode_object, files, route, schema } = props
61
+
62
+ const accept = ref("")
63
+ const loading = ref(false)
64
+ const has_missing_files = ref(false)
65
+ const mandatory_files = ref([])
66
+ const additional_files = ref([])
67
+ const toggle_loading = useToggle(loading)
68
+
69
+ function files_uploaded(value) {
70
+ emit("update_values", { additional_files: value })
71
+ missing_files()
72
+ }
73
+
74
+ async function missing_files() {
75
+ has_missing_files.value = false
76
+ mandatory_files.value = []
77
+ additional_files.value = []
78
+ toggle_loading()
79
+ for (const file of files) {
80
+ const params = { input_geode_object, filename: file.name }
81
+ await api_fetch(
82
+ { schema, params },
83
+ {
84
+ response_function: (response) => {
85
+ has_missing_files.value = response._data.has_missing_files
86
+ mandatory_files.value = [].concat(
87
+ mandatory_files.value,
88
+ response._data.mandatory_files,
89
+ )
90
+ additional_files.value = [].concat(
91
+ additional_files.value,
92
+ response._data.additional_files,
93
+ )
94
+ const files_list = [].concat(
95
+ mandatory_files.value,
96
+ additional_files.value,
97
+ )
98
+ accept.value = files_list
99
+ .map((filename) => "." + filename.split(".").pop())
100
+ .join(",")
101
+ if (!has_missing_files.value) {
102
+ console.log("MISSING FILESSELECTOR increment_step")
103
+ emit("increment_step")
104
+ }
105
+ },
106
+ },
107
+ )
108
+ }
109
+ toggle_loading()
110
+ }
111
+
112
+ onMounted(() => {
113
+ missing_files()
114
+ })
115
+ </script>
@@ -1,7 +1,8 @@
1
1
  <template>
2
- <v-row v-if="allowed_objects.length" class="justify-left">
2
+ <FetchingData v-if="loading" />
3
+ <v-row v-else-if="allowed_objects.length" class="justify-left">
3
4
  <v-col v-for="object in allowed_objects" :key="object" cols="2" md="2">
4
- <v-card v-ripple class="card ma-2" hover elevation="5" rounded>
5
+ <v-card v-ripple class="card ma-2" hover rounded>
5
6
  <v-img
6
7
  :src="geode_objects[object].image"
7
8
  cover
@@ -14,7 +15,7 @@
14
15
  </v-col>
15
16
  </v-row>
16
17
  <v-row v-else class="pa-5">
17
- <v-card class="card" variant="tonal" elevation="5" rounded>
18
+ <v-card class="card" variant="tonal" rounded>
18
19
  <v-card-text>
19
20
  This file format isn't supported! Please check the
20
21
  <a
@@ -32,21 +33,24 @@
32
33
  <script setup>
33
34
  import geode_objects from "@/assets/geode_objects"
34
35
 
35
- const stepper_tree = inject("stepper_tree")
36
- const { files } = stepper_tree
36
+ const emit = defineEmits(["update_values", "increment_step"])
37
37
 
38
38
  const props = defineProps({
39
- variable_to_update: { type: String, required: true },
40
- variable_to_increment: { type: String, required: true },
39
+ files: { type: Array, required: true },
40
+ key: { type: String, required: false, default: null },
41
41
  schema: { type: Object, required: true },
42
42
  })
43
43
 
44
- const { variable_to_update, variable_to_increment, schema } = props
44
+ const { files, key, schema } = props
45
45
 
46
+ const loading = ref(false)
46
47
  const allowed_objects = ref([])
47
48
 
49
+ const toggle_loading = useToggle(loading)
50
+
48
51
  async function get_allowed_objects() {
49
- const params = { filename: files[0].name }
52
+ const params = { filename: files[0].name, key }
53
+ toggle_loading()
50
54
  await api_fetch(
51
55
  { schema, params },
52
56
  {
@@ -55,20 +59,17 @@
55
59
  },
56
60
  },
57
61
  )
62
+ toggle_loading()
58
63
  }
59
64
 
60
65
  function set_geode_object(geode_object) {
61
- stepper_tree[variable_to_update] = geode_object
62
- stepper_tree[variable_to_increment]++
66
+ if (geode_object != "") {
67
+ emit("update_values", { input_geode_object: geode_object })
68
+ emit("increment_step")
69
+ }
63
70
  }
64
71
 
65
72
  onMounted(() => {
66
73
  get_allowed_objects()
67
74
  })
68
75
  </script>
69
-
70
- <style scoped>
71
- .card {
72
- border-radius: 15px;
73
- }
74
- </style>
@@ -22,8 +22,6 @@
22
22
  })
23
23
  const { site_key } = props
24
24
 
25
- console.log("site_key", site_key)
26
-
27
25
  onMounted(() => {
28
26
  if (process.client) {
29
27
  const config = useRuntimeConfig()
@@ -94,7 +94,6 @@
94
94
  if (!is_running.value) {
95
95
  return
96
96
  }
97
- console.log("connecting", client.value)
98
97
  const session = client.value.getConnection().getSession()
99
98
  view.setSession(session)
100
99
  view.setViewId(viewId.value)
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-card class="pa-5 card" elevation="5">
2
+ <v-card class="pa-5">
3
3
  <v-row align="center" @click="set_current_step(step_index)">
4
4
  <v-col cols="auto">
5
5
  <v-icon
@@ -41,10 +41,10 @@
41
41
  <component
42
42
  :is="steps[step_index].component.component_name"
43
43
  v-bind="steps[step_index].component.component_options"
44
+ @update_values="update_values_event"
45
+ @increment_step="increment_step()"
46
+ @decrement_step="decrement_step()"
44
47
  />
45
- <v-btn v-if="skippable()" @click="skipStep()" color="primary"
46
- >Skip step</v-btn
47
- >
48
48
  </v-col>
49
49
  </Transition>
50
50
  </v-card>
@@ -58,28 +58,28 @@
58
58
  const stepper_tree = inject("stepper_tree")
59
59
  const { current_step_index, steps } = toRefs(stepper_tree)
60
60
 
61
- function skippable() {
62
- if (stepper_tree.steps[step_index].component.skippable !== undefined) {
63
- return stepper_tree.steps[step_index].component.skippable
64
- } else {
65
- return false
61
+ function set_current_step(step_index) {
62
+ stepper_tree.current_step_index = step_index
63
+ }
64
+
65
+ function update_values_event(keys_values_object) {
66
+ console.log("update_values_event", keys_values_object)
67
+ for (const [key, value] of Object.entries(keys_values_object)) {
68
+ console.log(key, value)
69
+ stepper_tree[key] = value
66
70
  }
67
71
  }
68
72
 
69
- function skipStep() {
73
+ function increment_step() {
70
74
  stepper_tree.current_step_index++
71
75
  }
72
76
 
73
- function set_current_step(step_index) {
74
- stepper_tree.current_step_index = step_index
77
+ function decrement_step() {
78
+ stepper_tree.current_step_index--
75
79
  }
76
80
  </script>
77
81
 
78
- <style>
79
- .card {
80
- border-radius: 15px;
81
- }
82
-
82
+ <style scoped>
83
83
  .slide-fade-enter-active {
84
84
  transition: all 0.5s ease-out;
85
85
  }
@@ -4,13 +4,13 @@
4
4
  <v-col>
5
5
  <Header :tool_name="tool_name" :cards_list="cards_list" />
6
6
  </v-col>
7
- <v-col v-if="!cloud_store.is_running">
7
+ <v-col v-if="!is_running">
8
8
  <Launcher />
9
9
  </v-col>
10
- <v-col v-if="cloud_store.is_running">
10
+ <v-col v-if="is_running">
11
11
  <Stepper />
12
12
  </v-col>
13
- <v-col v-if="cloud_store.is_running">
13
+ <v-col v-if="is_running">
14
14
  <PackagesVersions :schema="versions_schema" />
15
15
  </v-col>
16
16
  </v-row>
@@ -19,6 +19,7 @@
19
19
 
20
20
  <script setup>
21
21
  const cloud_store = use_cloud_store()
22
+ const { is_running } = storeToRefs(cloud_store)
22
23
 
23
24
  const props = defineProps({
24
25
  versions_schema: { type: Object, required: true },
package/nuxt.config.js CHANGED
@@ -3,5 +3,5 @@ export default defineNuxtConfig({
3
3
  dirs: ["stores"],
4
4
  },
5
5
 
6
- modules: [["@pinia/nuxt", { autoImports: ["defineStore"] }]],
6
+ modules: [["@pinia/nuxt", { autoImports: ["defineStore"] }], "@vueuse/nuxt"],
7
7
  })
package/package.json CHANGED
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "description": "OpenSource Vue/Vuetify framework for web applications",
21
21
  "type": "module",
22
- "version": "4.0.0",
22
+ "version": "5.0.0",
23
23
  "main": "./nuxt.config.js",
24
24
  "dependencies": {
25
25
  "@kitware/vtk.js": "^29.1.1",
package/stores/errors.js CHANGED
@@ -6,7 +6,6 @@ export const use_errors_store = defineStore("errors", {
6
6
  actions: {
7
7
  add_error(error_object) {
8
8
  this.errors.push(error_object)
9
- console.log(this.errors)
10
9
  },
11
10
  delete_error(error_index) {
12
11
  this.errors.splice(error_index, 1)