@vcmap/ui 6.3.0-rc.2 → 6.3.0-rc.4

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 (169) hide show
  1. package/config/base.config.json +38 -2
  2. package/config/i3s.config.json +289 -0
  3. package/config/projects.config.json +2 -1
  4. package/dist/assets/cesium/Workers/{chunk-VQYEP77L.js → chunk-25GKYUTE.js} +6 -6
  5. package/dist/assets/cesium/Workers/{chunk-ADDGROZ6.js → chunk-2YLFEJBO.js} +4 -4
  6. package/dist/assets/cesium/Workers/{chunk-YVAS5WPH.js → chunk-377PQSNI.js} +7 -7
  7. package/dist/assets/cesium/Workers/{chunk-XH7MSR3A.js → chunk-3ZPY2PK4.js} +6 -6
  8. package/dist/assets/cesium/Workers/{chunk-RQ4F6YFU.js → chunk-4PGWOP4B.js} +6 -6
  9. package/dist/assets/cesium/Workers/{chunk-2PFJ45KC.js → chunk-4ZK2KYL4.js} +2 -2
  10. package/dist/assets/cesium/Workers/{chunk-C33B4KHN.js → chunk-5WJMERAN.js} +2 -2
  11. package/dist/assets/cesium/Workers/{chunk-565T3GIE.js → chunk-7EAUBVJK.js} +2 -2
  12. package/dist/assets/cesium/Workers/{chunk-KFHZFU5O.js → chunk-7GYG7GFP.js} +7 -7
  13. package/dist/assets/cesium/Workers/{chunk-MZSRINXK.js → chunk-7HYVKUHW.js} +5 -5
  14. package/dist/assets/cesium/Workers/{chunk-6Z67VIOY.js → chunk-AH5XCS4U.js} +7 -7
  15. package/dist/assets/cesium/Workers/{chunk-I4NB77NH.js → chunk-AMEDKAYK.js} +10 -10
  16. package/dist/assets/cesium/Workers/{chunk-Q4OS4EFN.js → chunk-AOHTVYLZ.js} +13 -13
  17. package/dist/assets/cesium/Workers/{chunk-TKNA6WSZ.js → chunk-ASFMJYED.js} +17 -17
  18. package/dist/assets/cesium/Workers/{chunk-BABDQOWA.js → chunk-BIO5WQ45.js} +5 -5
  19. package/dist/assets/cesium/Workers/{chunk-6JXJYBWN.js → chunk-BN6F7MQW.js} +9 -9
  20. package/dist/assets/cesium/Workers/{chunk-PNZR4RLL.js → chunk-BVGZUFZD.js} +2 -2
  21. package/dist/assets/cesium/Workers/{chunk-MB6B2UUL.js → chunk-CPFEKTJZ.js} +6 -6
  22. package/dist/assets/cesium/Workers/{chunk-YSVI7YNN.js → chunk-DBI7V7P2.js} +9 -9
  23. package/dist/assets/cesium/Workers/{chunk-WKS5H3VW.js → chunk-DHZDKW7K.js} +5 -5
  24. package/dist/assets/cesium/Workers/{chunk-WPGX7DEA.js → chunk-EGKAEYOR.js} +1 -1
  25. package/dist/assets/cesium/Workers/{chunk-NBI3GZSK.js → chunk-EZ2SSNRV.js} +17 -17
  26. package/dist/assets/cesium/Workers/{chunk-NUAXNUP5.js → chunk-F2G2I7PT.js} +2 -2
  27. package/dist/assets/cesium/Workers/{chunk-FIFQP4YX.js → chunk-FH6FGFJI.js} +11 -11
  28. package/dist/assets/cesium/Workers/{chunk-35EJBV7X.js → chunk-FRMRYV7K.js} +13 -13
  29. package/dist/assets/cesium/Workers/{chunk-HOGDZ2EB.js → chunk-GEEF6IDX.js} +4 -4
  30. package/dist/assets/cesium/Workers/{chunk-5LGDCKCZ.js → chunk-GRDHZCD6.js} +13 -13
  31. package/dist/assets/cesium/Workers/{chunk-EWS5LXAB.js → chunk-H26IFUMX.js} +6 -6
  32. package/dist/assets/cesium/Workers/{chunk-JX4A2BCF.js → chunk-HOOXVR67.js} +7 -7
  33. package/dist/assets/cesium/Workers/{chunk-SB67D3JL.js → chunk-IOCRO2KQ.js} +6 -6
  34. package/dist/assets/cesium/Workers/{chunk-4FHUY275.js → chunk-J3GRKF4N.js} +4 -4
  35. package/dist/assets/cesium/Workers/{chunk-ASYGMBRG.js → chunk-J6TQEGIR.js} +1 -1
  36. package/dist/assets/cesium/Workers/{chunk-EGGJIATZ.js → chunk-JRBLIH2L.js} +1 -1
  37. package/dist/assets/cesium/Workers/{chunk-QLIMO7TQ.js → chunk-LIFTAXGR.js} +4 -4
  38. package/dist/assets/cesium/Workers/{chunk-KYGXRFA6.js → chunk-LJKPRFUK.js} +1 -1
  39. package/dist/assets/cesium/Workers/{chunk-Z4QVAZM6.js → chunk-M23OMI5J.js} +2 -2
  40. package/dist/assets/cesium/Workers/{chunk-CMCR2ZK4.js → chunk-N5MOVBVQ.js} +7 -7
  41. package/dist/assets/cesium/Workers/{chunk-TC4NTWIJ.js → chunk-PDKWOUHF.js} +14 -14
  42. package/dist/assets/cesium/Workers/{chunk-Q4K22DSJ.js → chunk-PW5HRVFO.js} +11 -11
  43. package/dist/assets/cesium/Workers/{chunk-K6PDUSH6.js → chunk-VE7FK6UD.js} +5 -5
  44. package/dist/assets/cesium/Workers/{chunk-LWN2B3KW.js → chunk-VP7D4KWF.js} +1 -1
  45. package/dist/assets/cesium/Workers/{chunk-BQHHGIFB.js → chunk-VQYUZREJ.js} +13 -13
  46. package/dist/assets/cesium/Workers/{chunk-LNWNAP2C.js → chunk-VUJ3TQNO.js} +10 -10
  47. package/dist/assets/cesium/Workers/{chunk-6RAEC3AW.js → chunk-WFO5SEFF.js} +4 -4
  48. package/dist/assets/cesium/Workers/{chunk-X3EPFVG3.js → chunk-WI2ZYGUU.js} +7 -7
  49. package/dist/assets/cesium/Workers/{chunk-ZXOK77EW.js → chunk-WLWCBEFY.js} +7 -7
  50. package/dist/assets/cesium/Workers/{chunk-35ALNMG5.js → chunk-X5IAGLZL.js} +15 -15
  51. package/dist/assets/cesium/Workers/{chunk-LXLABO2L.js → chunk-XFGR3WAP.js} +10 -10
  52. package/dist/assets/cesium/Workers/{chunk-3E3OH65K.js → chunk-Y73YBNAE.js} +7 -7
  53. package/dist/assets/cesium/Workers/{chunk-SS6WRJ5J.js → chunk-YDK3NLYN.js} +6 -6
  54. package/dist/assets/cesium/Workers/{chunk-YDEBBUNQ.js → chunk-YZULEYZE.js} +5 -5
  55. package/dist/assets/cesium/Workers/{chunk-FDXPBTSX.js → chunk-ZS6GCNNC.js} +12 -12
  56. package/dist/assets/cesium/Workers/combineGeometry.js +22 -22
  57. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -16
  58. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -14
  59. package/dist/assets/cesium/Workers/createCircleGeometry.js +24 -24
  60. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -17
  61. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +31 -31
  62. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  63. package/dist/assets/cesium/Workers/createCorridorGeometry.js +27 -27
  64. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +26 -26
  65. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -18
  66. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +16 -16
  67. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -24
  68. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -17
  69. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -17
  70. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -16
  71. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -16
  72. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +16 -16
  73. package/dist/assets/cesium/Workers/createGeometry.js +22 -22
  74. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +20 -20
  75. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -14
  76. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -13
  77. package/dist/assets/cesium/Workers/createPolygonGeometry.js +30 -30
  78. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +28 -28
  79. package/dist/assets/cesium/Workers/createPolylineGeometry.js +23 -23
  80. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +29 -29
  81. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  82. package/dist/assets/cesium/Workers/createRectangleGeometry.js +25 -25
  83. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +18 -18
  84. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +21 -21
  85. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -17
  86. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -16
  87. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  88. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +13 -13
  89. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -22
  90. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  91. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -20
  92. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +13 -13
  93. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  94. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +20 -20
  95. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  96. package/dist/assets/cesium/Workers/createWallGeometry.js +22 -22
  97. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +21 -21
  98. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  99. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  100. package/dist/assets/cesium/Workers/decodeI3S.js +10 -10
  101. package/dist/assets/cesium/Workers/transcodeKTX2.js +7 -7
  102. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  103. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  104. package/dist/assets/{cesium-8369e63b.js → cesium-6c503c0b.js} +135763 -135775
  105. package/dist/assets/cesium.js +1 -1
  106. package/dist/assets/{core-c23fc5f1.js → core-8d7ae8e0.js} +10990 -10313
  107. package/dist/assets/core-workers/panoramaImageWorker.js +1 -1
  108. package/dist/assets/core.js +1 -1
  109. package/dist/assets/ol.js +1 -1
  110. package/dist/assets/{ui-e61976d4.css → ui-17b738da.css} +1 -1
  111. package/dist/assets/{ui-e61976d4.js → ui-17b738da.js} +10304 -10027
  112. package/dist/assets/ui.js +1 -1
  113. package/dist/assets/vue.js +1 -1
  114. package/dist/assets/{vuetify-de6f6eb0.js → vuetify-2cf9482d.js} +1 -1
  115. package/dist/assets/vuetify.js +1 -1
  116. package/index.d.ts +13 -1
  117. package/index.js +7 -0
  118. package/package.json +3 -3
  119. package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +5 -1
  120. package/plugins/package.json +3 -2
  121. package/src/actions/extentActions.d.ts +8 -1
  122. package/src/actions/extentActions.js +32 -1
  123. package/src/application/VcsNavbar.vue +8 -1
  124. package/src/application/VcsNavbar.vue.d.ts +8 -0
  125. package/src/callback/activateClippingPolygonCallback.d.ts +1 -0
  126. package/src/callback/activateLayersCallback.d.ts +1 -0
  127. package/src/callback/activateMapCallback.d.ts +4 -0
  128. package/src/callback/activateOverviewMapCallback.d.ts +1 -0
  129. package/src/callback/addModuleCallback.d.ts +1 -0
  130. package/src/callback/applyLayerStyleCallback.d.ts +1 -0
  131. package/src/callback/closeSplashScreenCallback.d.ts +1 -0
  132. package/src/callback/deactivateClippingPolygonCallback.d.ts +1 -0
  133. package/src/callback/deactivateLayersCallback.d.ts +1 -0
  134. package/src/callback/deactivateOverviewMapCallback.d.ts +1 -0
  135. package/src/callback/goToViewpointCallback.d.ts +1 -0
  136. package/src/callback/goToViewpointCallback.js +2 -2
  137. package/src/callback/hideObjectsCallback.d.ts +28 -0
  138. package/src/callback/hideObjectsCallback.js +62 -0
  139. package/src/callback/highlightObjectsCallback.d.ts +32 -0
  140. package/src/callback/highlightObjectsCallback.js +68 -0
  141. package/src/callback/openSplashScreenCallback.d.ts +1 -0
  142. package/src/callback/removeModuleCallback.d.ts +1 -0
  143. package/src/callback/showObjectsCallback.d.ts +28 -0
  144. package/src/callback/showObjectsCallback.js +62 -0
  145. package/src/callback/startFlightCallback.d.ts +29 -0
  146. package/src/callback/startFlightCallback.js +78 -0
  147. package/src/callback/stopFlightCallback.d.ts +24 -0
  148. package/src/callback/stopFlightCallback.js +50 -0
  149. package/src/callback/stopRotationCallback.d.ts +1 -0
  150. package/src/callback/toggleNavbarButtonCallback.d.ts +1 -0
  151. package/src/callback/toggleToolbarButtonCallback.d.ts +1 -0
  152. package/src/callback/unHighlightObjectsCallback.d.ts +28 -0
  153. package/src/callback/unHighlightObjectsCallback.js +59 -0
  154. package/src/callback/vcsCallback.d.ts +16 -2
  155. package/src/callback/vcsCallback.js +27 -1
  156. package/src/components/extent/VcsExtentEditor.vue +11 -2
  157. package/src/components/extent/VcsExtentEditor.vue.d.ts +9 -0
  158. package/src/components/flight/VcsFlightComponent.vue +9 -3
  159. package/src/contentTree/wmsGroupContentTreeItem.js +6 -3
  160. package/src/i18n/de.d.ts +2 -0
  161. package/src/i18n/de.js +1 -0
  162. package/src/i18n/en.d.ts +2 -0
  163. package/src/i18n/en.js +1 -0
  164. package/src/navigation/overviewMap.js +6 -5
  165. package/src/vuePlugins/vuetify.js +1 -0
  166. /package/dist/assets/core-workers/{panoramaImageWorker.js-f9c706f1.js → panoramaImageWorker.js-fb35f0bb.js} +0 -0
  167. /package/dist/assets/{ol-9f59d99f.js → ol-f01286b6.js} +0 -0
  168. /package/dist/assets/{vue-f6136dc6.js → vue-0876557c.js} +0 -0
  169. /package/dist/assets/{vuetify-de6f6eb0.css → vuetify-2cf9482d.css} +0 -0
