/** * Extract and parses the GeoJSON from the textarea * @param {HTMLTextAreaElement} geospatialInput - the textarea containing the geojson */ export function getGeoJSON(geospatialInput: HTMLTextAreaElement): GeoJSON; /** * Gets the bounding box covering a feature collection * @param {GeoJSON} geojson - the geojson */ export function getBoundingBox(geojson: GeoJSON): import("geojson").BBox; /** * Processes a geospatial field to add map capability * @param {MapsEnvironmentConfig} config - the geospatial field element * @param {Element} geospatial - the geospatial field element * @param {number} index - the 0-based index */ export function processGeospatial(config: MapsEnvironmentConfig, geospatial: Element, index: number): void; /** * Adds a feature to the map * @param {Feature} feature - the geojson feature * @param {any} drawPlugin - the map draw plugin * @param {InteractiveMap} map - the interactive map */ export function addFeatureToMap(feature: Feature, drawPlugin: any, map: InteractiveMap): void; /** * Returns HTML summary list for the features * @param {FeatureCollection} features - the features * @param {string} mapId - the ID of the map * @param {boolean} [disabled] - render the list with disabled links * @param {boolean} [readonly] - render the list in readonly mode */ export function createFeaturesHTML(features: FeatureCollection, mapId: string, disabled?: boolean, readonly?: boolean): string; /** * Focus feature * @param {Feature} feature - the feature * @param {MapLibreMap} mapProvider - the feature id */ export function focusFeature(feature: Feature, mapProvider: MapLibreMap): void; /** * Returns HTML summary row for an single feature * @param {Feature} feature - the geo feature * @param {number} index - the feature index * @param {string} mapId - the ID of the map * @param {boolean} [disabled] - render the list with disabled links * @param {boolean} [readonly] - render the list item in readonly mode */ export function createFeatureHTML(feature: Feature, index: number, mapId: string, disabled?: boolean, readonly?: boolean): string; export type GeoJSON = { /** * - the GeoJSON type string */ type: "FeatureCollection"; /** * - the features */ features: FeatureCollection; }; /** * Gets all the features */ export type GetFeatures = () => FeatureCollection; /** * Gets a feature from the geojson by id */ export type GetFeature = (id: string) => Feature | undefined; /** * Add a feature to the geojson */ export type AddFeature = (feature: Feature) => any; /** * Update a feature in the geojson */ export type UpdateFeature = (id: string, geometry: Geometry) => Feature | undefined; /** * Removes a feature from the geojson */ export type RemoveFeature = (id: string) => any; /** * Gets the active feature id */ export type GetActiveFeature = () => string | undefined; /** * Set the active feature id */ export type SetActiveFeature = (id: string) => void; /** * Resets the active feature id */ export type ResetActiveFeature = () => void; /** * Renders the features into the list */ export type RenderList = (disabled?: boolean | undefined) => void; /** * Renders the features JSON into the hidden textarea */ export type RenderValue = () => void; /** * Toggles the action button hidden state */ export type ToggleActionButtons = (hidden: boolean) => void; /** * Set focus to the last description input */ export type FocusDescriptionInput = () => void; export type FeaturesManager = { /** * - function that gets all the features */ getFeatures: GetFeatures; /** * - function that gets a feature from the geojson */ getFeature: GetFeature; /** * - function that adds feature to the geojson */ addFeature: AddFeature; /** * - function that updates a feature in the geojson */ updateFeature: UpdateFeature; /** * - function that removes a feature from the geojson */ removeFeature: RemoveFeature; }; export type ActiveFeatureManager = { /** * - function that returns the current active feature id */ getActiveFeature: GetActiveFeature; /** * - function that sets the current active feature id */ setActiveFeature: SetActiveFeature; /** * - function that resets the current active feature id */ resetActiveFeature: ResetActiveFeature; }; export type UIManager = { /** * - function that renders the features JSON into the hidden textarea */ renderValue: RenderValue; /** * - function that renders the features into the list */ renderList: RenderList; /** * - the summary list of features */ listEl: HTMLDivElement; /** * - function that toggles the action buttons */ toggleActionButtons: ToggleActionButtons; /** * - function that sets focus to a description input element */ focusDescriptionInput: FocusDescriptionInput; }; export type Context = { /** * - the interactive map */ map: InteractiveMap; /** * - the interactive map provider */ mapProvider?: MapLibreMap | undefined; /** * - the features manager */ featuresManager: FeaturesManager; /** * - the active feature manager */ activeFeatureManager: ActiveFeatureManager; /** * - the UI manager */ uiManager: UIManager; /** * - the map interact plugin */ interactPlugin: any; /** * - the map draw plugin */ drawPlugin: any; }; import type { MapsEnvironmentConfig } from '~/src/client/javascripts/map.js'; import type { Feature } from '~/src/server/plugins/engine/types.js'; import type { InteractiveMap } from '~/src/client/javascripts/map.js'; import type { FeatureCollection } from '~/src/server/plugins/engine/types.js'; import type { MapLibreMap } from '~/src/client/javascripts/map.js'; import type { Geometry } from '~/src/server/plugins/engine/types.js';