@raclettejs/workbench 0.1.33-canary.2 → 0.1.33

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.
Files changed (29) hide show
  1. package/.raclette/backend/raclette.config.js +3 -3
  2. package/.raclette/backend/yarn.lock +4 -11
  3. package/.raclette/frontend/raclette.config.js +6 -4
  4. package/.raclette/frontend/yarn.lock +451 -489
  5. package/.raclette/virtual/backend/raclette.config.js +3 -3
  6. package/.raclette/virtual/backend/yarn.lock +4 -11
  7. package/.raclette/virtual/frontend/raclette.config.js +6 -4
  8. package/.raclette/virtual/frontend/yarn.lock +451 -489
  9. package/CHANGELOG.md +19 -3
  10. package/i18n/de-DE.json +15 -0
  11. package/i18n/en-EU.json +15 -0
  12. package/i18n/sk-SK.json +15 -0
  13. package/package.json +5 -4
  14. package/plugins/pacifico__compositions/frontend/widgets/CompositionListWidget.vue +39 -21
  15. package/plugins/pacifico__interactionLinks/frontend/widgets/InteractionLinkListWidget.vue +39 -21
  16. package/plugins/pacifico__plugins/frontend/index.ts +3 -3
  17. package/plugins/pacifico__plugins/frontend/widgets/PluginListWidget.vue +11 -12
  18. package/plugins/pacifico__tags/frontend/widgets/TagListWidget.vue +39 -21
  19. package/plugins/pacifico__users/frontend/widgets/UserListWidget.vue +79 -57
  20. package/services/frontend/src/app/components/dynamicForm/DynamicForm.vue +139 -51
  21. package/services/frontend/src/app/components/dynamicForm/DynamicInput.vue +95 -5
  22. package/services/frontend/src/app/components/dynamicForm/ObjectListInput.vue +78 -41
  23. package/services/frontend/src/app/components/dynamicForm/TextDivider.vue +46 -6
  24. package/services/frontend/src/app/components/dynamicForm/typedInputs/ListInput.vue +118 -27
  25. package/services/frontend/src/app/components/dynamicForm/typedInputs/RecordInput.vue +131 -21
  26. package/services/frontend/src/app/components/dynamicForm/typedInputs/TagsInput.vue +1 -0
  27. package/services/frontend/src/app/components/dynamicForm/typedInputs/TriggerInput.vue +4 -4
  28. package/services/frontend/src/app/composables/useWorkbenchTableActions.ts +29 -0
  29. package/services/frontend/src/orchestrator/assets/styles/themes/light.ts +4 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.33
4
+
5
+ ### Patch Changes
6
+
7
+ - Exporter Functionality
8
+ - 9bc0e96: devOps: canary release
9
+ - 9bc0e96: fix: fixed wrong import in workbench plugin
10
+ - 9bc0e96: devOps: test release nr2
11
+ - 9bc0e96: devOps: canary release pre exporter
12
+ - Updated dependencies
13
+ - Updated dependencies [9bc0e96]
14
+ - Updated dependencies [9bc0e96]
15
+ - Updated dependencies [9bc0e96]
16
+ - Updated dependencies [9bc0e96]
17
+ - @raclettejs/core@0.1.33
18
+
3
19
  All notable changes to this project will be documented in this file.
4
20
 
5
21
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
@@ -26,7 +42,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
42
  ### Updated
27
43
 
28
44
  - core release
29
-
45
+ - restyled the dynamicForm
46
+ - fixed not deletable interactionLink Trigger
30
47
 
31
48
  ## [0.1.25] - 2026-04-17 <a href="https://gitlab.com/raclettejs/core-dev/-/compare/v0.1.23...v0.1.25" target="_blank" rel="noopener"><b>Overview of all changes</b></a>
32
49
 
@@ -52,12 +69,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
52
69
 
53
70
  - Dependency Versions
54
71
 
55
-
56
72
  ## [0.1.23] - 2026-03-11 <a href="https://gitlab.com/raclettejs/core-dev/-/compare/v0.1.21...v0.1.23" target="_blank" rel="noopener"><b>Overview of all changes</b></a>