@@ -0,0 +1,62 @@
1
+ import { FeatureLayer } from '@vcmap/core';
2
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
3
+
4
+ /**
5
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
6
+ * layerName?: string;
7
+ * objectIds: string[];
8
+ * }} ShowObjectsCallbackOptions
9
+ */
10
+
11
+ /**
12
+ * A callback to show objects that were previously hidden.
13
+ */
14
+ export default class ShowObjectsCallback extends VcsCallback {
15
+ static get className() {
16
+ return 'ShowObjectsCallback';
17
+ }
18
+
19
+ /** @type {string | undefined} */
20
+ _layerName;
21
+
22
+ /** @type {string[]} */
23
+ _objectIds;
24
+
25
+ /**
26
+ * @param {ShowObjectsCallbackOptions} options
27
+ * @param {import('@vcmap/ui').VcsUiApp} app
28
+ */
29
+ constructor(options, app) {
30
+ super(options, app);
31
+
32
+ this._layerName = options.layerName;
33
+ this._objectIds = options.objectIds;
34
+ }
35
+
36
+ callback() {
37
+ /** @type {import('@vcmap/ui').VcsUiApp} */
38
+ const app = this._app;
39
+ if (this._layerName) {
40
+ const layer = app.layers.getByKey(this._layerName);
41
+ if (layer instanceof FeatureLayer) {
42
+ layer.featureVisibility.showObjects(this._objectIds);
43
+ }
44
+ } else {
45
+ app.layers.globalHider.showObjects(this._objectIds);
46
+ }
47
+ }
48
+
49
+ /** @returns {ShowObjectsCallbackOptions} */
50
+ toJSON() {
51
+ return {
52
+ ...super.toJSON(),
53
+ layerName: this._layerName,
54
+ objectIds: [...this._objectIds],
55
+ };
56
+ }
57
+ }
58
+
59
+ callbackClassRegistry.registerClass(
60
+ ShowObjectsCallback.className,
61
+ ShowObjectsCallback,
62
+ );
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @typedef {import('@vcmap/core').FlightInstanceOptions} FlightInstanceOptions
3
+ */
4
+ /**
5
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
6
+ * flight: string | FlightInstanceOptions;
7
+ * }} StartFlightCallbackOptions
8
+ */
9
+ /**
10
+ * A callback to start a flight.
11
+ */
12
+ export default class StartFlightCallback extends VcsCallback {
13
+ /**
14
+ * @param {StartFlightCallbackOptions} options
15
+ * @param {import('@vcmap/ui').VcsUiApp} app
16
+ */
17
+ constructor(options: StartFlightCallbackOptions, app: import('@vcmap/ui').VcsUiApp);
18
+ /** @type {string | FlightInstanceOptions} */
19
+ _flight: string | FlightInstanceOptions;
20
+ /** @returns {Promise<void>} */
21
+ callback(): Promise<void>;
22
+ /** @returns {StartFlightCallbackOptions} */
23
+ toJSON(): StartFlightCallbackOptions;
24
+ }
25
+ export type FlightInstanceOptions = import('@vcmap/core').FlightInstanceOptions;
26
+ export type StartFlightCallbackOptions = import('@vcmap/ui').VcsCallbackOptions & {
27
+ flight: string | FlightInstanceOptions;
28
+ };
29
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,78 @@
1
+ import { FlightInstance } from '@vcmap/core';
2
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
3
+
4
+ /**
5
+ * @typedef {import('@vcmap/core').FlightInstanceOptions} FlightInstanceOptions
6
+ */
7
+
8
+ /**
9
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
10
+ * flight: string | FlightInstanceOptions;
11
+ * }} StartFlightCallbackOptions
12
+ */
13
+
14
+ /**
15
+ * A callback to start a flight.
16
+ */
17
+ export default class StartFlightCallback extends VcsCallback {
18
+ static get className() {
19
+ return 'StartFlightCallback';
20
+ }
21
+
22
+ /** @type {string | FlightInstanceOptions} */
23
+ _flight;
24
+
25
+ /**
26
+ * @param {StartFlightCallbackOptions} options
27
+ * @param {import('@vcmap/ui').VcsUiApp} app
28
+ */
29
+ constructor(options, app) {
30
+ super(options, app);
31
+
32
+ this._flight = options.flight;
33
+ }
34
+
35
+ /** @returns {Promise<void>} */
36
+ async callback() {
37
+ /** @type {import('@vcmap/ui').VcsUiApp} */
38
+ const app = this._app;
39
+ /** @type {FlightInstance | undefined} */
40
+ let flight;
41
+ if (typeof this._flight === 'string') {
42
+ flight = app.flights.getByKey(this._flight);
43
+ } else {
44
+ flight = new FlightInstance(this._flight);
45
+ }
46
+ if (flight) {
47
+ const player = await app.flights.setPlayerForFlight(flight);
48
+ player?.play();
49
+ return new Promise((resolve, reject) => {
50
+ if (player) {
51
+ const listener = player.stateChanged.addEventListener((state) => {
52
+ if (state === 'stopped') {
53
+ listener();
54
+ resolve();
55
+ }
56
+ });
57
+ } else {
58
+ reject(new Error('No flight player available'));
59
+ }
60
+ });
61
+ } else {
62
+ return Promise.reject(new Error('Flight not found'));
63
+ }
64
+ }
65
+
66
+ /** @returns {StartFlightCallbackOptions} */
67
+ toJSON() {
68
+ return {
69
+ ...super.toJSON(),
70
+ flight: structuredClone(this._flight),
71
+ };
72
+ }
73
+ }
74
+
75
+ callbackClassRegistry.registerClass(
76
+ StartFlightCallback.className,
77
+ StartFlightCallback,
78
+ );
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
3
+ * flightName: string;
4
+ * }} StopFlightCallbackOptions
5
+ */
6
+ /**
7
+ * A callback to stop a flight.
8
+ */
9
+ export default class StopFlightCallback extends VcsCallback {
10
+ /**
11
+ * @param {StopFlightCallbackOptions} options
12
+ * @param {import('@vcmap/ui').VcsUiApp} app
13
+ */
14
+ constructor(options: StopFlightCallbackOptions, app: import('@vcmap/ui').VcsUiApp);
15
+ /** @type {string} */
16
+ _flightName: string;
17
+ callback(): void;
18
+ /** @returns {StopFlightCallbackOptions} */
19
+ toJSON(): StopFlightCallbackOptions;
20
+ }
21
+ export type StopFlightCallbackOptions = import('@vcmap/ui').VcsCallbackOptions & {
22
+ flightName: string;
23
+ };
24
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,50 @@
1
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
2
+
3
+ /**
4
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
5
+ * flightName: string;
6
+ * }} StopFlightCallbackOptions
7
+ */
8
+
9
+ /**
10
+ * A callback to stop a flight.
11
+ */
12
+ export default class StopFlightCallback extends VcsCallback {
13
+ static get className() {
14
+ return 'StopFlightCallback';
15
+ }
16
+
17
+ /** @type {string} */
18
+ _flightName;
19
+
20
+ /**
21
+ * @param {StopFlightCallbackOptions} options
22
+ * @param {import('@vcmap/ui').VcsUiApp} app
23
+ */
24
+ constructor(options, app) {
25
+ super(options, app);
26
+
27
+ this._flightName = options.flightName;
28
+ }
29
+
30
+ callback() {
31
+ /** @type {import('@vcmap/ui').VcsUiApp} */
32
+ const app = this._app;
33
+ if (app.flights.player?.flightInstanceName === this._flightName) {
34
+ app.flights.player.stop();
35
+ }
36
+ }
37
+
38
+ /** @returns {StopFlightCallbackOptions} */
39
+ toJSON() {
40
+ return {
41
+ ...super.toJSON(),
42
+ flightName: this._flightName,
43
+ };
44
+ }
45
+ }
46
+
47
+ callbackClassRegistry.registerClass(
48
+ StopFlightCallback.className,
49
+ StopFlightCallback,
50
+ );
@@ -4,5 +4,6 @@ export default StopRotationCallback;
4
4
  * @extends {VcsCallback}
