From 0be30400cd2ff7bb8ef760bfe6468cf81dffe291 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Wed, 24 Sep 2025 20:08:19 -0400 Subject: [PATCH 01/10] Feature Contextual Action --- docs/Main/FeltController.md | 89 +++++++++++++++++++ .../UI/CreateFeatureContextualActionParams.md | 13 +++ docs/UI/README.md | 4 + docs/UI/UIFeatureContextualAction.md | 83 +++++++++++++++++ docs/UI/UIFeatureContextualActionCreate.md | 76 ++++++++++++++++ docs/UI/UiController.md | 89 +++++++++++++++++++ .../UI/UpdateFeatureContextualActionParams.md | 79 ++++++++++++++++ etc/js-sdk.api.md | 8 ++ src/modules/ui/controller.ts | 76 ++++++++++++++++ src/modules/ui/index.ts | 7 ++ src/modules/ui/schema.ts | 34 +++++++ src/modules/ui/types.ts | 38 ++++++++ src/modules/ui/uiElements/UIFeatureAction.ts | 82 +++++++++++++++++ 13 files changed, 678 insertions(+) create mode 100644 docs/UI/CreateFeatureContextualActionParams.md create mode 100644 docs/UI/UIFeatureContextualAction.md create mode 100644 docs/UI/UIFeatureContextualActionCreate.md create mode 100644 docs/UI/UpdateFeatureContextualActionParams.md create mode 100644 src/modules/ui/uiElements/UIFeatureAction.ts diff --git a/docs/Main/FeltController.md b/docs/Main/FeltController.md index 4133bfd9..6970e669 100644 --- a/docs/Main/FeltController.md +++ b/docs/Main/FeltController.md @@ -1749,6 +1749,95 @@ await felt.deleteActionTrigger("enablePolygonTool"); *** +## createFeatureContextualAction() + +> **createFeatureContextualAction**(`args`: [`CreateFeatureContextualActionParams`](../UI/CreateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> + +Creates a feature contextual action. + +### Parameters + +| Parameter | Type | Description | +| --------- | ------------------------------------------------------------------------------------- | ----------------------------- | +| `args` | [`CreateFeatureContextualActionParams`](../UI/CreateFeatureContextualActionParams.md) | The arguments for the method. | + +### Returns + +`Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> + +### Example + +```typescript +await felt.createFeatureContextualAction({ + action: { + label: "Edit feature", + onTrigger: async ({ featureId, layerId }) => { + console.log(`Editing feature ${featureId} in layer ${layerId}`); + }, + }, + placement: { at: "start" }, // optional, defaults to { at: "end" } +}); +``` + +*** + +## updateFeatureContextualAction() + +> **updateFeatureContextualAction**(`args`: [`UpdateFeatureContextualActionParams`](../UI/UpdateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> + +Updates a feature contextual action. + +Feature contextual action to update is identified by the `id` property. + +### Parameters + +| Parameter | Type | Description | +| --------- | ------------------------------------------------------------------------------------- | ---------------------------------------- | +| `args` | [`UpdateFeatureContextualActionParams`](../UI/UpdateFeatureContextualActionParams.md) | The feature contextual action to update. | + +### Returns + +`Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> + +### Remarks + +Properties provided will override the existing properties. + +### Example + +```typescript +await felt.updateFeatureContextualAction({ + id: "my-action", + label: "Updated action label", // only label changes +}); +``` + +*** + +## deleteFeatureContextualAction() + +> **deleteFeatureContextualAction**(`id`: `string`): `void` + +Deletes a feature contextual action. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------- | -------------------------------------------------- | +| `id` | `string` | The id of the feature contextual action to delete. | + +### Returns + +`void` + +### Example + +```typescript +await felt.deleteFeatureContextualAction("my-action"); +``` + +*** + ## createPanelId() > **createPanelId**(): `Promise`\<`string`> diff --git a/docs/UI/CreateFeatureContextualActionParams.md b/docs/UI/CreateFeatureContextualActionParams.md new file mode 100644 index 00000000..1ac7a1ce --- /dev/null +++ b/docs/UI/CreateFeatureContextualActionParams.md @@ -0,0 +1,13 @@ +*** + +# Properties + +## action + +> **action**: [`uiFeatureActionCreate`](uiFeatureActionCreate.md) + +*** + +## placement? + +> `optional` **placement**: \{ `after`: `string`; } | \{ `before`: `string`; } | \{ `at`: `"start"` | `"end"`; } diff --git a/docs/UI/README.md b/docs/UI/README.md index 420e59e3..da1ff0db 100644 --- a/docs/UI/README.md +++ b/docs/UI/README.md @@ -11,6 +11,8 @@ UI features such as the legend and the full screen button. * [CreateActionTriggerParams](CreateActionTriggerParams.md) * [UpdateActionTriggerParams](UpdateActionTriggerParams.md) +* [CreateFeatureContextualActionParams](CreateFeatureContextualActionParams.md) +* [UpdateFeatureContextualActionParams](UpdateFeatureContextualActionParams.md) * [CreateOrUpdatePanelParams](CreateOrUpdatePanelParams.md) * [CreatePanelElementsParams](CreatePanelElementsParams.md) * [UpdatePanelElementsParams](UpdatePanelElementsParams.md) @@ -30,6 +32,8 @@ UI features such as the legend and the full screen button. * [UIDividerElement](UIDividerElement.md) * [UIDividerElementCreate](UIDividerElementCreate.md) * [UIDividerElementUpdate](UIDividerElementUpdate.md) +* [uiFeatureActionCreate](uiFeatureActionCreate.md) +* [uiFeatureAction](uiFeatureAction.md) * [UIFlexibleSpaceElement](UIFlexibleSpaceElement.md) * [UIFlexibleSpaceElementCreate](UIFlexibleSpaceElementCreate.md) * [UIFlexibleSpaceElementUpdate](UIFlexibleSpaceElementUpdate.md) diff --git a/docs/UI/UIFeatureContextualAction.md b/docs/UI/UIFeatureContextualAction.md new file mode 100644 index 00000000..d84e88e7 --- /dev/null +++ b/docs/UI/UIFeatureContextualAction.md @@ -0,0 +1,83 @@ +*** + +Represents a feature contextual action after creation (with generated id). + +# Properties + +## label + +> **label**: `string` + +The label of the contextual action. + +*** + +## onTrigger() + +> **onTrigger**: (`args`: \{ `featureId`: `string`; `layerId`: `string`; }) => `void` + +The function to call when the contextual action is triggered. + +### Parameters + +| Parameter | Type | Description | +| ---------------- | ------------------------------------------------ | ------------------------------------- | +| `args` | \{ `featureId`: `string`; `layerId`: `string`; } | The arguments passed to the function. | +| `args.featureId` | `string` | The id of the feature. | +| `args.layerId` | `string` | The id of the layer. | + +### Returns + +`void` + +*** + +## id + +> **id**: `string` + +The unique identifier of the contextual action. + +*** + +## type? + +> `optional` **type**: `undefined` + +*** + +## onCreate()? + +> `optional` **onCreate**: (`args`: \{ `id`: `string`; }) => `void` + +A function to call when the element is created. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------------------- | ------------------------------------- | +| `args` | \{ `id`: `string`; } | The arguments passed to the function. | +| `args.id` | `string` | The id of the element. | + +### Returns + +`void` + +*** + +## onDestroy()? + +> `optional` **onDestroy**: (`args`: \{ `id`: `string`; }) => `void` + +A function to call when the element is destroyed. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------------------- | ------------------------------------- | +| `args` | \{ `id`: `string`; } | The arguments passed to the function. | +| `args.id` | `string` | The id of the element. | + +### Returns + +`void` diff --git a/docs/UI/UIFeatureContextualActionCreate.md b/docs/UI/UIFeatureContextualActionCreate.md new file mode 100644 index 00000000..af60981c --- /dev/null +++ b/docs/UI/UIFeatureContextualActionCreate.md @@ -0,0 +1,76 @@ +*** + +Represents a feature contextual action for creation. +It can be added to the map by using the [UiController.createFeatureContextualAction](UiController.md#createfeaturecontextualaction) method. + +# Properties + +## label + +> **label**: `string` + +The label of the contextual action. + +*** + +## onTrigger() + +> **onTrigger**: (`args`: \{ `featureId`: `string`; `layerId`: `string`; }) => `void` + +The function to call when the contextual action is triggered. + +### Parameters + +| Parameter | Type | Description | +| ---------------- | ------------------------------------------------ | ------------------------------------- | +| `args` | \{ `featureId`: `string`; `layerId`: `string`; } | The arguments passed to the function. | +| `args.featureId` | `string` | The id of the feature. | +| `args.layerId` | `string` | The id of the layer. | + +### Returns + +`void` + +*** + +## type? + +> `optional` **type**: `undefined` + +*** + +## onCreate()? + +> `optional` **onCreate**: (`args`: \{ `id`: `string`; }) => `void` + +A function to call when the element is created. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------------------- | ------------------------------------- | +| `args` | \{ `id`: `string`; } | The arguments passed to the function. | +| `args.id` | `string` | The id of the element. | + +### Returns + +`void` + +*** + +## onDestroy()? + +> `optional` **onDestroy**: (`args`: \{ `id`: `string`; }) => `void` + +A function to call when the element is destroyed. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------------------- | ------------------------------------- | +| `args` | \{ `id`: `string`; } | The arguments passed to the function. | +| `args.id` | `string` | The id of the element. | + +### Returns + +`void` diff --git a/docs/UI/UiController.md b/docs/UI/UiController.md index 2a3f2ea5..3345599d 100644 --- a/docs/UI/UiController.md +++ b/docs/UI/UiController.md @@ -107,6 +107,95 @@ await felt.deleteActionTrigger("enablePolygonTool"); *** +## createFeatureContextualAction() + +> **createFeatureContextualAction**(`args`: [`CreateFeatureContextualActionParams`](CreateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> + +Creates a feature contextual action. + +### Parameters + +| Parameter | Type | Description | +| --------- | ------------------------------------------------------------------------------- | ----------------------------- | +| `args` | [`CreateFeatureContextualActionParams`](CreateFeatureContextualActionParams.md) | The arguments for the method. | + +### Returns + +`Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> + +### Example + +```typescript +await felt.createFeatureContextualAction({ + action: { + label: "Edit feature", + onTrigger: async ({ featureId, layerId }) => { + console.log(`Editing feature ${featureId} in layer ${layerId}`); + }, + }, + placement: { at: "start" }, // optional, defaults to { at: "end" } +}); +``` + +*** + +## updateFeatureContextualAction() + +> **updateFeatureContextualAction**(`args`: [`UpdateFeatureContextualActionParams`](UpdateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> + +Updates a feature contextual action. + +Feature contextual action to update is identified by the `id` property. + +### Parameters + +| Parameter | Type | Description | +| --------- | ------------------------------------------------------------------------------- | ---------------------------------------- | +| `args` | [`UpdateFeatureContextualActionParams`](UpdateFeatureContextualActionParams.md) | The feature contextual action to update. | + +### Returns + +`Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> + +### Remarks + +Properties provided will override the existing properties. + +### Example + +```typescript +await felt.updateFeatureContextualAction({ + id: "my-action", + label: "Updated action label", // only label changes +}); +``` + +*** + +## deleteFeatureContextualAction() + +> **deleteFeatureContextualAction**(`id`: `string`): `void` + +Deletes a feature contextual action. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------- | -------------------------------------------------- | +| `id` | `string` | The id of the feature contextual action to delete. | + +### Returns + +`void` + +### Example + +```typescript +await felt.deleteFeatureContextualAction("my-action"); +``` + +*** + ## createPanelId() > **createPanelId**(): `Promise`\<`string`> diff --git a/docs/UI/UpdateFeatureContextualActionParams.md b/docs/UI/UpdateFeatureContextualActionParams.md new file mode 100644 index 00000000..01d049b9 --- /dev/null +++ b/docs/UI/UpdateFeatureContextualActionParams.md @@ -0,0 +1,79 @@ +*** + +# Properties + +## id + +> **id**: `string` + +*** + +## label? + +> `optional` **label**: `string` + +The label of the contextual action. + +*** + +## type? + +> `optional` **type**: `undefined` + +*** + +## onTrigger()? + +> `optional` **onTrigger**: (`args`: \{ `featureId`: `string`; `layerId`: `string`; }) => `void` + +The function to call when the contextual action is triggered. + +### Parameters + +| Parameter | Type | Description | +| ---------------- | ------------------------------------------------ | ------------------------------------- | +| `args` | \{ `featureId`: `string`; `layerId`: `string`; } | The arguments passed to the function. | +| `args.featureId` | `string` | The id of the feature. | +| `args.layerId` | `string` | The id of the layer. | + +### Returns + +`void` + +*** + +## onCreate()? + +> `optional` **onCreate**: (`args`: \{ `id`: `string`; }) => `void` + +A function to call when the element is created. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------------------- | ------------------------------------- | +| `args` | \{ `id`: `string`; } | The arguments passed to the function. | +| `args.id` | `string` | The id of the element. | + +### Returns + +`void` + +*** + +## onDestroy()? + +> `optional` **onDestroy**: (`args`: \{ `id`: `string`; }) => `void` + +A function to call when the element is destroyed. + +### Parameters + +| Parameter | Type | Description | +| --------- | -------------------- | ------------------------------------- | +| `args` | \{ `id`: `string`; } | The arguments passed to the function. | +| `args.id` | `string` | The id of the element. | + +### Returns + +`void` diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index fc434b97..fb4935e2 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -227,6 +227,8 @@ export { CountGridConfig } export { CreateActionTriggerParams } +export { CreateFeatureContextualActionParams } + export { CreateLayersFromGeoJsonParams } export { CreateOrUpdatePanelParams } @@ -634,6 +636,10 @@ export { UIDividerElementCreate } export { UIDividerElementUpdate } +export { uiFeatureAction } + +export { uiFeatureActionCreate } + export { UIFlexibleSpaceElement } export { UIFlexibleSpaceElementCreate } @@ -694,6 +700,8 @@ export { UIToggleGroupElementUpdate } export { UpdateActionTriggerParams } +export { UpdateFeatureContextualActionParams } + export { UpdateLayerParams } export { UpdatePanelElementsParams } diff --git a/src/modules/ui/controller.ts b/src/modules/ui/controller.ts index 209ab499..feda0e91 100644 --- a/src/modules/ui/controller.ts +++ b/src/modules/ui/controller.ts @@ -2,15 +2,18 @@ import { method, methodWithListeners } from "~/lib/interface"; import type { SortConfig } from "~/modules/shared/types"; import type { CreateActionTriggerParams, + CreateFeatureContextualActionParams, CreateOrUpdatePanelParams, CreatePanelElementsParams, DeletePanelElementsParams, UiControlsOptions, UiOnMapInteractionsOptions, UpdateActionTriggerParams, + UpdateFeatureContextualActionParams, UpdatePanelElementsParams, } from "./types"; import type { UIActionTriggerCreate } from "./uiElements/UIActionTrigger"; +import type { UIFeatureAction } from "./uiElements/UIFeatureAction"; import type { UIPanel } from "./uiElements/UIPanel"; /** @@ -57,6 +60,21 @@ export const uiController = ( UIActionTriggerCreate >(feltWindow, "updateActionTrigger"), deleteActionTrigger: method(feltWindow, "deleteActionTrigger"), + + createFeatureContextualAction: methodWithListeners< + "createFeatureContextualAction", + CreateFeatureContextualActionParams, + UIFeatureAction + >(feltWindow, "createFeatureContextualAction"), + updateFeatureContextualAction: methodWithListeners< + "updateFeatureContextualAction", + UpdateFeatureContextualActionParams, + UIFeatureAction + >(feltWindow, "updateFeatureContextualAction"), + deleteFeatureContextualAction: method( + feltWindow, + "deleteFeatureContextualAction", + ), }); /** @@ -138,6 +156,64 @@ export interface UiController { */ deleteActionTrigger(id: string): void; + /** + * Creates a feature contextual action. + * + * @param args - The arguments for the method. + * @param args.action - The action to create. + * @param args.placement - The placement of the action. Optional. Defaults to `{ at: "end" }`. + * + * @example + * ```typescript + * await felt.createFeatureContextualAction({ + * action: { + * label: "Edit feature", + * onTrigger: async ({ featureId, layerId }) => { + * console.log(`Editing feature ${featureId} in layer ${layerId}`); + * }, + * }, + * placement: { at: "start" }, // optional, defaults to { at: "end" } + * }); + * ``` + */ + createFeatureContextualAction( + args: CreateFeatureContextualActionParams, + ): Promise; + + /** + * Updates a feature contextual action. + * + * Feature contextual action to update is identified by the `id` property. + * + * @remarks + * Properties provided will override the existing properties. + * + * @param args - The feature contextual action to update. + * + * @example + * ```typescript + * await felt.updateFeatureContextualAction({ + * id: "my-action", + * label: "Updated action label", // only label changes + * }); + * ``` + */ + updateFeatureContextualAction( + args: UpdateFeatureContextualActionParams, + ): Promise; + + /** + * Deletes a feature contextual action. + * + * @param id - The id of the feature contextual action to delete. + * + * @example + * ```typescript + * await felt.deleteFeatureContextualAction("my-action"); + * ``` + */ + deleteFeatureContextualAction(id: string): void; + /** * Creates a panel ID. * diff --git a/src/modules/ui/index.ts b/src/modules/ui/index.ts index 7603f0f6..97441603 100644 --- a/src/modules/ui/index.ts +++ b/src/modules/ui/index.ts @@ -6,12 +6,14 @@ */ export type { CreateActionTriggerParams, + CreateFeatureContextualActionParams, CreateOrUpdatePanelParams, CreatePanelElementsParams, DeletePanelElementsParams, UiOnMapInteractionsOptions as OnMapInteractionsOptions, UiControlsOptions, UpdateActionTriggerParams, + UpdateFeatureContextualActionParams, UpdatePanelElementsParams, } from "./types"; @@ -101,4 +103,9 @@ export type { UIControlElementOption } from "./uiElements/base"; export type { UIActionTriggerCreate } from "./uiElements/UIActionTrigger"; +export type { + UIFeatureAction as uiFeatureAction, + UIFeatureActionCreate as uiFeatureActionCreate, +} from "./uiElements/UIFeatureAction"; + export type { UiController } from "./controller"; diff --git a/src/modules/ui/schema.ts b/src/modules/ui/schema.ts index 1641d4ce..f4070d7b 100644 --- a/src/modules/ui/schema.ts +++ b/src/modules/ui/schema.ts @@ -5,15 +5,18 @@ import type { zInfer } from "~/lib/utils"; import { SortConfigSchema } from "../shared/types"; import { CreateActionTriggerParamsClonableSchema, + CreateFeatureContextualActionParamsClonableSchema, CreateOrUpdatePanelParamsClonableSchema, CreatePanelElementsClonableSchema, DeletePanelElementsParamsSchema, UiControlsOptionsSchema, UiOnMapInteractionsOptionsSchema, UpdateActionTriggerParamsClonableSchema, + UpdateFeatureContextualActionParamsClonableSchema, UpdatePanelElementsParamsClonableSchema, } from "./types"; import type { uiActionTriggerSchema } from "./uiElements/UIActionTrigger"; +import type { uiFeatureActionSchema } from "./uiElements/UIFeatureAction"; import type { uiPanelCreateSchema } from "./uiElements/UIPanel"; const CreateActionTriggerMessage = methodMessage( @@ -31,6 +34,21 @@ const DeleteActionTriggerMessage = methodMessage( z.string(), ); +const CreateFeatureContextualActionMessage = methodMessage( + "createFeatureContextualAction", + CreateFeatureContextualActionParamsClonableSchema, +); + +const UpdateFeatureContextualActionMessage = methodMessage( + "updateFeatureContextualAction", + UpdateFeatureContextualActionParamsClonableSchema, +); + +const DeleteFeatureContextualActionMessage = methodMessage( + "deleteFeatureContextualAction", + z.string(), +); + const CreatePanelIdMessage = methodMessage("createPanelId", z.void()); const CreateOrUpdatePanelMessage = methodMessage( @@ -86,6 +104,10 @@ export const uiSchema = { UpdateActionTriggerMessage, DeleteActionTriggerMessage, + CreateFeatureContextualActionMessage, + UpdateFeatureContextualActionMessage, + DeleteFeatureContextualActionMessage, + CreatePanelIdMessage, CreateOrUpdatePanelMessage, DeletePanelMessage, @@ -115,6 +137,18 @@ export type UiSchema = { >; deleteActionTrigger: Method>; + createFeatureContextualAction: Method< + zInfer, + zInfer + >; + updateFeatureContextualAction: Method< + zInfer, + zInfer + >; + deleteFeatureContextualAction: Method< + zInfer + >; + createPanelId: Method>; createOrUpdatePanel: Method< zInfer, diff --git a/src/modules/ui/types.ts b/src/modules/ui/types.ts index 2af942ef..6ba4d1c9 100644 --- a/src/modules/ui/types.ts +++ b/src/modules/ui/types.ts @@ -7,6 +7,11 @@ import { uiActionTriggerSchema, type UIActionTriggerCreate, } from "./uiElements/UIActionTrigger"; +import { + uiFeatureActionSchema, + type UIFeatureAction, + type UIFeatureActionCreate, +} from "./uiElements/UIFeatureAction"; import { type UIFlexibleSpaceElementCreate } from "./uiElements/UIFlexibleSpaceElement"; import { uiPanelCreateSchema, @@ -50,6 +55,39 @@ export interface UpdateActionTriggerParams id: zInfer["id"]; } +export const CreateFeatureContextualActionParamsSchema = z.object({ + action: uiFeatureActionSchema.create, + placement: placementForUiElementSchema.optional(), +}); + +export const CreateFeatureContextualActionParamsClonableSchema = z.object({ + action: uiFeatureActionSchema.clonable, + placement: placementForUiElementSchema.optional(), +}); + +/** + * @public + */ +export interface CreateFeatureContextualActionParams + extends zInfer { + action: UIFeatureActionCreate; + placement?: PlacementForUIElement; +} + +const UpdateFeatureContextualActionParamsSchema = + uiFeatureActionSchema.create.partial().required({ id: true }); + +export const UpdateFeatureContextualActionParamsClonableSchema = + uiFeatureActionSchema.clonable.partial().required({ id: true }); + +/** + * @public + */ +export interface UpdateFeatureContextualActionParams + extends Omit, "id"> { + id: zInfer["id"]; +} + const CreateOrUpdatePanelParamsSchema = z.object({ panel: uiPanelCreateSchema.params, placement: placementForUiElementSchema.optional(), diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts new file mode 100644 index 00000000..473d0170 --- /dev/null +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -0,0 +1,82 @@ +import { z } from "zod"; +import type { zInfer } from "~/lib/utils"; +import type { UiController } from "../controller"; +import { + uiElementBaseCreateSchema, + uiElementBaseSchema, + type UIElementLifecycle, +} from "./base"; + +const uiFeatureActionBaseSchema = z.object({ + type: z.literal("FeatureContextualAction"), + + /** + * The label of the contextual action. + */ + label: z.string(), + + /** + * The function to call when the contextual action is triggered. + */ + onTrigger: z + .function() + .args(z.object({ featureId: z.string(), layerId: z.string() })) + .returns(z.void()), +}); + +export const uiFeatureActionSchema = { + read: uiElementBaseSchema + .extend(uiFeatureActionBaseSchema.shape) + .extend({ + onTrigger: z + .function() + .args(z.object({ featureId: z.string(), layerId: z.string() })) + .returns(z.void()), + }), + create: uiElementBaseCreateSchema.params + .extend(uiFeatureActionBaseSchema.shape) + .extend({ type: z.undefined() }) // using partial() causes JSDoc to not appear + .extend({ + onTrigger: z + .function() + .args(z.object({ featureId: z.string(), layerId: z.string() })) + .returns(z.void()), + }), + clonable: uiElementBaseCreateSchema.clonable + .extend(uiFeatureActionBaseSchema.shape) + .extend({ type: z.undefined() }) + .extend({ onTrigger: z.string() }), +}; + +/** + * Represents a feature contextual action for creation. + * It can be added to the map by using the {@link UiController.createFeatureContextualAction} method. + * @public + */ +export interface UIFeatureActionCreate + extends UIElementLifecycle, + Omit< + zInfer, + "onCreate" | "onDestroy" | "id" + > { + /** + * The function to call when the contextual action is triggered. + * + * @param args - The arguments passed to the function. + * @param args.featureId - The id of the feature. + * @param args.layerId - The id of the layer. + */ + onTrigger: (args: { featureId: string; layerId: string }) => void; +} + +/** + * Represents a feature contextual action after creation (with generated id). + * @public + */ +export interface UIFeatureAction + extends UIFeatureActionCreate { + /** + * The unique identifier of the contextual action. + */ + id: string; +} From dfd5363c163d57c5a310830836cc29b716679ea4 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 15:31:43 -0400 Subject: [PATCH 02/10] Rename and add more args --- docs/Main/FeltController.md | 31 +- ...Params.md => CreateFeatureActionParams.md} | 0 docs/UI/README.md | 4 +- docs/UI/UiController.md | 31 +- ...Params.md => UpdateFeatureActionParams.md} | 27 +- ...ContextualAction.md => uiFeatureAction.md} | 27 +- ...tionCreate.md => uiFeatureActionCreate.md} | 29 +- etc/js-sdk.api.md | 410 +++++++++--------- src/modules/ui/controller.ts | 42 +- src/modules/ui/index.ts | 4 +- src/modules/ui/schema.ts | 38 +- src/modules/ui/types.ts | 19 +- src/modules/ui/uiElements/UIFeatureAction.ts | 43 +- 13 files changed, 376 insertions(+), 329 deletions(-) rename docs/UI/{CreateFeatureContextualActionParams.md => CreateFeatureActionParams.md} (100%) rename docs/UI/{UpdateFeatureContextualActionParams.md => UpdateFeatureActionParams.md} (57%) rename docs/UI/{UIFeatureContextualAction.md => uiFeatureAction.md} (60%) rename docs/UI/{UIFeatureContextualActionCreate.md => uiFeatureActionCreate.md} (58%) diff --git a/docs/Main/FeltController.md b/docs/Main/FeltController.md index 6970e669..4b646247 100644 --- a/docs/Main/FeltController.md +++ b/docs/Main/FeltController.md @@ -1749,17 +1749,17 @@ await felt.deleteActionTrigger("enablePolygonTool"); *** -## createFeatureContextualAction() +## createFeatureAction() -> **createFeatureContextualAction**(`args`: [`CreateFeatureContextualActionParams`](../UI/CreateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> +> **createFeatureAction**(`args`: [`CreateFeatureActionParams`](../UI/CreateFeatureActionParams.md)): `Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> Creates a feature contextual action. ### Parameters -| Parameter | Type | Description | -| --------- | ------------------------------------------------------------------------------------- | ----------------------------- | -| `args` | [`CreateFeatureContextualActionParams`](../UI/CreateFeatureContextualActionParams.md) | The arguments for the method. | +| Parameter | Type | Description | +| --------- | ----------------------------------------------------------------- | ----------------------------- | +| `args` | [`CreateFeatureActionParams`](../UI/CreateFeatureActionParams.md) | The arguments for the method. | ### Returns @@ -1768,12 +1768,13 @@ Creates a feature contextual action. ### Example ```typescript -await felt.createFeatureContextualAction({ +const myAction = await felt.createFeatureAction({ action: { label: "Edit feature", onTrigger: async ({ featureId, layerId }) => { console.log(`Editing feature ${featureId} in layer ${layerId}`); }, + layerIds: ["layer-1", "layer-2"], }, placement: { at: "start" }, // optional, defaults to { at: "end" } }); @@ -1781,9 +1782,9 @@ await felt.createFeatureContextualAction({ *** -## updateFeatureContextualAction() +## updateFeatureAction() -> **updateFeatureContextualAction**(`args`: [`UpdateFeatureContextualActionParams`](../UI/UpdateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> +> **updateFeatureAction**(`args`: [`UpdateFeatureActionParams`](../UI/UpdateFeatureActionParams.md)): `Promise`\<[`uiFeatureAction`](../UI/uiFeatureAction.md)> Updates a feature contextual action. @@ -1791,9 +1792,9 @@ Feature contextual action to update is identified by the `id` property. ### Parameters -| Parameter | Type | Description | -| --------- | ------------------------------------------------------------------------------------- | ---------------------------------------- | -| `args` | [`UpdateFeatureContextualActionParams`](../UI/UpdateFeatureContextualActionParams.md) | The feature contextual action to update. | +| Parameter | Type | Description | +| --------- | ----------------------------------------------------------------- | ---------------------------------------- | +| `args` | [`UpdateFeatureActionParams`](../UI/UpdateFeatureActionParams.md) | The feature contextual action to update. | ### Returns @@ -1806,7 +1807,7 @@ Properties provided will override the existing properties. ### Example ```typescript -await felt.updateFeatureContextualAction({ +await felt.updateFeatureAction({ id: "my-action", label: "Updated action label", // only label changes }); @@ -1814,9 +1815,9 @@ await felt.updateFeatureContextualAction({ *** -## deleteFeatureContextualAction() +## deleteFeatureAction() -> **deleteFeatureContextualAction**(`id`: `string`): `void` +> **deleteFeatureAction**(`id`: `string`): `void` Deletes a feature contextual action. @@ -1833,7 +1834,7 @@ Deletes a feature contextual action. ### Example ```typescript -await felt.deleteFeatureContextualAction("my-action"); +await felt.deleteFeatureAction("my-action"); ``` *** diff --git a/docs/UI/CreateFeatureContextualActionParams.md b/docs/UI/CreateFeatureActionParams.md similarity index 100% rename from docs/UI/CreateFeatureContextualActionParams.md rename to docs/UI/CreateFeatureActionParams.md diff --git a/docs/UI/README.md b/docs/UI/README.md index da1ff0db..7b708a80 100644 --- a/docs/UI/README.md +++ b/docs/UI/README.md @@ -11,8 +11,8 @@ UI features such as the legend and the full screen button. * [CreateActionTriggerParams](CreateActionTriggerParams.md) * [UpdateActionTriggerParams](UpdateActionTriggerParams.md) -* [CreateFeatureContextualActionParams](CreateFeatureContextualActionParams.md) -* [UpdateFeatureContextualActionParams](UpdateFeatureContextualActionParams.md) +* [CreateFeatureActionParams](CreateFeatureActionParams.md) +* [UpdateFeatureActionParams](UpdateFeatureActionParams.md) * [CreateOrUpdatePanelParams](CreateOrUpdatePanelParams.md) * [CreatePanelElementsParams](CreatePanelElementsParams.md) * [UpdatePanelElementsParams](UpdatePanelElementsParams.md) diff --git a/docs/UI/UiController.md b/docs/UI/UiController.md index 3345599d..6a9f3868 100644 --- a/docs/UI/UiController.md +++ b/docs/UI/UiController.md @@ -107,17 +107,17 @@ await felt.deleteActionTrigger("enablePolygonTool"); *** -## createFeatureContextualAction() +## createFeatureAction() -> **createFeatureContextualAction**(`args`: [`CreateFeatureContextualActionParams`](CreateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> +> **createFeatureAction**(`args`: [`CreateFeatureActionParams`](CreateFeatureActionParams.md)): `Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> Creates a feature contextual action. ### Parameters -| Parameter | Type | Description | -| --------- | ------------------------------------------------------------------------------- | ----------------------------- | -| `args` | [`CreateFeatureContextualActionParams`](CreateFeatureContextualActionParams.md) | The arguments for the method. | +| Parameter | Type | Description | +| --------- | ----------------------------------------------------------- | ----------------------------- | +| `args` | [`CreateFeatureActionParams`](CreateFeatureActionParams.md) | The arguments for the method. | ### Returns @@ -126,12 +126,13 @@ Creates a feature contextual action. ### Example ```typescript -await felt.createFeatureContextualAction({ +const myAction = await felt.createFeatureAction({ action: { label: "Edit feature", onTrigger: async ({ featureId, layerId }) => { console.log(`Editing feature ${featureId} in layer ${layerId}`); }, + layerIds: ["layer-1", "layer-2"], }, placement: { at: "start" }, // optional, defaults to { at: "end" } }); @@ -139,9 +140,9 @@ await felt.createFeatureContextualAction({ *** -## updateFeatureContextualAction() +## updateFeatureAction() -> **updateFeatureContextualAction**(`args`: [`UpdateFeatureContextualActionParams`](UpdateFeatureContextualActionParams.md)): `Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> +> **updateFeatureAction**(`args`: [`UpdateFeatureActionParams`](UpdateFeatureActionParams.md)): `Promise`\<[`uiFeatureAction`](uiFeatureAction.md)> Updates a feature contextual action. @@ -149,9 +150,9 @@ Feature contextual action to update is identified by the `id` property. ### Parameters -| Parameter | Type | Description | -| --------- | ------------------------------------------------------------------------------- | ---------------------------------------- | -| `args` | [`UpdateFeatureContextualActionParams`](UpdateFeatureContextualActionParams.md) | The feature contextual action to update. | +| Parameter | Type | Description | +| --------- | ----------------------------------------------------------- | ---------------------------------------- | +| `args` | [`UpdateFeatureActionParams`](UpdateFeatureActionParams.md) | The feature contextual action to update. | ### Returns @@ -164,7 +165,7 @@ Properties provided will override the existing properties. ### Example ```typescript -await felt.updateFeatureContextualAction({ +await felt.updateFeatureAction({ id: "my-action", label: "Updated action label", // only label changes }); @@ -172,9 +173,9 @@ await felt.updateFeatureContextualAction({ *** -## deleteFeatureContextualAction() +## deleteFeatureAction() -> **deleteFeatureContextualAction**(`id`: `string`): `void` +> **deleteFeatureAction**(`id`: `string`): `void` Deletes a feature contextual action. @@ -191,7 +192,7 @@ Deletes a feature contextual action. ### Example ```typescript -await felt.deleteFeatureContextualAction("my-action"); +await felt.deleteFeatureAction("my-action"); ``` *** diff --git a/docs/UI/UpdateFeatureContextualActionParams.md b/docs/UI/UpdateFeatureActionParams.md similarity index 57% rename from docs/UI/UpdateFeatureContextualActionParams.md rename to docs/UI/UpdateFeatureActionParams.md index 01d049b9..ca2bff2f 100644 --- a/docs/UI/UpdateFeatureContextualActionParams.md +++ b/docs/UI/UpdateFeatureActionParams.md @@ -16,6 +16,22 @@ The label of the contextual action. *** +## layerIds? + +> `optional` **layerIds**: `string`\[] + +The layers to add the action to. Optional. Defaults to all layers. + +*** + +## geometryTypes? + +> `optional` **geometryTypes**: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[] + +The geometry type of the features to add the action to. Optional. Defaults to all geometry types. + +*** + ## type? > `optional` **type**: `undefined` @@ -24,17 +40,16 @@ The label of the contextual action. ## onTrigger()? -> `optional` **onTrigger**: (`args`: \{ `featureId`: `string`; `layerId`: `string`; }) => `void` +> `optional` **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` The function to call when the contextual action is triggered. ### Parameters -| Parameter | Type | Description | -| ---------------- | ------------------------------------------------ | ------------------------------------- | -| `args` | \{ `featureId`: `string`; `layerId`: `string`; } | The arguments passed to the function. | -| `args.featureId` | `string` | The id of the feature. | -| `args.layerId` | `string` | The id of the layer. | +| Parameter | Type | Description | +| -------------- | ------------------------------------------------------------ | ------------------------------------- | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that was clicked. | ### Returns diff --git a/docs/UI/UIFeatureContextualAction.md b/docs/UI/uiFeatureAction.md similarity index 60% rename from docs/UI/UIFeatureContextualAction.md rename to docs/UI/uiFeatureAction.md index d84e88e7..3c515910 100644 --- a/docs/UI/UIFeatureContextualAction.md +++ b/docs/UI/uiFeatureAction.md @@ -14,17 +14,16 @@ The label of the contextual action. ## onTrigger() -> **onTrigger**: (`args`: \{ `featureId`: `string`; `layerId`: `string`; }) => `void` +> **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` The function to call when the contextual action is triggered. ### Parameters -| Parameter | Type | Description | -| ---------------- | ------------------------------------------------ | ------------------------------------- | -| `args` | \{ `featureId`: `string`; `layerId`: `string`; } | The arguments passed to the function. | -| `args.featureId` | `string` | The id of the feature. | -| `args.layerId` | `string` | The id of the layer. | +| Parameter | Type | Description | +| -------------- | ------------------------------------------------------------ | ------------------------------------- | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that was clicked. | ### Returns @@ -40,6 +39,22 @@ The unique identifier of the contextual action. *** +## layerIds? + +> `optional` **layerIds**: `string`\[] + +The layers to add the action to. Optional. Defaults to all layers. + +*** + +## geometryTypes? + +> `optional` **geometryTypes**: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[] + +The geometry type of the features to add the action to. Optional. Defaults to all geometry types. + +*** + ## type? > `optional` **type**: `undefined` diff --git a/docs/UI/UIFeatureContextualActionCreate.md b/docs/UI/uiFeatureActionCreate.md similarity index 58% rename from docs/UI/UIFeatureContextualActionCreate.md rename to docs/UI/uiFeatureActionCreate.md index af60981c..590c55bc 100644 --- a/docs/UI/UIFeatureContextualActionCreate.md +++ b/docs/UI/uiFeatureActionCreate.md @@ -1,7 +1,7 @@ *** Represents a feature contextual action for creation. -It can be added to the map by using the [UiController.createFeatureContextualAction](UiController.md#createfeaturecontextualaction) method. +It can be added to the map by using the [UiController.createFeatureAction](UiController.md#createfeatureaction) method. # Properties @@ -15,17 +15,16 @@ The label of the contextual action. ## onTrigger() -> **onTrigger**: (`args`: \{ `featureId`: `string`; `layerId`: `string`; }) => `void` +> **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` The function to call when the contextual action is triggered. ### Parameters -| Parameter | Type | Description | -| ---------------- | ------------------------------------------------ | ------------------------------------- | -| `args` | \{ `featureId`: `string`; `layerId`: `string`; } | The arguments passed to the function. | -| `args.featureId` | `string` | The id of the feature. | -| `args.layerId` | `string` | The id of the layer. | +| Parameter | Type | Description | +| -------------- | ------------------------------------------------------------ | ------------------------------------- | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that was clicked. | ### Returns @@ -33,6 +32,22 @@ The function to call when the contextual action is triggered. *** +## layerIds? + +> `optional` **layerIds**: `string`\[] + +The layers to add the action to. Optional. Defaults to all layers. + +*** + +## geometryTypes? + +> `optional` **geometryTypes**: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[] + +The geometry type of the features to add the action to. Optional. Defaults to all geometry types. + +*** + ## type? > `optional` **type**: `undefined` diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index fb4935e2..95681250 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -4,207 +4,211 @@ ```ts -import { av as AggregatedGridConfig } from './controller-DItYvwe0.js'; -import { aw as AggregationConfig } from './controller-DItYvwe0.js'; -import { ax as AggregationMethod } from './controller-DItYvwe0.js'; -import { C as CircleElementCreate } from './controller-DItYvwe0.js'; -import { a as CircleElementRead } from './controller-DItYvwe0.js'; -import { b as CircleElementUpdate } from './controller-DItYvwe0.js'; -import { b9 as CircleToolSettings } from './controller-DItYvwe0.js'; -import { ba as ConfigurableToolType } from './controller-DItYvwe0.js'; -import { ay as CountGridConfig } from './controller-DItYvwe0.js'; -import { bq as CreateActionTriggerParams } from './controller-DItYvwe0.js'; -import { K as CreateLayersFromGeoJsonParams } from './controller-DItYvwe0.js'; -import { br as CreateOrUpdatePanelParams } from './controller-DItYvwe0.js'; -import { bs as CreatePanelElementsParams } from './controller-DItYvwe0.js'; -import { O as DataOnlyLayer } from './controller-DItYvwe0.js'; -import { bt as DeletePanelElementsParams } from './controller-DItYvwe0.js'; -import { E as Element_2 } from './controller-DItYvwe0.js'; -import { c as ElementChangeCallbackParams } from './controller-DItYvwe0.js'; -import { d as ElementCreate } from './controller-DItYvwe0.js'; -import { e as ElementGroup } from './controller-DItYvwe0.js'; -import { f as ElementGroupChangeCallbackParams } from './controller-DItYvwe0.js'; -import { aN as ElementGroupNode } from './controller-DItYvwe0.js'; -import { aO as ElementNode } from './controller-DItYvwe0.js'; -import { B as ElementsController } from './controller-DItYvwe0.js'; -import { g as ElementUpdate } from './controller-DItYvwe0.js'; -import { aP as EntityNode } from './controller-DItYvwe0.js'; -import { aQ as FeatureNode } from './controller-DItYvwe0.js'; -import { aR as FeatureSelection } from './controller-DItYvwe0.js'; -import { aV as FeltBoundary } from './controller-DItYvwe0.js'; -import { F as FeltController } from './controller-DItYvwe0.js'; -import { Q as FeltTiledVectorSource } from './controller-DItYvwe0.js'; -import { aW as FeltZoom } from './controller-DItYvwe0.js'; -import { ao as FilterExpression } from './controller-DItYvwe0.js'; -import { ap as FilterLogicGate } from './controller-DItYvwe0.js'; -import { ar as Filters } from './controller-DItYvwe0.js'; -import { aq as FilterTernary } from './controller-DItYvwe0.js'; -import { R as GeoJsonDataVectorSource } from './controller-DItYvwe0.js'; -import { aX as GeoJsonFeature } from './controller-DItYvwe0.js'; -import { S as GeoJsonFileVectorSource } from './controller-DItYvwe0.js'; -import { aY as GeoJsonGeometry } from './controller-DItYvwe0.js'; -import { aZ as GeoJsonProperties } from './controller-DItYvwe0.js'; -import { W as GeoJsonUrlVectorSource } from './controller-DItYvwe0.js'; -import { as as GeometryFilter } from './controller-DItYvwe0.js'; -import { G as GetElementGroupsConstraint } from './controller-DItYvwe0.js'; -import { h as GetElementsConstraint } from './controller-DItYvwe0.js'; -import { az as GetLayerCalculationParams } from './controller-DItYvwe0.js'; -import { aA as GetLayerCategoriesGroup } from './controller-DItYvwe0.js'; -import { aB as GetLayerCategoriesParams } from './controller-DItYvwe0.js'; -import { X as GetLayerGroupsConstraint } from './controller-DItYvwe0.js'; -import { aC as GetLayerHistogramBin } from './controller-DItYvwe0.js'; -import { aD as GetLayerHistogramParams } from './controller-DItYvwe0.js'; -import { aE as GetLayerPrecomputedCalculationParams } from './controller-DItYvwe0.js'; -import { Y as GetLayersConstraint } from './controller-DItYvwe0.js'; -import { Z as GetRenderedFeaturesConstraint } from './controller-DItYvwe0.js'; -import { aF as GridConfig } from './controller-DItYvwe0.js'; -import { aG as GridType } from './controller-DItYvwe0.js'; -import { H as HighlighterElementCreate } from './controller-DItYvwe0.js'; -import { i as HighlighterElementRead } from './controller-DItYvwe0.js'; -import { j as HighlighterElementUpdate } from './controller-DItYvwe0.js'; -import { bb as HighlighterToolSettings } from './controller-DItYvwe0.js'; -import { I as ImageElementCreate } from './controller-DItYvwe0.js'; -import { k as ImageElementRead } from './controller-DItYvwe0.js'; -import { l as ImageElementUpdate } from './controller-DItYvwe0.js'; -import { bc as InputToolSettings } from './controller-DItYvwe0.js'; -import { J as InteractionsController } from './controller-DItYvwe0.js'; -import { a_ as LatLng } from './controller-DItYvwe0.js'; -import { _ as Layer } from './controller-DItYvwe0.js'; -import { at as LayerBoundaries } from './controller-DItYvwe0.js'; -import { $ as LayerChangeCallbackParams } from './controller-DItYvwe0.js'; -import { a0 as LayerCommon } from './controller-DItYvwe0.js'; -import { ae as LayerFeature } from './controller-DItYvwe0.js'; -import { au as LayerFilters } from './controller-DItYvwe0.js'; -import { a1 as LayerGroup } from './controller-DItYvwe0.js'; -import { a2 as LayerGroupChangeCallbackParams } from './controller-DItYvwe0.js'; -import { aS as LayerGroupNode } from './controller-DItYvwe0.js'; -import { aT as LayerNode } from './controller-DItYvwe0.js'; -import { a3 as LayerProcessingStatus } from './controller-DItYvwe0.js'; -import { ag as LayerSchema } from './controller-DItYvwe0.js'; -import { ah as LayerSchemaAttribute } from './controller-DItYvwe0.js'; -import { ai as LayerSchemaBooleanAttribute } from './controller-DItYvwe0.js'; -import { aj as LayerSchemaCommonAttribute } from './controller-DItYvwe0.js'; -import { ak as LayerSchemaDateAttribute } from './controller-DItYvwe0.js'; -import { al as LayerSchemaDateTimeAttribute } from './controller-DItYvwe0.js'; -import { am as LayerSchemaNumericAttribute } from './controller-DItYvwe0.js'; -import { an as LayerSchemaTextAttribute } from './controller-DItYvwe0.js'; -import { aK as LayersController } from './controller-DItYvwe0.js'; -import { a4 as LegendDisplay } from './controller-DItYvwe0.js'; -import { a5 as LegendItem } from './controller-DItYvwe0.js'; -import { a6 as LegendItemChangeCallbackParams } from './controller-DItYvwe0.js'; -import { a7 as LegendItemIdentifier } from './controller-DItYvwe0.js'; -import { a8 as LegendItemsConstraint } from './controller-DItYvwe0.js'; -import { a$ as LineStringGeometry } from './controller-DItYvwe0.js'; -import { bd as LineToolSettings } from './controller-DItYvwe0.js'; -import { L as LinkElementRead } from './controller-DItYvwe0.js'; -import { b0 as LngLatTuple } from './controller-DItYvwe0.js'; -import { aL as MapDetails } from './controller-DItYvwe0.js'; -import { D as MapInteractionEvent } from './controller-DItYvwe0.js'; -import { M as MarkerElementCreate } from './controller-DItYvwe0.js'; -import { m as MarkerElementRead } from './controller-DItYvwe0.js'; -import { n as MarkerElementUpdate } from './controller-DItYvwe0.js'; -import { be as MarkerToolSettings } from './controller-DItYvwe0.js'; -import { aM as MiscController } from './controller-DItYvwe0.js'; -import { aH as MultiAggregationConfig } from './controller-DItYvwe0.js'; -import { b1 as MultiLineStringGeometry } from './controller-DItYvwe0.js'; -import { b2 as MultiPointGeometry } from './controller-DItYvwe0.js'; -import { b3 as MultiPolygonGeometry } from './controller-DItYvwe0.js'; -import { N as NoteElementCreate } from './controller-DItYvwe0.js'; -import { o as NoteElementRead } from './controller-DItYvwe0.js'; -import { p as NoteElementUpdate } from './controller-DItYvwe0.js'; -import { bf as NoteToolSettings } from './controller-DItYvwe0.js'; -import { bu as OnMapInteractionsOptions } from './controller-DItYvwe0.js'; -import { P as PathElementCreate } from './controller-DItYvwe0.js'; -import { q as PathElementRead } from './controller-DItYvwe0.js'; -import { r as PathElementUpdate } from './controller-DItYvwe0.js'; -import { bg as PinToolSettings } from './controller-DItYvwe0.js'; -import { s as PlaceElementCreate } from './controller-DItYvwe0.js'; -import { t as PlaceElementRead } from './controller-DItYvwe0.js'; -import { u as PlaceElementUpdate } from './controller-DItYvwe0.js'; -import { bh as PlaceFrame } from './controller-DItYvwe0.js'; -import { bx as PlacementForUIElement } from './controller-DItYvwe0.js'; -import { bi as PlaceSymbol } from './controller-DItYvwe0.js'; -import { b4 as PointGeometry } from './controller-DItYvwe0.js'; -import { v as PolygonElementCreate } from './controller-DItYvwe0.js'; -import { w as PolygonElementRead } from './controller-DItYvwe0.js'; -import { x as PolygonElementUpdate } from './controller-DItYvwe0.js'; -import { b5 as PolygonGeometry } from './controller-DItYvwe0.js'; -import { bj as PolygonToolSettings } from './controller-DItYvwe0.js'; -import { aI as PrecomputedAggregationMethod } from './controller-DItYvwe0.js'; -import { a9 as RasterBand } from './controller-DItYvwe0.js'; -import { aa as RasterLayer } from './controller-DItYvwe0.js'; -import { ab as RasterLayerSource } from './controller-DItYvwe0.js'; -import { af as RasterValue } from './controller-DItYvwe0.js'; -import { bk as RouteToolSettings } from './controller-DItYvwe0.js'; -import { aU as SelectionController } from './controller-DItYvwe0.js'; -import { ce as SetViewportCenterZoomParams } from './controller-DItYvwe0.js'; -import { b6 as SetVisibilityRequest } from './controller-DItYvwe0.js'; -import { b7 as SortConfig } from './controller-DItYvwe0.js'; -import { b8 as SortDirection } from './controller-DItYvwe0.js'; -import { T as TextElementCreate } from './controller-DItYvwe0.js'; -import { y as TextElementRead } from './controller-DItYvwe0.js'; -import { A as TextElementUpdate } from './controller-DItYvwe0.js'; -import { bl as TextToolSettings } from './controller-DItYvwe0.js'; -import { bp as ToolsController } from './controller-DItYvwe0.js'; -import { bm as ToolSettingsChangeEvent } from './controller-DItYvwe0.js'; -import { bn as ToolSettingsMap } from './controller-DItYvwe0.js'; -import { bo as ToolType } from './controller-DItYvwe0.js'; -import { cc as UIActionTriggerCreate } from './controller-DItYvwe0.js'; -import { bA as UIButtonElement } from './controller-DItYvwe0.js'; -import { bB as UIButtonElementCreate } from './controller-DItYvwe0.js'; -import { bC as UIButtonElementUpdate } from './controller-DItYvwe0.js'; -import { bY as UIButtonRowElement } from './controller-DItYvwe0.js'; -import { bZ as UIButtonRowElementCreate } from './controller-DItYvwe0.js'; -import { b_ as UIButtonRowElementUpdate } from './controller-DItYvwe0.js'; -import { b$ as UICheckboxGroupElement } from './controller-DItYvwe0.js'; -import { c0 as UICheckboxGroupElementCreate } from './controller-DItYvwe0.js'; -import { c1 as UICheckboxGroupElementUpdate } from './controller-DItYvwe0.js'; -import { cb as UIControlElementOption } from './controller-DItYvwe0.js'; -import { cd as UiController } from './controller-DItYvwe0.js'; -import { U as UiControlsOptions } from './controller-DItYvwe0.js'; -import { bJ as UIDividerElement } from './controller-DItYvwe0.js'; -import { bK as UIDividerElementCreate } from './controller-DItYvwe0.js'; -import { bL as UIDividerElementUpdate } from './controller-DItYvwe0.js'; -import { bG as UIFlexibleSpaceElement } from './controller-DItYvwe0.js'; -import { bH as UIFlexibleSpaceElementCreate } from './controller-DItYvwe0.js'; -import { bI as UIFlexibleSpaceElementUpdate } from './controller-DItYvwe0.js'; -import { bV as UIGridContainerElement } from './controller-DItYvwe0.js'; -import { bW as UIGridContainerElementCreate } from './controller-DItYvwe0.js'; -import { bX as UIGridContainerElementUpdate } from './controller-DItYvwe0.js'; -import { c8 as UIIframeElement } from './controller-DItYvwe0.js'; -import { c9 as UIIframeElementCreate } from './controller-DItYvwe0.js'; -import { ca as UIIframeElementUpdate } from './controller-DItYvwe0.js'; -import { by as UIPanel } from './controller-DItYvwe0.js'; -import { bz as UIPanelCreateOrUpdate } from './controller-DItYvwe0.js'; -import { bS as UIPanelElement } from './controller-DItYvwe0.js'; -import { bT as UIPanelElementCreate } from './controller-DItYvwe0.js'; -import { bU as UIPanelElementUpdate } from './controller-DItYvwe0.js'; -import { c2 as UIRadioGroupElement } from './controller-DItYvwe0.js'; -import { c3 as UIRadioGroupElementCreate } from './controller-DItYvwe0.js'; -import { c4 as UIRadioGroupElementUpdate } from './controller-DItYvwe0.js'; -import { bP as UISelectElement } from './controller-DItYvwe0.js'; -import { bQ as UISelectElementCreate } from './controller-DItYvwe0.js'; -import { bR as UISelectElementUpdate } from './controller-DItYvwe0.js'; -import { bD as UITextElement } from './controller-DItYvwe0.js'; -import { bE as UITextElementCreate } from './controller-DItYvwe0.js'; -import { bF as UITextElementUpdate } from './controller-DItYvwe0.js'; -import { bM as UITextInputElement } from './controller-DItYvwe0.js'; -import { bN as UITextInputElementCreate } from './controller-DItYvwe0.js'; -import { bO as UITextInputElementUpdate } from './controller-DItYvwe0.js'; -import { c5 as UIToggleGroupElement } from './controller-DItYvwe0.js'; -import { c6 as UIToggleGroupElementCreate } from './controller-DItYvwe0.js'; -import { c7 as UIToggleGroupElementUpdate } from './controller-DItYvwe0.js'; -import { bv as UpdateActionTriggerParams } from './controller-DItYvwe0.js'; -import { ac as UpdateLayerParams } from './controller-DItYvwe0.js'; -import { bw as UpdatePanelElementsParams } from './controller-DItYvwe0.js'; -import { aJ as ValueConfiguration } from './controller-DItYvwe0.js'; -import { ad as VectorLayer } from './controller-DItYvwe0.js'; -import { V as ViewportCenterZoom } from './controller-DItYvwe0.js'; -import { cf as ViewportConstraints } from './controller-DItYvwe0.js'; -import { ci as ViewportController } from './controller-DItYvwe0.js'; -import { cg as ViewportFitBoundsParams } from './controller-DItYvwe0.js'; -import { ch as ViewportState } from './controller-DItYvwe0.js'; -import { z } from './controller-DItYvwe0.js'; +import { av as AggregatedGridConfig } from './controller-DEmD9A5T.js'; +import { aw as AggregationConfig } from './controller-DEmD9A5T.js'; +import { ax as AggregationMethod } from './controller-DEmD9A5T.js'; +import { C as CircleElementCreate } from './controller-DEmD9A5T.js'; +import { a as CircleElementRead } from './controller-DEmD9A5T.js'; +import { b as CircleElementUpdate } from './controller-DEmD9A5T.js'; +import { b9 as CircleToolSettings } from './controller-DEmD9A5T.js'; +import { ba as ConfigurableToolType } from './controller-DEmD9A5T.js'; +import { ay as CountGridConfig } from './controller-DEmD9A5T.js'; +import { bq as CreateActionTriggerParams } from './controller-DEmD9A5T.js'; +import { br as CreateFeatureActionParams } from './controller-DEmD9A5T.js'; +import { K as CreateLayersFromGeoJsonParams } from './controller-DEmD9A5T.js'; +import { bs as CreateOrUpdatePanelParams } from './controller-DEmD9A5T.js'; +import { bt as CreatePanelElementsParams } from './controller-DEmD9A5T.js'; +import { O as DataOnlyLayer } from './controller-DEmD9A5T.js'; +import { bu as DeletePanelElementsParams } from './controller-DEmD9A5T.js'; +import { E as Element_2 } from './controller-DEmD9A5T.js'; +import { c as ElementChangeCallbackParams } from './controller-DEmD9A5T.js'; +import { d as ElementCreate } from './controller-DEmD9A5T.js'; +import { e as ElementGroup } from './controller-DEmD9A5T.js'; +import { f as ElementGroupChangeCallbackParams } from './controller-DEmD9A5T.js'; +import { aN as ElementGroupNode } from './controller-DEmD9A5T.js'; +import { aO as ElementNode } from './controller-DEmD9A5T.js'; +import { B as ElementsController } from './controller-DEmD9A5T.js'; +import { g as ElementUpdate } from './controller-DEmD9A5T.js'; +import { aP as EntityNode } from './controller-DEmD9A5T.js'; +import { aQ as FeatureNode } from './controller-DEmD9A5T.js'; +import { aR as FeatureSelection } from './controller-DEmD9A5T.js'; +import { aV as FeltBoundary } from './controller-DEmD9A5T.js'; +import { F as FeltController } from './controller-DEmD9A5T.js'; +import { Q as FeltTiledVectorSource } from './controller-DEmD9A5T.js'; +import { aW as FeltZoom } from './controller-DEmD9A5T.js'; +import { ao as FilterExpression } from './controller-DEmD9A5T.js'; +import { ap as FilterLogicGate } from './controller-DEmD9A5T.js'; +import { ar as Filters } from './controller-DEmD9A5T.js'; +import { aq as FilterTernary } from './controller-DEmD9A5T.js'; +import { R as GeoJsonDataVectorSource } from './controller-DEmD9A5T.js'; +import { aX as GeoJsonFeature } from './controller-DEmD9A5T.js'; +import { S as GeoJsonFileVectorSource } from './controller-DEmD9A5T.js'; +import { aY as GeoJsonGeometry } from './controller-DEmD9A5T.js'; +import { aZ as GeoJsonProperties } from './controller-DEmD9A5T.js'; +import { W as GeoJsonUrlVectorSource } from './controller-DEmD9A5T.js'; +import { as as GeometryFilter } from './controller-DEmD9A5T.js'; +import { G as GetElementGroupsConstraint } from './controller-DEmD9A5T.js'; +import { h as GetElementsConstraint } from './controller-DEmD9A5T.js'; +import { az as GetLayerCalculationParams } from './controller-DEmD9A5T.js'; +import { aA as GetLayerCategoriesGroup } from './controller-DEmD9A5T.js'; +import { aB as GetLayerCategoriesParams } from './controller-DEmD9A5T.js'; +import { X as GetLayerGroupsConstraint } from './controller-DEmD9A5T.js'; +import { aC as GetLayerHistogramBin } from './controller-DEmD9A5T.js'; +import { aD as GetLayerHistogramParams } from './controller-DEmD9A5T.js'; +import { aE as GetLayerPrecomputedCalculationParams } from './controller-DEmD9A5T.js'; +import { Y as GetLayersConstraint } from './controller-DEmD9A5T.js'; +import { Z as GetRenderedFeaturesConstraint } from './controller-DEmD9A5T.js'; +import { aF as GridConfig } from './controller-DEmD9A5T.js'; +import { aG as GridType } from './controller-DEmD9A5T.js'; +import { H as HighlighterElementCreate } from './controller-DEmD9A5T.js'; +import { i as HighlighterElementRead } from './controller-DEmD9A5T.js'; +import { j as HighlighterElementUpdate } from './controller-DEmD9A5T.js'; +import { bb as HighlighterToolSettings } from './controller-DEmD9A5T.js'; +import { I as ImageElementCreate } from './controller-DEmD9A5T.js'; +import { k as ImageElementRead } from './controller-DEmD9A5T.js'; +import { l as ImageElementUpdate } from './controller-DEmD9A5T.js'; +import { bc as InputToolSettings } from './controller-DEmD9A5T.js'; +import { J as InteractionsController } from './controller-DEmD9A5T.js'; +import { a_ as LatLng } from './controller-DEmD9A5T.js'; +import { _ as Layer } from './controller-DEmD9A5T.js'; +import { at as LayerBoundaries } from './controller-DEmD9A5T.js'; +import { $ as LayerChangeCallbackParams } from './controller-DEmD9A5T.js'; +import { a0 as LayerCommon } from './controller-DEmD9A5T.js'; +import { ae as LayerFeature } from './controller-DEmD9A5T.js'; +import { au as LayerFilters } from './controller-DEmD9A5T.js'; +import { a1 as LayerGroup } from './controller-DEmD9A5T.js'; +import { a2 as LayerGroupChangeCallbackParams } from './controller-DEmD9A5T.js'; +import { aS as LayerGroupNode } from './controller-DEmD9A5T.js'; +import { aT as LayerNode } from './controller-DEmD9A5T.js'; +import { a3 as LayerProcessingStatus } from './controller-DEmD9A5T.js'; +import { ag as LayerSchema } from './controller-DEmD9A5T.js'; +import { ah as LayerSchemaAttribute } from './controller-DEmD9A5T.js'; +import { ai as LayerSchemaBooleanAttribute } from './controller-DEmD9A5T.js'; +import { aj as LayerSchemaCommonAttribute } from './controller-DEmD9A5T.js'; +import { ak as LayerSchemaDateAttribute } from './controller-DEmD9A5T.js'; +import { al as LayerSchemaDateTimeAttribute } from './controller-DEmD9A5T.js'; +import { am as LayerSchemaNumericAttribute } from './controller-DEmD9A5T.js'; +import { an as LayerSchemaTextAttribute } from './controller-DEmD9A5T.js'; +import { aK as LayersController } from './controller-DEmD9A5T.js'; +import { a4 as LegendDisplay } from './controller-DEmD9A5T.js'; +import { a5 as LegendItem } from './controller-DEmD9A5T.js'; +import { a6 as LegendItemChangeCallbackParams } from './controller-DEmD9A5T.js'; +import { a7 as LegendItemIdentifier } from './controller-DEmD9A5T.js'; +import { a8 as LegendItemsConstraint } from './controller-DEmD9A5T.js'; +import { a$ as LineStringGeometry } from './controller-DEmD9A5T.js'; +import { bd as LineToolSettings } from './controller-DEmD9A5T.js'; +import { L as LinkElementRead } from './controller-DEmD9A5T.js'; +import { b0 as LngLatTuple } from './controller-DEmD9A5T.js'; +import { aL as MapDetails } from './controller-DEmD9A5T.js'; +import { D as MapInteractionEvent } from './controller-DEmD9A5T.js'; +import { M as MarkerElementCreate } from './controller-DEmD9A5T.js'; +import { m as MarkerElementRead } from './controller-DEmD9A5T.js'; +import { n as MarkerElementUpdate } from './controller-DEmD9A5T.js'; +import { be as MarkerToolSettings } from './controller-DEmD9A5T.js'; +import { aM as MiscController } from './controller-DEmD9A5T.js'; +import { aH as MultiAggregationConfig } from './controller-DEmD9A5T.js'; +import { b1 as MultiLineStringGeometry } from './controller-DEmD9A5T.js'; +import { b2 as MultiPointGeometry } from './controller-DEmD9A5T.js'; +import { b3 as MultiPolygonGeometry } from './controller-DEmD9A5T.js'; +import { N as NoteElementCreate } from './controller-DEmD9A5T.js'; +import { o as NoteElementRead } from './controller-DEmD9A5T.js'; +import { p as NoteElementUpdate } from './controller-DEmD9A5T.js'; +import { bf as NoteToolSettings } from './controller-DEmD9A5T.js'; +import { bv as OnMapInteractionsOptions } from './controller-DEmD9A5T.js'; +import { P as PathElementCreate } from './controller-DEmD9A5T.js'; +import { q as PathElementRead } from './controller-DEmD9A5T.js'; +import { r as PathElementUpdate } from './controller-DEmD9A5T.js'; +import { bg as PinToolSettings } from './controller-DEmD9A5T.js'; +import { s as PlaceElementCreate } from './controller-DEmD9A5T.js'; +import { t as PlaceElementRead } from './controller-DEmD9A5T.js'; +import { u as PlaceElementUpdate } from './controller-DEmD9A5T.js'; +import { bh as PlaceFrame } from './controller-DEmD9A5T.js'; +import { bz as PlacementForUIElement } from './controller-DEmD9A5T.js'; +import { bi as PlaceSymbol } from './controller-DEmD9A5T.js'; +import { b4 as PointGeometry } from './controller-DEmD9A5T.js'; +import { v as PolygonElementCreate } from './controller-DEmD9A5T.js'; +import { w as PolygonElementRead } from './controller-DEmD9A5T.js'; +import { x as PolygonElementUpdate } from './controller-DEmD9A5T.js'; +import { b5 as PolygonGeometry } from './controller-DEmD9A5T.js'; +import { bj as PolygonToolSettings } from './controller-DEmD9A5T.js'; +import { aI as PrecomputedAggregationMethod } from './controller-DEmD9A5T.js'; +import { a9 as RasterBand } from './controller-DEmD9A5T.js'; +import { aa as RasterLayer } from './controller-DEmD9A5T.js'; +import { ab as RasterLayerSource } from './controller-DEmD9A5T.js'; +import { af as RasterValue } from './controller-DEmD9A5T.js'; +import { bk as RouteToolSettings } from './controller-DEmD9A5T.js'; +import { aU as SelectionController } from './controller-DEmD9A5T.js'; +import { ci as SetViewportCenterZoomParams } from './controller-DEmD9A5T.js'; +import { b6 as SetVisibilityRequest } from './controller-DEmD9A5T.js'; +import { b7 as SortConfig } from './controller-DEmD9A5T.js'; +import { b8 as SortDirection } from './controller-DEmD9A5T.js'; +import { T as TextElementCreate } from './controller-DEmD9A5T.js'; +import { y as TextElementRead } from './controller-DEmD9A5T.js'; +import { A as TextElementUpdate } from './controller-DEmD9A5T.js'; +import { bl as TextToolSettings } from './controller-DEmD9A5T.js'; +import { bp as ToolsController } from './controller-DEmD9A5T.js'; +import { bm as ToolSettingsChangeEvent } from './controller-DEmD9A5T.js'; +import { bn as ToolSettingsMap } from './controller-DEmD9A5T.js'; +import { bo as ToolType } from './controller-DEmD9A5T.js'; +import { ce as UIActionTriggerCreate } from './controller-DEmD9A5T.js'; +import { bC as UIButtonElement } from './controller-DEmD9A5T.js'; +import { bD as UIButtonElementCreate } from './controller-DEmD9A5T.js'; +import { bE as UIButtonElementUpdate } from './controller-DEmD9A5T.js'; +import { b_ as UIButtonRowElement } from './controller-DEmD9A5T.js'; +import { b$ as UIButtonRowElementCreate } from './controller-DEmD9A5T.js'; +import { c0 as UIButtonRowElementUpdate } from './controller-DEmD9A5T.js'; +import { c1 as UICheckboxGroupElement } from './controller-DEmD9A5T.js'; +import { c2 as UICheckboxGroupElementCreate } from './controller-DEmD9A5T.js'; +import { c3 as UICheckboxGroupElementUpdate } from './controller-DEmD9A5T.js'; +import { cd as UIControlElementOption } from './controller-DEmD9A5T.js'; +import { ch as UiController } from './controller-DEmD9A5T.js'; +import { U as UiControlsOptions } from './controller-DEmD9A5T.js'; +import { bL as UIDividerElement } from './controller-DEmD9A5T.js'; +import { bM as UIDividerElementCreate } from './controller-DEmD9A5T.js'; +import { bN as UIDividerElementUpdate } from './controller-DEmD9A5T.js'; +import { cf as uiFeatureAction } from './controller-DEmD9A5T.js'; +import { cg as uiFeatureActionCreate } from './controller-DEmD9A5T.js'; +import { bI as UIFlexibleSpaceElement } from './controller-DEmD9A5T.js'; +import { bJ as UIFlexibleSpaceElementCreate } from './controller-DEmD9A5T.js'; +import { bK as UIFlexibleSpaceElementUpdate } from './controller-DEmD9A5T.js'; +import { bX as UIGridContainerElement } from './controller-DEmD9A5T.js'; +import { bY as UIGridContainerElementCreate } from './controller-DEmD9A5T.js'; +import { bZ as UIGridContainerElementUpdate } from './controller-DEmD9A5T.js'; +import { ca as UIIframeElement } from './controller-DEmD9A5T.js'; +import { cb as UIIframeElementCreate } from './controller-DEmD9A5T.js'; +import { cc as UIIframeElementUpdate } from './controller-DEmD9A5T.js'; +import { bA as UIPanel } from './controller-DEmD9A5T.js'; +import { bB as UIPanelCreateOrUpdate } from './controller-DEmD9A5T.js'; +import { bU as UIPanelElement } from './controller-DEmD9A5T.js'; +import { bV as UIPanelElementCreate } from './controller-DEmD9A5T.js'; +import { bW as UIPanelElementUpdate } from './controller-DEmD9A5T.js'; +import { c4 as UIRadioGroupElement } from './controller-DEmD9A5T.js'; +import { c5 as UIRadioGroupElementCreate } from './controller-DEmD9A5T.js'; +import { c6 as UIRadioGroupElementUpdate } from './controller-DEmD9A5T.js'; +import { bR as UISelectElement } from './controller-DEmD9A5T.js'; +import { bS as UISelectElementCreate } from './controller-DEmD9A5T.js'; +import { bT as UISelectElementUpdate } from './controller-DEmD9A5T.js'; +import { bF as UITextElement } from './controller-DEmD9A5T.js'; +import { bG as UITextElementCreate } from './controller-DEmD9A5T.js'; +import { bH as UITextElementUpdate } from './controller-DEmD9A5T.js'; +import { bO as UITextInputElement } from './controller-DEmD9A5T.js'; +import { bP as UITextInputElementCreate } from './controller-DEmD9A5T.js'; +import { bQ as UITextInputElementUpdate } from './controller-DEmD9A5T.js'; +import { c7 as UIToggleGroupElement } from './controller-DEmD9A5T.js'; +import { c8 as UIToggleGroupElementCreate } from './controller-DEmD9A5T.js'; +import { c9 as UIToggleGroupElementUpdate } from './controller-DEmD9A5T.js'; +import { bw as UpdateActionTriggerParams } from './controller-DEmD9A5T.js'; +import { bx as UpdateFeatureActionParams } from './controller-DEmD9A5T.js'; +import { ac as UpdateLayerParams } from './controller-DEmD9A5T.js'; +import { by as UpdatePanelElementsParams } from './controller-DEmD9A5T.js'; +import { aJ as ValueConfiguration } from './controller-DEmD9A5T.js'; +import { ad as VectorLayer } from './controller-DEmD9A5T.js'; +import { V as ViewportCenterZoom } from './controller-DEmD9A5T.js'; +import { cj as ViewportConstraints } from './controller-DEmD9A5T.js'; +import { cm as ViewportController } from './controller-DEmD9A5T.js'; +import { ck as ViewportFitBoundsParams } from './controller-DEmD9A5T.js'; +import { cl as ViewportState } from './controller-DEmD9A5T.js'; +import { z } from './controller-DEmD9A5T.js'; import { z as z_2 } from 'zod'; export { AggregatedGridConfig } @@ -227,7 +231,7 @@ export { CountGridConfig } export { CreateActionTriggerParams } -export { CreateFeatureContextualActionParams } +export { CreateFeatureActionParams } export { CreateLayersFromGeoJsonParams } @@ -700,7 +704,7 @@ export { UIToggleGroupElementUpdate } export { UpdateActionTriggerParams } -export { UpdateFeatureContextualActionParams } +export { UpdateFeatureActionParams } export { UpdateLayerParams } diff --git a/src/modules/ui/controller.ts b/src/modules/ui/controller.ts index feda0e91..c98e4730 100644 --- a/src/modules/ui/controller.ts +++ b/src/modules/ui/controller.ts @@ -2,14 +2,14 @@ import { method, methodWithListeners } from "~/lib/interface"; import type { SortConfig } from "~/modules/shared/types"; import type { CreateActionTriggerParams, - CreateFeatureContextualActionParams, + CreateFeatureActionParams, CreateOrUpdatePanelParams, CreatePanelElementsParams, DeletePanelElementsParams, UiControlsOptions, UiOnMapInteractionsOptions, UpdateActionTriggerParams, - UpdateFeatureContextualActionParams, + UpdateFeatureActionParams, UpdatePanelElementsParams, } from "./types"; import type { UIActionTriggerCreate } from "./uiElements/UIActionTrigger"; @@ -61,20 +61,17 @@ export const uiController = ( >(feltWindow, "updateActionTrigger"), deleteActionTrigger: method(feltWindow, "deleteActionTrigger"), - createFeatureContextualAction: methodWithListeners< - "createFeatureContextualAction", - CreateFeatureContextualActionParams, + createFeatureAction: methodWithListeners< + "createFeatureAction", + CreateFeatureActionParams, UIFeatureAction - >(feltWindow, "createFeatureContextualAction"), - updateFeatureContextualAction: methodWithListeners< - "updateFeatureContextualAction", - UpdateFeatureContextualActionParams, + >(feltWindow, "createFeatureAction"), + updateFeatureAction: methodWithListeners< + "updateFeatureAction", + UpdateFeatureActionParams, UIFeatureAction - >(feltWindow, "updateFeatureContextualAction"), - deleteFeatureContextualAction: method( - feltWindow, - "deleteFeatureContextualAction", - ), + >(feltWindow, "updateFeatureAction"), + deleteFeatureAction: method(feltWindow, "deleteFeatureAction"), }); /** @@ -165,19 +162,20 @@ export interface UiController { * * @example * ```typescript - * await felt.createFeatureContextualAction({ + * const myAction = await felt.createFeatureAction({ * action: { * label: "Edit feature", * onTrigger: async ({ featureId, layerId }) => { * console.log(`Editing feature ${featureId} in layer ${layerId}`); * }, + * layerIds: ["layer-1", "layer-2"], * }, * placement: { at: "start" }, // optional, defaults to { at: "end" } * }); * ``` */ - createFeatureContextualAction( - args: CreateFeatureContextualActionParams, + createFeatureAction( + args: CreateFeatureActionParams, ): Promise; /** @@ -192,14 +190,14 @@ export interface UiController { * * @example * ```typescript - * await felt.updateFeatureContextualAction({ + * await felt.updateFeatureAction({ * id: "my-action", * label: "Updated action label", // only label changes * }); * ``` */ - updateFeatureContextualAction( - args: UpdateFeatureContextualActionParams, + updateFeatureAction( + args: UpdateFeatureActionParams, ): Promise; /** @@ -209,10 +207,10 @@ export interface UiController { * * @example * ```typescript - * await felt.deleteFeatureContextualAction("my-action"); + * await felt.deleteFeatureAction("my-action"); * ``` */ - deleteFeatureContextualAction(id: string): void; + deleteFeatureAction(id: string): void; /** * Creates a panel ID. diff --git a/src/modules/ui/index.ts b/src/modules/ui/index.ts index 97441603..02f178d2 100644 --- a/src/modules/ui/index.ts +++ b/src/modules/ui/index.ts @@ -6,14 +6,14 @@ */ export type { CreateActionTriggerParams, - CreateFeatureContextualActionParams, + CreateFeatureActionParams, CreateOrUpdatePanelParams, CreatePanelElementsParams, DeletePanelElementsParams, UiOnMapInteractionsOptions as OnMapInteractionsOptions, UiControlsOptions, UpdateActionTriggerParams, - UpdateFeatureContextualActionParams, + UpdateFeatureActionParams, UpdatePanelElementsParams, } from "./types"; diff --git a/src/modules/ui/schema.ts b/src/modules/ui/schema.ts index f4070d7b..9f6d0705 100644 --- a/src/modules/ui/schema.ts +++ b/src/modules/ui/schema.ts @@ -5,14 +5,14 @@ import type { zInfer } from "~/lib/utils"; import { SortConfigSchema } from "../shared/types"; import { CreateActionTriggerParamsClonableSchema, - CreateFeatureContextualActionParamsClonableSchema, + CreateFeatureActionParamsClonableSchema, CreateOrUpdatePanelParamsClonableSchema, CreatePanelElementsClonableSchema, DeletePanelElementsParamsSchema, UiControlsOptionsSchema, UiOnMapInteractionsOptionsSchema, UpdateActionTriggerParamsClonableSchema, - UpdateFeatureContextualActionParamsClonableSchema, + UpdateFeatureActionParamsClonableSchema, UpdatePanelElementsParamsClonableSchema, } from "./types"; import type { uiActionTriggerSchema } from "./uiElements/UIActionTrigger"; @@ -34,18 +34,18 @@ const DeleteActionTriggerMessage = methodMessage( z.string(), ); -const CreateFeatureContextualActionMessage = methodMessage( - "createFeatureContextualAction", - CreateFeatureContextualActionParamsClonableSchema, +const CreateFeatureActionMessage = methodMessage( + "createFeatureAction", + CreateFeatureActionParamsClonableSchema, ); -const UpdateFeatureContextualActionMessage = methodMessage( - "updateFeatureContextualAction", - UpdateFeatureContextualActionParamsClonableSchema, +const UpdateFeatureActionMessage = methodMessage( + "updateFeatureAction", + UpdateFeatureActionParamsClonableSchema, ); -const DeleteFeatureContextualActionMessage = methodMessage( - "deleteFeatureContextualAction", +const DeleteFeatureActionMessage = methodMessage( + "deleteFeatureAction", z.string(), ); @@ -104,9 +104,9 @@ export const uiSchema = { UpdateActionTriggerMessage, DeleteActionTriggerMessage, - CreateFeatureContextualActionMessage, - UpdateFeatureContextualActionMessage, - DeleteFeatureContextualActionMessage, + CreateFeatureActionMessage, + UpdateFeatureActionMessage, + DeleteFeatureActionMessage, CreatePanelIdMessage, CreateOrUpdatePanelMessage, @@ -137,17 +137,15 @@ export type UiSchema = { >; deleteActionTrigger: Method>; - createFeatureContextualAction: Method< - zInfer, + createFeatureAction: Method< + zInfer, zInfer >; - updateFeatureContextualAction: Method< - zInfer, + updateFeatureAction: Method< + zInfer, zInfer >; - deleteFeatureContextualAction: Method< - zInfer - >; + deleteFeatureAction: Method>; createPanelId: Method>; createOrUpdatePanel: Method< diff --git a/src/modules/ui/types.ts b/src/modules/ui/types.ts index 6ba4d1c9..bcb74930 100644 --- a/src/modules/ui/types.ts +++ b/src/modules/ui/types.ts @@ -55,12 +55,12 @@ export interface UpdateActionTriggerParams id: zInfer["id"]; } -export const CreateFeatureContextualActionParamsSchema = z.object({ +export const CreateFeatureActionParamsSchema = z.object({ action: uiFeatureActionSchema.create, placement: placementForUiElementSchema.optional(), }); -export const CreateFeatureContextualActionParamsClonableSchema = z.object({ +export const CreateFeatureActionParamsClonableSchema = z.object({ action: uiFeatureActionSchema.clonable, placement: placementForUiElementSchema.optional(), }); @@ -68,24 +68,25 @@ export const CreateFeatureContextualActionParamsClonableSchema = z.object({ /** * @public */ -export interface CreateFeatureContextualActionParams - extends zInfer { +export interface CreateFeatureActionParams + extends zInfer { action: UIFeatureActionCreate; placement?: PlacementForUIElement; } -const UpdateFeatureContextualActionParamsSchema = - uiFeatureActionSchema.create.partial().required({ id: true }); +const UpdateFeatureActionParamsSchema = uiFeatureActionSchema.create + .partial() + .required({ id: true }); -export const UpdateFeatureContextualActionParamsClonableSchema = +export const UpdateFeatureActionParamsClonableSchema = uiFeatureActionSchema.clonable.partial().required({ id: true }); /** * @public */ -export interface UpdateFeatureContextualActionParams +export interface UpdateFeatureActionParams extends Omit, "id"> { - id: zInfer["id"]; + id: zInfer["id"]; } const CreateOrUpdatePanelParamsSchema = z.object({ diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index 473d0170..cdc1490d 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -1,5 +1,6 @@ import { z } from "zod"; import type { zInfer } from "~/lib/utils"; +import type { LayerFeature } from "~/modules/layers/features/types"; import type { UiController } from "../controller"; import { uiElementBaseCreateSchema, @@ -20,37 +21,37 @@ const uiFeatureActionBaseSchema = z.object({ */ onTrigger: z .function() - .args(z.object({ featureId: z.string(), layerId: z.string() })) + .args(z.object({ feature: z.custom() })) .returns(z.void()), + + /** + * The layers to add the action to. Optional. Defaults to all layers. + */ + layerIds: z.array(z.string()).optional(), + + /** + * The geometry type of the features to add the action to. Optional. Defaults to all geometry types. + */ + geometryTypes: z + .array(z.enum(["Polygon", "Line", "Point", "Raster"])) + .optional(), }); export const uiFeatureActionSchema = { read: uiElementBaseSchema .extend(uiFeatureActionBaseSchema.shape) - .extend({ - onTrigger: z - .function() - .args(z.object({ featureId: z.string(), layerId: z.string() })) - .returns(z.void()), - }), + .extend({ id: z.string() }), create: uiElementBaseCreateSchema.params .extend(uiFeatureActionBaseSchema.shape) - .extend({ type: z.undefined() }) // using partial() causes JSDoc to not appear - .extend({ - onTrigger: z - .function() - .args(z.object({ featureId: z.string(), layerId: z.string() })) - .returns(z.void()), - }), + .extend({ type: z.undefined() }), clonable: uiElementBaseCreateSchema.clonable .extend(uiFeatureActionBaseSchema.shape) - .extend({ type: z.undefined() }) - .extend({ onTrigger: z.string() }), + .extend({ type: z.undefined() }), }; /** * Represents a feature contextual action for creation. - * It can be added to the map by using the {@link UiController.createFeatureContextualAction} method. + * It can be added to the map by using the {@link UiController.createFeatureAction} method. * @public */ export interface UIFeatureActionCreate @@ -63,18 +64,16 @@ export interface UIFeatureActionCreate * The function to call when the contextual action is triggered. * * @param args - The arguments passed to the function. - * @param args.featureId - The id of the feature. - * @param args.layerId - The id of the layer. + * @param args.feature - The feature that was clicked. */ - onTrigger: (args: { featureId: string; layerId: string }) => void; + onTrigger: (args: { feature: LayerFeature }) => void; } /** * Represents a feature contextual action after creation (with generated id). * @public */ -export interface UIFeatureAction - extends UIFeatureActionCreate { +export interface UIFeatureAction extends UIFeatureActionCreate { /** * The unique identifier of the contextual action. */ From 492f64737a1d822f6d19add39e0e25a7041f77a8 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 15:33:31 -0400 Subject: [PATCH 03/10] rm unused --- src/modules/ui/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ui/types.ts b/src/modules/ui/types.ts index bcb74930..08201712 100644 --- a/src/modules/ui/types.ts +++ b/src/modules/ui/types.ts @@ -55,7 +55,7 @@ export interface UpdateActionTriggerParams id: zInfer["id"]; } -export const CreateFeatureActionParamsSchema = z.object({ +const CreateFeatureActionParamsSchema = z.object({ action: uiFeatureActionSchema.create, placement: placementForUiElementSchema.optional(), }); From fbe91de96b64deea13e333df893cfa51b4a9bc5d Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 15:57:42 -0400 Subject: [PATCH 04/10] wip --- src/modules/ui/types.ts | 4 +- src/modules/ui/uiElements/UIFeatureAction.ts | 47 ++++++++------------ 2 files changed, 19 insertions(+), 32 deletions(-) diff --git a/src/modules/ui/types.ts b/src/modules/ui/types.ts index 08201712..f8509548 100644 --- a/src/modules/ui/types.ts +++ b/src/modules/ui/types.ts @@ -74,9 +74,7 @@ export interface CreateFeatureActionParams placement?: PlacementForUIElement; } -const UpdateFeatureActionParamsSchema = uiFeatureActionSchema.create - .partial() - .required({ id: true }); +const UpdateFeatureActionParamsSchema = uiFeatureActionSchema.update; export const UpdateFeatureActionParamsClonableSchema = uiFeatureActionSchema.clonable.partial().required({ id: true }); diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index cdc1490d..d5145708 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -2,22 +2,18 @@ import { z } from "zod"; import type { zInfer } from "~/lib/utils"; import type { LayerFeature } from "~/modules/layers/features/types"; import type { UiController } from "../controller"; -import { - uiElementBaseCreateSchema, - uiElementBaseSchema, - type UIElementLifecycle, -} from "./base"; +import { uiElementBaseCreateSchema, uiElementBaseSchema } from "./base"; const uiFeatureActionBaseSchema = z.object({ - type: z.literal("FeatureContextualAction"), + type: z.literal("FeatureAction"), /** - * The label of the contextual action. + * The label of the feature action. */ label: z.string(), /** - * The function to call when the contextual action is triggered. + * The function to call when the feature action is triggered. */ onTrigger: z .function() @@ -50,32 +46,25 @@ export const uiFeatureActionSchema = { }; /** - * Represents a feature contextual action for creation. + * Represents a feature action for creation. * It can be added to the map by using the {@link UiController.createFeatureAction} method. + */ +export type UIFeatureActionCreate = zInfer< + typeof uiFeatureActionSchema.clonable +>; + +/** + * Represents a feature action after creation (with generated id). * @public */ -export interface UIFeatureActionCreate - extends UIElementLifecycle, - Omit< - zInfer, - "onCreate" | "onDestroy" | "id" - > { - /** - * The function to call when the contextual action is triggered. - * - * @param args - The arguments passed to the function. - * @param args.feature - The feature that was clicked. - */ - onTrigger: (args: { feature: LayerFeature }) => void; -} +export type UIFeatureAction = UIFeatureActionCreate & { + id: string; +}; /** - * Represents a feature contextual action after creation (with generated id). + * Represents a feature action after creation (with generated id). * @public */ -export interface UIFeatureAction extends UIFeatureActionCreate { - /** - * The unique identifier of the contextual action. - */ +export type UIFeatureActionUpdate = Partial & { id: string; -} +}; From 74706376a7d12879c32c1d911a5ab935a5948993 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 16:09:19 -0400 Subject: [PATCH 05/10] wip? --- docs/UI/README.md | 2 +- docs/UI/UpdateFeatureActionParams.md | 12 +- docs/UI/uiFeatureAction.md | 93 +---- docs/UI/uiFeatureActionCreate.md | 20 +- etc/js-sdk.api.md | 410 +++++++++---------- src/modules/ui/uiElements/UIFeatureAction.ts | 30 +- 6 files changed, 254 insertions(+), 313 deletions(-) diff --git a/docs/UI/README.md b/docs/UI/README.md index 7b708a80..7a457afd 100644 --- a/docs/UI/README.md +++ b/docs/UI/README.md @@ -33,7 +33,6 @@ UI features such as the legend and the full screen button. * [UIDividerElementCreate](UIDividerElementCreate.md) * [UIDividerElementUpdate](UIDividerElementUpdate.md) * [uiFeatureActionCreate](uiFeatureActionCreate.md) -* [uiFeatureAction](uiFeatureAction.md) * [UIFlexibleSpaceElement](UIFlexibleSpaceElement.md) * [UIFlexibleSpaceElementCreate](UIFlexibleSpaceElementCreate.md) * [UIFlexibleSpaceElementUpdate](UIFlexibleSpaceElementUpdate.md) @@ -64,6 +63,7 @@ UI features such as the legend and the full screen button. # Type Aliases +* [uiFeatureAction](uiFeatureAction.md) * [PlacementForUIElement](PlacementForUIElement.md) * [UIPanelElement](UIPanelElement.md) * [UIPanelElementCreate](UIPanelElementCreate.md) diff --git a/docs/UI/UpdateFeatureActionParams.md b/docs/UI/UpdateFeatureActionParams.md index ca2bff2f..70fa41ba 100644 --- a/docs/UI/UpdateFeatureActionParams.md +++ b/docs/UI/UpdateFeatureActionParams.md @@ -12,7 +12,7 @@ > `optional` **label**: `string` -The label of the contextual action. +The label of the feature action. *** @@ -42,14 +42,14 @@ The geometry type of the features to add the action to. Optional. Defaults to al > `optional` **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` -The function to call when the contextual action is triggered. +The function to call when the feature action is triggered. ### Parameters -| Parameter | Type | Description | -| -------------- | ------------------------------------------------------------ | ------------------------------------- | -| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | -| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that was clicked. | +| Parameter | Type | Description | +| -------------- | ------------------------------------------------------------ | -------------------------------------- | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that triggered the action. | ### Returns diff --git a/docs/UI/uiFeatureAction.md b/docs/UI/uiFeatureAction.md index 3c515910..e3bdb707 100644 --- a/docs/UI/uiFeatureAction.md +++ b/docs/UI/uiFeatureAction.md @@ -1,98 +1,11 @@ *** -Represents a feature contextual action after creation (with generated id). +> **uiFeatureAction**: [`uiFeatureActionCreate`](uiFeatureActionCreate.md) & \{ `id`: `string`; } -# Properties +Represents a feature action after creation (with generated id). -## label - -> **label**: `string` - -The label of the contextual action. - -*** - -## onTrigger() - -> **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` - -The function to call when the contextual action is triggered. - -### Parameters - -| Parameter | Type | Description | -| -------------- | ------------------------------------------------------------ | ------------------------------------- | -| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | -| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that was clicked. | - -### Returns - -`void` - -*** +# Type declaration ## id > **id**: `string` - -The unique identifier of the contextual action. - -*** - -## layerIds? - -> `optional` **layerIds**: `string`\[] - -The layers to add the action to. Optional. Defaults to all layers. - -*** - -## geometryTypes? - -> `optional` **geometryTypes**: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[] - -The geometry type of the features to add the action to. Optional. Defaults to all geometry types. - -*** - -## type? - -> `optional` **type**: `undefined` - -*** - -## onCreate()? - -> `optional` **onCreate**: (`args`: \{ `id`: `string`; }) => `void` - -A function to call when the element is created. - -### Parameters - -| Parameter | Type | Description | -| --------- | -------------------- | ------------------------------------- | -| `args` | \{ `id`: `string`; } | The arguments passed to the function. | -| `args.id` | `string` | The id of the element. | - -### Returns - -`void` - -*** - -## onDestroy()? - -> `optional` **onDestroy**: (`args`: \{ `id`: `string`; }) => `void` - -A function to call when the element is destroyed. - -### Parameters - -| Parameter | Type | Description | -| --------- | -------------------- | ------------------------------------- | -| `args` | \{ `id`: `string`; } | The arguments passed to the function. | -| `args.id` | `string` | The id of the element. | - -### Returns - -`void` diff --git a/docs/UI/uiFeatureActionCreate.md b/docs/UI/uiFeatureActionCreate.md index 590c55bc..9318786f 100644 --- a/docs/UI/uiFeatureActionCreate.md +++ b/docs/UI/uiFeatureActionCreate.md @@ -1,6 +1,6 @@ *** -Represents a feature contextual action for creation. +Represents a feature action for creation. It can be added to the map by using the [UiController.createFeatureAction](UiController.md#createfeatureaction) method. # Properties @@ -9,7 +9,7 @@ It can be added to the map by using the [UiController.createFeatureAction](UiCon > **label**: `string` -The label of the contextual action. +The label of the feature action. *** @@ -17,14 +17,14 @@ The label of the contextual action. > **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` -The function to call when the contextual action is triggered. +The function to call when the feature action is triggered. ### Parameters -| Parameter | Type | Description | -| -------------- | ------------------------------------------------------------ | ------------------------------------- | -| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | -| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that was clicked. | +| Parameter | Type | Description | +| -------------- | ------------------------------------------------------------ | -------------------------------------- | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that triggered the action. | ### Returns @@ -32,6 +32,12 @@ The function to call when the contextual action is triggered. *** +## id? + +> `optional` **id**: `string` + +*** + ## layerIds? > `optional` **layerIds**: `string`\[] diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index 95681250..53575a9a 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -4,211 +4,211 @@ ```ts -import { av as AggregatedGridConfig } from './controller-DEmD9A5T.js'; -import { aw as AggregationConfig } from './controller-DEmD9A5T.js'; -import { ax as AggregationMethod } from './controller-DEmD9A5T.js'; -import { C as CircleElementCreate } from './controller-DEmD9A5T.js'; -import { a as CircleElementRead } from './controller-DEmD9A5T.js'; -import { b as CircleElementUpdate } from './controller-DEmD9A5T.js'; -import { b9 as CircleToolSettings } from './controller-DEmD9A5T.js'; -import { ba as ConfigurableToolType } from './controller-DEmD9A5T.js'; -import { ay as CountGridConfig } from './controller-DEmD9A5T.js'; -import { bq as CreateActionTriggerParams } from './controller-DEmD9A5T.js'; -import { br as CreateFeatureActionParams } from './controller-DEmD9A5T.js'; -import { K as CreateLayersFromGeoJsonParams } from './controller-DEmD9A5T.js'; -import { bs as CreateOrUpdatePanelParams } from './controller-DEmD9A5T.js'; -import { bt as CreatePanelElementsParams } from './controller-DEmD9A5T.js'; -import { O as DataOnlyLayer } from './controller-DEmD9A5T.js'; -import { bu as DeletePanelElementsParams } from './controller-DEmD9A5T.js'; -import { E as Element_2 } from './controller-DEmD9A5T.js'; -import { c as ElementChangeCallbackParams } from './controller-DEmD9A5T.js'; -import { d as ElementCreate } from './controller-DEmD9A5T.js'; -import { e as ElementGroup } from './controller-DEmD9A5T.js'; -import { f as ElementGroupChangeCallbackParams } from './controller-DEmD9A5T.js'; -import { aN as ElementGroupNode } from './controller-DEmD9A5T.js'; -import { aO as ElementNode } from './controller-DEmD9A5T.js'; -import { B as ElementsController } from './controller-DEmD9A5T.js'; -import { g as ElementUpdate } from './controller-DEmD9A5T.js'; -import { aP as EntityNode } from './controller-DEmD9A5T.js'; -import { aQ as FeatureNode } from './controller-DEmD9A5T.js'; -import { aR as FeatureSelection } from './controller-DEmD9A5T.js'; -import { aV as FeltBoundary } from './controller-DEmD9A5T.js'; -import { F as FeltController } from './controller-DEmD9A5T.js'; -import { Q as FeltTiledVectorSource } from './controller-DEmD9A5T.js'; -import { aW as FeltZoom } from './controller-DEmD9A5T.js'; -import { ao as FilterExpression } from './controller-DEmD9A5T.js'; -import { ap as FilterLogicGate } from './controller-DEmD9A5T.js'; -import { ar as Filters } from './controller-DEmD9A5T.js'; -import { aq as FilterTernary } from './controller-DEmD9A5T.js'; -import { R as GeoJsonDataVectorSource } from './controller-DEmD9A5T.js'; -import { aX as GeoJsonFeature } from './controller-DEmD9A5T.js'; -import { S as GeoJsonFileVectorSource } from './controller-DEmD9A5T.js'; -import { aY as GeoJsonGeometry } from './controller-DEmD9A5T.js'; -import { aZ as GeoJsonProperties } from './controller-DEmD9A5T.js'; -import { W as GeoJsonUrlVectorSource } from './controller-DEmD9A5T.js'; -import { as as GeometryFilter } from './controller-DEmD9A5T.js'; -import { G as GetElementGroupsConstraint } from './controller-DEmD9A5T.js'; -import { h as GetElementsConstraint } from './controller-DEmD9A5T.js'; -import { az as GetLayerCalculationParams } from './controller-DEmD9A5T.js'; -import { aA as GetLayerCategoriesGroup } from './controller-DEmD9A5T.js'; -import { aB as GetLayerCategoriesParams } from './controller-DEmD9A5T.js'; -import { X as GetLayerGroupsConstraint } from './controller-DEmD9A5T.js'; -import { aC as GetLayerHistogramBin } from './controller-DEmD9A5T.js'; -import { aD as GetLayerHistogramParams } from './controller-DEmD9A5T.js'; -import { aE as GetLayerPrecomputedCalculationParams } from './controller-DEmD9A5T.js'; -import { Y as GetLayersConstraint } from './controller-DEmD9A5T.js'; -import { Z as GetRenderedFeaturesConstraint } from './controller-DEmD9A5T.js'; -import { aF as GridConfig } from './controller-DEmD9A5T.js'; -import { aG as GridType } from './controller-DEmD9A5T.js'; -import { H as HighlighterElementCreate } from './controller-DEmD9A5T.js'; -import { i as HighlighterElementRead } from './controller-DEmD9A5T.js'; -import { j as HighlighterElementUpdate } from './controller-DEmD9A5T.js'; -import { bb as HighlighterToolSettings } from './controller-DEmD9A5T.js'; -import { I as ImageElementCreate } from './controller-DEmD9A5T.js'; -import { k as ImageElementRead } from './controller-DEmD9A5T.js'; -import { l as ImageElementUpdate } from './controller-DEmD9A5T.js'; -import { bc as InputToolSettings } from './controller-DEmD9A5T.js'; -import { J as InteractionsController } from './controller-DEmD9A5T.js'; -import { a_ as LatLng } from './controller-DEmD9A5T.js'; -import { _ as Layer } from './controller-DEmD9A5T.js'; -import { at as LayerBoundaries } from './controller-DEmD9A5T.js'; -import { $ as LayerChangeCallbackParams } from './controller-DEmD9A5T.js'; -import { a0 as LayerCommon } from './controller-DEmD9A5T.js'; -import { ae as LayerFeature } from './controller-DEmD9A5T.js'; -import { au as LayerFilters } from './controller-DEmD9A5T.js'; -import { a1 as LayerGroup } from './controller-DEmD9A5T.js'; -import { a2 as LayerGroupChangeCallbackParams } from './controller-DEmD9A5T.js'; -import { aS as LayerGroupNode } from './controller-DEmD9A5T.js'; -import { aT as LayerNode } from './controller-DEmD9A5T.js'; -import { a3 as LayerProcessingStatus } from './controller-DEmD9A5T.js'; -import { ag as LayerSchema } from './controller-DEmD9A5T.js'; -import { ah as LayerSchemaAttribute } from './controller-DEmD9A5T.js'; -import { ai as LayerSchemaBooleanAttribute } from './controller-DEmD9A5T.js'; -import { aj as LayerSchemaCommonAttribute } from './controller-DEmD9A5T.js'; -import { ak as LayerSchemaDateAttribute } from './controller-DEmD9A5T.js'; -import { al as LayerSchemaDateTimeAttribute } from './controller-DEmD9A5T.js'; -import { am as LayerSchemaNumericAttribute } from './controller-DEmD9A5T.js'; -import { an as LayerSchemaTextAttribute } from './controller-DEmD9A5T.js'; -import { aK as LayersController } from './controller-DEmD9A5T.js'; -import { a4 as LegendDisplay } from './controller-DEmD9A5T.js'; -import { a5 as LegendItem } from './controller-DEmD9A5T.js'; -import { a6 as LegendItemChangeCallbackParams } from './controller-DEmD9A5T.js'; -import { a7 as LegendItemIdentifier } from './controller-DEmD9A5T.js'; -import { a8 as LegendItemsConstraint } from './controller-DEmD9A5T.js'; -import { a$ as LineStringGeometry } from './controller-DEmD9A5T.js'; -import { bd as LineToolSettings } from './controller-DEmD9A5T.js'; -import { L as LinkElementRead } from './controller-DEmD9A5T.js'; -import { b0 as LngLatTuple } from './controller-DEmD9A5T.js'; -import { aL as MapDetails } from './controller-DEmD9A5T.js'; -import { D as MapInteractionEvent } from './controller-DEmD9A5T.js'; -import { M as MarkerElementCreate } from './controller-DEmD9A5T.js'; -import { m as MarkerElementRead } from './controller-DEmD9A5T.js'; -import { n as MarkerElementUpdate } from './controller-DEmD9A5T.js'; -import { be as MarkerToolSettings } from './controller-DEmD9A5T.js'; -import { aM as MiscController } from './controller-DEmD9A5T.js'; -import { aH as MultiAggregationConfig } from './controller-DEmD9A5T.js'; -import { b1 as MultiLineStringGeometry } from './controller-DEmD9A5T.js'; -import { b2 as MultiPointGeometry } from './controller-DEmD9A5T.js'; -import { b3 as MultiPolygonGeometry } from './controller-DEmD9A5T.js'; -import { N as NoteElementCreate } from './controller-DEmD9A5T.js'; -import { o as NoteElementRead } from './controller-DEmD9A5T.js'; -import { p as NoteElementUpdate } from './controller-DEmD9A5T.js'; -import { bf as NoteToolSettings } from './controller-DEmD9A5T.js'; -import { bv as OnMapInteractionsOptions } from './controller-DEmD9A5T.js'; -import { P as PathElementCreate } from './controller-DEmD9A5T.js'; -import { q as PathElementRead } from './controller-DEmD9A5T.js'; -import { r as PathElementUpdate } from './controller-DEmD9A5T.js'; -import { bg as PinToolSettings } from './controller-DEmD9A5T.js'; -import { s as PlaceElementCreate } from './controller-DEmD9A5T.js'; -import { t as PlaceElementRead } from './controller-DEmD9A5T.js'; -import { u as PlaceElementUpdate } from './controller-DEmD9A5T.js'; -import { bh as PlaceFrame } from './controller-DEmD9A5T.js'; -import { bz as PlacementForUIElement } from './controller-DEmD9A5T.js'; -import { bi as PlaceSymbol } from './controller-DEmD9A5T.js'; -import { b4 as PointGeometry } from './controller-DEmD9A5T.js'; -import { v as PolygonElementCreate } from './controller-DEmD9A5T.js'; -import { w as PolygonElementRead } from './controller-DEmD9A5T.js'; -import { x as PolygonElementUpdate } from './controller-DEmD9A5T.js'; -import { b5 as PolygonGeometry } from './controller-DEmD9A5T.js'; -import { bj as PolygonToolSettings } from './controller-DEmD9A5T.js'; -import { aI as PrecomputedAggregationMethod } from './controller-DEmD9A5T.js'; -import { a9 as RasterBand } from './controller-DEmD9A5T.js'; -import { aa as RasterLayer } from './controller-DEmD9A5T.js'; -import { ab as RasterLayerSource } from './controller-DEmD9A5T.js'; -import { af as RasterValue } from './controller-DEmD9A5T.js'; -import { bk as RouteToolSettings } from './controller-DEmD9A5T.js'; -import { aU as SelectionController } from './controller-DEmD9A5T.js'; -import { ci as SetViewportCenterZoomParams } from './controller-DEmD9A5T.js'; -import { b6 as SetVisibilityRequest } from './controller-DEmD9A5T.js'; -import { b7 as SortConfig } from './controller-DEmD9A5T.js'; -import { b8 as SortDirection } from './controller-DEmD9A5T.js'; -import { T as TextElementCreate } from './controller-DEmD9A5T.js'; -import { y as TextElementRead } from './controller-DEmD9A5T.js'; -import { A as TextElementUpdate } from './controller-DEmD9A5T.js'; -import { bl as TextToolSettings } from './controller-DEmD9A5T.js'; -import { bp as ToolsController } from './controller-DEmD9A5T.js'; -import { bm as ToolSettingsChangeEvent } from './controller-DEmD9A5T.js'; -import { bn as ToolSettingsMap } from './controller-DEmD9A5T.js'; -import { bo as ToolType } from './controller-DEmD9A5T.js'; -import { ce as UIActionTriggerCreate } from './controller-DEmD9A5T.js'; -import { bC as UIButtonElement } from './controller-DEmD9A5T.js'; -import { bD as UIButtonElementCreate } from './controller-DEmD9A5T.js'; -import { bE as UIButtonElementUpdate } from './controller-DEmD9A5T.js'; -import { b_ as UIButtonRowElement } from './controller-DEmD9A5T.js'; -import { b$ as UIButtonRowElementCreate } from './controller-DEmD9A5T.js'; -import { c0 as UIButtonRowElementUpdate } from './controller-DEmD9A5T.js'; -import { c1 as UICheckboxGroupElement } from './controller-DEmD9A5T.js'; -import { c2 as UICheckboxGroupElementCreate } from './controller-DEmD9A5T.js'; -import { c3 as UICheckboxGroupElementUpdate } from './controller-DEmD9A5T.js'; -import { cd as UIControlElementOption } from './controller-DEmD9A5T.js'; -import { ch as UiController } from './controller-DEmD9A5T.js'; -import { U as UiControlsOptions } from './controller-DEmD9A5T.js'; -import { bL as UIDividerElement } from './controller-DEmD9A5T.js'; -import { bM as UIDividerElementCreate } from './controller-DEmD9A5T.js'; -import { bN as UIDividerElementUpdate } from './controller-DEmD9A5T.js'; -import { cf as uiFeatureAction } from './controller-DEmD9A5T.js'; -import { cg as uiFeatureActionCreate } from './controller-DEmD9A5T.js'; -import { bI as UIFlexibleSpaceElement } from './controller-DEmD9A5T.js'; -import { bJ as UIFlexibleSpaceElementCreate } from './controller-DEmD9A5T.js'; -import { bK as UIFlexibleSpaceElementUpdate } from './controller-DEmD9A5T.js'; -import { bX as UIGridContainerElement } from './controller-DEmD9A5T.js'; -import { bY as UIGridContainerElementCreate } from './controller-DEmD9A5T.js'; -import { bZ as UIGridContainerElementUpdate } from './controller-DEmD9A5T.js'; -import { ca as UIIframeElement } from './controller-DEmD9A5T.js'; -import { cb as UIIframeElementCreate } from './controller-DEmD9A5T.js'; -import { cc as UIIframeElementUpdate } from './controller-DEmD9A5T.js'; -import { bA as UIPanel } from './controller-DEmD9A5T.js'; -import { bB as UIPanelCreateOrUpdate } from './controller-DEmD9A5T.js'; -import { bU as UIPanelElement } from './controller-DEmD9A5T.js'; -import { bV as UIPanelElementCreate } from './controller-DEmD9A5T.js'; -import { bW as UIPanelElementUpdate } from './controller-DEmD9A5T.js'; -import { c4 as UIRadioGroupElement } from './controller-DEmD9A5T.js'; -import { c5 as UIRadioGroupElementCreate } from './controller-DEmD9A5T.js'; -import { c6 as UIRadioGroupElementUpdate } from './controller-DEmD9A5T.js'; -import { bR as UISelectElement } from './controller-DEmD9A5T.js'; -import { bS as UISelectElementCreate } from './controller-DEmD9A5T.js'; -import { bT as UISelectElementUpdate } from './controller-DEmD9A5T.js'; -import { bF as UITextElement } from './controller-DEmD9A5T.js'; -import { bG as UITextElementCreate } from './controller-DEmD9A5T.js'; -import { bH as UITextElementUpdate } from './controller-DEmD9A5T.js'; -import { bO as UITextInputElement } from './controller-DEmD9A5T.js'; -import { bP as UITextInputElementCreate } from './controller-DEmD9A5T.js'; -import { bQ as UITextInputElementUpdate } from './controller-DEmD9A5T.js'; -import { c7 as UIToggleGroupElement } from './controller-DEmD9A5T.js'; -import { c8 as UIToggleGroupElementCreate } from './controller-DEmD9A5T.js'; -import { c9 as UIToggleGroupElementUpdate } from './controller-DEmD9A5T.js'; -import { bw as UpdateActionTriggerParams } from './controller-DEmD9A5T.js'; -import { bx as UpdateFeatureActionParams } from './controller-DEmD9A5T.js'; -import { ac as UpdateLayerParams } from './controller-DEmD9A5T.js'; -import { by as UpdatePanelElementsParams } from './controller-DEmD9A5T.js'; -import { aJ as ValueConfiguration } from './controller-DEmD9A5T.js'; -import { ad as VectorLayer } from './controller-DEmD9A5T.js'; -import { V as ViewportCenterZoom } from './controller-DEmD9A5T.js'; -import { cj as ViewportConstraints } from './controller-DEmD9A5T.js'; -import { cm as ViewportController } from './controller-DEmD9A5T.js'; -import { ck as ViewportFitBoundsParams } from './controller-DEmD9A5T.js'; -import { cl as ViewportState } from './controller-DEmD9A5T.js'; -import { z } from './controller-DEmD9A5T.js'; +import { av as AggregatedGridConfig } from './controller-Bc-OvuWN.js'; +import { aw as AggregationConfig } from './controller-Bc-OvuWN.js'; +import { ax as AggregationMethod } from './controller-Bc-OvuWN.js'; +import { C as CircleElementCreate } from './controller-Bc-OvuWN.js'; +import { a as CircleElementRead } from './controller-Bc-OvuWN.js'; +import { b as CircleElementUpdate } from './controller-Bc-OvuWN.js'; +import { b9 as CircleToolSettings } from './controller-Bc-OvuWN.js'; +import { ba as ConfigurableToolType } from './controller-Bc-OvuWN.js'; +import { ay as CountGridConfig } from './controller-Bc-OvuWN.js'; +import { bq as CreateActionTriggerParams } from './controller-Bc-OvuWN.js'; +import { br as CreateFeatureActionParams } from './controller-Bc-OvuWN.js'; +import { K as CreateLayersFromGeoJsonParams } from './controller-Bc-OvuWN.js'; +import { bs as CreateOrUpdatePanelParams } from './controller-Bc-OvuWN.js'; +import { bt as CreatePanelElementsParams } from './controller-Bc-OvuWN.js'; +import { O as DataOnlyLayer } from './controller-Bc-OvuWN.js'; +import { bu as DeletePanelElementsParams } from './controller-Bc-OvuWN.js'; +import { E as Element_2 } from './controller-Bc-OvuWN.js'; +import { c as ElementChangeCallbackParams } from './controller-Bc-OvuWN.js'; +import { d as ElementCreate } from './controller-Bc-OvuWN.js'; +import { e as ElementGroup } from './controller-Bc-OvuWN.js'; +import { f as ElementGroupChangeCallbackParams } from './controller-Bc-OvuWN.js'; +import { aN as ElementGroupNode } from './controller-Bc-OvuWN.js'; +import { aO as ElementNode } from './controller-Bc-OvuWN.js'; +import { B as ElementsController } from './controller-Bc-OvuWN.js'; +import { g as ElementUpdate } from './controller-Bc-OvuWN.js'; +import { aP as EntityNode } from './controller-Bc-OvuWN.js'; +import { aQ as FeatureNode } from './controller-Bc-OvuWN.js'; +import { aR as FeatureSelection } from './controller-Bc-OvuWN.js'; +import { aV as FeltBoundary } from './controller-Bc-OvuWN.js'; +import { F as FeltController } from './controller-Bc-OvuWN.js'; +import { Q as FeltTiledVectorSource } from './controller-Bc-OvuWN.js'; +import { aW as FeltZoom } from './controller-Bc-OvuWN.js'; +import { ao as FilterExpression } from './controller-Bc-OvuWN.js'; +import { ap as FilterLogicGate } from './controller-Bc-OvuWN.js'; +import { ar as Filters } from './controller-Bc-OvuWN.js'; +import { aq as FilterTernary } from './controller-Bc-OvuWN.js'; +import { R as GeoJsonDataVectorSource } from './controller-Bc-OvuWN.js'; +import { aX as GeoJsonFeature } from './controller-Bc-OvuWN.js'; +import { S as GeoJsonFileVectorSource } from './controller-Bc-OvuWN.js'; +import { aY as GeoJsonGeometry } from './controller-Bc-OvuWN.js'; +import { aZ as GeoJsonProperties } from './controller-Bc-OvuWN.js'; +import { W as GeoJsonUrlVectorSource } from './controller-Bc-OvuWN.js'; +import { as as GeometryFilter } from './controller-Bc-OvuWN.js'; +import { G as GetElementGroupsConstraint } from './controller-Bc-OvuWN.js'; +import { h as GetElementsConstraint } from './controller-Bc-OvuWN.js'; +import { az as GetLayerCalculationParams } from './controller-Bc-OvuWN.js'; +import { aA as GetLayerCategoriesGroup } from './controller-Bc-OvuWN.js'; +import { aB as GetLayerCategoriesParams } from './controller-Bc-OvuWN.js'; +import { X as GetLayerGroupsConstraint } from './controller-Bc-OvuWN.js'; +import { aC as GetLayerHistogramBin } from './controller-Bc-OvuWN.js'; +import { aD as GetLayerHistogramParams } from './controller-Bc-OvuWN.js'; +import { aE as GetLayerPrecomputedCalculationParams } from './controller-Bc-OvuWN.js'; +import { Y as GetLayersConstraint } from './controller-Bc-OvuWN.js'; +import { Z as GetRenderedFeaturesConstraint } from './controller-Bc-OvuWN.js'; +import { aF as GridConfig } from './controller-Bc-OvuWN.js'; +import { aG as GridType } from './controller-Bc-OvuWN.js'; +import { H as HighlighterElementCreate } from './controller-Bc-OvuWN.js'; +import { i as HighlighterElementRead } from './controller-Bc-OvuWN.js'; +import { j as HighlighterElementUpdate } from './controller-Bc-OvuWN.js'; +import { bb as HighlighterToolSettings } from './controller-Bc-OvuWN.js'; +import { I as ImageElementCreate } from './controller-Bc-OvuWN.js'; +import { k as ImageElementRead } from './controller-Bc-OvuWN.js'; +import { l as ImageElementUpdate } from './controller-Bc-OvuWN.js'; +import { bc as InputToolSettings } from './controller-Bc-OvuWN.js'; +import { J as InteractionsController } from './controller-Bc-OvuWN.js'; +import { a_ as LatLng } from './controller-Bc-OvuWN.js'; +import { _ as Layer } from './controller-Bc-OvuWN.js'; +import { at as LayerBoundaries } from './controller-Bc-OvuWN.js'; +import { $ as LayerChangeCallbackParams } from './controller-Bc-OvuWN.js'; +import { a0 as LayerCommon } from './controller-Bc-OvuWN.js'; +import { ae as LayerFeature } from './controller-Bc-OvuWN.js'; +import { au as LayerFilters } from './controller-Bc-OvuWN.js'; +import { a1 as LayerGroup } from './controller-Bc-OvuWN.js'; +import { a2 as LayerGroupChangeCallbackParams } from './controller-Bc-OvuWN.js'; +import { aS as LayerGroupNode } from './controller-Bc-OvuWN.js'; +import { aT as LayerNode } from './controller-Bc-OvuWN.js'; +import { a3 as LayerProcessingStatus } from './controller-Bc-OvuWN.js'; +import { ag as LayerSchema } from './controller-Bc-OvuWN.js'; +import { ah as LayerSchemaAttribute } from './controller-Bc-OvuWN.js'; +import { ai as LayerSchemaBooleanAttribute } from './controller-Bc-OvuWN.js'; +import { aj as LayerSchemaCommonAttribute } from './controller-Bc-OvuWN.js'; +import { ak as LayerSchemaDateAttribute } from './controller-Bc-OvuWN.js'; +import { al as LayerSchemaDateTimeAttribute } from './controller-Bc-OvuWN.js'; +import { am as LayerSchemaNumericAttribute } from './controller-Bc-OvuWN.js'; +import { an as LayerSchemaTextAttribute } from './controller-Bc-OvuWN.js'; +import { aK as LayersController } from './controller-Bc-OvuWN.js'; +import { a4 as LegendDisplay } from './controller-Bc-OvuWN.js'; +import { a5 as LegendItem } from './controller-Bc-OvuWN.js'; +import { a6 as LegendItemChangeCallbackParams } from './controller-Bc-OvuWN.js'; +import { a7 as LegendItemIdentifier } from './controller-Bc-OvuWN.js'; +import { a8 as LegendItemsConstraint } from './controller-Bc-OvuWN.js'; +import { a$ as LineStringGeometry } from './controller-Bc-OvuWN.js'; +import { bd as LineToolSettings } from './controller-Bc-OvuWN.js'; +import { L as LinkElementRead } from './controller-Bc-OvuWN.js'; +import { b0 as LngLatTuple } from './controller-Bc-OvuWN.js'; +import { aL as MapDetails } from './controller-Bc-OvuWN.js'; +import { D as MapInteractionEvent } from './controller-Bc-OvuWN.js'; +import { M as MarkerElementCreate } from './controller-Bc-OvuWN.js'; +import { m as MarkerElementRead } from './controller-Bc-OvuWN.js'; +import { n as MarkerElementUpdate } from './controller-Bc-OvuWN.js'; +import { be as MarkerToolSettings } from './controller-Bc-OvuWN.js'; +import { aM as MiscController } from './controller-Bc-OvuWN.js'; +import { aH as MultiAggregationConfig } from './controller-Bc-OvuWN.js'; +import { b1 as MultiLineStringGeometry } from './controller-Bc-OvuWN.js'; +import { b2 as MultiPointGeometry } from './controller-Bc-OvuWN.js'; +import { b3 as MultiPolygonGeometry } from './controller-Bc-OvuWN.js'; +import { N as NoteElementCreate } from './controller-Bc-OvuWN.js'; +import { o as NoteElementRead } from './controller-Bc-OvuWN.js'; +import { p as NoteElementUpdate } from './controller-Bc-OvuWN.js'; +import { bf as NoteToolSettings } from './controller-Bc-OvuWN.js'; +import { bv as OnMapInteractionsOptions } from './controller-Bc-OvuWN.js'; +import { P as PathElementCreate } from './controller-Bc-OvuWN.js'; +import { q as PathElementRead } from './controller-Bc-OvuWN.js'; +import { r as PathElementUpdate } from './controller-Bc-OvuWN.js'; +import { bg as PinToolSettings } from './controller-Bc-OvuWN.js'; +import { s as PlaceElementCreate } from './controller-Bc-OvuWN.js'; +import { t as PlaceElementRead } from './controller-Bc-OvuWN.js'; +import { u as PlaceElementUpdate } from './controller-Bc-OvuWN.js'; +import { bh as PlaceFrame } from './controller-Bc-OvuWN.js'; +import { bz as PlacementForUIElement } from './controller-Bc-OvuWN.js'; +import { bi as PlaceSymbol } from './controller-Bc-OvuWN.js'; +import { b4 as PointGeometry } from './controller-Bc-OvuWN.js'; +import { v as PolygonElementCreate } from './controller-Bc-OvuWN.js'; +import { w as PolygonElementRead } from './controller-Bc-OvuWN.js'; +import { x as PolygonElementUpdate } from './controller-Bc-OvuWN.js'; +import { b5 as PolygonGeometry } from './controller-Bc-OvuWN.js'; +import { bj as PolygonToolSettings } from './controller-Bc-OvuWN.js'; +import { aI as PrecomputedAggregationMethod } from './controller-Bc-OvuWN.js'; +import { a9 as RasterBand } from './controller-Bc-OvuWN.js'; +import { aa as RasterLayer } from './controller-Bc-OvuWN.js'; +import { ab as RasterLayerSource } from './controller-Bc-OvuWN.js'; +import { af as RasterValue } from './controller-Bc-OvuWN.js'; +import { bk as RouteToolSettings } from './controller-Bc-OvuWN.js'; +import { aU as SelectionController } from './controller-Bc-OvuWN.js'; +import { ci as SetViewportCenterZoomParams } from './controller-Bc-OvuWN.js'; +import { b6 as SetVisibilityRequest } from './controller-Bc-OvuWN.js'; +import { b7 as SortConfig } from './controller-Bc-OvuWN.js'; +import { b8 as SortDirection } from './controller-Bc-OvuWN.js'; +import { T as TextElementCreate } from './controller-Bc-OvuWN.js'; +import { y as TextElementRead } from './controller-Bc-OvuWN.js'; +import { A as TextElementUpdate } from './controller-Bc-OvuWN.js'; +import { bl as TextToolSettings } from './controller-Bc-OvuWN.js'; +import { bp as ToolsController } from './controller-Bc-OvuWN.js'; +import { bm as ToolSettingsChangeEvent } from './controller-Bc-OvuWN.js'; +import { bn as ToolSettingsMap } from './controller-Bc-OvuWN.js'; +import { bo as ToolType } from './controller-Bc-OvuWN.js'; +import { ce as UIActionTriggerCreate } from './controller-Bc-OvuWN.js'; +import { bC as UIButtonElement } from './controller-Bc-OvuWN.js'; +import { bD as UIButtonElementCreate } from './controller-Bc-OvuWN.js'; +import { bE as UIButtonElementUpdate } from './controller-Bc-OvuWN.js'; +import { b_ as UIButtonRowElement } from './controller-Bc-OvuWN.js'; +import { b$ as UIButtonRowElementCreate } from './controller-Bc-OvuWN.js'; +import { c0 as UIButtonRowElementUpdate } from './controller-Bc-OvuWN.js'; +import { c1 as UICheckboxGroupElement } from './controller-Bc-OvuWN.js'; +import { c2 as UICheckboxGroupElementCreate } from './controller-Bc-OvuWN.js'; +import { c3 as UICheckboxGroupElementUpdate } from './controller-Bc-OvuWN.js'; +import { cd as UIControlElementOption } from './controller-Bc-OvuWN.js'; +import { ch as UiController } from './controller-Bc-OvuWN.js'; +import { U as UiControlsOptions } from './controller-Bc-OvuWN.js'; +import { bL as UIDividerElement } from './controller-Bc-OvuWN.js'; +import { bM as UIDividerElementCreate } from './controller-Bc-OvuWN.js'; +import { bN as UIDividerElementUpdate } from './controller-Bc-OvuWN.js'; +import { cf as uiFeatureAction } from './controller-Bc-OvuWN.js'; +import { cg as uiFeatureActionCreate } from './controller-Bc-OvuWN.js'; +import { bI as UIFlexibleSpaceElement } from './controller-Bc-OvuWN.js'; +import { bJ as UIFlexibleSpaceElementCreate } from './controller-Bc-OvuWN.js'; +import { bK as UIFlexibleSpaceElementUpdate } from './controller-Bc-OvuWN.js'; +import { bX as UIGridContainerElement } from './controller-Bc-OvuWN.js'; +import { bY as UIGridContainerElementCreate } from './controller-Bc-OvuWN.js'; +import { bZ as UIGridContainerElementUpdate } from './controller-Bc-OvuWN.js'; +import { ca as UIIframeElement } from './controller-Bc-OvuWN.js'; +import { cb as UIIframeElementCreate } from './controller-Bc-OvuWN.js'; +import { cc as UIIframeElementUpdate } from './controller-Bc-OvuWN.js'; +import { bA as UIPanel } from './controller-Bc-OvuWN.js'; +import { bB as UIPanelCreateOrUpdate } from './controller-Bc-OvuWN.js'; +import { bU as UIPanelElement } from './controller-Bc-OvuWN.js'; +import { bV as UIPanelElementCreate } from './controller-Bc-OvuWN.js'; +import { bW as UIPanelElementUpdate } from './controller-Bc-OvuWN.js'; +import { c4 as UIRadioGroupElement } from './controller-Bc-OvuWN.js'; +import { c5 as UIRadioGroupElementCreate } from './controller-Bc-OvuWN.js'; +import { c6 as UIRadioGroupElementUpdate } from './controller-Bc-OvuWN.js'; +import { bR as UISelectElement } from './controller-Bc-OvuWN.js'; +import { bS as UISelectElementCreate } from './controller-Bc-OvuWN.js'; +import { bT as UISelectElementUpdate } from './controller-Bc-OvuWN.js'; +import { bF as UITextElement } from './controller-Bc-OvuWN.js'; +import { bG as UITextElementCreate } from './controller-Bc-OvuWN.js'; +import { bH as UITextElementUpdate } from './controller-Bc-OvuWN.js'; +import { bO as UITextInputElement } from './controller-Bc-OvuWN.js'; +import { bP as UITextInputElementCreate } from './controller-Bc-OvuWN.js'; +import { bQ as UITextInputElementUpdate } from './controller-Bc-OvuWN.js'; +import { c7 as UIToggleGroupElement } from './controller-Bc-OvuWN.js'; +import { c8 as UIToggleGroupElementCreate } from './controller-Bc-OvuWN.js'; +import { c9 as UIToggleGroupElementUpdate } from './controller-Bc-OvuWN.js'; +import { bw as UpdateActionTriggerParams } from './controller-Bc-OvuWN.js'; +import { bx as UpdateFeatureActionParams } from './controller-Bc-OvuWN.js'; +import { ac as UpdateLayerParams } from './controller-Bc-OvuWN.js'; +import { by as UpdatePanelElementsParams } from './controller-Bc-OvuWN.js'; +import { aJ as ValueConfiguration } from './controller-Bc-OvuWN.js'; +import { ad as VectorLayer } from './controller-Bc-OvuWN.js'; +import { V as ViewportCenterZoom } from './controller-Bc-OvuWN.js'; +import { cj as ViewportConstraints } from './controller-Bc-OvuWN.js'; +import { cm as ViewportController } from './controller-Bc-OvuWN.js'; +import { ck as ViewportFitBoundsParams } from './controller-Bc-OvuWN.js'; +import { cl as ViewportState } from './controller-Bc-OvuWN.js'; +import { z } from './controller-Bc-OvuWN.js'; import { z as z_2 } from 'zod'; export { AggregatedGridConfig } diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index d5145708..4af44d4a 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -2,7 +2,12 @@ import { z } from "zod"; import type { zInfer } from "~/lib/utils"; import type { LayerFeature } from "~/modules/layers/features/types"; import type { UiController } from "../controller"; -import { uiElementBaseCreateSchema, uiElementBaseSchema } from "./base"; +import { + makeUpdateSchema, + uiElementBaseCreateSchema, + uiElementBaseSchema, + type UIElementLifecycle, +} from "./base"; const uiFeatureActionBaseSchema = z.object({ type: z.literal("FeatureAction"), @@ -43,15 +48,32 @@ export const uiFeatureActionSchema = { clonable: uiElementBaseCreateSchema.clonable .extend(uiFeatureActionBaseSchema.shape) .extend({ type: z.undefined() }), + // Add the missing update schema + update: makeUpdateSchema( + uiElementBaseCreateSchema.params + .extend(uiFeatureActionBaseSchema.shape) + .extend({ type: z.undefined() }), + ), }; /** * Represents a feature action for creation. * It can be added to the map by using the {@link UiController.createFeatureAction} method. */ -export type UIFeatureActionCreate = zInfer< - typeof uiFeatureActionSchema.clonable ->; +export interface UIFeatureActionCreate + extends UIElementLifecycle, + Omit< + zInfer, + "onCreate" | "onDestroy" + > { + /** + * The function to call when the feature action is triggered. + * + * @param args - The arguments passed to the function. + * @param args.feature - The feature that triggered the action. + */ + onTrigger: (args: { feature: LayerFeature }) => void; +} /** * Represents a feature action after creation (with generated id). From b0b875c679266d3f0ee5e65ce0a49b375be54055 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 16:16:46 -0400 Subject: [PATCH 06/10] tweaks --- docs/UI/UpdateFeatureActionParams.md | 66 +-- docs/UI/uiFeatureAction.md | 25 +- etc/js-sdk.api.md | 410 +++++++++---------- src/modules/ui/uiElements/UIFeatureAction.ts | 5 +- 4 files changed, 237 insertions(+), 269 deletions(-) diff --git a/docs/UI/UpdateFeatureActionParams.md b/docs/UI/UpdateFeatureActionParams.md index 70fa41ba..3cae9400 100644 --- a/docs/UI/UpdateFeatureActionParams.md +++ b/docs/UI/UpdateFeatureActionParams.md @@ -8,86 +8,28 @@ *** -## label? - -> `optional` **label**: `string` - -The label of the feature action. - -*** - ## layerIds? > `optional` **layerIds**: `string`\[] -The layers to add the action to. Optional. Defaults to all layers. - *** ## geometryTypes? > `optional` **geometryTypes**: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[] -The geometry type of the features to add the action to. Optional. Defaults to all geometry types. - -*** - -## type? - -> `optional` **type**: `undefined` - *** ## onTrigger()? > `optional` **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` -The function to call when the feature action is triggered. - -### Parameters - -| Parameter | Type | Description | -| -------------- | ------------------------------------------------------------ | -------------------------------------- | -| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | The arguments passed to the function. | -| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | The feature that triggered the action. | - -### Returns - -`void` - -*** - -## onCreate()? - -> `optional` **onCreate**: (`args`: \{ `id`: `string`; }) => `void` - -A function to call when the element is created. - -### Parameters - -| Parameter | Type | Description | -| --------- | -------------------- | ------------------------------------- | -| `args` | \{ `id`: `string`; } | The arguments passed to the function. | -| `args.id` | `string` | The id of the element. | - -### Returns - -`void` - -*** - -## onDestroy()? - -> `optional` **onDestroy**: (`args`: \{ `id`: `string`; }) => `void` - -A function to call when the element is destroyed. - ### Parameters -| Parameter | Type | Description | -| --------- | -------------------- | ------------------------------------- | -| `args` | \{ `id`: `string`; } | The arguments passed to the function. | -| `args.id` | `string` | The id of the element. | +| Parameter | Type | +| -------------- | ------------------------------------------------------------ | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | ### Returns diff --git a/docs/UI/uiFeatureAction.md b/docs/UI/uiFeatureAction.md index e3bdb707..af148b60 100644 --- a/docs/UI/uiFeatureAction.md +++ b/docs/UI/uiFeatureAction.md @@ -1,6 +1,6 @@ *** -> **uiFeatureAction**: [`uiFeatureActionCreate`](uiFeatureActionCreate.md) & \{ `id`: `string`; } +> **uiFeatureAction**: \{ `id`: `string`; `onTrigger`: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void`; `layerIds`: `string`\[]; `geometryTypes`: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[]; } Represents a feature action after creation (with generated id). @@ -9,3 +9,26 @@ Represents a feature action after creation (with generated id). ## id > **id**: `string` + +## onTrigger() + +> **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` + +### Parameters + +| Parameter | Type | +| -------------- | ------------------------------------------------------------ | +| `args` | \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); } | +| `args.feature` | [`LayerFeature`](../Layers/LayerFeature.md) | + +### Returns + +`void` + +## layerIds? + +> `optional` **layerIds**: `string`\[] + +## geometryTypes? + +> `optional` **geometryTypes**: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[] diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index 53575a9a..d7deec6d 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -4,211 +4,211 @@ ```ts -import { av as AggregatedGridConfig } from './controller-Bc-OvuWN.js'; -import { aw as AggregationConfig } from './controller-Bc-OvuWN.js'; -import { ax as AggregationMethod } from './controller-Bc-OvuWN.js'; -import { C as CircleElementCreate } from './controller-Bc-OvuWN.js'; -import { a as CircleElementRead } from './controller-Bc-OvuWN.js'; -import { b as CircleElementUpdate } from './controller-Bc-OvuWN.js'; -import { b9 as CircleToolSettings } from './controller-Bc-OvuWN.js'; -import { ba as ConfigurableToolType } from './controller-Bc-OvuWN.js'; -import { ay as CountGridConfig } from './controller-Bc-OvuWN.js'; -import { bq as CreateActionTriggerParams } from './controller-Bc-OvuWN.js'; -import { br as CreateFeatureActionParams } from './controller-Bc-OvuWN.js'; -import { K as CreateLayersFromGeoJsonParams } from './controller-Bc-OvuWN.js'; -import { bs as CreateOrUpdatePanelParams } from './controller-Bc-OvuWN.js'; -import { bt as CreatePanelElementsParams } from './controller-Bc-OvuWN.js'; -import { O as DataOnlyLayer } from './controller-Bc-OvuWN.js'; -import { bu as DeletePanelElementsParams } from './controller-Bc-OvuWN.js'; -import { E as Element_2 } from './controller-Bc-OvuWN.js'; -import { c as ElementChangeCallbackParams } from './controller-Bc-OvuWN.js'; -import { d as ElementCreate } from './controller-Bc-OvuWN.js'; -import { e as ElementGroup } from './controller-Bc-OvuWN.js'; -import { f as ElementGroupChangeCallbackParams } from './controller-Bc-OvuWN.js'; -import { aN as ElementGroupNode } from './controller-Bc-OvuWN.js'; -import { aO as ElementNode } from './controller-Bc-OvuWN.js'; -import { B as ElementsController } from './controller-Bc-OvuWN.js'; -import { g as ElementUpdate } from './controller-Bc-OvuWN.js'; -import { aP as EntityNode } from './controller-Bc-OvuWN.js'; -import { aQ as FeatureNode } from './controller-Bc-OvuWN.js'; -import { aR as FeatureSelection } from './controller-Bc-OvuWN.js'; -import { aV as FeltBoundary } from './controller-Bc-OvuWN.js'; -import { F as FeltController } from './controller-Bc-OvuWN.js'; -import { Q as FeltTiledVectorSource } from './controller-Bc-OvuWN.js'; -import { aW as FeltZoom } from './controller-Bc-OvuWN.js'; -import { ao as FilterExpression } from './controller-Bc-OvuWN.js'; -import { ap as FilterLogicGate } from './controller-Bc-OvuWN.js'; -import { ar as Filters } from './controller-Bc-OvuWN.js'; -import { aq as FilterTernary } from './controller-Bc-OvuWN.js'; -import { R as GeoJsonDataVectorSource } from './controller-Bc-OvuWN.js'; -import { aX as GeoJsonFeature } from './controller-Bc-OvuWN.js'; -import { S as GeoJsonFileVectorSource } from './controller-Bc-OvuWN.js'; -import { aY as GeoJsonGeometry } from './controller-Bc-OvuWN.js'; -import { aZ as GeoJsonProperties } from './controller-Bc-OvuWN.js'; -import { W as GeoJsonUrlVectorSource } from './controller-Bc-OvuWN.js'; -import { as as GeometryFilter } from './controller-Bc-OvuWN.js'; -import { G as GetElementGroupsConstraint } from './controller-Bc-OvuWN.js'; -import { h as GetElementsConstraint } from './controller-Bc-OvuWN.js'; -import { az as GetLayerCalculationParams } from './controller-Bc-OvuWN.js'; -import { aA as GetLayerCategoriesGroup } from './controller-Bc-OvuWN.js'; -import { aB as GetLayerCategoriesParams } from './controller-Bc-OvuWN.js'; -import { X as GetLayerGroupsConstraint } from './controller-Bc-OvuWN.js'; -import { aC as GetLayerHistogramBin } from './controller-Bc-OvuWN.js'; -import { aD as GetLayerHistogramParams } from './controller-Bc-OvuWN.js'; -import { aE as GetLayerPrecomputedCalculationParams } from './controller-Bc-OvuWN.js'; -import { Y as GetLayersConstraint } from './controller-Bc-OvuWN.js'; -import { Z as GetRenderedFeaturesConstraint } from './controller-Bc-OvuWN.js'; -import { aF as GridConfig } from './controller-Bc-OvuWN.js'; -import { aG as GridType } from './controller-Bc-OvuWN.js'; -import { H as HighlighterElementCreate } from './controller-Bc-OvuWN.js'; -import { i as HighlighterElementRead } from './controller-Bc-OvuWN.js'; -import { j as HighlighterElementUpdate } from './controller-Bc-OvuWN.js'; -import { bb as HighlighterToolSettings } from './controller-Bc-OvuWN.js'; -import { I as ImageElementCreate } from './controller-Bc-OvuWN.js'; -import { k as ImageElementRead } from './controller-Bc-OvuWN.js'; -import { l as ImageElementUpdate } from './controller-Bc-OvuWN.js'; -import { bc as InputToolSettings } from './controller-Bc-OvuWN.js'; -import { J as InteractionsController } from './controller-Bc-OvuWN.js'; -import { a_ as LatLng } from './controller-Bc-OvuWN.js'; -import { _ as Layer } from './controller-Bc-OvuWN.js'; -import { at as LayerBoundaries } from './controller-Bc-OvuWN.js'; -import { $ as LayerChangeCallbackParams } from './controller-Bc-OvuWN.js'; -import { a0 as LayerCommon } from './controller-Bc-OvuWN.js'; -import { ae as LayerFeature } from './controller-Bc-OvuWN.js'; -import { au as LayerFilters } from './controller-Bc-OvuWN.js'; -import { a1 as LayerGroup } from './controller-Bc-OvuWN.js'; -import { a2 as LayerGroupChangeCallbackParams } from './controller-Bc-OvuWN.js'; -import { aS as LayerGroupNode } from './controller-Bc-OvuWN.js'; -import { aT as LayerNode } from './controller-Bc-OvuWN.js'; -import { a3 as LayerProcessingStatus } from './controller-Bc-OvuWN.js'; -import { ag as LayerSchema } from './controller-Bc-OvuWN.js'; -import { ah as LayerSchemaAttribute } from './controller-Bc-OvuWN.js'; -import { ai as LayerSchemaBooleanAttribute } from './controller-Bc-OvuWN.js'; -import { aj as LayerSchemaCommonAttribute } from './controller-Bc-OvuWN.js'; -import { ak as LayerSchemaDateAttribute } from './controller-Bc-OvuWN.js'; -import { al as LayerSchemaDateTimeAttribute } from './controller-Bc-OvuWN.js'; -import { am as LayerSchemaNumericAttribute } from './controller-Bc-OvuWN.js'; -import { an as LayerSchemaTextAttribute } from './controller-Bc-OvuWN.js'; -import { aK as LayersController } from './controller-Bc-OvuWN.js'; -import { a4 as LegendDisplay } from './controller-Bc-OvuWN.js'; -import { a5 as LegendItem } from './controller-Bc-OvuWN.js'; -import { a6 as LegendItemChangeCallbackParams } from './controller-Bc-OvuWN.js'; -import { a7 as LegendItemIdentifier } from './controller-Bc-OvuWN.js'; -import { a8 as LegendItemsConstraint } from './controller-Bc-OvuWN.js'; -import { a$ as LineStringGeometry } from './controller-Bc-OvuWN.js'; -import { bd as LineToolSettings } from './controller-Bc-OvuWN.js'; -import { L as LinkElementRead } from './controller-Bc-OvuWN.js'; -import { b0 as LngLatTuple } from './controller-Bc-OvuWN.js'; -import { aL as MapDetails } from './controller-Bc-OvuWN.js'; -import { D as MapInteractionEvent } from './controller-Bc-OvuWN.js'; -import { M as MarkerElementCreate } from './controller-Bc-OvuWN.js'; -import { m as MarkerElementRead } from './controller-Bc-OvuWN.js'; -import { n as MarkerElementUpdate } from './controller-Bc-OvuWN.js'; -import { be as MarkerToolSettings } from './controller-Bc-OvuWN.js'; -import { aM as MiscController } from './controller-Bc-OvuWN.js'; -import { aH as MultiAggregationConfig } from './controller-Bc-OvuWN.js'; -import { b1 as MultiLineStringGeometry } from './controller-Bc-OvuWN.js'; -import { b2 as MultiPointGeometry } from './controller-Bc-OvuWN.js'; -import { b3 as MultiPolygonGeometry } from './controller-Bc-OvuWN.js'; -import { N as NoteElementCreate } from './controller-Bc-OvuWN.js'; -import { o as NoteElementRead } from './controller-Bc-OvuWN.js'; -import { p as NoteElementUpdate } from './controller-Bc-OvuWN.js'; -import { bf as NoteToolSettings } from './controller-Bc-OvuWN.js'; -import { bv as OnMapInteractionsOptions } from './controller-Bc-OvuWN.js'; -import { P as PathElementCreate } from './controller-Bc-OvuWN.js'; -import { q as PathElementRead } from './controller-Bc-OvuWN.js'; -import { r as PathElementUpdate } from './controller-Bc-OvuWN.js'; -import { bg as PinToolSettings } from './controller-Bc-OvuWN.js'; -import { s as PlaceElementCreate } from './controller-Bc-OvuWN.js'; -import { t as PlaceElementRead } from './controller-Bc-OvuWN.js'; -import { u as PlaceElementUpdate } from './controller-Bc-OvuWN.js'; -import { bh as PlaceFrame } from './controller-Bc-OvuWN.js'; -import { bz as PlacementForUIElement } from './controller-Bc-OvuWN.js'; -import { bi as PlaceSymbol } from './controller-Bc-OvuWN.js'; -import { b4 as PointGeometry } from './controller-Bc-OvuWN.js'; -import { v as PolygonElementCreate } from './controller-Bc-OvuWN.js'; -import { w as PolygonElementRead } from './controller-Bc-OvuWN.js'; -import { x as PolygonElementUpdate } from './controller-Bc-OvuWN.js'; -import { b5 as PolygonGeometry } from './controller-Bc-OvuWN.js'; -import { bj as PolygonToolSettings } from './controller-Bc-OvuWN.js'; -import { aI as PrecomputedAggregationMethod } from './controller-Bc-OvuWN.js'; -import { a9 as RasterBand } from './controller-Bc-OvuWN.js'; -import { aa as RasterLayer } from './controller-Bc-OvuWN.js'; -import { ab as RasterLayerSource } from './controller-Bc-OvuWN.js'; -import { af as RasterValue } from './controller-Bc-OvuWN.js'; -import { bk as RouteToolSettings } from './controller-Bc-OvuWN.js'; -import { aU as SelectionController } from './controller-Bc-OvuWN.js'; -import { ci as SetViewportCenterZoomParams } from './controller-Bc-OvuWN.js'; -import { b6 as SetVisibilityRequest } from './controller-Bc-OvuWN.js'; -import { b7 as SortConfig } from './controller-Bc-OvuWN.js'; -import { b8 as SortDirection } from './controller-Bc-OvuWN.js'; -import { T as TextElementCreate } from './controller-Bc-OvuWN.js'; -import { y as TextElementRead } from './controller-Bc-OvuWN.js'; -import { A as TextElementUpdate } from './controller-Bc-OvuWN.js'; -import { bl as TextToolSettings } from './controller-Bc-OvuWN.js'; -import { bp as ToolsController } from './controller-Bc-OvuWN.js'; -import { bm as ToolSettingsChangeEvent } from './controller-Bc-OvuWN.js'; -import { bn as ToolSettingsMap } from './controller-Bc-OvuWN.js'; -import { bo as ToolType } from './controller-Bc-OvuWN.js'; -import { ce as UIActionTriggerCreate } from './controller-Bc-OvuWN.js'; -import { bC as UIButtonElement } from './controller-Bc-OvuWN.js'; -import { bD as UIButtonElementCreate } from './controller-Bc-OvuWN.js'; -import { bE as UIButtonElementUpdate } from './controller-Bc-OvuWN.js'; -import { b_ as UIButtonRowElement } from './controller-Bc-OvuWN.js'; -import { b$ as UIButtonRowElementCreate } from './controller-Bc-OvuWN.js'; -import { c0 as UIButtonRowElementUpdate } from './controller-Bc-OvuWN.js'; -import { c1 as UICheckboxGroupElement } from './controller-Bc-OvuWN.js'; -import { c2 as UICheckboxGroupElementCreate } from './controller-Bc-OvuWN.js'; -import { c3 as UICheckboxGroupElementUpdate } from './controller-Bc-OvuWN.js'; -import { cd as UIControlElementOption } from './controller-Bc-OvuWN.js'; -import { ch as UiController } from './controller-Bc-OvuWN.js'; -import { U as UiControlsOptions } from './controller-Bc-OvuWN.js'; -import { bL as UIDividerElement } from './controller-Bc-OvuWN.js'; -import { bM as UIDividerElementCreate } from './controller-Bc-OvuWN.js'; -import { bN as UIDividerElementUpdate } from './controller-Bc-OvuWN.js'; -import { cf as uiFeatureAction } from './controller-Bc-OvuWN.js'; -import { cg as uiFeatureActionCreate } from './controller-Bc-OvuWN.js'; -import { bI as UIFlexibleSpaceElement } from './controller-Bc-OvuWN.js'; -import { bJ as UIFlexibleSpaceElementCreate } from './controller-Bc-OvuWN.js'; -import { bK as UIFlexibleSpaceElementUpdate } from './controller-Bc-OvuWN.js'; -import { bX as UIGridContainerElement } from './controller-Bc-OvuWN.js'; -import { bY as UIGridContainerElementCreate } from './controller-Bc-OvuWN.js'; -import { bZ as UIGridContainerElementUpdate } from './controller-Bc-OvuWN.js'; -import { ca as UIIframeElement } from './controller-Bc-OvuWN.js'; -import { cb as UIIframeElementCreate } from './controller-Bc-OvuWN.js'; -import { cc as UIIframeElementUpdate } from './controller-Bc-OvuWN.js'; -import { bA as UIPanel } from './controller-Bc-OvuWN.js'; -import { bB as UIPanelCreateOrUpdate } from './controller-Bc-OvuWN.js'; -import { bU as UIPanelElement } from './controller-Bc-OvuWN.js'; -import { bV as UIPanelElementCreate } from './controller-Bc-OvuWN.js'; -import { bW as UIPanelElementUpdate } from './controller-Bc-OvuWN.js'; -import { c4 as UIRadioGroupElement } from './controller-Bc-OvuWN.js'; -import { c5 as UIRadioGroupElementCreate } from './controller-Bc-OvuWN.js'; -import { c6 as UIRadioGroupElementUpdate } from './controller-Bc-OvuWN.js'; -import { bR as UISelectElement } from './controller-Bc-OvuWN.js'; -import { bS as UISelectElementCreate } from './controller-Bc-OvuWN.js'; -import { bT as UISelectElementUpdate } from './controller-Bc-OvuWN.js'; -import { bF as UITextElement } from './controller-Bc-OvuWN.js'; -import { bG as UITextElementCreate } from './controller-Bc-OvuWN.js'; -import { bH as UITextElementUpdate } from './controller-Bc-OvuWN.js'; -import { bO as UITextInputElement } from './controller-Bc-OvuWN.js'; -import { bP as UITextInputElementCreate } from './controller-Bc-OvuWN.js'; -import { bQ as UITextInputElementUpdate } from './controller-Bc-OvuWN.js'; -import { c7 as UIToggleGroupElement } from './controller-Bc-OvuWN.js'; -import { c8 as UIToggleGroupElementCreate } from './controller-Bc-OvuWN.js'; -import { c9 as UIToggleGroupElementUpdate } from './controller-Bc-OvuWN.js'; -import { bw as UpdateActionTriggerParams } from './controller-Bc-OvuWN.js'; -import { bx as UpdateFeatureActionParams } from './controller-Bc-OvuWN.js'; -import { ac as UpdateLayerParams } from './controller-Bc-OvuWN.js'; -import { by as UpdatePanelElementsParams } from './controller-Bc-OvuWN.js'; -import { aJ as ValueConfiguration } from './controller-Bc-OvuWN.js'; -import { ad as VectorLayer } from './controller-Bc-OvuWN.js'; -import { V as ViewportCenterZoom } from './controller-Bc-OvuWN.js'; -import { cj as ViewportConstraints } from './controller-Bc-OvuWN.js'; -import { cm as ViewportController } from './controller-Bc-OvuWN.js'; -import { ck as ViewportFitBoundsParams } from './controller-Bc-OvuWN.js'; -import { cl as ViewportState } from './controller-Bc-OvuWN.js'; -import { z } from './controller-Bc-OvuWN.js'; +import { av as AggregatedGridConfig } from './controller-C_0WIiYz.js'; +import { aw as AggregationConfig } from './controller-C_0WIiYz.js'; +import { ax as AggregationMethod } from './controller-C_0WIiYz.js'; +import { C as CircleElementCreate } from './controller-C_0WIiYz.js'; +import { a as CircleElementRead } from './controller-C_0WIiYz.js'; +import { b as CircleElementUpdate } from './controller-C_0WIiYz.js'; +import { b9 as CircleToolSettings } from './controller-C_0WIiYz.js'; +import { ba as ConfigurableToolType } from './controller-C_0WIiYz.js'; +import { ay as CountGridConfig } from './controller-C_0WIiYz.js'; +import { bq as CreateActionTriggerParams } from './controller-C_0WIiYz.js'; +import { br as CreateFeatureActionParams } from './controller-C_0WIiYz.js'; +import { K as CreateLayersFromGeoJsonParams } from './controller-C_0WIiYz.js'; +import { bs as CreateOrUpdatePanelParams } from './controller-C_0WIiYz.js'; +import { bt as CreatePanelElementsParams } from './controller-C_0WIiYz.js'; +import { O as DataOnlyLayer } from './controller-C_0WIiYz.js'; +import { bu as DeletePanelElementsParams } from './controller-C_0WIiYz.js'; +import { E as Element_2 } from './controller-C_0WIiYz.js'; +import { c as ElementChangeCallbackParams } from './controller-C_0WIiYz.js'; +import { d as ElementCreate } from './controller-C_0WIiYz.js'; +import { e as ElementGroup } from './controller-C_0WIiYz.js'; +import { f as ElementGroupChangeCallbackParams } from './controller-C_0WIiYz.js'; +import { aN as ElementGroupNode } from './controller-C_0WIiYz.js'; +import { aO as ElementNode } from './controller-C_0WIiYz.js'; +import { B as ElementsController } from './controller-C_0WIiYz.js'; +import { g as ElementUpdate } from './controller-C_0WIiYz.js'; +import { aP as EntityNode } from './controller-C_0WIiYz.js'; +import { aQ as FeatureNode } from './controller-C_0WIiYz.js'; +import { aR as FeatureSelection } from './controller-C_0WIiYz.js'; +import { aV as FeltBoundary } from './controller-C_0WIiYz.js'; +import { F as FeltController } from './controller-C_0WIiYz.js'; +import { Q as FeltTiledVectorSource } from './controller-C_0WIiYz.js'; +import { aW as FeltZoom } from './controller-C_0WIiYz.js'; +import { ao as FilterExpression } from './controller-C_0WIiYz.js'; +import { ap as FilterLogicGate } from './controller-C_0WIiYz.js'; +import { ar as Filters } from './controller-C_0WIiYz.js'; +import { aq as FilterTernary } from './controller-C_0WIiYz.js'; +import { R as GeoJsonDataVectorSource } from './controller-C_0WIiYz.js'; +import { aX as GeoJsonFeature } from './controller-C_0WIiYz.js'; +import { S as GeoJsonFileVectorSource } from './controller-C_0WIiYz.js'; +import { aY as GeoJsonGeometry } from './controller-C_0WIiYz.js'; +import { aZ as GeoJsonProperties } from './controller-C_0WIiYz.js'; +import { W as GeoJsonUrlVectorSource } from './controller-C_0WIiYz.js'; +import { as as GeometryFilter } from './controller-C_0WIiYz.js'; +import { G as GetElementGroupsConstraint } from './controller-C_0WIiYz.js'; +import { h as GetElementsConstraint } from './controller-C_0WIiYz.js'; +import { az as GetLayerCalculationParams } from './controller-C_0WIiYz.js'; +import { aA as GetLayerCategoriesGroup } from './controller-C_0WIiYz.js'; +import { aB as GetLayerCategoriesParams } from './controller-C_0WIiYz.js'; +import { X as GetLayerGroupsConstraint } from './controller-C_0WIiYz.js'; +import { aC as GetLayerHistogramBin } from './controller-C_0WIiYz.js'; +import { aD as GetLayerHistogramParams } from './controller-C_0WIiYz.js'; +import { aE as GetLayerPrecomputedCalculationParams } from './controller-C_0WIiYz.js'; +import { Y as GetLayersConstraint } from './controller-C_0WIiYz.js'; +import { Z as GetRenderedFeaturesConstraint } from './controller-C_0WIiYz.js'; +import { aF as GridConfig } from './controller-C_0WIiYz.js'; +import { aG as GridType } from './controller-C_0WIiYz.js'; +import { H as HighlighterElementCreate } from './controller-C_0WIiYz.js'; +import { i as HighlighterElementRead } from './controller-C_0WIiYz.js'; +import { j as HighlighterElementUpdate } from './controller-C_0WIiYz.js'; +import { bb as HighlighterToolSettings } from './controller-C_0WIiYz.js'; +import { I as ImageElementCreate } from './controller-C_0WIiYz.js'; +import { k as ImageElementRead } from './controller-C_0WIiYz.js'; +import { l as ImageElementUpdate } from './controller-C_0WIiYz.js'; +import { bc as InputToolSettings } from './controller-C_0WIiYz.js'; +import { J as InteractionsController } from './controller-C_0WIiYz.js'; +import { a_ as LatLng } from './controller-C_0WIiYz.js'; +import { _ as Layer } from './controller-C_0WIiYz.js'; +import { at as LayerBoundaries } from './controller-C_0WIiYz.js'; +import { $ as LayerChangeCallbackParams } from './controller-C_0WIiYz.js'; +import { a0 as LayerCommon } from './controller-C_0WIiYz.js'; +import { ae as LayerFeature } from './controller-C_0WIiYz.js'; +import { au as LayerFilters } from './controller-C_0WIiYz.js'; +import { a1 as LayerGroup } from './controller-C_0WIiYz.js'; +import { a2 as LayerGroupChangeCallbackParams } from './controller-C_0WIiYz.js'; +import { aS as LayerGroupNode } from './controller-C_0WIiYz.js'; +import { aT as LayerNode } from './controller-C_0WIiYz.js'; +import { a3 as LayerProcessingStatus } from './controller-C_0WIiYz.js'; +import { ag as LayerSchema } from './controller-C_0WIiYz.js'; +import { ah as LayerSchemaAttribute } from './controller-C_0WIiYz.js'; +import { ai as LayerSchemaBooleanAttribute } from './controller-C_0WIiYz.js'; +import { aj as LayerSchemaCommonAttribute } from './controller-C_0WIiYz.js'; +import { ak as LayerSchemaDateAttribute } from './controller-C_0WIiYz.js'; +import { al as LayerSchemaDateTimeAttribute } from './controller-C_0WIiYz.js'; +import { am as LayerSchemaNumericAttribute } from './controller-C_0WIiYz.js'; +import { an as LayerSchemaTextAttribute } from './controller-C_0WIiYz.js'; +import { aK as LayersController } from './controller-C_0WIiYz.js'; +import { a4 as LegendDisplay } from './controller-C_0WIiYz.js'; +import { a5 as LegendItem } from './controller-C_0WIiYz.js'; +import { a6 as LegendItemChangeCallbackParams } from './controller-C_0WIiYz.js'; +import { a7 as LegendItemIdentifier } from './controller-C_0WIiYz.js'; +import { a8 as LegendItemsConstraint } from './controller-C_0WIiYz.js'; +import { a$ as LineStringGeometry } from './controller-C_0WIiYz.js'; +import { bd as LineToolSettings } from './controller-C_0WIiYz.js'; +import { L as LinkElementRead } from './controller-C_0WIiYz.js'; +import { b0 as LngLatTuple } from './controller-C_0WIiYz.js'; +import { aL as MapDetails } from './controller-C_0WIiYz.js'; +import { D as MapInteractionEvent } from './controller-C_0WIiYz.js'; +import { M as MarkerElementCreate } from './controller-C_0WIiYz.js'; +import { m as MarkerElementRead } from './controller-C_0WIiYz.js'; +import { n as MarkerElementUpdate } from './controller-C_0WIiYz.js'; +import { be as MarkerToolSettings } from './controller-C_0WIiYz.js'; +import { aM as MiscController } from './controller-C_0WIiYz.js'; +import { aH as MultiAggregationConfig } from './controller-C_0WIiYz.js'; +import { b1 as MultiLineStringGeometry } from './controller-C_0WIiYz.js'; +import { b2 as MultiPointGeometry } from './controller-C_0WIiYz.js'; +import { b3 as MultiPolygonGeometry } from './controller-C_0WIiYz.js'; +import { N as NoteElementCreate } from './controller-C_0WIiYz.js'; +import { o as NoteElementRead } from './controller-C_0WIiYz.js'; +import { p as NoteElementUpdate } from './controller-C_0WIiYz.js'; +import { bf as NoteToolSettings } from './controller-C_0WIiYz.js'; +import { bv as OnMapInteractionsOptions } from './controller-C_0WIiYz.js'; +import { P as PathElementCreate } from './controller-C_0WIiYz.js'; +import { q as PathElementRead } from './controller-C_0WIiYz.js'; +import { r as PathElementUpdate } from './controller-C_0WIiYz.js'; +import { bg as PinToolSettings } from './controller-C_0WIiYz.js'; +import { s as PlaceElementCreate } from './controller-C_0WIiYz.js'; +import { t as PlaceElementRead } from './controller-C_0WIiYz.js'; +import { u as PlaceElementUpdate } from './controller-C_0WIiYz.js'; +import { bh as PlaceFrame } from './controller-C_0WIiYz.js'; +import { bz as PlacementForUIElement } from './controller-C_0WIiYz.js'; +import { bi as PlaceSymbol } from './controller-C_0WIiYz.js'; +import { b4 as PointGeometry } from './controller-C_0WIiYz.js'; +import { v as PolygonElementCreate } from './controller-C_0WIiYz.js'; +import { w as PolygonElementRead } from './controller-C_0WIiYz.js'; +import { x as PolygonElementUpdate } from './controller-C_0WIiYz.js'; +import { b5 as PolygonGeometry } from './controller-C_0WIiYz.js'; +import { bj as PolygonToolSettings } from './controller-C_0WIiYz.js'; +import { aI as PrecomputedAggregationMethod } from './controller-C_0WIiYz.js'; +import { a9 as RasterBand } from './controller-C_0WIiYz.js'; +import { aa as RasterLayer } from './controller-C_0WIiYz.js'; +import { ab as RasterLayerSource } from './controller-C_0WIiYz.js'; +import { af as RasterValue } from './controller-C_0WIiYz.js'; +import { bk as RouteToolSettings } from './controller-C_0WIiYz.js'; +import { aU as SelectionController } from './controller-C_0WIiYz.js'; +import { ci as SetViewportCenterZoomParams } from './controller-C_0WIiYz.js'; +import { b6 as SetVisibilityRequest } from './controller-C_0WIiYz.js'; +import { b7 as SortConfig } from './controller-C_0WIiYz.js'; +import { b8 as SortDirection } from './controller-C_0WIiYz.js'; +import { T as TextElementCreate } from './controller-C_0WIiYz.js'; +import { y as TextElementRead } from './controller-C_0WIiYz.js'; +import { A as TextElementUpdate } from './controller-C_0WIiYz.js'; +import { bl as TextToolSettings } from './controller-C_0WIiYz.js'; +import { bp as ToolsController } from './controller-C_0WIiYz.js'; +import { bm as ToolSettingsChangeEvent } from './controller-C_0WIiYz.js'; +import { bn as ToolSettingsMap } from './controller-C_0WIiYz.js'; +import { bo as ToolType } from './controller-C_0WIiYz.js'; +import { ce as UIActionTriggerCreate } from './controller-C_0WIiYz.js'; +import { bC as UIButtonElement } from './controller-C_0WIiYz.js'; +import { bD as UIButtonElementCreate } from './controller-C_0WIiYz.js'; +import { bE as UIButtonElementUpdate } from './controller-C_0WIiYz.js'; +import { b_ as UIButtonRowElement } from './controller-C_0WIiYz.js'; +import { b$ as UIButtonRowElementCreate } from './controller-C_0WIiYz.js'; +import { c0 as UIButtonRowElementUpdate } from './controller-C_0WIiYz.js'; +import { c1 as UICheckboxGroupElement } from './controller-C_0WIiYz.js'; +import { c2 as UICheckboxGroupElementCreate } from './controller-C_0WIiYz.js'; +import { c3 as UICheckboxGroupElementUpdate } from './controller-C_0WIiYz.js'; +import { cd as UIControlElementOption } from './controller-C_0WIiYz.js'; +import { ch as UiController } from './controller-C_0WIiYz.js'; +import { U as UiControlsOptions } from './controller-C_0WIiYz.js'; +import { bL as UIDividerElement } from './controller-C_0WIiYz.js'; +import { bM as UIDividerElementCreate } from './controller-C_0WIiYz.js'; +import { bN as UIDividerElementUpdate } from './controller-C_0WIiYz.js'; +import { cf as uiFeatureAction } from './controller-C_0WIiYz.js'; +import { cg as uiFeatureActionCreate } from './controller-C_0WIiYz.js'; +import { bI as UIFlexibleSpaceElement } from './controller-C_0WIiYz.js'; +import { bJ as UIFlexibleSpaceElementCreate } from './controller-C_0WIiYz.js'; +import { bK as UIFlexibleSpaceElementUpdate } from './controller-C_0WIiYz.js'; +import { bX as UIGridContainerElement } from './controller-C_0WIiYz.js'; +import { bY as UIGridContainerElementCreate } from './controller-C_0WIiYz.js'; +import { bZ as UIGridContainerElementUpdate } from './controller-C_0WIiYz.js'; +import { ca as UIIframeElement } from './controller-C_0WIiYz.js'; +import { cb as UIIframeElementCreate } from './controller-C_0WIiYz.js'; +import { cc as UIIframeElementUpdate } from './controller-C_0WIiYz.js'; +import { bA as UIPanel } from './controller-C_0WIiYz.js'; +import { bB as UIPanelCreateOrUpdate } from './controller-C_0WIiYz.js'; +import { bU as UIPanelElement } from './controller-C_0WIiYz.js'; +import { bV as UIPanelElementCreate } from './controller-C_0WIiYz.js'; +import { bW as UIPanelElementUpdate } from './controller-C_0WIiYz.js'; +import { c4 as UIRadioGroupElement } from './controller-C_0WIiYz.js'; +import { c5 as UIRadioGroupElementCreate } from './controller-C_0WIiYz.js'; +import { c6 as UIRadioGroupElementUpdate } from './controller-C_0WIiYz.js'; +import { bR as UISelectElement } from './controller-C_0WIiYz.js'; +import { bS as UISelectElementCreate } from './controller-C_0WIiYz.js'; +import { bT as UISelectElementUpdate } from './controller-C_0WIiYz.js'; +import { bF as UITextElement } from './controller-C_0WIiYz.js'; +import { bG as UITextElementCreate } from './controller-C_0WIiYz.js'; +import { bH as UITextElementUpdate } from './controller-C_0WIiYz.js'; +import { bO as UITextInputElement } from './controller-C_0WIiYz.js'; +import { bP as UITextInputElementCreate } from './controller-C_0WIiYz.js'; +import { bQ as UITextInputElementUpdate } from './controller-C_0WIiYz.js'; +import { c7 as UIToggleGroupElement } from './controller-C_0WIiYz.js'; +import { c8 as UIToggleGroupElementCreate } from './controller-C_0WIiYz.js'; +import { c9 as UIToggleGroupElementUpdate } from './controller-C_0WIiYz.js'; +import { bw as UpdateActionTriggerParams } from './controller-C_0WIiYz.js'; +import { bx as UpdateFeatureActionParams } from './controller-C_0WIiYz.js'; +import { ac as UpdateLayerParams } from './controller-C_0WIiYz.js'; +import { by as UpdatePanelElementsParams } from './controller-C_0WIiYz.js'; +import { aJ as ValueConfiguration } from './controller-C_0WIiYz.js'; +import { ad as VectorLayer } from './controller-C_0WIiYz.js'; +import { V as ViewportCenterZoom } from './controller-C_0WIiYz.js'; +import { cj as ViewportConstraints } from './controller-C_0WIiYz.js'; +import { cm as ViewportController } from './controller-C_0WIiYz.js'; +import { ck as ViewportFitBoundsParams } from './controller-C_0WIiYz.js'; +import { cl as ViewportState } from './controller-C_0WIiYz.js'; +import { z } from './controller-C_0WIiYz.js'; import { z as z_2 } from 'zod'; export { AggregatedGridConfig } diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index 4af44d4a..19cfb45e 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -79,8 +79,11 @@ export interface UIFeatureActionCreate * Represents a feature action after creation (with generated id). * @public */ -export type UIFeatureAction = UIFeatureActionCreate & { +export type UIFeatureAction = { id: string; + layerIds?: string[]; + geometryTypes?: Array<"Polygon" | "Point" | "Line" | "Raster">; + onTrigger: (args: { feature: LayerFeature }) => void; }; /** From 5c14988300301af74632c915ae510200550b7706 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 16:21:20 -0400 Subject: [PATCH 07/10] tweaks --- etc/js-sdk.api.md | 410 +++++++++---------- src/modules/ui/uiElements/UIFeatureAction.ts | 2 - 2 files changed, 205 insertions(+), 207 deletions(-) diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index d7deec6d..f8f8d5d9 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -4,211 +4,211 @@ ```ts -import { av as AggregatedGridConfig } from './controller-C_0WIiYz.js'; -import { aw as AggregationConfig } from './controller-C_0WIiYz.js'; -import { ax as AggregationMethod } from './controller-C_0WIiYz.js'; -import { C as CircleElementCreate } from './controller-C_0WIiYz.js'; -import { a as CircleElementRead } from './controller-C_0WIiYz.js'; -import { b as CircleElementUpdate } from './controller-C_0WIiYz.js'; -import { b9 as CircleToolSettings } from './controller-C_0WIiYz.js'; -import { ba as ConfigurableToolType } from './controller-C_0WIiYz.js'; -import { ay as CountGridConfig } from './controller-C_0WIiYz.js'; -import { bq as CreateActionTriggerParams } from './controller-C_0WIiYz.js'; -import { br as CreateFeatureActionParams } from './controller-C_0WIiYz.js'; -import { K as CreateLayersFromGeoJsonParams } from './controller-C_0WIiYz.js'; -import { bs as CreateOrUpdatePanelParams } from './controller-C_0WIiYz.js'; -import { bt as CreatePanelElementsParams } from './controller-C_0WIiYz.js'; -import { O as DataOnlyLayer } from './controller-C_0WIiYz.js'; -import { bu as DeletePanelElementsParams } from './controller-C_0WIiYz.js'; -import { E as Element_2 } from './controller-C_0WIiYz.js'; -import { c as ElementChangeCallbackParams } from './controller-C_0WIiYz.js'; -import { d as ElementCreate } from './controller-C_0WIiYz.js'; -import { e as ElementGroup } from './controller-C_0WIiYz.js'; -import { f as ElementGroupChangeCallbackParams } from './controller-C_0WIiYz.js'; -import { aN as ElementGroupNode } from './controller-C_0WIiYz.js'; -import { aO as ElementNode } from './controller-C_0WIiYz.js'; -import { B as ElementsController } from './controller-C_0WIiYz.js'; -import { g as ElementUpdate } from './controller-C_0WIiYz.js'; -import { aP as EntityNode } from './controller-C_0WIiYz.js'; -import { aQ as FeatureNode } from './controller-C_0WIiYz.js'; -import { aR as FeatureSelection } from './controller-C_0WIiYz.js'; -import { aV as FeltBoundary } from './controller-C_0WIiYz.js'; -import { F as FeltController } from './controller-C_0WIiYz.js'; -import { Q as FeltTiledVectorSource } from './controller-C_0WIiYz.js'; -import { aW as FeltZoom } from './controller-C_0WIiYz.js'; -import { ao as FilterExpression } from './controller-C_0WIiYz.js'; -import { ap as FilterLogicGate } from './controller-C_0WIiYz.js'; -import { ar as Filters } from './controller-C_0WIiYz.js'; -import { aq as FilterTernary } from './controller-C_0WIiYz.js'; -import { R as GeoJsonDataVectorSource } from './controller-C_0WIiYz.js'; -import { aX as GeoJsonFeature } from './controller-C_0WIiYz.js'; -import { S as GeoJsonFileVectorSource } from './controller-C_0WIiYz.js'; -import { aY as GeoJsonGeometry } from './controller-C_0WIiYz.js'; -import { aZ as GeoJsonProperties } from './controller-C_0WIiYz.js'; -import { W as GeoJsonUrlVectorSource } from './controller-C_0WIiYz.js'; -import { as as GeometryFilter } from './controller-C_0WIiYz.js'; -import { G as GetElementGroupsConstraint } from './controller-C_0WIiYz.js'; -import { h as GetElementsConstraint } from './controller-C_0WIiYz.js'; -import { az as GetLayerCalculationParams } from './controller-C_0WIiYz.js'; -import { aA as GetLayerCategoriesGroup } from './controller-C_0WIiYz.js'; -import { aB as GetLayerCategoriesParams } from './controller-C_0WIiYz.js'; -import { X as GetLayerGroupsConstraint } from './controller-C_0WIiYz.js'; -import { aC as GetLayerHistogramBin } from './controller-C_0WIiYz.js'; -import { aD as GetLayerHistogramParams } from './controller-C_0WIiYz.js'; -import { aE as GetLayerPrecomputedCalculationParams } from './controller-C_0WIiYz.js'; -import { Y as GetLayersConstraint } from './controller-C_0WIiYz.js'; -import { Z as GetRenderedFeaturesConstraint } from './controller-C_0WIiYz.js'; -import { aF as GridConfig } from './controller-C_0WIiYz.js'; -import { aG as GridType } from './controller-C_0WIiYz.js'; -import { H as HighlighterElementCreate } from './controller-C_0WIiYz.js'; -import { i as HighlighterElementRead } from './controller-C_0WIiYz.js'; -import { j as HighlighterElementUpdate } from './controller-C_0WIiYz.js'; -import { bb as HighlighterToolSettings } from './controller-C_0WIiYz.js'; -import { I as ImageElementCreate } from './controller-C_0WIiYz.js'; -import { k as ImageElementRead } from './controller-C_0WIiYz.js'; -import { l as ImageElementUpdate } from './controller-C_0WIiYz.js'; -import { bc as InputToolSettings } from './controller-C_0WIiYz.js'; -import { J as InteractionsController } from './controller-C_0WIiYz.js'; -import { a_ as LatLng } from './controller-C_0WIiYz.js'; -import { _ as Layer } from './controller-C_0WIiYz.js'; -import { at as LayerBoundaries } from './controller-C_0WIiYz.js'; -import { $ as LayerChangeCallbackParams } from './controller-C_0WIiYz.js'; -import { a0 as LayerCommon } from './controller-C_0WIiYz.js'; -import { ae as LayerFeature } from './controller-C_0WIiYz.js'; -import { au as LayerFilters } from './controller-C_0WIiYz.js'; -import { a1 as LayerGroup } from './controller-C_0WIiYz.js'; -import { a2 as LayerGroupChangeCallbackParams } from './controller-C_0WIiYz.js'; -import { aS as LayerGroupNode } from './controller-C_0WIiYz.js'; -import { aT as LayerNode } from './controller-C_0WIiYz.js'; -import { a3 as LayerProcessingStatus } from './controller-C_0WIiYz.js'; -import { ag as LayerSchema } from './controller-C_0WIiYz.js'; -import { ah as LayerSchemaAttribute } from './controller-C_0WIiYz.js'; -import { ai as LayerSchemaBooleanAttribute } from './controller-C_0WIiYz.js'; -import { aj as LayerSchemaCommonAttribute } from './controller-C_0WIiYz.js'; -import { ak as LayerSchemaDateAttribute } from './controller-C_0WIiYz.js'; -import { al as LayerSchemaDateTimeAttribute } from './controller-C_0WIiYz.js'; -import { am as LayerSchemaNumericAttribute } from './controller-C_0WIiYz.js'; -import { an as LayerSchemaTextAttribute } from './controller-C_0WIiYz.js'; -import { aK as LayersController } from './controller-C_0WIiYz.js'; -import { a4 as LegendDisplay } from './controller-C_0WIiYz.js'; -import { a5 as LegendItem } from './controller-C_0WIiYz.js'; -import { a6 as LegendItemChangeCallbackParams } from './controller-C_0WIiYz.js'; -import { a7 as LegendItemIdentifier } from './controller-C_0WIiYz.js'; -import { a8 as LegendItemsConstraint } from './controller-C_0WIiYz.js'; -import { a$ as LineStringGeometry } from './controller-C_0WIiYz.js'; -import { bd as LineToolSettings } from './controller-C_0WIiYz.js'; -import { L as LinkElementRead } from './controller-C_0WIiYz.js'; -import { b0 as LngLatTuple } from './controller-C_0WIiYz.js'; -import { aL as MapDetails } from './controller-C_0WIiYz.js'; -import { D as MapInteractionEvent } from './controller-C_0WIiYz.js'; -import { M as MarkerElementCreate } from './controller-C_0WIiYz.js'; -import { m as MarkerElementRead } from './controller-C_0WIiYz.js'; -import { n as MarkerElementUpdate } from './controller-C_0WIiYz.js'; -import { be as MarkerToolSettings } from './controller-C_0WIiYz.js'; -import { aM as MiscController } from './controller-C_0WIiYz.js'; -import { aH as MultiAggregationConfig } from './controller-C_0WIiYz.js'; -import { b1 as MultiLineStringGeometry } from './controller-C_0WIiYz.js'; -import { b2 as MultiPointGeometry } from './controller-C_0WIiYz.js'; -import { b3 as MultiPolygonGeometry } from './controller-C_0WIiYz.js'; -import { N as NoteElementCreate } from './controller-C_0WIiYz.js'; -import { o as NoteElementRead } from './controller-C_0WIiYz.js'; -import { p as NoteElementUpdate } from './controller-C_0WIiYz.js'; -import { bf as NoteToolSettings } from './controller-C_0WIiYz.js'; -import { bv as OnMapInteractionsOptions } from './controller-C_0WIiYz.js'; -import { P as PathElementCreate } from './controller-C_0WIiYz.js'; -import { q as PathElementRead } from './controller-C_0WIiYz.js'; -import { r as PathElementUpdate } from './controller-C_0WIiYz.js'; -import { bg as PinToolSettings } from './controller-C_0WIiYz.js'; -import { s as PlaceElementCreate } from './controller-C_0WIiYz.js'; -import { t as PlaceElementRead } from './controller-C_0WIiYz.js'; -import { u as PlaceElementUpdate } from './controller-C_0WIiYz.js'; -import { bh as PlaceFrame } from './controller-C_0WIiYz.js'; -import { bz as PlacementForUIElement } from './controller-C_0WIiYz.js'; -import { bi as PlaceSymbol } from './controller-C_0WIiYz.js'; -import { b4 as PointGeometry } from './controller-C_0WIiYz.js'; -import { v as PolygonElementCreate } from './controller-C_0WIiYz.js'; -import { w as PolygonElementRead } from './controller-C_0WIiYz.js'; -import { x as PolygonElementUpdate } from './controller-C_0WIiYz.js'; -import { b5 as PolygonGeometry } from './controller-C_0WIiYz.js'; -import { bj as PolygonToolSettings } from './controller-C_0WIiYz.js'; -import { aI as PrecomputedAggregationMethod } from './controller-C_0WIiYz.js'; -import { a9 as RasterBand } from './controller-C_0WIiYz.js'; -import { aa as RasterLayer } from './controller-C_0WIiYz.js'; -import { ab as RasterLayerSource } from './controller-C_0WIiYz.js'; -import { af as RasterValue } from './controller-C_0WIiYz.js'; -import { bk as RouteToolSettings } from './controller-C_0WIiYz.js'; -import { aU as SelectionController } from './controller-C_0WIiYz.js'; -import { ci as SetViewportCenterZoomParams } from './controller-C_0WIiYz.js'; -import { b6 as SetVisibilityRequest } from './controller-C_0WIiYz.js'; -import { b7 as SortConfig } from './controller-C_0WIiYz.js'; -import { b8 as SortDirection } from './controller-C_0WIiYz.js'; -import { T as TextElementCreate } from './controller-C_0WIiYz.js'; -import { y as TextElementRead } from './controller-C_0WIiYz.js'; -import { A as TextElementUpdate } from './controller-C_0WIiYz.js'; -import { bl as TextToolSettings } from './controller-C_0WIiYz.js'; -import { bp as ToolsController } from './controller-C_0WIiYz.js'; -import { bm as ToolSettingsChangeEvent } from './controller-C_0WIiYz.js'; -import { bn as ToolSettingsMap } from './controller-C_0WIiYz.js'; -import { bo as ToolType } from './controller-C_0WIiYz.js'; -import { ce as UIActionTriggerCreate } from './controller-C_0WIiYz.js'; -import { bC as UIButtonElement } from './controller-C_0WIiYz.js'; -import { bD as UIButtonElementCreate } from './controller-C_0WIiYz.js'; -import { bE as UIButtonElementUpdate } from './controller-C_0WIiYz.js'; -import { b_ as UIButtonRowElement } from './controller-C_0WIiYz.js'; -import { b$ as UIButtonRowElementCreate } from './controller-C_0WIiYz.js'; -import { c0 as UIButtonRowElementUpdate } from './controller-C_0WIiYz.js'; -import { c1 as UICheckboxGroupElement } from './controller-C_0WIiYz.js'; -import { c2 as UICheckboxGroupElementCreate } from './controller-C_0WIiYz.js'; -import { c3 as UICheckboxGroupElementUpdate } from './controller-C_0WIiYz.js'; -import { cd as UIControlElementOption } from './controller-C_0WIiYz.js'; -import { ch as UiController } from './controller-C_0WIiYz.js'; -import { U as UiControlsOptions } from './controller-C_0WIiYz.js'; -import { bL as UIDividerElement } from './controller-C_0WIiYz.js'; -import { bM as UIDividerElementCreate } from './controller-C_0WIiYz.js'; -import { bN as UIDividerElementUpdate } from './controller-C_0WIiYz.js'; -import { cf as uiFeatureAction } from './controller-C_0WIiYz.js'; -import { cg as uiFeatureActionCreate } from './controller-C_0WIiYz.js'; -import { bI as UIFlexibleSpaceElement } from './controller-C_0WIiYz.js'; -import { bJ as UIFlexibleSpaceElementCreate } from './controller-C_0WIiYz.js'; -import { bK as UIFlexibleSpaceElementUpdate } from './controller-C_0WIiYz.js'; -import { bX as UIGridContainerElement } from './controller-C_0WIiYz.js'; -import { bY as UIGridContainerElementCreate } from './controller-C_0WIiYz.js'; -import { bZ as UIGridContainerElementUpdate } from './controller-C_0WIiYz.js'; -import { ca as UIIframeElement } from './controller-C_0WIiYz.js'; -import { cb as UIIframeElementCreate } from './controller-C_0WIiYz.js'; -import { cc as UIIframeElementUpdate } from './controller-C_0WIiYz.js'; -import { bA as UIPanel } from './controller-C_0WIiYz.js'; -import { bB as UIPanelCreateOrUpdate } from './controller-C_0WIiYz.js'; -import { bU as UIPanelElement } from './controller-C_0WIiYz.js'; -import { bV as UIPanelElementCreate } from './controller-C_0WIiYz.js'; -import { bW as UIPanelElementUpdate } from './controller-C_0WIiYz.js'; -import { c4 as UIRadioGroupElement } from './controller-C_0WIiYz.js'; -import { c5 as UIRadioGroupElementCreate } from './controller-C_0WIiYz.js'; -import { c6 as UIRadioGroupElementUpdate } from './controller-C_0WIiYz.js'; -import { bR as UISelectElement } from './controller-C_0WIiYz.js'; -import { bS as UISelectElementCreate } from './controller-C_0WIiYz.js'; -import { bT as UISelectElementUpdate } from './controller-C_0WIiYz.js'; -import { bF as UITextElement } from './controller-C_0WIiYz.js'; -import { bG as UITextElementCreate } from './controller-C_0WIiYz.js'; -import { bH as UITextElementUpdate } from './controller-C_0WIiYz.js'; -import { bO as UITextInputElement } from './controller-C_0WIiYz.js'; -import { bP as UITextInputElementCreate } from './controller-C_0WIiYz.js'; -import { bQ as UITextInputElementUpdate } from './controller-C_0WIiYz.js'; -import { c7 as UIToggleGroupElement } from './controller-C_0WIiYz.js'; -import { c8 as UIToggleGroupElementCreate } from './controller-C_0WIiYz.js'; -import { c9 as UIToggleGroupElementUpdate } from './controller-C_0WIiYz.js'; -import { bw as UpdateActionTriggerParams } from './controller-C_0WIiYz.js'; -import { bx as UpdateFeatureActionParams } from './controller-C_0WIiYz.js'; -import { ac as UpdateLayerParams } from './controller-C_0WIiYz.js'; -import { by as UpdatePanelElementsParams } from './controller-C_0WIiYz.js'; -import { aJ as ValueConfiguration } from './controller-C_0WIiYz.js'; -import { ad as VectorLayer } from './controller-C_0WIiYz.js'; -import { V as ViewportCenterZoom } from './controller-C_0WIiYz.js'; -import { cj as ViewportConstraints } from './controller-C_0WIiYz.js'; -import { cm as ViewportController } from './controller-C_0WIiYz.js'; -import { ck as ViewportFitBoundsParams } from './controller-C_0WIiYz.js'; -import { cl as ViewportState } from './controller-C_0WIiYz.js'; -import { z } from './controller-C_0WIiYz.js'; +import { av as AggregatedGridConfig } from './controller-BtLDB1Ka.js'; +import { aw as AggregationConfig } from './controller-BtLDB1Ka.js'; +import { ax as AggregationMethod } from './controller-BtLDB1Ka.js'; +import { C as CircleElementCreate } from './controller-BtLDB1Ka.js'; +import { a as CircleElementRead } from './controller-BtLDB1Ka.js'; +import { b as CircleElementUpdate } from './controller-BtLDB1Ka.js'; +import { b9 as CircleToolSettings } from './controller-BtLDB1Ka.js'; +import { ba as ConfigurableToolType } from './controller-BtLDB1Ka.js'; +import { ay as CountGridConfig } from './controller-BtLDB1Ka.js'; +import { bq as CreateActionTriggerParams } from './controller-BtLDB1Ka.js'; +import { br as CreateFeatureActionParams } from './controller-BtLDB1Ka.js'; +import { K as CreateLayersFromGeoJsonParams } from './controller-BtLDB1Ka.js'; +import { bs as CreateOrUpdatePanelParams } from './controller-BtLDB1Ka.js'; +import { bt as CreatePanelElementsParams } from './controller-BtLDB1Ka.js'; +import { O as DataOnlyLayer } from './controller-BtLDB1Ka.js'; +import { bu as DeletePanelElementsParams } from './controller-BtLDB1Ka.js'; +import { E as Element_2 } from './controller-BtLDB1Ka.js'; +import { c as ElementChangeCallbackParams } from './controller-BtLDB1Ka.js'; +import { d as ElementCreate } from './controller-BtLDB1Ka.js'; +import { e as ElementGroup } from './controller-BtLDB1Ka.js'; +import { f as ElementGroupChangeCallbackParams } from './controller-BtLDB1Ka.js'; +import { aN as ElementGroupNode } from './controller-BtLDB1Ka.js'; +import { aO as ElementNode } from './controller-BtLDB1Ka.js'; +import { B as ElementsController } from './controller-BtLDB1Ka.js'; +import { g as ElementUpdate } from './controller-BtLDB1Ka.js'; +import { aP as EntityNode } from './controller-BtLDB1Ka.js'; +import { aQ as FeatureNode } from './controller-BtLDB1Ka.js'; +import { aR as FeatureSelection } from './controller-BtLDB1Ka.js'; +import { aV as FeltBoundary } from './controller-BtLDB1Ka.js'; +import { F as FeltController } from './controller-BtLDB1Ka.js'; +import { Q as FeltTiledVectorSource } from './controller-BtLDB1Ka.js'; +import { aW as FeltZoom } from './controller-BtLDB1Ka.js'; +import { ao as FilterExpression } from './controller-BtLDB1Ka.js'; +import { ap as FilterLogicGate } from './controller-BtLDB1Ka.js'; +import { ar as Filters } from './controller-BtLDB1Ka.js'; +import { aq as FilterTernary } from './controller-BtLDB1Ka.js'; +import { R as GeoJsonDataVectorSource } from './controller-BtLDB1Ka.js'; +import { aX as GeoJsonFeature } from './controller-BtLDB1Ka.js'; +import { S as GeoJsonFileVectorSource } from './controller-BtLDB1Ka.js'; +import { aY as GeoJsonGeometry } from './controller-BtLDB1Ka.js'; +import { aZ as GeoJsonProperties } from './controller-BtLDB1Ka.js'; +import { W as GeoJsonUrlVectorSource } from './controller-BtLDB1Ka.js'; +import { as as GeometryFilter } from './controller-BtLDB1Ka.js'; +import { G as GetElementGroupsConstraint } from './controller-BtLDB1Ka.js'; +import { h as GetElementsConstraint } from './controller-BtLDB1Ka.js'; +import { az as GetLayerCalculationParams } from './controller-BtLDB1Ka.js'; +import { aA as GetLayerCategoriesGroup } from './controller-BtLDB1Ka.js'; +import { aB as GetLayerCategoriesParams } from './controller-BtLDB1Ka.js'; +import { X as GetLayerGroupsConstraint } from './controller-BtLDB1Ka.js'; +import { aC as GetLayerHistogramBin } from './controller-BtLDB1Ka.js'; +import { aD as GetLayerHistogramParams } from './controller-BtLDB1Ka.js'; +import { aE as GetLayerPrecomputedCalculationParams } from './controller-BtLDB1Ka.js'; +import { Y as GetLayersConstraint } from './controller-BtLDB1Ka.js'; +import { Z as GetRenderedFeaturesConstraint } from './controller-BtLDB1Ka.js'; +import { aF as GridConfig } from './controller-BtLDB1Ka.js'; +import { aG as GridType } from './controller-BtLDB1Ka.js'; +import { H as HighlighterElementCreate } from './controller-BtLDB1Ka.js'; +import { i as HighlighterElementRead } from './controller-BtLDB1Ka.js'; +import { j as HighlighterElementUpdate } from './controller-BtLDB1Ka.js'; +import { bb as HighlighterToolSettings } from './controller-BtLDB1Ka.js'; +import { I as ImageElementCreate } from './controller-BtLDB1Ka.js'; +import { k as ImageElementRead } from './controller-BtLDB1Ka.js'; +import { l as ImageElementUpdate } from './controller-BtLDB1Ka.js'; +import { bc as InputToolSettings } from './controller-BtLDB1Ka.js'; +import { J as InteractionsController } from './controller-BtLDB1Ka.js'; +import { a_ as LatLng } from './controller-BtLDB1Ka.js'; +import { _ as Layer } from './controller-BtLDB1Ka.js'; +import { at as LayerBoundaries } from './controller-BtLDB1Ka.js'; +import { $ as LayerChangeCallbackParams } from './controller-BtLDB1Ka.js'; +import { a0 as LayerCommon } from './controller-BtLDB1Ka.js'; +import { ae as LayerFeature } from './controller-BtLDB1Ka.js'; +import { au as LayerFilters } from './controller-BtLDB1Ka.js'; +import { a1 as LayerGroup } from './controller-BtLDB1Ka.js'; +import { a2 as LayerGroupChangeCallbackParams } from './controller-BtLDB1Ka.js'; +import { aS as LayerGroupNode } from './controller-BtLDB1Ka.js'; +import { aT as LayerNode } from './controller-BtLDB1Ka.js'; +import { a3 as LayerProcessingStatus } from './controller-BtLDB1Ka.js'; +import { ag as LayerSchema } from './controller-BtLDB1Ka.js'; +import { ah as LayerSchemaAttribute } from './controller-BtLDB1Ka.js'; +import { ai as LayerSchemaBooleanAttribute } from './controller-BtLDB1Ka.js'; +import { aj as LayerSchemaCommonAttribute } from './controller-BtLDB1Ka.js'; +import { ak as LayerSchemaDateAttribute } from './controller-BtLDB1Ka.js'; +import { al as LayerSchemaDateTimeAttribute } from './controller-BtLDB1Ka.js'; +import { am as LayerSchemaNumericAttribute } from './controller-BtLDB1Ka.js'; +import { an as LayerSchemaTextAttribute } from './controller-BtLDB1Ka.js'; +import { aK as LayersController } from './controller-BtLDB1Ka.js'; +import { a4 as LegendDisplay } from './controller-BtLDB1Ka.js'; +import { a5 as LegendItem } from './controller-BtLDB1Ka.js'; +import { a6 as LegendItemChangeCallbackParams } from './controller-BtLDB1Ka.js'; +import { a7 as LegendItemIdentifier } from './controller-BtLDB1Ka.js'; +import { a8 as LegendItemsConstraint } from './controller-BtLDB1Ka.js'; +import { a$ as LineStringGeometry } from './controller-BtLDB1Ka.js'; +import { bd as LineToolSettings } from './controller-BtLDB1Ka.js'; +import { L as LinkElementRead } from './controller-BtLDB1Ka.js'; +import { b0 as LngLatTuple } from './controller-BtLDB1Ka.js'; +import { aL as MapDetails } from './controller-BtLDB1Ka.js'; +import { D as MapInteractionEvent } from './controller-BtLDB1Ka.js'; +import { M as MarkerElementCreate } from './controller-BtLDB1Ka.js'; +import { m as MarkerElementRead } from './controller-BtLDB1Ka.js'; +import { n as MarkerElementUpdate } from './controller-BtLDB1Ka.js'; +import { be as MarkerToolSettings } from './controller-BtLDB1Ka.js'; +import { aM as MiscController } from './controller-BtLDB1Ka.js'; +import { aH as MultiAggregationConfig } from './controller-BtLDB1Ka.js'; +import { b1 as MultiLineStringGeometry } from './controller-BtLDB1Ka.js'; +import { b2 as MultiPointGeometry } from './controller-BtLDB1Ka.js'; +import { b3 as MultiPolygonGeometry } from './controller-BtLDB1Ka.js'; +import { N as NoteElementCreate } from './controller-BtLDB1Ka.js'; +import { o as NoteElementRead } from './controller-BtLDB1Ka.js'; +import { p as NoteElementUpdate } from './controller-BtLDB1Ka.js'; +import { bf as NoteToolSettings } from './controller-BtLDB1Ka.js'; +import { bv as OnMapInteractionsOptions } from './controller-BtLDB1Ka.js'; +import { P as PathElementCreate } from './controller-BtLDB1Ka.js'; +import { q as PathElementRead } from './controller-BtLDB1Ka.js'; +import { r as PathElementUpdate } from './controller-BtLDB1Ka.js'; +import { bg as PinToolSettings } from './controller-BtLDB1Ka.js'; +import { s as PlaceElementCreate } from './controller-BtLDB1Ka.js'; +import { t as PlaceElementRead } from './controller-BtLDB1Ka.js'; +import { u as PlaceElementUpdate } from './controller-BtLDB1Ka.js'; +import { bh as PlaceFrame } from './controller-BtLDB1Ka.js'; +import { bz as PlacementForUIElement } from './controller-BtLDB1Ka.js'; +import { bi as PlaceSymbol } from './controller-BtLDB1Ka.js'; +import { b4 as PointGeometry } from './controller-BtLDB1Ka.js'; +import { v as PolygonElementCreate } from './controller-BtLDB1Ka.js'; +import { w as PolygonElementRead } from './controller-BtLDB1Ka.js'; +import { x as PolygonElementUpdate } from './controller-BtLDB1Ka.js'; +import { b5 as PolygonGeometry } from './controller-BtLDB1Ka.js'; +import { bj as PolygonToolSettings } from './controller-BtLDB1Ka.js'; +import { aI as PrecomputedAggregationMethod } from './controller-BtLDB1Ka.js'; +import { a9 as RasterBand } from './controller-BtLDB1Ka.js'; +import { aa as RasterLayer } from './controller-BtLDB1Ka.js'; +import { ab as RasterLayerSource } from './controller-BtLDB1Ka.js'; +import { af as RasterValue } from './controller-BtLDB1Ka.js'; +import { bk as RouteToolSettings } from './controller-BtLDB1Ka.js'; +import { aU as SelectionController } from './controller-BtLDB1Ka.js'; +import { ci as SetViewportCenterZoomParams } from './controller-BtLDB1Ka.js'; +import { b6 as SetVisibilityRequest } from './controller-BtLDB1Ka.js'; +import { b7 as SortConfig } from './controller-BtLDB1Ka.js'; +import { b8 as SortDirection } from './controller-BtLDB1Ka.js'; +import { T as TextElementCreate } from './controller-BtLDB1Ka.js'; +import { y as TextElementRead } from './controller-BtLDB1Ka.js'; +import { A as TextElementUpdate } from './controller-BtLDB1Ka.js'; +import { bl as TextToolSettings } from './controller-BtLDB1Ka.js'; +import { bp as ToolsController } from './controller-BtLDB1Ka.js'; +import { bm as ToolSettingsChangeEvent } from './controller-BtLDB1Ka.js'; +import { bn as ToolSettingsMap } from './controller-BtLDB1Ka.js'; +import { bo as ToolType } from './controller-BtLDB1Ka.js'; +import { ce as UIActionTriggerCreate } from './controller-BtLDB1Ka.js'; +import { bC as UIButtonElement } from './controller-BtLDB1Ka.js'; +import { bD as UIButtonElementCreate } from './controller-BtLDB1Ka.js'; +import { bE as UIButtonElementUpdate } from './controller-BtLDB1Ka.js'; +import { b_ as UIButtonRowElement } from './controller-BtLDB1Ka.js'; +import { b$ as UIButtonRowElementCreate } from './controller-BtLDB1Ka.js'; +import { c0 as UIButtonRowElementUpdate } from './controller-BtLDB1Ka.js'; +import { c1 as UICheckboxGroupElement } from './controller-BtLDB1Ka.js'; +import { c2 as UICheckboxGroupElementCreate } from './controller-BtLDB1Ka.js'; +import { c3 as UICheckboxGroupElementUpdate } from './controller-BtLDB1Ka.js'; +import { cd as UIControlElementOption } from './controller-BtLDB1Ka.js'; +import { ch as UiController } from './controller-BtLDB1Ka.js'; +import { U as UiControlsOptions } from './controller-BtLDB1Ka.js'; +import { bL as UIDividerElement } from './controller-BtLDB1Ka.js'; +import { bM as UIDividerElementCreate } from './controller-BtLDB1Ka.js'; +import { bN as UIDividerElementUpdate } from './controller-BtLDB1Ka.js'; +import { cf as uiFeatureAction } from './controller-BtLDB1Ka.js'; +import { cg as uiFeatureActionCreate } from './controller-BtLDB1Ka.js'; +import { bI as UIFlexibleSpaceElement } from './controller-BtLDB1Ka.js'; +import { bJ as UIFlexibleSpaceElementCreate } from './controller-BtLDB1Ka.js'; +import { bK as UIFlexibleSpaceElementUpdate } from './controller-BtLDB1Ka.js'; +import { bX as UIGridContainerElement } from './controller-BtLDB1Ka.js'; +import { bY as UIGridContainerElementCreate } from './controller-BtLDB1Ka.js'; +import { bZ as UIGridContainerElementUpdate } from './controller-BtLDB1Ka.js'; +import { ca as UIIframeElement } from './controller-BtLDB1Ka.js'; +import { cb as UIIframeElementCreate } from './controller-BtLDB1Ka.js'; +import { cc as UIIframeElementUpdate } from './controller-BtLDB1Ka.js'; +import { bA as UIPanel } from './controller-BtLDB1Ka.js'; +import { bB as UIPanelCreateOrUpdate } from './controller-BtLDB1Ka.js'; +import { bU as UIPanelElement } from './controller-BtLDB1Ka.js'; +import { bV as UIPanelElementCreate } from './controller-BtLDB1Ka.js'; +import { bW as UIPanelElementUpdate } from './controller-BtLDB1Ka.js'; +import { c4 as UIRadioGroupElement } from './controller-BtLDB1Ka.js'; +import { c5 as UIRadioGroupElementCreate } from './controller-BtLDB1Ka.js'; +import { c6 as UIRadioGroupElementUpdate } from './controller-BtLDB1Ka.js'; +import { bR as UISelectElement } from './controller-BtLDB1Ka.js'; +import { bS as UISelectElementCreate } from './controller-BtLDB1Ka.js'; +import { bT as UISelectElementUpdate } from './controller-BtLDB1Ka.js'; +import { bF as UITextElement } from './controller-BtLDB1Ka.js'; +import { bG as UITextElementCreate } from './controller-BtLDB1Ka.js'; +import { bH as UITextElementUpdate } from './controller-BtLDB1Ka.js'; +import { bO as UITextInputElement } from './controller-BtLDB1Ka.js'; +import { bP as UITextInputElementCreate } from './controller-BtLDB1Ka.js'; +import { bQ as UITextInputElementUpdate } from './controller-BtLDB1Ka.js'; +import { c7 as UIToggleGroupElement } from './controller-BtLDB1Ka.js'; +import { c8 as UIToggleGroupElementCreate } from './controller-BtLDB1Ka.js'; +import { c9 as UIToggleGroupElementUpdate } from './controller-BtLDB1Ka.js'; +import { bw as UpdateActionTriggerParams } from './controller-BtLDB1Ka.js'; +import { bx as UpdateFeatureActionParams } from './controller-BtLDB1Ka.js'; +import { ac as UpdateLayerParams } from './controller-BtLDB1Ka.js'; +import { by as UpdatePanelElementsParams } from './controller-BtLDB1Ka.js'; +import { aJ as ValueConfiguration } from './controller-BtLDB1Ka.js'; +import { ad as VectorLayer } from './controller-BtLDB1Ka.js'; +import { V as ViewportCenterZoom } from './controller-BtLDB1Ka.js'; +import { cj as ViewportConstraints } from './controller-BtLDB1Ka.js'; +import { cm as ViewportController } from './controller-BtLDB1Ka.js'; +import { ck as ViewportFitBoundsParams } from './controller-BtLDB1Ka.js'; +import { cl as ViewportState } from './controller-BtLDB1Ka.js'; +import { z } from './controller-BtLDB1Ka.js'; import { z as z_2 } from 'zod'; export { AggregatedGridConfig } diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index 19cfb45e..0edba9e6 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -77,7 +77,6 @@ export interface UIFeatureActionCreate /** * Represents a feature action after creation (with generated id). - * @public */ export type UIFeatureAction = { id: string; @@ -88,7 +87,6 @@ export type UIFeatureAction = { /** * Represents a feature action after creation (with generated id). - * @public */ export type UIFeatureActionUpdate = Partial & { id: string; From cc27039e936b3e161adf40cca67ca34a62e1e494 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Thu, 25 Sep 2025 16:23:44 -0400 Subject: [PATCH 08/10] tweaks --- src/modules/ui/uiElements/UIFeatureAction.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index 0edba9e6..eb6c419c 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -84,10 +84,3 @@ export type UIFeatureAction = { geometryTypes?: Array<"Polygon" | "Point" | "Line" | "Raster">; onTrigger: (args: { feature: LayerFeature }) => void; }; - -/** - * Represents a feature action after creation (with generated id). - */ -export type UIFeatureActionUpdate = Partial & { - id: string; -}; From e2d85ef2b880ebf562536c1e6ae6baa7ad0c97e0 Mon Sep 17 00:00:00 2001 From: Sukanya Aneja Date: Fri, 26 Sep 2025 08:08:22 -0400 Subject: [PATCH 09/10] docs(changeset): Add feature actions --- .changeset/empty-camels-pay.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/empty-camels-pay.md diff --git a/.changeset/empty-camels-pay.md b/.changeset/empty-camels-pay.md new file mode 100644 index 00000000..205d9f63 --- /dev/null +++ b/.changeset/empty-camels-pay.md @@ -0,0 +1,5 @@ +--- +"@feltmaps/js-sdk": minor +--- + +Add feature actions From 493a6477064dc714ddb0d49c3895272ace35c07f Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Fri, 26 Sep 2025 17:34:05 +0200 Subject: [PATCH 10/10] Fix types --- docs/UI/UpdateFeatureActionParams.md | 6 + docs/UI/uiFeatureAction.md | 6 +- etc/js-sdk.api.md | 410 +++++++++---------- src/modules/ui/uiElements/UIFeatureAction.ts | 4 +- 4 files changed, 219 insertions(+), 207 deletions(-) diff --git a/docs/UI/UpdateFeatureActionParams.md b/docs/UI/UpdateFeatureActionParams.md index 3cae9400..af8e1bdf 100644 --- a/docs/UI/UpdateFeatureActionParams.md +++ b/docs/UI/UpdateFeatureActionParams.md @@ -8,6 +8,12 @@ *** +## label? + +> `optional` **label**: `string` + +*** + ## layerIds? > `optional` **layerIds**: `string`\[] diff --git a/docs/UI/uiFeatureAction.md b/docs/UI/uiFeatureAction.md index af148b60..5d1258eb 100644 --- a/docs/UI/uiFeatureAction.md +++ b/docs/UI/uiFeatureAction.md @@ -1,6 +1,6 @@ *** -> **uiFeatureAction**: \{ `id`: `string`; `onTrigger`: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void`; `layerIds`: `string`\[]; `geometryTypes`: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[]; } +> **uiFeatureAction**: \{ `id`: `string`; `label`: `string`; `onTrigger`: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void`; `layerIds`: `string`\[]; `geometryTypes`: (`"Polygon"` | `"Point"` | `"Line"` | `"Raster"`)\[]; } Represents a feature action after creation (with generated id). @@ -10,6 +10,10 @@ Represents a feature action after creation (with generated id). > **id**: `string` +## label + +> **label**: `string` + ## onTrigger() > **onTrigger**: (`args`: \{ `feature`: [`LayerFeature`](../Layers/LayerFeature.md); }) => `void` diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index f8f8d5d9..5d02e792 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -4,211 +4,211 @@ ```ts -import { av as AggregatedGridConfig } from './controller-BtLDB1Ka.js'; -import { aw as AggregationConfig } from './controller-BtLDB1Ka.js'; -import { ax as AggregationMethod } from './controller-BtLDB1Ka.js'; -import { C as CircleElementCreate } from './controller-BtLDB1Ka.js'; -import { a as CircleElementRead } from './controller-BtLDB1Ka.js'; -import { b as CircleElementUpdate } from './controller-BtLDB1Ka.js'; -import { b9 as CircleToolSettings } from './controller-BtLDB1Ka.js'; -import { ba as ConfigurableToolType } from './controller-BtLDB1Ka.js'; -import { ay as CountGridConfig } from './controller-BtLDB1Ka.js'; -import { bq as CreateActionTriggerParams } from './controller-BtLDB1Ka.js'; -import { br as CreateFeatureActionParams } from './controller-BtLDB1Ka.js'; -import { K as CreateLayersFromGeoJsonParams } from './controller-BtLDB1Ka.js'; -import { bs as CreateOrUpdatePanelParams } from './controller-BtLDB1Ka.js'; -import { bt as CreatePanelElementsParams } from './controller-BtLDB1Ka.js'; -import { O as DataOnlyLayer } from './controller-BtLDB1Ka.js'; -import { bu as DeletePanelElementsParams } from './controller-BtLDB1Ka.js'; -import { E as Element_2 } from './controller-BtLDB1Ka.js'; -import { c as ElementChangeCallbackParams } from './controller-BtLDB1Ka.js'; -import { d as ElementCreate } from './controller-BtLDB1Ka.js'; -import { e as ElementGroup } from './controller-BtLDB1Ka.js'; -import { f as ElementGroupChangeCallbackParams } from './controller-BtLDB1Ka.js'; -import { aN as ElementGroupNode } from './controller-BtLDB1Ka.js'; -import { aO as ElementNode } from './controller-BtLDB1Ka.js'; -import { B as ElementsController } from './controller-BtLDB1Ka.js'; -import { g as ElementUpdate } from './controller-BtLDB1Ka.js'; -import { aP as EntityNode } from './controller-BtLDB1Ka.js'; -import { aQ as FeatureNode } from './controller-BtLDB1Ka.js'; -import { aR as FeatureSelection } from './controller-BtLDB1Ka.js'; -import { aV as FeltBoundary } from './controller-BtLDB1Ka.js'; -import { F as FeltController } from './controller-BtLDB1Ka.js'; -import { Q as FeltTiledVectorSource } from './controller-BtLDB1Ka.js'; -import { aW as FeltZoom } from './controller-BtLDB1Ka.js'; -import { ao as FilterExpression } from './controller-BtLDB1Ka.js'; -import { ap as FilterLogicGate } from './controller-BtLDB1Ka.js'; -import { ar as Filters } from './controller-BtLDB1Ka.js'; -import { aq as FilterTernary } from './controller-BtLDB1Ka.js'; -import { R as GeoJsonDataVectorSource } from './controller-BtLDB1Ka.js'; -import { aX as GeoJsonFeature } from './controller-BtLDB1Ka.js'; -import { S as GeoJsonFileVectorSource } from './controller-BtLDB1Ka.js'; -import { aY as GeoJsonGeometry } from './controller-BtLDB1Ka.js'; -import { aZ as GeoJsonProperties } from './controller-BtLDB1Ka.js'; -import { W as GeoJsonUrlVectorSource } from './controller-BtLDB1Ka.js'; -import { as as GeometryFilter } from './controller-BtLDB1Ka.js'; -import { G as GetElementGroupsConstraint } from './controller-BtLDB1Ka.js'; -import { h as GetElementsConstraint } from './controller-BtLDB1Ka.js'; -import { az as GetLayerCalculationParams } from './controller-BtLDB1Ka.js'; -import { aA as GetLayerCategoriesGroup } from './controller-BtLDB1Ka.js'; -import { aB as GetLayerCategoriesParams } from './controller-BtLDB1Ka.js'; -import { X as GetLayerGroupsConstraint } from './controller-BtLDB1Ka.js'; -import { aC as GetLayerHistogramBin } from './controller-BtLDB1Ka.js'; -import { aD as GetLayerHistogramParams } from './controller-BtLDB1Ka.js'; -import { aE as GetLayerPrecomputedCalculationParams } from './controller-BtLDB1Ka.js'; -import { Y as GetLayersConstraint } from './controller-BtLDB1Ka.js'; -import { Z as GetRenderedFeaturesConstraint } from './controller-BtLDB1Ka.js'; -import { aF as GridConfig } from './controller-BtLDB1Ka.js'; -import { aG as GridType } from './controller-BtLDB1Ka.js'; -import { H as HighlighterElementCreate } from './controller-BtLDB1Ka.js'; -import { i as HighlighterElementRead } from './controller-BtLDB1Ka.js'; -import { j as HighlighterElementUpdate } from './controller-BtLDB1Ka.js'; -import { bb as HighlighterToolSettings } from './controller-BtLDB1Ka.js'; -import { I as ImageElementCreate } from './controller-BtLDB1Ka.js'; -import { k as ImageElementRead } from './controller-BtLDB1Ka.js'; -import { l as ImageElementUpdate } from './controller-BtLDB1Ka.js'; -import { bc as InputToolSettings } from './controller-BtLDB1Ka.js'; -import { J as InteractionsController } from './controller-BtLDB1Ka.js'; -import { a_ as LatLng } from './controller-BtLDB1Ka.js'; -import { _ as Layer } from './controller-BtLDB1Ka.js'; -import { at as LayerBoundaries } from './controller-BtLDB1Ka.js'; -import { $ as LayerChangeCallbackParams } from './controller-BtLDB1Ka.js'; -import { a0 as LayerCommon } from './controller-BtLDB1Ka.js'; -import { ae as LayerFeature } from './controller-BtLDB1Ka.js'; -import { au as LayerFilters } from './controller-BtLDB1Ka.js'; -import { a1 as LayerGroup } from './controller-BtLDB1Ka.js'; -import { a2 as LayerGroupChangeCallbackParams } from './controller-BtLDB1Ka.js'; -import { aS as LayerGroupNode } from './controller-BtLDB1Ka.js'; -import { aT as LayerNode } from './controller-BtLDB1Ka.js'; -import { a3 as LayerProcessingStatus } from './controller-BtLDB1Ka.js'; -import { ag as LayerSchema } from './controller-BtLDB1Ka.js'; -import { ah as LayerSchemaAttribute } from './controller-BtLDB1Ka.js'; -import { ai as LayerSchemaBooleanAttribute } from './controller-BtLDB1Ka.js'; -import { aj as LayerSchemaCommonAttribute } from './controller-BtLDB1Ka.js'; -import { ak as LayerSchemaDateAttribute } from './controller-BtLDB1Ka.js'; -import { al as LayerSchemaDateTimeAttribute } from './controller-BtLDB1Ka.js'; -import { am as LayerSchemaNumericAttribute } from './controller-BtLDB1Ka.js'; -import { an as LayerSchemaTextAttribute } from './controller-BtLDB1Ka.js'; -import { aK as LayersController } from './controller-BtLDB1Ka.js'; -import { a4 as LegendDisplay } from './controller-BtLDB1Ka.js'; -import { a5 as LegendItem } from './controller-BtLDB1Ka.js'; -import { a6 as LegendItemChangeCallbackParams } from './controller-BtLDB1Ka.js'; -import { a7 as LegendItemIdentifier } from './controller-BtLDB1Ka.js'; -import { a8 as LegendItemsConstraint } from './controller-BtLDB1Ka.js'; -import { a$ as LineStringGeometry } from './controller-BtLDB1Ka.js'; -import { bd as LineToolSettings } from './controller-BtLDB1Ka.js'; -import { L as LinkElementRead } from './controller-BtLDB1Ka.js'; -import { b0 as LngLatTuple } from './controller-BtLDB1Ka.js'; -import { aL as MapDetails } from './controller-BtLDB1Ka.js'; -import { D as MapInteractionEvent } from './controller-BtLDB1Ka.js'; -import { M as MarkerElementCreate } from './controller-BtLDB1Ka.js'; -import { m as MarkerElementRead } from './controller-BtLDB1Ka.js'; -import { n as MarkerElementUpdate } from './controller-BtLDB1Ka.js'; -import { be as MarkerToolSettings } from './controller-BtLDB1Ka.js'; -import { aM as MiscController } from './controller-BtLDB1Ka.js'; -import { aH as MultiAggregationConfig } from './controller-BtLDB1Ka.js'; -import { b1 as MultiLineStringGeometry } from './controller-BtLDB1Ka.js'; -import { b2 as MultiPointGeometry } from './controller-BtLDB1Ka.js'; -import { b3 as MultiPolygonGeometry } from './controller-BtLDB1Ka.js'; -import { N as NoteElementCreate } from './controller-BtLDB1Ka.js'; -import { o as NoteElementRead } from './controller-BtLDB1Ka.js'; -import { p as NoteElementUpdate } from './controller-BtLDB1Ka.js'; -import { bf as NoteToolSettings } from './controller-BtLDB1Ka.js'; -import { bv as OnMapInteractionsOptions } from './controller-BtLDB1Ka.js'; -import { P as PathElementCreate } from './controller-BtLDB1Ka.js'; -import { q as PathElementRead } from './controller-BtLDB1Ka.js'; -import { r as PathElementUpdate } from './controller-BtLDB1Ka.js'; -import { bg as PinToolSettings } from './controller-BtLDB1Ka.js'; -import { s as PlaceElementCreate } from './controller-BtLDB1Ka.js'; -import { t as PlaceElementRead } from './controller-BtLDB1Ka.js'; -import { u as PlaceElementUpdate } from './controller-BtLDB1Ka.js'; -import { bh as PlaceFrame } from './controller-BtLDB1Ka.js'; -import { bz as PlacementForUIElement } from './controller-BtLDB1Ka.js'; -import { bi as PlaceSymbol } from './controller-BtLDB1Ka.js'; -import { b4 as PointGeometry } from './controller-BtLDB1Ka.js'; -import { v as PolygonElementCreate } from './controller-BtLDB1Ka.js'; -import { w as PolygonElementRead } from './controller-BtLDB1Ka.js'; -import { x as PolygonElementUpdate } from './controller-BtLDB1Ka.js'; -import { b5 as PolygonGeometry } from './controller-BtLDB1Ka.js'; -import { bj as PolygonToolSettings } from './controller-BtLDB1Ka.js'; -import { aI as PrecomputedAggregationMethod } from './controller-BtLDB1Ka.js'; -import { a9 as RasterBand } from './controller-BtLDB1Ka.js'; -import { aa as RasterLayer } from './controller-BtLDB1Ka.js'; -import { ab as RasterLayerSource } from './controller-BtLDB1Ka.js'; -import { af as RasterValue } from './controller-BtLDB1Ka.js'; -import { bk as RouteToolSettings } from './controller-BtLDB1Ka.js'; -import { aU as SelectionController } from './controller-BtLDB1Ka.js'; -import { ci as SetViewportCenterZoomParams } from './controller-BtLDB1Ka.js'; -import { b6 as SetVisibilityRequest } from './controller-BtLDB1Ka.js'; -import { b7 as SortConfig } from './controller-BtLDB1Ka.js'; -import { b8 as SortDirection } from './controller-BtLDB1Ka.js'; -import { T as TextElementCreate } from './controller-BtLDB1Ka.js'; -import { y as TextElementRead } from './controller-BtLDB1Ka.js'; -import { A as TextElementUpdate } from './controller-BtLDB1Ka.js'; -import { bl as TextToolSettings } from './controller-BtLDB1Ka.js'; -import { bp as ToolsController } from './controller-BtLDB1Ka.js'; -import { bm as ToolSettingsChangeEvent } from './controller-BtLDB1Ka.js'; -import { bn as ToolSettingsMap } from './controller-BtLDB1Ka.js'; -import { bo as ToolType } from './controller-BtLDB1Ka.js'; -import { ce as UIActionTriggerCreate } from './controller-BtLDB1Ka.js'; -import { bC as UIButtonElement } from './controller-BtLDB1Ka.js'; -import { bD as UIButtonElementCreate } from './controller-BtLDB1Ka.js'; -import { bE as UIButtonElementUpdate } from './controller-BtLDB1Ka.js'; -import { b_ as UIButtonRowElement } from './controller-BtLDB1Ka.js'; -import { b$ as UIButtonRowElementCreate } from './controller-BtLDB1Ka.js'; -import { c0 as UIButtonRowElementUpdate } from './controller-BtLDB1Ka.js'; -import { c1 as UICheckboxGroupElement } from './controller-BtLDB1Ka.js'; -import { c2 as UICheckboxGroupElementCreate } from './controller-BtLDB1Ka.js'; -import { c3 as UICheckboxGroupElementUpdate } from './controller-BtLDB1Ka.js'; -import { cd as UIControlElementOption } from './controller-BtLDB1Ka.js'; -import { ch as UiController } from './controller-BtLDB1Ka.js'; -import { U as UiControlsOptions } from './controller-BtLDB1Ka.js'; -import { bL as UIDividerElement } from './controller-BtLDB1Ka.js'; -import { bM as UIDividerElementCreate } from './controller-BtLDB1Ka.js'; -import { bN as UIDividerElementUpdate } from './controller-BtLDB1Ka.js'; -import { cf as uiFeatureAction } from './controller-BtLDB1Ka.js'; -import { cg as uiFeatureActionCreate } from './controller-BtLDB1Ka.js'; -import { bI as UIFlexibleSpaceElement } from './controller-BtLDB1Ka.js'; -import { bJ as UIFlexibleSpaceElementCreate } from './controller-BtLDB1Ka.js'; -import { bK as UIFlexibleSpaceElementUpdate } from './controller-BtLDB1Ka.js'; -import { bX as UIGridContainerElement } from './controller-BtLDB1Ka.js'; -import { bY as UIGridContainerElementCreate } from './controller-BtLDB1Ka.js'; -import { bZ as UIGridContainerElementUpdate } from './controller-BtLDB1Ka.js'; -import { ca as UIIframeElement } from './controller-BtLDB1Ka.js'; -import { cb as UIIframeElementCreate } from './controller-BtLDB1Ka.js'; -import { cc as UIIframeElementUpdate } from './controller-BtLDB1Ka.js'; -import { bA as UIPanel } from './controller-BtLDB1Ka.js'; -import { bB as UIPanelCreateOrUpdate } from './controller-BtLDB1Ka.js'; -import { bU as UIPanelElement } from './controller-BtLDB1Ka.js'; -import { bV as UIPanelElementCreate } from './controller-BtLDB1Ka.js'; -import { bW as UIPanelElementUpdate } from './controller-BtLDB1Ka.js'; -import { c4 as UIRadioGroupElement } from './controller-BtLDB1Ka.js'; -import { c5 as UIRadioGroupElementCreate } from './controller-BtLDB1Ka.js'; -import { c6 as UIRadioGroupElementUpdate } from './controller-BtLDB1Ka.js'; -import { bR as UISelectElement } from './controller-BtLDB1Ka.js'; -import { bS as UISelectElementCreate } from './controller-BtLDB1Ka.js'; -import { bT as UISelectElementUpdate } from './controller-BtLDB1Ka.js'; -import { bF as UITextElement } from './controller-BtLDB1Ka.js'; -import { bG as UITextElementCreate } from './controller-BtLDB1Ka.js'; -import { bH as UITextElementUpdate } from './controller-BtLDB1Ka.js'; -import { bO as UITextInputElement } from './controller-BtLDB1Ka.js'; -import { bP as UITextInputElementCreate } from './controller-BtLDB1Ka.js'; -import { bQ as UITextInputElementUpdate } from './controller-BtLDB1Ka.js'; -import { c7 as UIToggleGroupElement } from './controller-BtLDB1Ka.js'; -import { c8 as UIToggleGroupElementCreate } from './controller-BtLDB1Ka.js'; -import { c9 as UIToggleGroupElementUpdate } from './controller-BtLDB1Ka.js'; -import { bw as UpdateActionTriggerParams } from './controller-BtLDB1Ka.js'; -import { bx as UpdateFeatureActionParams } from './controller-BtLDB1Ka.js'; -import { ac as UpdateLayerParams } from './controller-BtLDB1Ka.js'; -import { by as UpdatePanelElementsParams } from './controller-BtLDB1Ka.js'; -import { aJ as ValueConfiguration } from './controller-BtLDB1Ka.js'; -import { ad as VectorLayer } from './controller-BtLDB1Ka.js'; -import { V as ViewportCenterZoom } from './controller-BtLDB1Ka.js'; -import { cj as ViewportConstraints } from './controller-BtLDB1Ka.js'; -import { cm as ViewportController } from './controller-BtLDB1Ka.js'; -import { ck as ViewportFitBoundsParams } from './controller-BtLDB1Ka.js'; -import { cl as ViewportState } from './controller-BtLDB1Ka.js'; -import { z } from './controller-BtLDB1Ka.js'; +import { av as AggregatedGridConfig } from './controller-BcZvbm-Y.js'; +import { aw as AggregationConfig } from './controller-BcZvbm-Y.js'; +import { ax as AggregationMethod } from './controller-BcZvbm-Y.js'; +import { C as CircleElementCreate } from './controller-BcZvbm-Y.js'; +import { a as CircleElementRead } from './controller-BcZvbm-Y.js'; +import { b as CircleElementUpdate } from './controller-BcZvbm-Y.js'; +import { b9 as CircleToolSettings } from './controller-BcZvbm-Y.js'; +import { ba as ConfigurableToolType } from './controller-BcZvbm-Y.js'; +import { ay as CountGridConfig } from './controller-BcZvbm-Y.js'; +import { bq as CreateActionTriggerParams } from './controller-BcZvbm-Y.js'; +import { br as CreateFeatureActionParams } from './controller-BcZvbm-Y.js'; +import { K as CreateLayersFromGeoJsonParams } from './controller-BcZvbm-Y.js'; +import { bs as CreateOrUpdatePanelParams } from './controller-BcZvbm-Y.js'; +import { bt as CreatePanelElementsParams } from './controller-BcZvbm-Y.js'; +import { O as DataOnlyLayer } from './controller-BcZvbm-Y.js'; +import { bu as DeletePanelElementsParams } from './controller-BcZvbm-Y.js'; +import { E as Element_2 } from './controller-BcZvbm-Y.js'; +import { c as ElementChangeCallbackParams } from './controller-BcZvbm-Y.js'; +import { d as ElementCreate } from './controller-BcZvbm-Y.js'; +import { e as ElementGroup } from './controller-BcZvbm-Y.js'; +import { f as ElementGroupChangeCallbackParams } from './controller-BcZvbm-Y.js'; +import { aN as ElementGroupNode } from './controller-BcZvbm-Y.js'; +import { aO as ElementNode } from './controller-BcZvbm-Y.js'; +import { B as ElementsController } from './controller-BcZvbm-Y.js'; +import { g as ElementUpdate } from './controller-BcZvbm-Y.js'; +import { aP as EntityNode } from './controller-BcZvbm-Y.js'; +import { aQ as FeatureNode } from './controller-BcZvbm-Y.js'; +import { aR as FeatureSelection } from './controller-BcZvbm-Y.js'; +import { aV as FeltBoundary } from './controller-BcZvbm-Y.js'; +import { F as FeltController } from './controller-BcZvbm-Y.js'; +import { Q as FeltTiledVectorSource } from './controller-BcZvbm-Y.js'; +import { aW as FeltZoom } from './controller-BcZvbm-Y.js'; +import { ao as FilterExpression } from './controller-BcZvbm-Y.js'; +import { ap as FilterLogicGate } from './controller-BcZvbm-Y.js'; +import { ar as Filters } from './controller-BcZvbm-Y.js'; +import { aq as FilterTernary } from './controller-BcZvbm-Y.js'; +import { R as GeoJsonDataVectorSource } from './controller-BcZvbm-Y.js'; +import { aX as GeoJsonFeature } from './controller-BcZvbm-Y.js'; +import { S as GeoJsonFileVectorSource } from './controller-BcZvbm-Y.js'; +import { aY as GeoJsonGeometry } from './controller-BcZvbm-Y.js'; +import { aZ as GeoJsonProperties } from './controller-BcZvbm-Y.js'; +import { W as GeoJsonUrlVectorSource } from './controller-BcZvbm-Y.js'; +import { as as GeometryFilter } from './controller-BcZvbm-Y.js'; +import { G as GetElementGroupsConstraint } from './controller-BcZvbm-Y.js'; +import { h as GetElementsConstraint } from './controller-BcZvbm-Y.js'; +import { az as GetLayerCalculationParams } from './controller-BcZvbm-Y.js'; +import { aA as GetLayerCategoriesGroup } from './controller-BcZvbm-Y.js'; +import { aB as GetLayerCategoriesParams } from './controller-BcZvbm-Y.js'; +import { X as GetLayerGroupsConstraint } from './controller-BcZvbm-Y.js'; +import { aC as GetLayerHistogramBin } from './controller-BcZvbm-Y.js'; +import { aD as GetLayerHistogramParams } from './controller-BcZvbm-Y.js'; +import { aE as GetLayerPrecomputedCalculationParams } from './controller-BcZvbm-Y.js'; +import { Y as GetLayersConstraint } from './controller-BcZvbm-Y.js'; +import { Z as GetRenderedFeaturesConstraint } from './controller-BcZvbm-Y.js'; +import { aF as GridConfig } from './controller-BcZvbm-Y.js'; +import { aG as GridType } from './controller-BcZvbm-Y.js'; +import { H as HighlighterElementCreate } from './controller-BcZvbm-Y.js'; +import { i as HighlighterElementRead } from './controller-BcZvbm-Y.js'; +import { j as HighlighterElementUpdate } from './controller-BcZvbm-Y.js'; +import { bb as HighlighterToolSettings } from './controller-BcZvbm-Y.js'; +import { I as ImageElementCreate } from './controller-BcZvbm-Y.js'; +import { k as ImageElementRead } from './controller-BcZvbm-Y.js'; +import { l as ImageElementUpdate } from './controller-BcZvbm-Y.js'; +import { bc as InputToolSettings } from './controller-BcZvbm-Y.js'; +import { J as InteractionsController } from './controller-BcZvbm-Y.js'; +import { a_ as LatLng } from './controller-BcZvbm-Y.js'; +import { _ as Layer } from './controller-BcZvbm-Y.js'; +import { at as LayerBoundaries } from './controller-BcZvbm-Y.js'; +import { $ as LayerChangeCallbackParams } from './controller-BcZvbm-Y.js'; +import { a0 as LayerCommon } from './controller-BcZvbm-Y.js'; +import { ae as LayerFeature } from './controller-BcZvbm-Y.js'; +import { au as LayerFilters } from './controller-BcZvbm-Y.js'; +import { a1 as LayerGroup } from './controller-BcZvbm-Y.js'; +import { a2 as LayerGroupChangeCallbackParams } from './controller-BcZvbm-Y.js'; +import { aS as LayerGroupNode } from './controller-BcZvbm-Y.js'; +import { aT as LayerNode } from './controller-BcZvbm-Y.js'; +import { a3 as LayerProcessingStatus } from './controller-BcZvbm-Y.js'; +import { ag as LayerSchema } from './controller-BcZvbm-Y.js'; +import { ah as LayerSchemaAttribute } from './controller-BcZvbm-Y.js'; +import { ai as LayerSchemaBooleanAttribute } from './controller-BcZvbm-Y.js'; +import { aj as LayerSchemaCommonAttribute } from './controller-BcZvbm-Y.js'; +import { ak as LayerSchemaDateAttribute } from './controller-BcZvbm-Y.js'; +import { al as LayerSchemaDateTimeAttribute } from './controller-BcZvbm-Y.js'; +import { am as LayerSchemaNumericAttribute } from './controller-BcZvbm-Y.js'; +import { an as LayerSchemaTextAttribute } from './controller-BcZvbm-Y.js'; +import { aK as LayersController } from './controller-BcZvbm-Y.js'; +import { a4 as LegendDisplay } from './controller-BcZvbm-Y.js'; +import { a5 as LegendItem } from './controller-BcZvbm-Y.js'; +import { a6 as LegendItemChangeCallbackParams } from './controller-BcZvbm-Y.js'; +import { a7 as LegendItemIdentifier } from './controller-BcZvbm-Y.js'; +import { a8 as LegendItemsConstraint } from './controller-BcZvbm-Y.js'; +import { a$ as LineStringGeometry } from './controller-BcZvbm-Y.js'; +import { bd as LineToolSettings } from './controller-BcZvbm-Y.js'; +import { L as LinkElementRead } from './controller-BcZvbm-Y.js'; +import { b0 as LngLatTuple } from './controller-BcZvbm-Y.js'; +import { aL as MapDetails } from './controller-BcZvbm-Y.js'; +import { D as MapInteractionEvent } from './controller-BcZvbm-Y.js'; +import { M as MarkerElementCreate } from './controller-BcZvbm-Y.js'; +import { m as MarkerElementRead } from './controller-BcZvbm-Y.js'; +import { n as MarkerElementUpdate } from './controller-BcZvbm-Y.js'; +import { be as MarkerToolSettings } from './controller-BcZvbm-Y.js'; +import { aM as MiscController } from './controller-BcZvbm-Y.js'; +import { aH as MultiAggregationConfig } from './controller-BcZvbm-Y.js'; +import { b1 as MultiLineStringGeometry } from './controller-BcZvbm-Y.js'; +import { b2 as MultiPointGeometry } from './controller-BcZvbm-Y.js'; +import { b3 as MultiPolygonGeometry } from './controller-BcZvbm-Y.js'; +import { N as NoteElementCreate } from './controller-BcZvbm-Y.js'; +import { o as NoteElementRead } from './controller-BcZvbm-Y.js'; +import { p as NoteElementUpdate } from './controller-BcZvbm-Y.js'; +import { bf as NoteToolSettings } from './controller-BcZvbm-Y.js'; +import { bv as OnMapInteractionsOptions } from './controller-BcZvbm-Y.js'; +import { P as PathElementCreate } from './controller-BcZvbm-Y.js'; +import { q as PathElementRead } from './controller-BcZvbm-Y.js'; +import { r as PathElementUpdate } from './controller-BcZvbm-Y.js'; +import { bg as PinToolSettings } from './controller-BcZvbm-Y.js'; +import { s as PlaceElementCreate } from './controller-BcZvbm-Y.js'; +import { t as PlaceElementRead } from './controller-BcZvbm-Y.js'; +import { u as PlaceElementUpdate } from './controller-BcZvbm-Y.js'; +import { bh as PlaceFrame } from './controller-BcZvbm-Y.js'; +import { bz as PlacementForUIElement } from './controller-BcZvbm-Y.js'; +import { bi as PlaceSymbol } from './controller-BcZvbm-Y.js'; +import { b4 as PointGeometry } from './controller-BcZvbm-Y.js'; +import { v as PolygonElementCreate } from './controller-BcZvbm-Y.js'; +import { w as PolygonElementRead } from './controller-BcZvbm-Y.js'; +import { x as PolygonElementUpdate } from './controller-BcZvbm-Y.js'; +import { b5 as PolygonGeometry } from './controller-BcZvbm-Y.js'; +import { bj as PolygonToolSettings } from './controller-BcZvbm-Y.js'; +import { aI as PrecomputedAggregationMethod } from './controller-BcZvbm-Y.js'; +import { a9 as RasterBand } from './controller-BcZvbm-Y.js'; +import { aa as RasterLayer } from './controller-BcZvbm-Y.js'; +import { ab as RasterLayerSource } from './controller-BcZvbm-Y.js'; +import { af as RasterValue } from './controller-BcZvbm-Y.js'; +import { bk as RouteToolSettings } from './controller-BcZvbm-Y.js'; +import { aU as SelectionController } from './controller-BcZvbm-Y.js'; +import { ci as SetViewportCenterZoomParams } from './controller-BcZvbm-Y.js'; +import { b6 as SetVisibilityRequest } from './controller-BcZvbm-Y.js'; +import { b7 as SortConfig } from './controller-BcZvbm-Y.js'; +import { b8 as SortDirection } from './controller-BcZvbm-Y.js'; +import { T as TextElementCreate } from './controller-BcZvbm-Y.js'; +import { y as TextElementRead } from './controller-BcZvbm-Y.js'; +import { A as TextElementUpdate } from './controller-BcZvbm-Y.js'; +import { bl as TextToolSettings } from './controller-BcZvbm-Y.js'; +import { bp as ToolsController } from './controller-BcZvbm-Y.js'; +import { bm as ToolSettingsChangeEvent } from './controller-BcZvbm-Y.js'; +import { bn as ToolSettingsMap } from './controller-BcZvbm-Y.js'; +import { bo as ToolType } from './controller-BcZvbm-Y.js'; +import { ce as UIActionTriggerCreate } from './controller-BcZvbm-Y.js'; +import { bC as UIButtonElement } from './controller-BcZvbm-Y.js'; +import { bD as UIButtonElementCreate } from './controller-BcZvbm-Y.js'; +import { bE as UIButtonElementUpdate } from './controller-BcZvbm-Y.js'; +import { b_ as UIButtonRowElement } from './controller-BcZvbm-Y.js'; +import { b$ as UIButtonRowElementCreate } from './controller-BcZvbm-Y.js'; +import { c0 as UIButtonRowElementUpdate } from './controller-BcZvbm-Y.js'; +import { c1 as UICheckboxGroupElement } from './controller-BcZvbm-Y.js'; +import { c2 as UICheckboxGroupElementCreate } from './controller-BcZvbm-Y.js'; +import { c3 as UICheckboxGroupElementUpdate } from './controller-BcZvbm-Y.js'; +import { cd as UIControlElementOption } from './controller-BcZvbm-Y.js'; +import { ch as UiController } from './controller-BcZvbm-Y.js'; +import { U as UiControlsOptions } from './controller-BcZvbm-Y.js'; +import { bL as UIDividerElement } from './controller-BcZvbm-Y.js'; +import { bM as UIDividerElementCreate } from './controller-BcZvbm-Y.js'; +import { bN as UIDividerElementUpdate } from './controller-BcZvbm-Y.js'; +import { cf as uiFeatureAction } from './controller-BcZvbm-Y.js'; +import { cg as uiFeatureActionCreate } from './controller-BcZvbm-Y.js'; +import { bI as UIFlexibleSpaceElement } from './controller-BcZvbm-Y.js'; +import { bJ as UIFlexibleSpaceElementCreate } from './controller-BcZvbm-Y.js'; +import { bK as UIFlexibleSpaceElementUpdate } from './controller-BcZvbm-Y.js'; +import { bX as UIGridContainerElement } from './controller-BcZvbm-Y.js'; +import { bY as UIGridContainerElementCreate } from './controller-BcZvbm-Y.js'; +import { bZ as UIGridContainerElementUpdate } from './controller-BcZvbm-Y.js'; +import { ca as UIIframeElement } from './controller-BcZvbm-Y.js'; +import { cb as UIIframeElementCreate } from './controller-BcZvbm-Y.js'; +import { cc as UIIframeElementUpdate } from './controller-BcZvbm-Y.js'; +import { bA as UIPanel } from './controller-BcZvbm-Y.js'; +import { bB as UIPanelCreateOrUpdate } from './controller-BcZvbm-Y.js'; +import { bU as UIPanelElement } from './controller-BcZvbm-Y.js'; +import { bV as UIPanelElementCreate } from './controller-BcZvbm-Y.js'; +import { bW as UIPanelElementUpdate } from './controller-BcZvbm-Y.js'; +import { c4 as UIRadioGroupElement } from './controller-BcZvbm-Y.js'; +import { c5 as UIRadioGroupElementCreate } from './controller-BcZvbm-Y.js'; +import { c6 as UIRadioGroupElementUpdate } from './controller-BcZvbm-Y.js'; +import { bR as UISelectElement } from './controller-BcZvbm-Y.js'; +import { bS as UISelectElementCreate } from './controller-BcZvbm-Y.js'; +import { bT as UISelectElementUpdate } from './controller-BcZvbm-Y.js'; +import { bF as UITextElement } from './controller-BcZvbm-Y.js'; +import { bG as UITextElementCreate } from './controller-BcZvbm-Y.js'; +import { bH as UITextElementUpdate } from './controller-BcZvbm-Y.js'; +import { bO as UITextInputElement } from './controller-BcZvbm-Y.js'; +import { bP as UITextInputElementCreate } from './controller-BcZvbm-Y.js'; +import { bQ as UITextInputElementUpdate } from './controller-BcZvbm-Y.js'; +import { c7 as UIToggleGroupElement } from './controller-BcZvbm-Y.js'; +import { c8 as UIToggleGroupElementCreate } from './controller-BcZvbm-Y.js'; +import { c9 as UIToggleGroupElementUpdate } from './controller-BcZvbm-Y.js'; +import { bw as UpdateActionTriggerParams } from './controller-BcZvbm-Y.js'; +import { bx as UpdateFeatureActionParams } from './controller-BcZvbm-Y.js'; +import { ac as UpdateLayerParams } from './controller-BcZvbm-Y.js'; +import { by as UpdatePanelElementsParams } from './controller-BcZvbm-Y.js'; +import { aJ as ValueConfiguration } from './controller-BcZvbm-Y.js'; +import { ad as VectorLayer } from './controller-BcZvbm-Y.js'; +import { V as ViewportCenterZoom } from './controller-BcZvbm-Y.js'; +import { cj as ViewportConstraints } from './controller-BcZvbm-Y.js'; +import { cm as ViewportController } from './controller-BcZvbm-Y.js'; +import { ck as ViewportFitBoundsParams } from './controller-BcZvbm-Y.js'; +import { cl as ViewportState } from './controller-BcZvbm-Y.js'; +import { z } from './controller-BcZvbm-Y.js'; import { z as z_2 } from 'zod'; export { AggregatedGridConfig } diff --git a/src/modules/ui/uiElements/UIFeatureAction.ts b/src/modules/ui/uiElements/UIFeatureAction.ts index eb6c419c..81430cc3 100644 --- a/src/modules/ui/uiElements/UIFeatureAction.ts +++ b/src/modules/ui/uiElements/UIFeatureAction.ts @@ -47,7 +47,8 @@ export const uiFeatureActionSchema = { .extend({ type: z.undefined() }), clonable: uiElementBaseCreateSchema.clonable .extend(uiFeatureActionBaseSchema.shape) - .extend({ type: z.undefined() }), + .extend({ type: z.undefined() }) + .extend({ onTrigger: z.string() }), // Add the missing update schema update: makeUpdateSchema( uiElementBaseCreateSchema.params @@ -80,6 +81,7 @@ export interface UIFeatureActionCreate */ export type UIFeatureAction = { id: string; + label: string; layerIds?: string[]; geometryTypes?: Array<"Polygon" | "Point" | "Line" | "Raster">; onTrigger: (args: { feature: LayerFeature }) => void;