@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.
Files changed (320) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +2 -8
  3. package/build/info/conf.json +1 -1
  4. package/config/base.config.json +4 -4
  5. package/config/projects.config.json +2 -1
  6. package/config/splashscreen.config.json +45 -0
  7. package/dist/.htaccess +7 -0
  8. package/dist/assets/@mdi/font/README.md +25 -0
  9. package/dist/assets/@mdi/font/css/materialdesignicons.min-7a4f6be0.css +3 -0
  10. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  11. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  12. package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -1
  13. package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
  14. package/dist/assets/cesium/Workers/{chunk-ZA25DG4Y.js → chunk-3DRPXHZ4.js} +11 -11
  15. package/dist/assets/cesium/Workers/{chunk-OAVNIRB4.js → chunk-3GI7DWF7.js} +5 -7
  16. package/dist/assets/cesium/Workers/{chunk-TFC6TZ3S.js → chunk-4EW3HFFI.js} +33 -22
  17. package/dist/assets/cesium/Workers/{chunk-LLUNNUJV.js → chunk-4OX4RYLB.js} +5 -5
  18. package/dist/assets/cesium/Workers/{chunk-66QLLS45.js → chunk-4RJH3H6D.js} +11 -9
  19. package/dist/assets/cesium/Workers/{chunk-MPAZH4BF.js → chunk-5OUTANXX.js} +1 -1
  20. package/dist/assets/cesium/Workers/{chunk-WXTV4ATB.js → chunk-6DH5PLFD.js} +1 -1
  21. package/dist/assets/cesium/Workers/{chunk-A4JVFBQ3.js → chunk-6DXIYFX3.js} +2 -2
  22. package/dist/assets/cesium/Workers/chunk-A5C2A5O5.js +963 -0
  23. package/dist/assets/cesium/Workers/{chunk-HQF437NJ.js → chunk-AGTH5JMJ.js} +6 -6
  24. package/dist/assets/cesium/Workers/{chunk-RP2A7BR5.js → chunk-AVFIYUKX.js} +12 -14
  25. package/dist/assets/cesium/Workers/{chunk-227AJNOA.js → chunk-BAJAVGUF.js} +5 -5
  26. package/dist/assets/cesium/Workers/{chunk-N3JIFFX2.js → chunk-BPY4HDAK.js} +5 -6
  27. package/dist/assets/cesium/Workers/{chunk-ABADGKYE.js → chunk-D6PDWQXW.js} +2 -2
  28. package/dist/assets/cesium/Workers/{chunk-34YUDLRP.js → chunk-DR7LK6PG.js} +13 -13
  29. package/dist/assets/cesium/Workers/{chunk-OYFCF4PL.js → chunk-DTACCQDR.js} +6 -6
  30. package/dist/assets/cesium/Workers/{chunk-C3SXRKRW.js → chunk-EVU2UNBD.js} +7 -7
  31. package/dist/assets/cesium/Workers/{chunk-6BTKZDRG.js → chunk-F7IEM66T.js} +3 -5
  32. package/dist/assets/cesium/Workers/{chunk-QT3MPEMI.js → chunk-FSXNF76Y.js} +4 -4
  33. package/dist/assets/cesium/Workers/{chunk-PCJWUS4M.js → chunk-FYYT5EVH.js} +830 -14
  34. package/dist/assets/cesium/Workers/{chunk-QMEMZIJI.js → chunk-FZDKIUDT.js} +4 -4
  35. package/dist/assets/cesium/Workers/{chunk-XTY7B2N6.js → chunk-G6346EDR.js} +16 -16
  36. package/dist/assets/cesium/Workers/{chunk-CHHNOC2C.js → chunk-H7PSTL64.js} +95 -155
  37. package/dist/assets/cesium/Workers/{chunk-2R5O53JW.js → chunk-I67V66MN.js} +6 -6
  38. package/dist/assets/cesium/Workers/{chunk-JS3AW5BK.js → chunk-IALQGTA2.js} +6 -6
  39. package/dist/assets/cesium/Workers/{chunk-K36FEYS7.js → chunk-KNMGSIIN.js} +16 -12
  40. package/dist/assets/cesium/Workers/{chunk-J3JY6I2C.js → chunk-L4XQPD6P.js} +49 -88
  41. package/dist/assets/cesium/Workers/{chunk-X4SU25DT.js → chunk-LMTN7R7M.js} +10 -12
  42. package/dist/assets/cesium/Workers/{chunk-JB2LWGH4.js → chunk-LUYI3XCB.js} +14 -14
  43. package/dist/assets/cesium/Workers/{chunk-AFFLIKOH.js → chunk-N5MIFVXJ.js} +7 -7
  44. package/dist/assets/cesium/Workers/{chunk-MYZB7C4T.js → chunk-O7OUBDMZ.js} +10 -10
  45. package/dist/assets/cesium/Workers/{chunk-VLGOATD6.js → chunk-P24I5VUS.js} +22 -22
  46. package/dist/assets/cesium/Workers/{chunk-KD4Y7CZL.js → chunk-PIOKSAZH.js} +15 -17
  47. package/dist/assets/cesium/Workers/{chunk-3W63OHNJ.js → chunk-PRKEY4QK.js} +5 -5
  48. package/dist/assets/cesium/Workers/{chunk-O5AMBQ36.js → chunk-Q7PM4W34.js} +8 -8
  49. package/dist/assets/cesium/Workers/{chunk-GLZBE3ML.js → chunk-QLC66ZRL.js} +13 -13
  50. package/dist/assets/cesium/Workers/{chunk-OZJDGN5F.js → chunk-RRLGJV3Q.js} +16 -16
  51. package/dist/assets/cesium/Workers/{chunk-CCFQRR6D.js → chunk-S2UEXF6T.js} +1 -1
  52. package/dist/assets/cesium/Workers/{chunk-QIKODV5G.js → chunk-S4VTLNAJ.js} +4 -4
  53. package/dist/assets/cesium/Workers/{chunk-EW2GWJYB.js → chunk-SJC5PRDX.js} +2 -2
  54. package/dist/assets/cesium/Workers/{chunk-KTJSNCK4.js → chunk-T6TZXGG5.js} +230 -20
  55. package/dist/assets/cesium/Workers/{chunk-RW6LU2CJ.js → chunk-TLGODPEV.js} +5 -5
  56. package/dist/assets/cesium/Workers/{chunk-CTELOFLA.js → chunk-UC566ISB.js} +6 -6
  57. package/dist/assets/cesium/Workers/{chunk-ZFOBYDGF.js → chunk-UMX265HW.js} +2 -2
  58. package/dist/assets/cesium/Workers/{chunk-Z24VKNDO.js → chunk-V7WJDCPA.js} +12 -12
  59. package/dist/assets/cesium/Workers/{chunk-4MFFIWUA.js → chunk-VD6G7UPU.js} +2 -2
  60. package/dist/assets/cesium/Workers/{chunk-XY7MGBKC.js → chunk-WMVCLETM.js} +14 -16
  61. package/dist/assets/cesium/Workers/{chunk-IPA4EACJ.js → chunk-WOA6WSHH.js} +12 -12
  62. package/dist/assets/cesium/Workers/{chunk-PFQBCKBM.js → chunk-X67EJ6X6.js} +4398 -2722
  63. package/dist/assets/cesium/Workers/{chunk-V3NGATMV.js → chunk-XGI4FRXF.js} +11 -13
  64. package/dist/assets/cesium/Workers/{chunk-AHKEZ2OE.js → chunk-YFVI4SQI.js} +1 -1
  65. package/dist/assets/cesium/Workers/{chunk-HARLBUOL.js → chunk-YFYPR4MW.js} +11 -8
  66. package/dist/assets/cesium/Workers/combineGeometry.js +22 -23
  67. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -17
  68. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -15
  69. package/dist/assets/cesium/Workers/createCircleGeometry.js +29 -26
  70. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -18
  71. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +35 -36
  72. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -30
  73. package/dist/assets/cesium/Workers/createCorridorGeometry.js +29 -30
  74. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +27 -28
  75. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -19
  76. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +17 -19
  77. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -25
  78. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -18
  79. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -18
  80. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -17
  81. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -17
  82. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +18 -18
  83. package/dist/assets/cesium/Workers/createGeometry.js +52 -33
  84. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +28 -29
  85. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -15
  86. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -14
  87. package/dist/assets/cesium/Workers/createPolygonGeometry.js +451 -176
  88. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +29 -30
  89. package/dist/assets/cesium/Workers/createPolylineGeometry.js +24 -25
  90. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +31 -33
  91. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +27 -29
  92. package/dist/assets/cesium/Workers/createRectangleGeometry.js +30 -31
  93. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +21 -24
  94. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +22 -23
  95. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -18
  96. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -17
  97. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  98. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +14 -16
  99. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -23
  100. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  101. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -21
  102. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +14 -16
  103. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -25
  104. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +25 -26
  105. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -21
  106. package/dist/assets/cesium/Workers/createWallGeometry.js +23 -24
  107. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +22 -23
  108. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  109. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +12 -19
  110. package/dist/assets/cesium/Workers/decodeI3S.js +600 -92
  111. package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -82
  112. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  113. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +21 -22
  114. package/dist/assets/{cesium.6b12b4.js → cesium-cb4dbfba.js} +151166 -145641
  115. package/dist/assets/cesium.js +1 -1
  116. package/dist/assets/{core.074b78.js → core-72f21835.js} +2299 -2225
  117. package/dist/assets/core.js +1 -1
  118. package/dist/assets/{ol.8b2e3a.js → ol-2d33bc8b.js} +42505 -44282
  119. package/dist/assets/ol.js +1 -1
  120. package/dist/assets/ui-2ab43a16.css +1 -0
  121. package/dist/assets/{ui.715986.js → ui-2ab43a16.js} +12001 -11136
  122. package/dist/assets/ui.js +1 -1
  123. package/dist/assets/vue.js +1 -1
  124. package/dist/assets/{vuetify.28d881.css → vuetify-760ced3b.css} +1 -1
  125. package/dist/assets/{vuetify.28d881.js → vuetify-760ced3b.js} +5720 -5662
  126. package/dist/assets/vuetify.js +1 -1
  127. package/dist/index.html +11 -10
  128. package/index.d.ts +9 -5
  129. package/index.html +5 -5
  130. package/index.js +4 -3
  131. package/lib/olLib.js +84 -23
  132. package/package.json +10 -9
  133. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  134. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +70 -30
  135. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  136. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  137. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +45 -94
  138. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  139. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +35 -10
  140. package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +40 -54
  141. package/public/assets/@mdi/font/README.md +25 -0
  142. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  143. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  144. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  145. package/src/actions/actionHelper.js +20 -20
  146. package/src/actions/flightActions.js +5 -5
  147. package/src/actions/listActions.d.ts +0 -7
  148. package/src/actions/listActions.js +4 -20
  149. package/src/actions/stateRefAction.js +2 -2
  150. package/src/application/VcsApp.vue +53 -29
  151. package/src/application/VcsApp.vue.d.ts +1 -0
  152. package/src/application/VcsAttributions.vue +2 -13
  153. package/src/application/VcsAttributionsFooter.vue +10 -11
  154. package/src/application/VcsNavbar.vue.d.ts +1 -1
  155. package/src/application/VcsPositionDisplay.vue +8 -23
  156. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  157. package/src/application/VcsSettings.vue +10 -17
  158. package/src/application/VcsSplashScreen.vue +34 -54
  159. package/src/application/VcsSplashScreen.vue.d.ts +4 -6
  160. package/src/application/VcsTextPage.vue +13 -44
  161. package/src/application/VcsTextPage.vue.d.ts +4 -8
  162. package/src/application/VcsTextPageFooter.vue +22 -40
  163. package/src/application/markdownHelper.js +2 -17
  164. package/src/components/buttons/VcsButton.vue +1 -1
  165. package/src/components/buttons/VcsButton.vue.d.ts +3 -3
  166. package/src/components/buttons/VcsFormButton.vue +1 -1
  167. package/src/components/buttons/VcsFormButton.vue.d.ts +2 -2
  168. package/src/components/buttons/VcsToolButton.vue +1 -1
  169. package/src/components/buttons/VcsToolButton.vue.d.ts +4 -4
  170. package/src/components/composables.d.ts +7 -0
  171. package/src/components/composables.js +35 -1
  172. package/src/components/extent/VcsExtentEditor.vue +1 -1
  173. package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
  174. package/src/components/flight/VcsFlightComponent.vue +16 -21
  175. package/src/components/flight/VcsFlightPlayer.vue +27 -5
  176. package/src/components/form-inputs-controls/VcsCheckbox.vue +19 -11
  177. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +1 -0
  178. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +1 -1
  179. package/src/components/form-inputs-controls/VcsCoordinate.vue +13 -1
  180. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  181. package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
  182. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +2 -64
  183. package/src/components/form-inputs-controls/VcsFileInput.vue +18 -19
  184. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  185. package/src/components/form-inputs-controls/VcsLabel.vue +31 -1
  186. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +21 -1
  187. package/src/components/form-inputs-controls/VcsRadio.vue +19 -5
  188. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  189. package/src/components/form-inputs-controls/VcsSelect.vue +44 -41
  190. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +7 -4
  191. package/src/components/form-inputs-controls/VcsSlider.vue +49 -10
  192. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +28 -2
  193. package/src/components/form-inputs-controls/VcsTextArea.vue +54 -35
  194. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  195. package/src/components/form-inputs-controls/VcsTextField.vue +21 -14
  196. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +1 -0
  197. package/src/components/form-inputs-controls/VcsWizard.vue +89 -112
  198. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +3 -13
  199. package/src/components/form-inputs-controls/VcsWizardStep.vue +75 -57
  200. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +24 -11
  201. package/src/components/form-inputs-controls/vcsTextField.scss +13 -8
  202. package/src/components/form-output/VcsFormattedNumber.vue +40 -10
  203. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +27 -0
  204. package/src/components/form-output/VcsMarkdown.vue +53 -0
  205. package/src/{application/VcsCustomScreen.vue.d.ts → components/form-output/VcsMarkdown.vue.d.ts} +6 -5
  206. package/src/components/lists/VcsActionList.vue +50 -34
  207. package/src/components/lists/VcsActionList.vue.d.ts +3 -1
  208. package/src/components/lists/VcsList.vue +82 -158
  209. package/src/components/lists/VcsList.vue.d.ts +7 -14
  210. package/src/components/lists/VcsListItem.vue +184 -0
  211. package/src/components/lists/VcsListItem.vue.d.ts +27 -0
  212. package/src/components/lists/VcsTreeviewLeaf.vue +1 -1
  213. package/src/components/modelHelper.d.ts +11 -0
  214. package/src/components/modelHelper.js +42 -2
  215. package/src/components/section/VcsExpansionPanel.vue +101 -0
  216. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  217. package/src/components/style/MenuWrapper.vue +24 -26
  218. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  219. package/src/components/style/VcsFillMenu.vue +9 -16
  220. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  221. package/src/components/style/VcsFillSelector.vue +13 -16
  222. package/src/components/style/VcsImageMenu.vue +8 -25
  223. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  224. package/src/components/style/VcsImageSelector.vue +102 -167
  225. package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
  226. package/src/components/style/VcsStrokeMenu.vue +8 -15
  227. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  228. package/src/components/style/VcsStrokeSelector.vue +11 -18
  229. package/src/components/style/VcsTextMenu.vue +9 -12
  230. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  231. package/src/components/style/VcsTextSelector.vue +79 -95
  232. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  233. package/src/components/style/VcsVectorStyleComponent.vue +7 -18
  234. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  235. package/src/components/style/composables.d.ts +0 -14
  236. package/src/components/style/composables.js +0 -49
  237. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +53 -12
  238. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +3 -3
  239. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +475 -586
  240. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +193 -22
  241. package/src/components/viewpoint/VcsViewpointComponent.vue +21 -8
  242. package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
  243. package/src/contentTree/contentTreeItem.d.ts +2 -2
  244. package/src/contentTree/contentTreeItem.js +7 -7
  245. package/src/featureInfo/featureInfo.js +8 -10
  246. package/src/init.d.ts +5 -38
  247. package/src/init.js +19 -18
  248. package/src/legend/StyleLegendItem.vue +4 -9
  249. package/src/legend/VcsLegend.vue +28 -54
  250. package/src/manager/buttonManager.js +4 -4
  251. package/src/manager/collectionManager/CollectionComponent.vue +17 -42
  252. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  253. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  254. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  255. package/src/manager/collectionManager/CollectionComponentList.vue +10 -8
  256. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +4 -2
  257. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  258. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  259. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  260. package/src/manager/collectionManager/collectionComponentClass.js +6 -9
  261. package/src/manager/collectionManager/collectionManager.js +10 -10
  262. package/src/manager/collectionManager/editorCollectionComponentClass.js +4 -4
  263. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  264. package/src/manager/navbarManager.js +2 -2
  265. package/src/manager/panel/panelManager.js +3 -3
  266. package/src/manager/toolbox/toolboxManager.js +10 -10
  267. package/src/manager/window/windowManager.d.ts +6 -6
  268. package/src/manager/window/windowManager.js +6 -6
  269. package/src/navigation/MapNavigation.vue +6 -3
  270. package/src/navigation/OrientationToolsButton.vue +39 -26
  271. package/src/navigation/OrientationToolsButton.vue.d.ts +5 -1
  272. package/src/navigation/TiltSlider.vue +83 -88
  273. package/src/navigation/TiltSlider.vue.d.ts +10 -7
  274. package/src/navigation/VcsCompass.vue +17 -11
  275. package/src/navigation/VcsCompass.vue.d.ts +2 -0
  276. package/src/search/search.js +2 -2
  277. package/src/siteConfig.js +1 -1
  278. package/src/state.js +4 -4
  279. package/src/styles/_typography.scss +1 -0
  280. package/src/vcsUiApp.d.ts +24 -26
  281. package/src/vcsUiApp.js +11 -4
  282. package/src/vuePlugins/i18n.js +7 -0
  283. package/src/vuePlugins/vuetify.d.ts +2 -0
  284. package/src/vuePlugins/vuetify.js +15 -0
  285. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  286. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  287. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +0 -3273
  288. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +0 -73
  289. package/dist/assets/index-ca7EmZ3d.js +0 -1
  290. package/dist/assets/ui.715986.css +0 -1
  291. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  292. package/src/application/VcsCustomScreen.vue +0 -45
  293. package/src/components/vector-properties/composables.d.ts +0 -33
  294. package/src/components/vector-properties/composables.js +0 -100
  295. package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  296. package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  297. package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  298. package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  299. package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  300. package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  301. package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  302. package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  303. package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  304. package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  305. package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  306. package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  307. package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  308. package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  309. package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  310. package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  311. package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  312. package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  313. package/dist/assets/{vue.0f2c53.js → vue-03b265aa.js} +0 -0
  314. package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  315. package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  316. package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  317. package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  318. package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
  319. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +0 -0
  320. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -1