5
5
  */
6
6
  declare class StopRotationCallback extends VcsCallback {
7
+ callback(): void;
7
8
  }
8
9
  import VcsCallback from './vcsCallback.js';
@@ -28,6 +28,7 @@ declare class ToggleNavbarButtonCallback extends VcsCallback {
28
28
  * @private
29
29
  */
30
30
  private _activeState;
31
+ callback(): void;
31
32
  /**
32
33
  * @returns {ToggleNavbarButtonOptions}
33
34
  */
@@ -40,6 +40,7 @@ declare class ToggleToolbarButtonCallback extends VcsCallback {
40
40
  * @private
41
41
  */
42
42
  private _activeState;
43
+ callback(): void;
43
44
  /**
44
45
  * @returns {ToggleToolbarButtonOptions}
45
46
  */
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
3
+ * layerName: string;
4
+ * toUnHighlight: (string | number)[];
5
+ * }} UnHighlightObjectsCallbackOptions
6
+ */
7
+ /**
8
+ * A callback to unhighlight previously highlighted objects of a FeatureLayer.
9
+ */
10
+ export default class UnHighlightObjectsCallback extends VcsCallback {
11
+ /**
12
+ * @param {UnHighlightObjectsCallbackOptions} options
13
+ * @param {import('@vcmap/ui').VcsUiApp} app
14
+ */
15
+ constructor(options: UnHighlightObjectsCallbackOptions, app: import('@vcmap/ui').VcsUiApp);
16
+ /** @type {string} */
17
+ _layerName: string;
18
+ /** @type {(string | number)[]} */
19
+ _toUnHighlight: (string | number)[];
20
+ callback(): void;
21
+ /** @returns {UnHighlightObjectsCallbackOptions} */
22
+ toJSON(): UnHighlightObjectsCallbackOptions;
23
+ }
24
+ export type UnHighlightObjectsCallbackOptions = import('@vcmap/ui').VcsCallbackOptions & {
25
+ layerName: string;
26
+ toUnHighlight: (string | number)[];
27
+ };
28
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,59 @@
1
+ import { FeatureLayer } from '@vcmap/core';
2
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
3
+
4
+ /**
5
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
6
+ * layerName: string;
7
+ * toUnHighlight: (string | number)[];
8
+ * }} UnHighlightObjectsCallbackOptions
9
+ */
10
+
11
+ /**
12
+ * A callback to unhighlight previously highlighted objects of a FeatureLayer.
13
+ */
14
+ export default class UnHighlightObjectsCallback extends VcsCallback {
15
+ static get className() {
16
+ return 'UnHighlightObjectsCallback';
17
+ }
18
+
19
+ /** @type {string} */
20
+ _layerName;
21
+
22
+ /** @type {(string | number)[]} */
23
+ _toUnHighlight;
24
+
25
+ /**
26
+ * @param {UnHighlightObjectsCallbackOptions} options
27
+ * @param {import('@vcmap/ui').VcsUiApp} app
28
+ */
29
+ constructor(options, app) {
30
+ super(options, app);
31
+
32
+ this._layerName = options.layerName;
33
+ this._toUnHighlight = options.toUnHighlight;
34
+ }
35
+
36
+ callback() {
37
+ /** @type {import('@vcmap/ui').VcsUiApp} */
38
+ const app = this._app;
39
+ const layer = app.layers.getByKey(this._layerName);
40
+
41
+ if (layer instanceof FeatureLayer) {
42
+ layer.featureVisibility.unHighlight(this._toUnHighlight);
43
+ }
44
+ }
45
+
46
+ /** @returns {UnHighlightObjectsCallbackOptions} */
47
+ toJSON() {
48
+ return {
49
+ ...super.toJSON(),
50
+ layerName: this._layerName,
51
+ toUnHighlight: [...this._toUnHighlight],
52
+ };
53
+ }
54
+ }
55
+
56
+ callbackClassRegistry.registerClass(
57
+ UnHighlightObjectsCallback.className,
58
+ UnHighlightObjectsCallback,
59
+ );
@@ -1,9 +1,20 @@
1
1
  /**
2
- * creates instances of VcsCallback classes and executes its callback function
2
+ * Creates instances of VcsCallback classes and executes their `callback()`.
3
+ *
4
+ * Note: this function does not await promise-returning callbacks.
3
5
  * @param {import("@src/vcsUiApp.js").default} app
4
6
  * @param {Array<VcsCallbackOptions>} vcsCallbackOptions
7
+ * @returns {void}
5
8
  */
