@vcmap/ui 6.0.0-rc.9 → 6.0.1

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 (160) hide show
  1. package/README.md +2 -0
  2. package/build/commonViteConfig.js +7 -0
  3. package/config/aerowest.config.json +12 -2
  4. package/config/analysis.config.json +17 -0
  5. package/config/base.config.json +16 -4
  6. package/config/components-show-case.config.json +53 -0
  7. package/config/concepts-show-case.config.json +39 -0
  8. package/config/dev.config.json +165 -104
  9. package/config/dynamic-layer.config.json +32 -0
  10. package/config/hello-world.config.json +11 -0
  11. package/config/projects.config.json +9 -1
  12. package/config/solar.config.json +65 -0
  13. package/config/vectorTile.config.json +70 -0
  14. package/config/www.config.json +33 -10
  15. package/dist/assets/cesium.js +1 -1
  16. package/dist/assets/{core-ccecb5f4.js → core-9c65d604.js} +7302 -6838
  17. package/dist/assets/core.js +1 -1
  18. package/dist/assets/{ol-3c6b9b5b.js → ol-5f63bc8d.js} +5057 -5178
  19. package/dist/assets/ol.js +1 -1
  20. package/dist/assets/ui-339b3d7f.css +1 -0
  21. package/dist/assets/{ui-8a8aef2a.js → ui-339b3d7f.js} +9687 -8940
  22. package/dist/assets/ui.js +1 -1
  23. package/dist/assets/vue.js +1 -1
  24. package/dist/assets/{vuetify-ac50bfc8.js → vuetify-521222b6.js} +2507 -2504
  25. package/dist/assets/vuetify.js +1 -1
  26. package/index.d.ts +2 -0
  27. package/index.js +1 -0
  28. package/package.json +12 -12
  29. package/plugins/@vcmap-show-case/README.md +15 -6
  30. package/plugins/@vcmap-show-case/category-tester/package.json +1 -1
  31. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +23 -23
  32. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +2 -8
  33. package/plugins/@vcmap-show-case/collection-manager-example/package.json +1 -1
  34. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +10 -8
  35. package/plugins/@vcmap-show-case/context-menu-tester/package.json +1 -1
  36. package/plugins/@vcmap-show-case/extent-example/package.json +1 -1
  37. package/plugins/@vcmap-show-case/flight-component-example/package.json +1 -1
  38. package/plugins/@vcmap-show-case/form-inputs-example/package.json +1 -1
  39. package/plugins/@vcmap-show-case/hello-world/package.json +1 -1
  40. package/plugins/@vcmap-show-case/icons-example/package.json +1 -1
  41. package/plugins/@vcmap-show-case/notifier-tester/package.json +1 -1
  42. package/plugins/@vcmap-show-case/panel-tester/package.json +1 -1
  43. package/plugins/@vcmap-show-case/plugin-editors/package.json +1 -1
  44. package/plugins/@vcmap-show-case/plugin-editors/src/index.js +17 -6
  45. package/plugins/@vcmap-show-case/project-selector/package.json +1 -9
  46. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +22 -31
  47. package/plugins/@vcmap-show-case/project-selector/src/ProjectSelectorComponent.vue +15 -23
  48. package/plugins/@vcmap-show-case/projection-example/README.md +3 -0
  49. package/plugins/@vcmap-show-case/projection-example/package.json +5 -0
  50. package/plugins/@vcmap-show-case/projection-example/src/ProjectionExample.vue +73 -0
  51. package/plugins/@vcmap-show-case/{table-example → projection-example}/src/index.js +22 -11
  52. package/plugins/@vcmap-show-case/search-example/package.json +1 -1
  53. package/plugins/@vcmap-show-case/simple-graph/package.json +1 -4
  54. package/plugins/@vcmap-show-case/style-input-example/package.json +1 -1
  55. package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +2 -2
  56. package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +2 -1
  57. package/plugins/@vcmap-show-case/switch-map-callback-example/src/index.js +4 -1
  58. package/plugins/@vcmap-show-case/theming-example/package.json +1 -1
  59. package/plugins/@vcmap-show-case/toolbox-example/package.json +1 -1
  60. package/plugins/@vcmap-show-case/vector-properties-example/package.json +1 -1
  61. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +1 -1
  62. package/plugins/@vcmap-show-case/window-tester/package.json +1 -1
  63. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +1 -1
  64. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +5 -1
  65. package/plugins/@vcmap-show-case/wizard-example/package.json +1 -1
  66. package/plugins/package.json +7 -3
  67. package/src/actions/flightActions.js +40 -20
  68. package/src/actions/listActions.d.ts +1 -1
  69. package/src/actions/listActions.js +1 -1
  70. package/src/application/VcsApp.vue +3 -0
  71. package/src/application/VcsApp.vue.d.ts +12 -0
  72. package/src/application/VcsAttributions.vue +1 -1
  73. package/src/application/VcsAttributionsFooter.vue +1 -1
  74. package/src/application/VcsContainer.vue +0 -1
  75. package/src/application/VcsContainer.vue.d.ts +12 -0
  76. package/src/application/VcsObliqueFooter.vue +110 -0
  77. package/src/application/VcsObliqueFooter.vue.d.ts +4 -0
  78. package/src/application/VcsTextPageFooter.vue +1 -0
  79. package/src/application/attributionsHelper.js +10 -6
  80. package/src/components/flight/VcsFlightPlayer.vue +26 -20
  81. package/src/components/form-inputs-controls/VcsDatePicker.vue +23 -3
  82. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -1
  83. package/src/components/form-inputs-controls/VcsFileInput.vue +1 -1
  84. package/src/components/form-inputs-controls/VcsLabel.vue +10 -1
  85. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +9 -0
  86. package/src/components/form-inputs-controls/VcsRadio.vue +4 -0
  87. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +2 -2
  88. package/src/components/form-inputs-controls/VcsTextField.vue +1 -1
  89. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +2 -2
  90. package/src/components/import/VcsImportComponent.vue +3 -3
  91. package/src/components/lists/VcsActionList.vue +1 -1
  92. package/src/components/lists/VcsList.vue +42 -29
  93. package/src/components/lists/VcsListItemComponent.vue +1 -1
  94. package/src/components/lists/VcsListItemComponent.vue.d.ts +5 -32
  95. package/src/components/lists/VcsTreeview.vue +2 -0
  96. package/src/components/notification/VcsHelp.vue +0 -1
  97. package/src/components/notification/VcsHelpTooltip.vue +48 -0
  98. package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
  99. package/src/components/projection/VcsProjection.vue +329 -0
  100. package/src/components/projection/VcsProjection.vue.d.ts +7 -0
  101. package/src/components/section/VcsFormSection.vue +0 -1
  102. package/src/components/section/VcsFormSection.vue.d.ts +1 -1
  103. package/src/components/tables/VcsDataTable.vue +13 -2
  104. package/src/components/tables/VcsDataTable.vue.d.ts +12 -1
  105. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +17 -1
  106. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +10 -1
  107. package/src/components/vector-properties/VcsFeatureTransforms.vue +39 -5
  108. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
  109. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +44 -24
  110. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +27 -2
  111. package/src/components/viewpoint/VcsViewpointComponent.vue +6 -6
  112. package/src/contentTree/contentTreeCollection.js +12 -1
  113. package/src/featureInfo/abstractFeatureInfoView.d.ts +9 -0
  114. package/src/featureInfo/abstractFeatureInfoView.js +17 -1
  115. package/src/i18n/de.d.ts +90 -41
  116. package/src/i18n/de.js +63 -22
  117. package/src/i18n/en.d.ts +90 -41
  118. package/src/i18n/en.js +59 -18
  119. package/src/legend/StyleLegendItem.vue +1 -5
  120. package/src/legend/VcsLegend.vue +9 -10
  121. package/src/legend/VcsLegend.vue.d.ts +1 -1
  122. package/src/legend/legendHelper.js +6 -1
  123. package/src/manager/collectionManager/collectionComponentClass.js +4 -4
  124. package/src/manager/collectionManager/editorCollectionComponentClass.js +5 -3
  125. package/src/manager/toolbox/GroupToolboxComponent.vue +6 -1
  126. package/src/manager/toolbox/SelectToolboxComponent.vue +6 -2
  127. package/src/manager/toolbox/ToolboxManagerComponent.vue +7 -2
  128. package/src/manager/window/WindowComponentHeader.vue +1 -1
  129. package/src/navigation/MapNavCompass.vue +166 -140
  130. package/src/navigation/MapNavCompass.vue.d.ts +3 -1
  131. package/src/navigation/MapNavigation.vue +22 -5
  132. package/src/navigation/VcsCompass.vue +2 -1
  133. package/src/navigation/overviewMap.js +4 -1
  134. package/src/styles/main.scss +2 -2
  135. package/src/uiConfig.d.ts +27 -0
  136. package/src/uiConfig.js +3 -0
  137. package/src/vuePlugins/vuetify.js +2 -0
  138. package/dist/assets/ui-8a8aef2a.css +0 -1
  139. package/plugins/@vcmap-show-case/buttons-example/README.md +0 -4
  140. package/plugins/@vcmap-show-case/buttons-example/package.json +0 -5
  141. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +0 -281
  142. package/plugins/@vcmap-show-case/buttons-example/src/index.js +0 -51
  143. package/plugins/@vcmap-show-case/config-editor/README.md +0 -3
  144. package/plugins/@vcmap-show-case/config-editor/package.json +0 -5
  145. package/plugins/@vcmap-show-case/config-editor/src/ConfigEditor.vue +0 -62
  146. package/plugins/@vcmap-show-case/config-editor/src/index.js +0 -49
  147. package/plugins/@vcmap-show-case/list-example/README.md +0 -3
  148. package/plugins/@vcmap-show-case/list-example/package.json +0 -5
  149. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +0 -406
  150. package/plugins/@vcmap-show-case/list-example/src/index.js +0 -46
  151. package/plugins/@vcmap-show-case/table-example/README.md +0 -3
  152. package/plugins/@vcmap-show-case/table-example/package.json +0 -5
  153. package/plugins/@vcmap-show-case/table-example/src/DataTableExample.vue +0 -203
  154. package/plugins/@vcmap-show-case/textfields-example/README.md +0 -3
  155. package/plugins/@vcmap-show-case/textfields-example/package.json +0 -5
  156. package/plugins/@vcmap-show-case/textfields-example/src/TextfieldsExample.vue +0 -115
  157. package/plugins/@vcmap-show-case/textfields-example/src/index.js +0 -64
  158. /package/dist/assets/{cesium-a21a380a.js → cesium-f4e19cd9.js} +0 -0
  159. /package/dist/assets/{vue-bcc58dd1.js → vue-31395141.js} +0 -0
  160. /package/dist/assets/{vuetify-ac50bfc8.css → vuetify-521222b6.css} +0 -0
