@vcmap/ui 6.0.0-rc.7 → 6.0.0-rc.8

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 (103) hide show
  1. package/dist/assets/cesium.js +1 -1
  2. package/dist/assets/{core-3fd82bc2.js → core-6f2522e5.js} +3551 -3506
  3. package/dist/assets/core.js +1 -1
  4. package/dist/assets/ol.js +1 -1
  5. package/dist/assets/ui-bf3d1f84.css +1 -0
  6. package/dist/assets/{ui-c6eb55a5.js → ui-bf3d1f84.js} +3465 -3423
  7. package/dist/assets/ui.js +1 -1
  8. package/dist/assets/vue.js +1 -1
  9. package/dist/assets/{vuetify-c3b6c9b3.js → vuetify-99bf601c.js} +1 -1
  10. package/dist/assets/vuetify.js +1 -1
  11. package/package.json +2 -2
  12. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +3 -4
  13. package/src/actions/StyleSelector.vue +1 -1
  14. package/src/application/VcsApp.vue +29 -1
  15. package/src/application/VcsApp.vue.d.ts +5 -1
  16. package/src/application/VcsAppWrapper.vue +1 -1
  17. package/src/application/VcsAttributions.vue +1 -1
  18. package/src/application/VcsAttributionsFooter.vue +3 -1
  19. package/src/application/VcsContainer.vue.d.ts +5 -1
  20. package/src/application/VcsMainMap.vue +1 -1
  21. package/src/application/VcsMap.vue +1 -0
  22. package/src/application/VcsNavbar.vue +1 -1
  23. package/src/application/VcsPositionDisplay.vue +3 -3
  24. package/src/application/VcsSettings.vue +1 -1
  25. package/src/application/VcsSplashScreen.vue +1 -0
  26. package/src/application/VcsTextPage.vue +1 -1
  27. package/src/application/VcsTextPageFooter.vue +3 -1
  28. package/src/components/buttons/VcsActionButtonList.vue +5 -1
  29. package/src/components/buttons/VcsButton.vue +3 -3
  30. package/src/components/buttons/VcsFormButton.vue +2 -2
  31. package/src/components/buttons/VcsToolButton.vue +2 -2
  32. package/src/components/extent/VcsExtent.vue +1 -1
  33. package/src/components/extent/VcsExtentEditor.vue +1 -0
  34. package/src/components/flight/VcsFlightAnchorsComponent.vue +1 -0
  35. package/src/components/flight/VcsFlightComponent.vue +1 -1
  36. package/src/components/flight/VcsFlightEditor.vue +1 -0
  37. package/src/components/flight/VcsFlightPlayer.vue +1 -1
  38. package/src/components/form-inputs-controls/VcsTextField.vue +1 -1
  39. package/src/components/form-inputs-controls/VcsWizard.vue +1 -1
  40. package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -0
  41. package/src/components/form-output/VcsMarkdown.vue +1 -1
  42. package/src/components/import/VcsFileDrop.vue +1 -1
  43. package/src/components/import/VcsImportComponent.vue +1 -1
  44. package/src/components/lists/VcsListItemComponent.vue +5 -1
  45. package/src/components/lists/VcsTreeviewSearchbar.vue +1 -1
  46. package/src/components/lists/VcsTreeviewTitle.vue +1 -1
  47. package/src/components/notification/VcsBadge.vue +2 -2
  48. package/src/components/notification/VcsHelp.vue +1 -1
  49. package/src/components/plugins/AbstractConfigEditor.vue +1 -1
  50. package/src/components/section/VcsExpansionPanel.vue +5 -1
  51. package/src/components/style/MenuWrapper.vue +1 -1
  52. package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
  53. package/src/components/style/VcsFillMenu.vue +1 -0
  54. package/src/components/style/VcsFillSelector.vue +1 -0
  55. package/src/components/style/VcsImageMenu.vue +1 -0
  56. package/src/components/style/VcsImageSelector.vue +1 -1
  57. package/src/components/style/VcsStrokeMenu.vue +1 -0
  58. package/src/components/style/VcsStrokeSelector.vue +1 -1
  59. package/src/components/style/VcsTextMenu.vue +1 -0
  60. package/src/components/style/VcsTextSelector.vue +1 -1
  61. package/src/components/style/VcsVectorStyleComponent.vue +1 -1
  62. package/src/components/tables/VcsDataTable.vue +1 -1
  63. package/src/components/tables/VcsTable.vue +1 -0
  64. package/src/components/tables/VcsTableCell.vue +1 -1
  65. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +1 -1
  66. package/src/components/vector-properties/VcsFeatureTransforms.vue +1 -1
  67. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -0
  68. package/src/components/viewpoint/VcsViewpointComponent.vue +1 -1
  69. package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
  70. package/src/contentTree/LayerTree.vue +1 -1
  71. package/src/featureInfo/AddressBalloonComponent.vue +1 -1
  72. package/src/featureInfo/BalloonComponent.vue +1 -1
  73. package/src/featureInfo/IframeComponent.vue +6 -1
  74. package/src/featureInfo/MarkdownBalloonComponent.vue +1 -1
  75. package/src/legend/StyleLegendItem.vue +1 -1
  76. package/src/legend/VcsLegend.vue +1 -1
  77. package/src/manager/collectionManager/CollectionComponent.vue +1 -0
  78. package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
  79. package/src/manager/panel/PanelManagerComponent.vue +2 -2
  80. package/src/manager/toolbox/GroupToolboxComponent.vue +2 -2
  81. package/src/manager/toolbox/SelectToolboxComponent.vue +2 -2
  82. package/src/manager/toolbox/ToolboxManagerComponent.vue +12 -1
  83. package/src/manager/window/WindowComponent.vue +1 -1
  84. package/src/manager/window/WindowManager.vue +4 -1
  85. package/src/navigation/MapNavigation.vue +4 -1
  86. package/src/navigation/ObliqueRotation.vue +2 -2
  87. package/src/navigation/OrientationToolsButton.vue +1 -1
  88. package/src/navigation/TiltSlider.vue +1 -0
  89. package/src/navigation/VcsCompass.vue +1 -1
  90. package/src/navigation/VcsZoomButton.vue +1 -1
  91. package/src/notifier/NotifierComponent.vue +1 -1
  92. package/src/search/ResultItem.vue +1 -1
  93. package/src/search/ResultsComponent.vue +1 -1
  94. package/src/search/SearchComponent.vue +3 -1
  95. package/src/uiConfig.d.ts +13 -4
  96. package/src/uiConfig.js +3 -2
  97. package/src/vcsUiApp.d.ts +15 -16
  98. package/src/vcsUiApp.js +13 -11
  99. package/dist/assets/ui-c6eb55a5.css +0 -1
  100. /package/dist/assets/{cesium-2afc3568.js → cesium-2ec6aae0.js} +0 -0
  101. /package/dist/assets/{ol-edf7bfb3.js → ol-b0e134cb.js} +0 -0
  102. /package/dist/assets/{vue-aefad438.js → vue-43880c5a.js} +0 -0
  103. /package/dist/assets/{vuetify-c3b6c9b3.css → vuetify-99bf601c.css} +0 -0
