@vcmap/ui 6.0.0-rc.1 → 6.0.0-rc.10

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.
Files changed (485) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +63 -20
  3. package/build/buildTypes.js +9 -5
  4. package/build/bundle.js +1 -1
  5. package/build/info/conf.json +1 -1
  6. package/build/info/publish.js +25 -31
  7. package/build/lintTypes.js +5 -0
  8. package/config/aerowest.config.json +12 -2
  9. package/config/base.config.json +22 -17
  10. package/config/dev.config.json +164 -4
  11. package/config/projects.config.json +3 -1
  12. package/config/solar.config.json +65 -0
  13. package/config/splashscreen.config.json +45 -0
  14. package/config/theming.config.json +68 -0
  15. package/config/www.config.json +39 -23
  16. package/dist/.htaccess +7 -0
  17. package/dist/assets/@mdi/font/README.md +25 -0
  18. package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
  19. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  20. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  21. package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -1
  22. package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
  23. package/dist/assets/cesium/Workers/{chunk-JB2LWGH4.js → chunk-2LOWCAMW.js} +14 -14
  24. package/dist/assets/cesium/Workers/{chunk-Z24VKNDO.js → chunk-2PTKXHJB.js} +12 -12
  25. package/dist/assets/cesium/Workers/{chunk-AHKEZ2OE.js → chunk-3HQMMUPU.js} +1 -1
  26. package/dist/assets/cesium/Workers/{chunk-V3NGATMV.js → chunk-3IFRSGEY.js} +11 -13
  27. package/dist/assets/cesium/Workers/{chunk-66QLLS45.js → chunk-44QAAS4P.js} +11 -9
  28. package/dist/assets/cesium/Workers/{chunk-TFC6TZ3S.js → chunk-56EDBCGT.js} +33 -22
  29. package/dist/assets/cesium/Workers/{chunk-3W63OHNJ.js → chunk-57H6I3SV.js} +5 -5
  30. package/dist/assets/cesium/Workers/{chunk-PFQBCKBM.js → chunk-6SQMLVGV.js} +5206 -3483
  31. package/dist/assets/cesium/Workers/{chunk-OZJDGN5F.js → chunk-7YIOHQWH.js} +16 -16
  32. package/dist/assets/cesium/Workers/{chunk-XTY7B2N6.js → chunk-7ZZ5LMZY.js} +17 -16
  33. package/dist/assets/cesium/Workers/{chunk-HARLBUOL.js → chunk-BVKITG4N.js} +11 -8
  34. package/dist/assets/cesium/Workers/{chunk-AFFLIKOH.js → chunk-C3EQ27WF.js} +7 -7
  35. package/dist/assets/cesium/Workers/{chunk-RW6LU2CJ.js → chunk-C4WPMOKT.js} +6 -5
  36. package/dist/assets/cesium/Workers/{chunk-OYFCF4PL.js → chunk-EDLRS3AW.js} +6 -6
  37. package/dist/assets/cesium/Workers/{chunk-C3SXRKRW.js → chunk-EJVGYGLF.js} +7 -7
  38. package/dist/assets/cesium/Workers/{chunk-PCJWUS4M.js → chunk-FFLMY4TE.js} +830 -14
  39. package/dist/assets/cesium/Workers/{chunk-MPAZH4BF.js → chunk-GBT7MJ6X.js} +1 -1
  40. package/dist/assets/cesium/Workers/{chunk-ZA25DG4Y.js → chunk-HJMNR3GC.js} +11 -11
  41. package/dist/assets/cesium/Workers/{chunk-JS3AW5BK.js → chunk-HP5XLODI.js} +6 -6
  42. package/dist/assets/cesium/Workers/{chunk-34YUDLRP.js → chunk-IBRIWOCM.js} +13 -13
  43. package/dist/assets/cesium/Workers/{chunk-XY7MGBKC.js → chunk-IZGUQO6Q.js} +14 -16
  44. package/dist/assets/cesium/Workers/{chunk-KTJSNCK4.js → chunk-IZJ42N4W.js} +230 -20
  45. package/dist/assets/cesium/Workers/{chunk-QMEMZIJI.js → chunk-JBSKHTNX.js} +4 -4
  46. package/dist/assets/cesium/Workers/{chunk-QIKODV5G.js → chunk-JISPSEF3.js} +4 -4
  47. package/dist/assets/cesium/Workers/{chunk-K36FEYS7.js → chunk-JSQJDZI4.js} +16 -12
  48. package/dist/assets/cesium/Workers/{chunk-X4SU25DT.js → chunk-JXVLNVXC.js} +10 -12
  49. package/dist/assets/cesium/Workers/chunk-KHZNBFOH.js +963 -0
  50. package/dist/assets/cesium/Workers/{chunk-KD4Y7CZL.js → chunk-L5GODJAR.js} +15 -17
  51. package/dist/assets/cesium/Workers/{chunk-O5AMBQ36.js → chunk-LJ2JQHJT.js} +13 -8
  52. package/dist/assets/cesium/Workers/{chunk-ABADGKYE.js → chunk-LLAF3CPH.js} +2 -2
  53. package/dist/assets/cesium/Workers/{chunk-CHHNOC2C.js → chunk-M24KHENR.js} +95 -155
  54. package/dist/assets/cesium/Workers/{chunk-2R5O53JW.js → chunk-NDDI2LWR.js} +6 -6
  55. package/dist/assets/cesium/Workers/{chunk-QT3MPEMI.js → chunk-NGZJIN5Z.js} +4 -4
  56. package/dist/assets/cesium/Workers/{chunk-ZFOBYDGF.js → chunk-O72GZTSE.js} +2 -2
  57. package/dist/assets/cesium/Workers/{chunk-IPA4EACJ.js → chunk-OPP2SKMA.js} +12 -12
  58. package/dist/assets/cesium/Workers/{chunk-4MFFIWUA.js → chunk-P6TRGU3S.js} +2 -2
  59. package/dist/assets/cesium/Workers/{chunk-GLZBE3ML.js → chunk-QN6TBED4.js} +13 -13
  60. package/dist/assets/cesium/Workers/{chunk-MYZB7C4T.js → chunk-QQOZO7KO.js} +10 -10
  61. package/dist/assets/cesium/Workers/{chunk-HQF437NJ.js → chunk-RJM36CNY.js} +6 -6
  62. package/dist/assets/cesium/Workers/{chunk-CTELOFLA.js → chunk-RTJKHZWU.js} +6 -6
  63. package/dist/assets/cesium/Workers/{chunk-J3JY6I2C.js → chunk-TI3TRKIC.js} +425 -489
  64. package/dist/assets/cesium/Workers/{chunk-OAVNIRB4.js → chunk-TK5IIG2F.js} +5 -7
  65. package/dist/assets/cesium/Workers/{chunk-WXTV4ATB.js → chunk-U5HSOKPQ.js} +1 -1
  66. package/dist/assets/cesium/Workers/{chunk-N3JIFFX2.js → chunk-WGDFYAGC.js} +5 -6
  67. package/dist/assets/cesium/Workers/{chunk-EW2GWJYB.js → chunk-X7IQYYHF.js} +2 -2
  68. package/dist/assets/cesium/Workers/{chunk-LLUNNUJV.js → chunk-XIUSRWL6.js} +9 -5
  69. package/dist/assets/cesium/Workers/{chunk-CCFQRR6D.js → chunk-XWOUPGUF.js} +1 -1
  70. package/dist/assets/cesium/Workers/{chunk-6BTKZDRG.js → chunk-YCDZX5LS.js} +3 -5
  71. package/dist/assets/cesium/Workers/{chunk-RP2A7BR5.js → chunk-YK3QIKY7.js} +12 -14
  72. package/dist/assets/cesium/Workers/{chunk-227AJNOA.js → chunk-YSIJTJ7N.js} +5 -5
  73. package/dist/assets/cesium/Workers/{chunk-A4JVFBQ3.js → chunk-Z2QP3CXW.js} +2 -2
  74. package/dist/assets/cesium/Workers/{chunk-VLGOATD6.js → chunk-ZVUUPJEM.js} +22 -22
  75. package/dist/assets/cesium/Workers/combineGeometry.js +22 -23
  76. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -17
  77. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -15
  78. package/dist/assets/cesium/Workers/createCircleGeometry.js +29 -26
  79. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -18
  80. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +35 -36
  81. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -30
  82. package/dist/assets/cesium/Workers/createCorridorGeometry.js +29 -30
  83. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +27 -28
  84. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -19
  85. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +17 -19
  86. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -25
  87. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -18
  88. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -18
  89. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -17
  90. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -17
  91. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +18 -18
  92. package/dist/assets/cesium/Workers/createGeometry.js +52 -33
  93. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +28 -29
  94. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -15
  95. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -14
  96. package/dist/assets/cesium/Workers/createPolygonGeometry.js +451 -176
  97. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +29 -30
  98. package/dist/assets/cesium/Workers/createPolylineGeometry.js +24 -25
  99. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +31 -33
  100. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +27 -29
  101. package/dist/assets/cesium/Workers/createRectangleGeometry.js +30 -31
  102. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +21 -24
  103. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +22 -23
  104. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -18
  105. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -17
  106. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  107. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +14 -16
  108. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -23
  109. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  110. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -21
  111. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +14 -16
  112. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -25
  113. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +29 -26
  114. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -21
  115. package/dist/assets/cesium/Workers/createWallGeometry.js +23 -24
  116. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +22 -23
  117. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  118. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +35 -19
  119. package/dist/assets/cesium/Workers/decodeI3S.js +600 -92
  120. package/dist/assets/cesium/Workers/transcodeKTX2.js +58 -93
  121. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  122. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +21 -22
  123. package/dist/assets/{cesium.6b12b4.js → cesium-9ea5ba6e.js} +73315 -68035
  124. package/dist/assets/cesium.js +1 -1
  125. package/dist/assets/{core.074b78.js → core-9b003470.js} +7135 -5664
  126. package/dist/assets/core.js +1 -1
  127. package/dist/assets/{ol.8b2e3a.js → ol-8373d6ac.js} +43066 -44325
  128. package/dist/assets/ol.js +1 -1
  129. package/dist/assets/ui-163311a7.css +1 -0
  130. package/dist/assets/{ui.715986.js → ui-163311a7.js} +14696 -13170
  131. package/dist/assets/ui.js +1 -1
  132. package/dist/assets/vue-0f6dd813.js +6083 -0
  133. package/dist/assets/vue.js +1 -1
  134. package/dist/assets/{vuetify.28d881.css → vuetify-e2c4b35c.css} +2 -2
  135. package/dist/assets/{vuetify.28d881.js → vuetify-e2c4b35c.js} +8699 -8824
  136. package/dist/assets/vuetify.js +1 -1
  137. package/dist/index.html +11 -10
  138. package/index.d.ts +36 -20
  139. package/index.html +5 -5
  140. package/index.js +20 -10
  141. package/lib/olLib.js +90 -23
  142. package/package.json +25 -23
  143. package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
  144. package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
  145. package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
  146. package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
  147. package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
  148. package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
  149. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  150. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +73 -34
  151. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  152. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  153. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +50 -96
  154. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +14 -11
  155. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
  156. package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
  157. package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
  158. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  159. package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
  160. package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
  161. package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
  162. package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
  163. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
  164. package/plugins/@vcmap-show-case/vector-properties-example/src/GeometrySettings.vue +420 -0
  165. package/plugins/@vcmap-show-case/vector-properties-example/src/LayoutHandler.vue +97 -0
  166. package/plugins/@vcmap-show-case/vector-properties-example/src/TerrainSettings.vue +90 -0
  167. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +86 -70
  168. package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +34 -1
  169. package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +294 -0
  170. package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +40 -54
  171. package/plugins/package.json +23 -21
  172. package/public/assets/@mdi/font/README.md +25 -0
  173. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  174. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  175. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  176. package/src/actions/StyleSelector.vue +37 -21
  177. package/src/actions/StyleSelector.vue.d.ts +5 -5
  178. package/src/actions/actionHelper.d.ts +4 -11
  179. package/src/actions/actionHelper.js +35 -27
  180. package/src/actions/flightActions.js +44 -23
  181. package/src/actions/listActions.d.ts +5 -12
  182. package/src/actions/listActions.js +6 -22
  183. package/src/actions/stateRefAction.js +2 -2
  184. package/src/application/VcsApp.vue +196 -85
  185. package/src/application/VcsApp.vue.d.ts +309 -4
  186. package/src/application/VcsAppWrapper.vue +1 -1
  187. package/src/application/VcsAttributions.vue +4 -15
  188. package/src/application/VcsAttributionsFooter.vue +28 -18
  189. package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
  190. package/src/application/VcsContainer.vue +27 -10
  191. package/src/application/VcsContainer.vue.d.ts +248 -0
  192. package/src/application/VcsMainMap.vue +8 -8
  193. package/src/application/VcsMainMap.vue.d.ts +2 -2
  194. package/src/application/VcsMap.vue +1 -0
  195. package/src/application/VcsNavbar.vue +15 -3
  196. package/src/application/VcsNavbar.vue.d.ts +2 -1
  197. package/src/application/VcsPositionDisplay.vue +10 -25
  198. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  199. package/src/application/VcsSettings.vue +11 -18
  200. package/src/application/VcsSplashScreen.vue +43 -55
  201. package/src/application/VcsSplashScreen.vue.d.ts +4 -6
  202. package/src/application/VcsTextPage.vue +13 -44
  203. package/src/application/VcsTextPage.vue.d.ts +4 -8
  204. package/src/application/VcsTextPageFooter.vue +26 -41
  205. package/src/application/attributionsHelper.d.ts +20 -22
  206. package/src/application/attributionsHelper.js +14 -10
  207. package/src/callback/vcsCallback.d.ts +2 -2
  208. package/src/callback/vcsCallback.js +1 -1
  209. package/src/components/buttons/VcsActionButtonList.vue +66 -7
  210. package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
  211. package/src/components/buttons/VcsButton.vue +8 -10
  212. package/src/components/buttons/VcsButton.vue.d.ts +4 -4
  213. package/src/components/buttons/VcsFormButton.vue +9 -9
  214. package/src/components/buttons/VcsFormButton.vue.d.ts +3 -3
  215. package/src/components/buttons/VcsToolButton.vue +9 -7
  216. package/src/components/buttons/VcsToolButton.vue.d.ts +5 -5
  217. package/src/components/composables.d.ts +14 -2
  218. package/src/components/composables.js +106 -4
  219. package/src/components/extent/VcsExtent.vue +11 -7
  220. package/src/components/extent/VcsExtent.vue.d.ts +1 -0
  221. package/src/components/extent/VcsExtentEditor.vue +2 -1
  222. package/src/components/flight/VcsFlightAnchorsComponent.vue +64 -36
  223. package/src/components/flight/VcsFlightComponent.vue +25 -30
  224. package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
  225. package/src/components/flight/VcsFlightEditor.vue +1 -0
  226. package/src/components/flight/VcsFlightPlayer.vue +47 -19
  227. package/src/components/form-inputs-controls/VcsCheckbox.vue +32 -13
  228. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +10 -0
  229. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +14 -17
  230. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +2 -4
  231. package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -5
  232. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  233. package/src/components/form-inputs-controls/VcsDatePicker.vue +53 -59
  234. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +2 -64
  235. package/src/components/form-inputs-controls/VcsFileInput.vue +18 -19
  236. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  237. package/src/components/form-inputs-controls/VcsLabel.vue +65 -3
  238. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +32 -1
  239. package/src/components/form-inputs-controls/VcsRadio.vue +26 -10
  240. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +2 -0
  241. package/src/components/form-inputs-controls/VcsSelect.vue +47 -47
  242. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +9 -6
  243. package/src/components/form-inputs-controls/VcsSlider.vue +53 -15
  244. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +26 -2
  245. package/src/components/form-inputs-controls/VcsTextArea.vue +56 -40
  246. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  247. package/src/components/form-inputs-controls/VcsTextField.vue +46 -16
  248. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +12 -1
  249. package/src/components/form-inputs-controls/VcsWizard.vue +89 -112
  250. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +3 -13
  251. package/src/components/form-inputs-controls/VcsWizardStep.vue +78 -58
  252. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +24 -11
  253. package/src/components/form-inputs-controls/vcsTextField.scss +21 -13
  254. package/src/components/form-output/VcsFormattedNumber.vue +46 -14
  255. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +27 -0
  256. package/src/components/form-output/VcsMarkdown.vue +56 -0
  257. package/src/{application/VcsCustomScreen.vue.d.ts → components/form-output/VcsMarkdown.vue.d.ts} +7 -5
  258. package/src/components/form-output/markdownHelper.d.ts +30 -0
  259. package/src/components/form-output/markdownHelper.js +398 -0
  260. package/src/components/import/VcsFileDrop.vue +9 -6
  261. package/src/components/import/VcsImportComponent.vue +12 -8
  262. package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
  263. package/src/components/lists/VcsActionList.vue +50 -34
  264. package/src/components/lists/VcsActionList.vue.d.ts +3 -1
  265. package/src/components/lists/VcsList.vue +105 -192
  266. package/src/components/lists/VcsList.vue.d.ts +18 -66
  267. package/src/components/lists/VcsListItemComponent.vue +216 -0
  268. package/src/components/lists/VcsListItemComponent.vue.d.ts +83 -0
  269. package/src/components/lists/VcsTreeview.vue +119 -26
  270. package/src/components/lists/VcsTreeview.vue.d.ts +26 -3
  271. package/src/components/lists/VcsTreeviewSearchbar.vue +17 -6
  272. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
  273. package/src/components/lists/VcsTreeviewTitle.vue +40 -0
  274. package/src/components/modelHelper.d.ts +21 -8
  275. package/src/components/modelHelper.js +50 -8
  276. package/src/components/notification/VcsBadge.vue +2 -2
  277. package/src/components/notification/VcsHelp.vue +6 -7
  278. package/src/components/notification/VcsHelp.vue.d.ts +0 -8
  279. package/src/components/notification/VcsHelpTooltip.vue +48 -0
  280. package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
  281. package/src/components/plugins/AbstractConfigEditor.vue +2 -23
  282. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
  283. package/src/components/section/VcsExpansionPanel.vue +111 -0
  284. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  285. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +13 -7
  286. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +2 -3
  287. package/src/components/style/MenuWrapper.vue +25 -27
  288. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  289. package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
  290. package/src/components/style/VcsFillMenu.vue +10 -16
  291. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  292. package/src/components/style/VcsFillSelector.vue +14 -16
  293. package/src/components/style/VcsImageMenu.vue +9 -25
  294. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  295. package/src/components/style/VcsImageSelector.vue +115 -172
  296. package/src/components/style/VcsImageSelector.vue.d.ts +16 -15
  297. package/src/components/style/VcsStrokeMenu.vue +9 -15
  298. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  299. package/src/components/style/VcsStrokeSelector.vue +17 -21
  300. package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
  301. package/src/components/style/VcsTextMenu.vue +12 -14
  302. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  303. package/src/components/style/VcsTextSelector.vue +80 -96
  304. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  305. package/src/components/style/VcsVectorStyleComponent.vue +9 -20
  306. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  307. package/src/components/style/composables.d.ts +0 -14
  308. package/src/components/style/composables.js +0 -49
  309. package/src/components/tables/VcsDataTable.vue +43 -33
  310. package/src/components/tables/VcsDataTable.vue.d.ts +2 -1
  311. package/src/components/tables/VcsTable.vue +46 -62
  312. package/src/components/tables/VcsTable.vue.d.ts +30 -17
  313. package/src/components/tables/VcsTableCell.vue +72 -0
  314. package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
  315. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +87 -51
  316. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +9 -7
  317. package/src/components/vector-properties/VcsFeatureTransforms.vue +45 -6
  318. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
  319. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +541 -596
  320. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +222 -24
  321. package/src/components/viewpoint/VcsViewpointComponent.vue +36 -20
  322. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
  323. package/src/components/viewpoint/VcsViewpointEditor.vue +3 -1
  324. package/src/contentTree/LayerTree.vue +10 -28
  325. package/src/contentTree/LayerTree.vue.d.ts +1 -1
  326. package/src/contentTree/contentTreeCollection.d.ts +1 -0
  327. package/src/contentTree/contentTreeCollection.js +45 -11
  328. package/src/contentTree/contentTreeItem.d.ts +4 -4
  329. package/src/contentTree/contentTreeItem.js +8 -8
  330. package/src/contentTree/layerContentTreeItem.d.ts +8 -5
  331. package/src/contentTree/layerContentTreeItem.js +48 -34
  332. package/src/contentTree/layerGroupContentTreeItem.d.ts +7 -1
  333. package/src/contentTree/layerGroupContentTreeItem.js +22 -3
  334. package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
  335. package/src/featureInfo/AddressBalloonComponent.vue +1 -1
  336. package/src/featureInfo/BalloonComponent.vue +33 -26
  337. package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
  338. package/src/featureInfo/IframeComponent.vue +6 -1
  339. package/src/featureInfo/MarkdownBalloonComponent.vue +5 -3
  340. package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
  341. package/src/featureInfo/abstractFeatureInfoView.d.ts +19 -4
  342. package/src/featureInfo/abstractFeatureInfoView.js +38 -13
  343. package/src/featureInfo/balloonHelper.js +1 -1
  344. package/src/featureInfo/featureInfo.d.ts +7 -7
  345. package/src/featureInfo/featureInfo.js +59 -41
  346. package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
  347. package/src/featureInfo/iframeFeatureInfoView.js +15 -5
  348. package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
  349. package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
  350. package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
  351. package/src/featureInfo/markdownFeatureInfoView.js +9 -11
  352. package/src/featureInfo/tableFeatureInfoView.js +13 -4
  353. package/src/i18n/de.d.ts +59 -32
  354. package/src/i18n/de.js +28 -5
  355. package/src/i18n/en.d.ts +59 -32
  356. package/src/i18n/en.js +25 -2
  357. package/src/i18n/i18nCollection.d.ts +9 -15
  358. package/src/i18n/i18nCollection.js +3 -3
  359. package/src/init.d.ts +5 -38
  360. package/src/init.js +19 -18
  361. package/src/legend/StyleLegendItem.vue +4 -9
  362. package/src/legend/VcsLegend.vue +33 -55
  363. package/src/legend/VcsLegend.vue.d.ts +1 -0
  364. package/src/manager/buttonManager.js +4 -4
  365. package/src/manager/collectionManager/CollectionComponent.vue +18 -42
  366. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  367. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  368. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  369. package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
  370. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
  371. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  372. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  373. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  374. package/src/manager/collectionManager/categoryManager.d.ts +1 -1
  375. package/src/manager/collectionManager/collectionComponentClass.d.ts +3 -3
  376. package/src/manager/collectionManager/collectionComponentClass.js +16 -15
  377. package/src/manager/collectionManager/collectionManager.d.ts +1 -1
  378. package/src/manager/collectionManager/collectionManager.js +10 -10
  379. package/src/manager/collectionManager/editorCollectionComponentClass.js +11 -8
  380. package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
  381. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  382. package/src/manager/navbarManager.js +2 -2
  383. package/src/manager/panel/PanelComponent.vue +2 -9
  384. package/src/manager/panel/PanelManagerComponent.vue +9 -5
  385. package/src/manager/panel/panelHelper.js +3 -3
  386. package/src/manager/panel/panelManager.d.ts +9 -1
  387. package/src/manager/panel/panelManager.js +18 -6
  388. package/src/manager/toolbox/GroupToolboxComponent.vue +13 -7
  389. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
  390. package/src/manager/toolbox/SelectToolboxComponent.vue +13 -8
  391. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
  392. package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +28 -8
  393. package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -0
  394. package/src/manager/toolbox/toolboxManager.js +10 -10
  395. package/src/manager/window/WindowComponent.vue +13 -9
  396. package/src/manager/window/WindowComponentHeader.vue +33 -9
  397. package/src/manager/window/WindowComponentHeader.vue.d.ts +3 -0
  398. package/src/manager/window/WindowManager.vue +6 -3
  399. package/src/manager/window/windowManager.d.ts +71 -15
  400. package/src/manager/window/windowManager.js +32 -11
  401. package/src/navigation/MapNavigation.vue +52 -9
  402. package/src/navigation/ObliqueRotation.vue +2 -2
  403. package/src/navigation/OrientationToolsButton.vue +37 -26
  404. package/src/navigation/OrientationToolsButton.vue.d.ts +5 -1
  405. package/src/navigation/TiltSlider.vue +82 -88
  406. package/src/navigation/TiltSlider.vue.d.ts +10 -7
  407. package/src/navigation/VcsCompass.vue +17 -11
  408. package/src/navigation/VcsCompass.vue.d.ts +2 -0
  409. package/src/navigation/VcsZoomButton.vue +1 -1
  410. package/src/navigation/locatorHelper.js +4 -22
  411. package/src/navigation/overviewMap.js +5 -2
  412. package/src/notifier/NotifierComponent.vue +19 -16
  413. package/src/obliqueFallbackWarnings.d.ts +5 -0
  414. package/src/obliqueFallbackWarnings.js +54 -0
  415. package/src/search/ResultItem.vue +18 -6
  416. package/src/search/ResultsComponent.vue +32 -21
  417. package/src/search/ResultsComponent.vue.d.ts +2 -1
  418. package/src/search/SearchComponent.vue +14 -16
  419. package/src/search/SearchComponent.vue.d.ts +1 -0
  420. package/src/search/search.js +2 -2
  421. package/src/siteConfig.js +9 -9
  422. package/src/state.js +4 -4
  423. package/src/styles/_typography.scss +1 -2
  424. package/src/styles/main.scss +0 -4
  425. package/src/styles/vcsList.scss +1 -1
  426. package/src/uiConfig.d.ts +323 -7
  427. package/src/uiConfig.js +31 -17
  428. package/src/vcsUiApp.d.ts +90 -80
  429. package/src/vcsUiApp.js +61 -41
  430. package/src/vuePlugins/i18n.js +8 -0
  431. package/src/vuePlugins/vuetify.d.ts +88 -60
  432. package/src/vuePlugins/vuetify.js +134 -20
  433. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  434. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  435. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +0 -3273
  436. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +0 -73
  437. package/dist/assets/index-ca7EmZ3d.js +0 -1
  438. package/dist/assets/ui.715986.css +0 -1
  439. package/dist/assets/vue.0f2c53.js +0 -6096
  440. package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
  441. package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
  442. package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
  443. package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
  444. package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
  445. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  446. package/src/application/VcsCustomScreen.vue +0 -45
  447. package/src/application/markdownHelper.d.ts +0 -12
  448. package/src/application/markdownHelper.js +0 -85
  449. package/src/components/lists/VcsTreeviewLeaf.vue +0 -83
  450. package/src/components/notification/VcsTooltip.vue +0 -156
  451. package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
  452. package/src/components/vector-properties/composables.d.ts +0 -33
  453. package/src/components/vector-properties/composables.js +0 -100
  454. package/src/featureInfo/MarkdownComponent.vue +0 -16
  455. package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
  456. package/src/styles/_theming.scss +0 -73
  457. package/src/styles/settings.scss +0 -6
  458. package/src/styles/shades.scss +0 -4
  459. package/src/styles/variables.scss +0 -140
  460. package/src/styles/vcsFont.scss +0 -2
  461. package/src/styles/vcsGrid.scss +0 -3
  462. /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  463. /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  464. /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  465. /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  466. /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  467. /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  468. /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  469. /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  470. /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  471. /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  472. /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  473. /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  474. /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  475. /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  476. /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  477. /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  478. /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  479. /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  480. /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  481. /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  482. /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  483. /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  484. /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
  485. /package/src/components/lists/{VcsTreeviewLeaf.vue.d.ts → VcsTreeviewTitle.vue.d.ts} +0 -0