@@ -1 +1 @@
1
- export * from "./vuetify-ac50bfc8.js";
1
+ export * from "./vuetify-521222b6.js";
package/index.d.ts CHANGED
@@ -190,6 +190,8 @@ export { default as VcsExtent } from "./src/components/extent/VcsExtent.vue";
190
190
  export type * from "./src/components/extent/VcsExtent.vue.d.ts";
191
191
  export { default as VcsExtentEditor } from "./src/components/extent/VcsExtentEditor.vue";
192
192
  export type * from "./src/components/extent/VcsExtentEditor.vue.d.ts";
193
+ export { default as VcsProjection } from "./src/components/projection/VcsProjection.vue";
194
+ export type * from "./src/components/projection/VcsProjection.vue.d.ts";
193
195
  export { default as VcsViewpointComponent } from "./src/components/viewpoint/VcsViewpointComponent.vue";
194
196
  export type * from "./src/components/viewpoint/VcsViewpointComponent.vue.d.ts";
195
197
  export { default as VcsViewpointEditor } from "./src/components/viewpoint/VcsViewpointEditor.vue";
package/index.js CHANGED
@@ -281,6 +281,7 @@ export { default as VcsTextSelector } from './src/components/style/VcsTextSelect
281
281
  export { default as VcsTextMenu } from './src/components/style/VcsTextMenu.vue';