@@ -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!
@@ -59,7 +60,14 @@ export function useProxiedComplexModel(props, prop, emit) {
59
60
  if (deepEqual(internal.value, newValue)) {
60
61
  return;
61
62
  }
62
- internal.value = structuredClone(newValue);
63
+ try {
64
+ internal.value = structuredClone(newValue);
65
+ } catch (e) {
66
+ getLogger('modelHelper').error(
67
+ 'Failed to update internal value. You may have a provided a deeply nested ref, which caused',
68
+ e,
69
+ );
70
+ }
63
71
  },
64
72
  {
65
73
  deep: true,
@@ -77,7 +85,14 @@ export function useProxiedComplexModel(props, prop, emit) {
77
85
  if (deepEqual(value, newValue)) {
78
86
  return;
79
87
  }
80
- emit(`update:${prop}`, structuredClone(newValue));
88
+ try {
89
+ emit(`update:${prop}`, structuredClone(newValue));
90
+ } catch (e) {
91
+ getLogger('modelHelper').error(
92
+ 'Failed to emit value. You may have a provided a deeply nested ref, which caused',
93
+ e,
94
+ );
95
+ }
81
96
  },
82
97
  {
83
98
  deep: true,
@@ -86,3 +101,28 @@ export function useProxiedComplexModel(props, prop, emit) {
86
101
 
87
102
  return internal;
88
103
  }
104
+
105
+ /**
106
+ * Helper function that returns a modelValue for VcsCheckbox depending on the availability of a specific property within a model object
107
+ * Getter returns true, if property is available, otherwise false.
108
+ * Setter applies provided defaultValue on the model object, if checked (true) and undefined, if unchecked (false)
109
+ * @param {import("vue").Ref<Object>} localValue The model object, e.g. provided by `useProxiedComplexModel` or a local ref object.
110
+ * @param {string} key The key of the localValue that should be return on get and updated on set.
111
+ * @param {D} defaultValue The default value that is set on checked (true)
112
+ * @returns {import('vue').WritableComputedRef<boolean>}
113
+ * @template D
114
+ */
115
+ export function useModelHasProperty(localValue, key, defaultValue) {
116
+ const model = () => localValue.value;
117
+ return computed({
118
+ get() {
119
+ return model()[key] !== undefined;
120
+ },
121
+ set(value) {
122
+ const v = value ? defaultValue : undefined;
123
+ if (localValue.value[key] !== v) {
124
+ localValue.value[key] = v;
125
+ }
126
+ },
127
+ });
128
+ }
@@ -0,0 +1,101 @@
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
+
14
+ const props = defineProps({
15
+ heading: {
16
+ type: String,
17
+ default: undefined,
18
+ },
19
+ disabled: {
20
+ type: Boolean,
21
+ default: false,
22
+ },
23
+ headerActions: {
24
+ type: Array,
25
+ default: () => [],
26
+ },
27
+ actionButtonListOverflowCount: {
28
+ type: Number,
29
+ required: false,
30
+ default: undefined,
31
+ },
32
+ });
33
+
34
+ const slots = useSlots();
35
+
36
+ const panelHeader = ref(null);
37
+ const panelHeaderTooltip = createEllipseTooltip(
38
+ computed(() => panelHeader.value?.$el),
39
+ computed(() => undefined),
40
+ computed(() => props.heading),
41
+ );
42
+ </script>
43
+ <template>
44
+ <v-expansion-panel :disabled="disabled" v-bind="$attrs">
45
+ <v-expansion-panel-title static class="px-2">
46
+ <template #default="{ expanded }">
47
+ <v-list-item-title ref="panelHeader">
48
+ <v-icon v-if="!expanded" class="pr-1"> mdi-chevron-down </v-icon>
49
+ <v-icon v-if="expanded" class="pr-1"> mdi-chevron-right </v-icon>
50
+ <span
51
+ :class="{
52
+ 'vcs-panel-title__append':
53
+ !!slots['header-append'] && !!panelHeaderTooltip,
54
+ }"
55
+ >
56
+ {{ $st(heading) }}
57
+ </span>
58
+ <v-tooltip
59
+ v-if="panelHeaderTooltip"
60
+ activator=".v-expansion-panel-title"
61
+ >
62
+ {{ $st(panelHeaderTooltip) }}
63
+ </v-tooltip>
64
+ <slot name="header-append" />
65
+ </v-list-item-title>
66
+ </template>
67
+ <template #actions>
68
+ <VcsActionButtonList
69
+ v-if="headerActions?.length > 0"
70
+ :actions="headerActions"
71
+ :overflow-count="actionButtonListOverflowCount"
72
+ />
73
+ </template>
74
+ </v-expansion-panel-title>
75
+ <v-expansion-panel-text>
76
+ <slot name="default" />
77
+ </v-expansion-panel-text>
78
+ </v-expansion-panel>
79
+ </template>
80
+
81
+ <style scoped lang="scss">
82
+ :deep(.v-expansion-panel-title) {
83
+ font-size: var(--v-vcs-font-size);
84
+ min-height: unset;
85
+ height: var(--v-vcs-item-height);
86
+ line-height: 1.2;
87
+ padding: 0 8px;
88
+ }
89
+
90
+ .vcs-panel-title__append {
91
+ width: 90%;
92
+ display: inline-block;
93
+ overflow: hidden;
94
+ text-overflow: ellipsis;
95
+ vertical-align: bottom;
96
+ }
97
+
98
+ :deep(.v-expansion-panel-text__wrapper) {
99
+ padding: 0 0;
100
+ }
101
+ </style>
@@ -0,0 +1,19 @@
1
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {
2
+ headerActions: unknown[];
3
+ disabled: boolean;
4
+ heading?: string | undefined;
5
+ actionButtonListOverflowCount?: number | undefined;
6
+ $props: {
7
+ readonly headerActions?: unknown[] | undefined;
8
+ readonly disabled?: boolean | 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
+ });
@@ -3,7 +3,7 @@
3
3
  <div class="d-flex align-center py-1">
4
4
  <VcsCheckbox
5
5
  :model-value="!!modelValue"
6
- @change="handleCheckbox"
6
+ @update:modelValue="handleCheckbox"
7
7
  :disabled="disabled"
8
8
  />
9
9
  <v-menu
@@ -11,24 +11,19 @@
11
11
  persistent
12
12
  v-model="isMenuOpen"
13
13
  :absolute="true"
14
- :disabled="!value || disabled"
15
- min-width="300"
16
- max-width="300"
14
+ :disabled="!modelValue || disabled"
15
+ width="300"
17
16
  >
18
17
  <template #activator="{ props }">
19
- <VcsTooltip :tooltip="name">
20
- <template #activator>
21
- <v-card
22
- rounded
23
- height="24px"
24
- width="32px"
25
- v-bind="props"
26
- class="tiled-background"
27
- >
28
- <slot name="preview" />
29
- </v-card>
30
- </template>
31
- </VcsTooltip>
18
+ <v-card
19
+ rounded
20
+ height="24px"
21
+ width="32px"
22
+ v-bind="props"
23
+ class="tiled-background"
24
+ >
25
+ <slot name="preview" />
26
+ </v-card>
32
27
  </template>
33
28
  <VcsFormSection
34
29
  :heading="name"
@@ -60,21 +55,22 @@
60
55
  </template>
61
56
 
62
57
  <script>
63
- import { ref } from 'vue';
58
+ import { ref, toRaw } from 'vue';
64
59
  import { VSheet, VMenu, VCard } from 'vuetify/components';
65
- import VcsFormSection from '../form-inputs-controls/VcsFormSection.vue';
60
+ import VcsFormSection from '../section/VcsFormSection.vue';
66
61
  import VcsCheckbox from '../form-inputs-controls/VcsCheckbox.vue';
67
- import VcsTooltip from '../notification/VcsTooltip.vue';
68
62
 
69
63
  /**
70
64
  * @description A wrapper for style components, that provides:
71
65
  * - a 32 x 24 px preview
72
- * - a checkbox that emits null when unchecked and the value of the valueDefault prop when checked again. If the vauleDefault is undefined or null, the valueFallback will be emitted.
66
+ * - a checkbox that emits null when unchecked and the value of the valueDefault prop when checked again.
67
+ * If the valueDefault is undefined or null, the valueFallback will be emitted.
73
68
  * - a menu that pops up when clicking the preview. It has also a reset button that emits the value of the valueDefault prop when clicked
74
- * @vue-prop {Object} [value] - Style options that are modelled by the checkbox.
69
+ * @vue-prop {Object} [modelValue] - Style options that are modelled by the checkbox.
75
70
  * @vue-prop {string} name - The name that is displayed in the header of the menu and in the tooltip of the preview.
76
71
  * @vue-prop {Object} [valueDefault] - The default Options, that are applied when clicking reset or setting the checkbox from null to true.
77
72
  * @vue-prop {Object} valueFallback - The fallback Options, in case the valueDefault is null or undefined. These are applied when the checkbox is checked again and the default value is null. The fallback value must not be null or undefined.
73
+ * @vue-prop {boolean} [disabled=false] - Disable the input
78
74
  */
79
75
  export default {
80
76
  name: 'MenuWrapper',
@@ -83,13 +79,11 @@
83
79
  VMenu,
84
80
  VCard,
85
81
  VcsFormSection,
86
- VcsTooltip,
87
82
  VcsCheckbox,
88
83
  },
89
84
  props: {
90
85
  modelValue: {
91
86
  default: undefined,
92
- required: false,
93
87
  type: Object,
94
88
  },
95
89
  valueDefault: {
@@ -109,13 +103,14 @@
109
103
  type: Boolean,
110
104
  },
111
105
  },
106
+ emits: ['update:modelValue'],
112
107
  setup(props, { emit }) {
113
108
  const isMenuOpen = ref(false);
114
109
 
115
110
  return {
116
111
  isMenuOpen,
117
112
  reset() {
118
- emit('update:modelValue', props.valueDefault);
113
+ emit('update:modelValue', structuredClone(toRaw(props.valueDefault)));
119
114
  },
120
115
  close() {
121
116
  isMenuOpen.value = false;
@@ -123,7 +118,10 @@
123
118
  handleCheckbox(value) {
124
119
  emit(
125
120
  'update:modelValue',
126
- value ? props.valueDefault || props.valueFallback : null,
121
+ value
122
+ ? structuredClone(toRaw(props.valueDefault)) ||
123
+ structuredClone(toRaw(props.valueFallback))
124
+ : null,
127
125
  );
128
126
  },
129
127
  };
@@ -1,7 +1,6 @@
1
1
  declare const _default: import("vue").DefineComponent<{
2
2
  modelValue: {
3
3
  default: undefined;
4
- required: false;
5
4
  type: ObjectConstructor;
6
5
  };
7
6
  valueDefault: {
@@ -25,10 +24,9 @@ declare const _default: import("vue").DefineComponent<{
25
24
  reset(): void;
26
25
  close(): void;
27
26
  handleCheckbox(value: any): void;
28
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
28
  modelValue: {
30
29
  default: undefined;
31
- required: false;
32
30
  type: ObjectConstructor;
33
31
  };
34
32
  valueDefault: {
@@ -47,7 +45,9 @@ declare const _default: import("vue").DefineComponent<{
47
45
  default: boolean;
48
46
  type: BooleanConstructor;
49
47
  };
50
- }>>, {
48
+ }>> & {
49
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
50
+ }, {
51
51
  disabled: boolean;
52
52
  modelValue: Record<string, any>;
53
53
  valueDefault: Record<string, any>;
@@ -1,14 +1,14 @@
1
1
  <template>
2
2
  <MenuWrapper
3
- v-bind="{ ...$attrs, modelValue, valueDefault, disabled }"
4
3
  :value-fallback="{ color: [255, 255, 255, 1] }"
5
4
  name="components.style.fill"
5
+ v-bind="{ ...$attrs, ...$props }"
6
6
  >
7
7
  <template #preview>
8
8
  <v-sheet :color="rgbaString" width="100%" height="100%" />
9
9
  </template>
10
10
  <template #content>
11
- <VcsFillSelector :model-value="modelValue" v-bind="$attrs" />
11
+ <VcsFillSelector v-bind="{ ...$attrs, ...$props }" />
12
12
  </template>
13
13
  </MenuWrapper>
14
14
  </template>
@@ -16,16 +16,16 @@
16
16
  <script>
17
17
  import { computed } from 'vue';
18
18
  import { VSheet } from 'vuetify/components';
19
+ import { useProxiedAtomicModel } from '../modelHelper.js';
19
20
  import VcsFillSelector from './VcsFillSelector.vue';
20
21
  import MenuWrapper from './MenuWrapper.vue';
21
22
  import { useColorObject, rgbaObjectToString } from './composables.js';
22
23
 
23
24
  /**
24
25
  * @description A wrapper for the VcsFillSelector, that has a small color preview and a menu that pops up when clicking the preview, containing the fill selector.
25
- * When clicking the reset button, the valueDefault is emitted, when unchecking the checkbox in front of the preview, null is emitted. If it is checked again, valueDefault is emitted. If the valueDefault is undefined or null, { color: [255, 255, 255, 1] } is emitted.
26
- * @vue-prop {import("ol/style/Fill").Options} [value] - The Fill Options
27
- * @vue-prop {import("ol/style/Fill").Options} [valueDefault] - The default Fill Options
28
- * @vue-prop {boolean} [disabled=false] - Disable the input
26
+ * When clicking the reset button, the valueDefault is emitted, when unchecking the checkbox in front of the preview, null is emitted.
27
+ * If it is checked again, valueDefault is emitted. If the valueDefault is undefined or null, { color: [255, 255, 255, 1] } is emitted.
28
+ * @vue-prop {import("ol/style/Fill").Options} [modelValue] - The Fill Options
29
29
  */
30
30
  export default {
31
31
  name: 'VcsFillMenu',
@@ -39,17 +39,10 @@
39
39
  type: Object,
40
40
  default: undefined,
41
41
  },
42
- valueDefault: {
43
- type: Object,
44
- default: undefined,
45
- },
46
- disabled: {
47
- type: Boolean,
48
- default: false,
49
- },
50
42
  },
51
- setup(props) {
52
- const rgbaObject = useColorObject(() => props.modelValue?.color);
43
+ setup(props, { emit }) {
44
+ const localValue = useProxiedAtomicModel(props, 'modelValue', emit);
45
+ const rgbaObject = useColorObject(() => localValue.value?.color);
53
46
  return {
54
47
  rgbaString: computed(() => rgbaObjectToString(rgbaObject.value)),
55
48
  };
@@ -3,14 +3,6 @@ declare const _default: import("vue").DefineComponent<{
3
3
  type: ObjectConstructor;
4
4
  default: undefined;
5
5
  };
6
- valueDefault: {
7
- type: ObjectConstructor;
8
- default: undefined;
9
- };
10
- disabled: {
11
- type: BooleanConstructor;
12
- default: boolean;
13
- };
14
6
  }, {
15
7
  rgbaString: import("vue").ComputedRef<string>;
16
8
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -18,17 +10,7 @@ declare const _default: import("vue").DefineComponent<{
18
10
  type: ObjectConstructor;
19
11
  default: undefined;
20
12
  };
21
- valueDefault: {
22
- type: ObjectConstructor;
23
- default: undefined;
24
- };
25
- disabled: {
26
- type: BooleanConstructor;
27
- default: boolean;
28
- };
29
13
  }>>, {
30
- disabled: boolean;
31
14
  modelValue: Record<string, any>;
32
- valueDefault: Record<string, any>;
33
15
  }, {}>;
34
16
  export default _default;
@@ -1,26 +1,25 @@
1
1
  <template>
2
- <v-sheet>
3
- <v-color-picker
4
- :model-value="rgbaObject"
5
- @update:model-value="updateColor"
6
- mode="rgba"
7
- :disabled="!value"
8
- />
9
- </v-sheet>
2
+ <v-color-picker
3
+ :model-value="rgbaObject"
4
+ @update:model-value="updateColor"
5
+ mode="rgba"
6
+ :disabled="!modelValue"
7
+ width="100%"
8
+ />
10
9
  </template>
11
10
 
12
11
  <script>
13
- import { VSheet, VColorPicker } from 'vuetify/components';
12
+ import { VColorPicker } from 'vuetify/components';
14
13
  import { useColorObject } from './composables.js';
14
+ import { useProxiedComplexModel } from '../modelHelper.js';
15
15
 
16
16
  /**
17
17
  * @description Allows to model a JSON representation of ol/Fill vector style with a vuetify VColorPicker.
18
- * @vue-prop {import("ol/style/Fill").Options} value - The Fill Options
18
+ * @vue-prop {import("ol/style/Fill").Options} [modelValue] - The Fill Options
19
19
  */
20
20
  export default {
21
21
  name: 'VcsFillSelector',
22
22
  components: {
23
- VSheet,
24
23
  VColorPicker,
25
24
  },
26
25
  props: {
@@ -30,13 +29,11 @@
30
29
  },
31
30
  },
32
31
  setup(props, { emit }) {
32
+ const localValue = useProxiedComplexModel(props, 'modelValue', emit);
33
33
  return {
34
- rgbaObject: useColorObject(() => props.modelValue?.color),
34
+ rgbaObject: useColorObject(() => localValue.value?.color),
35
35
  updateColor(rgba) {
36
- const fill = {
37
- color: [rgba.r, rgba.g, rgba.b, rgba.a],
38
- };
39
- emit('update:modelValue', fill);
36
+ localValue.value.color = [rgba.r, rgba.g, rgba.b, rgba.a];
40
37
  },
41
38
  };
42
39
  },
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <MenuWrapper
3
- v-bind="{ ...$attrs, modelValue, valueDefault }"
4
3
  :value-fallback="{
5
4
  radius: 10,
6
5
  fill: { color: [255, 255, 255, 1] },
7
6
  stroke: { color: [0, 0, 0, 1], width: 2 },
8
7
  }"
9
8
  name="components.style.image"
9
+ v-bind="{ ...$attrs, ...$props }"
10
10
  >
11
11
  <template #preview>
12
12
  <canvas ref="canvas" width="32" height="24" />
@@ -15,10 +15,7 @@
15
15
  <VcsImageSelector
16
16
  v-bind="{
17
17
  ...$attrs,
18
- modelValue,
19
- valueDefault,
20
- iconOptions,
21
- extendedShapeSettings,
18
+ ...$props,
22
19
  }"
23
20
  class="pb-2"
24
21
  />
@@ -28,15 +25,13 @@
28
25
 
29
26
  <script>
30
27
  import { onMounted, ref, watch } from 'vue';
28
+ import { useProxiedAtomicModel } from '../modelHelper.js';
31
29
  import MenuWrapper from './MenuWrapper.vue';
32
30
  import VcsImageSelector, { drawImageStyle } from './VcsImageSelector.vue';
33
31
 
34
32
  /**
35
33
  * @description A wrapper for the VcsImageSelector, that has a small shape/icon preview and a menu that pops up when clicking the preview, containing the image selector.
36
- * @vue-prop {import("ol/style/RegularShape").Options | import("ol/style/Circle").Options | import("ol/style/Icon").Options} modelValue - The Image options
37
- * @vue-prop {import("ol/style/RegularShape").Options | import("ol/style/Circle").Options | import("ol/style/Icon").Options} valueDefault - The default image options
38
- * @vue-prop {import("ol/style/Icon").Options} iconOptions - The icon options too choose from. Scale and opacity are ignored.
39
- * @vue-prop {boolean} [extendedShapeSettings=false] - If true, there are all the input fields needed to create arbitrary ol RegularShapes.
34
+ * @vue-prop {import("ol/style/RegularShape").Options | import("ol/style/Circle").Options | import("ol/style/Icon").Options} [modelValue] - The Image options
40
35
  */
41
36
  export default {
42
37
  name: 'VcsImageMenu',
@@ -49,29 +44,17 @@
49
44
  type: Object,
50
45
  default: undefined,
51
46
  },
52
- valueDefault: {
53
- type: Object,
54
- default: undefined,
55
- },
56
- iconOptions: {
57
- type: Array,
58
- default: undefined,
59
- },
60
- extendedShapeSettings: {
61
- type: Boolean,
62
- default: false,
63
- },
64
47
  },
65
- setup(props) {
48
+ setup(props, { emits }) {
66
49
  const canvas = ref(null);
50
+ const localValue = useProxiedAtomicModel(props, 'modelValue', emits);
67
51
 
68
52
  onMounted(() => {
69
- drawImageStyle(canvas.value, props.modelValue, true);
53
+ drawImageStyle(canvas.value, localValue.value, true);
70
54
  watch(
71
55
  () => props.modelValue,
72
56
  () => {
73
- // XXX Maybe add some sort of timeout funciton, so it draws only once when user stops using the slider
74
- drawImageStyle(canvas.value, props.modelValue, true);
57
+ drawImageStyle(canvas.value, localValue.value, true);
75
58
  },
76
59
  { deep: true },
77
60
  );
@@ -3,18 +3,6 @@ declare const _default: import("vue").DefineComponent<{
3
3
  type: ObjectConstructor;
4
4
  default: undefined;
5
5
  };
6
- valueDefault: {
7
- type: ObjectConstructor;
8
- default: undefined;
9
- };
10
- iconOptions: {
11
- type: ArrayConstructor;
12
- default: undefined;
13
- };
14
- extendedShapeSettings: {
15
- type: BooleanConstructor;
16
- default: boolean;
17
- };
18
6
  }, {
19
7
  canvas: import("vue").Ref<null>;
20
8
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -22,22 +10,7 @@ declare const _default: import("vue").DefineComponent<{
22
10
  type: ObjectConstructor;
23
11
  default: undefined;
24
12
  };
25
- valueDefault: {
26
- type: ObjectConstructor;
27
- default: undefined;
28
- };
29
- iconOptions: {
30
- type: ArrayConstructor;
31
- default: undefined;
32
- };
33
- extendedShapeSettings: {
34
- type: BooleanConstructor;
35
- default: boolean;
36
- };
37
13
  }>>, {
38
14
  modelValue: Record<string, any>;
39
- valueDefault: Record<string, any>;
40
- extendedShapeSettings: boolean;
41
- iconOptions: unknown[];
42
15
  }, {}>;
43
16
  export default _default;