@vcmap/ui 6.0.0-rc.5 → 6.0.0-rc.7
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/build/buildTypes.js +9 -5
- package/config/base.config.json +8 -8
- package/config/dev.config.json +4 -0
- package/config/projects.config.json +2 -1
- package/config/theming.config.json +68 -0
- package/config/www.config.json +31 -30
- 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-126f111a.js → cesium-2afc3568.js} +136600 -136700
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-1c8b8674.js → core-3fd82bc2.js} +8384 -7554
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol-27f9b3f3.js → ol-edf7bfb3.js} +2246 -2248
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-c6eb55a5.css +1 -0
- package/dist/assets/{ui-7214428e.js → ui-c6eb55a5.js} +8687 -8464
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-88a2fabe.css → vuetify-c3b6c9b3.css} +1 -1
- package/dist/assets/{vuetify-88a2fabe.js → vuetify-c3b6c9b3.js} +2375 -2369
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +22 -10
- package/index.js +9 -3
- package/package.json +4 -4
- package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
- package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
- package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
- package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
- package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
- package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +2 -2
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +11 -7
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +1 -1
- package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
- package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
- package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
- package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
- 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/plugins/package.json +5 -1
- package/src/actions/StyleSelector.vue +35 -19
- package/src/actions/StyleSelector.vue.d.ts +5 -5
- package/src/actions/actionHelper.d.ts +4 -11
- package/src/actions/actionHelper.js +2 -5
- package/src/actions/listActions.d.ts +2 -2
- package/src/application/VcsApp.vue +20 -26
- package/src/application/VcsApp.vue.d.ts +5 -1
- package/src/application/VcsAttributionsFooter.vue +20 -11
- package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
- package/src/application/VcsContainer.vue +2 -2
- package/src/application/VcsContainer.vue.d.ts +5 -1
- package/src/application/VcsNavbar.vue +9 -1
- package/src/application/VcsNavbar.vue.d.ts +1 -0
- package/src/application/VcsSplashScreen.vue +11 -2
- package/src/application/VcsTextPageFooter.vue +4 -4
- package/src/application/attributionsHelper.d.ts +20 -22
- package/src/application/attributionsHelper.js +4 -4
- package/src/callback/vcsCallback.d.ts +2 -2
- package/src/callback/vcsCallback.js +1 -1
- package/src/components/buttons/VcsActionButtonList.vue +2 -3
- package/src/components/buttons/VcsButton.vue +2 -4
- package/src/components/buttons/VcsButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsFormButton.vue +4 -4
- package/src/components/buttons/VcsToolButton.vue +4 -2
- package/src/components/buttons/VcsToolButton.vue.d.ts +2 -2
- package/src/components/composables.d.ts +5 -0
- package/src/components/composables.js +79 -9
- package/src/components/extent/VcsExtent.vue +10 -6
- package/src/components/extent/VcsExtent.vue.d.ts +1 -0
- package/src/components/flight/VcsFlightComponent.vue +13 -13
- package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +8 -3
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +3 -8
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +0 -1
- package/src/components/form-inputs-controls/VcsCoordinate.vue +1 -2
- package/src/components/form-inputs-controls/VcsFileInput.vue +1 -1
- package/src/components/form-inputs-controls/VcsLabel.vue +32 -9
- package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +2 -0
- package/src/components/form-inputs-controls/VcsRadio.vue +8 -6
- package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +2 -2
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +2 -2
- package/src/components/form-inputs-controls/VcsSlider.vue +5 -5
- package/src/components/form-inputs-controls/VcsTextArea.vue +1 -1
- package/src/components/form-inputs-controls/VcsTextField.vue +10 -1
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +2 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +3 -3
- package/src/components/form-inputs-controls/VcsWizardStep.vue +5 -1
- package/src/components/form-inputs-controls/vcsTextField.scss +7 -1
- package/src/components/form-output/VcsFormattedNumber.vue +1 -1
- package/src/components/import/VcsImportComponent.vue +7 -4
- package/src/components/import/VcsImportComponent.vue.d.ts +1 -1
- package/src/components/lists/VcsActionList.vue +2 -6
- package/src/components/lists/VcsListItemComponent.vue +20 -10
- package/src/components/lists/VcsListItemComponent.vue.d.ts +11 -1
- package/src/components/lists/VcsTreeview.vue +75 -11
- package/src/components/lists/VcsTreeview.vue.d.ts +12 -0
- package/src/components/lists/VcsTreeviewSearchbar.vue +14 -3
- package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
- package/src/components/lists/VcsTreeviewTitle.vue +40 -0
- package/src/components/modelHelper.d.ts +10 -8
- package/src/components/modelHelper.js +8 -6
- package/src/components/notification/VcsHelp.vue +6 -7
- package/src/components/notification/VcsHelp.vue.d.ts +0 -9
- package/src/components/plugins/AbstractConfigEditor.vue +1 -22
- package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
- package/src/components/section/VcsExpansionPanel.vue +9 -3
- package/src/components/section/VcsExpansionPanel.vue.d.ts +2 -2
- package/src/components/section/VcsFormSection.vue +6 -6
- package/src/components/section/VcsFormSection.vue.d.ts +2 -2
- package/src/components/style/VcsImageSelector.vue +14 -6
- package/src/components/style/VcsImageSelector.vue.d.ts +1 -0
- package/src/components/style/VcsStrokeSelector.vue +5 -2
- package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
- package/src/components/style/VcsTextMenu.vue +2 -2
- package/src/components/tables/VcsDataTable.vue +14 -10
- package/src/components/tables/VcsDataTable.vue.d.ts +1 -0
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +17 -34
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +5 -3
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +78 -43
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +4 -2
- package/src/components/viewpoint/VcsViewpointComponent.vue +12 -9
- package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
- package/src/contentTree/contentTreeItem.d.ts +2 -2
- package/src/contentTree/contentTreeItem.js +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/BalloonComponent.vue +21 -13
- package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
- package/src/featureInfo/abstractFeatureInfoView.d.ts +4 -4
- package/src/featureInfo/abstractFeatureInfoView.js +4 -4
- package/src/featureInfo/balloonHelper.js +1 -1
- package/src/featureInfo/featureInfo.d.ts +2 -2
- package/src/featureInfo/featureInfo.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/i18n/i18nCollection.d.ts +9 -15
- package/src/i18n/i18nCollection.js +3 -3
- package/src/legend/VcsLegend.vue +6 -2
- package/src/legend/VcsLegend.vue.d.ts +1 -0
- package/src/manager/collectionManager/CollectionComponentList.vue +1 -1
- package/src/manager/collectionManager/categoryManager.d.ts +1 -1
- package/src/manager/collectionManager/collectionComponentClass.d.ts +2 -2
- package/src/manager/collectionManager/collectionComponentClass.js +4 -4
- package/src/manager/collectionManager/collectionManager.d.ts +1 -1
- package/src/manager/toolbox/GroupToolboxComponent.vue +8 -6
- package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -1
- package/src/manager/toolbox/SelectToolboxComponent.vue +8 -6
- package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -1
- package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +8 -5
- package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -1
- package/src/manager/window/WindowComponentHeader.vue +6 -3
- package/src/manager/window/WindowComponentHeader.vue.d.ts +1 -0
- package/src/manager/window/windowManager.d.ts +6 -6
- package/src/manager/window/windowManager.js +3 -3
- package/src/navigation/OrientationToolsButton.vue +2 -4
- package/src/navigation/TiltSlider.vue +3 -5
- package/src/navigation/locatorHelper.js +3 -21
- package/src/search/SearchComponent.vue +8 -6
- package/src/search/SearchComponent.vue.d.ts +1 -1
- package/src/styles/vcsList.scss +1 -1
- package/src/uiConfig.d.ts +12 -3
- package/src/uiConfig.js +2 -1
- package/src/vcsUiApp.d.ts +39 -53
- package/src/vcsUiApp.js +30 -24
- package/src/vuePlugins/vuetify.d.ts +88 -62
- package/src/vuePlugins/vuetify.js +116 -20
- package/dist/assets/ui-7214428e.css +0 -1
- package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
- package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
- package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
- package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
- package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
- package/src/components/lists/VcsTreeviewLeaf.vue +0 -92
- /package/dist/assets/{vue-c78a5f76.js → vue-aefad438.js} +0 -0
- /package/src/components/lists/{VcsTreeviewLeaf.vue.d.ts → VcsTreeviewTitle.vue.d.ts} +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import { computed, nextTick, ref, watch } from 'vue';
|
1
|
+
import { computed, nextTick, onUnmounted, ref, watch } from 'vue';
|
2
2
|
|
3
3
|
/**
|
4
4
|
* returns a computed which is true, if the provided attributes contain one or more
|
@@ -30,6 +30,35 @@ export function useForwardSlots(slots, exclude = []) {
|
|
30
30
|
});
|
31
31
|
}
|
32
32
|
|
33
|
+
let intersectionObserver = null;
|
34
|
+
/** @type {WeakMap<WeakKey<HTMLElement>, import("vue").ComputedRef<boolean>>} */
|
35
|
+
const observedTargets = new WeakMap();
|
36
|
+
|
37
|
+
/**
|
38
|
+
* if the visibility of the element changes, the computed ref will be set.
|
39
|
+
* @param {HTMLElement} elem
|
40
|
+
* @param {import("vue").ComputedRef<boolean>} visible
|
41
|
+
* @returns {() => void}}
|
42
|
+
*/
|
43
|
+
function registerTargetWithIntersectionObserver(elem, visible) {
|
44
|
+
if (!intersectionObserver) {
|
45
|
+
intersectionObserver = new IntersectionObserver((targets) => {
|
46
|
+
targets.forEach((target) => {
|
47
|
+
const visibilityRef = observedTargets.get(target.target);
|
48
|
+
if (visibilityRef) {
|
49
|
+
visibilityRef.value = target.isIntersecting;
|
50
|
+
}
|
51
|
+
});
|
52
|
+
});
|
53
|
+
}
|
54
|
+
intersectionObserver.observe(elem);
|
55
|
+
observedTargets.set(elem, visible);
|
56
|
+
return () => {
|
57
|
+
intersectionObserver.unobserve(elem);
|
58
|
+
observedTargets.delete(elem);
|
59
|
+
};
|
60
|
+
}
|
61
|
+
|
33
62
|
/**
|
34
63
|
* @param {import("vue").ComputedRef<HTMLElement|undefined>} parent
|
35
64
|
* @param {import("vue").ComputedRef<string|undefined>} tooltip
|
@@ -39,19 +68,49 @@ export function useForwardSlots(slots, exclude = []) {
|
|
39
68
|
export function createEllipseTooltip(parent, tooltip, title) {
|
40
69
|
const offsetWidth = ref(0);
|
41
70
|
const scrollWidth = ref(0);
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
if (
|
46
|
-
|
47
|
-
|
48
|
-
scrollWidth.value = elem.scrollWidth;
|
49
|
-
});
|
71
|
+
const visible = ref(false);
|
72
|
+
let observerListener = () => {};
|
73
|
+
watch(visible, () => {
|
74
|
+
if (visible.value && parent.value) {
|
75
|
+
offsetWidth.value = parent.value.offsetWidth;
|
76
|
+
scrollWidth.value = parent.value.scrollWidth;
|
50
77
|
} else {
|
51
78
|
offsetWidth.value = 0;
|
52
79
|
scrollWidth.value = 0;
|
53
80
|
}
|
54
81
|
});
|
82
|
+
watch(
|
83
|
+
parent,
|
84
|
+
() => {
|
85
|
+
observerListener();
|
86
|
+
visible.value = false;
|
87
|
+
const elem = parent.value;
|
88
|
+
if (elem) {
|
89
|
+
if (elem.checkVisibility()) {
|
90
|
+
visible.value = true;
|
91
|
+
} else {
|
92
|
+
observerListener = registerTargetWithIntersectionObserver(
|
93
|
+
elem,
|
94
|
+
visible,
|
95
|
+
);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
},
|
99
|
+
{ immediate: true },
|
100
|
+
);
|
101
|
+
|
102
|
+
watch(title, async () => {
|
103
|
+
if (visible.value) {
|
104
|
+
await nextTick(() => {
|
105
|
+
offsetWidth.value = parent.value.offsetWidth;
|
106
|
+
scrollWidth.value = parent.value.scrollWidth;
|
107
|
+
});
|
108
|
+
}
|
109
|
+
});
|
110
|
+
|
111
|
+
onUnmounted(() => {
|
112
|
+
observerListener();
|
113
|
+
});
|
55
114
|
|
56
115
|
return computed(() => {
|
57
116
|
if (tooltip.value) {
|
@@ -63,3 +122,14 @@ export function createEllipseTooltip(parent, tooltip, title) {
|
|
63
122
|
return '';
|
64
123
|
});
|
65
124
|
}
|
125
|
+
|
126
|
+
let componentIdCounter = 0;
|
127
|
+
|
128
|
+
/**
|
129
|
+
* Returns a globally unique vcs component id string
|
130
|
+
* @returns {string}
|
131
|
+
*/
|
132
|
+
export function useComponentId() {
|
133
|
+
componentIdCounter += 1;
|
134
|
+
return `vcs-${componentIdCounter}`;
|
135
|
+
}
|
@@ -2,13 +2,13 @@
|
|
2
2
|
<v-container class="py-0 px-1">
|
3
3
|
<v-row no-gutters v-if="modelValue.projection">
|
4
4
|
<v-col :cols="firstCols">
|
5
|
-
<VcsLabel html-for="projection">
|
5
|
+
<VcsLabel :html-for="`${cid}-projection`">
|
6
6
|
{{ $t('components.extent.projection') }}
|
7
7
|
</VcsLabel>
|
8
8
|
</v-col>
|
9
9
|
<v-col>
|
10
10
|
<VcsTextField
|
11
|
-
id="projection"
|
11
|
+
:id="`${cid}-projection`"
|
12
12
|
disabled
|
13
13
|
:model-value="modelValue.projection.epsg"
|
14
14
|
/>
|
@@ -23,9 +23,9 @@
|
|
23
23
|
[(v) => checkInput(v, max[1])],
|
24
24
|
]"
|
25
25
|
>
|
26
|
-
<template #prepend
|
26
|
+
<template #prepend>
|
27
27
|
<v-col :cols="firstCols">
|
28
|
-
<VcsLabel
|
28
|
+
<VcsLabel>
|
29
29
|
{{ $t('components.extent.min') }}
|
30
30
|
</VcsLabel>
|
31
31
|
</v-col>
|
@@ -40,9 +40,9 @@
|
|
40
40
|
[(v) => checkInput(min[1], v)],
|
41
41
|
]"
|
42
42
|
>
|
43
|
-
<template #prepend
|
43
|
+
<template #prepend>
|
44
44
|
<v-col :cols="firstCols">
|
45
|
-
<VcsLabel
|
45
|
+
<VcsLabel>
|
46
46
|
{{ $t('components.extent.max') }}
|
47
47
|
</VcsLabel>
|
48
48
|
</v-col>
|
@@ -59,6 +59,7 @@
|
|
59
59
|
import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
|
60
60
|
import VcsCoordinate from '../form-inputs-controls/VcsCoordinate.vue';
|
61
61
|
import { useProxiedComplexModel } from '../modelHelper.js';
|
62
|
+
import { useComponentId } from '../composables.js';
|
62
63
|
|
63
64
|
function checkInput(min, max) {
|
64
65
|
return min < max || 'components.extent.invalid';
|
@@ -114,10 +115,13 @@
|
|
114
115
|
},
|
115
116
|
});
|
116
117
|
|
118
|
+
const cid = useComponentId();
|
119
|
+
|
117
120
|
return {
|
118
121
|
min: getCoordinate(0, 2),
|
119
122
|
max: getCoordinate(2),
|
120
123
|
checkInput,
|
124
|
+
cid,
|
121
125
|
};
|
122
126
|
},
|
123
127
|
};
|
@@ -15,6 +15,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
15
15
|
min: import("vue").WritableComputedRef<any>;
|
16
16
|
max: import("vue").WritableComputedRef<any>;
|
17
17
|
checkInput: typeof checkInput;
|
18
|
+
cid: string;
|
18
19
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
19
20
|
modelValue: {
|
20
21
|
type: ObjectConstructor;
|
@@ -18,23 +18,23 @@
|
|
18
18
|
<v-container class="py-0 px-1">
|
19
19
|
<v-row no-gutters v-if="!hideName">
|
20
20
|
<v-col cols="6">
|
21
|
-
<VcsLabel html-for="name" required>
|
21
|
+
<VcsLabel :html-for="`${cid}-name`" required>
|
22
22
|
{{ $t('components.flight.name') }}
|
23
23
|
</VcsLabel>
|
24
24
|
</v-col>
|
25
25
|
<v-col>
|
26
|
-
<VcsTextField id="name" clearable v-model="name" />
|
26
|
+
<VcsTextField :id="`${cid}-name`" clearable v-model="name" />
|
27
27
|
</v-col>
|
28
28
|
</v-row>
|
29
29
|
<v-row no-gutters v-if="!hideTitle">
|
30
30
|
<v-col cols="6">
|
31
|
-
<VcsLabel html-for="title">
|
31
|
+
<VcsLabel :html-for="`${cid}-title`">
|
32
32
|
{{ $t('components.flight.title') }}
|
33
33
|
</VcsLabel>
|
34
34
|
</v-col>
|
35
35
|
<v-col>
|
36
36
|
<VcsTextField
|
37
|
-
id="title"
|
37
|
+
:id="`${cid}-title`"
|
38
38
|
clearable
|
39
39
|
:placeholder="$t('components.flight.titlePlaceholder')"
|
40
40
|
v-model="title"
|
@@ -43,13 +43,13 @@
|
|
43
43
|
</v-row>
|
44
44
|
<v-row no-gutters v-if="!hideInterpolation">
|
45
45
|
<v-col cols="6">
|
46
|
-
<VcsLabel html-for="interpolation">
|
46
|
+
<VcsLabel :html-for="`${cid}-interpolation`">
|
47
47
|
{{ $t('components.flight.interpolation') }}
|
48
48
|
</VcsLabel>
|
49
49
|
</v-col>
|
50
50
|
<v-col>
|
51
51
|
<VcsSelect
|
52
|
-
id="
|
52
|
+
:id="`${cid}-interpolation`"
|
53
53
|
:items="[
|
54
54
|
{ value: 'spline', title: 'components.flight.spline' },
|
55
55
|
{ value: 'linear', title: 'components.flight.linear' },
|
@@ -60,13 +60,13 @@
|
|
60
60
|
</v-row>
|
61
61
|
<v-row no-gutters v-if="!hideDuration">
|
62
62
|
<v-col cols="6">
|
63
|
-
<VcsLabel html-for="duration">
|
63
|
+
<VcsLabel :html-for="`${cid}-duration`">
|
64
64
|
{{ $t('components.flight.duration') }}
|
65
65
|
</VcsLabel>
|
66
66
|
</v-col>
|
67
67
|
<v-col>
|
68
68
|
<VcsTextField
|
69
|
-
id="duration"
|
69
|
+
:id="`${cid}-duration`"
|
70
70
|
v-model="duration"
|
71
71
|
:hide-spin-buttons="true"
|
72
72
|
type="number"
|
@@ -79,11 +79,7 @@
|
|
79
79
|
</v-row>
|
80
80
|
<v-row no-gutters v-if="!hideLoop">
|
81
81
|
<v-col cols="6">
|
82
|
-
<VcsCheckbox
|
83
|
-
id="animate"
|
84
|
-
label="components.flight.loop"
|
85
|
-
v-model="loop"
|
86
|
-
/>
|
82
|
+
<VcsCheckbox label="components.flight.loop" v-model="loop" />
|
87
83
|
</v-col>
|
88
84
|
</v-row>
|
89
85
|
</v-container>
|
@@ -116,6 +112,7 @@
|
|
116
112
|
getProvidedFlightInstance,
|
117
113
|
setupFlightAnchorEditingListener,
|
118
114
|
} from './composables.js';
|
115
|
+
import { useComponentId } from '../composables.js';
|
119
116
|
|
120
117
|
/**
|
121
118
|
* @param {import("@vcmap/core").FlightInstance} instance
|
@@ -228,6 +225,8 @@
|
|
228
225
|
editingListener();
|
229
226
|
});
|
230
227
|
|
228
|
+
const cid = useComponentId();
|
229
|
+
|
231
230
|
return {
|
232
231
|
name: flightInstance.name,
|
233
232
|
title: computed({
|
@@ -275,6 +274,7 @@
|
|
275
274
|
},
|
276
275
|
}),
|
277
276
|
disablePlayer,
|
277
|
+
cid,
|
278
278
|
};
|
279
279
|
},
|
280
280
|
};
|
@@ -47,6 +47,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
47
47
|
durationRule: typeof durationRule;
|
48
48
|
loop: import("vue").WritableComputedRef<boolean>;
|
49
49
|
disablePlayer: import("vue").Ref<boolean>;
|
50
|
+
cid: string;
|
50
51
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
51
52
|
heading: {
|
52
53
|
type: StringConstructor;
|
@@ -37,12 +37,17 @@
|
|
37
37
|
</v-checkbox>
|
38
38
|
</template>
|
39
39
|
<style lang="scss" scoped>
|
40
|
+
:deep(.v-icon--size-default) {
|
41
|
+
font-size: calc(var(--v-vcs-font-size) * (1.2 + 0.1 / 3));
|
42
|
+
}
|
40
43
|
.v-input--density-compact :deep(.v-selection-control) {
|
41
|
-
--v-selection-control-size:
|
42
|
-
|
44
|
+
--v-selection-control-size: calc(
|
45
|
+
var(--v-vcs-font-size) * (1.2 + 0.1 / 3) + 4
|
46
|
+
);
|
47
|
+
--v-input-control-height: calc(var(--v-vcs-font-size) + 3px);
|
43
48
|
}
|
44
49
|
:deep(.v-input__control) {
|
45
|
-
height: calc(var(--v-vcs-
|
50
|
+
height: calc(var(--v-vcs-font-size) * 2 - 2px);
|
46
51
|
}
|
47
52
|
// remove ripple effect
|
48
53
|
:deep(.v-selection-control__input::before) {
|
@@ -38,7 +38,6 @@
|
|
38
38
|
filled
|
39
39
|
autofocus
|
40
40
|
hide-spin-buttons
|
41
|
-
:height="itemHeight - 8"
|
42
41
|
@keydown.esc="selected = -1"
|
43
42
|
@blur="selected = -1"
|
44
43
|
@keydown.enter="submitChange($event)"
|
@@ -66,7 +65,6 @@
|
|
66
65
|
filled
|
67
66
|
autofocus
|
68
67
|
hide-spin-buttons
|
69
|
-
:height="itemHeight - 8"
|
70
68
|
@keydown.enter="add($event, newValue)"
|
71
69
|
@click:append-inner="add($event, newValue)"
|
72
70
|
@keydown.esc="cancel"
|
@@ -96,10 +94,11 @@
|
|
96
94
|
display: none;
|
97
95
|
}
|
98
96
|
.v-chip.v-chip--size-small {
|
99
|
-
--v-chip-height: calc(var(--v-vcs-
|
97
|
+
--v-chip-height: calc(var(--v-vcs-font-size) * 2 - 2px);
|
98
|
+
padding: 0 calc(var(--v-vcs-font-size) - 3px);
|
100
99
|
}
|
101
100
|
:deep(.v-icon--size-x-small) {
|
102
|
-
font-size:
|
101
|
+
font-size: calc(var(--v-vcs-font-size) + 3px);
|
103
102
|
}
|
104
103
|
.row-gap {
|
105
104
|
row-gap: 8px !important;
|
@@ -111,7 +110,6 @@
|
|
111
110
|
import { VChip, VIcon } from 'vuetify/components';
|
112
111
|
import { v4 as uuid } from 'uuid';
|
113
112
|
import { usePadding } from '../composables.js';
|
114
|
-
import { useItemHeight } from '../../vuePlugins/vuetify.js';
|
115
113
|
import VcsButton from '../buttons/VcsButton.vue';
|
116
114
|
import VcsTextField from './VcsTextField.vue';
|
117
115
|
import { removeListenersFromAttrs } from '../attrsHelpers.js';
|
@@ -279,8 +277,6 @@
|
|
279
277
|
|
280
278
|
const paddingProvided = usePadding(attrs);
|
281
279
|
|
282
|
-
const itemHeight = useItemHeight();
|
283
|
-
|
284
280
|
return {
|
285
281
|
paddingProvided,
|
286
282
|
localValue,
|
@@ -296,7 +292,6 @@
|
|
296
292
|
submitChange,
|
297
293
|
add,
|
298
294
|
cancel,
|
299
|
-
itemHeight,
|
300
295
|
};
|
301
296
|
},
|
302
297
|
};
|
@@ -38,7 +38,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
38
38
|
submitChange: (e: any) => void;
|
39
39
|
add: (e: any, v: any) => Promise<void>;
|
40
40
|
cancel: () => void;
|
41
|
-
itemHeight: import("vue").ComputedRef<number>;
|
42
41
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
43
42
|
modelValue: {
|
44
43
|
type: ArrayConstructor;
|
@@ -11,7 +11,6 @@
|
|
11
11
|
<template v-for="(_, idx) in localValue">
|
12
12
|
<v-col :key="`coordinate-${idx}`" v-if="!hideZ || idx < 2">
|
13
13
|
<VcsTextField
|
14
|
-
:id="`coordinate-${idx}`"
|
15
14
|
:hide-spin-buttons="true"
|
16
15
|
type="number"
|
17
16
|
class="py-0"
|
@@ -23,7 +22,7 @@
|
|
23
22
|
force-prefix
|
24
23
|
:decimals="decimals[idx]"
|
25
24
|
v-bind="noListenerAttrs"
|
26
|
-
v-model="localValue[idx]"
|
25
|
+
v-model.number="localValue[idx]"
|
27
26
|
:rules="getRulesForAxis(idx)"
|
28
27
|
/>
|
29
28
|
</v-col>
|
@@ -8,22 +8,34 @@
|
|
8
8
|
'pa-1': !paddingProvided,
|
9
9
|
}"
|
10
10
|
>
|
11
|
-
<
|
12
|
-
|
13
|
-
v-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
11
|
+
<span class="ellipsis-text" ref="labelTextRef">
|
12
|
+
<slot />
|
13
|
+
<v-tooltip
|
14
|
+
v-if="labelTooltip"
|
15
|
+
activator="parent"
|
16
|
+
:location="tooltipPosition"
|
17
|
+
:text="$st(labelTooltip)"
|
18
|
+
></v-tooltip>
|
19
|
+
</span>
|
18
20
|
</label>
|
19
21
|
</template>
|
20
22
|
|
21
23
|
<style lang="scss" scoped>
|
24
|
+
.ellipsis-text {
|
25
|
+
flex: 1;
|
26
|
+
white-space: nowrap;
|
27
|
+
overflow: hidden;
|
28
|
+
text-overflow: ellipsis;
|
29
|
+
}
|
22
30
|
.vcs-label {
|
23
31
|
box-sizing: content-box;
|
24
32
|
display: flex;
|
33
|
+
flex-direction: row;
|
34
|
+
white-space: nowrap;
|
35
|
+
overflow: hidden;
|
36
|
+
text-overflow: ellipsis;
|
25
37
|
align-items: center;
|
26
|
-
height: calc(var(--v-vcs-
|
38
|
+
height: calc(var(--v-vcs-font-size) * 2 - 2px);
|
27
39
|
font-size: var(--v-vcs-font-size);
|
28
40
|
}
|
29
41
|
.vcs-label-required:after {
|
@@ -36,7 +48,8 @@
|
|
36
48
|
</style>
|
37
49
|
<script>
|
38
50
|
import { VTooltip } from 'vuetify/components';
|
39
|
-
import {
|
51
|
+
import { computed, ref } from 'vue';
|
52
|
+
import { createEllipseTooltip, usePadding } from '../composables.js';
|
40
53
|
|
41
54
|
/**
|
42
55
|
* @description Stylized wrapper around {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label |label label}.
|
@@ -76,8 +89,18 @@
|
|
76
89
|
},
|
77
90
|
setup(props, { attrs }) {
|
78
91
|
const paddingProvided = usePadding(attrs);
|
92
|
+
const labelTextRef = ref();
|
93
|
+
const labelTooltip = createEllipseTooltip(
|
94
|
+
computed(() => {
|
95
|
+
return labelTextRef.value;
|
96
|
+
}),
|
97
|
+
computed(() => props.tooltip),
|
98
|
+
computed(() => labelTextRef.value?.textContent),
|
99
|
+
);
|
79
100
|
return {
|
80
101
|
paddingProvided,
|
102
|
+
labelTooltip,
|
103
|
+
labelTextRef,
|
81
104
|
};
|
82
105
|
},
|
83
106
|
};
|
@@ -21,6 +21,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
21
21
|
};
|
22
22
|
}, {
|
23
23
|
paddingProvided: import("vue").ComputedRef<boolean>;
|
24
|
+
labelTooltip: import("vue").ComputedRef<string>;
|
25
|
+
labelTextRef: import("vue").Ref<any>;
|
24
26
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
25
27
|
htmlFor: {
|
26
28
|
type: StringConstructor;
|
@@ -9,8 +9,8 @@
|
|
9
9
|
>
|
10
10
|
<v-radio
|
11
11
|
v-for="(item, idx) in items"
|
12
|
-
:id="`${
|
13
|
-
:key="`${
|
12
|
+
:id="`${cid}-${idx}`"
|
13
|
+
:key="`${cid}-${idx}`"
|
14
14
|
:value="item[itemValue] ?? item"
|
15
15
|
:disabled="$attrs.disabled ?? item.disabled ?? false"
|
16
16
|
:color="item?.color ?? undefined"
|
@@ -23,7 +23,7 @@
|
|
23
23
|
>
|
24
24
|
<template #label>
|
25
25
|
<slot name="label" :item="item" :error="!!errorTooltip">
|
26
|
-
<span :html-for="`${
|
26
|
+
<span :html-for="`${cid}-${idx}`">
|
27
27
|
{{ $st(item.label ?? item) }}
|
28
28
|
</span>
|
29
29
|
</slot>
|
@@ -50,8 +50,8 @@
|
|
50
50
|
</template>
|
51
51
|
<style lang="scss" scoped>
|
52
52
|
.v-input--density-compact :deep(.v-selection-control) {
|
53
|
-
--v-selection-control-size: calc(var(--v-vcs-
|
54
|
-
--v-input-control-height: calc(var(--v-vcs-
|
53
|
+
--v-selection-control-size: calc(var(--v-vcs-font-size) * 2 - 2px);
|
54
|
+
--v-input-control-height: calc(var(--v-vcs-font-size) + 3px);
|
55
55
|
}
|
56
56
|
// remove ripple effect
|
57
57
|
:deep(.v-selection-control__input::before) {
|
@@ -73,7 +73,7 @@
|
|
73
73
|
<script>
|
74
74
|
import { ref } from 'vue';
|
75
75
|
import { VRadio, VRadioGroup, VTooltip } from 'vuetify/components';
|
76
|
-
import { usePadding } from '../composables.js';
|
76
|
+
import { useComponentId, usePadding } from '../composables.js';
|
77
77
|
|
78
78
|
/**
|
79
79
|
* @typedef {Object} VcsRadioItem
|
@@ -128,11 +128,13 @@
|
|
128
128
|
const radioGroup = ref();
|
129
129
|
const errorTooltip = ref();
|
130
130
|
const paddingProvided = usePadding(attrs);
|
131
|
+
const cid = useComponentId();
|
131
132
|
|
132
133
|
return {
|
133
134
|
paddingProvided,
|
134
135
|
radioGroup,
|
135
136
|
errorTooltip,
|
137
|
+
cid,
|
136
138
|
};
|
137
139
|
},
|
138
140
|
};
|
@@ -23,6 +23,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
23
23
|
paddingProvided: import("vue").ComputedRef<boolean>;
|
24
24
|
radioGroup: import("vue").Ref<any>;
|
25
25
|
errorTooltip: import("vue").Ref<any>;
|
26
|
+
cid: string;
|
26
27
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
27
28
|
items: {
|
28
29
|
type: ArrayConstructor;
|
@@ -73,7 +73,7 @@
|
|
73
73
|
}
|
74
74
|
}
|
75
75
|
.v-input--density-compact :deep(.v-field) {
|
76
|
-
--v-input-control-height: calc(var(--v-vcs-
|
76
|
+
--v-input-control-height: calc(var(--v-vcs-font-size) * 2 - 2px);
|
77
77
|
--v-field-padding-bottom: 0px;
|
78
78
|
--v-field-input-padding-top: 0px;
|
79
79
|
--v-input-padding-top: 0px;
|
@@ -173,7 +173,7 @@
|
|
173
173
|
if (rawProps.multiple) {
|
174
174
|
return [];
|
175
175
|
}
|
176
|
-
return
|
176
|
+
return null;
|
177
177
|
},
|
178
178
|
},
|
179
179
|
tooltip: {
|
@@ -5,7 +5,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
5
5
|
};
|
6
6
|
modelValue: {
|
7
7
|
type: (BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
|
8
|
-
default(rawProps: any): never[] |
|
8
|
+
default(rawProps: any): never[] | null;
|
9
9
|
};
|
10
10
|
tooltip: {
|
11
11
|
type: StringConstructor;
|
@@ -35,7 +35,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
35
35
|
};
|
36
36
|
modelValue: {
|
37
37
|
type: (BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
|
38
|
-
default(rawProps: any): never[] |
|
38
|
+
default(rawProps: any): never[] | null;
|
39
39
|
};
|
40
40
|
tooltip: {
|
41
41
|
type: StringConstructor;
|
@@ -32,7 +32,7 @@
|
|
32
32
|
</template>
|
33
33
|
<style lang="scss" scoped>
|
34
34
|
.v-input--horizontal :deep(.v-input__control) {
|
35
|
-
min-height: calc(var(--v-vcs-
|
35
|
+
min-height: calc(var(--v-vcs-font-size) * 2 - 2px);
|
36
36
|
}
|
37
37
|
.v-input--horizontal.v-slider--has-labels {
|
38
38
|
margin-bottom: var(--v-vcs-font-size);
|
@@ -77,7 +77,7 @@
|
|
77
77
|
import { computed, ref } from 'vue';
|
78
78
|
import { VSlider, VTooltip } from 'vuetify/components';
|
79
79
|
import { useForwardSlots, usePadding } from '../composables.js';
|
80
|
-
import {
|
80
|
+
import { useFontSize } from '../../vuePlugins/vuetify.js';
|
81
81
|
|
82
82
|
/**
|
83
83
|
* @description stylized wrapper around {@link https://vuetifyjs.com/en/components/sliders/#usage}.
|
@@ -101,12 +101,12 @@
|
|
101
101
|
},
|
102
102
|
},
|
103
103
|
setup(props, { attrs, slots }) {
|
104
|
-
const
|
104
|
+
const fontSize = useFontSize();
|
105
105
|
const thumbSize = computed(() => {
|
106
|
-
return Math.floor(
|
106
|
+
return Math.floor((fontSize.value + 3) / 2);
|
107
107
|
});
|
108
108
|
const trackSize = computed(() => {
|
109
|
-
return Math.floor(
|
109
|
+
return Math.floor((fontSize.value + 3) / 6);
|
110
110
|
});
|
111
111
|
const tickSize = computed(() => {
|
112
112
|
return trackSize.value * 2;
|
@@ -39,7 +39,7 @@
|
|
39
39
|
|
40
40
|
<style lang="scss" scoped>
|
41
41
|
.v-input--density-compact :deep(.v-field) {
|
42
|
-
--v-input-control-height: calc(var(--v-vcs-
|
42
|
+
--v-input-control-height: calc(var(--v-vcs-font-size) * 2 - 2px);
|
43
43
|
--v-field-padding-bottom: 0px;
|
44
44
|
--v-field-input-padding-top: 0px;
|
45
45
|
--v-input-padding-top: 0px;
|
@@ -10,6 +10,7 @@
|
|
10
10
|
class="vcs-text-field primary--placeholder"
|
11
11
|
:class="{
|
12
12
|
'py-1': !paddingProvided,
|
13
|
+
'no-prepended-content': !prependedContent,
|
13
14
|
}"
|
14
15
|
v-bind="$attrs"
|
15
16
|
:prefix="forcePrefix ? undefined : $attrs.prefix"
|
@@ -151,8 +152,12 @@
|
|
151
152
|
return localValue.value ?? '';
|
152
153
|
},
|
153
154
|
set(value) {
|
154
|
-
localValue.value = value;
|
155
155
|
// emit is not needed since the vuetify component already emits an @input event. (forwarded listeners)
|
156
|
+
if (props.type === 'number') {
|
157
|
+
localValue.value = parseFloat(value);
|
158
|
+
} else {
|
159
|
+
localValue.value = value;
|
160
|
+
}
|
156
161
|
},
|
157
162
|
});
|
158
163
|
|
@@ -169,7 +174,11 @@
|
|
169
174
|
const paddingProvided = usePadding(attrs);
|
170
175
|
const forwardSlots = useForwardSlots(slots, ['default', 'message']);
|
171
176
|
|
177
|
+
const prependedContent = computed(() => {
|
178
|
+
return (props.forcePrefix && attrs.prefix) || !!slots['prepend-inner'];
|
179
|
+
});
|
172
180
|
return {
|
181
|
+
prependedContent,
|
173
182
|
forwardSlots,
|
174
183
|
paddingProvided,
|
175
184
|
visibleValue,
|