282
282
  export { default as VcsExtent } from './src/components/extent/VcsExtent.vue';
283
283
  export { default as VcsExtentEditor } from './src/components/extent/VcsExtentEditor.vue';
284
+ export { default as VcsProjection } from './src/components/projection/VcsProjection.vue';
284
285
  export {
285
286
  default as VcsVectorStyleComponent,
286
287
  VectorStyleMenus,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "6.0.0-rc.9",
3
+ "version": "6.0.1",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -47,7 +47,7 @@
47
47
  "@intlify/core-base": "^9.13.1",
48
48
  "@vcsuite/check": "^2.1.0",
49
49
  "@vcsuite/logger": "^1.0.1",
50
- "@vcsuite/parsers": "^1.0.3",
50
+ "@vcsuite/parsers": "^2.0.0",
51
51
  "dompurify": "^3.1.6",
52
52
  "fast-deep-equal": "^3.1.3",
53
53
  "marked": "^14.0.0",
@@ -57,17 +57,17 @@
57
57
  },
58
58
  "peerDependencies": {
59
59
  "@vcmap-cesium/engine": "^11.0.2",
60
- "@vcmap/core": "^6.0.0-rc.10",
61
- "ol": "^10.2.0",
60
+ "@vcmap/core": "^6.0.0",
61
+ "ol": "^10.2.1",
62
62
  "vue": "~3.4.38",
63
- "vuetify": "^3.7.2"
63
+ "vuetify": "^3.7.3"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@histoire/plugin-vue": "^0.17.17",
67
67
  "@vcmap/rollup-plugin-vcs-ol": "^1.0.2",
68
68
  "@vcsuite/eslint-config": "^3.0.5",
69
- "@vitejs/plugin-vue": "^5.1.2",
70
- "@vitest/coverage-v8": "^2.0.5",
69
+ "@vitejs/plugin-vue": "^5.1.4",
70
+ "@vitest/coverage-v8": "^2.1.3",
71
71
  "@vue/test-utils": "^2.4.6",
72
72
  "eslint-import-resolver-alias": "^1.1.2",
73
73
  "eslint-plugin-vuetify": "^2.4.0",
@@ -76,16 +76,16 @@
76
76
  "jsdoc": "^4.0.3",
77
77
  "jsdoc-plugin-intersection": "^1.0.4",
78
78
  "jsdoc-plugin-typescript": "^2.2.1",
79
- "jsdom": "^24.1.1",
79
+ "jsdom": "^25.0.1",
80
80
  "resize-observer-polyfill": "1.5.1",
81
81
  "rollup-plugin-strip-pragma": "^1.0.0",
82
- "sass": "^1.77.8",
82
+ "sass": "^1.80.2",
83
83
  "tar": "^7.4.3",
84
84
  "typescript": "^5.4.5",
85
- "vite": "^5.4.1",
85
+ "vite": "^5.4.9",
86
86
  "vite-plugin-vuetify": "^2.0.4",
87
- "vitest": "^2.0.5",
88
- "vue-tsc": "^2.0.29"
87
+ "vitest": "^2.1.3",
88
+ "vue-tsc": "^2.1.6"
89
89
  },