@@ -4,22 +4,35 @@
4
4
  * getter returns the internal value
5
5
  * setter updates internal value and emits the update event
6
6
  * simplified based on https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/composables/proxiedModel.ts
7
- * @param {Object} props
8
- * @param {string} prop
9
- * @param {(event: string, value: T) => void} emit
7
+ * @param {{ [k in P]: string extends P ? unknown : T }} props
8
+ * @param {P} prop
9
+ * @param {(event: string extends P ? P : `update:${P}`, value: T) => void} emit
10
10
  * @returns {import("vue").Ref<import("vue").UnwrapRef<T>>}
11
11
  * @template T
12
+ * @template {string} [P=string]
12
13
  */
13
- export function useProxiedAtomicModel<T>(props: Object, prop: string, emit: (event: string, value: T) => void): import("vue").Ref<import("vue").UnwrapRef<T>>;
14
+ export function useProxiedAtomicModel<T, P extends string = string>(props: { [k in P]: string extends P ? unknown : T; }, prop: P, emit: (event: string extends P ? P : `update:${P}`, value: T) => void): import("vue").Ref<import("vue").UnwrapRef<T>>;
14
15
  /**
15
16
  * Can only be used in setup of Vue components!
16
17
  * Provides a ref model for complex properties.
17
18
  * Watches changes on the provided prop and updates the internal ref
18
19
  * Watches changes on the internal ref and emits the change, if prop has not already been updated
19
- * @param {Object} props
20
- * @param {string} prop
21
- * @param {(event: string, value: T) => void} emit
20
+ * @param {{ [k in P]: string extends P ? unknown : T }} props
21
+ * @param {P} prop
22
+ * @param {(event: string extends P ? P : `update:${P}`, value: T) => void} emit
22
23
  * @returns {import("vue").Ref<import("vue").UnwrapRef<T>>}
23
24
  * @template T
25
+ * @template {string} [P=string]
24
26
  */