6
9
  export function executeCallbacks(app: import("@src/vcsUiApp.js").default, vcsCallbackOptions: Array<VcsCallbackOptions>): void;
10
+ /**
11
+ * Creates instances of VcsCallback classes and executes their `callback()` sequentially.
12
+ * Awaits promise-returning callbacks before continuing with the next one.
13
+ * @param {import("@src/vcsUiApp.js").default} app
14
+ * @param {Array<VcsCallbackOptions>} vcsCallbackOptions
15
+ * @returns {Promise<void>}
16
+ */
17
+ export function executeAsyncCallbacks(app: import("@src/vcsUiApp.js").default, vcsCallbackOptions: Array<VcsCallbackOptions>): Promise<void>;
7
18
  /**
8
19
  * @type {ClassRegistry<typeof VcsCallback>}
9
20
  */
@@ -36,7 +47,10 @@ declare class VcsCallback {
36
47
  * @type {import("@src/vcsUiApp.js").default}
37
48
  */
38
49
  protected _app: import("@src/vcsUiApp.js").default;
39
- callback(): void;
50
+ /**
51
+ * @returns {void | Promise<void>}
52
+ */
53
+ callback(): void | Promise<void>;
40
54
  /**
41
55
  * @returns {VcsCallbackOptions}
42
56
  */
@@ -6,9 +6,12 @@ import { ClassRegistry } from '@vcmap/core';
6
6
  export const callbackClassRegistry = new ClassRegistry();
7
7
 
8
8
  /**
9
- * creates instances of VcsCallback classes and executes its callback function
9
+ * Creates instances of VcsCallback classes and executes their `callback()`.
10
+ *
11
+ * Note: this function does not await promise-returning callbacks.
10
12
  * @param {import("@src/vcsUiApp.js").default} app
11
13
  * @param {Array<VcsCallbackOptions>} vcsCallbackOptions
14
+ * @returns {void}
12
15
  */
13
16
  export function executeCallbacks(app, vcsCallbackOptions) {
14
17
  vcsCallbackOptions.forEach((options) =>
@@ -16,6 +19,26 @@ export function executeCallbacks(app, vcsCallbackOptions) {
16
19
  );
17
20
  }
18
21
 
22
+ /**
23
+ * Creates instances of VcsCallback classes and executes their `callback()` sequentially.
24
+ * Awaits promise-returning callbacks before continuing with the next one.
25
+ * @param {import("@src/vcsUiApp.js").default} app
26
+ * @param {Array<VcsCallbackOptions>} vcsCallbackOptions
27
+ * @returns {Promise<void>}
28
+ */
29
+ export async function executeAsyncCallbacks(app, vcsCallbackOptions) {
30
+ for (const options of vcsCallbackOptions) {
31
+ const callbackInstance = app.callbackClassRegistry.createFromTypeOptions(
32
+ options,
33
+ app,
34
+ );
35
+ if (callbackInstance) {
36
+ // eslint-disable-next-line no-await-in-loop
37
+ await callbackInstance.callback();
38
+ }
39
+ }
40
+ }
41
+
19
42
  /**
20
43
  * @typedef {Object} VcsCallbackOptions
21
44
  * @property {string} type
@@ -45,6 +68,9 @@ class VcsCallback {
45
68
  this._app = app;
46
69
  }
47
70
 
71
+ /**
72
+ * @returns {void | Promise<void>}
73
+ */
48
74
  // eslint-disable-next-line class-methods-use-this
49
75
  callback() {}
50
76
 
@@ -3,7 +3,7 @@
3
3
  class="vcs-extent-editor"
4
4
  :heading="heading"
5
5
  :header-actions="actions"
6
- :action-button-list-overflow-count="2"
6
+ :action-button-list-overflow-count="3"
7
7
  :disabled="disabled"
8
8
  expandable
9
9
  start-open
@@ -27,6 +27,7 @@
27
27
  * @vue-prop {import("@vcmap/core").ExtentOptions} [modelValue] - the extent options to be modeled.
28
28
  * @vue-prop {boolean} [disabled=false] - Disable coordinate input.
29
29
  * @vue-prop {string} [heading='component.extent.title] - Header of the form section
30
+ * @vue-prop {boolean} [showExtentOnStartup=false] - Whether to activate the extent layer on startup
30
31
  */
31
32
  export default {
32
33
  name: 'VcsExtentEditor',
@@ -48,6 +49,10 @@
48
49
  type: String,
49
50
  default: 'components.extent.title',
50
51
  },
52
+ showExtentOnStartup: {
53
+ type: Boolean,
54
+ default: false,
55
+ },
51
56
  },
52
57
  emits: ['update:modelValue'],
53
58
  setup(props, { emit }) {
@@ -63,7 +68,11 @@
63
68
  },
64
69
  });