90
90
  "stylelint": {
91
91
  "extends": "stylelint-config-standard",
@@ -4,25 +4,34 @@ This directory contains show-case plugins demonstrating the usage of VC Map UI c
4
4
 
5
5
  ## components
6
6
 
7
- - [buttons-example](./buttons-example/README.md)
8
7
  - [collection-manager-example](./collection-manager-example/README.md)
8
+ - [extent-example](./extent-example/README.md)
9
+ - [flight-example](./flight-example/README.md)
9
10
  - [form-inputs-example](./form-inputs-example/README.md)
10
11
  - [icons-example](./icons-example/README.md)
11
- - [list-example](./list-example/README.md)
12
+ - [custom-icons-example](./custom-icons-example/README.md)
12
13
  - [style-input-example](style-input-example/README.md)
13
- - [table-example](table-example/README.md)
14
- - [textfields-example](./textfields-example/README.md)
14
+ - [vector-properties-example](./vector-properties-example/README.md)
15
+ - [viewpoint-component-example](./viewpoint-component-example/README.md)
15
16
  - [wizard-example](./wizard-example/README.md)
17
+ - [projection-example](./projection-example/README.md)
18
+
19
+ For base components see [stories](../../story), which can be run with `npm run story:dev`.
20
+
21
+ > All components showcase plugins are part of the [components-show-case.config.json](../../config/components-show-case.config.json)
16
22
 
17
23
  ## concepts
18
24
 
19
25
  - [category-tester](category-tester/README.md)
20
- - [config-editor](./config-editor/README.md)
21
26
  - [context-menu-tester](./context-menu-tester/README.md)
22
27
  - [notifier-tester](./notifier-tester/README.md)
28
+ - [panel-tester](./panel-tester/README.md)
23
29
  - [plugin-editors](plugin-editors/README.md)
24
30
  - [project-selector](project-selector/README.md)
25
31
  - [simple-graph](simple-graph/README.md)
26
32
  - [switch-map-callback-example](switch-map-callback-example/README.md)
27
- - [theme-changer](theme-changer/README.md)
33
+ - [theming-example](./theming-example/README.md)
34
+ - [toolbox-example](./toolbox-example/README.md)
28
35
  - [window-tester](./window-tester/README.md)
36
+
37
+ > All concept showcase plugins are part of the [concepts-show-case.config.json](../../config/concepts-show-case.config.json)
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/category-tester",
3
3
  "version": "2.0.0",
4
- "mapVersion": "^6.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -7,7 +7,7 @@
7
7
  </VcsLabel>
8
8
  </v-col>
9
9
  <v-col>
10
- <VcsTextField id="title" clearable dense v-model="title" />
10
+ <VcsTextField id="title" clearable v-model="title" />
11
11
  </v-col>
12
12
  </v-row>
13
13
  <v-row no-gutters v-for="key in keys" :key="key">
@@ -17,14 +17,18 @@
17
17
  </VcsLabel>
18
18
  </v-col>
19
19
  <v-col>
20
- <VcsCheckbox :id="key" dense v-model="getComputed(key).value" />
20
+ <VcsCheckbox
21
+ :id="key"
22
+ :model-value="localOptions[key]"
23
+ @update:model-value="(v) => updateOption(key, v)"
24
+ />
21
25
  </v-col>
22
26
  </v-row>
23
27
  </v-container>
24
28
  </template>
25
29
 
26
30
  <script>
27
- import { computed, inject, isRef } from 'vue';
31
+ import { inject, isRef, reactive } from 'vue';
28
32
  import { VContainer, VRow, VCol } from 'vuetify/components';
29
33
  import { VcsCheckbox, VcsLabel, VcsTextField } from '@vcmap/ui';
30
34
 
@@ -43,29 +47,25 @@
43
47
  },
