@vcmap/ui 6.0.0-rc.6 → 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.
- package/config/base.config.json +8 -2
- package/dist/assets/cesium/Workers/{chunk-LUYI3XCB.js → chunk-2LOWCAMW.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-V7WJDCPA.js → chunk-2PTKXHJB.js} +10 -10
- package/dist/assets/cesium/Workers/{chunk-YFVI4SQI.js → chunk-3HQMMUPU.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-XGI4FRXF.js → chunk-3IFRSGEY.js} +9 -9
- package/dist/assets/cesium/Workers/{chunk-4RJH3H6D.js → chunk-44QAAS4P.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-4EW3HFFI.js → chunk-56EDBCGT.js} +10 -10
- package/dist/assets/cesium/Workers/{chunk-PRKEY4QK.js → chunk-57H6I3SV.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-X67EJ6X6.js → chunk-6SQMLVGV.js} +54 -7
- package/dist/assets/cesium/Workers/{chunk-RRLGJV3Q.js → chunk-7YIOHQWH.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-G6346EDR.js → chunk-7ZZ5LMZY.js} +16 -15
- package/dist/assets/cesium/Workers/{chunk-YFYPR4MW.js → chunk-BVKITG4N.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-N5MIFVXJ.js → chunk-C3EQ27WF.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-TLGODPEV.js → chunk-C4WPMOKT.js} +6 -5
- package/dist/assets/cesium/Workers/{chunk-DTACCQDR.js → chunk-EDLRS3AW.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-EVU2UNBD.js → chunk-EJVGYGLF.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-FYYT5EVH.js → chunk-FFLMY4TE.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-5OUTANXX.js → chunk-GBT7MJ6X.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-3DRPXHZ4.js → chunk-HJMNR3GC.js} +11 -11
- package/dist/assets/cesium/Workers/{chunk-IALQGTA2.js → chunk-HP5XLODI.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-DR7LK6PG.js → chunk-IBRIWOCM.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-WMVCLETM.js → chunk-IZGUQO6Q.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-T6TZXGG5.js → chunk-IZJ42N4W.js} +17 -17
- package/dist/assets/cesium/Workers/{chunk-FZDKIUDT.js → chunk-JBSKHTNX.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-S4VTLNAJ.js → chunk-JISPSEF3.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-KNMGSIIN.js → chunk-JSQJDZI4.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-LMTN7R7M.js → chunk-JXVLNVXC.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-A5C2A5O5.js → chunk-KHZNBFOH.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-PIOKSAZH.js → chunk-L5GODJAR.js} +14 -14
- package/dist/assets/cesium/Workers/{chunk-Q7PM4W34.js → chunk-LJ2JQHJT.js} +12 -7
- package/dist/assets/cesium/Workers/{chunk-D6PDWQXW.js → chunk-LLAF3CPH.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-H7PSTL64.js → chunk-M24KHENR.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-I67V66MN.js → chunk-NDDI2LWR.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-FSXNF76Y.js → chunk-NGZJIN5Z.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-UMX265HW.js → chunk-O72GZTSE.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-WOA6WSHH.js → chunk-OPP2SKMA.js} +12 -12
- package/dist/assets/cesium/Workers/{chunk-VD6G7UPU.js → chunk-P6TRGU3S.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-QLC66ZRL.js → chunk-QN6TBED4.js} +11 -11
- package/dist/assets/cesium/Workers/{chunk-O7OUBDMZ.js → chunk-QQOZO7KO.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-AGTH5JMJ.js → chunk-RJM36CNY.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-UC566ISB.js → chunk-RTJKHZWU.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-L4XQPD6P.js → chunk-TI3TRKIC.js} +423 -448
- package/dist/assets/cesium/Workers/{chunk-3GI7DWF7.js → chunk-TK5IIG2F.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-6DH5PLFD.js → chunk-U5HSOKPQ.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-BPY4HDAK.js → chunk-WGDFYAGC.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-SJC5PRDX.js → chunk-X7IQYYHF.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-4OX4RYLB.js → chunk-XIUSRWL6.js} +9 -5
- package/dist/assets/cesium/Workers/{chunk-S2UEXF6T.js → chunk-XWOUPGUF.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-F7IEM66T.js → chunk-YCDZX5LS.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-AVFIYUKX.js → chunk-YK3QIKY7.js} +9 -9
- package/dist/assets/cesium/Workers/{chunk-BAJAVGUF.js → chunk-YSIJTJ7N.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-6DXIYFX3.js → chunk-Z2QP3CXW.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-P24I5VUS.js → chunk-ZVUUPJEM.js} +17 -17
- package/dist/assets/cesium/Workers/combineGeometry.js +22 -22
- package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -14
- package/dist/assets/cesium/Workers/createCircleGeometry.js +24 -24
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -17
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +31 -31
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +27 -27
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +26 -26
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -18
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -24
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -17
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -17
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createGeometry.js +22 -22
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +20 -20
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -14
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -13
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +30 -30
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +28 -28
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +23 -23
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +29 -29
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +25 -25
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +18 -18
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +21 -21
- package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -17
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +13 -13
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -22
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -20
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +13 -13
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +24 -20
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
- package/dist/assets/cesium/Workers/createWallGeometry.js +22 -22
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +21 -21
- package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +28 -5
- package/dist/assets/cesium/Workers/decodeI3S.js +10 -10
- package/dist/assets/cesium/Workers/transcodeKTX2.js +19 -18
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +20 -20
- package/dist/assets/{cesium-ccb4cc30.js → cesium-2ec6aae0.js} +136600 -136700
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-e06aa7a6.js → core-6f2522e5.js} +8391 -7544
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol-e7981d5c.js → ol-b0e134cb.js} +2246 -2248
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-bf3d1f84.css +1 -0
- package/dist/assets/{ui-5dda32d2.js → ui-bf3d1f84.js} +4598 -4464
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-4c4e4217.js → vuetify-99bf601c.js} +1 -1
- package/dist/assets/vuetify.js +1 -1
- package/package.json +3 -3
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +2 -2
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +3 -4
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +1 -1
- package/plugins/@vcmap-show-case/vector-properties-example/src/GeometrySettings.vue +420 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/LayoutHandler.vue +97 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/TerrainSettings.vue +90 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +61 -70
- package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +34 -1
- package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +294 -0
- package/src/actions/StyleSelector.vue +36 -20
- package/src/actions/StyleSelector.vue.d.ts +5 -5
- package/src/application/VcsApp.vue +32 -8
- package/src/application/VcsApp.vue.d.ts +5 -1
- package/src/application/VcsAppWrapper.vue +1 -1
- package/src/application/VcsAttributions.vue +1 -1
- package/src/application/VcsAttributionsFooter.vue +22 -11
- package/src/application/VcsContainer.vue.d.ts +5 -1
- package/src/application/VcsMainMap.vue +1 -1
- package/src/application/VcsMap.vue +1 -0
- package/src/application/VcsNavbar.vue +1 -1
- package/src/application/VcsPositionDisplay.vue +3 -3
- package/src/application/VcsSettings.vue +1 -1
- package/src/application/VcsSplashScreen.vue +1 -0
- package/src/application/VcsTextPage.vue +1 -1
- package/src/application/VcsTextPageFooter.vue +6 -4
- package/src/components/buttons/VcsActionButtonList.vue +5 -1
- package/src/components/buttons/VcsButton.vue +3 -3
- package/src/components/buttons/VcsFormButton.vue +2 -2
- package/src/components/buttons/VcsToolButton.vue +2 -2
- package/src/components/extent/VcsExtent.vue +1 -1
- package/src/components/extent/VcsExtentEditor.vue +1 -0
- package/src/components/flight/VcsFlightAnchorsComponent.vue +1 -0
- package/src/components/flight/VcsFlightComponent.vue +1 -1
- package/src/components/flight/VcsFlightEditor.vue +1 -0
- package/src/components/flight/VcsFlightPlayer.vue +1 -1
- package/src/components/form-inputs-controls/VcsLabel.vue +31 -8
- package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +2 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +1 -1
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +2 -2
- package/src/components/form-inputs-controls/VcsTextField.vue +1 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +1 -1
- package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -0
- package/src/components/form-output/VcsMarkdown.vue +1 -1
- package/src/components/import/VcsFileDrop.vue +1 -1
- package/src/components/import/VcsImportComponent.vue +1 -1
- package/src/components/lists/VcsListItemComponent.vue +5 -1
- package/src/components/lists/VcsTreeview.vue +22 -0
- package/src/components/lists/VcsTreeview.vue.d.ts +10 -0
- package/src/components/lists/VcsTreeviewSearchbar.vue +1 -1
- package/src/components/lists/VcsTreeviewTitle.vue +5 -1
- package/src/components/notification/VcsBadge.vue +2 -2
- package/src/components/notification/VcsHelp.vue +1 -1
- package/src/components/plugins/AbstractConfigEditor.vue +1 -1
- package/src/components/section/VcsExpansionPanel.vue +5 -1
- package/src/components/style/MenuWrapper.vue +1 -1
- package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
- package/src/components/style/VcsFillMenu.vue +1 -0
- package/src/components/style/VcsFillSelector.vue +1 -0
- package/src/components/style/VcsImageMenu.vue +1 -0
- package/src/components/style/VcsImageSelector.vue +1 -1
- package/src/components/style/VcsStrokeMenu.vue +1 -0
- package/src/components/style/VcsStrokeSelector.vue +1 -1
- package/src/components/style/VcsTextMenu.vue +1 -0
- package/src/components/style/VcsTextSelector.vue +1 -1
- package/src/components/style/VcsVectorStyleComponent.vue +1 -1
- package/src/components/tables/VcsDataTable.vue +1 -1
- package/src/components/tables/VcsTable.vue +1 -0
- package/src/components/tables/VcsTableCell.vue +1 -1
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +18 -35
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +5 -3
- package/src/components/vector-properties/VcsFeatureTransforms.vue +1 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +37 -12
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +3 -2
- package/src/components/viewpoint/VcsViewpointComponent.vue +1 -1
- package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
- package/src/contentTree/LayerTree.vue +1 -1
- package/src/contentTree/layerContentTreeItem.d.ts +8 -5
- package/src/contentTree/layerContentTreeItem.js +48 -34
- package/src/contentTree/layerGroupContentTreeItem.d.ts +7 -1
- package/src/contentTree/layerGroupContentTreeItem.js +22 -3
- package/src/featureInfo/AddressBalloonComponent.vue +1 -1
- package/src/featureInfo/BalloonComponent.vue +1 -1
- package/src/featureInfo/IframeComponent.vue +6 -1
- package/src/featureInfo/MarkdownBalloonComponent.vue +1 -1
- package/src/featureInfo/balloonHelper.js +1 -1
- package/src/i18n/de.d.ts +5 -0
- package/src/i18n/de.js +7 -2
- package/src/i18n/en.d.ts +5 -0
- package/src/i18n/en.js +6 -1
- package/src/legend/StyleLegendItem.vue +1 -1
- package/src/legend/VcsLegend.vue +1 -1
- package/src/manager/collectionManager/CollectionComponent.vue +1 -0
- package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
- package/src/manager/panel/PanelManagerComponent.vue +2 -2
- package/src/manager/toolbox/GroupToolboxComponent.vue +2 -2
- package/src/manager/toolbox/SelectToolboxComponent.vue +2 -2
- package/src/manager/toolbox/ToolboxManagerComponent.vue +12 -1
- package/src/manager/window/WindowComponent.vue +1 -1
- package/src/manager/window/WindowManager.vue +4 -1
- package/src/navigation/MapNavigation.vue +4 -1
- package/src/navigation/ObliqueRotation.vue +2 -2
- package/src/navigation/OrientationToolsButton.vue +1 -1
- package/src/navigation/TiltSlider.vue +1 -0
- package/src/navigation/VcsCompass.vue +1 -1
- package/src/navigation/VcsZoomButton.vue +1 -1
- package/src/navigation/locatorHelper.js +3 -21
- package/src/notifier/NotifierComponent.vue +1 -1
- package/src/search/ResultItem.vue +1 -1
- package/src/search/ResultsComponent.vue +1 -1
- package/src/search/SearchComponent.vue +3 -1
- package/src/uiConfig.d.ts +13 -4
- package/src/uiConfig.js +3 -2
- package/src/vcsUiApp.d.ts +30 -30
- package/src/vcsUiApp.js +32 -30
- package/dist/assets/ui-5dda32d2.css +0 -1
- /package/dist/assets/{vue-87bc6efe.js → vue-43880c5a.js} +0 -0
- /package/dist/assets/{vuetify-4c4e4217.css → vuetify-99bf601c.css} +0 -0
@@ -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">
|
@@ -25,7 +25,11 @@
|
|
25
25
|
}
|
26
26
|
</style>
|
27
27
|
<template>
|
28
|
-
<div
|
28
|
+
<div
|
29
|
+
class="title-parent pr-2 vcs-treeview-title"
|
30
|
+
ref="titleParent"
|
31
|
+
@click.stop="item.clicked && !item.disabled && item.clicked($event)"
|
32
|
+
>
|
29
33
|
<span>
|
30
34
|
{{ $st(item.title || item.name) }}
|
31
35
|
</span>
|
@@ -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 {
|
@@ -43,7 +43,11 @@
|
|
43
43
|
const iconSize = useIconSize();
|
44
44
|
</script>
|
45
45
|
<template>
|
46
|
-
<v-expansion-panel
|
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="vcs-feature-editing-window">
|
3
3
|
<VcsFormSection
|
4
4
|
v-if="session?.type === SessionType.SELECT"
|
5
5
|
heading="components.editor.modifyHeader"
|
@@ -99,18 +99,28 @@
|
|
99
99
|
/**
|
100
100
|
* Returns the allowed transformation modes for the provided geometry types and number of features. Rotate is e.g. not allowed for a single point but for multiple points.
|
101
101
|
* @param {Set<GeometryType>} geometryTypes A set with all geometry types of the features.
|
102
|
-
* @param {
|
102
|
+
* @param {import("ol").Feature[]} features The features currently being edited.
|
103
|
+
* @param {import("@vcmap/core").VectorLayer} layer The number of the features.
|
104
|
+
* @param {boolean} is3D if the current map is 3D
|
103
105
|
* @returns {Array<TransformationMode>} The allowed transformation modes.
|
104
106
|
*/
|
105
107
|
export function getAllowedEditorTransformationModes(
|
106
108
|
geometryTypes,
|
107
|
-
|
109
|
+
features,
|
110
|
+
layer,
|
111
|
+
is3D = false,
|
108
112
|
) {
|
113
|
+
const nFeatures = features.length;
|
109
114
|
const isSinglePoint =
|
110
|
-
nFeatures === 1 &&
|
115
|
+
nFeatures === 1 &&
|
116
|
+
geometryTypes.has(GeometryType.Point) &&
|
117
|
+
(!is3D || layer.vectorProperties.renderAs(features[0]) === 'geometry');
|
118
|
+
|
111
119
|
const isSingleCircle =
|
112
120
|
nFeatures === 1 && geometryTypes.has(GeometryType.Circle);
|
121
|
+
|
113
122
|
const isBboxSelected = geometryTypes.has(GeometryType.BBox);
|
123
|
+
|
114
124
|
return [
|
115
125
|
TransformationMode.TRANSLATE,
|
116
126
|
...(isSinglePoint || isSingleCircle || isBboxSelected
|
@@ -194,36 +204,7 @@
|
|
194
204
|
* Sets the changed vector property options on the features. Also handles side effects.
|
195
205
|
* @param {import("@vcmap/core").VectorPropertiesOptions} update New property values from user input.
|
196
206
|
*/
|
197
|
-
|
198
|
-
const extrusionLikePropertyKeys = [
|
199
|
-
'extrudedHeight',
|
200
|
-
'skirt',
|
201
|
-
'storeysAboveGround',
|
202
|
-
'storeysBelowGround',
|
203
|
-
'storeyHeightsAboveGround',
|
204
|
-
'storeyHeightsBelowGround',
|
205
|
-
];
|
206
|
-
const setsExtrusionLikePropertyKeys =
|
207
|
-
!!extrusionLikePropertyKeys.filter(
|
208
|
-
(key) => Object.keys(update).includes(key) && !!update[key],
|
209
|
-
).length;
|
210
|
-
if (
|
211
|
-
setsExtrusionLikePropertyKeys &&
|
212
|
-
featureProperties.value.altitudeMode !== 'absolute'
|
213
|
-
) {
|
214
|
-
update.altitudeMode = 'absolute';
|
215
|
-
} else if (update.altitudeMode === 'clampToGround') {
|
216
|
-
extrusionLikePropertyKeys
|
217
|
-
.filter((key) => !!featureProperties.value[key])
|
218
|
-
.forEach((key) => {
|
219
|
-
update[key] = 0;
|
220
|
-
});
|
221
|
-
}
|
222
|
-
// when in create mode and changing altitude mode, this is triggered, but currentFeatures is empty array.
|
223
|
-
if (update.altitudeMode === 'absolute' && features?.length) {
|
224
|
-
await editorManager.placeCurrentFeaturesOnTerrain();
|
225
|
-
}
|
226
|
-
|
207
|
+
function updateFeatureProperties(update) {
|
227
208
|
layer.value.vectorProperties.setValuesForFeatures(
|
228
209
|
update,
|
229
210
|
features.value,
|
@@ -297,7 +278,9 @@
|
|
297
278
|
function getAllowedModifyActions() {
|
298
279
|
const allowedModes = getAllowedEditorTransformationModes(
|
299
280
|
currentGeometryTypes.value.types,
|
300
|
-
|
281
|
+
features.value,
|
282
|
+
layer.value,
|
283
|
+
is3D.value,
|
301
284
|
);
|
302
285
|
|
303
286
|
const allowedActions = allowedModes.map((mode) => {
|
@@ -1,10 +1,12 @@
|
|
1
1
|
/**
|
2
2
|
* Returns the allowed transformation modes for the provided geometry types and number of features. Rotate is e.g. not allowed for a single point but for multiple points.
|
3
3
|
* @param {Set<GeometryType>} geometryTypes A set with all geometry types of the features.
|
4
|
-
* @param {
|
4
|
+
* @param {import("ol").Feature[]} features The features currently being edited.
|
5
|
+
* @param {import("@vcmap/core").VectorLayer} layer The number of the features.
|
6
|
+
* @param {boolean} is3D if the current map is 3D
|
5
7
|
* @returns {Array<TransformationMode>} The allowed transformation modes.
|
6
8
|
*/
|
7
|
-
export function getAllowedEditorTransformationModes(geometryTypes: Set<GeometryType>,
|
9
|
+
export function getAllowedEditorTransformationModes(geometryTypes: Set<GeometryType>, features: import("ol").Feature[], layer: import("@vcmap/core").VectorLayer, is3D?: boolean): Array<TransformationMode>;
|
8
10
|
export namespace EditorTransformationIcons {
|
9
11
|
let translate: string;
|
10
12
|
let rotate: string;
|
@@ -41,7 +43,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
41
43
|
availableModifyActions: import("vue").ShallowRef<never[]>;
|
42
44
|
availableVectorProperties: import("vue").ShallowRef<never[]>;
|
43
45
|
is3D: import("vue").Ref<boolean>;
|
44
|
-
updateFeatureProperties: (update: import("@vcmap/core").VectorPropertiesOptions) =>
|
46
|
+
updateFeatureProperties: (update: import("@vcmap/core").VectorPropertiesOptions) => void;
|
45
47
|
defaultVectorProperties: import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesOptions;
|
46
48
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
47
49
|
allowedVectorProperties: {
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<VcsFormSection
|
3
|
+
class="vcs-vector-properties-component"
|
3
4
|
:heading="$attrs.heading || 'components.vectorProperties.header'"
|
4
5
|
:expandable="expandable"
|
5
6
|
:start-open="startOpen"
|
@@ -21,13 +22,7 @@
|
|
21
22
|
/>
|
22
23
|
</v-col>
|
23
24
|
</v-row>
|
24
|
-
<v-row
|
25
|
-
v-if="
|
26
|
-
visibleProperties.has('heightAboveGround') &&
|
27
|
-
localValue.altitudeMode === 'relativeToGround'
|
28
|
-
"
|
29
|
-
no-gutters
|
30
|
-
>
|
25
|
+
<v-row v-if="visibleProperties.has('heightAboveGround')" no-gutters>
|
31
26
|
<v-col>
|
32
27
|
<VcsLabel :html-for="`${cid}-vp-height-above-ground`">{{
|
33
28
|
$t('components.vectorProperties.heightAboveGround')
|
@@ -40,7 +35,7 @@
|
|
40
35
|
:hide-spin-buttons="true"
|
41
36
|
type="number"
|
42
37
|
unit="m"
|
43
|
-
|
38
|
+
clearable
|
44
39
|
/>
|
45
40
|
</v-col>
|
46
41
|
</v-row>
|
@@ -345,6 +340,7 @@
|
|
345
340
|
'modelHeading',
|
346
341
|
'modelPitch',
|
347
342
|
'modelRoll',
|
343
|
+
'modelAutoScale',
|
348
344
|
'baseUrl',
|
349
345
|
].some((prop) => visibleProperties.has(prop))
|
350
346
|
"
|
@@ -440,6 +436,16 @@
|
|
440
436
|
/>
|
441
437
|
</v-col>
|
442
438
|
</v-row>
|
439
|
+
<v-row v-if="visibleProperties.has('modelAutoScale')" no-gutters>
|
440
|
+
<v-col cols="6">
|
441
|
+
<VcsLabel>{{
|
442
|
+
$t('components.vectorProperties.modelAutoScale')
|
443
|
+
}}</VcsLabel>
|
444
|
+
</v-col>
|
445
|
+
<v-col>
|
446
|
+
<VcsCheckbox v-model="localValue.modelAutoScale" />
|
447
|
+
</v-col>
|
448
|
+
</v-row>
|
443
449
|
<v-row v-if="visibleProperties.has('baseUrl')" no-gutters>
|
444
450
|
<v-col>
|
445
451
|
<VcsLabel :html-for="`${cid}-vp-base-url`">{{
|
@@ -494,6 +500,7 @@
|
|
494
500
|
'modelHeading',
|
495
501
|
'modelPitch',
|
496
502
|
'modelRoll',
|
503
|
+
'modelAutoScale',
|
497
504
|
'baseUrl',
|
498
505
|
];
|
499
506
|
|
@@ -595,6 +602,14 @@
|
|
595
602
|
value: 'clampToGround',
|
596
603
|
title: 'components.vectorProperties.clampToGround',
|
597
604
|
},
|
605
|
+
{
|
606
|
+
value: 'clampToTerrain',
|
607
|
+
title: 'components.vectorProperties.clampToTerrain',
|
608
|
+
},
|
609
|
+
{
|
610
|
+
value: 'clampTo3DTiles',
|
611
|
+
title: 'components.vectorProperties.clampTo3DTiles',
|
612
|
+
},
|
598
613
|
{
|
599
614
|
value: 'absolute',
|
600
615
|
title: 'components.vectorProperties.absolute',
|
@@ -602,10 +617,20 @@
|
|
602
617
|
];
|
603
618
|
|
604
619
|
if (visibleProperties.value.has('heightAboveGround')) {
|
605
|
-
altitudeModes.push(
|
606
|
-
|
607
|
-
|
608
|
-
|
620
|
+
altitudeModes.push(
|
621
|
+
{
|
622
|
+
value: 'relativeToGround',
|
623
|
+
title: 'components.vectorProperties.relativeToGround',
|
624
|
+
},
|
625
|
+
{
|
626
|
+
value: 'relativeToTerrain',
|
627
|
+
title: 'components.vectorProperties.relativeToTerrain',
|
628
|
+
},
|
629
|
+
{
|
630
|
+
value: 'relativeTo3DTiles',
|
631
|
+
title: 'components.vectorProperties.relativeTo3DTiles',
|
632
|
+
},
|
633
|
+
);
|
609
634
|
}
|
610
635
|
|
611
636
|
return altitudeModes;
|
@@ -75,7 +75,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
75
75
|
toString: () => string;
|
76
76
|
} | undefined;
|
77
77
|
getEyeOffset: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined;
|
78
|
-
heightAboveGround: number;
|
78
|
+
heightAboveGround: number | undefined;
|
79
79
|
getHeightAboveGround: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => number;
|
80
80
|
skirt: number;
|
81
81
|
getSkirt: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => number;
|
@@ -106,7 +106,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
106
106
|
modelRoll: number;
|
107
107
|
getModelRoll: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => number;
|
108
108
|
modelOptions: Record<string, unknown> | undefined;
|
109
|
-
getModelOptions: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => Record<string, unknown
|
109
|
+
getModelOptions: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => Record<string, unknown> | undefined;
|
110
110
|
modelAutoScale: boolean;
|
111
111
|
getModelAutoScale: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => boolean;
|
112
112
|
baseUrl: string | undefined;
|
@@ -210,6 +210,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
210
210
|
getPrimitiveOptions: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesPrimitiveOptions<import("@vcmap/core", { with: { "resolution-mode": "import" } }).PrimitiveOptionsType> | undefined;
|
211
211
|
getPrimitive: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesPrimitive | null;
|
212
212
|
getModel: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesModelOptions | null;
|
213
|
+
renderAs: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => "geometry" | "model" | "primitive";
|
213
214
|
setVcsMeta: (vcsMeta: import("@vcmap/core", { with: { "resolution-mode": "import" } }).VcsMeta) => void;
|
214
215
|
setValues: (options: import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesOptions) => void;
|
215
216
|
getValues: () => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesOptions;
|
@@ -11,6 +11,14 @@
|
|
11
11
|
* @param {string|import("@vcmap/core").Viewpoint=} viewpoint
|
12
12
|
*/
|
13
13
|
export function setViewpointAction(item: import("./contentTreeItem.js").default, app: import("@src/vcsUiApp.js").default, viewpoint?: (string | import("@vcmap/core").Viewpoint) | undefined): void;
|
14
|
+
/**
|
15
|
+
* @param {import("./contentTreeItem.js").default} item
|
16
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
17
|
+
* @param {Array<Function>} listeners
|
18
|
+
* @param {Array<string>} layerNames
|
19
|
+
* @param {Array<string>=} availableStyles
|
20
|
+
*/
|
21
|
+
export function setStyleAction(item: import("./contentTreeItem.js").default, app: import("@src/vcsUiApp.js").default, listeners: Array<Function>, layerNames: Array<string>, availableStyles?: Array<string> | undefined): void;
|
14
22
|
/**
|
15
23
|
* @param {import("@vcmap/core").Layer} layer
|
16
24
|
* @returns {StateActionState}
|
@@ -51,11 +59,6 @@ declare class LayerContentTreeItem extends VcsObjectContentTreeItem<LayerContent
|
|
51
59
|
* @private
|
52
60
|
*/
|
53
61
|
private get _layer();
|
54
|
-
/**
|
55
|
-
* @param {Array<string>=} availableStyles
|
56
|
-
* @private
|
57
|
-
*/
|
58
|
-
private _setStyleAction;
|
59
62
|
/**
|
60
63
|
* @private
|
61
64
|
*/
|
@@ -43,6 +43,47 @@ export function setViewpointAction(item, app, viewpoint) {
|
|
43
43
|
}
|
44
44
|
}
|
45
45
|
|
46
|
+
/**
|
47
|
+
* @param {import("./contentTreeItem.js").default} item
|
48
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
49
|
+
* @param {Array<Function>} listeners
|
50
|
+
* @param {Array<string>} layerNames
|
51
|
+
* @param {Array<string>=} availableStyles
|
52
|
+
*/
|
53
|
+
export function setStyleAction(
|
54
|
+
item,
|
55
|
+
app,
|
56
|
+
listeners,
|
57
|
+
layerNames,
|
58
|
+
availableStyles,
|
59
|
+
) {
|
60
|
+
const name = 'StyleSelector';
|
61
|
+
item.removeAction(name);
|
62
|
+
if (Array.isArray(availableStyles) && availableStyles.length > 0) {
|
63
|
+
const { action, destroy } = createModalAction(
|
64
|
+
{
|
65
|
+
name,
|
66
|
+
icon: '$vcsColorSwatch',
|
67
|
+
title: 'content.styleAction.title',
|
68
|
+
},
|
69
|
+
{
|
70
|
+
component,
|
71
|
+
position: {
|
72
|
+
width: 200,
|
73
|
+
},
|
74
|
+
props: reactive({
|
75
|
+
availableStyles: availableStyles.slice(),
|
76
|
+
layerNames: layerNames.slice(),
|
77
|
+
}),
|
78
|
+
},
|
79
|
+
app,
|
80
|
+
vcsAppSymbol,
|
81
|
+
);
|
82
|
+
item.addAction(action, 4);
|
83
|
+
listeners.push(destroy);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
46
87
|
/**
|
47
88
|
* @param {import("@vcmap/core").Layer} layer
|
48
89
|
* @returns {StateActionState}
|
@@ -101,38 +142,6 @@ class LayerContentTreeItem extends VcsObjectContentTreeItem {
|
|
101
142
|
return this._app.layers.getByKey(this._layerName);
|
102
143
|
}
|
103
144
|
|
104
|
-
/**
|
105
|
-
* @param {Array<string>=} availableStyles
|
106
|
-
* @private
|
107
|
-
*/
|
108
|
-
_setStyleAction(availableStyles) {
|
109
|
-
const name = 'StyleSelector';
|
110
|
-
this.removeAction(name);
|
111
|
-
if (Array.isArray(availableStyles) && availableStyles.length > 0) {
|
112
|
-
const { action, destroy } = createModalAction(
|
113
|
-
{
|
114
|
-
name,
|
115
|
-
icon: '$vcsColorSwatch',
|
116
|
-
title: 'content.styleAction.title',
|
117
|
-
},
|
118
|
-
{
|
119
|
-
component,
|
120
|
-
position: {
|
121
|
-
width: 200,
|
122
|
-
},
|
123
|
-
props: reactive({
|
124
|
-
availableStyles: availableStyles.slice(),
|
125
|
-
layerName: this._layerName,
|
126
|
-
}),
|
127
|
-
},
|
128
|
-
this._app,
|
129
|
-
vcsAppSymbol,
|
130
|
-
);
|
131
|
-
this.addAction(action, 4);
|
132
|
-
this._listeners.push(destroy);
|
133
|
-
}
|
134
|
-
}
|
135
|
-
|
136
145
|
/**
|
137
146
|
* @private
|
138
147
|
*/
|
@@ -165,8 +174,13 @@ class LayerContentTreeItem extends VcsObjectContentTreeItem {
|
|
165
174
|
*/
|
166
175
|
_setProperties(properties) {
|
167
176
|
super._setProperties(properties);
|
168
|
-
|
169
|
-
|
177
|
+
setStyleAction(
|
178
|
+
this,
|
179
|
+
this._app,
|
180
|
+
this._listeners,
|
181
|
+
[this._layerName],
|
182
|
+
properties.availableStyles,
|
183
|
+
);
|
170
184
|
setViewpointAction(this, this._app, properties.defaultViewpoint);
|
171
185
|
}
|
172
186
|
|
@@ -2,6 +2,7 @@ export default LayerGroupContentTreeItem;
|
|
2
2
|
export type LayerGroupContentTreeItemOptions = import("./contentTreeItem.js").ContentTreeItemOptions & {
|
3
3
|
layerNames: string[];
|
4
4
|
defaultViewpoint?: string;
|
5
|
+
availableStyles?: string[];
|
5
6
|
};
|
6
7
|
/**
|
7
8
|
* A layer group. When clicked will try to activate all layers in the group or deactivate all layer in the group if all are active.
|
@@ -25,10 +26,15 @@ declare class LayerGroupContentTreeItem extends ContentTreeItem {
|
|
25
26
|
*/
|
26
27
|
private _listeners;
|
27
28
|
/**
|
28
|
-
* @type {string|
|
29
|
+
* @type {string|undefined}
|
29
30
|
* @private
|
30
31
|
*/
|
31
32
|
private _defaultViewpoint;
|
33
|
+
/**
|
34
|
+
* @type {string[]}
|
35
|
+
* @private
|
36
|
+
*/
|
37
|
+
private _availableStyles;
|
32
38
|
/**
|
33
39
|
* @type {Array<import("@vcmap/core").Layer>}
|
34
40
|
* @private
|