@vcmap/ui 6.3.0-rc.3 → 6.3.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/config/i3s.config.json +1 -1
  2. package/dist/assets/cesium.js +1 -1
  3. package/dist/assets/{core-a9703a41.js → core-c619c3cb.js} +15 -12
  4. package/dist/assets/core-workers/panoramaImageWorker.js +1 -1
  5. package/dist/assets/core.js +1 -1
  6. package/dist/assets/ol.js +1 -1
  7. package/dist/assets/{ui-e0eb19f4.css → ui-1477acda.css} +1 -1
  8. package/dist/assets/{ui-e0eb19f4.js → ui-1477acda.js} +5775 -5516
  9. package/dist/assets/ui.js +1 -1
  10. package/dist/assets/vue.js +1 -1
  11. package/dist/assets/{vuetify-8a5a634a.js → vuetify-fdf20bf9.js} +1 -1
  12. package/dist/assets/vuetify.js +1 -1
  13. package/index.d.ts +14 -2
  14. package/index.js +9 -0
  15. package/package.json +2 -2
  16. package/src/application/VcsNavbar.vue +8 -1
  17. package/src/application/VcsNavbar.vue.d.ts +8 -0
  18. package/src/application/VcsNavbarMobile.vue +2 -0
  19. package/src/callback/activateClippingPolygonCallback.d.ts +1 -0
  20. package/src/callback/activateLayersCallback.d.ts +1 -0
  21. package/src/callback/activateMapCallback.d.ts +4 -0
  22. package/src/callback/activateOverviewMapCallback.d.ts +1 -0
  23. package/src/callback/addModuleCallback.d.ts +1 -0
  24. package/src/callback/applyLayerStyleCallback.d.ts +1 -0
  25. package/src/callback/closeSplashScreenCallback.d.ts +1 -0
  26. package/src/callback/deactivateClippingPolygonCallback.d.ts +1 -0
  27. package/src/callback/deactivateLayersCallback.d.ts +1 -0
  28. package/src/callback/deactivateOverviewMapCallback.d.ts +1 -0
  29. package/src/callback/goToViewpointCallback.d.ts +1 -0
  30. package/src/callback/goToViewpointCallback.js +2 -2
  31. package/src/callback/hideObjectsCallback.d.ts +28 -0
  32. package/src/callback/hideObjectsCallback.js +62 -0
  33. package/src/callback/highlightObjectsCallback.d.ts +32 -0
  34. package/src/callback/highlightObjectsCallback.js +68 -0
  35. package/src/callback/openSplashScreenCallback.d.ts +1 -0
  36. package/src/callback/removeModuleCallback.d.ts +1 -0
  37. package/src/callback/showObjectsCallback.d.ts +28 -0
  38. package/src/callback/showObjectsCallback.js +62 -0
  39. package/src/callback/startFlightCallback.d.ts +29 -0
  40. package/src/callback/startFlightCallback.js +78 -0
  41. package/src/callback/stopFlightCallback.d.ts +24 -0
  42. package/src/callback/stopFlightCallback.js +50 -0
  43. package/src/callback/stopRotationCallback.d.ts +1 -0
  44. package/src/callback/toggleNavbarButtonCallback.d.ts +1 -0
  45. package/src/callback/toggleToolbarButtonCallback.d.ts +1 -0
  46. package/src/callback/unHighlightObjectsCallback.d.ts +28 -0
  47. package/src/callback/unHighlightObjectsCallback.js +59 -0
  48. package/src/callback/vcsCallback.d.ts +16 -2
  49. package/src/callback/vcsCallback.js +27 -1
  50. package/src/components/projection/VcsProjection.vue +1 -1
  51. package/src/manager/navbarManager.d.ts +27 -15
  52. package/src/manager/navbarManager.js +24 -8
  53. package/src/manager/toolbox/toolboxManager.d.ts +1 -1
  54. /package/dist/assets/{cesium-2e65c850.js → cesium-2c8fbb1c.js} +0 -0
  55. /package/dist/assets/core-workers/{panoramaImageWorker.js-8122ca44.js → panoramaImageWorker.js-d20b3c02.js} +0 -0
  56. /package/dist/assets/{ol-b4f2ad56.js → ol-ec143a2b.js} +0 -0
  57. /package/dist/assets/{vue-2cae5c1e.js → vue-1a3ae885.js} +0 -0
  58. /package/dist/assets/{vuetify-8a5a634a.css → vuetify-fdf20bf9.css} +0 -0