44
48
  setup() {
45
49
  const collectionComponent = inject('collectionComponent');
50
+ const localOptions = reactive({
51
+ draggable: collectionComponent.draggable,
52
+ selectable: collectionComponent.selectable,
53
+ singleSelect: collectionComponent.singleSelect,
54
+ renamable: collectionComponent.renamable,
55
+ removable: collectionComponent.removable,
56
+ });
46
57
 
47
58
  return {
48
59
  title: collectionComponent.title,
49
- keys: [
50
- 'draggable',
51
- 'selectable',
52
- 'singleSelect',
53
- 'renamable',
54
- 'removable',
55
- ],
56
- getComputed(key) {
57
- return computed({
58
- get() {
59
- return collectionComponent[key];
60
- },
61
- set(value) {
62
- if (isRef(collectionComponent[key])) {
63
- collectionComponent[key].value = value;
64
- } else {
65
- collectionComponent[key] = value;
66
- }
67
- },
68
- });
60
+ keys: Object.keys(localOptions),
61
+ localOptions,
62
+ updateOption(key, value) {
63
+ localOptions[key] = value;
64
+ if (isRef(collectionComponent[key])) {
65
+ collectionComponent[key].value = value;
66
+ } else {
67
+ collectionComponent[key] = value;
68
+ }
69
69
  },
70
70
  };
71
71
  },
@@ -12,7 +12,7 @@
12
12
  </VcsLabel>
13
13
  </v-col>
14
14
  <v-col>
15
- <VcsTextField id="name" clearable dense v-model="localConfig.name" />
15
+ <VcsTextField id="name" clearable v-model="localConfig.name" />
16
16
  </v-col>
17
17
  </v-row>
18
18
  <v-row no-gutters v-if="!multi">
@@ -22,12 +22,7 @@
22
22
  </VcsLabel>
23
23
  </v-col>
24
24
  <v-col>
25
- <VcsTextField
26
- id="title"
27
- clearable
28
- dense
29
- v-model="localConfig.title"
30
- />
25
+ <VcsTextField id="title" clearable v-model="localConfig.title" />
31
26
  </v-col>
32
27
  </v-row>
33
28
  <v-row no-gutters>
@@ -40,7 +35,6 @@
40
35
  <VcsTextField
41
36
  id="random"
42
37
  clearable
43
- dense
44
38
  type="number"
45
39
  v-model.number="localConfig.random"
46
40
  :placeholder="$t('categoryTester.fooEditor.ambiguous')"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/collection-manager-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -19,7 +19,6 @@
19
19
  <VcsSelect
20
20
  id="selectInput"
21
21
  :items="appCollections"
22
- dense
23
22
  v-model="selected"
24
23
  />
25
24
  </v-col>
@@ -71,13 +70,16 @@
71
70
  };