57
73
 
58
74
  ### Fixed
59
- - workbench workspace dependency protocol
60
75
 
76
+ - workbench workspace dependency protocol
61
77
 
62
78
  ## [0.1.21] - 2026-03-05 <a href="https://gitlab.com/raclettejs/core-dev/-/compare/v0.1.20...v0.1.21" target="_blank" rel="noopener"><b>Overview of all changes</b></a>
63
79
 
package/i18n/de-DE.json CHANGED
@@ -245,6 +245,21 @@
245
245
  "label": "Benutzer",
246
246
  "placeholder": "Benutzer wählen"
247
247
  },
248
+ "list": {
249
+ "rowLabel": "Listenpunkt {n}",
250
+ "addNewLabel": "Neuen Listenpunkt hinzufügen"
251
+ },
252
+ "objectList": {
253
+ "addEntry": "Eintrag hinzufügen",
254
+ "removeEntry": "Eintrag entfernen",
255
+ "unnamedEntry": "Eintrag {n}"
256
+ },
257
+ "record": {
258
+ "keyLabel": "Schlüssel, Zeile {n}",
259
+ "valueLabel": "Wert, Zeile {n}",
260
+ "removeRow": "Schlüssel/Wert-Zeile entfernen",
261
+ "addRow": "Schlüssel/Wert-Zeile hinzufügen"
262
+ },
248
263
  "validation": {
249
264
  "required": "{field} ist erforderlich",
250
265
  "minLength": "{field} muss mindestens {minLength} Zeichen lang sein",
package/i18n/en-EU.json CHANGED
@@ -245,6 +245,21 @@
245
245
  "label": "User",
246
246
  "placeholder": "Select User"
247
247
  },
248
+ "list": {
249
+ "rowLabel": "List item {n}",
250
+ "addNewLabel": "Add new list item"
251
+ },
252
+ "objectList": {
253
+ "addEntry": "Add entry",
254
+ "removeEntry": "Remove entry",
255
+ "unnamedEntry": "Entry {n}"
256
+ },
257
+ "record": {
258
+ "keyLabel": "Key, row {n}",
259
+ "valueLabel": "Value, row {n}",
260
+ "removeRow": "Remove key/value row",
261
+ "addRow": "Add key/value row"
262
+ },
248
263
  "validation": {
249
264
  "required": "{field} is required",
250
265
  "minLength": "{field} must be at least {minLength} characters long",
package/i18n/sk-SK.json CHANGED
@@ -240,6 +240,21 @@
240
240
  "label": "Používateľ",
241
241
  "placeholder": "Vyberte používateľa"
242
242
  },