25
- export function useProxiedComplexModel<T>(props: Object, prop: string, emit: (event: string, value: T) => void): import("vue").Ref<import("vue").UnwrapRef<T>>;
27
+ export function useProxiedComplexModel<T, P extends string = string>(props: { [k in P]: string extends P ? unknown : T; }, prop: P, emit: (event: string extends P ? P : `update:${P}`, value: T) => void): import("vue").Ref<import("vue").UnwrapRef<T>>;
28
+ /**
29
+ * Helper function that returns a modelValue for VcsCheckbox depending on the availability of a specific property within a model object
30
+ * Getter returns true, if property is available, otherwise false.
31
+ * Setter applies provided defaultValue on the model object, if checked (true) and undefined, if unchecked (false)
32
+ * @param {import("vue").Ref<Object>} localValue The model object, e.g. provided by `useProxiedComplexModel` or a local ref object.
33
+ * @param {string} key The key of the localValue that should be return on get and updated on set.
34
+ * @param {D} defaultValue The default value that is set on checked (true)
35
+ * @returns {import('vue').WritableComputedRef<boolean>}
36
+ * @template D
37
+ */
38
+ export function useModelHasProperty<D>(localValue: import("vue").Ref<Object>, key: string, defaultValue: D): import('vue').WritableComputedRef<boolean>;
@@ -1,5 +1,6 @@
1
1
  import { computed, ref, toRaw, watch } from 'vue';