65
70
 
66
- const { actions, destroy } = setupExtentComponentActions(app, extent);
71
+ const { actions, destroy } = setupExtentComponentActions(
72
+ app,
73
+ extent,
74
+ props.showExtentOnStartup,
75
+ );
67
76
 
68
77
  onUnmounted(() => {
69
78
  destroy();
@@ -11,6 +11,10 @@ declare const _default: import("vue").DefineComponent<{
11
11
  type: StringConstructor;
12
12
  default: string;
13
13
  };
14
+ showExtentOnStartup: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
14
18
  }, {
15
19
  localValue: import("vue").Ref<any>;
16
20
  actions: import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).VcsAction[];
@@ -27,11 +31,16 @@ declare const _default: import("vue").DefineComponent<{
27
31
  type: StringConstructor;
28
32
  default: string;
29
33
  };
34
+ showExtentOnStartup: {
35
+ type: BooleanConstructor;
36
+ default: boolean;
37
+ };
30
38
  }>> & {
31
39
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
32
40
  }, {
33
41
  disabled: boolean;
34
42
  modelValue: Record<string, any>;
35
43
  heading: string;
44
+ showExtentOnStartup: boolean;
36
45
  }, {}>;
37
46
  export default _default;
@@ -202,17 +202,22 @@
202
202
  const app = inject('vcsApp');