243
+ "list": {
244
+ "rowLabel": "Položka zoznamu {n}",
245
+ "addNewLabel": "Pridať novú položku zoznamu"
246
+ },
247
+ "objectList": {
248
+ "addEntry": "Pridať záznam",
249
+ "removeEntry": "Odstrániť záznam",
250
+ "unnamedEntry": "Záznam {n}"
251
+ },
252
+ "record": {
253
+ "keyLabel": "Kľúč, riadok {n}",
254
+ "valueLabel": "Hodnota, riadok {n}",
255
+ "removeRow": "Odstrániť riadok kľúča a hodnoty",
256
+ "addRow": "Pridať riadok kľúča a hodnoty"
257
+ },
243
258
  "validation": {
244
259
  "required": "{field} je povinné",
245
260
  "minLength": "{field} musí mať aspoň {minLength} znakov",
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@raclettejs/workbench",
3
- "version": "0.1.33-canary.2",
3
+ "version": "0.1.33",
4
4
  "license": "MIT",
5
5
  "description": "racletteJS Workbench - used to configure your application, for dev and prod",
6
6
  "repository": "https://gitlab.com/raclettejs/workbench",
7
7
  "author": "Pacifico Digital Explorations GmbH",
8
8
  "type": "module",
9
9
  "scripts": {
10
+ ":install": "yarn install",
10
11
  "dev": "raclette dev",
11
12
  "down": "raclette down",
12
13
  "build": "raclette build",
@@ -33,7 +34,7 @@
33
34
  ".": "./index.ts"
34
35
  },
35
36
  "dependencies": {
36
- "@raclettejs/core": "^0.1.33-canary.2",
37
+ "@raclettejs/core": "^0.1.33",
37
38
  "@vueuse/integrations": "14.2.1",
38
39
  "fuse.js": "7.1.0",
39
40
  "three": "0.183.2",
@@ -43,7 +44,7 @@
43
44
  "@emnapi/core": "1.9.2",
44
45
  "@emnapi/runtime": "1.9.2",
45
46
  "@eslint/js": "9.35.0",
46
- "@raclettejs/types": "^0.1.33-canary.2",
47
+ "@raclettejs/types": "^0.1.33",
47
48
  "@sinclair/typebox": "0.34.48",
48
49
  "@types/ramda": "0.31.1",
49
50
  "@vueuse/core": "14.2.1",
@@ -66,7 +67,7 @@
66
67
  "uuid": "13.0.0",
67
68
  "vite": "8.0.1",
68
69
  "vue": "3.5.30",
69
- "vue-eslint-parser": "9.4.3",
70
+ "vue-eslint-parser": "10.3.0",
70
71
  "vue-i18n": "11.3.0",
71
72
  "vuetify": "4.0.5"
72
73
  }
@@ -1,37 +1,40 @@
1
1
  <template>
2
- <div>
2
+ <div class="tw:p-4">
3
3
  <BaseDataTable
4
4
  :items="parsedCompositions"
5
5
  :exportable-items="exportableCompositions"
6
6
  :loading="compositionsLoading || tagsLoading"
7
7
  :headers="headers"
8
- create-interaction-link-id="compositionCreateInteractionLink"
9
- edit-interaction-link-id="compositionEditInteractionLink"
8
+ :row-click-handler="handleRowClick"
10
9
  :data-name="$t('workbench.compositionList.dataName')"
11
- :data-article="$t('workbench.compositionList.dataArticle')"
12
- @delete="deleteComposition"
10
+ :show-filters="true"
13
11
  :items-deleted="showDeleted"
14
12
  :on-file-loaded="handleFileUpload"
15
13
  >
16
- <template #toolbar-leading>
17
- <v-tooltip
18
- :text="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
14
+ <template #toolbar-end>
15
+ <v-btn
16
+ prepend-icon="mdi-plus"
17
+ variant="flat"
18
+ color="success"
19
+ :text="$t('core.baseDataTable.createDataButton', { dataName: $t('workbench.compositionList.dataName') })"
20
+ @click="goToCreate('compositionCreateInteractionLink')"
21
+ />
22
+ </template>
23
+ <template #toolbar-actions-menu>
24
+ <v-list-item
25
+ :title="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
26
+ prepend-icon="mdi-delete-outline"
19
27
  >
20
- <template #activator="{ props: activatorProps }">
21
- <v-btn-toggle
22
- density="compact"
23
- v-bind="activatorProps"
28
+ <template #append>
29
+ <v-switch
24
30
  v-model="showDeleted"
25
- mandatory
26
- :color="showDeleted ? 'error' : 'success'"
27
- >
28
- <v-btn :value="true">
29
- <v-icon>mdi-table-eye-off</v-icon>
30
- </v-btn>
31
- <v-btn :value="false"><v-icon>mdi-table-eye</v-icon></v-btn>
32
- </v-btn-toggle>
31
+ color="error"
32
+ density="compact"
33
+ hide-details
34
+ inset
35
+ />
33
36
  </template>
34
- </v-tooltip>
37
+ </v-list-item>
35
38
  </template>
36
39
  <!-- Custom status column -->
37
40
  <template #[`item.status`]="{ item }">
@@ -55,6 +58,15 @@
55
58
  icon="mdi-delete-restore"
56
59
  />
57
60
  </template>
61
+ <template #row-actions="{ item }">
62
+ <v-btn
63
+ icon="mdi-delete"
64
+ size="small"
65
+ variant="text"
66
+ color="error"
67
+ @click.stop.prevent="deleteComposition(item)"
68
+ />
69
+ </template>
58
70
  </BaseDataTable>
59
71
  <!-- Import Selection Dialog -->
60
72
  <ImportSelectionDialog
@@ -93,10 +105,12 @@ import {
93
105
  parseAndNormalizeWorkbenchImportJson,
94
106
  resolveWorkbenchImportSelection,
95
107
  } from "@app/lib/jsonTools"
108
+ import { useWorkbenchTableActions } from "@app/composables/useWorkbenchTableActions"
96
109
  import ImportSelectionDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSelectionDialog.vue"
97
110
  import ImportSummaryDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSummaryDialog.vue"
98
111
 
99
112
  const { t } = useI18n()
113
+ const { goToCreate, goToEditById } = useWorkbenchTableActions()
100
114
  const showDeleted = ref(false)
101
115
  const showImportDialog = ref(false)
102
116
  const showImportSummary = ref(false)
@@ -273,6 +287,10 @@ const deleteComposition = async (composition: Composition) => {
273
287
  const restore = (_id: string) => {
274
288
  executeRestore({ _id })
275
289
  }
290
+
291
+ const handleRowClick = (item: Composition) =>
292
+ goToEditById("compositionEditInteractionLink", item._id)
293
+
276
294
  $socket.on("compositionCreated", () =>
277
295
  execute({ isDeleted: showDeleted.value }),
278
296
  )
@@ -1,37 +1,40 @@
1
1
  <template>
2
- <div>
2
+ <div class="tw:p-4">
3
3
  <BaseDataTable
4
4
  :items="parsedInteractionLinks"
5
5
  :exportable-items="exportableInteractionLinks"
6
6
  :loading="interactionLinksLoading || tagsLoading"
7
7
  :headers="headers"
8
- create-interaction-link-id="interactionLinkCreateInteractionLink"
9
- edit-interaction-link-id="interactionLinkEditInteractionLink"
8
+ :row-click-handler="handleRowClick"
10
9
  :data-name="$t('workbench.interactionLinkList.dataName')"
11
- :data-article="$t('workbench.interactionLinkList.dataArticle')"
12
- @delete="deleteInteractionLink"
10
+ :show-filters="true"
13
11
  :items-deleted="showDeleted"
14
12
  :on-file-loaded="handleFileUpload"
15
13
  >
16
- <template #toolbar-leading>
17
- <v-tooltip
18
- :text="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
14
+ <template #toolbar-end>
15
+ <v-btn
16
+ prepend-icon="mdi-plus"
17
+ variant="flat"
18
+ color="success"
19
+ :text="$t('core.baseDataTable.createDataButton', { dataName: $t('workbench.interactionLinkList.dataName') })"
20
+ @click="goToCreate('interactionLinkCreateInteractionLink')"
21
+ />
22
+ </template>
23
+ <template #toolbar-actions-menu>
24
+ <v-list-item
25
+ :title="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
26
+ prepend-icon="mdi-delete-outline"
19
27
  >
20
- <template #activator="{ props: activatorProps }">
21
- <v-btn-toggle
22
- density="compact"
23
- v-bind="activatorProps"
28
+ <template #append>
29
+ <v-switch
24
30
  v-model="showDeleted"
25
- mandatory
26
- :color="showDeleted ? 'error' : 'success'"
27
- >
28
- <v-btn :value="true">
29
- <v-icon>mdi-table-eye-off</v-icon>
30
- </v-btn>
31
- <v-btn :value="false"><v-icon>mdi-table-eye</v-icon></v-btn>
32
- </v-btn-toggle>
31
+ color="error"
32
+ density="compact"
33
+ hide-details
34
+ inset
35
+ />
33
36
  </template>
34
- </v-tooltip>
37
+ </v-list-item>
35
38
  </template>
36
39
  <!-- Custom triggers column -->
37
40
  <template #[`item.triggers`]="{ item }">
@@ -54,6 +57,15 @@
54
57
  icon="mdi-delete-restore"
55
58
  />
56
59
  </template>
60
+ <template #row-actions="{ item }">
61
+ <v-btn
62
+ icon="mdi-delete"
63
+ size="small"
64
+ variant="text"
65
+ color="error"
66
+ @click.stop.prevent="deleteInteractionLink(item)"
67
+ />
68
+ </template>
57
69
  </BaseDataTable>
58
70
  <!-- Import Selection Dialog -->
59
71
  <ImportSelectionDialog
@@ -94,6 +106,7 @@ import {
94
106
  } from "@app/lib/jsonTools"
95
107
  import ImportSelectionDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSelectionDialog.vue"
96
108
  import ImportSummaryDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSummaryDialog.vue"
109
+ import { useWorkbenchTableActions } from "@app/composables/useWorkbenchTableActions"
97
110
  const showDeleted = ref(false)
98
111
  const showImportDialog = ref(false)
99
112
  const showImportSummary = ref(false)
@@ -103,6 +116,7 @@ const importedItems = ref<any[]>([])
103
116
  const pendingImportById = ref<Record<string, any>>({})
104
117
 
105
118
  const { t } = useI18n()
119
+ const { goToCreate, goToEditById } = useWorkbenchTableActions()
106
120
 
107
121
  const headers = computed<{ title: string; key: keyof InteractionLink }[]>(
108
122
  () => [
@@ -211,6 +225,10 @@ const exportableInteractionLinks = computed(() =>
211
225
  const restore = async (_id: string) => {
212
226
  executeRestore({ _id })
213
227
  }
228
+
229
+ const handleRowClick = (item: InteractionLink) =>
230
+ goToEditById("interactionLinkEditInteractionLink", item._id)
231
+
214
232
  const deleteInteractionLink = async (interactionLink: InteractionLink) => {
215
233
  if (showDeleted.value) {
216
234
  await executeHardDelete({ _id: interactionLink._id })
@@ -4,7 +4,7 @@ export default defineRaclettePluginFrontend({
4
4
  i18n: {
5
5
  de: {
6
6
  pluginList: {
7
- dataName: "Plugin",
7
+ dataName: "Plugins",
8
8
  dataArticle: "das",
9
9
  tableHeaders: {
10
10
  name: "Name",
@@ -16,7 +16,7 @@ export default defineRaclettePluginFrontend({
16
16
  },
17
17
  en: {
18
18
  pluginList: {
19
- dataName: "Plugin",
19
+ dataName: "Plugins",
20
20
  dataArticle: "the",
21
21
  tableHeaders: {
22
22
  name: "Name",
@@ -28,7 +28,7 @@ export default defineRaclettePluginFrontend({
28
28
  },
29
29
  sk: {
30
30
  pluginList: {
31
- dataName: "Plugin",
31
+ dataName: "Plugins",
32
32
  dataArticle: "",
33
33
  tableHeaders: {
34
34
  name: "Názov",
@@ -1,16 +1,15 @@
1
1
  <template>
2
- <BaseDataTable
3
- :items="pluginMetadataFiles"
4
- :headers
5
- :data-name="$i18n.t('pluginList.dataName')"
6
- :data-article="$i18n.t('pluginList.dataArticle')"
7
- :show-create-button="false"
8
- :show-delete-action="false"
9
- :show-actions-column="false"
10
- :row-click-handler="onRowClick"
11
- :show-export="false"
12
- >
13
- </BaseDataTable>
2
+ <div class="tw:p-4">
3
+ <BaseDataTable
4
+ :items="pluginMetadataFiles"
5
+ :headers
6
+ :data-name="$i18n.t('pluginList.dataName')"
7
+ :show-filters="true"
8
+ :show-actions-column="false"
9
+ :row-click-handler="onRowClick"
10
+ :show-export="false"
11
+ />
12
+ </div>
14
13
  </template>
15
14
 
16
15
  <script setup lang="ts">
@@ -1,37 +1,40 @@
1
1
  <template>
2
- <div>
2
+ <div class="tw:p-4">
3
3
  <BaseDataTable
4
4
  :items="parsedTags"
5
5
  :exportable-items="exportableTags"
6
6
  :loading="tagsLoading"
7
7
  :headers="headers"
8
- create-interaction-link-id="tagCreateInteractionLink"
9
- edit-interaction-link-id="tagEditInteractionLink"
8
+ :row-click-handler="handleRowClick"
10
9
  :data-name="$t('workbench.tagList.dataName')"
11
- :data-article="$t('workbench.tagList.dataArticle')"
12
- @delete="deleteTag"
10
+ :show-filters="true"
13
11
  :items-deleted="showDeleted"
14
12
  :on-file-loaded="handleFileUpload"
15
13
  >
16
- <template #toolbar-leading>
17
- <v-tooltip
18
- :text="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
14
+ <template #toolbar-end>
15
+ <v-btn
16
+ prepend-icon="mdi-plus"
17
+ variant="flat"
18
+ color="success"
19
+ :text="$t('core.baseDataTable.createDataButton', { dataName: $t('workbench.tagList.dataName') })"
20
+ @click="goToCreate('tagCreateInteractionLink')"
21
+ />
22
+ </template>
23
+ <template #toolbar-actions-menu>
24
+ <v-list-item
25
+ :title="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
26
+ prepend-icon="mdi-delete-outline"
19
27
  >
20
- <template #activator="{ props: activatorProps }">
21
- <v-btn-toggle
22
- density="compact"
23
- v-bind="activatorProps"
28
+ <template #append>
29
+ <v-switch
24
30
  v-model="showDeleted"
25
- mandatory
26
- :color="showDeleted ? 'error' : 'success'"
27
- >
28
- <v-btn :value="true">
29
- <v-icon>mdi-table-eye-off</v-icon>
30
- </v-btn>
31
- <v-btn :value="false"><v-icon>mdi-table-eye</v-icon></v-btn>
32
- </v-btn-toggle>
31
+ color="error"
32
+ density="compact"
33
+ hide-details
34
+ inset
35
+ />
33
36
  </template>
34
- </v-tooltip>
37
+ </v-list-item>
35
38
  </template>
36
39
  <template #prepend-row-actions="{ item }">
37
40
  <v-icon
@@ -47,6 +50,15 @@
47
50
  icon="mdi-delete-restore"
48
51
  />
49
52
  </template>
53
+ <template #row-actions="{ item }">
54
+ <v-btn
55
+ icon="mdi-delete"
56
+ size="small"
57
+ variant="text"
58
+ color="error"
59
+ @click.stop.prevent="deleteTag(item)"
60
+ />
61
+ </template>
50
62
  </BaseDataTable>
51
63
  <!-- Import Selection Dialog -->
52
64
  <ImportSelectionDialog
@@ -87,8 +99,10 @@ import {
87
99
  } from "@app/lib/jsonTools"
88
100
  import ImportSelectionDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSelectionDialog.vue"
89
101
  import ImportSummaryDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSummaryDialog.vue"
102
+ import { useWorkbenchTableActions } from "@app/composables/useWorkbenchTableActions"
90
103
  const showDeleted = ref(false)
91
104
  const { t } = useI18n()
105
+ const { goToCreate, goToEditById } = useWorkbenchTableActions()
92
106
  const showImportDialog = ref(false)
93
107
  const showImportSummary = ref(false)
94
108
 
@@ -214,6 +228,10 @@ const finalizeImport = async () => {
214
228
  const restore = async (_id: string) => {
215
229
  executeRestore({ _id })
216
230
  }
231
+
232
+ const handleRowClick = (item: Tag) =>
233
+ goToEditById("tagEditInteractionLink", item._id)
234
+
217
235
  $socket.on("tagCreated", () => execute({ isDeleted: showDeleted.value }))
218
236
  watch(
219
237
  showDeleted,