@vcmap/ui 6.0.1 → 6.0.3

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/dist/assets/ui.js CHANGED
@@ -1 +1 @@
1
- export * from "./ui-339b3d7f.js";
1
+ export * from "./ui-76492ce7.js";
@@ -1 +1 @@
1
- export * from "./vue-31395141.js";
1
+ export * from "./vue-a92df366.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-521222b6.css');import { watch as X, onScopeDispose as tt, effectScope as Ul, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Ne, toRefs as Wt, capitalize as On, isVNode as Oc, Comment as Rc, unref as ot, warn as Ha, getCurrentInstance as Nc, ref as W, provide as Ae, inject as ye, defineComponent as Hc, camelize as Ir, h as jt, toRaw as Ee, createVNode as r, mergeProps as N, onBeforeUnmount as nt, readonly as Kl, onDeactivated as _r, onActivated as zc, onMounted as Ke, nextTick as Se, TransitionGroup as ql, Transition as Ht, isRef as _n, toRef as F, onBeforeMount as Xl, withDirectives as $e, resolveDirective as dt, 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 Tr } from "./vue-31395141.js";
13
+ } await loadCss('./assets/vuetify-3bf44235.css');import { watch as X, onScopeDispose as tt, effectScope as Ul, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Ne, toRefs as Wt, capitalize as On, isVNode as Oc, Comment as Rc, unref as ot, warn as Ha, getCurrentInstance as Nc, ref as W, provide as Ae, inject as ye, defineComponent as Hc, camelize as Ir, h as jt, toRaw as Ee, createVNode as r, mergeProps as N, onBeforeUnmount as nt, readonly as Kl, onDeactivated as _r, onActivated as zc, onMounted as Ke, nextTick as Se, TransitionGroup as ql, Transition as Ht, isRef as _n, toRef as F, onBeforeMount as Xl, withDirectives as $e, resolveDirective as dt, 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 Tr } from "./vue-a92df366.js";
14
14
  function rt(e, n) {
15
15
  let t;
16
16
  function a() {
@@ -1 +1 @@
1
- export * from "./vuetify-521222b6.js";
1
+ export * from "./vuetify-3bf44235.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "6.0.1",
3
+ "version": "6.0.3",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -47,7 +47,7 @@
47
47
  "@intlify/core-base": "^9.13.1",
48
48
  "@vcsuite/check": "^2.1.0",
49
49
  "@vcsuite/logger": "^1.0.1",
50
- "@vcsuite/parsers": "^2.0.0",
50
+ "@vcsuite/parsers": "^2.0.1",
51
51
  "dompurify": "^3.1.6",
52
52
  "fast-deep-equal": "^3.1.3",
53
53
  "marked": "^14.0.0",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "peerDependencies": {
59
59
  "@vcmap-cesium/engine": "^11.0.2",
60
- "@vcmap/core": "^6.0.0",
60
+ "@vcmap/core": "^6.0.1",
61
61
  "ol": "^10.2.1",
62
62
  "vue": "~3.4.38",
63
63
  "vuetify": "^3.7.3"
@@ -1,31 +1,29 @@
1
1
  {
2
2
  "dependencies": {
3
- "@vcmap/print": "https://github.com/virtualcitySYSTEMS/map-print.git#main",
4
- "@vcmap/walk": "https://github.com/virtualcitySYSTEMS/map-walk.git#main",
5
- "@vcmap/clipping-tool": "https://github.com/virtualcitySYSTEMS/map-clipping-tool.git#main",
6
- "@vcmap/transparent-terrain": "https://github.com/virtualcitySYSTEMS/map-transparent-terrain.git#main",
7
- "@vcmap/height-profile": "https://github.com/virtualcitySYSTEMS/map-heightprofile.git#main",
8
- "@vcmap/flight": "https://github.com/virtualcitySYSTEMS/map-flight.git#main",
9
- "@vcmap/swipe-tool": "https://github.com/virtualcitySYSTEMS/map-swipe-tool.git#main",
10
- "@vcmap/export": "https://github.com/virtualcitySYSTEMS/map-export.git#main",
11
- "@vcmap/viewshed": "https://github.com/virtualcitySYSTEMS/map-viewshed.git#main",
12
- "@vcmap/measurement": "^2.0.0-rc.2",
13
- "@vcmap/multi-view": "https://github.com/virtualcitySYSTEMS/map-multi-view.git#main",
14
- "@vcmap/draw": "https://github.com/virtualcitySYSTEMS/map-draw.git#main",
15
- "@vcmap/shadow": "https://github.com/virtualcitySYSTEMS/map-shadow.git#main",
16
- "@vcmap/search-wfs": "https://github.com/virtualcitySYSTEMS/map-search-wfs.git#main",
17
- "@vcmap/search-esri": "https://github.com/virtualcitySYSTEMS/map-search-esri.git#main",
18
- "@vcmap/search-coordinate": "https://github.com/virtualcitySYSTEMS/map-search-coordinate.git#main",
19
- "@vcmap/link-button": "https://github.com/virtualcitySYSTEMS/map-link-button.git#main",
20
- "@vcmap/cesium-filters": "https://github.com/virtualcitySYSTEMS/map-cesium-filters.git#main",
21
- "@vcmap/search-nominatim": "https://github.com/virtualcitySYSTEMS/map-search-nominatim.git#main",
22
- "@vcmap/create-link": "https://github.com/virtualcitySYSTEMS/map-create-link.git#main",
23
- "@vcmap/module-selector": "^2.0.0"
3
+ "@vcmap/print": "^2.0.0",
4
+ "@vcmap/walk": "^2.0.0",
5
+ "@vcmap/clipping-tool": "^2.0.0",
6
+ "@vcmap/transparent-terrain": "^2.0.0",
7
+ "@vcmap/height-profile": "^2.0.0",
8
+ "@vcmap/flight": "^2.0.0",
9
+ "@vcmap/swipe-tool": "^2.0.0",
10
+ "@vcmap/export": "^2.0.0",
11
+ "@vcmap/viewshed": "^3.0.0",
12
+ "@vcmap/measurement": "^2.0.0",
13
+ "@vcmap/multi-view": "^2.0.0",
14
+ "@vcmap/draw": "^3.0.0",
15
+ "@vcmap/shadow": "^3.0.0",
16
+ "@vcmap/search-wfs": "^2.0.0",
17
+ "@vcmap/search-esri": "^2.0.0",
18
+ "@vcmap/search-coordinate": "^2.0.0",
19
+ "@vcmap/link-button": "^2.0.0",
20
+ "@vcmap/cesium-filters": "^2.0.0",
21
+ "@vcmap/search-nominatim": "^2.0.0",
22
+ "@vcmap/create-link": "^2.0.0",
23
+ "@vcmap/module-selector": "^2.0.0",
24
+ "@vcmap/line-of-sight": "^1.0.0"
24
25
  },
25
26
  "optionalDependencies": {
26
- "@vcmap/dynamic-layer": "git+ssh://git@gitlab.virtualcitysystems.de/vcsuite/npm/vcmap/dynamic-layer.git#feature-idra-catalogue",
27
- "@vcmap/line-of-sight": "git+ssh://git@gitlab.virtualcitysystems.de/vcsuite/npm/vcmap/line-of-sight.git#feature-v1",
28
- "@vcmap/planning": "^6.0.0-rc.2",
29
- "@vcmap/solar-revenue": "^2.0.0-rc.1"
27
+ "@vcmap/planning": "^6.0.0"
30
28
  }
31
29
  }
@@ -392,9 +392,9 @@
392
392
  * @returns {WatchStopHandle}
393
393
  */
394
394
  function setupSplashScreen(app, splashScreenRef) {
395
- function setupSplashScreenAction() {
395
+ function setupSplashScreenAction(moduleId) {
396
396
  const { splashScreen } = app.uiConfig.config;
397
- if (splashScreen) {
397
+ if (splashScreen && moduleId !== app.dynamicModuleId) {
398
398
  splashScreenRef.value = true;
399
399
  }
400
400
  if (splashScreen && splashScreen.menuEntry) {
@@ -422,7 +422,7 @@
422
422
  if (app.navbarManager.has('splashScreenToggle')) {
423
423
  app.navbarManager.remove('splashScreenToggle');
424
424
  }
425
- setupSplashScreenAction();
425
+ setupSplashScreenAction(item[moduleIdSymbol]);
426
426
  }
427
427
  });
428
428
  const removeRemovedListener = app.uiConfig.removed.addEventListener(
@@ -758,7 +758,7 @@
758
758
  'hideSettings',
759
759
  );
760
760
  const stopCustomScreen = setupCustomScreen(app);
761
- const splashScreenRef = ref(true);
761
+ const splashScreenRef = ref(false);
762
762
  const stopSplashScreen = setupSplashScreen(app, splashScreenRef);
763
763
  setupHelpButton(app);
764
764
  const destroyMyWorkspace = setupUIConfigDependency(
@@ -168,7 +168,7 @@
168
168
  default: false,
169
169
  },
170
170
  modelValue: {
171
- type: [Array, String, Boolean, Number],
171
+ type: [Array, String, Boolean, Number, Object],
172
172
  default(rawProps) {
173
173
  if (rawProps.multiple) {
174
174
  return [];
@@ -4,7 +4,7 @@ declare const _default: import("vue").DefineComponent<{
4
4
  default: boolean;
5
5
  };
6
6
  modelValue: {
7
- type: (BooleanConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
7
+ type: (BooleanConstructor | StringConstructor | NumberConstructor | ObjectConstructor | ArrayConstructor)[];
8
8
  default(rawProps: any): never[] | null;
9
9
  };
10
10
  tooltip: {
@@ -34,7 +34,7 @@ declare const _default: import("vue").DefineComponent<{
34
34
  default: boolean;
35
35
  };
36
36
  modelValue: {
37
- type: (BooleanConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
37
+ type: (BooleanConstructor | StringConstructor | NumberConstructor | ObjectConstructor | ArrayConstructor)[];
38
38
  default(rawProps: any): never[] | null;
39
39
  };
40
40
  tooltip: {
@@ -52,7 +52,7 @@ declare const _default: import("vue").DefineComponent<{
52
52
  }>> & {
53
53
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
54
54
  }, {
55
- modelValue: string | number | boolean | unknown[];
55
+ modelValue: string | number | boolean | Record<string, any> | unknown[];
56
56
  multiple: boolean;
57
57
  tooltip: string;
58
58
  tooltipPosition: string;
@@ -49,6 +49,7 @@
49
49
  #header.data-table-select="{ allSelected, selectAll, someSelected }"
50
50
  >
51
51
  <VcsCheckbox
52
+ v-if="$attrs.selectStrategy !== 'single'"
52
53
  :indeterminate="someSelected && !allSelected"
53
54
  indeterminate-icon="mdi-minus-circle"
54
55
  false-icon="mdi-circle-outline"
@@ -239,13 +240,13 @@
239
240
  /**
240
241
  * @param {any} value
241
242
  * @param {string|undefined} filter
242
- * @param {TableItem} item
243
+ * @param {Record<string,unknown>} item
243
244
  * @returns {boolean}
244
245
  */
245
- const handleFilter = (value, filter, item) => {
246
+ const handleFilterInternal = (value, filter, item) => {
246
247
  if (filter) {
247
248
  const q = filter.toLocaleLowerCase();
248
- return Object.values(item.raw).some((i) => {
249
+ return Object.values(item).some((i) => {
249
250
  if (i) {
250
251
  const content = i.toString();
251
252
  const translated = vm.$st(content);
@@ -260,6 +261,16 @@
260
261
  return true;
261
262
  };
262
263
 
264
+ /**
265
+ * @param {any} value
266
+ * @param {string|undefined} filter
267
+ * @param {TableItem} item
268
+ * @returns {boolean}
269
+ */
270
+ const handleFilter = (value, filter, item) => {
271
+ return handleFilterInternal(value, filter, item.raw);
272
+ };
273
+
263
274
  /**
264
275
  * Syncs disabled and isSelectable (or custom item-selectable key) on items
265
276
  * @type {ComputedRef<Array<Object>>}
@@ -286,7 +297,7 @@
286
297
  */
287
298
  const filteredItems = computed(() =>
288
299
  props.items.filter((item) =>
289
- handleFilter(item.value, search.value, item),
300
+ handleFilterInternal(item.value, search.value, item),
290
301
  ),
291
302
  );
292
303
  const numberOfItems = computed(() => {
@@ -197,6 +197,8 @@
197
197
  function updateLocalValueFromViewpoint(localValue, viewpoint) {
198
198
  const options = viewpoint.toJSON();
199
199
  options.name = localValue.value.name;
200
+ options.animate = localValue.value.animate;
201
+ options.duration = localValue.value.duration;
200
202
  if (localValue.value.properties) {
201
203
  options.properties = toRaw(localValue.value.properties);
202
204
  }
@@ -3,6 +3,7 @@ import {
3
3
  IndexedCollection,
4
4
  makeOverrideCollection,
5
5
  getObjectFromClassRegistry,
6
+ moduleIdSymbol,
6
7
  } from '@vcmap/core';
7
8
  import { computed, ref } from 'vue';
8
9
  import ContentTreeItem from './contentTreeItem.js';
@@ -69,7 +70,13 @@ class ContentTreeCollection extends IndexedCollection {
69
70
  this._subTreeListeners.delete(subTree.name);
70
71
  }
71
72
  });
72
- if (this._app.uiConfig.getByKey('contentTreeActiveOnStartup')?.value) {
73
+ const contentTreeActiveOnStartup = this._app.uiConfig.getByKey(
74
+ 'contentTreeActiveOnStartup',
75
+ );
76
+ if (
77
+ contentTreeActiveOnStartup?.value &&
78
+ contentTreeActiveOnStartup[moduleIdSymbol] !== this._app.dynamicModuleId
79
+ ) {
73
80
  const action = this._app.navbarManager.get('Content')?.action;
74
81
  if (action && !action.active) {
75
82
  action.callback();
package/src/i18n/en.js CHANGED
@@ -32,7 +32,7 @@ const messages = {
32
32
  title: 'Open help',
33
33
  },
34
34
  infoAction: {
35
- title: 'Further informationen',
35
+ title: 'Further information',
36
36
  },
37
37
  viewpointAction: {
38
38
  title: 'Go to viewpoint',
package/src/init.js CHANGED
@@ -23,9 +23,10 @@ export const VcsUiAppConfigPattern = {
23
23
  maps: optional([VcsObjectPattern]),
24
24
  styles: optional([VcsObjectPattern]),
25
25
  viewpoints: optional([VcsObjectPattern]),
26
- startingViewpointName: optional(String),
27
- startingMapName: optional(String),
28
- projection: optional(Object),
26
+ startingObliqueCollectionName: maybe(String),
27
+ startingViewpointName: maybe(String),
28
+ startingMapName: maybe(String),
29
+ projection: maybe(Object),
29
30
  categories: optional([{ name: String, items: [Object] }]),
30
31
  obliqueCollections: optional([VcsObjectPattern]),
31
32
  plugins: optional([Object]),
@@ -270,24 +270,6 @@
270
270
  app.overviewMap.map.layerCollection.size > 0,
271
271
  );
272
272
 
273
- const handleOverviewMapActiveOnStartup = (item) => {
274
- if (
275
- item &&
276
- item.name === 'overviewMapActiveOnStartup' &&
277
- showOverviewButton.value &&
278
- item.value &&
279
- !overviewAction.active
280
- ) {
281
- overviewAction.callback();
282
- }
283
- };
284
- handleOverviewMapActiveOnStartup(
285
- app.uiConfig.getByKey('overviewMapActiveOnStartup'),
286
- );
287
- const uiConfigListener = app.uiConfig.added.addEventListener(
288
- handleOverviewMapActiveOnStartup,
289
- );
290
-
291
273
  // Locator
292
274
  const { action: locatorAction, destroy: destroyLocator } =
293
275
  createLocatorAction(app);
@@ -325,7 +307,6 @@
325
307
  const { action: homeAction, destroy: homeDestroy } = setupHomeButton(app);
326
308
 
327
309
  onUnmounted(() => {
328
- uiConfigListener();
329
310
  if (overviewDestroy) {
330
311
  overviewDestroy();
331
312
  }
@@ -111,6 +111,7 @@ declare class OverviewMap {
111
111
  * @private
112
112
  */
113
113
  private _collectionListeners;
114
+ _uiConfigWatcher: import("vue").WatchStopHandle;
114
115
  /**
115
116
  * @type {boolean}
116
117
  */
@@ -20,6 +20,7 @@ import { Math as CesiumMath, Color, Cartographic } from '@vcmap-cesium/engine';
20
20
  import { unByKey } from 'ol/Observable.js';
21
21
  import VectorSource from 'ol/source/Vector.js';
22
22
  import { Icon } from 'ol/style.js';
23
+ import { watch } from 'vue';
23
24
  import { WindowSlot } from '../manager/window/windowManager.js';
24
25
  import OverviewMapClickedInteraction from './overviewMapClickedInteraction.js';
25
26
  import {
@@ -256,6 +257,20 @@ class OverviewMap {
256
257
  this._updatePrimaryColor.bind(this),
257
258
  ),
258
259
  ];
260
+
261
+ this._uiConfigWatcher = watch(
262
+ () => [
263
+ this._app.uiConfig.config.hideMapNavigation,
264
+ this._app.uiConfig.config.overviewMapActiveOnStartup,
265
+ ],
266
+ async ([hide, activeOnStartup]) => {
267
+ if (activeOnStartup && !hide && !this._active) {
268
+ await this.activate();
269
+ } else if (hide && this._active) {
270
+ await this.deactivate();
271
+ }
272
+ },
273
+ );
259
274
  }
260
275
 
261
276
  /**
@@ -632,6 +647,7 @@ class OverviewMap {
632
647
  this._clearListeners();
633
648
  this._collectionListeners.forEach((cb) => cb());
634
649
  this._collectionListeners = [];
650
+ this._uiConfigWatcher();
635
651
  if (this._mapPointerListener) {
636
652
  this._mapPointerListener();
637
653
  this._mapPointerListener = null;
File without changes