@vcmap/ui 6.0.0-rc.2 → 6.0.0-rc.5

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 (278) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +62 -19
  3. package/build/bundle.js +1 -1
  4. package/build/info/conf.json +1 -1
  5. package/build/info/publish.js +25 -31
  6. package/build/lintTypes.js +5 -0
  7. package/config/base.config.json +2 -1
  8. package/config/dev.config.json +7 -1
  9. package/config/projects.config.json +2 -1
  10. package/config/splashscreen.config.json +45 -0
  11. package/config/www.config.json +25 -22
  12. package/dist/.htaccess +7 -0
  13. package/dist/assets/@mdi/font/README.md +25 -0
  14. package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
  15. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  16. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  17. package/dist/assets/{cesium.0b750d.js → cesium-126f111a.js} +272 -385
  18. package/dist/assets/cesium.js +1 -1
  19. package/dist/assets/{core.cbf44a.js → core-1c8b8674.js} +2015 -2019
  20. package/dist/assets/core.js +1 -1
  21. package/dist/assets/{ol.86e93c.js → ol-27f9b3f3.js} +42521 -44394
  22. package/dist/assets/ol.js +1 -1
  23. package/dist/assets/ui-7214428e.css +1 -0
  24. package/dist/assets/{ui.7c276c.js → ui-7214428e.js} +13968 -13907
  25. package/dist/assets/ui.js +1 -1
  26. package/dist/assets/vue-c78a5f76.js +6083 -0
  27. package/dist/assets/vue.js +1 -1
  28. package/dist/assets/{vuetify.4d18fe.css → vuetify-88a2fabe.css} +2 -2
  29. package/dist/assets/{vuetify.4d18fe.js → vuetify-88a2fabe.js} +7793 -7940
  30. package/dist/assets/vuetify.js +1 -1
  31. package/dist/index.html +11 -10
  32. package/index.d.ts +11 -11
  33. package/index.html +5 -5
  34. package/index.js +9 -7
  35. package/lib/olLib.js +84 -23
  36. package/package.json +19 -19
  37. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  38. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +71 -32
  39. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  40. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  41. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
  42. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
  43. package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
  44. package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
  45. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  46. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
  47. package/plugins/package.json +3 -23
  48. package/public/assets/@mdi/font/README.md +25 -0
  49. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  50. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  51. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  52. package/src/actions/StyleSelector.vue +1 -1
  53. package/src/actions/actionHelper.js +33 -22
  54. package/src/actions/flightActions.js +5 -5
  55. package/src/actions/listActions.d.ts +4 -11
  56. package/src/actions/listActions.js +6 -22
  57. package/src/actions/stateRefAction.js +2 -2
  58. package/src/application/VcsApp.vue +147 -57
  59. package/src/application/VcsApp.vue.d.ts +298 -4
  60. package/src/application/VcsAttributions.vue +2 -13
  61. package/src/application/VcsAttributionsFooter.vue +10 -11
  62. package/src/application/VcsContainer.vue +26 -9
  63. package/src/application/VcsContainer.vue.d.ts +237 -0
  64. package/src/application/VcsMainMap.vue +7 -7
  65. package/src/application/VcsMainMap.vue.d.ts +2 -2
  66. package/src/application/VcsNavbar.vue +5 -1
  67. package/src/application/VcsPositionDisplay.vue +8 -23
  68. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  69. package/src/application/VcsSettings.vue +10 -17
  70. package/src/application/VcsSplashScreen.vue +21 -40
  71. package/src/application/VcsSplashScreen.vue.d.ts +0 -2
  72. package/src/application/VcsTextPage.vue +12 -43
  73. package/src/application/VcsTextPage.vue.d.ts +4 -8
  74. package/src/application/VcsTextPageFooter.vue +23 -40
  75. package/src/components/buttons/VcsActionButtonList.vue +59 -3
  76. package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
  77. package/src/components/extent/VcsExtentEditor.vue +1 -1
  78. package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
  79. package/src/components/flight/VcsFlightComponent.vue +16 -21
  80. package/src/components/flight/VcsFlightPlayer.vue +27 -5
  81. package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
  82. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +15 -13
  83. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +3 -4
  84. package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -4
  85. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  86. package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
  87. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
  88. package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
  89. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  90. package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
  91. package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
  92. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  93. package/src/components/form-inputs-controls/VcsSelect.vue +40 -31
  94. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
  95. package/src/components/form-inputs-controls/VcsSlider.vue +13 -1
  96. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -0
  97. package/src/components/form-inputs-controls/VcsTextArea.vue +27 -26
  98. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  99. package/src/components/form-inputs-controls/VcsTextField.vue +20 -4
  100. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +9 -0
  101. package/src/components/form-inputs-controls/VcsWizardStep.vue +3 -6
  102. package/src/components/form-inputs-controls/vcsTextField.scss +9 -12
  103. package/src/components/form-output/VcsFormattedNumber.vue +21 -5
  104. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
  105. package/src/components/form-output/VcsMarkdown.vue +15 -12
  106. package/src/components/form-output/VcsMarkdown.vue.d.ts +1 -0
  107. package/src/components/form-output/markdownHelper.d.ts +30 -0
  108. package/src/components/form-output/markdownHelper.js +398 -0
  109. package/src/components/import/VcsFileDrop.vue +8 -5
  110. package/src/components/import/VcsImportComponent.vue +4 -3
  111. package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
  112. package/src/components/lists/VcsActionList.vue +11 -7
  113. package/src/components/lists/VcsList.vue +30 -52
  114. package/src/components/lists/VcsList.vue.d.ts +14 -59
  115. package/src/components/lists/{VcsListItem.vue → VcsListItemComponent.vue} +68 -22
  116. package/src/components/lists/VcsListItemComponent.vue.d.ts +69 -0
  117. package/src/components/lists/VcsTreeview.vue +43 -16
  118. package/src/components/lists/VcsTreeview.vue.d.ts +14 -3
  119. package/src/components/lists/VcsTreeviewLeaf.vue +15 -6
  120. package/src/components/lists/VcsTreeviewSearchbar.vue +2 -2
  121. package/src/components/notification/VcsHelp.vue +1 -1
  122. package/src/components/notification/VcsHelp.vue.d.ts +3 -2
  123. package/src/components/section/VcsExpansionPanel.vue +101 -0
  124. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  125. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +10 -4
  126. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -2
  127. package/src/components/style/MenuWrapper.vue +24 -26
  128. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  129. package/src/components/style/VcsFillMenu.vue +9 -16
  130. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  131. package/src/components/style/VcsFillSelector.vue +13 -16
  132. package/src/components/style/VcsImageMenu.vue +8 -25
  133. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  134. package/src/components/style/VcsImageSelector.vue +102 -167
  135. package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
  136. package/src/components/style/VcsStrokeMenu.vue +8 -15
  137. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  138. package/src/components/style/VcsStrokeSelector.vue +11 -18
  139. package/src/components/style/VcsTextMenu.vue +9 -12
  140. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  141. package/src/components/style/VcsTextSelector.vue +79 -95
  142. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  143. package/src/components/style/VcsVectorStyleComponent.vue +8 -19
  144. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  145. package/src/components/style/composables.d.ts +0 -14
  146. package/src/components/style/composables.js +0 -49
  147. package/src/components/tables/VcsDataTable.vue +28 -22
  148. package/src/components/tables/VcsTable.vue +45 -62
  149. package/src/components/tables/VcsTable.vue.d.ts +30 -17
  150. package/src/components/tables/VcsTableCell.vue +72 -0
  151. package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
  152. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +43 -9
  153. package/src/components/vector-properties/VcsFeatureTransforms.vue +5 -0
  154. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
  155. package/src/components/viewpoint/VcsViewpointComponent.vue +23 -10
  156. package/src/components/viewpoint/VcsViewpointEditor.vue +2 -1
  157. package/src/contentTree/LayerTree.vue +9 -27
  158. package/src/contentTree/LayerTree.vue.d.ts +1 -1
  159. package/src/contentTree/contentTreeCollection.d.ts +1 -0
  160. package/src/contentTree/contentTreeCollection.js +45 -11
  161. package/src/contentTree/contentTreeItem.d.ts +2 -2
  162. package/src/contentTree/contentTreeItem.js +7 -7
  163. package/src/featureInfo/BalloonComponent.vue +14 -15
  164. package/src/featureInfo/MarkdownBalloonComponent.vue +4 -2
  165. package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
  166. package/src/featureInfo/abstractFeatureInfoView.d.ts +6 -0
  167. package/src/featureInfo/abstractFeatureInfoView.js +15 -7
  168. package/src/featureInfo/featureInfo.d.ts +5 -5
  169. package/src/featureInfo/featureInfo.js +59 -41
  170. package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
  171. package/src/featureInfo/iframeFeatureInfoView.js +15 -5
  172. package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
  173. package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
  174. package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
  175. package/src/featureInfo/markdownFeatureInfoView.js +9 -11
  176. package/src/featureInfo/tableFeatureInfoView.js +13 -4
  177. package/src/init.d.ts +5 -38
  178. package/src/init.js +19 -18
  179. package/src/legend/StyleLegendItem.vue +4 -9
  180. package/src/legend/VcsLegend.vue +28 -54
  181. package/src/manager/buttonManager.js +4 -4
  182. package/src/manager/collectionManager/CollectionComponent.vue +17 -42
  183. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  184. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  185. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  186. package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
  187. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
  188. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  189. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  190. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  191. package/src/manager/collectionManager/collectionComponentClass.d.ts +1 -1
  192. package/src/manager/collectionManager/collectionComponentClass.js +7 -10
  193. package/src/manager/collectionManager/collectionManager.js +10 -10
  194. package/src/manager/collectionManager/editorCollectionComponentClass.js +6 -5
  195. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  196. package/src/manager/navbarManager.js +2 -2
  197. package/src/manager/panel/PanelComponent.vue +2 -9
  198. package/src/manager/panel/PanelManagerComponent.vue +7 -3
  199. package/src/manager/panel/panelHelper.js +3 -3
  200. package/src/manager/panel/panelManager.d.ts +9 -1
  201. package/src/manager/panel/panelManager.js +18 -6
  202. package/src/manager/toolbox/GroupToolboxComponent.vue +8 -4
  203. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
  204. package/src/manager/toolbox/SelectToolboxComponent.vue +7 -4
  205. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
  206. package/src/manager/toolbox/ToolboxManager.vue +9 -6
  207. package/src/manager/toolbox/ToolboxManager.vue.d.ts +1 -0
  208. package/src/manager/toolbox/toolboxManager.js +10 -10
  209. package/src/manager/window/WindowComponent.vue +12 -8
  210. package/src/manager/window/WindowComponentHeader.vue +29 -8
  211. package/src/manager/window/WindowComponentHeader.vue.d.ts +2 -0
  212. package/src/manager/window/WindowManager.vue +2 -2
  213. package/src/manager/window/windowManager.d.ts +2 -2
  214. package/src/manager/window/windowManager.js +4 -4
  215. package/src/navigation/MapNavigation.vue +20 -0
  216. package/src/navigation/locatorHelper.js +1 -1
  217. package/src/navigation/overviewMap.js +1 -1
  218. package/src/notifier/NotifierComponent.vue +18 -15
  219. package/src/search/ResultItem.vue +18 -6
  220. package/src/search/ResultsComponent.vue +31 -20
  221. package/src/search/ResultsComponent.vue.d.ts +2 -1
  222. package/src/search/SearchComponent.vue +8 -14
  223. package/src/search/SearchComponent.vue.d.ts +1 -0
  224. package/src/search/search.js +2 -2
  225. package/src/siteConfig.js +9 -9
  226. package/src/state.js +4 -4
  227. package/src/styles/_typography.scss +0 -2
  228. package/src/styles/main.scss +0 -4
  229. package/src/uiConfig.d.ts +300 -5
  230. package/src/uiConfig.js +28 -16
  231. package/src/vcsUiApp.d.ts +21 -17
  232. package/src/vcsUiApp.js +11 -10
  233. package/src/vuePlugins/vuetify.d.ts +2 -0
  234. package/src/vuePlugins/vuetify.js +14 -0
  235. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  236. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  237. package/dist/assets/index-8eGauqjA.js +0 -1
  238. package/dist/assets/ui.7c276c.css +0 -1
  239. package/dist/assets/vue.a3cd64.js +0 -6096
  240. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  241. package/src/application/VcsCustomScreen.vue +0 -45
  242. package/src/application/VcsCustomScreen.vue.d.ts +0 -15
  243. package/src/application/markdownHelper.d.ts +0 -12
  244. package/src/application/markdownHelper.js +0 -70
  245. package/src/components/lists/VcsListItem.vue.d.ts +0 -21
  246. package/src/components/notification/VcsTooltip.vue +0 -156
  247. package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
  248. package/src/featureInfo/MarkdownComponent.vue +0 -16
  249. package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
  250. package/src/styles/_theming.scss +0 -73
  251. package/src/styles/settings.scss +0 -6
  252. package/src/styles/shades.scss +0 -4
  253. package/src/styles/variables.scss +0 -140
  254. package/src/styles/vcsFont.scss +0 -2
  255. package/src/styles/vcsGrid.scss +0 -3
  256. /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  257. /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  258. /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  259. /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  260. /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  261. /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  262. /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  263. /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  264. /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  265. /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  266. /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  267. /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  268. /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  269. /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  270. /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  271. /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  272. /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  273. /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  274. /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  275. /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  276. /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  277. /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  278. /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
