@vcmap/ui 6.0.0-rc.1 → 6.0.0-rc.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/build/build.js +40 -60
- package/build/buildHelpers.js +2 -8
- package/build/info/conf.json +1 -1
- package/config/base.config.json +4 -4
- package/config/projects.config.json +2 -1
- package/config/splashscreen.config.json +45 -0
- package/dist/.htaccess +7 -0
- package/dist/assets/@mdi/font/README.md +25 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min-7a4f6be0.css +3 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -1
- package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/dist/assets/cesium/Workers/{chunk-ZA25DG4Y.js → chunk-3DRPXHZ4.js} +11 -11
- package/dist/assets/cesium/Workers/{chunk-OAVNIRB4.js → chunk-3GI7DWF7.js} +5 -7
- package/dist/assets/cesium/Workers/{chunk-TFC6TZ3S.js → chunk-4EW3HFFI.js} +33 -22
- package/dist/assets/cesium/Workers/{chunk-LLUNNUJV.js → chunk-4OX4RYLB.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-66QLLS45.js → chunk-4RJH3H6D.js} +11 -9
- package/dist/assets/cesium/Workers/{chunk-MPAZH4BF.js → chunk-5OUTANXX.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-WXTV4ATB.js → chunk-6DH5PLFD.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-A4JVFBQ3.js → chunk-6DXIYFX3.js} +2 -2
- package/dist/assets/cesium/Workers/chunk-A5C2A5O5.js +963 -0
- package/dist/assets/cesium/Workers/{chunk-HQF437NJ.js → chunk-AGTH5JMJ.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-RP2A7BR5.js → chunk-AVFIYUKX.js} +12 -14
- package/dist/assets/cesium/Workers/{chunk-227AJNOA.js → chunk-BAJAVGUF.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-N3JIFFX2.js → chunk-BPY4HDAK.js} +5 -6
- package/dist/assets/cesium/Workers/{chunk-ABADGKYE.js → chunk-D6PDWQXW.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-34YUDLRP.js → chunk-DR7LK6PG.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-OYFCF4PL.js → chunk-DTACCQDR.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-C3SXRKRW.js → chunk-EVU2UNBD.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-6BTKZDRG.js → chunk-F7IEM66T.js} +3 -5
- package/dist/assets/cesium/Workers/{chunk-QT3MPEMI.js → chunk-FSXNF76Y.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-PCJWUS4M.js → chunk-FYYT5EVH.js} +830 -14
- package/dist/assets/cesium/Workers/{chunk-QMEMZIJI.js → chunk-FZDKIUDT.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-XTY7B2N6.js → chunk-G6346EDR.js} +16 -16
- package/dist/assets/cesium/Workers/{chunk-CHHNOC2C.js → chunk-H7PSTL64.js} +95 -155
- package/dist/assets/cesium/Workers/{chunk-2R5O53JW.js → chunk-I67V66MN.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-JS3AW5BK.js → chunk-IALQGTA2.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-K36FEYS7.js → chunk-KNMGSIIN.js} +16 -12
- package/dist/assets/cesium/Workers/{chunk-J3JY6I2C.js → chunk-L4XQPD6P.js} +49 -88
- package/dist/assets/cesium/Workers/{chunk-X4SU25DT.js → chunk-LMTN7R7M.js} +10 -12
- package/dist/assets/cesium/Workers/{chunk-JB2LWGH4.js → chunk-LUYI3XCB.js} +14 -14
- package/dist/assets/cesium/Workers/{chunk-AFFLIKOH.js → chunk-N5MIFVXJ.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-MYZB7C4T.js → chunk-O7OUBDMZ.js} +10 -10
- package/dist/assets/cesium/Workers/{chunk-VLGOATD6.js → chunk-P24I5VUS.js} +22 -22
- package/dist/assets/cesium/Workers/{chunk-KD4Y7CZL.js → chunk-PIOKSAZH.js} +15 -17
- package/dist/assets/cesium/Workers/{chunk-3W63OHNJ.js → chunk-PRKEY4QK.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-O5AMBQ36.js → chunk-Q7PM4W34.js} +8 -8
- package/dist/assets/cesium/Workers/{chunk-GLZBE3ML.js → chunk-QLC66ZRL.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-OZJDGN5F.js → chunk-RRLGJV3Q.js} +16 -16
- package/dist/assets/cesium/Workers/{chunk-CCFQRR6D.js → chunk-S2UEXF6T.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-QIKODV5G.js → chunk-S4VTLNAJ.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-EW2GWJYB.js → chunk-SJC5PRDX.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-KTJSNCK4.js → chunk-T6TZXGG5.js} +230 -20
- package/dist/assets/cesium/Workers/{chunk-RW6LU2CJ.js → chunk-TLGODPEV.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-CTELOFLA.js → chunk-UC566ISB.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-ZFOBYDGF.js → chunk-UMX265HW.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-Z24VKNDO.js → chunk-V7WJDCPA.js} +12 -12
- package/dist/assets/cesium/Workers/{chunk-4MFFIWUA.js → chunk-VD6G7UPU.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-XY7MGBKC.js → chunk-WMVCLETM.js} +14 -16
- package/dist/assets/cesium/Workers/{chunk-IPA4EACJ.js → chunk-WOA6WSHH.js} +12 -12
- package/dist/assets/cesium/Workers/{chunk-PFQBCKBM.js → chunk-X67EJ6X6.js} +4398 -2722
- package/dist/assets/cesium/Workers/{chunk-V3NGATMV.js → chunk-XGI4FRXF.js} +11 -13
- package/dist/assets/cesium/Workers/{chunk-AHKEZ2OE.js → chunk-YFVI4SQI.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-HARLBUOL.js → chunk-YFYPR4MW.js} +11 -8
- package/dist/assets/cesium/Workers/combineGeometry.js +22 -23
- package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -15
- package/dist/assets/cesium/Workers/createCircleGeometry.js +29 -26
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +35 -36
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -30
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +29 -30
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +27 -28
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -19
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +17 -19
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -25
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +18 -18
- package/dist/assets/cesium/Workers/createGeometry.js +52 -33
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +28 -29
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -15
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -14
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +451 -176
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +29 -30
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +24 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +31 -33
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +27 -29
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +30 -31
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +21 -24
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +22 -23
- package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +14 -16
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -23
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -21
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +14 -16
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -25
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +25 -26
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -21
- package/dist/assets/cesium/Workers/createWallGeometry.js +23 -24
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +22 -23
- package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +12 -19
- package/dist/assets/cesium/Workers/decodeI3S.js +600 -92
- package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -82
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +21 -22
- package/dist/assets/{cesium.6b12b4.js → cesium-cb4dbfba.js} +151166 -145641
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.074b78.js → core-72f21835.js} +2299 -2225
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol.8b2e3a.js → ol-2d33bc8b.js} +42505 -44282
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-2ab43a16.css +1 -0
- package/dist/assets/{ui.715986.js → ui-2ab43a16.js} +12001 -11136
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify.28d881.css → vuetify-760ced3b.css} +1 -1
- package/dist/assets/{vuetify.28d881.js → vuetify-760ced3b.js} +5720 -5662
- package/dist/assets/vuetify.js +1 -1
- package/dist/index.html +11 -10
- package/index.d.ts +9 -5
- package/index.html +5 -5
- package/index.js +4 -3
- package/lib/olLib.js +84 -23
- package/package.json +10 -9
- package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +70 -30
- package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
- package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +45 -94
- package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
- package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +35 -10
- package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +40 -54
- package/public/assets/@mdi/font/README.md +25 -0
- package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
- package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/src/actions/actionHelper.js +20 -20
- package/src/actions/flightActions.js +5 -5
- package/src/actions/listActions.d.ts +0 -7
- package/src/actions/listActions.js +4 -20
- package/src/actions/stateRefAction.js +2 -2
- package/src/application/VcsApp.vue +53 -29
- package/src/application/VcsApp.vue.d.ts +1 -0
- package/src/application/VcsAttributions.vue +2 -13
- package/src/application/VcsAttributionsFooter.vue +10 -11
- package/src/application/VcsNavbar.vue.d.ts +1 -1
- package/src/application/VcsPositionDisplay.vue +8 -23
- package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
- package/src/application/VcsSettings.vue +10 -17
- package/src/application/VcsSplashScreen.vue +34 -54
- package/src/application/VcsSplashScreen.vue.d.ts +4 -6
- package/src/application/VcsTextPage.vue +13 -44
- package/src/application/VcsTextPage.vue.d.ts +4 -8
- package/src/application/VcsTextPageFooter.vue +22 -40
- package/src/application/markdownHelper.js +2 -17
- package/src/components/buttons/VcsButton.vue +1 -1
- package/src/components/buttons/VcsButton.vue.d.ts +3 -3
- package/src/components/buttons/VcsFormButton.vue +1 -1
- package/src/components/buttons/VcsFormButton.vue.d.ts +2 -2
- package/src/components/buttons/VcsToolButton.vue +1 -1
- package/src/components/buttons/VcsToolButton.vue.d.ts +4 -4
- package/src/components/composables.d.ts +7 -0
- package/src/components/composables.js +35 -1
- package/src/components/extent/VcsExtentEditor.vue +1 -1
- package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
- package/src/components/flight/VcsFlightComponent.vue +16 -21
- package/src/components/flight/VcsFlightPlayer.vue +27 -5
- package/src/components/form-inputs-controls/VcsCheckbox.vue +19 -11
- package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +1 -1
- package/src/components/form-inputs-controls/VcsCoordinate.vue +13 -1
- package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +2 -64
- package/src/components/form-inputs-controls/VcsFileInput.vue +18 -19
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsLabel.vue +31 -1
- package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +21 -1
- package/src/components/form-inputs-controls/VcsRadio.vue +19 -5
- package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +44 -41
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +7 -4
- package/src/components/form-inputs-controls/VcsSlider.vue +49 -10
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +28 -2
- package/src/components/form-inputs-controls/VcsTextArea.vue +54 -35
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +21 -14
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsWizard.vue +89 -112
- package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +3 -13
- package/src/components/form-inputs-controls/VcsWizardStep.vue +75 -57
- package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +24 -11
- package/src/components/form-inputs-controls/vcsTextField.scss +13 -8
- package/src/components/form-output/VcsFormattedNumber.vue +40 -10
- package/src/components/form-output/VcsFormattedNumber.vue.d.ts +27 -0
- package/src/components/form-output/VcsMarkdown.vue +53 -0
- package/src/{application/VcsCustomScreen.vue.d.ts → components/form-output/VcsMarkdown.vue.d.ts} +6 -5
- package/src/components/lists/VcsActionList.vue +50 -34
- package/src/components/lists/VcsActionList.vue.d.ts +3 -1
- package/src/components/lists/VcsList.vue +82 -158
- package/src/components/lists/VcsList.vue.d.ts +7 -14
- package/src/components/lists/VcsListItem.vue +184 -0
- package/src/components/lists/VcsListItem.vue.d.ts +27 -0
- package/src/components/lists/VcsTreeviewLeaf.vue +1 -1
- package/src/components/modelHelper.d.ts +11 -0
- package/src/components/modelHelper.js +42 -2
- package/src/components/section/VcsExpansionPanel.vue +101 -0
- package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
- package/src/components/style/MenuWrapper.vue +24 -26
- package/src/components/style/MenuWrapper.vue.d.ts +4 -4
- package/src/components/style/VcsFillMenu.vue +9 -16
- package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
- package/src/components/style/VcsFillSelector.vue +13 -16
- package/src/components/style/VcsImageMenu.vue +8 -25
- package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
- package/src/components/style/VcsImageSelector.vue +102 -167
- package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
- package/src/components/style/VcsStrokeMenu.vue +8 -15
- package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
- package/src/components/style/VcsStrokeSelector.vue +11 -18
- package/src/components/style/VcsTextMenu.vue +9 -12
- package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
- package/src/components/style/VcsTextSelector.vue +79 -95
- package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
- package/src/components/style/VcsVectorStyleComponent.vue +7 -18
- package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
- package/src/components/style/composables.d.ts +0 -14
- package/src/components/style/composables.js +0 -49
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +53 -12
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +3 -3
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +475 -586
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +193 -22
- package/src/components/viewpoint/VcsViewpointComponent.vue +21 -8
- package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
- package/src/contentTree/contentTreeItem.d.ts +2 -2
- package/src/contentTree/contentTreeItem.js +7 -7
- package/src/featureInfo/featureInfo.js +8 -10
- package/src/init.d.ts +5 -38
- package/src/init.js +19 -18
- package/src/legend/StyleLegendItem.vue +4 -9
- package/src/legend/VcsLegend.vue +28 -54
- package/src/manager/buttonManager.js +4 -4
- package/src/manager/collectionManager/CollectionComponent.vue +17 -42
- package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
- package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
- package/src/manager/collectionManager/CollectionComponentList.vue +10 -8
- package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
- package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
- package/src/manager/collectionManager/CollectionManager.vue +1 -1
- package/src/manager/collectionManager/collectionComponentClass.js +6 -9
- package/src/manager/collectionManager/collectionManager.js +10 -10
- package/src/manager/collectionManager/editorCollectionComponentClass.js +4 -4
- package/src/manager/contextMenu/contextMenuManager.js +2 -2
- package/src/manager/navbarManager.js +2 -2
- package/src/manager/panel/panelManager.js +3 -3
- package/src/manager/toolbox/toolboxManager.js +10 -10
- package/src/manager/window/windowManager.d.ts +6 -6
- package/src/manager/window/windowManager.js +6 -6
- package/src/navigation/MapNavigation.vue +6 -3
- package/src/navigation/OrientationToolsButton.vue +39 -26
- package/src/navigation/OrientationToolsButton.vue.d.ts +5 -1
- package/src/navigation/TiltSlider.vue +83 -88
- package/src/navigation/TiltSlider.vue.d.ts +10 -7
- package/src/navigation/VcsCompass.vue +17 -11
- package/src/navigation/VcsCompass.vue.d.ts +2 -0
- package/src/search/search.js +2 -2
- package/src/siteConfig.js +1 -1
- package/src/state.js +4 -4
- package/src/styles/_typography.scss +1 -0
- package/src/vcsUiApp.d.ts +24 -26
- package/src/vcsUiApp.js +11 -4
- package/src/vuePlugins/i18n.js +7 -0
- package/src/vuePlugins/vuetify.d.ts +2 -0
- package/src/vuePlugins/vuetify.js +15 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
- package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +0 -3273
- package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +0 -73
- package/dist/assets/index-ca7EmZ3d.js +0 -1
- package/dist/assets/ui.715986.css +0 -1
- package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/src/application/VcsCustomScreen.vue +0 -45
- package/src/components/vector-properties/composables.d.ts +0 -33
- package/src/components/vector-properties/composables.js +0 -100
- package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
- package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
- package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
- package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
- package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
- package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
- package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
- package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
- package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
- package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
- package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
- package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
- package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
- package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
- package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
- package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
- package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
- package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
- package/dist/assets/{vue.0f2c53.js → vue-03b265aa.js} +0 -0
- package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
- package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
- package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
- package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
- package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +0 -0
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -1
@@ -1,26 +1,25 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="d-contents">
|
2
|
+
<div class="d-contents vcs-list">
|
3
3
|
<vcs-treeview-searchbar
|
4
4
|
v-if="searchable"
|
5
5
|
:placeholder="searchbarPlaceholder"
|
6
6
|
v-model="query"
|
7
7
|
/>
|
8
|
-
<v-list
|
9
|
-
<v-list-item v-if="showTitle
|
8
|
+
<v-list :class="{ 'vcs-list__selectable': selectable }">
|
9
|
+
<v-list-item v-if="showTitle && title">
|
10
10
|
<template #prepend>
|
11
11
|
<v-icon v-if="icon">
|
12
12
|
{{ icon }}
|
13
13
|
</v-icon>
|
14
14
|
</template>
|
15
|
-
<v-list-item-title>
|
16
|
-
<
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
<span v-if="selectable && selected.length > 0">
|
15
|
+
<v-list-item-title class="font-weight-bold" ref="listHeader">
|
16
|
+
<span :class="{ 'vcs-list-title__selected': selected.length > 0 }">
|
17
|
+
{{ $st(title) }}
|
18
|
+
</span>
|
19
|
+
<v-tooltip v-if="listHeaderTooltip" activator="parent">
|
20
|
+
{{ $st(listHeaderTooltip) }}
|
21
|
+
</v-tooltip>
|
22
|
+
<span v-if="selectable && selected.length > 0" class="ml-1">
|
24
23
|
{{ `(${selected.length})` }}
|
25
24
|
</span>
|
26
25
|
</v-list-item-title>
|
@@ -32,90 +31,48 @@
|
|
32
31
|
/>
|
33
32
|
</template>
|
34
33
|
</v-list-item>
|
35
|
-
<
|
36
|
-
<
|
34
|
+
<template v-for="(item, index) in renderingItems">
|
35
|
+
<VcsListItem
|
36
|
+
v-if="item"
|
37
|
+
:dragging="dragging === index"
|
38
|
+
:item="item"
|
39
|
+
:key="`item-${index}`"
|
37
40
|
:active="selected.includes(item)"
|
38
|
-
:disabled="item.disabled"
|
39
41
|
@mousedown.shift="$event.preventDefault()"
|
40
42
|
@mouseover="hovering = index"
|
41
43
|
@mouseout="hovering = undefined"
|
42
44
|
:draggable="isDraggable"
|
43
45
|
@dragstart="drag($event, item, index)"
|
44
46
|
@mouseup="drop($event, index)"
|
45
|
-
color="primary"
|
46
47
|
:class="{
|
47
48
|
'v-list-item__selected': selected.includes(item),
|
48
49
|
'v-list-item__lighten_even': lightenEven,
|
49
50
|
'v-list-item__lighten_odd': !lightenEven,
|
50
51
|
'vcs-draggable-item': isDraggable,
|
51
52
|
'v-list-item__dragged': dragging === index,
|
53
|
+
'v-list-item__dragged_over': dragging !== undefined,
|
52
54
|
'border-bottom': borderBottom(index),
|
53
55
|
'border-top': borderTop(index),
|
54
56
|
'cursor-pointer': selectable && !isDraggable,
|
55
57
|
}"
|
56
58
|
@click="select(item, $event)"
|
57
59
|
>
|
58
|
-
<template #
|
59
|
-
<
|
60
|
-
|
61
|
-
|
60
|
+
<template #title="titleScope">
|
61
|
+
<slot name="item.title" v-bind="{ ...titleScope, index }"></slot>
|
62
|
+
</template>
|
63
|
+
<template #subtitle="subtitleScope">
|
64
|
+
<slot name="item.subtitle" v-bind="{ ...subtitleScope, index }" />
|
62
65
|
</template>
|
63
|
-
<
|
64
|
-
|
65
|
-
dragging !== undefined
|
66
|
-
? undefined
|
67
|
-
: $st(item.tooltip || overflowTitle(index, item.title))
|
68
|
-
"
|
69
|
-
>
|
70
|
-
<template #activator="{ props }">
|
71
|
-
<v-list-item-title
|
72
|
-
v-bind="props"
|
73
|
-
ref="titles"
|
74
|
-
class="d-flex gc-2"
|
75
|
-
>
|
76
|
-
<slot name="item.prepend-title" :item="item" :index="index" />
|
77
|
-
<slot name="item.title" :item="item" :index="index">
|
78
|
-
<VcsTextField
|
79
|
-
v-if="item.rename"
|
80
|
-
:model-value="item.title"
|
81
|
-
autofocus
|
82
|
-
:no-padding="true"
|
83
|
-
@update:model-value="(value) => rename(item, value)"
|
84
|
-
@click.stop
|
85
|
-
@keydown.enter="item.rename = false"
|
86
|
-
@blur="item.rename = false"
|
87
|
-
:rules="[(v) => !!v || 'components.validation.required']"
|
88
|
-
/>
|
89
|
-
<span v-else>
|
90
|
-
{{ $st(item.title) }}
|
91
|
-
</span>
|
92
|
-
</slot>
|
93
|
-
<slot
|
94
|
-
name="item.append-title"
|
95
|
-
:item="item"
|
96
|
-
:index="index"
|
97
|
-
class="ml-auto"
|
98
|
-
/>
|
99
|
-
</v-list-item-title>
|
100
|
-
</template>
|
101
|
-
</VcsTooltip>
|
102
|
-
<template #append>
|
103
|
-
<VcsBadge v-if="item.hasUpdate" :color="'warning'" />
|
104
|
-
<vcs-action-button-list
|
105
|
-
v-if="item.actions?.length > 0"
|
106
|
-
:actions="item.actions"
|
107
|
-
:disabled="item.disabled"
|
108
|
-
:block-overflow="true"
|
109
|
-
:overflow-count="actionButtonListOverflowCount"
|
110
|
-
/>
|
66
|
+
<template #default="scope">
|
67
|
+
<slot name="item.default" v-bind="{ ...scope, index }" />
|
111
68
|
</template>
|
112
|
-
</
|
69
|
+
</VcsListItem>
|
113
70
|
<slot name="item.intermediate" :item="item" :index="index" />
|
114
71
|
<div
|
115
72
|
v-if="hasIntermediateSlot"
|
116
73
|
:key="`item-intermediate-child-balance-${index}`"
|
117
74
|
/>
|
118
|
-
</
|
75
|
+
</template>
|
119
76
|
</v-list>
|
120
77
|
</div>
|
121
78
|
</template>
|
@@ -130,12 +87,17 @@
|
|
130
87
|
shallowRef,
|
131
88
|
watch,
|
132
89
|
} from 'vue';
|
133
|
-
import {
|
90
|
+
import {
|
91
|
+
VList,
|
92
|
+
VListItem,
|
93
|
+
VIcon,
|
94
|
+
VListItemTitle,
|
95
|
+
VTooltip,
|
96
|
+
} from 'vuetify/components';
|
134
97
|
import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
|
135
|
-
import VcsTooltip from '../notification/VcsTooltip.vue';
|
136
98
|
import VcsTreeviewSearchbar from './VcsTreeviewSearchbar.vue';
|
137
|
-
import
|
138
|
-
import
|
99
|
+
import VcsListItem from './VcsListItem.vue';
|
100
|
+
import { createEllipseTooltip } from '../composables.js';
|
139
101
|
|
140
102
|
/**
|
141
103
|
* @param {import("vue").Ref<VcsListItem[]>} items
|
@@ -181,7 +143,7 @@
|
|
181
143
|
* @property {string} name
|
182
144
|
* @property {boolean} [visible] - Whether to display this item or not.
|
183
145
|
* @property {boolean} [disabled] - Whether this item should be displayed as disabled.
|
184
|
-
* @property {boolean} [
|
146
|
+
* @property {boolean|import("../../actions/actionHelper.js").ActionOptions} [renamable] - Whether the title of can be edited. will add a rename action to the end of the action list. This action will call titleChanged with the new title, you must provide the callback yourself, otherwise this does not work as expeted.
|
185
147
|
* @property {string} title - The title to be displayed
|
186
148
|
* @property {string} [tooltip]
|
187
149
|
* @property {string|HTMLCanvasElement|HTMLImageElement|undefined} [icon] - An optional icon to display with this item. Can be a URL or HTMLElement.
|
@@ -189,7 +151,7 @@
|
|
189
151
|
* @property {Array<import("../../actions/actionHelper.js").VcsAction>} [actions]
|
190
152
|
* @property {Array<function(PointerEvent):void>|undefined} [clickedCallbacks] - An array of callbacks called on item click. called before selection update
|
191
153
|
* @property {function(boolean):void} [selectionChanged] - A callback called if the selection changes with the current selection status. called before value update
|
192
|
-
* @property {function(string):void} [titleChanged] - A callback called if the title changes via rename action.
|
154
|
+
* @property {function(string):void} [titleChanged] - A callback called if the title changes via rename action. only usable with renamble true.
|
193
155
|
*/
|
194
156
|
|
195
157
|
/**
|
@@ -198,12 +160,6 @@
|
|
198
160
|
* @property {number} targetIndex
|
199
161
|
*/
|
200
162
|
|
201
|
-
/**
|
202
|
-
* @typedef {Object} ItemRenamedEvent
|
203
|
-
* @property {VcsListItem} item
|
204
|
-
* @property {string} newTitle
|
205
|
-
*/
|
206
|
-
|
207
163
|
/**
|
208
164
|
* @description
|
209
165
|
* The VCS list is intended to render items. Items can be selectable (by default, more than one) or only a single item can
|
@@ -230,7 +186,6 @@
|
|
230
186
|
* @vue-prop {string} [tooltip] - tooltip to render on the list title
|
231
187
|
* @vue-prop {Array<import("../../actions/actionHelper.js").VcsAction>} [actions] - actions to render in the list title
|
232
188
|
* @vue-event {ItemMovedEvent} item-moved - event triggered after item was dragged and is dropped
|
233
|
-
* @vue-event {ItemRenamedEvent} item-renamed - event triggered after item was renamed
|
234
189
|
* @vue-data {slot} [#item.prepend-title] - A slot to adapt the list item titel, adding content before the title. Binds item and index.
|
235
190
|
* @vue-data {slot} [#item.title] - A slot to adapt the list item titel. Default content is a span or VcsTextField for active rename action. Binds item and index.
|
236
191
|
* @vue-data {slot} [#item.append-title] - A slot to adapt the list item titel, adding content after the title. Binds item and index.
|
@@ -239,15 +194,14 @@
|
|
239
194
|
export default {
|
240
195
|
name: 'VcsList',
|
241
196
|
components: {
|
242
|
-
|
197
|
+
VcsListItem,
|
243
198
|
VcsTreeviewSearchbar,
|
244
199
|
VcsActionButtonList,
|
245
|
-
|
200
|
+
VTooltip,
|
246
201
|
VList,
|
247
202
|
VListItem,
|
248
203
|
VIcon,
|
249
204
|
VListItemTitle,
|
250
|
-
VcsTextField,
|
251
205
|
},
|
252
206
|
props: {
|
253
207
|
items: {
|
@@ -335,8 +289,7 @@
|
|
335
289
|
return !(!props.searchable && !props.showTitle);
|
336
290
|
});
|
337
291
|
let firstSelected = null;
|
338
|
-
const
|
339
|
-
const listHeader = ref(null);
|
292
|
+
const listHeader = ref();
|
340
293
|
|
341
294
|
watch(
|
342
295
|
props,
|
@@ -383,7 +336,7 @@
|
|
383
336
|
let draggedItem = null;
|
384
337
|
|
385
338
|
const isDraggable = computed(() => {
|
386
|
-
return query.value
|
339
|
+
return !query.value && props.draggable;
|
387
340
|
});
|
388
341
|
|
389
342
|
/**
|
@@ -587,31 +540,12 @@
|
|
587
540
|
},
|
588
541
|
drag,
|
589
542
|
drop,
|
590
|
-
titles,
|
591
|
-
overflowTitle(index, alternative) {
|
592
|
-
const elem = titles.value[index];
|
593
|
-
if (elem && elem.offsetWidth < elem.scrollWidth) {
|
594
|
-
return alternative;
|
595
|
-
}
|
596
|
-
return '';
|
597
|
-
},
|
598
543
|
listHeader,
|
599
|
-
listHeaderTooltip:
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
if (elem && elem.offsetWidth < elem.scrollWidth) {
|
605
|
-
return props.title;
|
606
|
-
}
|
607
|
-
return '';
|
608
|
-
}),
|
609
|
-
rename(item, newTitle) {
|
610
|
-
if (newTitle) {
|
611
|
-
emit('item-renamed', { item, newTitle });
|
612
|
-
item.titleChanged?.(newTitle);
|
613
|
-
}
|
614
|
-
},
|
544
|
+
listHeaderTooltip: createEllipseTooltip(
|
545
|
+
computed(() => listHeader.value?.$el),
|
546
|
+
computed(() => props.tooltip),
|
547
|
+
computed(() => props.title),
|
548
|
+
),
|
615
549
|
hasIntermediateSlot: computed(() => !!slots['item.intermediate']),
|
616
550
|
};
|
617
551
|
},
|
@@ -620,67 +554,57 @@
|
|
620
554
|
|
621
555
|
<style lang="scss" scoped>
|
622
556
|
:deep(.v-list) {
|
623
|
-
.v-list-item__lighten_even {
|
624
|
-
|
625
|
-
background-color: var(--v-base-lighten4);
|
626
|
-
}
|
557
|
+
.v-list-item__lighten_even:nth-child(even) {
|
558
|
+
background-color: rgb(var(--v-theme-base-lighten-4));
|
627
559
|
}
|
628
|
-
.v-list-item__lighten_odd {
|
629
|
-
|
630
|
-
background-color: var(--v-base-lighten4);
|
631
|
-
}
|
560
|
+
.v-list-item__lighten_odd:nth-child(odd) {
|
561
|
+
background-color: rgb(var(--v-theme-base-lighten-4));
|
632
562
|
}
|
633
563
|
.v-list-item__dragged {
|
634
|
-
background-color: var(--v-base-
|
564
|
+
background-color: rgb(var(--v-theme-base-lighten-2)) !important;
|
565
|
+
}
|
566
|
+
.v-list-item__dragged_over:hover {
|
567
|
+
background-color: rgb(var(--v-theme-base-lighten-1)) !important;
|
635
568
|
}
|
636
569
|
.v-list-item__selected {
|
637
570
|
border-left: solid 4px;
|
638
|
-
border-left-color: var(--v-primary
|
571
|
+
border-left-color: rgb(var(--v-theme-primary));
|
572
|
+
color: rgb(var(--v-theme-primary));
|
639
573
|
padding-left: 12px !important;
|
640
574
|
}
|
575
|
+
.v-list-item--active {
|
576
|
+
.v-list-item__append {
|
577
|
+
color: rgb(var(--v-theme-on-surface));
|
578
|
+
}
|
579
|
+
}
|
641
580
|
.v-list-item {
|
642
|
-
padding: 4px 8px 4px 16px;
|
643
581
|
&.vcs-draggable-item:hover {
|
644
582
|
cursor: grab;
|
645
583
|
user-select: none;
|
646
584
|
}
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
}
|
651
|
-
&.border-top {
|
652
|
-
border-top: solid;
|
653
|
-
border-top-color: var(--v-base-lighten2);
|
654
|
-
}
|
655
|
-
&:after {
|
656
|
-
display: none;
|
657
|
-
}
|
658
|
-
&.font-weight-bold {
|
659
|
-
.v-list-item__title {
|
660
|
-
font-weight: 700;
|
585
|
+
&:hover {
|
586
|
+
.v-list-item__overlay {
|
587
|
+
background-color: rgb(var(--v-theme-base));
|
661
588
|
}
|
662
589
|
}
|
663
|
-
.
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
}
|
590
|
+
.vcs-list-title__selected {
|
591
|
+
width: 90%;
|
592
|
+
display: inline-block;
|
593
|
+
overflow: hidden;
|
594
|
+
text-overflow: ellipsis;
|
595
|
+
vertical-align: bottom;
|
670
596
|
}
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
height: 16px;
|
683
|
-
}
|
597
|
+
}
|
598
|
+
|
599
|
+
&:not(.vcs-list__selectable) {
|
600
|
+
.v-list-item--link {
|
601
|
+
cursor: auto;
|
602
|
+
}
|
603
|
+
cursor: auto;
|
604
|
+
|
605
|
+
&:hover {
|
606
|
+
.v-list-item__overlay {
|
607
|
+
background-color: transparent;
|
684
608
|
}
|
685
609
|
}
|
686
610
|
}
|
@@ -97,11 +97,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
97
97
|
clear(): void;
|
98
98
|
drag: (e: MouseEvent, item: VcsListItem, index: number) => void;
|
99
99
|
drop: (e: MouseEvent, targetIndex: number) => void;
|
100
|
-
|
101
|
-
overflowTitle(index: any, alternative: any): any;
|
102
|
-
listHeader: import("vue").Ref<null>;
|
100
|
+
listHeader: import("vue").Ref<any>;
|
103
101
|
listHeaderTooltip: import("vue").ComputedRef<string>;
|
104
|
-
rename(item: any, newTitle: any): void;
|
105
102
|
hasIntermediateSlot: import("vue").ComputedRef<boolean>;
|
106
103
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
107
104
|
items: {
|
@@ -163,17 +160,17 @@ declare const _default: import("vue").DefineComponent<{
|
|
163
160
|
};
|
164
161
|
}>>, {
|
165
162
|
title: string;
|
166
|
-
modelValue: unknown[];
|
167
|
-
tooltip: string;
|
168
163
|
icon: string;
|
164
|
+
modelValue: unknown[];
|
169
165
|
draggable: boolean;
|
166
|
+
tooltip: string;
|
170
167
|
selectable: boolean;
|
171
168
|
actions: unknown[];
|
172
169
|
searchbarPlaceholder: string;
|
170
|
+
actionButtonListOverflowCount: number;
|
173
171
|
singleSelect: boolean;
|
174
172
|
searchable: boolean;
|
175
173
|
showTitle: boolean;
|
176
|
-
actionButtonListOverflowCount: number;
|
177
174
|
}, {}>;
|
178
175
|
export default _default;
|
179
176
|
export type VcsListItem = {
|
@@ -187,9 +184,9 @@ export type VcsListItem = {
|
|
187
184
|
*/
|
188
185
|
disabled?: boolean | undefined;
|
189
186
|
/**
|
190
|
-
* - Whether the title of
|
187
|
+
* - Whether the title of can be edited. will add a rename action to the end of the action list. This action will call titleChanged with the new title, you must provide the callback yourself, otherwise this does not work as expeted.
|
191
188
|
*/
|
192
|
-
|
189
|
+
renamable?: boolean | import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).ActionOptions | undefined;
|
193
190
|
/**
|
194
191
|
* - The title to be displayed
|
195
192
|
*/
|
@@ -213,7 +210,7 @@ export type VcsListItem = {
|
|
213
210
|
*/
|
214
211
|
selectionChanged?: ((arg0: boolean) => void) | undefined;
|
215
212
|
/**
|
216
|
-
* - A callback called if the title changes via rename action.
|
213
|
+
* - A callback called if the title changes via rename action. only usable with renamble true.
|
217
214
|
*/
|
218
215
|
titleChanged?: ((arg0: string) => void) | undefined;
|
219
216
|
};
|
@@ -221,7 +218,3 @@ export type ItemMovedEvent = {
|
|
221
218
|
item: VcsListItem;
|
222
219
|
targetIndex: number;
|
223
220
|
};
|
224
|
-
export type ItemRenamedEvent = {
|
225
|
-
item: VcsListItem;
|
226
|
-
newTitle: string;
|
227
|
-
};
|
@@ -0,0 +1,184 @@
|
|
1
|
+
<script setup>
|
2
|
+
import {
|
3
|
+
VListItem,
|
4
|
+
VIcon,
|
5
|
+
VListItemTitle,
|
6
|
+
VTooltip,
|
7
|
+
} from 'vuetify/components';
|
8
|
+
import { computed, ref } from 'vue';
|
9
|
+
import { is } from '@vcsuite/check';
|
10
|
+
import VcsBadge from '../notification/VcsBadge.vue';
|
11
|
+
import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
|
12
|
+
import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
|
13
|
+
import { createEllipseTooltip } from '../composables.js';
|
14
|
+
|
15
|
+
const props = defineProps({
|
16
|
+
/** @type {import("./VcsList.vue").VcsListItem} */
|
17
|
+
item: {
|
18
|
+
type: Object,
|
19
|
+
required: true,
|
20
|
+
},
|
21
|
+
actionButtonListOverflowCount: {
|
22
|
+
type: Number,
|
23
|
+
default: undefined,
|
24
|
+
},
|
25
|
+
dragging: {
|
26
|
+
type: Boolean,
|
27
|
+
default: false,
|
28
|
+
},
|
29
|
+
});
|
30
|
+
|
31
|
+
const rename = ref(false);
|
32
|
+
const renameAction = computed(() => {
|
33
|
+
if (props.item.renamable) {
|
34
|
+
return {
|
35
|
+
name: 'list.renameItem',
|
36
|
+
...(is(props.item.renamable, Object) ? props.item.renamable : {}),
|
37
|
+
callback() {
|
38
|
+
rename.value = true;
|
39
|
+
},
|
40
|
+
};
|
41
|
+
}
|
42
|
+
return undefined;
|
43
|
+
});
|
44
|
+
|
45
|
+
function renameOff() {
|
46
|
+
rename.value = false;
|
47
|
+
}
|
48
|
+
|
49
|
+
const actions = computed(() => {
|
50
|
+
if (renameAction.value) {
|
51
|
+
return [...(props.item?.actions || []), renameAction.value];
|
52
|
+
}
|
53
|
+
return [...(props.item?.actions || [])];
|
54
|
+
});
|
55
|
+
|
56
|
+
const title = ref();
|
57
|
+
const tooltip = createEllipseTooltip(
|
58
|
+
computed(() => {
|
59
|
+
if (rename.value) {
|
60
|
+
return undefined;
|
61
|
+
}
|
62
|
+
return title.value?.$el;
|
63
|
+
}),
|
64
|
+
computed(() => props.item?.tooltip),
|
65
|
+
computed(() => props.item?.title),
|
66
|
+
);
|
67
|
+
|
68
|
+
function renameItem(item, newTitle) {
|
69
|
+
if (newTitle) {
|
70
|
+
item.titleChanged?.(newTitle);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
</script>
|
74
|
+
|
75
|
+
<template>
|
76
|
+
<v-list-item :disabled="item.disabled" v-bind="$attrs">
|
77
|
+
<template #prepend>
|
78
|
+
<v-icon v-if="item.icon">
|
79
|
+
{{ item.icon }}
|
80
|
+
</v-icon>
|
81
|
+
</template>
|
82
|
+
<template #title>
|
83
|
+
<slot name="title" v-bind="{ item, dragging, tooltip }">
|
84
|
+
<v-list-item-title
|
85
|
+
ref="title"
|
86
|
+
:class="{ 'vcs-list-item__rename': rename }"
|
87
|
+
>
|
88
|
+
<vcs-text-field
|
89
|
+
v-if="rename"
|
90
|
+
:model-value="item.title"
|
91
|
+
autofocus
|
92
|
+
@update:model-value="(value) => renameItem(item, value)"
|
93
|
+
@click.stop
|
94
|
+
@keydown.enter="renameOff"
|
95
|
+
@blur="renameOff"
|
96
|
+
:rules="[(v) => !!v || 'components.validation.required']"
|
97
|
+
class="pa-0"
|
98
|
+
/>
|
99
|
+
<template v-else>
|
100
|
+
{{ $st(item.title) }}
|
101
|
+
</template>
|
102
|
+
<v-tooltip v-if="dragging === false && tooltip" activator="parent">
|
103
|
+
{{ $st(tooltip) }}
|
104
|
+
</v-tooltip>
|
105
|
+
</v-list-item-title>
|
106
|
+
</slot>
|
107
|
+
</template>
|
108
|
+
<template #subtitle>
|
109
|
+
<slot name="subtitle" v-bind="{ item }" />
|
110
|
+
</template>
|
111
|
+
<template #default="scope">
|
112
|
+
<slot name="default" v-bind="{ ...scope, item, dragging, tooltip }" />
|
113
|
+
</template>
|
114
|
+
<template #append>
|
115
|
+
<vcs-badge v-if="item.hasUpdate" class="mr-1" />
|
116
|
+
<vcs-action-button-list
|
117
|
+
v-if="actions.length > 0"
|
118
|
+
:actions="actions"
|
119
|
+
:disabled="item.disabled"
|
120
|
+
:block-overflow="true"
|
121
|
+
:overflow-count="actionButtonListOverflowCount"
|
122
|
+
class="ml-2"
|
123
|
+
/>
|
124
|
+
</template>
|
125
|
+
</v-list-item>
|
126
|
+
</template>
|
127
|
+
|
128
|
+
<style lang="scss" scoped>
|
129
|
+
.v-list-item {
|
130
|
+
padding: 4px 8px 4px 8px;
|
131
|
+
padding-inline-end: 8px !important;
|
132
|
+
padding-inline-start: 16px !important;
|
133
|
+
&.border-bottom {
|
134
|
+
border-bottom: solid;
|
135
|
+
border-bottom-color: rgb(var(--v-theme-base-lighten-2));
|
136
|
+
}
|
137
|
+
&.border-top {
|
138
|
+
border-top: solid;
|
139
|
+
border-top-color: rgb(var(--v-theme-base-lighten-2));
|
140
|
+
}
|
141
|
+
&:after {
|
142
|
+
display: none;
|
143
|
+
}
|
144
|
+
&.font-weight-bold {
|
145
|
+
.v-list-item__title {
|
146
|
+
font-weight: 700;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
:deep(.v-list-item__action) {
|
150
|
+
.v-icon {
|
151
|
+
font-size: 16px;
|
152
|
+
}
|
153
|
+
&:last-child {
|
154
|
+
min-width: auto;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
:deep(.v-list-item__content) {
|
158
|
+
flex-wrap: nowrap;
|
159
|
+
column-gap: 4px;
|
160
|
+
.v-icon,
|
161
|
+
.action-btn-wrap {
|
162
|
+
flex: 1 1 auto;
|
163
|
+
}
|
164
|
+
.v-icon {
|
165
|
+
font-size: 16px;
|
166
|
+
.v-icon__component {
|
167
|
+
width: 16px;
|
168
|
+
height: 16px;
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
:deep(.v-list-item__prepend > .v-badge ~ .v-list-item__spacer),
|
173
|
+
:deep(.v-list-item__prepend > .v-icon ~ .v-list-item__spacer),
|
174
|
+
:deep(.v-list-item__prepend > .v-tooltip ~ .v-list-item__spacer) {
|
175
|
+
width: 8px;
|
176
|
+
}
|
177
|
+
:deep(.v-list-item__overlay) {
|
178
|
+
background-color: transparent;
|
179
|
+
}
|
180
|
+
:deep(.vcs-list-item__rename) {
|
181
|
+
color: rgb(var(--v-theme-on-surface));
|
182
|
+
}
|
183
|
+
}
|
184
|
+
</style>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {
|
2
|
+
$props: {
|
3
|
+
readonly [x: string]: any;
|
4
|
+
};
|
5
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
|
6
|
+
title?(_: {
|
7
|
+
item: any;
|
8
|
+
dragging: any;
|
9
|
+
tooltip: string;
|
10
|
+
}): any;
|
11
|
+
subtitle?(_: {
|
12
|
+
item: any;
|
13
|
+
}): any;
|
14
|
+
default?(_: {
|
15
|
+
item: any;
|
16
|
+
dragging: any;
|
17
|
+
tooltip: string;
|
18
|
+
isActive: boolean;
|
19
|
+
isSelected: boolean;
|
20
|
+
isIndeterminate: boolean;
|
21
|
+
select: (value: boolean) => void;
|
22
|
+
}): any;
|
23
|
+
}>;
|
24
|
+
export default _default;
|
25
|
+
type __VLS_WithTemplateSlots<T, S> = T & (new () => {
|
26
|
+
$slots: S;
|
27
|
+
});
|
@@ -23,3 +23,14 @@ export function useProxiedAtomicModel<T>(props: Object, prop: string, emit: (eve
|
|
23
23
|
* @template T
|
24
24
|
*/
|
25
25
|
export function useProxiedComplexModel<T>(props: Object, prop: string, emit: (event: string, value: T) => void): import("vue").Ref<import("vue").UnwrapRef<T>>;
|
26
|
+
/**
|
27
|
+
* Helper function that returns a modelValue for VcsCheckbox depending on the availability of a specific property within a model object
|
28
|
+
* Getter returns true, if property is available, otherwise false.
|
29
|
+
* Setter applies provided defaultValue on the model object, if checked (true) and undefined, if unchecked (false)
|
30
|
+
* @param {import("vue").Ref<Object>} localValue The model object, e.g. provided by `useProxiedComplexModel` or a local ref object.
|
31
|
+
* @param {string} key The key of the localValue that should be return on get and updated on set.
|
32
|
+
* @param {D} defaultValue The default value that is set on checked (true)
|
33
|
+
* @returns {import('vue').WritableComputedRef<boolean>}
|
34
|
+
* @template D
|
35
|
+
*/
|
36
|
+
export function useModelHasProperty<D>(localValue: import("vue").Ref<Object>, key: string, defaultValue: D): import('vue').WritableComputedRef<boolean>;
|