package/dist/assets/ui.js CHANGED
@@ -1 +1 @@
1
- export * from "./ui-e0eb19f4.js";
1
+ export * from "./ui-1477acda.js";
@@ -1 +1 @@
1
- export * from "./vue-2cae5c1e.js";
1
+ export * from "./vue-1a3ae885.js";
@@ -10,7 +10,7 @@ function loadCss(href) {
10
10
  elem.onerror = reject;
11
11
  document.head.appendChild(elem);
12
12
  });
13
- } await loadCss('./assets/vuetify-8a5a634a.css');import { watch as Q, onScopeDispose as Ze, effectScope as Zl, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Fe, toRefs as Yt, capitalize as Nn, isVNode as Rc, Comment as Nc, unref as ot, warn as ja, getCurrentInstance as Hc, ref as j, provide as De, inject as ye, defineComponent as zc, camelize as Ir, h as Gt, toRaw as Be, createVNode as r, mergeProps as O, onBeforeUnmount as Qe, readonly as Ql, onDeactivated as _r, onActivated as Wc, onMounted as Ye, nextTick as we, TransitionGroup as Jl, Transition as jt, isRef as Tn, toRef as $, onBeforeMount as ra, withDirectives as $e, resolveDirective as gt, vShow as Ct, onUpdated as jc, Text as Uc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Kc, cloneVNode as qc, createTextVNode as Tt, onUnmounted as Tr, onBeforeUpdate as Xc, withModifiers as Tl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-2cae5c1e.js";
13
+ } await loadCss('./assets/vuetify-fdf20bf9.css');import { watch as Q, onScopeDispose as Ze, effectScope as Zl, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Fe, toRefs as Yt, capitalize as Nn, isVNode as Rc, Comment as Nc, unref as ot, warn as ja, getCurrentInstance as Hc, ref as j, provide as De, inject as ye, defineComponent as zc, camelize as Ir, h as Gt, toRaw as Be, createVNode as r, mergeProps as O, onBeforeUnmount as Qe, readonly as Ql, onDeactivated as _r, onActivated as Wc, onMounted as Ye, nextTick as we, TransitionGroup as Jl, Transition as jt, isRef as Tn, toRef as $, onBeforeMount as ra, withDirectives as $e, resolveDirective as gt, vShow as Ct, onUpdated as jc, Text as Uc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Kc, cloneVNode as qc, createTextVNode as Tt, onUnmounted as Tr, onBeforeUpdate as Xc, withModifiers as Tl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-1a3ae885.js";
14
14
  function rt(e, n) {
15
15
  let t;
16
16
  function a() {
@@ -1 +1 @@
1
- export * from "./vuetify-8a5a634a.js";
1
+ export * from "./vuetify-fdf20bf9.js";
package/index.d.ts CHANGED
@@ -37,6 +37,18 @@ export { default as ActivateOverviewMapCallback } from "./src/callback/activateO
37
37
  export type * from "./src/callback/activateOverviewMapCallback.d.ts";
38
38
  export { default as DeactivateOverviewMapCallback } from "./src/callback/deactivateOverviewMapCallback.js";
39
39
  export type * from "./src/callback/deactivateOverviewMapCallback.d.ts";
40
+ export { default as HighlightObjectsCallback } from "./src/callback/highlightObjectsCallback.js";
41
+ export type * from "./src/callback/highlightObjectsCallback.d.ts";
42
+ export { default as ShowObjectsCallback } from "./src/callback/showObjectsCallback.js";
43
+ export type * from "./src/callback/showObjectsCallback.d.ts";
44
+ export { default as StartFlightCallback } from "./src/callback/startFlightCallback.js";
45
+ export type * from "./src/callback/startFlightCallback.d.ts";
46
+ export { default as StopFlightCallback } from "./src/callback/stopFlightCallback.js";
47
+ export type * from "./src/callback/stopFlightCallback.d.ts";
48
+ export { default as UnHighlightObjectsCallback } from "./src/callback/unHighlightObjectsCallback.js";
49
+ export type * from "./src/callback/unHighlightObjectsCallback.d.ts";
50
+ export { default as HideObjectsCallback } from "./src/callback/hideObjectsCallback.js";
51
+ export type * from "./src/callback/hideObjectsCallback.d.ts";
40
52
  export { default as VcsNavbar } from "./src/application/VcsNavbar.vue";
41
53
  export type * from "./src/application/VcsNavbar.vue.d.ts";
42
54
  export { default as VcsAppWrapper } from "./src/application/VcsAppWrapper.vue";
@@ -299,7 +311,7 @@ export { createPlayAction, PlayerDirection, createStepAction, createFastAction,
299
311
  export type * from "./src/actions/flightActions.d.ts";
300
312
  export { createListItemDeleteAction, createListItemBulkAction, createListExportAction, createListImportAction, importIntoLayer } from "./src/actions/listActions.js";
301
313
  export type * from "./src/actions/listActions.d.ts";
302
- export { default as VcsCallback, executeCallbacks } from "./src/callback/vcsCallback.js";
314
+ export { default as VcsCallback, executeCallbacks, executeAsyncCallbacks } from "./src/callback/vcsCallback.js";
303
315
  export type * from "./src/callback/vcsCallback.d.ts";
304
316
  export { default as VcsApp, setupMapNavbar, setupPluginMountedListeners, setupCategoryManagerWindow, attributionsComponentId, categoryManagerWindowId, customScreenComponentId, helpComponentId, legendComponentId, settingsComponentId, splashScreenComponentId } from "./src/application/VcsApp.vue";
305
317
  export type * from "./src/application/VcsApp.vue.d.ts";
@@ -315,7 +327,7 @@ export { WindowAlignment, getFittedWindowPositionOptions, getFittedWindowPositio
315
327
  export type * from "./src/manager/window/windowHelper.d.ts";
316
328
  export { default as PanelManager, PanelLocation } from "./src/manager/panel/panelManager.js";
317
329
  export type * from "./src/manager/panel/panelManager.d.ts";
318
- export { default as NavbarManager, ButtonLocation, getActionsByLocation } from "./src/manager/navbarManager.js";
330
+ export { default as NavbarManager, ButtonLocation, getActionsByLocation, locationSymbol, deviceSymbol } from "./src/manager/navbarManager.js";
319
331
  export type * from "./src/manager/navbarManager.d.ts";
320
332
  export { default as ToolboxManager, ToolboxType, defaultToolboxName } from "./src/manager/toolbox/toolboxManager.js";
321
333
  export type * from "./src/manager/toolbox/toolboxManager.d.ts";
package/index.js CHANGED
@@ -51,6 +51,7 @@ export {
51
51
  export {
52
52
  default as VcsCallback,
53
53
  executeCallbacks,
54
+ executeAsyncCallbacks,
54
55
  } from './src/callback/vcsCallback.js';
55
56
  export { default as ActivateLayersCallback } from './src/callback/activateLayersCallback.js';
56
57
  export { default as DeactivateLayersCallback } from './src/callback/deactivateLayersCallback.js';
@@ -69,6 +70,12 @@ export { default as ToggleToolbarButtonCallback } from './src/callback/toggleToo
69
70
  export { default as ActivateMapCallback } from './src/callback/activateMapCallback.js';
70
71
  export { default as ActivateOverviewMapCallback } from './src/callback/activateOverviewMapCallback.js';
71
72
  export { default as DeactivateOverviewMapCallback } from './src/callback/deactivateOverviewMapCallback.js';
73
+ export { default as HighlightObjectsCallback } from './src/callback/highlightObjectsCallback.js';
74
+ export { default as ShowObjectsCallback } from './src/callback/showObjectsCallback.js';
75
+ export { default as StartFlightCallback } from './src/callback/startFlightCallback.js';
76
+ export { default as StopFlightCallback } from './src/callback/stopFlightCallback.js';
77
+ export { default as UnHighlightObjectsCallback } from './src/callback/unHighlightObjectsCallback.js';
78
+ export { default as HideObjectsCallback } from './src/callback/hideObjectsCallback.js';
72
79
  export { default as VcsNavbar } from './src/application/VcsNavbar.vue';
73
80
  export {
74
81
  default as VcsApp,
@@ -147,6 +154,8 @@ export {
147
154
  default as NavbarManager,
148
155
  ButtonLocation,
149
156
  getActionsByLocation,
157
+ locationSymbol,
158
+ deviceSymbol,
150
159
  } from './src/manager/navbarManager.js';
151
160
  export {
152
161
  default as ToolboxManager,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "6.3.0-rc.3",
3
+ "version": "6.3.0-rc.5",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "peerDependencies": {
60
60
  "@vcmap-cesium/engine": "^11.0.4",
61
- "@vcmap/core": "^6.3.0-rc.2",
61
+ "@vcmap/core": "^6.3.0-rc.3",
62
62
  "ol": "^10.4.0",
63
63
  "vue": "~3.4.38",
64
64
  "vuetify": "~3.7.14"
@@ -17,6 +17,7 @@
17
17
  :overflow-count="smAndDown ? 2 : 4"
18
18
  :force-overflow="false"
19
19
  button="VcsToolButton"
20
+ :data-vcs-button-location="ButtonLocation.MAP"
20
21
  />
21
22
  <v-divider
22
23
  v-if="
@@ -32,6 +33,7 @@
32
33
  :overflow-count="smAndDown ? 2 : 3"
33
34
  :force-overflow="false"
34
35
  button="VcsToolButton"
36
+ :data-vcs-button-location="ButtonLocation.CONTENT"
35
37
  />
36
38
  <v-divider
37
39
  v-if="contentActions.length > 0 && toolActions.length > 0"
@@ -45,6 +47,7 @@
45
47
  :force-overflow="false"
46
48
  v-if="smAndUp"
47
49
  button="VcsToolButton"
50
+ :data-vcs-button-location="ButtonLocation.TOOL"
48
51
  />
49
52
  </div>
50
53
  </v-toolbar-items>
@@ -71,6 +74,7 @@
71
74
  :overflow-count="smAndDown ? 1 : 2"
72
75
  :force-overflow="false"
73
76
  button="VcsToolButton"
77
+ :data-vcs-button-location="ButtonLocation.PROJECT"
74
78
  />
75
79
  <v-divider
76
80
  v-if="projectActions.length > 0 && menuActions.length > 0"
@@ -78,7 +82,7 @@
78
82
  inset
79
83
  class="mx-2"
80
84
  />
81
- <div class="d-flex gc-2">
85
+ <div class="d-flex gc-2" data-vcs-nav-general-buttons>
82
86
  <v-menu
83
87
  v-if="!config.hideShareButton && shareActions.length > 0"
84
88
  >
@@ -94,6 +98,7 @@
94
98
  :actions="shareActions"
95
99
  tooltip-position="left"
96
100
  :show-icon="true"
101
+ :data-vcs-button-location="ButtonLocation.SHARE"
97
102
  />
98
103
  </v-menu>
99
104
  <VcsToolButton
@@ -121,6 +126,7 @@
121
126
  :actions="menuActions"
122
127
  tooltip-position="left"
123
128
  :show-icon="true"
129
+ :data-vcs-button-location="ButtonLocation.MENU"
124
130
  />
125
131
  </v-menu>
126
132
  </div>
@@ -237,6 +243,7 @@
237
243
  mdAndUp,
238
244
  smAndUp,
239
245
  toolbarHeight,
246
+ ButtonLocation,
240
247
  };
241
248
  },
242
249
  };
@@ -47,5 +47,13 @@ declare const _default: import("vue").DefineComponent<{}, {
47
47
  mdAndUp: import("vue").Ref<boolean>;
48
48
  smAndUp: import("vue").Ref<boolean>;
49
49
  toolbarHeight: import("vue").ComputedRef<number>;
50
+ ButtonLocation: {
51
+ MAP: number;
52
+ CONTENT: number;
53
+ TOOL: number;
54
+ PROJECT: number;
55
+ SHARE: number;
56
+ MENU: number;
57
+ };
50
58
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
51
59
  export default _default;
@@ -41,6 +41,7 @@
41
41
  :tooltip="action.title"
42
42
  :icon="action.icon"
43
43
  :active="action.active"
44
+ :data-action-name="action.name"
44
45
  @click.stop="action.callback($event)"
45
46
  v-bind="{ ...$attrs }"
46
47
  />
@@ -51,6 +52,7 @@
51
52
  :tooltip="toolboxToggleAction.title"
52
53
  :icon="toolboxToggleAction.icon"
53
54
  :active="toolboxToggleAction.active"
55
+ :data-action-name="toolboxToggleAction.name"
54
56
  @click.stop="toolboxToggleAction.callback($event)"
55
57
  v-bind="{ ...$attrs }"
56
58
  />
@@ -21,6 +21,7 @@ declare class ActivateClippingPolygonCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _names;
24
+ callback(): void;
24
25
  /**
25
26
  * @returns {ActivateClippingPolygonOptions}
26
27
  */
@@ -21,6 +21,7 @@ declare class ActivateLayersCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _layerNames;
24
+ callback(): void;
24
25
  /**
25
26
  * @returns {ActivateLayersOptions}
26
27
  */
@@ -22,6 +22,10 @@ declare class ActivateMapCallback extends VcsCallback {
22
22
  * @private
23
23
  */
24
24
  private _mapName;
25
+ /**
26
+ * Activates the map with the given name.
27
+ */
28
+ callback(): void;
25
29
  /**
26
30
  * @returns {ActivateMapCallbackOptions}
27
31
  */
@@ -3,5 +3,6 @@ export default ActivateOverviewMapCallback;
3
3
  * Callback to activate the overview map using its API.
4
4
  */
5
5
  declare class ActivateOverviewMapCallback extends VcsCallback {
6
+ callback(): void;
6
7
  }
7
8
  import VcsCallback from './vcsCallback.js';
@@ -21,6 +21,7 @@ declare class AddModuleCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _module;
24
+ callback(): void;
24
25
  /**
25
26
  * @returns {AddModuleCallbackOptions}
26
27
  */
@@ -28,6 +28,7 @@ declare class ApplyLayerStyleCallback extends VcsCallback {
28
28
  * @private
29
29
  */
30
30
  private _layerName;
31
+ callback(): void;
31
32
  /**
32
33
  * @returns {ApplyLayerStyleOptions}
33
34
  */
@@ -4,5 +4,6 @@ export default CloseSplashScreenCallback;
4
4
  * @extends {VcsCallback}
5
5
  */
6
6
  declare class CloseSplashScreenCallback extends VcsCallback {
7
+ callback(): void;
7
8
  }
8
9
  import VcsCallback from './vcsCallback.js';
@@ -21,6 +21,7 @@ declare class DeactivateClippingPolygonCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _names;
24
+ callback(): void;
24
25
  /**
25
26
  * @returns {DeactivateClippingPolygonOptions}
26
27
  */
@@ -21,6 +21,7 @@ declare class DeactivateLayersCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _layerNames;
24
+ callback(): void;
24
25
  /**
25
26
  * @returns {DeactivateLayersOptions}
26
27
  */
@@ -3,5 +3,6 @@ export default DeactivateOverviewMapCallback;
3
3
  * Callback to deactivate the overview map using its API.
4
4
  */
5
5
  declare class DeactivateOverviewMapCallback extends VcsCallback {
6
+ callback(): void;
6
7
  }
7
8
  import VcsCallback from './vcsCallback.js';
@@ -21,6 +21,7 @@ declare class GoToViewpointCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _viewpoint;
24
+ callback(): Promise<void>;
24
25
  /**
25
26
  * @returns {GoToViewpointOptions}
26
27
  */
@@ -30,10 +30,10 @@ class GoToViewpointCallback extends VcsCallback {
30
30
  this._viewpoint = options.viewpoint;
31
31
  }
32
32
 
33
- callback() {
33
+ async callback() {
34
34
  const vp = this._app.viewpoints.getByKey(this._viewpoint);
35
35
  if (this._app.maps.activeMap && vp) {
36
- this._app.maps.activeMap.gotoViewpoint(vp);
36
+ await this._app.maps.activeMap.gotoViewpoint(vp);
37
37
  }
38
38
  }
39
39
 
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
3
+ * layerName?: string;
4
+ * objectIds: string[];
5
+ * }} HideObjectsCallbackOptions
6
+ */
7
+ /**
8
+ * A callback to hide objects with given ids in a specific layer or globally if no layer is given.
9
+ */
10
+ export default class HideObjectsCallback extends VcsCallback {
11
+ /**
12
+ * @param {HideObjectsCallbackOptions} options
13
+ * @param {import('@vcmap/ui').VcsUiApp} app
14
+ */
15
+ constructor(options: HideObjectsCallbackOptions, app: import('@vcmap/ui').VcsUiApp);
16
+ /** @type {string | undefined} */
17
+ _layerName: string | undefined;
18
+ /** @type {string[]} */
19
+ _objectIds: string[];
20
+ callback(): void;
21
+ /** @returns {HideObjectsCallbackOptions} */
22
+ toJSON(): HideObjectsCallbackOptions;
23
+ }
24
+ export type HideObjectsCallbackOptions = import('@vcmap/ui').VcsCallbackOptions & {
25
+ layerName?: string;
26
+ objectIds: string[];
27
+ };
28
+ import VcsCallback from './vcsCallback.js';
@@ -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
+ * }} HideObjectsCallbackOptions
9
+ */
10
+
11
+ /**
12
+ * A callback to hide objects with given ids in a specific layer or globally if no layer is given.
13
+ */
14
+ export default class HideObjectsCallback extends VcsCallback {
15
+ static get className() {
16
+ return 'HideObjectsCallback';
17
+ }
18
+
19
+ /** @type {string | undefined} */
20
+ _layerName;
21
+
22
+ /** @type {string[]} */
23
+ _objectIds;
24
+
25
+ /**
26
+ * @param {HideObjectsCallbackOptions} 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.hideObjects(this._objectIds);
43
+ }
44
+ } else {
45
+ app.layers.globalHider.hideObjects(this._objectIds);
46
+ }
47
+ }
48
+
49
+ /** @returns {HideObjectsCallbackOptions} */
50
+ toJSON() {
51
+ return {
52
+ ...super.toJSON(),
53
+ layerName: this._layerName,
54
+ objectIds: [...this._objectIds],
55
+ };
56
+ }
57
+ }
58
+
59
+ callbackClassRegistry.registerClass(
60
+ HideObjectsCallback.className,
61
+ HideObjectsCallback,
62
+ );
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @typedef {import('@vcmap/core').VectorStyleItemOptions} VectorStyleItemOptions
3
+ */
4
+ /**
5
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
6
+ * layerName: string;
7
+ * toHighlight: Record<string, VectorStyleItemOptions>;
8
+ * }} HighlightObjectsCallbackOptions
9
+ */
10
+ /**
11
+ * A callback to highlight objects of FeatureLayers.
12
+ */
13
+ export default class HighlightObjectsCallback extends VcsCallback {
14
+ /**
15
+ * @param {HighlightObjectsCallbackOptions} options
16
+ * @param {import('@vcmap/ui').VcsUiApp} app
17
+ */
18
+ constructor(options: HighlightObjectsCallbackOptions, app: import('@vcmap/ui').VcsUiApp);
19
+ /** @type {string} */
20
+ _layerName: string;
21
+ /** @type {Record<string, VectorStyleItemOptions>} */
22
+ _toHighlight: Record<string, VectorStyleItemOptions>;
23
+ callback(): void;
24
+ /** @returns {HighlightObjectsCallbackOptions} */
25
+ toJSON(): HighlightObjectsCallbackOptions;
26
+ }
27
+ export type VectorStyleItemOptions = import('@vcmap/core').VectorStyleItemOptions;
28
+ export type HighlightObjectsCallbackOptions = import('@vcmap/ui').VcsCallbackOptions & {
29
+ layerName: string;
30
+ toHighlight: Record<string, VectorStyleItemOptions>;
31
+ };
32
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,68 @@
1
+ import { FeatureLayer, VectorStyleItem } from '@vcmap/core';
2
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
3
+
4
+ /**
5
+ * @typedef {import('@vcmap/core').VectorStyleItemOptions} VectorStyleItemOptions
6
+ */
7
+
8
+ /**
9
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
10
+ * layerName: string;
11
+ * toHighlight: Record<string, VectorStyleItemOptions>;
12
+ * }} HighlightObjectsCallbackOptions
13
+ */
14
+
15
+ /**
16
+ * A callback to highlight objects of FeatureLayers.
17
+ */
18
+ export default class HighlightObjectsCallback extends VcsCallback {
19
+ static get className() {
20
+ return 'HighlightObjectsCallback';
21
+ }
22
+
23
+ /** @type {string} */
24
+ _layerName;
25
+
26
+ /** @type {Record<string, VectorStyleItemOptions>} */
27
+ _toHighlight;
28
+
29
+ /**
30
+ * @param {HighlightObjectsCallbackOptions} options
31
+ * @param {import('@vcmap/ui').VcsUiApp} app
32
+ */
33
+ constructor(options, app) {
34
+ super(options, app);
35
+
36
+ this._layerName = options.layerName;
37
+ this._toHighlight = options.toHighlight;
38
+ }
39
+
40
+ callback() {
41
+ /** @type {import('@vcmap/ui').VcsUiApp} */
42
+ const app = this._app;
43
+ const layer = app.layers.getByKey(this._layerName);
44
+
45
+ if (layer instanceof FeatureLayer) {
46
+ /** @type {Record<string, VectorStyleItem>} */
47
+ const toHighlightInstances = {};
48
+ Object.keys(this._toHighlight).forEach((key) => {
49
+ toHighlightInstances[key] = new VectorStyleItem(this._toHighlight[key]);
50
+ });
51
+ layer.featureVisibility.highlight(toHighlightInstances);
52
+ }
53
+ }
54
+
55
+ /** @returns {HighlightObjectsCallbackOptions} */
56
+ toJSON() {
57
+ return {
58
+ ...super.toJSON(),
59
+ layerName: this._layerName,
60
+ toHighlight: structuredClone(this._toHighlight),
61
+ };
62
+ }
63
+ }
64
+
65
+ callbackClassRegistry.registerClass(
66
+ HighlightObjectsCallback.className,
67
+ HighlightObjectsCallback,
68
+ );
@@ -4,5 +4,6 @@ export default OpenSplashScreenCallback;
4
4
  * @extends {VcsCallback}
5
5
  */
6
6
  declare class OpenSplashScreenCallback extends VcsCallback {
7
+ callback(): void;
7
8
  }
8
9
  import VcsCallback from './vcsCallback.js';
@@ -21,6 +21,7 @@ declare class RemoveModuleCallback extends VcsCallback {
21
21
  * @private
22
22
  */
23
23
  private _moduleId;
24
+ callback(): void;
24
25
  /**
25
26
  * @returns {RemoveModuleCallbackOptions}
26
27
  */
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @typedef {import('@vcmap/ui').VcsCallbackOptions & {
3
+ * layerName?: string;
4
+ * objectIds: string[];
5
+ * }} ShowObjectsCallbackOptions
6
+ */
7
+ /**
8
+ * A callback to show objects that were previously hidden.
9
+ */
10
+ export default class ShowObjectsCallback extends VcsCallback {
11
+ /**
12
+ * @param {ShowObjectsCallbackOptions} options
13
+ * @param {import('@vcmap/ui').VcsUiApp} app
14
+ */
15
+ constructor(options: ShowObjectsCallbackOptions, app: import('@vcmap/ui').VcsUiApp);
16
+ /** @type {string | undefined} */
17
+ _layerName: string | undefined;
18
+ /** @type {string[]} */
19
+ _objectIds: string[];
20
+ callback(): void;
21
+ /** @returns {ShowObjectsCallbackOptions} */
22
+ toJSON(): ShowObjectsCallbackOptions;
23
+ }
24
+ export type ShowObjectsCallbackOptions = import('@vcmap/ui').VcsCallbackOptions & {
25
+ layerName?: string;
26
+ objectIds: string[];
27
+ };
28
+ import VcsCallback from './vcsCallback.js';
@@ -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';