@vcmap/ui 6.0.2 → 6.0.4
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/cesium.js +1 -1
- package/dist/assets/{core-44c4fba1.js → core-ce6bb195.js} +7 -7
- package/dist/assets/core.js +1 -1
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui-1a51c85a.css → ui-b4efd5bf.css} +1 -1
- package/dist/assets/{ui-1a51c85a.js → ui-b4efd5bf.js} +3017 -3013
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-95029d49.js → vuetify-fbb86b3a.js} +1 -1
- package/dist/assets/vuetify.js +1 -1
- package/package.json +2 -2
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +6 -5
- package/src/application/VcsApp.vue +4 -4
- package/src/components/tables/VcsDataTable.vue +15 -4
- package/src/components/vector-properties/VcsFeatureTransforms.vue +16 -6
- package/src/contentTree/contentTreeCollection.js +8 -1
- package/src/init.js +4 -3
- package/src/navigation/MapNavigation.vue +0 -19
- package/src/navigation/overviewMap.d.ts +1 -0
- package/src/navigation/overviewMap.js +16 -0
- /package/dist/assets/{cesium-6022b8b4.js → cesium-5ce8b207.js} +0 -0
- /package/dist/assets/{ol-b3e473e1.js → ol-07a8983e.js} +0 -0
- /package/dist/assets/{vue-8f83aa85.js → vue-fcafcafd.js} +0 -0
- /package/dist/assets/{vuetify-95029d49.css → vuetify-fbb86b3a.css} +0 -0
package/dist/assets/ui.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./ui-
|
1
|
+
export * from "./ui-b4efd5bf.js";
|
package/dist/assets/vue.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./vue-
|
1
|
+
export * from "./vue-fcafcafd.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-
|
13
|
+
} await loadCss('./assets/vuetify-fbb86b3a.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-fcafcafd.js";
|
14
14
|
function rt(e, n) {
|
15
15
|
let t;
|
16
16
|
function a() {
|
package/dist/assets/vuetify.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./vuetify-
|
1
|
+
export * from "./vuetify-fbb86b3a.js";
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vcmap/ui",
|
3
|
-
"version": "6.0.
|
3
|
+
"version": "6.0.4",
|
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.
|
60
|
+
"@vcmap/core": "^6.0.2",
|
61
61
|
"ol": "^10.2.1",
|
62
62
|
"vue": "~3.4.38",
|
63
63
|
"vuetify": "^3.7.3"
|
@@ -25,17 +25,17 @@
|
|
25
25
|
const editors = plugin.getConfigEditors?.();
|
26
26
|
if (editors?.length > 0) {
|
27
27
|
const actions = editors
|
28
|
-
.
|
29
|
-
.
|
30
|
-
.map((component, index) =>
|
28
|
+
.filter((e) => e.component)
|
29
|
+
.map((e, index) =>
|
31
30
|
createToggleAction(
|
32
31
|
{
|
33
32
|
name: `editor-${index + 1}`,
|
33
|
+
title: e.title,
|
34
34
|
icon: index < 9 ? `mdi-numeric-${index + 1}-box` : undefined,
|
35
35
|
},
|
36
36
|
{
|
37
37
|
id: `${plugin.name}-editor-${index}`,
|
38
|
-
component,
|
38
|
+
component: e.component,
|
39
39
|
parentId: name,
|
40
40
|
slot: WindowSlot.DYNAMIC_CHILD,
|
41
41
|
props: {
|
@@ -60,7 +60,8 @@
|
|
60
60
|
},
|
61
61
|
state: {
|
62
62
|
headerTitle:
|
63
|
-
|
63
|
+
e.title ?? `${plugin.name} Editor ${index + 1}`,
|
64
|
+
infoUrlCallback: e.infoUrlCallback,
|
64
65
|
},
|
65
66
|
position: {
|
66
67
|
width: 500,
|
@@ -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(
|
761
|
+
const splashScreenRef = ref(false);
|
762
762
|
const stopSplashScreen = setupSplashScreen(app, splashScreenRef);
|
763
763
|
setupHelpButton(app);
|
764
764
|
const destroyMyWorkspace = setupUIConfigDependency(
|
@@ -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 {
|
243
|
+
* @param {Record<string,unknown>} item
|
243
244
|
* @returns {boolean}
|
244
245
|
*/
|
245
|
-
const
|
246
|
+
const handleFilterInternal = (value, filter, item) => {
|
246
247
|
if (filter) {
|
247
248
|
const q = filter.toLocaleLowerCase();
|
248
|
-
return Object.values(item
|
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
|
-
|
300
|
+
handleFilterInternal(item.value, search.value, item),
|
290
301
|
),
|
291
302
|
);
|
292
303
|
const numberOfItems = computed(() => {
|
@@ -120,7 +120,11 @@
|
|
120
120
|
|
121
121
|
<script>
|
122
122
|
import { Math as CesiumMath, HeightReference } from '@vcmap-cesium/engine';
|
123
|
-
import {
|
123
|
+
import {
|
124
|
+
SessionType,
|
125
|
+
TransformationMode,
|
126
|
+
placeGeometryOnSurface,
|
127
|
+
} from '@vcmap/core';
|
124
128
|
import { VSheet, VContainer, VRow, VCol, VIcon } from 'vuetify/components';
|
125
129
|
import { inject, ref, watch } from 'vue';
|
126
130
|
import VcsButton from '../buttons/VcsButton.vue';
|
@@ -242,11 +246,17 @@
|
|
242
246
|
}),
|
243
247
|
);
|
244
248
|
|
245
|
-
|
246
|
-
manager.
|
247
|
-
|
248
|
-
manager.
|
249
|
-
|
249
|
+
if (
|
250
|
+
manager.currentEditSession.value?.type === SessionType.EDIT_FEATURES
|
251
|
+
) {
|
252
|
+
manager.currentEditSession.value?.setFeatures(
|
253
|
+
manager.currentFeatures.value,
|
254
|
+
);
|
255
|
+
} else if (
|
256
|
+
manager.currentEditSession.value?.type === SessionType.EDIT_GEOMETRY
|
257
|
+
) {
|
258
|
+
manager.currentEditSession.value.setFeature(
|
259
|
+
manager.currentFeatures.value[0],
|
250
260
|
);
|
251
261
|
}
|
252
262
|
|
@@ -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
|
-
|
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/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
|
-
|
27
|
-
|
28
|
-
|
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
|
}
|
@@ -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
|
File without changes
|
File without changes
|
File without changes
|