@vcmap/ui 6.0.0-rc.2 → 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 (178) 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/projects.config.json +2 -1
  5. package/config/splashscreen.config.json +45 -0
  6. package/dist/.htaccess +7 -0
  7. package/dist/assets/@mdi/font/README.md +25 -0
  8. package/dist/assets/@mdi/font/css/materialdesignicons.min-7a4f6be0.css +3 -0
  9. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  10. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  11. package/dist/assets/cesium.js +1 -1
  12. package/dist/assets/{core.cbf44a.js → core-72f21835.js} +673 -641
  13. package/dist/assets/core.js +1 -1
  14. package/dist/assets/{ol.86e93c.js → ol-2d33bc8b.js} +42505 -44282
  15. package/dist/assets/ol.js +1 -1
  16. package/dist/assets/ui-2ab43a16.css +1 -0
  17. package/dist/assets/{ui.7c276c.js → ui-2ab43a16.js} +12026 -12100
  18. package/dist/assets/ui.js +1 -1
  19. package/dist/assets/vue.js +1 -1
  20. package/dist/assets/{vuetify.4d18fe.css → vuetify-760ced3b.css} +1 -1
  21. package/dist/assets/{vuetify.4d18fe.js → vuetify-760ced3b.js} +5720 -5662
  22. package/dist/assets/vuetify.js +1 -1
  23. package/dist/index.html +11 -10
  24. package/index.d.ts +7 -5
  25. package/index.html +5 -5
  26. package/index.js +3 -3
  27. package/lib/olLib.js +84 -23
  28. package/package.json +5 -5
  29. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  30. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +70 -30
  31. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  32. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  33. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
  34. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  35. package/public/assets/@mdi/font/README.md +25 -0
  36. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  37. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  38. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  39. package/src/actions/actionHelper.js +20 -20
  40. package/src/actions/flightActions.js +5 -5
  41. package/src/actions/listActions.d.ts +0 -7
  42. package/src/actions/listActions.js +4 -20
  43. package/src/actions/stateRefAction.js +2 -2
  44. package/src/application/VcsApp.vue +52 -27
  45. package/src/application/VcsApp.vue.d.ts +1 -0
  46. package/src/application/VcsAttributions.vue +2 -13
  47. package/src/application/VcsAttributionsFooter.vue +10 -11
  48. package/src/application/VcsPositionDisplay.vue +8 -23
  49. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  50. package/src/application/VcsSettings.vue +10 -17
  51. package/src/application/VcsSplashScreen.vue +25 -42
  52. package/src/application/VcsSplashScreen.vue.d.ts +0 -2
  53. package/src/application/VcsTextPage.vue +12 -43
  54. package/src/application/VcsTextPage.vue.d.ts +4 -8
  55. package/src/application/VcsTextPageFooter.vue +22 -40
  56. package/src/components/extent/VcsExtentEditor.vue +1 -1
  57. package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
  58. package/src/components/flight/VcsFlightComponent.vue +16 -21
  59. package/src/components/flight/VcsFlightPlayer.vue +27 -5
  60. package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
  61. package/src/components/form-inputs-controls/VcsCoordinate.vue +13 -1
  62. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  63. package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
  64. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
  65. package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
  66. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  67. package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
  68. package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
  69. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  70. package/src/components/form-inputs-controls/VcsSelect.vue +39 -27
  71. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
  72. package/src/components/form-inputs-controls/VcsSlider.vue +14 -1
  73. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +5 -2
  74. package/src/components/form-inputs-controls/VcsTextArea.vue +26 -22
  75. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  76. package/src/components/form-inputs-controls/VcsTextField.vue +6 -4
  77. package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -1
  78. package/src/components/form-inputs-controls/vcsTextField.scss +8 -8
  79. package/src/components/form-output/VcsFormattedNumber.vue +15 -1
  80. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
  81. package/src/components/lists/VcsActionList.vue +7 -7
  82. package/src/components/lists/VcsList.vue +10 -17
  83. package/src/components/lists/VcsList.vue.d.ts +3 -7
  84. package/src/components/lists/VcsListItem.vue +51 -21
  85. package/src/components/lists/VcsListItem.vue.d.ts +11 -5
  86. package/src/components/section/VcsExpansionPanel.vue +101 -0
  87. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  88. package/src/components/style/MenuWrapper.vue +24 -26
  89. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  90. package/src/components/style/VcsFillMenu.vue +9 -16
  91. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  92. package/src/components/style/VcsFillSelector.vue +13 -16
  93. package/src/components/style/VcsImageMenu.vue +8 -25
  94. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  95. package/src/components/style/VcsImageSelector.vue +102 -167
  96. package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
  97. package/src/components/style/VcsStrokeMenu.vue +8 -15
  98. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  99. package/src/components/style/VcsStrokeSelector.vue +11 -18
  100. package/src/components/style/VcsTextMenu.vue +9 -12
  101. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  102. package/src/components/style/VcsTextSelector.vue +79 -95
  103. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  104. package/src/components/style/VcsVectorStyleComponent.vue +7 -18
  105. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  106. package/src/components/style/composables.d.ts +0 -14
  107. package/src/components/style/composables.js +0 -49
  108. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +39 -6
  109. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
  110. package/src/components/viewpoint/VcsViewpointComponent.vue +21 -8
  111. package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
  112. package/src/contentTree/contentTreeItem.d.ts +2 -2
  113. package/src/contentTree/contentTreeItem.js +7 -7
  114. package/src/featureInfo/featureInfo.js +8 -10
  115. package/src/init.d.ts +5 -38
  116. package/src/init.js +19 -18
  117. package/src/legend/StyleLegendItem.vue +4 -9
  118. package/src/legend/VcsLegend.vue +28 -54
  119. package/src/manager/buttonManager.js +4 -4
  120. package/src/manager/collectionManager/CollectionComponent.vue +17 -42
  121. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  122. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  123. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  124. package/src/manager/collectionManager/CollectionComponentList.vue +10 -8
  125. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +4 -2
  126. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  127. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  128. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  129. package/src/manager/collectionManager/collectionComponentClass.js +6 -9
  130. package/src/manager/collectionManager/collectionManager.js +10 -10
  131. package/src/manager/collectionManager/editorCollectionComponentClass.js +4 -4
  132. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  133. package/src/manager/navbarManager.js +2 -2
  134. package/src/manager/panel/panelManager.js +3 -3
  135. package/src/manager/toolbox/toolboxManager.js +10 -10
  136. package/src/manager/window/windowManager.d.ts +2 -2
  137. package/src/manager/window/windowManager.js +4 -4
  138. package/src/search/search.js +2 -2
  139. package/src/siteConfig.js +1 -1
  140. package/src/state.js +4 -4
  141. package/src/vcsUiApp.d.ts +14 -10
  142. package/src/vcsUiApp.js +1 -1
  143. package/src/vuePlugins/vuetify.d.ts +2 -0
  144. package/src/vuePlugins/vuetify.js +11 -0
  145. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  146. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  147. package/dist/assets/index-8eGauqjA.js +0 -1
  148. package/dist/assets/ui.7c276c.css +0 -1
  149. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  150. package/src/application/VcsCustomScreen.vue +0 -45
  151. package/src/application/VcsCustomScreen.vue.d.ts +0 -15
  152. /package/dist/assets/{cesium.0b750d.js → cesium-cb4dbfba.js} +0 -0
  153. /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  154. /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  155. /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  156. /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  157. /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  158. /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  159. /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  160. /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  161. /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  162. /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  163. /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  164. /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  165. /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  166. /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  167. /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  168. /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  169. /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  170. /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  171. /package/dist/assets/{vue.a3cd64.js → vue-03b265aa.js} +0 -0
  172. /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  173. /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  174. /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  175. /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  176. /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
  177. /package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +0 -0
  178. /package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +0 -0