@@ -7,7 +7,7 @@
7
7
  @click.stop="select(item.value)"
8
8
  >
9
9
  <v-list-item-title
10
- :class="{ 'primary--text': item.value === currentStyleName }"
10
+ :class="{ 'text-primary': item.value === currentStyleName }"
11
11
  >
12
12
  {{ $st(item.text) }}
13
13
  </v-list-item-title>
@@ -1,5 +1,5 @@
1
1
  import { v4 as uuid } from 'uuid';
2
- import { check, checkMaybe } from '@vcsuite/check';
2
+ import { check, maybe, oneOf, optional } from '@vcsuite/check';
3
3
  import {
4
4
  Collection,
5
5
  Extent,
@@ -48,8 +48,8 @@ import SearchComponent from '../search/SearchComponent.vue';
48
48
  */
49
49
  export function getActionFromOptions(options) {
50
50
  check(options.name, String);
51
- checkMaybe(options.title, String);
52
- checkMaybe(options.icon, String);
51
+ check(options.title, maybe(String));
52
+ check(options.icon, maybe(String));
53
53
  check(options.callback, Function);
54
54
  options.active = parseBoolean(options.active, false);
55
55
  options.hasUpdate = parseBoolean(options.hasUpdate, false);
@@ -67,8 +67,8 @@ export function getActionFromOptions(options) {
67
67
  export function createMapButtonAction(actionOptions, mapName, maps) {
68
68
  check(actionOptions, {
69
69
  name: String,
70
- icon: [undefined, String],
71
- title: [undefined, String],
70
+ icon: optional(String),
71
+ title: optional(String),
72
72
  });
73
73
  check(mapName, String);
74
74
  check(maps, MapCollection);
@@ -104,12 +104,12 @@ export function createToggleAction(
104
104
  ) {
105
105
  check(actionOptions, {
106
106
  name: String,
107
- icon: [undefined, String],
108
- title: [undefined, String],
109
- hasUpdate: [undefined, Boolean],
107
+ icon: optional(String),
108
+ title: optional(String),
109
+ hasUpdate: optional(Boolean),
110
110
  });
111
111
  check(windowComponent, { id: String });
112
- check(owner, [String, vcsAppSymbol]);
112
+ check(owner, oneOf(String, vcsAppSymbol));
113
113
 
114
114
  const action = reactive({
115
115
  ...actionOptions,
@@ -153,11 +153,17 @@ export function createToggleAction(
153
153
  export function createSearchButtonAction(app) {
154
154
  let destroyAction = () => {};
155
155
  const searchAction = ref(null);
156
+ const uiConfig = app.uiConfig.config;
157
+
156
158
  const determineAction = () => {
157
159
  if (app.windowManager.has('searchId')) {
158
160
  app.windowManager.remove('searchId');
159
161
  }
160
- if (app.search.size > 0 && searchAction.value === null) {
162
+ if (
163
+ !uiConfig.hideSearch &&
164
+ app.search.size > 0 &&
165
+ searchAction.value === null
166
+ ) {
161
167
  const action = createToggleAction(
162
168
  {
163
169
  name: 'search.title',
@@ -178,7 +184,10 @@ export function createSearchButtonAction(app) {
178
184
  );
179
185
  destroyAction = action.destroy;
180
186
  searchAction.value = reactive(action.action);
181
- } else if (app.search.size === 0 && searchAction.value !== null) {
187
+ } else if (
188
+ (uiConfig.hideSearch || app.search.size === 0) &&
189
+ searchAction.value !== null
190
+ ) {
182
191
  destroyAction();
183
192
  destroyAction = () => {};
184
193
  searchAction.value = null;
@@ -186,6 +195,8 @@ export function createSearchButtonAction(app) {
186
195
  };
187
196
  determineAction();
188
197
  const listeners = [
198
+ app.uiConfig.added.addEventListener(determineAction),
199
+ app.uiConfig.removed.addEventListener(determineAction),
189
200
  app.search.added.addEventListener(determineAction),
190
201
  app.search.removed.addEventListener(determineAction),
191
202
  ];
@@ -256,10 +267,10 @@ export function createOverviewMapAction(
256
267
  export function createModalAction(actionOptions, modalComponent, app, owner) {
257
268
  check(actionOptions, {
258
269
  name: String,
259
- icon: [undefined, String],
260
- title: [undefined, String],
270
+ icon: optional(String),
271
+ title: optional(String),
261
272
  });
262
- check(owner, [String, vcsAppSymbol]);
273
+ check(owner, oneOf(String, vcsAppSymbol));
263
274
 
264
275
  const id = uuid();
265
276
  const { position: windowPositionOptions, ...component } = modalComponent;
@@ -334,10 +345,10 @@ export function createModalAction(actionOptions, modalComponent, app, owner) {
334
345
  export function createLinkAction(actionOptions, url) {
335
346
  check(actionOptions, {
336
347
  name: String,
337
- icon: [undefined, String],
338
- title: [undefined, String],
348
+ icon: optional(String),
349
+ title: optional(String),
339
350
  });
340
- check(url, [String, Function]);
351
+ check(url, oneOf(String, Function));
341
352
 
342
353
  return {
343
354
  ...actionOptions,
@@ -369,10 +380,10 @@ export function createGoToViewpointAction(
369
380
  ) {
370
381
  check(actionOptions, {
371
382
  name: String,
372
- icon: [undefined, String],
373
- title: [undefined, String],
383
+ icon: optional(String),
384
+ title: optional(String),
374
385
  });
375
- check(viewpoint, [Viewpoint, String]);
386
+ check(viewpoint, oneOf(Viewpoint, String));
376
387
  check(viewpointCollection, Collection);
377
388
  check(mapCollection, MapCollection);
378
389
 
@@ -422,8 +433,8 @@ export function createZoomToFeatureAction(
422
433
  ) {
423
434
  check(actionOptions, {
424
435
  name: String,
425
- icon: [undefined, String],
426
- title: [undefined, String],
436
+ icon: optional(String),
437
+ title: optional(String),
427
438
  });
428
439
  check(feature, Feature);
429
440
  check(mapCollection, MapCollection);
@@ -1,5 +1,5 @@
1
1
  import { reactive } from 'vue';
2
- import { check, checkMaybe } from '@vcsuite/check';
2
+ import { check, maybe, ofEnum } from '@vcsuite/check';
3
3
  import {
4
4
  createFlightVisualization,
5
5
  exportFlightAsGeoJson,
@@ -87,7 +87,7 @@ export const PlayerDirection = {
87
87
  * @returns {{action: import("./actionHelper.js").VcsAction, destroy: () => void}}
88
88
  */
89
89
  export function createStepAction(app, instance, direction) {
90
- check(direction, Object.values(PlayerDirection));
90
+ check(direction, ofEnum(PlayerDirection));
91
91
 
92
92
  let player;
93
93
  const action = reactive({
@@ -123,7 +123,7 @@ export function createStepAction(app, instance, direction) {
123
123
  * @returns {{ action: import("./actionHelper.js").VcsAction & { listeners:Object<string,()=>void>, destroy: () => void }}}
124
124
  */
125
125
  export function createFastAction(app, instance, direction) {
126
- check(direction, Object.values(PlayerDirection));
126
+ check(direction, ofEnum(PlayerDirection));
127
127
 
128
128
  let player;
129
129
  const sign = direction === PlayerDirection.Forward ? 1 : -1;
@@ -421,8 +421,8 @@ export function createExportFlightAction(instance, isPathExport = false) {
421
421
  * @returns {Promise<boolean>}
422
422
  */
423
423
  export async function importFlights(app, files, moduleId, importSuccessCb) {
424
- checkMaybe(moduleId, String);
425
- checkMaybe(importSuccessCb, Function);
424
+ check(moduleId, maybe(String));
425
+ check(importSuccessCb, maybe(Function));
426
426
 
427
427
  const { vueI18n } = app;
428
428
  const results = await Promise.all(
@@ -1,10 +1,3 @@
1
- /**
2
- * Creates an action for renaming an item in a VcsList. Shows VcsTextfield in VcsList.
3
- * @param {import("../components/lists/VcsList.vue").VcsListItem} item
4
- * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
5
- * @returns {import("./actionHelper.js").VcsAction}
6
- */
7
- export function createListItemRenameAction(item: import("../components/lists/VcsList.vue").VcsListItem, actionOptions?: Partial<import("./actionHelper.js").ActionOptions> | undefined): import("./actionHelper.js").VcsAction;
8
1
  /**
9
2
  * Creates an action for renaming an item in a VcsList.
10
3
  * @param {import("@vcmap/core").Collection<T>} collection
@@ -16,23 +9,23 @@ export function createListItemRenameAction(item: import("../components/lists/Vcs
16
9
  export function createListItemDeleteAction<T extends Object>(collection: import("@vcmap/core").Collection<T>, item: T, actionOptions?: Partial<import("./actionHelper.js").ActionOptions> | undefined): import("./actionHelper.js").VcsAction;
17
10
  /**
18
11
  * Creates an action based on a provided selection
19
- * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
12
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsListItemComponent.vue").VcsListItem>>} selection
20
13
  * @param {import("./actionHelper.js").ActionOptions & {callback:import("./actionHelper.js").ActionCallback}} [actionOptions]
21
14
  * @returns {{action: import("vue").UnwrapRef<import("./actionHelper.js").VcsAction>, destroy: import("vue").WatchStopHandle}}
22
15
  */
23
- export function createListItemBulkAction(selection: import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>, actionOptions?: (import("./actionHelper.js").ActionOptions & {
16
+ export function createListItemBulkAction(selection: import("vue").Ref<Array<import("../components/lists/VcsListItemComponent.vue").VcsListItem>>, actionOptions?: (import("./actionHelper.js").ActionOptions & {
24
17
  callback: import("./actionHelper.js").ActionCallback;
25
18
  }) | undefined): {
26
19
  action: import("vue").UnwrapRef<import("./actionHelper.js").VcsAction>;
27
20
  destroy: import("vue").WatchStopHandle;
28
21
  };
29
22
  /**
30
- * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
23
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsListItemComponent.vue").VcsListItem>>} selection
31
24
  * @param {import("./actionHelper.js").ActionCallback} exportCallback
32
25
  * @param {string|symbol} owner
33
26
  * @returns {{action: import("../manager/collectionManager/collectionManager.js").OwnedAction, destroy: (function(): void)}}
34
27
  */
35
- export function createListExportAction(selection: import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>, exportCallback: import("./actionHelper.js").ActionCallback, owner: string | symbol): {
28
+ export function createListExportAction(selection: import("vue").Ref<Array<import("../components/lists/VcsListItemComponent.vue").VcsListItem>>, exportCallback: import("./actionHelper.js").ActionCallback, owner: string | symbol): {
36
29
  action: import("../manager/collectionManager/collectionManager.js").OwnedAction;
37
30
  destroy: (() => void);
38
31
  };
@@ -1,5 +1,5 @@
1
1
  import { reactive, watch } from 'vue';
2
- import { check } from '@vcsuite/check';
2
+ import { check, oneOf, optional } from '@vcsuite/check';
3
3
  import { getLogger } from '@vcsuite/logger';
4
4
  import { parseGeoJSON } from '@vcmap/core';
5
5
  import VcsImportComponent from '../components/import/VcsImportComponent.vue';
@@ -8,22 +8,6 @@ import { WindowSlot } from '../manager/window/windowManager.js';
8
8
  import { vcsAppSymbol } from '../pluginHelper.js';
9
9
  import { NotificationType } from '../notifier/notifier.js';
10
10
 
11
- /**
12
- * Creates an action for renaming an item in a VcsList. Shows VcsTextfield in VcsList.
13
- * @param {import("../components/lists/VcsList.vue").VcsListItem} item
14
- * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
15
- * @returns {import("./actionHelper.js").VcsAction}
16
- */
17
- export function createListItemRenameAction(item, actionOptions = {}) {
18
- return {
19
- name: 'list.renameItem',
20
- ...actionOptions,
21
- callback: () => {
22
- item.rename = true;
23
- },
24
- };
25
- }
26
-
27
11
  /**
28
12
  * Creates an action for renaming an item in a VcsList.
29
13
  * @param {import("@vcmap/core").Collection<T>} collection
@@ -50,15 +34,15 @@ export function createListItemDeleteAction(
50
34
 
51
35
  /**
52
36
  * Creates an action based on a provided selection
53
- * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
37
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsListItemComponent.vue").VcsListItem>>} selection
54
38
  * @param {import("./actionHelper.js").ActionOptions & {callback:import("./actionHelper.js").ActionCallback}} [actionOptions]
55
39
  * @returns {{action: import("vue").UnwrapRef<import("./actionHelper.js").VcsAction>, destroy: import("vue").WatchStopHandle}}
56
40
  */
57
41
  export function createListItemBulkAction(selection, actionOptions) {
58
42
  check(actionOptions, {
59
43
  name: String,
60
- icon: [undefined, String],
61
- title: [undefined, String],
44
+ icon: optional(String),
45
+ title: optional(String),
62
46
  callback: Function,
63
47
  });
64
48
 
@@ -75,7 +59,7 @@ export function createListItemBulkAction(selection, actionOptions) {
75
59
  }
76
60
 
77
61
  /**
78
- * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
62
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsListItemComponent.vue").VcsListItem>>} selection
79
63
  * @param {import("./actionHelper.js").ActionCallback} exportCallback
80
64
  * @param {string|symbol} owner
81
65
  * @returns {{action: import("../manager/collectionManager/collectionManager.js").OwnedAction, destroy: (function(): void)}}
@@ -218,7 +202,7 @@ export function createListImportAction(
218
202
  parentId,
219
203
  ) {
220
204
  check(importCallback, Function);
221
- check(owner, [String, vcsAppSymbol]);
205
+ check(owner, oneOf(String, vcsAppSymbol));
222
206
  check(parentId, String);
223
207
 
224
208
  const { action, destroy } = createToggleAction(
@@ -1,5 +1,5 @@
1
1
  import { reactive, watch } from 'vue';
2
- import { check } from '@vcsuite/check';
2
+ import { check, ofEnum } from '@vcsuite/check';
3
3
 
4
4
  /**
5
5
  * @enum {number}
@@ -28,7 +28,7 @@ const stateIconMap = {
28
28
  */
29
29
  export function createStateRefAction(name, stateRef, callback) {
30
30
  check(name, String);
31
- check(stateRef?.value, Object.values(StateActionState));
31
+ check(stateRef?.value, ofEnum(StateActionState));
32
32
  check(callback, Function);
33
33
 
34
34
  const currentState = stateRef.value;