2
2
  import deepEqual from 'fast-deep-equal';
3
+ import { getLogger } from '@vcsuite/logger';
3
4
 
4
5
  /**
5
6
  * Can only be used in setup of Vue components!
@@ -7,11 +8,12 @@ import deepEqual from 'fast-deep-equal';
7
8
  * getter returns the internal value
8
9
  * setter updates internal value and emits the update event
9
10
  * simplified based on https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/composables/proxiedModel.ts
10
- * @param {Object} props
11
- * @param {string} prop
12
- * @param {(event: string, value: T) => void} emit
11
+ * @param {{ [k in P]: string extends P ? unknown : T }} props
12
+ * @param {P} prop
13
+ * @param {(event: string extends P ? P : `update:${P}`, value: T) => void} emit
13
14
  * @returns {import("vue").Ref<import("vue").UnwrapRef<T>>}
14
15
  * @template T
16
+ * @template {string} [P=string]
15
17
  */
16
18
  export function useProxiedAtomicModel(props, prop, emit) {
17
19
  const internal = ref(props[prop]);
@@ -42,11 +44,12 @@ export function useProxiedAtomicModel(props, prop, emit) {
42
44
  * Provides a ref model for complex properties.
43
45
  * Watches changes on the provided prop and updates the internal ref
44
46
  * Watches changes on the internal ref and emits the change, if prop has not already been updated
45
- * @param {Object} props
46
- * @param {string} prop
47
- * @param {(event: string, value: T) => void} emit
47
+ * @param {{ [k in P]: string extends P ? unknown : T }} props
48
+ * @param {P} prop
49
+ * @param {(event: string extends P ? P : `update:${P}`, value: T) => void} emit
48
50
  * @returns {import("vue").Ref<import("vue").UnwrapRef<T>>}
49
51
  * @template T
52
+ * @template {string} [P=string]
50
53
  */
51
54
  export function useProxiedComplexModel(props, prop, emit) {
52
55
  const internal = ref(structuredClone(toRaw(props[prop])));
@@ -59,7 +62,14 @@ export function useProxiedComplexModel(props, prop, emit) {
59
62
  if (deepEqual(internal.value, newValue)) {
60
63
  return;
61
64
  }
62
- internal.value = structuredClone(newValue);
65
+ try {
66
+ internal.value = structuredClone(newValue);
67
+ } catch (e) {
68
+ getLogger('modelHelper').error(
69
+ 'Failed to update internal value. You may have a provided a deeply nested ref, which caused',
70
+ e,
71
+ );
72
+ }
63
73
  },
64
74
  {
65
75
  deep: true,
@@ -77,7 +87,14 @@ export function useProxiedComplexModel(props, prop, emit) {
77
87
  if (deepEqual(value, newValue)) {
78
88
  return;
79
89
  }
80
- emit(`update:${prop}`, structuredClone(newValue));
90
+ try {
91
+ emit(`update:${prop}`, structuredClone(newValue));
92
+ } catch (e) {
93
+ getLogger('modelHelper').error(
94
+ 'Failed to emit value. You may have a provided a deeply nested ref, which caused',
95
+ e,
96
+ );
97
+ }
81
98
  },
82
99
  {
83
100
  deep: true,
@@ -86,3 +103,28 @@ export function useProxiedComplexModel(props, prop, emit) {
86
103
 
87
104
  return internal;
88
105
  }
106
+
107
+ /**
108
+ * Helper function that returns a modelValue for VcsCheckbox depending on the availability of a specific property within a model object
109
+ * Getter returns true, if property is available, otherwise false.
110
+ * Setter applies provided defaultValue on the model object, if checked (true) and undefined, if unchecked (false)
111
+ * @param {import("vue").Ref<Object>} localValue The model object, e.g. provided by `useProxiedComplexModel` or a local ref object.
112
+ * @param {string} key The key of the localValue that should be return on get and updated on set.
113
+ * @param {D} defaultValue The default value that is set on checked (true)
114
+ * @returns {import('vue').WritableComputedRef<boolean>}
115
+ * @template D
116
+ */
117
+ export function useModelHasProperty(localValue, key, defaultValue) {
118
+ const model = () => localValue.value;
119
+ return computed({
120
+ get() {
121
+ return model()[key] !== undefined;
122
+ },
123
+ set(value) {
124
+ const v = value ? defaultValue : undefined;
125
+ if (localValue.value[key] !== v) {
126
+ localValue.value[key] = v;
127
+ }
128
+ },
129
+ });
130
+ }
@@ -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 {
@@ -1,6 +1,9 @@
1
1
  <template>
2
- <div v-if="show" class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4">
3
- <v-container class="pa-1 vcs-help">
2
+ <div
3
+ v-if="$slots.default || text"
4
+ class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4 vcs-help"
5
+ >
6
+ <v-container class="py-1 px-2 vcs-help">
4
7
  <slot>
5
8
  <span>{{ $st(text) }}</span>
6
9
  </slot>
@@ -10,6 +13,7 @@
10
13
  <style lang="scss">
11
14
  .vcs-help {
12
15
  box-sizing: border-box;
16
+ padding-left: 16px;
13
17
  ol,
14
18
  ul {
15
19
  padding-left: 16px; /* Indentation for list items */
@@ -22,7 +26,6 @@
22
26
  /**
23
27
  * @description A component for displaying help.
24
28
  * @vue-data {slot} [#default] - Slot to specify html based help. Gets precedence over text prop.
25
- * @vue-prop {boolean} show - If help should be displayed. If false, component is completely hidden.
26
29
  * @vue-prop {string} [text] - Optional help text. Must be plain string. Use 'help' slot for html based help texts. Help slot has precedence over text prop.
27
30
  */
28
31
  export default {
@@ -35,10 +38,6 @@
35
38
  type: String,
36
39
  default: undefined,
37
40
  },
38
- show: {
39
- type: Boolean,
40
- required: true,
41
- },
42
41
  },
43
42
  };
44
43
  </script>
@@ -3,19 +3,11 @@ declare const _default: import("vue").DefineComponent<{
3
3
  type: StringConstructor;
4
4
  default: undefined;
5
5
  };
6
- show: {
7
- type: BooleanConstructor;
8
- required: true;
9
- };
10
6
  }, any, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
11
7
  text: {
12
8
  type: StringConstructor;
13
9
  default: undefined;
14
10
  };
15
- show: {
16
- type: BooleanConstructor;
17
- required: true;
18
- };
19
11
  }>>, {
20
12
  text: string;
21
13
  }, {}>;
@@ -0,0 +1,48 @@
1
+ <template>
2
+ <v-tooltip class="vcs-help-tooltip">
3
+ <template #activator="{ props }">
4
+ <v-icon :size="fontSize" v-bind="props" :icon="icon" />
5
+ </template>
6
+ <v-container class="py-1 px-2 vcs-help-tooltip-container">
7
+ <slot>
8
+ <span class="vcs-help-tooltip-text">{{ $st(text) }}</span>
9
+ </slot>
10
+ </v-container>
11
+ </v-tooltip>
12
+ </template>
13
+ <style lang="scss" scoped></style>
14
+ <script>
15
+ import { VTooltip, VIcon, VContainer } from 'vuetify/components';
16
+ import { useFontSize } from '../../vuePlugins/vuetify.js';
17
+
18
+ /**
19
+ * @description A component for displaying help as tooltip via an icon.
20
+ * @vue-data {slot} [#default] - Slot to specify html based help. Gets precedence over text prop.
21
+ * @vue-prop {string} [text] - Optional help text. Must be plain string. Use 'help' slot for html based help texts. Help slot has precedence over text prop.
22
+ */
23
+ export default {
24
+ name: 'VcsHelpTooltip',
25
+ components: {
26
+ VTooltip,
27
+ VIcon,
28
+ VContainer,
29
+ },
30
+ props: {
31
+ icon: {
32
+ type: String,
33
+ default: '$vcsHelp',
34
+ },
35
+ text: {
36
+ type: String,
37
+ default: undefined,
38
+ },
39
+ },
40
+ setup() {
41
+ const fontSize = useFontSize();
42
+
43
+ return {
44
+ fontSize,
45
+ };
46
+ },
47
+ };
48
+ </script>
@@ -0,0 +1,25 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ icon: {
3
+ type: StringConstructor;
4
+ default: string;
5
+ };
6
+ text: {
7
+ type: StringConstructor;
8
+ default: undefined;
9
+ };
10
+ }, {
11
+ fontSize: import("vue").ComputedRef<number>;
12
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
13
+ icon: {
14
+ type: StringConstructor;
15
+ default: string;
16
+ };
17
+ text: {
18
+ type: StringConstructor;
19
+ default: undefined;
20
+ };
21
+ }>>, {
22
+ text: string;
23
+ icon: string;
24
+ }, {}>;
25
+ export default _default;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="pa-0">
2
+ <v-container class="pa-0 abstract-config-editor">
3
3
  <v-form v-model="isValid" @submit.prevent="submit">
4
4
  <slot />
5
5
  <div class="d-flex gc-2 px-2 pt-2 pb-1">
@@ -32,11 +32,7 @@
32
32
  * @vue-prop {boolean} [showReset=false] - Flag to show a reset button in the footer. You need to handle @reset in a child component.
33
33
  * @vue-prop {Array<VcsAction>} [actions] - Optional actions rendered as ActionButtonList in the footer.
34
34
  * @vue-prop {string} [submitButtonTitle='components.apply'] - Option to change the submit button title, e.g. to 'components.add'.
35
- * @vue-prop {boolean} [setConfigOnCancel=true] - Whether setConfig shall be called on cancel. Ensures compatability with v5.0.x
36
35
  * @vue-prop {boolean} [autoClose=true] - Whether window component shall be close on submit or cancel.
37
- * @vue-prop {function():void} [onSubmit] - Callback function called on submit.
38
- * @vue-prop {function():void} [onReset] - Callback function called on reset.
39
- * @vue-prop {function():void} [onCancel] - Callback function called on cancel.
40
36
  * @vue-event {Event} submit - Event fired on clicking the submit button.
41
37
  * @vue-event {Event} cancel - Event fired on clicking the cancel button.
42
38
  * @vue-event {Event} reset - Event fired on clicking the reset button.
@@ -70,19 +66,8 @@
70
66
  type: Boolean,
71
67
  default: true,
72
68
  },
73
- onSubmit: {
74
- type: Function,
75
- default: () => {},
76
- },
77
- onReset: {
78
- type: Function,
79
- default: () => {},
80
- },
81
- onCancel: {
82
- type: Function,
83
- default: () => {},
84
- },
85
69
  },
70
+ emits: ['submit', 'cancel', 'reset'],
86
71
  setup(props, { attrs, emit }) {
87
72
  const app = inject('vcsApp');
88
73
 
@@ -95,24 +80,18 @@
95
80
  return {
96
81
  isValid: ref(true),
97
82
  submit(e) {
98
- props.onSubmit();
99
83
  emit('submit', e);
100
84
  if (props.autoClose) {
101
85
  close();
102
86
  }
103
87
  },
104
88
  cancel(e) {
105
- props.onCancel();
106
- if (props.setConfigOnCancel) {
107
- attrs.setConfig?.();
108
- }
109
89
  emit('cancel', e);
110
90
  if (props.autoClose) {
111
91
  close();
112
92
  }
113
93
  },
114
94
  reset(e) {
115
- props.onReset();
116
95
  emit('reset', e);
117
96
  },
118
97
  };
@@ -19,24 +19,12 @@ declare const _default: import("vue").DefineComponent<{
19
19
  type: BooleanConstructor;
20
20
  default: boolean;
21
21
  };
22
- onSubmit: {
23
- type: FunctionConstructor;
24
- default: () => void;
25
- };
26
- onReset: {
27
- type: FunctionConstructor;
28
- default: () => void;
29
- };
30
- onCancel: {
31
- type: FunctionConstructor;
32
- default: () => void;
33
- };
34
22
  }, {
35
23
  isValid: import("vue").Ref<boolean>;
36
24
  submit(e: any): void;
37
25
  cancel(e: any): void;
38
26
  reset(e: any): void;
39
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "reset" | "submit")[], "cancel" | "reset" | "submit", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
40
28
  showReset: {
41
29
  type: BooleanConstructor;
42
30
  default: boolean;
@@ -57,26 +45,15 @@ declare const _default: import("vue").DefineComponent<{
57
45
  type: BooleanConstructor;
58
46
  default: boolean;
59
47
  };
60
- onSubmit: {
61
- type: FunctionConstructor;
62
- default: () => void;
63
- };
64
- onReset: {
65
- type: FunctionConstructor;
66
- default: () => void;
67
- };
68
- onCancel: {
69
- type: FunctionConstructor;
70
- default: () => void;
71
- };
72
- }>>, {
73
- onReset: Function;
74
- onSubmit: Function;
48
+ }>> & {
49
+ onReset?: ((...args: any[]) => any) | undefined;
50
+ onSubmit?: ((...args: any[]) => any) | undefined;
51
+ onCancel?: ((...args: any[]) => any) | undefined;
52
+ }, {
75
53
  actions: unknown[];
76
54
  showReset: boolean;
77
55
  submitButtonTitle: string;
78
56
  setConfigOnCancel: boolean;
79
57
  autoClose: boolean;
80
- onCancel: Function;
81
58
  }, {}>;
82
59
  export default _default;
@@ -0,0 +1,111 @@
1
+ <script setup>
2
+ import {
3
+ VExpansionPanel,
4
+ VExpansionPanelText,
5
+ VExpansionPanelTitle,
6
+ VIcon,
7
+ VTooltip,
8
+ VListItemTitle,
9
+ } from 'vuetify/components';
10
+ import { computed, ref, useSlots } from 'vue';
11
+ import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
12
+ import { createEllipseTooltip } from '../composables.js';
13
+ import { useIconSize } from '../../vuePlugins/vuetify.js';
14
+
15
+ const props = defineProps({
16
+ heading: {
17
+ type: String,
18
+ default: undefined,
19
+ },
20
+ disabled: {
21
+ type: Boolean,
22
+ default: false,
23
+ },
24
+ headerActions: {
25
+ type: Array,
26
+ default: () => [],
27
+ },
28
+ actionButtonListOverflowCount: {
29
+ type: Number,
30
+ required: false,
31
+ default: undefined,
32
+ },
33
+ });
34
+
35
+ const slots = useSlots();
36
+
37
+ const panelHeader = ref(null);
38
+ const panelHeaderTooltip = createEllipseTooltip(
39
+ computed(() => panelHeader.value?.$el),
40
+ computed(() => undefined),
41
+ computed(() => props.heading),
42
+ );
43
+ const iconSize = useIconSize();
44
+ </script>
45
+ <template>
46
+ <v-expansion-panel
47
+ :disabled="disabled"
48
+ v-bind="$attrs"
49
+ class="vcs-expansion-panel"
50
+ >
51
+ <v-expansion-panel-title static class="px-2">
52
+ <template #default="{ expanded }">
53
+ <v-list-item-title ref="panelHeader">
54
+ <v-icon :size="iconSize" v-if="!expanded" class="pr-1">
55
+ mdi-chevron-right
56
+ </v-icon>
57
+ <v-icon :size="iconSize" v-if="expanded" class="pr-1">
58
+ mdi-chevron-down
59
+ </v-icon>
60
+ <span
61
+ :class="{
62
+ 'vcs-panel-title__append':
63
+ !!slots['header-append'] && !!panelHeaderTooltip,
64
+ }"
65
+ >
66
+ {{ $st(heading) }}
67
+ </span>
68
+ <v-tooltip
69
+ v-if="panelHeaderTooltip"
70
+ activator=".v-expansion-panel-title"
71
+ >
72
+ {{ $st(panelHeaderTooltip) }}
73
+ </v-tooltip>
74
+ <slot name="header-append" />
75
+ </v-list-item-title>
76
+ </template>
77
+ <template #actions>
78
+ <VcsActionButtonList
79
+ v-if="headerActions?.length > 0"
80
+ :actions="headerActions"
81
+ :overflow-count="actionButtonListOverflowCount"
82
+ />
83
+ </template>
84
+ </v-expansion-panel-title>
85
+ <v-expansion-panel-text>
86
+ <slot name="default" />
87
+ </v-expansion-panel-text>
88
+ </v-expansion-panel>
89
+ </template>
90
+
91
+ <style scoped lang="scss">
92
+ :deep(.v-expansion-panel-title) {
93
+ font-size: var(--v-vcs-font-size);
94
+ min-height: unset;
95
+ height: calc(var(--v-vcs-font-size) * 2 + 6px);
96
+ line-height: 1.2;
97
+ padding: 0 8px;
98
+ }
99
+
100
+ .vcs-panel-title__append {
101
+ width: 90%;
102
+ display: inline-block;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ vertical-align: bottom;
106
+ }
107
+
108
+ :deep(.v-expansion-panel-text__wrapper) {
109
+ padding: 0 0;
110
+ }
111
+ </style>
@@ -0,0 +1,19 @@
1
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {
2
+ disabled: boolean;
3
+ headerActions: unknown[];
4
+ heading?: string | undefined;
5
+ actionButtonListOverflowCount?: number | undefined;
6
+ $props: {
7
+ readonly disabled?: boolean | undefined;
8
+ readonly headerActions?: unknown[] | undefined;
9
+ readonly heading?: string | undefined;
10
+ readonly actionButtonListOverflowCount?: number | undefined;
11
+ };
12
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
13
+ "header-append"?(_: {}): any;
14
+ default?(_: {}): any;
15
+ }>;
16
+ export default _default;
17
+ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
18
+ $slots: S;
19
+ });
@@ -10,16 +10,16 @@
10
10
  <v-btn