package/dist/assets/ui.js CHANGED
@@ -1 +1 @@
1
- export * from "./ui-c6eb55a5.js";
1
+ export * from "./ui-bf3d1f84.js";
@@ -1 +1 @@
1
- export * from "./vue-aefad438.js";
1
+ export * from "./vue-43880c5a.js";
@@ -10,7 +10,7 @@ function loadCss(href) {
10
10
  elem.onerror = reject;
11
11
  document.head.appendChild(elem);
12
12
  });
13
- } await loadCss('./assets/vuetify-c3b6c9b3.css');import { watch as Z, onScopeDispose as tt, effectScope as Ul, shallowRef as K, Fragment as le, reactive as gt, computed as y, watchEffect as Le, toRefs as Wt, capitalize as On, isVNode as Lc, Comment as Rc, unref as it, warn as Ha, getCurrentInstance as Nc, ref as W, provide as Be, inject as be, defineComponent as Hc, camelize as Ir, h as jt, toRaw as _e, createVNode as r, mergeProps as N, onBeforeUnmount as nt, readonly as Kl, onDeactivated as _r, onActivated as zc, onMounted as Ge, nextTick as we, TransitionGroup as ql, Transition as Ht, isRef as _n, toRef as O, onBeforeMount as Tr, withDirectives as $e, resolveDirective as ct, vShow as xt, onUpdated as Wc, Text as jc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Uc, cloneVNode as Kc, createTextVNode as Pt, onUnmounted as qc, onBeforeUpdate as Xc, withModifiers as Pl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-aefad438.js";
13
+ } await loadCss('./assets/vuetify-99bf601c.css');import { watch as Z, onScopeDispose as tt, effectScope as Ul, shallowRef as K, Fragment as le, reactive as gt, computed as y, watchEffect as Le, toRefs as Wt, capitalize as On, isVNode as Lc, Comment as Rc, unref as it, warn as Ha, getCurrentInstance as Nc, ref as W, provide as Be, inject as be, defineComponent as Hc, camelize as Ir, h as jt, toRaw as _e, createVNode as r, mergeProps as N, onBeforeUnmount as nt, readonly as Kl, onDeactivated as _r, onActivated as zc, onMounted as Ge, nextTick as we, TransitionGroup as ql, Transition as Ht, isRef as _n, toRef as O, onBeforeMount as Tr, withDirectives as $e, resolveDirective as ct, vShow as xt, onUpdated as Wc, Text as jc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Uc, cloneVNode as Kc, createTextVNode as Pt, onUnmounted as qc, onBeforeUpdate as Xc, withModifiers as Pl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-43880c5a.js";
14
14
  function ot(e, n) {
15
15
  let t;
16
16
  function a() {
@@ -1 +1 @@
1
- export * from "./vuetify-c3b6c9b3.js";
1
+ export * from "./vuetify-99bf601c.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "6.0.0-rc.7",
3
+ "version": "6.0.0-rc.8",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "peerDependencies": {
59
59
  "@vcmap-cesium/engine": "^11.0.2",
60
- "@vcmap/core": "^6.0.0-rc.7",
60
+ "@vcmap/core": "^6.0.0-rc.8",
61
61
  "ol": "^10.0.0",
62
62
  "vue": "~3.4.38",
63
63
  "vuetify": "^3.7.1"
@@ -39,10 +39,9 @@
39
39
  parentId: name,
40
40
  slot: WindowSlot.DYNAMIC_CHILD,
41
41
  props: {
42
- getConfig: () =>
43
- Promise.resolve(
44
- vcsApp.plugins.getSerializedByKey(plugin.name),
45
- ),
42
+ getConfig: () => {
43
+ return vcsApp.plugins.getSerializedByKey(plugin.name);
44
+ },
46
45
  setConfig(config) {
47
46
  if (config) {
48
47
  vcsApp.notifier.add({
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet v-if="items" class="pt-1 pb-0 px-0">
2
+ <v-sheet v-if="items" class="pt-1 pb-0 px-0 style-selector">
3
3
  <v-list>
4
4
  <v-list-item
5
5
  v-for="(item, index) in items"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="fill-height pa-0" absolute fluid>
2
+ <v-container class="fill-height pa-0 vcs-app" absolute fluid>
3
3
  <VcsSplashScreen
4
4
  v-if="splashScreen"
5
5
  :options="splashScreen"
@@ -248,6 +248,33 @@
248
248
  }
249
249
  };
250
250
 
251
+ let currentEntryLength = entries.length;
252
+ const watchEntries = watch(entries, (newValue) => {
253
+ if (
254
+ app.uiConfig.config.openLegendOnAdd &&
255
+ newValue.length > currentEntryLength &&
256
+ !app.windowManager.has('legend')
257
+ ) {
258
+ app.windowManager.add(
259
+ {
260
+ id: 'legend',
261
+ component: VcsLegend,
262
+ state: {
263
+ headerTitle: 'legend.title',
264
+ headerIcon: '$vcsLegend',
265
+ infoUrl: app.getHelpUrlCallback(
266
+ '/components/contentspace.html#id_legend',
267
+ ),
268
+ },
269
+ slot: WindowSlot.DYNAMIC_RIGHT,
270
+ props: { entries },
271
+ },
272
+ vcsAppSymbol,
273
+ );
274
+ }
275
+ currentEntryLength = newValue.length;
276
+ });
277
+
251
278
  /**
252
279
  * Handles legend button and window.
253
280
  * Adds a button, if legend definitions are available or removes legend otherwise.
@@ -284,6 +311,7 @@
284
311
  ];
285
312
 
286
313
  return () => {
314
+ watchEntries();
287
315
  app.navbarManager.remove('legend');
288
316
  app.windowManager.remove('legend');
289
317
  destroy();
@@ -321,9 +321,13 @@ declare const _default: import("vue").DefineComponent<{
321
321
  } | undefined;
322
322
  } | undefined;
323
323
  /**
324
- * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
324
+ * - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
325
325
  */
326
326
  readonly vuetifyTheme?: any;
327
+ /**
328
+ * - open the legend window, if new layer has a config
329
+ */
330
+ readonly openLegendOnAdd?: boolean | undefined;
327
331
  };
328
332
  showFooter: import("vue").ComputedRef<boolean>;
329
333
  footerHeight: import("vue").ComputedRef<number>;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-app>
2
+ <v-app class="vcs-app-wrapper">
3
3
  <VcsApp :app-id="appId" />
4
4
  </v-app>
5
5
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-attributions">
3
3
  <v-list v-if="entries.length" class="px-2">
4
4
  <v-list-item
5
5
  v-for="{ key, title, attributions } in entries"
@@ -1,5 +1,7 @@
1
1
  <template>
2
- <div class="d-flex align-center justify-end overflow-hidden">
2
+ <div
3
+ class="d-flex align-center justify-end overflow-hidden vcs-attributions-footer"
4
+ >
3
5
  <div class="attribution-container">
4
6
  <span
5
7
  v-for="attribution in mergedAttributions"
@@ -241,9 +241,13 @@ declare const _default: import("vue").DefineComponent<{
241
241
  } | undefined;
242
242
  } | undefined;
243
243
  /**
244
- * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
244
+ * - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
245
245
  */
246
246
  readonly vuetifyTheme?: any;
247
+ /**
248
+ * - open the legend window, if new layer has a config
249
+ */
250
+ readonly openLegendOnAdd?: boolean | undefined;
247
251
  };
248
252
  xs: import("vue").Ref<boolean>;
249
253
  mobileLogo: import("vue").ComputedRef<any>;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div class="vcs-main-map">
3
3
  <VcsMap :map-id="mapId" />
4
4
  <MapNavigation v-if="showMapNavigation" />
5
5
  </div>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div
3
+ class="vcs-map"
3
4
  :id="mapId"
4
5
  @click.right.stop="
5
6
  (e) => {
@@ -3,7 +3,7 @@
3
3
  absolute
4
4
  :density="density"
5
5
  elevation="0"
6
- class="px-4"
6
+ class="px-4 vcs-navbar"
7
7
  :height="toolbarHeight"
8
8
  :style="xs ? { bottom: 0 } : { top: 0 }"
9
9
  >
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <span
3
- class="d-flex gc-2 px-1 h-100 align-center"
4
- :class="{ 'vcs-position-display': positionDisplayAction.active }"
3
+ class="d-flex gc-2 px-1 h-100 align-center vcs-position-display"
4
+ :class="{ active: positionDisplayAction.active }"
5
5
  >
6
6
  <VcsButton
7
7
  :tooltip="positionDisplayAction.title"
@@ -52,7 +52,7 @@
52
52
  </template>
53
53
 
54
54
  <style lang="scss" scoped>
55
- .vcs-position-display {
55
+ .active {
56
56
  background-color: rgb(var(--v-theme-primary));
57
57
  span {
58
58
  color: rgb(var(--v-theme-on-primary));
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="px-1 py-0">
2
+ <v-container class="px-1 py-0 vcs-settings">
3
3
  <v-row no-gutters>
4
4
  <v-col>
5
5
  <VcsLabel html-for="settingsLanguageSelect">
@@ -7,6 +7,7 @@
7
7
  :max-width="position.maxWidth"
8
8
  :max-height="position.maxHeight"
9
9
  persistent
10
+ class="vcs-splash-screen"
10
11
  >
11
12
  <v-card>
12
13
  <v-card-text>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container>
2
+ <v-container class="vcs-text-page">
3
3
  <VcsMarkdown :content="$st(content)"></VcsMarkdown>
4
4
  </v-container>
5
5
  </template>
@@ -1,5 +1,7 @@
1
1
  <template v-if="textPage.title">
2
- <span class="d-inline-block text-truncate mr-1 flex-shrink-0">
2
+ <span
3
+ class="d-inline-block text-truncate mr-1 flex-shrink-0 vcs-text-page-footer"
4
+ >
3
5
  <span v-if="textPage.url" class="text-page-footer">
4
6
  <a :href="$st(textPage.url)" target="_blank"
5
7
  >{{ $st(textPage.title) }} <span></span>
@@ -1,5 +1,9 @@
1
1
  <template>
2
- <div v-if="actions.length > 0" :class="classes" class="gc-2">
2
+ <div
3
+ v-if="actions.length > 0"
4
+ :class="classes"
5
+ class="gc-2 vcs-action-button-list"
6
+ >
3
7
  <template v-if="buttons.length > 0">
4
8
  <component
5
9
  :is="button"
@@ -5,7 +5,7 @@
5
5
  variant="text"
6
6
  :color="appliedColor"
7
7
  :disabled="disabled"
8
- class="vcsButton"
8
+ class="vcs-button"
9
9
  elevation="0"
10
10
  density="compact"
11
11
  size="small"
@@ -24,7 +24,7 @@
24
24
  <VcsBadge
25
25
  v-if="hasUpdate"
26
26
  :color="'bg-warning'"
27
- class="position-absolute"
27
+ class="position-absolute badge"
28
28
  />
29
29
  <slot name="default" v-bind="scope ?? {}" />
30
30
  </template>
@@ -41,7 +41,7 @@
41
41
  }
42
42
  .v-btn {
43
43
  padding: 0px;
44
- &.vcsButton {
44
+ &.vcs-button {
45
45
  &:hover {
46
46
  color: rgb(var(--v-theme-primary-lighten-1)) !important;
47
47
  }
@@ -5,7 +5,7 @@
5
5
  color="primary"
6
6
  :min-width="itemHeight * 1.5"
7
7
  :height="itemHeight"
8
- class="vcsFormButton"
8
+ class="vcs-form-button"
9
9
  :slim="false"
10
10
  v-bind="{ ...$attrs }"
11
11
  >
@@ -22,7 +22,7 @@
22
22
  <VcsBadge
23
23
  v-if="hasUpdate"
24
24
  :color="'bg-warning'"
25
- class="position-absolute"
25
+ class="position-absolute badge"
26
26
  />
27
27
  <slot name="default" v-bind="scope ?? {}" />
28
28
  </template>
@@ -4,7 +4,7 @@
4
4
  :variant="buttonVariant"
5
5
  :height="itemHeight + 2"
6
6
  :min-width="itemHeight + itemHeight / 3"
7
- class="vcsToolButton"
7
+ class="vcs-tool-button"
8
8
  :disabled="disabled"
9
9
  :class="{
10
10
  'vcs-background': background,
@@ -26,7 +26,7 @@
26
26
  <VcsBadge
27
27
  v-if="hasUpdate"
28
28
  :color="'bg-warning'"
29
- class="position-absolute"
29
+ class="position-absolute badge"
30
30
  />
31
31
  <slot name="default" v-bind="scope ?? {}" />
32
32
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="py-0 px-1">
2
+ <v-container class="py-0 px-1 vcs-extent">
3
3
  <v-row no-gutters v-if="modelValue.projection">
4
4
  <v-col :cols="firstCols">
5
5
  <VcsLabel :html-for="`${cid}-projection`">
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsFormSection
3
+ class="vcs-extent-editor"
3
4
  :heading="heading"
4
5
  :header-actions="actions"
5
6
  :action-button-list-overflow-count="2"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsFormSection
3
+ class="vcs-flight-anchors-component"
3
4
  :heading="title"
4
5
  :expandable="expandable"
5
6
  start-open
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-flight-component">
3
3
  <VcsFormSection
4
4
  :heading="heading"
5
5
  :expandable="expandable"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <AbstractConfigEditor
3
+ class="vcs-flight-editor"
3
4
  @submit="apply"
4
5
  @cancel="cancel"
5
6
  @reset="reset"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="py-0 px-1">
2
+ <v-container class="py-0 px-1 vcs-flight-player">
3
3
  <VcsLabel>{{ $t('flight.player') }}</VcsLabel>
4
4
  <VcsSlider
5
5
  v-if="clock"
@@ -146,7 +146,7 @@
146
146
  ) {
147
147
  const v = parseFloat(localValue.value);
148
148
  if (Number.isFinite(v)) {
149
- return v.toFixed(props.decimals);
149
+ return parseFloat(v.toFixed(props.decimals));
150
150
  }
151
151
  }
152
152
  return localValue.value ?? '';
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-stepper-vertical v-bind="$attrs">
2
+ <v-stepper-vertical v-bind="$attrs" class="vcs-wizard">
3
3
  <template #icon>
4
4
  <slot name="icon"><v-icon>mdi-circle</v-icon></slot>
5
5
  </template>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <v-stepper-vertical-item
3
+ class="vcs-wizard-step"
3
4
  :value="step"
4
5
  :editable="isActiveStep || editable"
5
6
  :complete="complete"
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="marked"
3
+ class="marked vcs-markdown"
4
4
  :class="{
5
5
  'pa-2': !paddingProvided,
6
6
  }"
@@ -4,7 +4,7 @@
4
4
  @dragover.prevent="isDragging = true"
5
5
  @dragleave.prevent="isDragging = false"
6
6
  @drop.prevent="dropped"
7
- class="d-flex justify-center drop-field"
7
+ class="d-flex justify-center drop-field vcs-file-drop"
8
8
  :class="{ dragging: isDragging }"
9
9
  :dragging="isDragging"
10
10
  flat
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-card flat class="pa-2">
2
+ <v-card flat class="pa-2 vcs-import-component">
3
3
  <vcs-file-drop
4
4
  :height="dropElementHeight"
5
5
  :multiple="multiple"
@@ -89,7 +89,11 @@
89
89
  </script>
90
90
 
91
91
  <template>
92
- <v-list-item :disabled="item.disabled" v-bind="$attrs">
92
+ <v-list-item
93
+ :disabled="item.disabled"
94
+ v-bind="$attrs"
95
+ class="vcs-list-item-component"
96
+ >
93
97
  <template #prepend>
94
98
  <v-icon v-if="item.icon">
95
99
  {{ item.icon }}
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="pa-2 bg-base-lighten-3 position-relative d-flex flex-row justify-space-between align-center rounded-0"
3
+ class="pa-2 bg-base-lighten-3 position-relative d-flex flex-row justify-space-between align-center rounded-0 vcs-treeview-searchbar"
4
4
  >
5
5
  <slot name="prepend">
6
6
  <v-icon class="search-icon my-0 ml-1" :size="iconSize - 4">
@@ -26,7 +26,7 @@
26
26
  </style>
27
27
  <template>
28
28
  <div
29
- class="title-parent pr-2"
29
+ class="title-parent pr-2 vcs-treeview-title"
30
30
  ref="titleParent"
31
31
  @click.stop="item.clicked && !item.disabled && item.clicked($event)"
32
32
  >
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <span class="badge rounded-circle h-3 w-3" :class="[color]" />
2
+ <span class="vcs-badge rounded-circle h-3 w-3" :class="[color]" />
3
3
  </template>
4
4
 
5
5
  <style lang="scss" scoped>
6
- .badge {
6
+ .vcs-badge {
7
7
  border: 1px solid rgb(var(--v-theme-surface)) !important;
8
8
  }
9
9
  .h-3 {
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="$slots.default || text"
4
- class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4"
4
+ class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4 vcs-help"
5
5
  >
6
6
  <v-container class="py-1 px-2 vcs-help">
7
7
  <slot>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="pa-0">
2
+ <v-container class="pa-0 abstract-config-editor">
3
3
  <v-form v-model="isValid" @submit.prevent="submit">
4
4
  <slot />
5
5
  <div class="d-flex gc-2 px-2 pt-2 pb-1">
@@ -43,7 +43,11 @@
43
43
  const iconSize = useIconSize();
44
44
  </script>
45
45
  <template>
46
- <v-expansion-panel :disabled="disabled" v-bind="$attrs">
46
+ <v-expansion-panel
47
+ :disabled="disabled"
48
+ v-bind="$attrs"
49
+ class="vcs-expansion-panel"
50
+ >
47
51
  <v-expansion-panel-title static class="px-2">
48
52
  <template #default="{ expanded }">
49
53
  <v-list-item-title ref="panelHeader">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="menu-wrapper">
3
3
  <div class="d-flex align-center py-1">
4
4
  <VcsCheckbox
5
5
  :model-value="!!modelValue"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsVectorStyleComponent
3
+ class="vcs-feature-style-component"
3
4
  :model-value="styleOptions"
4
5
  @update:fill="updateFill"
5
6
  @update:stroke="updateStroke"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-fill-menu"
3
4
  :value-fallback="{ color: [255, 255, 255, 1] }"
4
5
  name="components.style.fill"
5
6
  v-bind="{ ...$attrs, ...$props }"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <v-color-picker
3
+ class="vcs-fill-selector"
3
4
  :model-value="rgbaObject"
4
5
  @update:model-value="updateColor"
5
6
  mode="rgba"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-image-menu"
3
4
  :value-fallback="{
4
5
  radius: 10,
5
6
  fill: { color: [255, 255, 255, 1] },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-image-selector">
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col class="d-flex justify-center py-1">
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-stroke-menu"
3
4
  :value-fallback="{ color: [0, 0, 0, 1], width: 1 }"
4
5
  name="components.style.stroke"
5
6
  v-bind="{ ...$attrs, ...$props }"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-stroke-selector">
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-text-menu"
3
4
  :value-fallback="fallbackStyle"
4
5
  name="components.style.text"
5
6
  v-bind="{ ...$attrs, ...$props }"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-text-selector">
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-vector-style-component">
3
3
  <component
4
4
  v-for="key in styleComponents"
5
5
  :key="key"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div class="vcs-data-table">
3
3
  <VcsTreeviewSearchbar
4
4
  v-if="showSearchbar"
5
5
  :placeholder="$st(searchbarPlaceholder)"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsDataTable
3
+ class="vcs-table"
3
4
  v-bind="$attrs"
4
5
  :items="items"
5
6
  :headers="[keyHeader, valueHeader]"
@@ -37,7 +37,7 @@
37
37
  </script>
38
38
 
39
39
  <template>
40
- <td ref="td" :style="{ 'max-width': width }">
40
+ <td ref="td" :style="{ 'max-width': width }" class="vcs-table-cell">
41
41
  <component
42
42
  :is="tag"
43
43
  :class="{
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-feature-editing-window">
3
3
  <VcsFormSection
4
4
  v-if="session?.type === SessionType.SELECT"
5
5
  heading="components.editor.modifyHeader"