@@ -9,12 +9,14 @@ declare const _default: import("vue").DefineComponent<{
9
9
  selectable: any;
10
10
  overflowCount: any;
11
11
  actions: import("vue").ComputedRef<any>;
12
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
12
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openList"[], "openList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
13
13
  open: {
14
14
  type: BooleanConstructor;
15
15
  default: boolean;
16
16
  };
17
- }>>, {
17
+ }>> & {
18
+ onOpenList?: ((...args: any[]) => any) | undefined;
19
+ }, {
18
20
  open: boolean;
19
21
  }, {}>;
20
22
  export default _default;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="py-0 px-0">
2
+ <v-container class="py-0 px-0 collection-component-content">
3
3
  <vcs-list
4
4
  :items="items.slice(0, limit)"
5
5
  :draggable="draggable"
@@ -36,13 +36,14 @@
36
36
  * @vue-event {string} openList
37
37
  */
38
38
  export default {
39
- name: 'CollectionComponent',
39
+ name: 'CollectionComponentContent',
40
40
  components: {
41
41
  VcsButton,
42
42
  VcsList,
43
43
  VSheet,
44
44
  VContainer,
45
45
  },
46
+ emits: ['openList'],
46
47
  setup(_props, { emit }) {
47
48
  /**
48
49
  * @type {CollectionComponentClass}
@@ -89,12 +90,12 @@
89
90
  <style lang="scss" scoped>
90
91
  :deep(.v-list) {
91
92
  .v-list-item {
92
- padding: 4px 8px 4px 28px;
93
+ padding-left: 24px;
94
+ padding-inline-start: 24px !important;
93
95
  }
94
96
  .v-list-item__selected {
95
- border-left: solid 4px;
96
- border-left-color: var(--v-primary-base);
97
- padding-left: 24px !important;
97
+ padding-left: 20px !important;
98
+ padding-inline-start: 20px !important;
98
99
  }
99
100
  }
100
101
  </style>
@@ -13,5 +13,7 @@ declare const _default: import("vue").DefineComponent<{}, {
13
13
  targetIndex: any;
14
14
  }): void;
15
15
  openCollectionComponentList(): void;
16
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
16
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openList"[], "openList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
17
+ onOpenList?: ((...args: any[]) => any) | undefined;
18
+ }, {}, {}>;
17
19
  export default _default;
@@ -1,11 +1,8 @@
1
1
  <template>
2
- <div>
3
- <div
4
- v-if="!hideHeader"
5
- class="v-expansion-panel-header px-2 v-expansion-panel-header--active"
6
- >
7
- <div class="d-flex justify-space-between">
8
- <div class="d-flex align-center gc-1 pl-2">
2
+ <div class="collection-component-list">
3
+ <div v-if="!hideHeader" class="pr-2 pl-4 py-1">
4
+ <div class="d-flex justify-space-between inner-header">
5
+ <div class="d-flex align-center gc-1">
9
6
  <span>
10
7
  {{ $st(title) }}
11
8
  </span>
@@ -93,6 +90,7 @@
93
90
  VcsList,
94
91
  VSheet,
95
92
  },
93
+ emits: ['closeList'],
96
94
  setup(_props, { emit }) {
97
95
  /**
98
96
  * @type {import("./collectionComponentClass.js").CollectionComponentClass}
@@ -136,4 +134,8 @@
136
134
  };
137
135
  </script>
138
136
 
139
- <style lang="scss" scoped></style>
137
+ <style lang="scss" scoped>
138
+ .inner-header {
139
+ height: calc(var(--v-vcs-item-height) - 8px);
140
+ }
141
+ </style>
@@ -31,7 +31,7 @@ declare const _default: import("vue").DefineComponent<{
31
31
  targetIndex: any;
32
32
  }): void;
33
33
  closeList(): void;
34
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
34
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "closeList"[], "closeList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
35
35
  showLessButton: {
36
36
  type: BooleanConstructor;
37
37
  default: boolean;
@@ -40,7 +40,9 @@ declare const _default: import("vue").DefineComponent<{
40
40
  type: BooleanConstructor;
41
41
  default: boolean;
42
42
  };
43
- }>>, {
43
+ }>> & {
44
+ onCloseList?: ((...args: any[]) => any) | undefined;
45
+ }, {
44
46
  hideHeader: boolean;
45
47
  showLessButton: boolean;
46
48
  }, {}>;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="w-100">
2
+ <div class="w-100 collection-component-provider">
3
3
  <slot>
4
4
  <collection-component />
5
5
  </slot>
@@ -4,6 +4,7 @@
4
4
  :header-actions="actions"
5
5
  :action-button-list-overflow-count="overflowCount"
6
6
  v-bind="{ ...$attrs }"
7
+ class="collection-component-standalone"
7
8
  >
8
9
  <collection-component-list
9
10
  v-if="componentListView"
@@ -16,7 +17,7 @@
16
17
 
17
18
  <script>
18
19
  import { computed, getCurrentInstance, inject, ref } from 'vue';
19
- import VcsFormSection from '../../components/form-inputs-controls/VcsFormSection.vue';
20
+ import VcsFormSection from '../../components/section/VcsFormSection.vue';
20
21
  import { createSelectionActions } from '../../components/lists/VcsList.vue';
21
22
  import CollectionComponentList from './CollectionComponentList.vue';
22
23
  import CollectionComponentContent from './CollectionComponentContent.vue';
@@ -27,7 +28,7 @@
27
28
  * The collectionComponent must be passed via {@link https://vuejs.org/api/composition-api-dependency-injection.html |provide }.
28
29
  */
29
30
  export default {
30
- name: 'CollectionComponent',
31
+ name: 'CollectionComponentStandalone',
31
32
  components: {
32
33
  CollectionComponentList,
33
34
  CollectionComponentContent,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="pa-0">
2
+ <v-container class="pa-0 collection-manager">
3
3
  <v-expansion-panels
4
4
  variant="accordion"
5
5
  multiple
@@ -3,13 +3,12 @@ import { getLogger } from '@vcsuite/logger';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { computed, ref, shallowRef, watch } from 'vue';
5
5
  import { parseBoolean, parseNumber } from '@vcsuite/parsers';
6
- import { check } from '@vcsuite/check';
6
+ import { check, oneOf } from '@vcsuite/check';
7
7
  import { validateAction } from '../../components/lists/VcsActionList.vue';
8
8
  import { sortByWeight } from '../buttonManager.js';
9
9
  import {
10
10
  createListItemBulkAction,
11
11
  createListItemDeleteAction,
12
- createListItemRenameAction,
13
12
  } from '../../actions/listActions.js';
14
13
  import { sortByOwner } from '../navbarManager.js';
15
14
 
@@ -56,7 +55,7 @@ function destroyListItem(listItem) {
56
55
  /**
57
56
  * Renames the title of an item for VcsObject based items.
58
57
  * @param {import("@vcmap/core").VcsObject} item
59
- * @param {import("../../components/lists/VcsList").VcsListItem} listItem
58
+ * @param {import("../../components/lists/VcsList.vue").VcsListItem} listItem
60
59
  * @param {string} newTitle
61
60
  */
62
61
  function titleChanged(item, listItem, newTitle) {
@@ -77,7 +76,7 @@ export function createSupportedMapMappingFunction(
77
76
  supportedMaps,
78
77
  mapCollection,
79
78
  ) {
80
- check(supportedMaps, [[String], Function]);
79
+ check(supportedMaps, oneOf([String], Function));
81
80
 
82
81
  return (item, _c, listItem) => {
83
82
  const mapNames =
@@ -359,11 +358,9 @@ class CollectionComponentClass {
359
358
  destroyFunctions: [],
360
359
  };
361
360
  if (this.renamable.value) {
362
- listItem.actions.push(
363
- createListItemRenameAction(listItem, {
364
- name: this._actionTitles.renameTitle,
365
- }),
366
- );
361
+ listItem.renamable = {
362
+ name: this._actionTitles.renameTitle,
363
+ };
367
364
  listItem.titleChanged = (newTitle) =>
368
365
  titleChanged(item, listItem, newTitle);
369
366
  }
@@ -1,6 +1,6 @@
1
1
  import { VcsEvent, Collection } from '@vcmap/core';
2
2
  import { reactive } from 'vue';
3
- import { check, checkMaybe } from '@vcsuite/check';
3
+ import { check, maybe, oneOf } from '@vcsuite/check';
4
4
  import { validateActions } from '../../components/lists/VcsActionList.vue';
5
5
  import CollectionComponentClass from './collectionComponentClass.js';
6
6
 
@@ -133,7 +133,7 @@ class CollectionManager {
133
133
  */
134
134
  add(collectionComponentOptions, owner) {
135
135
  check(collectionComponentOptions, { collection: Collection });
136
- check(owner, [String, Symbol]);
136
+ check(owner, oneOf(String, Symbol));
137
137
 
138
138
  if (
139
139
  collectionComponentOptions.id &&
@@ -220,9 +220,9 @@ class CollectionManager {
220
220
  owner,
221
221
  collectionComponentIds = [],
222
222
  ) {
223
- checkMaybe(predicate, Function);
223
+ check(predicate, maybe(Function));
224
224
  check(mappingFunction, Function);
225
- check(owner, [String, Symbol]);
225
+ check(owner, oneOf(String, Symbol));
226
226
  check(collectionComponentIds, [String]);
227
227
 
228
228
  /** @type {ItemMapping} */
@@ -260,7 +260,7 @@ class CollectionManager {
260
260
  */
261
261
  removeMappingFunction(mappingFunction, owner) {
262
262
  check(mappingFunction, Function);
263
- check(owner, [String, Symbol]);
263
+ check(owner, oneOf(String, Symbol));
264
264
 
265
265
  [...this._collectionComponents.values()].forEach((collectionComponent) => {
266
266
  collectionComponent.removeItemMapping({ mappingFunction, owner });
@@ -279,7 +279,7 @@ class CollectionManager {
279
279
  */
280
280
  addFilterFunction(filterFunction, owner, collectionComponentIds = []) {
281
281
  check(filterFunction, Function);
282
- check(owner, [String, Symbol]);
282
+ check(owner, oneOf(String, Symbol));
283
283
  check(collectionComponentIds, [String]);
284
284
 
285
285
  /** @type {ItemFilter} */
@@ -316,7 +316,7 @@ class CollectionManager {
316
316
  */
317
317
  removeFilterFunction(filterFunction, owner) {
318
318
  check(filterFunction, Function);
319
- check(owner, [String, Symbol]);
319
+ check(owner, oneOf(String, Symbol));
320
320
 
321
321
  [...this._collectionComponents.values()].forEach((collectionComponent) => {
322
322
  collectionComponent.removeItemFilter({ filterFunction, owner });
@@ -334,7 +334,7 @@ class CollectionManager {
334
334
  * @param {Array<string>} [collectionComponentIds] list of collectionComponents this mappingFunction should be used on. If empty, actions are applied to all managed collectionComponents.
335
335
  */
336
336
  addActions(actions, owner, collectionComponentIds = []) {
337
- check(owner, [String, Symbol]);
337
+ check(owner, oneOf(String, Symbol));
338
338
  check(collectionComponentIds, [String]);
339
339
 
340
340
  if (!validateActions(actions)) {
@@ -367,7 +367,7 @@ class CollectionManager {
367
367
  * @param {string | symbol} owner
368
368
  */
369
369
  removeActions(actions, owner) {
370
- check(owner, [String, Symbol]);
370
+ check(owner, oneOf(String, Symbol));
371
371
 
372
372
  const idx = this._itemActions.findIndex((a) => a.actions === actions);
373
373
  if (idx > -1) {
@@ -386,7 +386,7 @@ class CollectionManager {
386
386
  * @param {string | symbol} owner
387
387
  */
388
388
  removeOwner(owner) {
389
- check(owner, [String, Symbol]);
389
+ check(owner, oneOf(String, Symbol));
390
390
 
391
391
  [...this._collectionComponents.values()].forEach((collectionComponent) => {
392
392
  if (collectionComponent.owner === owner) {
@@ -1,5 +1,5 @@
1
1
  import { nextTick, reactive, watch } from 'vue';
2
- import { check, checkMaybe } from '@vcsuite/check';
2
+ import { check, maybe, oneOf } from '@vcsuite/check';
3
3
  import { WindowSlot } from '../window/windowManager.js';
4
4
  import CollectionComponentClass from './collectionComponentClass.js';
5
5
  import { createListEditAction } from '../../actions/listActions.js';
@@ -65,9 +65,9 @@ export function makeEditorCollectionComponentClass(
65
65
  parentId = 'category-manager',
66
66
  ) {
67
67
  check(collectionComponent, CollectionComponentClass);
68
- check(editingOptions.editor, [Object, Function]);
69
- checkMaybe(editingOptions.multiEditor, Object);
70
- checkMaybe(editingOptions.predicate, Function);
68
+ check(editingOptions.editor, oneOf(Object, Function));
69
+ check(editingOptions.multiEditor, maybe(Object));
70
+ check(editingOptions.predicate, maybe(Function));
71
71
 
72
72
  const editorCollectionComponent =
73
73
  /** @type {EditorCollectionComponentClass} */ collectionComponent;
@@ -1,6 +1,6 @@
1
1
  import { CesiumMap, BaseOLMap, VcsEvent } from '@vcmap/core';
2
2
  import { unByKey } from 'ol/Observable.js';
3
- import { check } from '@vcsuite/check';
3
+ import { check, oneOf } from '@vcsuite/check';
4
4
  import ContextMenuInteraction from './contextMenuInteraction.js';
5
5
  import { vcsAppSymbol } from '../../pluginHelper.js';
6
6
  import { validateAction } from '../../components/lists/VcsActionList.vue';
@@ -176,7 +176,7 @@ class ContextMenuManager {
176
176
  */
177
177
  addEventHandler(handler, owner) {
178
178
  check(handler, Function);
179
- check(owner, [String, vcsAppSymbol]);
179
+ check(owner, oneOf(String, vcsAppSymbol));
180
180
 
181
181
  this._ensureInteraction();
182
182
  this._eventHandlers.push({ owner, handler });
@@ -1,4 +1,4 @@
1
- import { check } from '@vcsuite/check';
1
+ import { check, ofEnum } from '@vcsuite/check';
2
2
  import ButtonManager, { sortByWeight } from './buttonManager.js';
3
3
  import { vcsAppSymbol } from '../pluginHelper.js';
4
4
 
@@ -89,7 +89,7 @@ class NavbarManager extends ButtonManager {
89
89
  * @returns {import("./buttonManager.js").ButtonComponent}
90
90
  */
91
91
  add(buttonComponentOptions, owner, location) {
92
- check(location, Object.values(ButtonLocation));
92
+ check(location, ofEnum(ButtonLocation));
93
93
  const buttonComponent = super.add(buttonComponentOptions, owner);
94
94
  buttonComponent[locationSymbol] = location;
95
95
  return buttonComponent;
@@ -1,6 +1,6 @@
1
1
  import { reactive } from 'vue';
2
2
  import { VcsEvent } from '@vcmap/core';
3
- import { check } from '@vcsuite/check';
3
+ import { check, ofEnum, oneOf } from '@vcsuite/check';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
5
  import { parseBoolean } from '@vcsuite/parsers';
6
6
  import { vcsAppSymbol } from '../../pluginHelper.js';
@@ -279,8 +279,8 @@ class PanelManager {
279
279
  * @returns {PanelComponent}
280
280
  */
281
281
  add(panelComponentOptions, owner, location) {
282
- check(owner, [String, vcsAppSymbol]);
283
- check(location, Object.values(PanelLocation));
282
+ check(owner, oneOf(String, vcsAppSymbol));
283
+ check(location, ofEnum(PanelLocation));
284
284
 
285
285
  const id = panelComponentOptions.id || uuidv4();
286
286
  const { component, position: panelPosition } = panelComponentOptions;
@@ -1,5 +1,5 @@
1
1
  import { VcsEvent } from '@vcmap/core';
2
- import { check, checkMaybe } from '@vcsuite/check';
2
+ import { check, maybe, ofEnum, oneOf, optional } from '@vcsuite/check';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { reactive, shallowReactive } from 'vue';
5
5
  import { vcsAppSymbol } from '../../pluginHelper.js';
@@ -230,7 +230,7 @@ class ToolboxManager {
230
230
  }
231
231
 
232
232
  set toolboxName(name) {
233
- check(name, [String, defaultToolboxName]);
233
+ check(name, oneOf(String, defaultToolboxName));
234
234
 
235
235
  if (this._toolboxName !== name) {
236
236
  this._toolboxName = name;
@@ -285,9 +285,9 @@ class ToolboxManager {
285
285
  * @returns {SingleToolboxComponent|SelectToolboxComponent|import("vue").ShallowReactive<GroupToolboxComponent>}
286
286
  */
287
287
  add(toolboxComponentOptions, owner) {
288
- checkMaybe(toolboxComponentOptions.id, String);
289
- check(toolboxComponentOptions.type, Object.values(ToolboxType));
290
- check(owner, [String, vcsAppSymbol]);
288
+ check(toolboxComponentOptions.id, maybe(String));
289
+ check(toolboxComponentOptions.type, ofEnum(ToolboxType));
290
+ check(owner, oneOf(String, vcsAppSymbol));
291
291
 
292
292
  if (toolboxComponentOptions.id && this.has(toolboxComponentOptions.id)) {
293
293
  throw new Error(
@@ -335,13 +335,13 @@ class ToolboxManager {
335
335
  ...ActionPattern,
336
336
  selected: Function,
337
337
  currentIndex: Number,
338
- disabled: [undefined, Boolean],
338
+ disabled: optional(Boolean),
339
339
  tools: [
340
340
  {
341
341
  name: String,
342
- title: [undefined, String],
342
+ title: optional(String),
343
343
  icon: String,
344
- disabled: [undefined, Boolean],
344
+ disabled: optional(Boolean),
345
345
  },
346
346
  ],
347
347
  });
@@ -357,8 +357,8 @@ class ToolboxManager {
357
357
  };
358
358
  } else {
359
359
  check(toolboxComponentOptions.icon, String);
360
- checkMaybe(toolboxComponentOptions.title, String);
361
- checkMaybe(toolboxComponentOptions.disabled, Boolean);
360
+ check(toolboxComponentOptions.title, maybe(String));
361
+ check(toolboxComponentOptions.disabled, maybe(Boolean));
362
362
  const {
363
363
  icon,
364
364
  title = undefined,
@@ -19,7 +19,7 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
19
19
  * headerComponent?: import("vue").Component<T, unknown, unknown>,
20
20
  * state? : Partial<WindowState>,
21
21
  * position? : Partial<WindowPositionOptions>,
22
- * slot: WindowSlot,
22
+ * slot?: WindowSlot,
23
23
  * props?: T,
24
24
  * provides?: Record<string, unknown>
25
25
  * }} WindowComponentOptions
@@ -136,7 +136,7 @@ export type WindowComponentOptions<T extends Object = Object> = {
136
136
  headerComponent?: import("vue").Component<T, unknown, unknown>;
137
137
  state?: Partial<WindowState>;
138
138
  position?: Partial<WindowPositionOptions>;
139
- slot: WindowSlot;
139
+ slot?: WindowSlot;
140
140
  props?: T;
141
141
  provides?: Record<string, unknown>;
142
142
  };
@@ -2,7 +2,7 @@ import { computed, reactive, ref } from 'vue';
2
2
  import { VcsEvent } from '@vcmap/core';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { parseEnumValue } from '@vcsuite/parsers';
5
- import { check } from '@vcsuite/check';
5
+ import { check, oneOf } from '@vcsuite/check';
6
6
  import { vcsAppSymbol } from '../../pluginHelper.js';
7
7
 
8
8
  /**
@@ -109,7 +109,7 @@ export function isSlotPosition(windowPosition) {
109
109
  * headerComponent?: import("vue").Component<T, unknown, unknown>,
110
110
  * state? : Partial<WindowState>,
111
111
  * position? : Partial<WindowPositionOptions>,
112
- * slot: WindowSlot,
112
+ * slot?: WindowSlot,
113
113
  * props?: T,
114
114
  * provides?: Record<string, unknown>
115
115
  * }} WindowComponentOptions
@@ -563,7 +563,7 @@ class WindowManager {
563
563
  * @returns {WindowComponent}
564
564
  */
565
565
  add(windowComponentOptions, owner) {
566
- check(owner, [String, vcsAppSymbol]);
566
+ check(owner, oneOf(String, vcsAppSymbol));
567
567
 
568
568
  if (
569
569
  windowComponentOptions.id &&
@@ -747,7 +747,7 @@ class WindowManager {
747
747
  */
748
748
  addExternalIdToZIndex(id, owner) {
749
749
  check(id, String);
750
- check(owner, [String, vcsAppSymbol]);
750
+ check(owner, oneOf(String, vcsAppSymbol));
751
751
 
752
752
  if (this.has(id)) {
753
753
  throw new Error(`Id ${id} already belongs to a window id`);
@@ -10,7 +10,7 @@ import {
10
10
  Viewpoint,
11
11
  } from '@vcmap/core';
12
12
  import { shallowRef } from 'vue';
13
- import { check } from '@vcsuite/check';
13
+ import { check, oneOf } from '@vcsuite/check';
14
14
  import { Icon } from 'ol/style.js';
15
15
  import { getLogger } from '@vcsuite/logger';
16
16
  import { vcsAppSymbol } from '../pluginHelper.js';
@@ -183,7 +183,7 @@ class Search extends IndexedCollection {
183
183
  * @param {number=} index
184
184
  */
185
185
  add(item, owner, index) {
186
- check(owner, [String, vcsAppSymbol]);
186
+ check(owner, oneOf(String, vcsAppSymbol));
187
187
  check(item.search, Function);
188
188
 
189
189
  item[searchImplOwnerSymbol] = owner;
package/src/siteConfig.js CHANGED
@@ -35,7 +35,7 @@ function setHeaderTitle(title) {
35
35
  document.head.appendChild(titleElement);
36
36
  }
37
37
 
38
- const defaultFavicon = './assets/favicon.svg';
38
+ const defaultFavicon = './assets/favicon-4c4ce5df.svg';
39
39
 
40
40
  const defaultHeaderTitle = 'VC Map';
41
41
 
package/src/state.js CHANGED
@@ -1,4 +1,4 @@
1
- import { check } from '@vcsuite/check';
1
+ import { check, optional } from '@vcsuite/check';
2
2
  import { getLogger } from '@vcsuite/logger';
3
3
  import { Viewpoint } from '@vcmap/core';
4
4
 
@@ -257,9 +257,9 @@ export function getStateFromURL(url) {
257
257
  */
258
258
  export function setStateToUrl(state, url) {
259
259
  check(state, {
260
- activeMap: [String, undefined],
261
- activeViewpoint: [Object, undefined],
262
- activeObliqueCollection: [String, undefined],
260
+ activeMap: optional(String),
261
+ activeViewpoint: optional(Object),
262
+ activeObliqueCollection: optional(String),
263
263
  layers: Array,
264
264
  plugins: Array,
265
265
  moduleIds: [String],
package/src/vcsUiApp.d.ts CHANGED
@@ -275,7 +275,14 @@ declare class VcsUiApp extends VcsApp {
275
275
  theme: import("vuetify").ThemeInstance & {
276
276
  install: (app: import("vue").App<any>) => void;
277
277
  };
278
- icons: Record<string, any>;
278
+ icons: {
279
+ defaultSet: string;
280
+ aliases: Partial<import("vuetify").IconAliases>;
281
+ sets: Record<string, import("vuetify").IconSet>; /**
282
+ * @type {Array<function():void>}
283
+ * @private
284
+ */
285
+ };
279
286
  locale: {
280
287
  isRtl: import("vue").Ref<boolean>;
281
288
  rtl: import("vue").Ref<Record<string, boolean>>;
@@ -306,7 +313,7 @@ declare class VcsUiApp extends VcsApp {
306
313
  toISO: (date: unknown) => string;
307
314
  startOfDay: (date: unknown) => unknown;
308
315
  endOfDay: (date: unknown) => unknown;
309
- startOfWeek: (date: unknown) => unknown;
316
+ startOfWeek: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown;
310
317
  endOfWeek: (date: unknown) => unknown;
311
318
  startOfMonth: (date: unknown) => unknown;
312
319
  endOfMonth: (date: unknown) => unknown;
@@ -329,8 +336,8 @@ declare class VcsUiApp extends VcsApp {
329
336
  getYear: (date: unknown) => number;
330
337
  setYear: (date: unknown, year: number) => unknown;
331
338
  getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
332
- getWeekArray: (date: unknown) => unknown[][];
333
- getWeekdays: () => string[];
339
+ getWeekArray: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown[][];
340
+ getWeekdays: (firstDayOfWeek?: string | number | undefined) => string[];
334
341
  getMonth: (date: unknown) => number;
335
342
  setMonth: (date: unknown, month: number) => unknown;
336
343
  getDate: (date: unknown) => number;
@@ -343,15 +350,12 @@ declare class VcsUiApp extends VcsApp {
343
350
  setMinutes: (date: unknown, minutes: number) => unknown;
344
351
  };
345
352
  };
346
- goTo: {
347
- rtl: import("vue").Ref<boolean>;
348
- options: Record<string, any>;
349
- };
353
+ goTo: import("vuetify").GoToInstance;
350
354
  };
351
355
  /**
352
- * @returns {import("vue-i18n").VueI18n}
356
+ * @returns {import("vue-i18n").Composer<{}, {}, {}, string, string, string>}
353
357
  */
354
- get vueI18n(): import("vue-i18n").VueI18n<any, any, any, string, string, string, import("vue-i18n").Composer<any, any, any, string, string, string>>;
358
+ get vueI18n(): import("vue-i18n").Composer<{}, {}, {}, string, string, string>;
355
359
  /**
356
360
  * @returns {CategoryManager}
357
361
  */
package/src/vcsUiApp.js CHANGED
@@ -466,7 +466,7 @@ class VcsUiApp extends VcsApp {
466
466
  }
467
467
 
468
468
  /**
469
- * @returns {import("vue-i18n").VueI18n}
469
+ * @returns {import("vue-i18n").Composer<{}, {}, {}, string, string, string>}
470
470
  */
471
471
  get vueI18n() {
472
472
  return this._vueI18n;
@@ -48,6 +48,8 @@ export function createVcsThemes(): {
48
48
  };
49
49
  variables: {
50
50
  'hover-opacity': number;
51
+ 'high-emphasis-opacity': number;
52
+ 'medium-emphasis-opacity': number;
51
53
  'vcs-item-height': string;
52
54
  'vcs-font-size': string;
53
55
  'vcs-font-family': string;
@@ -64,6 +64,8 @@ export function createVcsThemes() {
64
64
  },
65
65
  variables: {
66
66
  'hover-opacity': 0.16,
67
+ 'high-emphasis-opacity': 1,
68
+ 'medium-emphasis-opacity': 1,
67
69
  'vcs-item-height': '40px',
68
70
  'vcs-font-size': '15px',
69
71
  'vcs-font-family': 'Titillium Web',
@@ -144,6 +146,15 @@ export function createVcsVuetify(i18n) {
144
146
  density: 'compact',
145
147
  ripple: false,
146
148
  },
149
+ VColorPicker: {
150
+ elevation: 0,
151
+ tile: true,
152
+ },
153
+ VExpansionPanel: {
154
+ ripple: false,
155
+ elevation: 0,
156
+ tile: true,
157
+ },
147
158
  },
148
159
  defaultAssets: {
149
160
  font: {