203
203
  const flightInstance = getProvidedFlightInstance();
204
204
  const loop = ref(flightInstance.loop);
205
+ const interpolationValue = ref(flightInstance.interpolation);
205
206
  const flightDuration = ref(getFlightDuration(flightInstance));
206
207
  const disablePlayer = ref(!(flightDuration.value > 0));
207
- const flightDurationListener = [
208
+ const flightInstanceListeners = [
208
209
  flightInstance.anchorsChanged.addEventListener(() => {
209
210
  flightDuration.value = getFlightDuration(flightInstance);
210
211
  disablePlayer.value = !(flightDuration.value > 0);
211
212
  }),
212
213
  flightInstance.propertyChanged.addEventListener((prop) => {
213
214
  if (prop === 'loop') {
215
+ loop.value = flightInstance.loop;
214
216
  flightDuration.value = getFlightDuration(flightInstance);
215
217
  }
218
+ if (prop === 'interpolation') {
219
+ interpolationValue.value = flightInstance.interpolation;
220
+ }
216
221
  }),
217
222
  ];
218
223
  const editingListener = setupFlightAnchorEditingListener(
@@ -221,7 +226,7 @@
221
226
  );
222
227
 
223
228
  onUnmounted(() => {
224
- flightDurationListener.forEach((cb) => cb());
229
+ flightInstanceListeners.forEach((cb) => cb());
225
230
  editingListener();
226
231
  });
227
232
 
@@ -243,9 +248,10 @@
243
248
  }),