72
71
 
73
72
  function setupCollectionComponentStandalone() {
74
- const collectionComponent = new CollectionComponentClass({
75
- id: 'standalone',
76
- title: 'Collection Component Standalone',
77
- collection: new Collection(),
78
- renamable: true,
79
- selectable: true,
80
- });
73
+ const collectionComponent = new CollectionComponentClass(
74
+ {
75
+ id: 'standalone',
76
+ title: 'Collection Component Standalone',
77
+ collection: new Collection(),
78
+ renamable: true,
79
+ selectable: true,
80
+ },
81
+ owner,
82
+ );
81
83
 
82
84
  for (let i = 0; i <= 12; i++) {
83
85
  collectionComponent.collection.add({
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/context-menu-tester",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/extent-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.1.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/flight-component-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/form-inputs-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -2,5 +2,5 @@
2
2
  "name": "@vcmap/hello-world",
3
3
  "description": "A small hello world plugin",
4
4
  "version": "1.0.8",
5
- "mapVersion": "^5.0.0"
5
+ "mapVersion": "^6.0"
6
6
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/icons-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/notifier-tester",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/panel-tester",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.1.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/plugin-editors",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,13 +1,20 @@
1
1
  import { ButtonLocation, createToggleAction, WindowSlot } from '@vcmap/ui';
2
- import { name, version } from '../package.json';
2
+ import packageJSON from '../package.json';
3
3
  import component from './PluginEditors.vue';
4
4
  /**
5
5
  * @returns {VcsPlugin}
6
6
  */
7
7
  export default function pluginEditors() {
8
8
  return {
9
- name,
10
- version,
9
+ get name() {
10
+ return packageJSON.name;
11
+ },
12
+ get version() {
13
+ return packageJSON.version;
14
+ },
15
+ get mapVersion() {
16
+ return packageJSON.mapVersion;
17
+ },
11
18
  async initialize(app) {
12
19
  const { action, destroy } = createToggleAction(
13
20
  {
@@ -15,7 +22,7 @@ export default function pluginEditors() {
15
22
  title: 'Overview of Plugins with editors.',
16
23
  },
17
24
  {
18
- id: name,
25
+ id: packageJSON.name,
19
26
  component,
20
27
  slot: WindowSlot.DYNAMIC_LEFT,
21
28
  state: {
@@ -23,9 +30,13 @@ export default function pluginEditors() {
23
30
  },
24
31
  },
25
32
  app.windowManager,
26
- name,
33
+ packageJSON.name,
34
+ );
35
+ app.navbarManager.add(
36
+ { id: packageJSON.name, action },
37
+ packageJSON.name,
38
+ ButtonLocation.TOOL,
27
39
  );
28
- app.navbarManager.add({ id: name, action }, name, ButtonLocation.TOOL);
29
40
  this._destroyAction = destroy;
30
41
  },
31
42
  getConfigEditors() {
@@ -1,13 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/project-selector",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0",
5
- "dependencies": {
6
- "@vcsuite/check": "^1.1.2",
7
- "@vcsuite/logger": "^1.0.1"
8
- },
9
- "peerDependencies": {
10
- "@vcmap/ui": "^5.0.0-rc.11",
11
- "@vcmap/core": "^5.0.0-rc.5"
12
- }
4
+ "mapVersion": "^6.0"
13
5
  }
@@ -1,47 +1,38 @@
1
1
  <template>
2
2
  <v-container class="pa-0">
3
- <v-list color="rgba(0,0,0,0)">
4
- <v-chip
5
- v-for="(module, index) in modules"
6
- :key="index"
7
- class="mx-1"
8
- :color="module.active ? 'primary' : undefined"
9
- :disabled="!toggleable"
10
- @click="toggle(module)"
3
+ <v-chip
4
+ v-for="(module, index) in modules"
5
+ :key="index"
6
+ class="ma-1"
7
+ :color="module.active ? 'primary' : undefined"
8
+ :disabled="!toggleable"
9
+ @click="toggle(module)"
10
+ >
11
+ {{ module.name || module.configUrl }}
12
+ <v-icon
13
+ v-if="module.description && toggleable"
14
+ right
15
+ v-bind="{ ...$attrs, ...$props }"
11
16
  >
12
- {{ module.name || module.configUrl }}
13
- <v-icon
14
- v-if="module.description && toggleable"
15
- right
16
- v-bind="{ ...$attrs, ...$props }"
17
- >
18
- mdi-help-circle
19
- </v-icon>
20
- <v-tooltip
21
- v-if="module.description && toggleable"
22
- :text="module.description"
23
- activator="parent"
24
- />
25
- </v-chip>
26
- </v-list>
17
+ mdi-help-circle
18
+ </v-icon>
19
+ <v-tooltip
20
+ v-if="module.description && toggleable"
21
+ :text="module.description"
22
+ activator="parent"
23
+ />
24
+ </v-chip>
27
25
  </v-container>
28
26
  </template>
29
27
 
30
28
  <script>
31
- import {
32
- VChip,
33
- VContainer,
34
- VIcon,
35
- VList,
36
- VTooltip,
37
- } from 'vuetify/components';
29
+ import { VChip, VContainer, VIcon, VTooltip } from 'vuetify/components';
38
30
 
39
31
  export default {
40
32
  name: 'ModulesListComponent',
41
33
  components: {
42
34
  VTooltip,
43
35
  VContainer,
44
- VList,
45
36
  VChip,
46
37
  VIcon,
47
38
  },
@@ -4,28 +4,26 @@
4
4
  <v-list v-for="(project, index) in state.projects" :key="index">
5
5
  <v-card
6
6
  class="ma-1"
7
- :color="project.active ? 'base lighten-3' : undefined"
7
+ :title="project.name"
8
+ :subtitle="project.description"
9
+ :color="project.active ? 'base-lighten-3' : undefined"
8
10
  @click="selectProject(project)"
9
11
  hover
10
12
  outlined
11
13
  :loading="loading === project.name"
12
14
  >
13
- <v-list-item>
14
- <v-list-item-title class="font-weight-bold">
15
- {{ project.name }}
16
- </v-list-item-title>
17
- <v-list-item-subtitle>{{ project.description }}</v-list-item-subtitle>
15
+ <template #actions>
18
16
  <ModulesListComponent
19
17
  :modules="project.modules"
20
18
  @toggle-module="toggleModule"
21
19
  :toggleable="false"
22
20
  />
23
- <v-list-item-action>
24
- <v-avatar color="success" size="30" v-if="project.active">
25
- <v-icon>mdi-check</v-icon>
26
- </v-avatar>
27
- </v-list-item-action>
28
- </v-list-item>
21
+ </template>
22
+ <template #append>
23
+ <v-avatar color="success" size="30" v-if="project.active">
24
+ <v-icon>mdi-check</v-icon>
25
+ </v-avatar>
26
+ </template>
29
27
  </v-card>
30
28
  </v-list>
31
29
  <v-divider />
@@ -37,16 +35,12 @@
37
35
  </v-container>
38
36
  </template>
39
37
  <script>
40
- import { inject } from 'vue';
38
+ import { inject, ref } from 'vue';
41
39
  import {
42
40
  VList,
43
41
  VContainer,
44
42
  VCard,
45
43
  VIcon,
46
- VListItem,
47
- VListItemTitle,
48
- VListItemSubtitle,
49
- VListItemAction,
50
44
  VAvatar,
51
45
  VDivider,
52
46
  } from 'vuetify/components';
@@ -60,20 +54,18 @@
60
54
  VContainer,
61
55
  VCard,
62
56
  VIcon,
63
- VListItem,
64
- VListItemTitle,
65
- VListItemSubtitle,
66
- VListItemAction,
67
57
  VAvatar,
68
58
  VDivider,
69
59
  },
70
60
  setup() {
71
61
  const app = inject('vcsApp');
72
62
  const plugin = app.plugins.getByKey('@vcmap-show-case/project-selector');
63
+ const loading = ref(undefined);
64
+
73
65
  async function selectProject(project) {
74
- this.loading = project.name;
66
+ loading.value = project.name;
75
67
  await plugin.selectProject(app, project);
76
- this.loading = undefined;
68
+ loading.value = undefined;
77
69
  }
78
70
 
79
71
  async function toggleModule(module) {
@@ -0,0 +1,3 @@
1
+ # Extent Example
2
+
3
+ This is a show-case plugin demonstrating the usage of the [VcsProjection](../../../src/components/projection/VcsProjection.vue) component.
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "@vcmap-show-case/projection-example",
3
+ "version": "1.0.0",
4
+ "mapVersion": "^6.0"
5
+ }
@@ -0,0 +1,73 @@
1
+ <script setup lang="ts">
2
+ import { ref, toRaw } from 'vue';
3
+ import { mercatorProjection } from '@vcmap/core';
4
+ import { VContainer, VCol, VRow, VSwitch } from 'vuetify/components';
5
+ import { VcsProjection, VcsFormButton, VcsLabel } from '@vcmap/ui';
6
+
7
+ const projectionOptions = ref(mercatorProjection.toJSON());
8
+ const required = ref(false);
9
+ const hideRequestButton = ref(false);
10
+ const hideAlias = ref(false);
11
+ function reset() {
12
+ projectionOptions.value = mercatorProjection.toJSON();
13
+ console.log(mercatorProjection.toJSON());
14
+ }
15
+ </script>
16
+
17
+ <template>
18
+ <div>
19
+ <v-container>
20
+ <v-row no-gutters>
21
+ <v-col>
22
+ <VcsLabel>
23
+ {{ $t('required') }}
24
+ </VcsLabel>
25
+ </v-col>
26
+ <v-col>
27
+ <v-switch v-model="required" />
28
+ </v-col>
29
+ </v-row>
30
+ <v-row no-gutters>
31
+ <v-col>
32
+ <VcsLabel>
33
+ {{ $t('hideRequestButton') }}
34
+ </VcsLabel>
35
+ </v-col>
36
+ <v-col>
37
+ <v-switch v-model="hideRequestButton" />
38
+ </v-col>
39
+ </v-row>
40
+ <v-row no-gutters>
41
+ <v-col>
42
+ <VcsLabel>
43
+ {{ $t('hideAlias') }}
44
+ </VcsLabel>
45
+ </v-col>
46
+ <v-col>
47
+ <v-switch v-model="hideAlias" />
48
+ </v-col>
49
+ </v-row>
50
+ <v-row no-gutters>
51
+ <v-col>
52
+ <vcs-form-button @click="reset" class="w-100"
53
+ >Reset Web Mercator</vcs-form-button
54
+ >
55
+ </v-col>
56
+ </v-row>
57
+ </v-container>
58
+ <vcs-projection
59
+ v-model="projectionOptions"
60
+ :required="required"
61
+ :hide-request-button="hideRequestButton"
62
+ :hide-alias="hideAlias"
63
+ class="pa-1"
64
+ ></vcs-projection>
65
+ <div class="d-flex gc-2 justify-end mr-2">
66
+ <vcs-form-button @click="console.log(toRaw(projectionOptions))">{{
67
+ $t('projectionExample.log')
68
+ }}</vcs-form-button>
69
+ </div>
70
+ </div>
71
+ </template>
72
+
73
+ <style scoped lang="scss"></style>