@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.
- package/config/i3s.config.json +1 -1
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-a9703a41.js → core-c619c3cb.js} +15 -12
- package/dist/assets/core-workers/panoramaImageWorker.js +1 -1
- package/dist/assets/core.js +1 -1
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui-e0eb19f4.css → ui-1477acda.css} +1 -1
- package/dist/assets/{ui-e0eb19f4.js → ui-1477acda.js} +5775 -5516
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-8a5a634a.js → vuetify-fdf20bf9.js} +1 -1
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +14 -2
- package/index.js +9 -0
- package/package.json +2 -2
- package/src/application/VcsNavbar.vue +8 -1
- package/src/application/VcsNavbar.vue.d.ts +8 -0
- package/src/application/VcsNavbarMobile.vue +2 -0
- package/src/callback/activateClippingPolygonCallback.d.ts +1 -0
- package/src/callback/activateLayersCallback.d.ts +1 -0
- package/src/callback/activateMapCallback.d.ts +4 -0
- package/src/callback/activateOverviewMapCallback.d.ts +1 -0
- package/src/callback/addModuleCallback.d.ts +1 -0
- package/src/callback/applyLayerStyleCallback.d.ts +1 -0
- package/src/callback/closeSplashScreenCallback.d.ts +1 -0
- package/src/callback/deactivateClippingPolygonCallback.d.ts +1 -0
- package/src/callback/deactivateLayersCallback.d.ts +1 -0
- package/src/callback/deactivateOverviewMapCallback.d.ts +1 -0
- package/src/callback/goToViewpointCallback.d.ts +1 -0
- package/src/callback/goToViewpointCallback.js +2 -2
- package/src/callback/hideObjectsCallback.d.ts +28 -0
- package/src/callback/hideObjectsCallback.js +62 -0
- package/src/callback/highlightObjectsCallback.d.ts +32 -0
- package/src/callback/highlightObjectsCallback.js +68 -0
- package/src/callback/openSplashScreenCallback.d.ts +1 -0
- package/src/callback/removeModuleCallback.d.ts +1 -0
- package/src/callback/showObjectsCallback.d.ts +28 -0
- package/src/callback/showObjectsCallback.js +62 -0
- package/src/callback/startFlightCallback.d.ts +29 -0
- package/src/callback/startFlightCallback.js +78 -0
- package/src/callback/stopFlightCallback.d.ts +24 -0
- package/src/callback/stopFlightCallback.js +50 -0
- package/src/callback/stopRotationCallback.d.ts +1 -0
- package/src/callback/toggleNavbarButtonCallback.d.ts +1 -0
- package/src/callback/toggleToolbarButtonCallback.d.ts +1 -0
- package/src/callback/unHighlightObjectsCallback.d.ts +28 -0
- package/src/callback/unHighlightObjectsCallback.js +59 -0
- package/src/callback/vcsCallback.d.ts +16 -2
- package/src/callback/vcsCallback.js +27 -1
- package/src/components/projection/VcsProjection.vue +1 -1
- package/src/manager/navbarManager.d.ts +27 -15
- package/src/manager/navbarManager.js +24 -8
- package/src/manager/toolbox/toolboxManager.d.ts +1 -1
- /package/dist/assets/{cesium-2e65c850.js → cesium-2c8fbb1c.js} +0 -0
- /package/dist/assets/core-workers/{panoramaImageWorker.js-8122ca44.js → panoramaImageWorker.js-d20b3c02.js} +0 -0
- /package/dist/assets/{ol-b4f2ad56.js → ol-ec143a2b.js} +0 -0
- /package/dist/assets/{vue-2cae5c1e.js → vue-1a3ae885.js} +0 -0
- /package/dist/assets/{vuetify-8a5a634a.css → vuetify-fdf20bf9.css} +0 -0
|
@@ -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
|
+
);
|
|
@@ -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
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
export function sortByOwner(ownerA: string | symbol, ownerB: string | symbol, order?: string[] | undefined): number;
|
|
9
9
|
/**
|
|
10
10
|
* filters actions by button location and returns actions (optionally sorted)
|
|
11
|
-
* @param {Array<
|
|
11
|
+
* @param {Array<NavbarButtonComponent>} buttonComponents
|
|
12
12
|
* @param {ButtonLocation} location Button render position
|
|
13
13
|
* @param {string[]} [order] optional order to sort by (plugin names)
|
|
14
|
-
* @param {function(
|
|
14
|
+
* @param {function(NavbarButtonComponent, NavbarButtonComponent):number} [compareFn=sortByOwner] Per default components are sorted by weight (highest first) and owner (app first, then plugins)
|
|
15
15
|
* @returns {Array<import("../actions/actionHelper.js").VcsAction>}
|
|
16
16
|
*/
|
|
17
|
-
export function getActionsByLocation(buttonComponents: Array<
|
|
17
|
+
export function getActionsByLocation(buttonComponents: Array<NavbarButtonComponent>, location: ButtonLocation, order?: string[] | undefined, compareFn?: ((arg0: NavbarButtonComponent, arg1: NavbarButtonComponent) => number) | undefined): Array<import("../actions/actionHelper.js").VcsAction>;
|
|
18
18
|
export const locationSymbol: unique symbol;
|
|
19
19
|
export const deviceSymbol: unique symbol;
|
|
20
20
|
/**
|
|
@@ -30,20 +30,27 @@ export namespace ButtonLocation {
|
|
|
30
30
|
let MENU: number;
|
|
31
31
|
}
|
|
32
32
|
export default NavbarManager;
|
|
33
|
-
export type INavbarManager = import("../vcsUiApp.js").VcsComponentManager<
|
|
34
|
-
export type
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
export type INavbarManager = import("../vcsUiApp.js").VcsComponentManager<NavbarButtonComponent, import("./buttonManager.js").ButtonComponentOptions>;
|
|
34
|
+
export type Device = 'desktop' | 'tablet' | 'mobile';
|
|
35
|
+
export type DeviceOptions = Partial<Record<Device, boolean>>;
|
|
36
|
+
export type NavbarButtonComponent = import("./buttonManager.js").ButtonComponent & {
|
|
37
|
+
[locationSymbol]: ButtonLocation;
|
|
38
|
+
[deviceSymbol]: DeviceOptions;
|
|
38
39
|
};
|
|
39
40
|
/**
|
|
40
|
-
* @typedef {import("../vcsUiApp.js").VcsComponentManager<
|
|
41
|
+
* @typedef {import("../vcsUiApp.js").VcsComponentManager<NavbarButtonComponent,import("./buttonManager.js").ButtonComponentOptions>} INavbarManager
|
|
41
42
|
*/
|
|
42
43
|
/**
|
|
43
|
-
* @typedef {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* @
|
|
44
|
+
* @typedef {'desktop' | 'tablet' | 'mobile'} Device
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* @typedef {Partial<Record<Device, boolean>>} DeviceOptions
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* @typedef {import("./buttonManager.js").ButtonComponent & {
|
|
51
|
+
* [locationSymbol]: ButtonLocation,
|
|
52
|
+
* [deviceSymbol]: DeviceOptions,
|
|
53
|
+
* }} NavbarButtonComponent
|
|
47
54
|
*/
|
|
48
55
|
/**
|
|
49
56
|
* @class NavbarManager
|
|
@@ -58,10 +65,15 @@ declare class NavbarManager extends ButtonManager implements INavbarManager {
|
|
|
58
65
|
* @param {ButtonLocation} location Button render position
|
|
59
66
|
* @param {DeviceOptions} [device={destop: true, tablet: true}] Device - optional device configuration
|
|
60
67
|
* @throws {Error} if a buttonComponent with the same ID has already been added
|
|
61
|
-
* @returns {
|
|
68
|
+
* @returns {NavbarButtonComponent}
|
|
62
69
|
*/
|
|
63
70
|
// @ts-ignore
|
|
64
|
-
add(buttonComponentOptions: import("./buttonManager.js").ButtonComponentOptions, owner: string | symbol, location: ButtonLocation, device?:
|
|
71
|
+
add(buttonComponentOptions: import("./buttonManager.js").ButtonComponentOptions, owner: string | symbol, location: ButtonLocation, device?: Partial<Record<Device, boolean>> | undefined): NavbarButtonComponent;
|
|
72
|
+
/**
|
|
73
|
+
* @param {string} id
|
|
74
|
+
* @returns {NavbarButtonComponent}
|
|
75
|
+
*/
|
|
76
|
+
get(id: string): NavbarButtonComponent;
|
|
65
77
|
/**
|
|
66
78
|
* Toggles a button of provided id by executing its callback.
|
|
67
79
|
* Use active flag to force a state to be applied.
|
|
@@ -33,10 +33,10 @@ export function sortByOwner(ownerA, ownerB, order = []) {
|
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* filters actions by button location and returns actions (optionally sorted)
|
|
36
|
-
* @param {Array<
|
|
36
|
+
* @param {Array<NavbarButtonComponent>} buttonComponents
|
|
37
37
|
* @param {ButtonLocation} location Button render position
|
|
38
38
|
* @param {string[]} [order] optional order to sort by (plugin names)
|
|
39
|
-
* @param {function(
|
|
39
|
+
* @param {function(NavbarButtonComponent, NavbarButtonComponent):number} [compareFn=sortByOwner] Per default components are sorted by weight (highest first) and owner (app first, then plugins)
|
|
40
40
|
* @returns {Array<import("../actions/actionHelper.js").VcsAction>}
|
|
41
41
|
*/
|
|
42
42
|
export function getActionsByLocation(
|
|
@@ -72,14 +72,22 @@ export const ButtonLocation = {
|
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
|
-
* @typedef {import("../vcsUiApp.js").VcsComponentManager<
|
|
75
|
+
* @typedef {import("../vcsUiApp.js").VcsComponentManager<NavbarButtonComponent,import("./buttonManager.js").ButtonComponentOptions>} INavbarManager
|
|
76
76
|
*/
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
|
-
* @typedef {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
* @typedef {'desktop' | 'tablet' | 'mobile'} Device
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @typedef {Partial<Record<Device, boolean>>} DeviceOptions
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @typedef {import("./buttonManager.js").ButtonComponent & {
|
|
88
|
+
* [locationSymbol]: ButtonLocation,
|
|
89
|
+
* [deviceSymbol]: DeviceOptions,
|
|
90
|
+
* }} NavbarButtonComponent
|
|
83
91
|
*/
|
|
84
92
|
|
|
85
93
|
/**
|
|
@@ -95,7 +103,7 @@ class NavbarManager extends ButtonManager {
|
|
|
95
103
|
* @param {ButtonLocation} location Button render position
|
|
96
104
|
* @param {DeviceOptions} [device={destop: true, tablet: true}] Device - optional device configuration
|
|
97
105
|
* @throws {Error} if a buttonComponent with the same ID has already been added
|
|
98
|
-
* @returns {
|
|
106
|
+
* @returns {NavbarButtonComponent}
|
|
99
107
|
*/
|
|
100
108
|
add(
|
|
101
109
|
buttonComponentOptions,
|
|
@@ -115,6 +123,14 @@ class NavbarManager extends ButtonManager {
|
|
|
115
123
|
return buttonComponent;
|
|
116
124
|
}
|
|
117
125
|
|
|
126
|
+
/**
|
|
127
|
+
* @param {string} id
|
|
128
|
+
* @returns {NavbarButtonComponent}
|
|
129
|
+
*/
|
|
130
|
+
get(id) {
|
|
131
|
+
return this._buttonComponents.get(id);
|
|
132
|
+
}
|
|
133
|
+
|
|
118
134
|
/**
|
|
119
135
|
* Toggles a button of provided id by executing its callback.
|
|
120
136
|
* Use active flag to force a state to be applied.
|
|
@@ -164,7 +164,7 @@ declare class ToolboxManager implements IToolboxManager {
|
|
|
164
164
|
* @returns {SingleToolboxComponent|SelectToolboxComponent|import("vue").ShallowReactive<GroupToolboxComponent>}
|
|
165
165
|
*/
|
|
166
166
|
// @ts-ignore
|
|
167
|
-
add(toolboxComponentOptions: SingleToolboxComponentOptions | SelectToolboxComponentOptions | GroupToolboxComponentOptions, owner: string | symbol, device?: import("../navbarManager.js").
|
|
167
|
+
add(toolboxComponentOptions: SingleToolboxComponentOptions | SelectToolboxComponentOptions | GroupToolboxComponentOptions, owner: string | symbol, device?: Partial<Record<import("../navbarManager.js").Device, boolean>> | undefined): SingleToolboxComponent | SelectToolboxComponent | import("vue").ShallowReactive<GroupToolboxComponent>;
|
|
168
168
|
/**
|
|
169
169
|
* removes all {@link ToolboxComponent}s of a specific owner and fires removed Events
|
|
170
170
|
* @param {string|vcsAppSymbol} owner
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|