11
11
  :ripple="false"
12
12
  dense
13
- variant="plain"
13
+ variant="text"
14
14
  icon
15
- :size="useItemHeight().value - 4"
15
+ :size="fontSize * 2"
16
16
  :disabled="disabled"
17
17
  elevation="0"
18
18
  @click="open = !open"
19
19
  v-if="expandable"
20
20
  :aria-expanded="open"
21
21
  >
22
- <v-icon :size="useItemHeight().value - 8">{{
22
+ <v-icon>{{
23
23
  open ? 'mdi-chevron-down' : 'mdi-chevron-right'
24
24
  }}</v-icon>
25
25
  </v-btn>
@@ -36,7 +36,7 @@
36
36
  </div>
37
37
  </div>
38
38
  </slot>
39
- <VcsHelp :text="helpText" :show="showHelp">
39
+ <VcsHelp :text="helpText" v-if="showHelp && ($slots.help || helpText)">
40
40
  <slot name="help" />
41
41
  </VcsHelp>
42
42
  <article class="section-content" v-if="showContent">
@@ -48,7 +48,7 @@
48
48
  <script>
49
49
  import { computed, reactive, ref } from 'vue';
50
50
  import { VBtn, VIcon } from 'vuetify/components';
51
- import { useItemHeight } from '../../vuePlugins/vuetify.js';
51
+ import { useFontSize } from '../../vuePlugins/vuetify.js';
52
52
  import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
53
53
  import VcsHelp from '../notification/VcsHelp.vue';
54
54
 
@@ -134,12 +134,14 @@
134
134
  return props.headerActions;
135
135
  });