244
249
  interpolation: computed({
245
250
  get() {
246
- return flightInstance?.interpolation;
251
+ return interpolationValue.value;
247
252
  },
248
253
  set(value) {
254
+ interpolationValue.value = value;
249
255
  flightInstance.interpolation = value;
250
256
  },
251
257
  }),
@@ -1,4 +1,4 @@
1
- import { markVolatile } from '@vcmap/core';
1
+ import { getInitForUrl, markVolatile } from '@vcmap/core';
2
2
  import { getLogger } from '@vcsuite/logger';
3
3
  import { ref } from 'vue';
4
4
  import { parseBoolean } from '@vcsuite/parsers';
@@ -98,9 +98,10 @@ function parseSerializedCapabilities(capabilities) {
98
98
  /**
99
99
  * @param {string} rawUrl
100
100
  * @param {Record<string, string>} parameters
101
+ * @param {Record<string, string>} headers
101
102
  * @returns {Promise<Array<WMSEntry>>} The fetched capabilities.
102
103
  */
103
- async function getWMSEntries(rawUrl, parameters) {
104
+ async function getWMSEntries(rawUrl, parameters, headers) {
104
105
  const url = new URL(rawUrl);
105
106
  const excludedParameters = [
106
107
  'LAYERS',
@@ -117,7 +118,8 @@ async function getWMSEntries(rawUrl, parameters) {
117
118
  url.searchParams.set('SERVICE', 'WMS');
118
119
  url.searchParams.set('REQUEST', 'GetCapabilities');
119
120
 
120
- const res = await fetch(url.toString());
121
+ const init = getInitForUrl(url.toString(), headers);
122
+ const res = await fetch(url.toString(), init);
121
123
  if (!res.ok) {
122
124
  throw new Error(`Failed to fetch capabilities: ${res.statusText}`);
123
125
  }
@@ -605,6 +607,7 @@ class WMSGroupContentTreeItem extends VcsObjectContentTreeItem {
605
607
  availableWMSEntries = await getWMSEntries(
606
608
  this._layer.url,
607
609
  this._layer.parameters,
610
+ this._layer.headers,
608
611
  );
609
612
  }
610
613
  // check if the layer still exists, it can happen that the layer was removed while fetching the capabilities.
package/src/i18n/de.d.ts CHANGED
@@ -348,6 +348,8 @@ declare namespace messages {
348
348
  export let show: string;
349
349
  export let hide: string;
350
350
  export let create: string;
351
+ let reset_1: string;
352
+ export { reset_1 as reset };
351
353
  let zoom_1: string;
352
354
  export { zoom_1 as zoom };
353
355
  export let invalid: string;
package/src/i18n/de.js CHANGED
@@ -223,6 +223,7 @@ const messages = {
223
223
  show: 'Ausdehnung in Karte anzeigen',
224
224
  hide: 'Ausdehnung in Karte ausblenden',
225
225
  create: 'Neue Ausdehnung in Karte zeichnen',
226
+ reset: 'Ausdehnung zurücksetzen',
226
227
  zoom: 'Auf Ausdehnung zoomen',
227
228
  invalid: 'Koordinaten ergeben keine valide Ausdehnung!',
228
229
  editVertices: 'Ecken bearbeiten',
package/src/i18n/en.d.ts CHANGED
@@ -348,6 +348,8 @@ declare namespace messages {
348
348
  export let show: string;
349
349
  export let hide: string;
350
350
  export let create: string;
351
+ let reset_1: string;
352
+ export { reset_1 as reset };
351
353
  let zoom_1: string;
352
354
  export { zoom_1 as zoom };
353
355
  export let invalid: string;
package/src/i18n/en.js CHANGED
@@ -223,6 +223,7 @@ const messages = {
223
223
  show: 'Show extent in map',
224
224
  hide: 'Hide extent in map',
225
225
  create: 'Draw new extent in map',
226
+ reset: 'Reset extent',
226
227
  zoom: 'Zoom to extent',
227
228
  invalid: 'Coordinates do not result in a valid extent!',
228
229
  editVertices: 'Edit extent corners',
@@ -11,10 +11,10 @@ import {
11
11
  Extent,
12
12
  Viewpoint,
13
13
  deserializeLayer,
14
- maxZIndex,
15
14
  CesiumMap,
16
15
  PanoramaMap,
17
16
  PanoramaImageSelection,
17
+ maxZIndexMin50,
18
18
  } from '@vcmap/core';
19
19
  import Point from 'ol/geom/Point.js';
20
20
  import Feature from 'ol/Feature.js';
@@ -536,7 +536,7 @@ class OverviewMap {
536
536
  this._obliqueTileLayer = new VectorLayer({
537
537
  projection: mercatorProjection.toJSON(),
538
538
  style: obliqueTileStyle,
539
- zIndex: maxZIndex - 3,
539
+ zIndex: maxZIndexMin50 - 4,
540
540
  });
541
541
  this._obliqueTileLayer[overviewMapLayerSymbol] = true;
542
542
 
@@ -551,13 +551,13 @@ class OverviewMap {
551
551
  this._obliqueImageLayer = new VectorLayer({
552
552
  projection: mercatorProjection.toJSON(),
553
553
  style: obliqueImageStyle,
554
- zIndex: maxZIndex - 2,
554
+ zIndex: maxZIndexMin50 - 3,
555
555
  });
556
556
  this._obliqueImageLayer[overviewMapLayerSymbol] = true;
557
557
  this._obliqueSelectedImageLayer = new VectorLayer({
558
558
  projection: mercatorProjection.toJSON(),
559
559
  style: this.obliqueSelectedStyle,
560
- zIndex: maxZIndex - 1,
560
+ zIndex: maxZIndexMin50 - 2,
561
561
  });
562
562
  this._obliqueSelectedImageLayer[overviewMapLayerSymbol] = true;
563
563
  this._map.layerCollection.add(this._obliqueImageLayer);
@@ -610,7 +610,8 @@ class OverviewMap {
610
610
  if (!this._cameraIconLayer) {
611
611
  this._cameraIconLayer = new VectorLayer({
612
612
  projection: mercatorProjection.toJSON(),
613
- zIndex: maxZIndex,
613
+ // pretty far at the top, but not above panoramas
614
+ zIndex: maxZIndexMin50 - 1,
614
615
  });
615
616
  this._cameraIconLayer[overviewMapLayerSymbol] = true;
616
617
  this._map.layerCollection.add(this._cameraIconLayer);