136
136
 
137
+ const fontSize = useFontSize();
138
+
137
139
  return {
138
140
  open,
139
141
  showContent,
140
142
  showHelp,
141
143
  actions,
142
- useItemHeight,
144
+ fontSize,
143
145
  };
144
146
  },
145
147
  };
@@ -147,9 +149,13 @@
147
149
 
148
150
  <style lang="scss" scoped>
149
151
  .vcs-form-section-header {
150
- height: calc(var(--v-vcs-item-height) + 8px);
152
+ height: calc(var(--v-vcs-font-size) * 2 + 14px);
151
153
  }
152
154
  .v-alert--text:before {
153
155
  background-color: transparent;
154
156
  }
157
+ // remove hover shadow over button
158
+ :deep(.v-btn__overlay) {
159
+ --v-hover-opacity: 0;
160
+ }
155
161
  </style>
@@ -33,7 +33,7 @@ declare const _default: import("vue").DefineComponent<{
33
33
  showContent: import("vue").ComputedRef<boolean>;
34
34
  showHelp: import("vue").ComputedRef<boolean>;
35
35
  actions: import("vue").ComputedRef<VcsAction>;
36
- useItemHeight: typeof useItemHeight;
36
+ fontSize: import("vue").ComputedRef<number>;
37
37
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
38
  heading: {
39
39
  type: StringConstructor;
@@ -69,9 +69,8 @@ declare const _default: import("vue").DefineComponent<{
69
69
  headerActions: unknown[];
70
70
  heading: string;
71
71
  actionButtonListOverflowCount: number;
72
+ helpText: string;
72
73
  expandable: boolean;
73
74
  startOpen: boolean;
74
- helpText: string;
75
75
  }, {}>;
76
76
  export default _default;
77
- import { useItemHeight } from '../../vuePlugins/vuetify.js';